From 1fc921467b42c56ebcd727ece83873f29c470d23 Mon Sep 17 00:00:00 2001 From: Juliano Martinez Date: Thu, 29 Jan 2026 14:00:36 +0100 Subject: [PATCH] (feat): bring pretty to 2026 --- .github/workflows/ci.yml | 22 + .github/workflows/codeql.yml | 74 + .github/workflows/go.yml | 28 + README.md | 181 +- cmd/hosts.go | 207 + cmd/hosts_test.go | 234 + cmd/root.go | 103 +- docker-compose.sshd.yml | 31 + docker/sshd/Dockerfile | 14 + docker/sshd/entrypoint.sh | 52 + go.mod | 51 + go.sum | 136 + internal/jobs/manager.go | 194 + internal/jobs/manager_test.go | 45 + internal/jobs/sentinel.go | 44 + internal/jobs/sentinel_test.go | 56 + internal/jobs/types.go | 46 + internal/shell/command.go | 50 + internal/shell/command_test.go | 24 + internal/shell/history.go | 109 + internal/shell/history_test.go | 72 + internal/shell/model.go | 374 + internal/shell/model_test.go | 489 ++ internal/shell/output_buffer.go | 61 + internal/shell/output_buffer_test.go | 22 + internal/shell/shell.go | 34 + internal/shell/shell_test.go | 15 + internal/shell/status.go | 71 + internal/shell/status_test.go | 29 + internal/shell/testdata/empty-history | 0 internal/shell/view.go | 8 + internal/shell/wrap.go | 18 + internal/shell/wrap_test.go | 52 + internal/sshConn/async.go | 39 + internal/sshConn/command.go | 15 + internal/sshConn/config.go | 238 + internal/sshConn/config_test.go | 219 + internal/sshConn/message.go | 113 + internal/sshConn/output.go | 8 + internal/sshConn/output_test.go | 54 + internal/sshConn/ssh.go | 244 + internal/sshConn/ssh_test.go | 11 + main.go | 4 +- pretty | Bin 0 -> 10521778 bytes renovate.json | 6 + scripts/ssh-testbed-setup.sh | 73 + shell/shell.go | 104 - sshConn/message.go | 77 - sshConn/ssh.go | 122 - .../github.com/chzyer/readline/CHANGELOG.md | 58 - vendor/github.com/chzyer/readline/LICENSE | 22 - vendor/github.com/chzyer/readline/README.md | 114 - .../chzyer/readline/ansi_windows.go | 246 - vendor/github.com/chzyer/readline/complete.go | 283 - .../chzyer/readline/complete_helper.go | 165 - .../chzyer/readline/complete_segment.go | 82 - vendor/github.com/chzyer/readline/history.go | 312 - .../github.com/chzyer/readline/operation.go | 504 -- vendor/github.com/chzyer/readline/password.go | 32 - .../chzyer/readline/rawreader_windows.go | 125 - vendor/github.com/chzyer/readline/readline.go | 288 - vendor/github.com/chzyer/readline/remote.go | 474 - vendor/github.com/chzyer/readline/runebuf.go | 572 -- vendor/github.com/chzyer/readline/runes.go | 223 - vendor/github.com/chzyer/readline/search.go | 164 - vendor/github.com/chzyer/readline/std.go | 133 - .../github.com/chzyer/readline/std_windows.go | 9 - vendor/github.com/chzyer/readline/term.go | 123 - vendor/github.com/chzyer/readline/term_bsd.go | 29 - .../github.com/chzyer/readline/term_linux.go | 33 - .../chzyer/readline/term_solaris.go | 32 - .../github.com/chzyer/readline/term_unix.go | 24 - .../chzyer/readline/term_windows.go | 171 - vendor/github.com/chzyer/readline/terminal.go | 232 - vendor/github.com/chzyer/readline/utils.go | 276 - .../github.com/chzyer/readline/utils_unix.go | 83 - .../chzyer/readline/utils_windows.go | 41 - vendor/github.com/chzyer/readline/vim.go | 174 - .../github.com/chzyer/readline/windows_api.go | 152 - vendor/github.com/fatih/color/LICENSE.md | 20 - vendor/github.com/fatih/color/README.md | 177 - vendor/github.com/fatih/color/color.go | 600 -- vendor/github.com/fatih/color/doc.go | 133 - vendor/github.com/fsnotify/fsnotify/AUTHORS | 46 - .../github.com/fsnotify/fsnotify/CHANGELOG.md | 307 - .../fsnotify/fsnotify/CONTRIBUTING.md | 77 - vendor/github.com/fsnotify/fsnotify/LICENSE | 28 - vendor/github.com/fsnotify/fsnotify/README.md | 79 - vendor/github.com/fsnotify/fsnotify/fen.go | 37 - .../github.com/fsnotify/fsnotify/fsnotify.go | 66 - .../github.com/fsnotify/fsnotify/inotify.go | 337 - .../fsnotify/fsnotify/inotify_poller.go | 187 - vendor/github.com/fsnotify/fsnotify/kqueue.go | 503 -- .../fsnotify/fsnotify/open_mode_bsd.go | 11 - .../fsnotify/fsnotify/open_mode_darwin.go | 12 - .../github.com/fsnotify/fsnotify/windows.go | 561 -- vendor/github.com/hashicorp/hcl/LICENSE | 354 - vendor/github.com/hashicorp/hcl/Makefile | 18 - vendor/github.com/hashicorp/hcl/README.md | 125 - vendor/github.com/hashicorp/hcl/appveyor.yml | 19 - vendor/github.com/hashicorp/hcl/decoder.go | 724 -- vendor/github.com/hashicorp/hcl/hcl.go | 11 - .../github.com/hashicorp/hcl/hcl/ast/ast.go | 219 - .../github.com/hashicorp/hcl/hcl/ast/walk.go | 52 - .../hashicorp/hcl/hcl/parser/error.go | 17 - .../hashicorp/hcl/hcl/parser/parser.go | 526 -- .../hashicorp/hcl/hcl/scanner/scanner.go | 651 -- .../hashicorp/hcl/hcl/strconv/quote.go | 241 - .../hashicorp/hcl/hcl/token/position.go | 46 - .../hashicorp/hcl/hcl/token/token.go | 219 - .../hashicorp/hcl/json/parser/flatten.go | 117 - .../hashicorp/hcl/json/parser/parser.go | 313 - .../hashicorp/hcl/json/scanner/scanner.go | 451 - .../hashicorp/hcl/json/token/position.go | 46 - .../hashicorp/hcl/json/token/token.go | 118 - vendor/github.com/hashicorp/hcl/lex.go | 38 - vendor/github.com/hashicorp/hcl/parse.go | 39 - .../magiconair/properties/CHANGELOG.md | 96 - .../github.com/magiconair/properties/LICENSE | 25 - .../magiconair/properties/README.md | 100 - .../magiconair/properties/decode.go | 289 - .../github.com/magiconair/properties/doc.go | 156 - .../magiconair/properties/integrate.go | 34 - .../github.com/magiconair/properties/lex.go | 408 - .../github.com/magiconair/properties/load.go | 241 - .../magiconair/properties/parser.go | 95 - .../magiconair/properties/properties.go | 808 -- .../magiconair/properties/rangecheck.go | 31 - vendor/github.com/mattn/go-colorable/LICENSE | 21 - .../mattn/go-colorable/colorable_others.go | 27 - .../mattn/go-colorable/colorable_windows.go | 820 -- .../mattn/go-colorable/noncolorable.go | 61 - vendor/github.com/mattn/go-isatty/LICENSE | 9 - vendor/github.com/mattn/go-isatty/doc.go | 2 - .../mattn/go-isatty/isatty_appengine.go | 15 - .../github.com/mattn/go-isatty/isatty_bsd.go | 18 - .../mattn/go-isatty/isatty_linux.go | 18 - .../mattn/go-isatty/isatty_others.go | 10 - .../mattn/go-isatty/isatty_solaris.go | 16 - .../mattn/go-isatty/isatty_windows.go | 94 - .../github.com/mitchellh/go-homedir/LICENSE | 21 - .../github.com/mitchellh/go-homedir/README.md | 14 - .../mitchellh/go-homedir/homedir.go | 137 - .../github.com/mitchellh/mapstructure/LICENSE | 21 - .../mitchellh/mapstructure/README.md | 46 - .../mitchellh/mapstructure/decode_hooks.go | 152 - .../mitchellh/mapstructure/error.go | 50 - .../mitchellh/mapstructure/mapstructure.go | 828 -- vendor/github.com/pelletier/go-toml/LICENSE | 21 - vendor/github.com/pelletier/go-toml/README.md | 118 - .../pelletier/go-toml/benchmark.json | 164 - .../github.com/pelletier/go-toml/benchmark.sh | 32 - .../pelletier/go-toml/benchmark.toml | 244 - .../pelletier/go-toml/benchmark.yml | 121 - vendor/github.com/pelletier/go-toml/doc.go | 23 - .../pelletier/go-toml/example-crlf.toml | 29 - .../github.com/pelletier/go-toml/example.toml | 29 - .../pelletier/go-toml/keysparsing.go | 94 - vendor/github.com/pelletier/go-toml/lexer.go | 651 -- .../github.com/pelletier/go-toml/marshal.go | 489 -- .../pelletier/go-toml/marshal_test.toml | 38 - vendor/github.com/pelletier/go-toml/parser.go | 383 - .../github.com/pelletier/go-toml/position.go | 29 - vendor/github.com/pelletier/go-toml/test.sh | 90 - vendor/github.com/pelletier/go-toml/token.go | 140 - vendor/github.com/pelletier/go-toml/toml.go | 292 - .../pelletier/go-toml/tomltree_create.go | 142 - .../pelletier/go-toml/tomltree_write.go | 233 - vendor/github.com/spf13/afero/LICENSE.txt | 174 - vendor/github.com/spf13/afero/README.md | 449 - vendor/github.com/spf13/afero/afero.go | 108 - vendor/github.com/spf13/afero/appveyor.yml | 15 - vendor/github.com/spf13/afero/basepath.go | 145 - .../github.com/spf13/afero/cacheOnReadFs.go | 295 - vendor/github.com/spf13/afero/const_bsds.go | 22 - .../github.com/spf13/afero/const_win_unix.go | 25 - .../github.com/spf13/afero/copyOnWriteFs.go | 253 - vendor/github.com/spf13/afero/httpFs.go | 110 - vendor/github.com/spf13/afero/ioutil.go | 230 - vendor/github.com/spf13/afero/match.go | 110 - vendor/github.com/spf13/afero/mem/dir.go | 37 - vendor/github.com/spf13/afero/mem/dirmap.go | 43 - vendor/github.com/spf13/afero/mem/file.go | 285 - vendor/github.com/spf13/afero/memmap.go | 366 - vendor/github.com/spf13/afero/memradix.go | 14 - vendor/github.com/spf13/afero/os.go | 94 - vendor/github.com/spf13/afero/path.go | 108 - vendor/github.com/spf13/afero/readonlyfs.go | 70 - vendor/github.com/spf13/afero/regexpfs.go | 214 - vendor/github.com/spf13/afero/unionFile.go | 274 - vendor/github.com/spf13/afero/util.go | 331 - vendor/github.com/spf13/cast/LICENSE | 21 - vendor/github.com/spf13/cast/Makefile | 38 - vendor/github.com/spf13/cast/README.md | 75 - vendor/github.com/spf13/cast/cast.go | 159 - vendor/github.com/spf13/cast/caste.go | 1146 --- vendor/github.com/spf13/cobra/LICENSE.txt | 174 - vendor/github.com/spf13/cobra/README.md | 942 -- vendor/github.com/spf13/cobra/args.go | 98 - .../spf13/cobra/bash_completions.go | 537 -- .../spf13/cobra/bash_completions.md | 206 - vendor/github.com/spf13/cobra/cobra.go | 190 - vendor/github.com/spf13/cobra/command.go | 1306 --- .../github.com/spf13/cobra/command_notwin.go | 5 - vendor/github.com/spf13/cobra/command_win.go | 20 - .../github.com/spf13/cobra/zsh_completions.go | 114 - .../spf13/jwalterweatherman/LICENSE | 21 - .../spf13/jwalterweatherman/README.md | 148 - .../jwalterweatherman/default_notepad.go | 113 - .../spf13/jwalterweatherman/log_counter.go | 55 - .../spf13/jwalterweatherman/notepad.go | 194 - vendor/github.com/spf13/pflag/LICENSE | 28 - vendor/github.com/spf13/pflag/README.md | 296 - vendor/github.com/spf13/pflag/bool.go | 94 - vendor/github.com/spf13/pflag/bool_slice.go | 147 - vendor/github.com/spf13/pflag/count.go | 96 - vendor/github.com/spf13/pflag/duration.go | 86 - vendor/github.com/spf13/pflag/flag.go | 1132 --- vendor/github.com/spf13/pflag/float32.go | 88 - vendor/github.com/spf13/pflag/float64.go | 84 - vendor/github.com/spf13/pflag/golangflag.go | 101 - vendor/github.com/spf13/pflag/int.go | 84 - vendor/github.com/spf13/pflag/int32.go | 88 - vendor/github.com/spf13/pflag/int64.go | 84 - vendor/github.com/spf13/pflag/int8.go | 88 - vendor/github.com/spf13/pflag/int_slice.go | 128 - vendor/github.com/spf13/pflag/ip.go | 94 - vendor/github.com/spf13/pflag/ip_slice.go | 148 - vendor/github.com/spf13/pflag/ipmask.go | 122 - vendor/github.com/spf13/pflag/ipnet.go | 98 - vendor/github.com/spf13/pflag/string.go | 80 - vendor/github.com/spf13/pflag/string_array.go | 103 - vendor/github.com/spf13/pflag/string_slice.go | 129 - vendor/github.com/spf13/pflag/uint.go | 88 - vendor/github.com/spf13/pflag/uint16.go | 88 - vendor/github.com/spf13/pflag/uint32.go | 88 - vendor/github.com/spf13/pflag/uint64.go | 88 - vendor/github.com/spf13/pflag/uint8.go | 88 - vendor/github.com/spf13/pflag/uint_slice.go | 126 - vendor/github.com/spf13/viper/LICENSE | 21 - vendor/github.com/spf13/viper/README.md | 643 -- vendor/github.com/spf13/viper/flags.go | 57 - vendor/github.com/spf13/viper/util.go | 282 - vendor/github.com/spf13/viper/viper.go | 1571 ---- vendor/golang.org/x/crypto/LICENSE | 27 - vendor/golang.org/x/crypto/PATENTS | 22 - .../x/crypto/curve25519/const_amd64.s | 20 - .../x/crypto/curve25519/cswap_amd64.s | 88 - .../x/crypto/curve25519/curve25519.go | 841 -- vendor/golang.org/x/crypto/curve25519/doc.go | 23 - .../x/crypto/curve25519/freeze_amd64.s | 94 - .../x/crypto/curve25519/ladderstep_amd64.s | 1398 --- .../x/crypto/curve25519/mont25519_amd64.go | 240 - .../x/crypto/curve25519/mul_amd64.s | 191 - .../x/crypto/curve25519/square_amd64.s | 153 - vendor/golang.org/x/crypto/ed25519/ed25519.go | 181 - .../ed25519/internal/edwards25519/const.go | 1422 --- .../internal/edwards25519/edwards25519.go | 1771 ---- .../golang.org/x/crypto/ssh/agent/client.go | 659 -- .../golang.org/x/crypto/ssh/agent/forward.go | 103 - .../golang.org/x/crypto/ssh/agent/keyring.go | 215 - .../golang.org/x/crypto/ssh/agent/server.go | 451 - vendor/golang.org/x/crypto/ssh/buffer.go | 98 - vendor/golang.org/x/crypto/ssh/certs.go | 503 -- vendor/golang.org/x/crypto/ssh/channel.go | 633 -- vendor/golang.org/x/crypto/ssh/cipher.go | 579 -- vendor/golang.org/x/crypto/ssh/client.go | 213 - vendor/golang.org/x/crypto/ssh/client_auth.go | 473 - vendor/golang.org/x/crypto/ssh/common.go | 356 - vendor/golang.org/x/crypto/ssh/connection.go | 143 - vendor/golang.org/x/crypto/ssh/doc.go | 18 - vendor/golang.org/x/crypto/ssh/handshake.go | 460 - vendor/golang.org/x/crypto/ssh/kex.go | 526 -- vendor/golang.org/x/crypto/ssh/keys.go | 846 -- vendor/golang.org/x/crypto/ssh/mac.go | 57 - vendor/golang.org/x/crypto/ssh/messages.go | 758 -- vendor/golang.org/x/crypto/ssh/mux.go | 330 - vendor/golang.org/x/crypto/ssh/server.go | 488 -- vendor/golang.org/x/crypto/ssh/session.go | 627 -- vendor/golang.org/x/crypto/ssh/tcpip.go | 407 - vendor/golang.org/x/crypto/ssh/transport.go | 333 - vendor/golang.org/x/sys/LICENSE | 27 - vendor/golang.org/x/sys/PATENTS | 22 - vendor/golang.org/x/sys/unix/README.md | 173 - vendor/golang.org/x/sys/unix/asm_darwin_386.s | 29 - .../golang.org/x/sys/unix/asm_darwin_amd64.s | 29 - vendor/golang.org/x/sys/unix/asm_darwin_arm.s | 30 - .../golang.org/x/sys/unix/asm_darwin_arm64.s | 30 - .../x/sys/unix/asm_dragonfly_amd64.s | 29 - .../golang.org/x/sys/unix/asm_freebsd_386.s | 29 - .../golang.org/x/sys/unix/asm_freebsd_amd64.s | 29 - .../golang.org/x/sys/unix/asm_freebsd_arm.s | 29 - vendor/golang.org/x/sys/unix/asm_linux_386.s | 35 - .../golang.org/x/sys/unix/asm_linux_amd64.s | 29 - vendor/golang.org/x/sys/unix/asm_linux_arm.s | 29 - .../golang.org/x/sys/unix/asm_linux_arm64.s | 24 - .../golang.org/x/sys/unix/asm_linux_mips64x.s | 28 - .../golang.org/x/sys/unix/asm_linux_mipsx.s | 31 - .../golang.org/x/sys/unix/asm_linux_ppc64x.s | 28 - .../golang.org/x/sys/unix/asm_linux_s390x.s | 28 - vendor/golang.org/x/sys/unix/asm_netbsd_386.s | 29 - .../golang.org/x/sys/unix/asm_netbsd_amd64.s | 29 - vendor/golang.org/x/sys/unix/asm_netbsd_arm.s | 29 - .../golang.org/x/sys/unix/asm_openbsd_386.s | 29 - .../golang.org/x/sys/unix/asm_openbsd_amd64.s | 29 - .../golang.org/x/sys/unix/asm_openbsd_arm.s | 29 - .../golang.org/x/sys/unix/asm_solaris_amd64.s | 17 - .../golang.org/x/sys/unix/bluetooth_linux.go | 35 - vendor/golang.org/x/sys/unix/cap_freebsd.go | 195 - vendor/golang.org/x/sys/unix/constants.go | 13 - vendor/golang.org/x/sys/unix/dev_darwin.go | 24 - vendor/golang.org/x/sys/unix/dev_linux.go | 42 - vendor/golang.org/x/sys/unix/dirent.go | 102 - vendor/golang.org/x/sys/unix/endian_big.go | 9 - vendor/golang.org/x/sys/unix/endian_little.go | 9 - vendor/golang.org/x/sys/unix/env_unix.go | 27 - vendor/golang.org/x/sys/unix/env_unset.go | 14 - .../x/sys/unix/errors_freebsd_386.go | 227 - .../x/sys/unix/errors_freebsd_amd64.go | 227 - .../x/sys/unix/errors_freebsd_arm.go | 226 - vendor/golang.org/x/sys/unix/file_unix.go | 27 - vendor/golang.org/x/sys/unix/flock.go | 22 - .../x/sys/unix/flock_linux_32bit.go | 13 - vendor/golang.org/x/sys/unix/gccgo.go | 46 - vendor/golang.org/x/sys/unix/gccgo_c.c | 41 - .../x/sys/unix/gccgo_linux_amd64.go | 20 - .../x/sys/unix/gccgo_linux_sparc64.go | 20 - vendor/golang.org/x/sys/unix/mkall.sh | 197 - vendor/golang.org/x/sys/unix/mkerrors.sh | 563 -- vendor/golang.org/x/sys/unix/mkpost.go | 88 - vendor/golang.org/x/sys/unix/mksyscall.pl | 328 - .../x/sys/unix/mksyscall_solaris.pl | 289 - .../golang.org/x/sys/unix/mksysctl_openbsd.pl | 264 - .../golang.org/x/sys/unix/mksysnum_darwin.pl | 39 - .../x/sys/unix/mksysnum_dragonfly.pl | 50 - .../golang.org/x/sys/unix/mksysnum_freebsd.pl | 50 - .../golang.org/x/sys/unix/mksysnum_netbsd.pl | 58 - .../golang.org/x/sys/unix/mksysnum_openbsd.pl | 50 - .../golang.org/x/sys/unix/openbsd_pledge.go | 38 - vendor/golang.org/x/sys/unix/race.go | 30 - vendor/golang.org/x/sys/unix/race0.go | 25 - .../golang.org/x/sys/unix/sockcmsg_linux.go | 36 - vendor/golang.org/x/sys/unix/sockcmsg_unix.go | 104 - vendor/golang.org/x/sys/unix/str.go | 26 - vendor/golang.org/x/sys/unix/syscall.go | 69 - vendor/golang.org/x/sys/unix/syscall_bsd.go | 635 -- .../golang.org/x/sys/unix/syscall_darwin.go | 536 -- .../x/sys/unix/syscall_darwin_386.go | 77 - .../x/sys/unix/syscall_darwin_amd64.go | 77 - .../x/sys/unix/syscall_darwin_arm.go | 71 - .../x/sys/unix/syscall_darwin_arm64.go | 77 - .../x/sys/unix/syscall_dragonfly.go | 415 - .../x/sys/unix/syscall_dragonfly_amd64.go | 61 - .../golang.org/x/sys/unix/syscall_freebsd.go | 708 -- .../x/sys/unix/syscall_freebsd_386.go | 61 - .../x/sys/unix/syscall_freebsd_amd64.go | 61 - .../x/sys/unix/syscall_freebsd_arm.go | 61 - vendor/golang.org/x/sys/unix/syscall_linux.go | 1469 ---- .../x/sys/unix/syscall_linux_386.go | 399 - .../x/sys/unix/syscall_linux_amd64.go | 152 - .../x/sys/unix/syscall_linux_amd64_gc.go | 13 - .../x/sys/unix/syscall_linux_arm.go | 263 - .../x/sys/unix/syscall_linux_arm64.go | 190 - .../x/sys/unix/syscall_linux_mips64x.go | 209 - .../x/sys/unix/syscall_linux_mipsx.go | 239 - .../x/sys/unix/syscall_linux_ppc64x.go | 135 - .../x/sys/unix/syscall_linux_s390x.go | 328 - .../x/sys/unix/syscall_linux_sparc64.go | 169 - .../golang.org/x/sys/unix/syscall_netbsd.go | 472 - .../x/sys/unix/syscall_netbsd_386.go | 42 - .../x/sys/unix/syscall_netbsd_amd64.go | 42 - .../x/sys/unix/syscall_netbsd_arm.go | 42 - .../golang.org/x/sys/unix/syscall_no_getwd.go | 11 - .../golang.org/x/sys/unix/syscall_openbsd.go | 282 - .../x/sys/unix/syscall_openbsd_386.go | 42 - .../x/sys/unix/syscall_openbsd_amd64.go | 42 - .../x/sys/unix/syscall_openbsd_arm.go | 44 - .../golang.org/x/sys/unix/syscall_solaris.go | 716 -- .../x/sys/unix/syscall_solaris_amd64.go | 35 - vendor/golang.org/x/sys/unix/syscall_unix.go | 293 - .../golang.org/x/sys/unix/syscall_unix_gc.go | 15 - vendor/golang.org/x/sys/unix/types_darwin.go | 254 - .../golang.org/x/sys/unix/types_dragonfly.go | 249 - vendor/golang.org/x/sys/unix/types_freebsd.go | 372 - vendor/golang.org/x/sys/unix/types_netbsd.go | 239 - vendor/golang.org/x/sys/unix/types_openbsd.go | 251 - vendor/golang.org/x/sys/unix/types_solaris.go | 269 - .../x/sys/unix/zerrors_darwin_386.go | 1673 ---- .../x/sys/unix/zerrors_darwin_amd64.go | 1673 ---- .../x/sys/unix/zerrors_darwin_arm.go | 1673 ---- .../x/sys/unix/zerrors_darwin_arm64.go | 1673 ---- .../x/sys/unix/zerrors_dragonfly_amd64.go | 1568 ---- .../x/sys/unix/zerrors_freebsd_386.go | 1706 ---- .../x/sys/unix/zerrors_freebsd_amd64.go | 1707 ---- .../x/sys/unix/zerrors_freebsd_arm.go | 1715 ---- .../x/sys/unix/zerrors_linux_386.go | 2200 ----- .../x/sys/unix/zerrors_linux_amd64.go | 2201 ----- .../x/sys/unix/zerrors_linux_arm.go | 2205 ----- .../x/sys/unix/zerrors_linux_arm64.go | 2190 ----- .../x/sys/unix/zerrors_linux_mips.go | 2209 ----- .../x/sys/unix/zerrors_linux_mips64.go | 2209 ----- .../x/sys/unix/zerrors_linux_mips64le.go | 2209 ----- .../x/sys/unix/zerrors_linux_mipsle.go | 2209 ----- .../x/sys/unix/zerrors_linux_ppc64.go | 2263 ----- .../x/sys/unix/zerrors_linux_ppc64le.go | 2263 ----- .../x/sys/unix/zerrors_linux_s390x.go | 2262 ----- .../x/sys/unix/zerrors_linux_sparc64.go | 2142 ----- .../x/sys/unix/zerrors_netbsd_386.go | 1712 ---- .../x/sys/unix/zerrors_netbsd_amd64.go | 1702 ---- .../x/sys/unix/zerrors_netbsd_arm.go | 1691 ---- .../x/sys/unix/zerrors_openbsd_386.go | 1584 ---- .../x/sys/unix/zerrors_openbsd_amd64.go | 1583 ---- .../x/sys/unix/zerrors_openbsd_arm.go | 1586 ---- .../x/sys/unix/zerrors_solaris_amd64.go | 1483 ---- .../x/sys/unix/zsyscall_darwin_386.go | 1609 ---- .../x/sys/unix/zsyscall_darwin_amd64.go | 1609 ---- .../x/sys/unix/zsyscall_darwin_arm.go | 1609 ---- .../x/sys/unix/zsyscall_darwin_arm64.go | 1609 ---- .../x/sys/unix/zsyscall_dragonfly_amd64.go | 1440 ---- .../x/sys/unix/zsyscall_freebsd_386.go | 1877 ---- .../x/sys/unix/zsyscall_freebsd_amd64.go | 1877 ---- .../x/sys/unix/zsyscall_freebsd_arm.go | 1877 ---- .../x/sys/unix/zsyscall_linux_386.go | 1953 ----- .../x/sys/unix/zsyscall_linux_amd64.go | 2146 ----- .../x/sys/unix/zsyscall_linux_arm.go | 2055 ----- .../x/sys/unix/zsyscall_linux_arm64.go | 2029 ----- .../x/sys/unix/zsyscall_linux_mips.go | 2111 ----- .../x/sys/unix/zsyscall_linux_mips64.go | 2105 ----- .../x/sys/unix/zsyscall_linux_mips64le.go | 2105 ----- .../x/sys/unix/zsyscall_linux_mipsle.go | 2111 ----- .../x/sys/unix/zsyscall_linux_ppc64.go | 2157 ----- .../x/sys/unix/zsyscall_linux_ppc64le.go | 2157 ----- .../x/sys/unix/zsyscall_linux_s390x.go | 1937 ----- .../x/sys/unix/zsyscall_linux_sparc64.go | 1833 ---- .../x/sys/unix/zsyscall_netbsd_386.go | 1346 --- .../x/sys/unix/zsyscall_netbsd_amd64.go | 1346 --- .../x/sys/unix/zsyscall_netbsd_arm.go | 1346 --- .../x/sys/unix/zsyscall_openbsd_386.go | 1404 --- .../x/sys/unix/zsyscall_openbsd_amd64.go | 1404 --- .../x/sys/unix/zsyscall_openbsd_arm.go | 1404 --- .../x/sys/unix/zsyscall_solaris_amd64.go | 1600 ---- .../golang.org/x/sys/unix/zsysctl_openbsd.go | 270 - .../x/sys/unix/zsysnum_darwin_386.go | 398 - .../x/sys/unix/zsysnum_darwin_amd64.go | 398 - .../x/sys/unix/zsysnum_darwin_arm.go | 426 - .../x/sys/unix/zsysnum_darwin_arm64.go | 426 - .../x/sys/unix/zsysnum_dragonfly_amd64.go | 315 - .../x/sys/unix/zsysnum_freebsd_386.go | 353 - .../x/sys/unix/zsysnum_freebsd_amd64.go | 353 - .../x/sys/unix/zsysnum_freebsd_arm.go | 353 - .../x/sys/unix/zsysnum_linux_386.go | 388 - .../x/sys/unix/zsysnum_linux_amd64.go | 341 - .../x/sys/unix/zsysnum_linux_arm.go | 361 - .../x/sys/unix/zsysnum_linux_arm64.go | 285 - .../x/sys/unix/zsysnum_linux_mips.go | 374 - .../x/sys/unix/zsysnum_linux_mips64.go | 334 - .../x/sys/unix/zsysnum_linux_mips64le.go | 334 - .../x/sys/unix/zsysnum_linux_mipsle.go | 374 - .../x/sys/unix/zsysnum_linux_ppc64.go | 369 - .../x/sys/unix/zsysnum_linux_ppc64le.go | 369 - .../x/sys/unix/zsysnum_linux_s390x.go | 331 - .../x/sys/unix/zsysnum_linux_sparc64.go | 348 - .../x/sys/unix/zsysnum_netbsd_386.go | 274 - .../x/sys/unix/zsysnum_netbsd_amd64.go | 274 - .../x/sys/unix/zsysnum_netbsd_arm.go | 274 - .../x/sys/unix/zsysnum_openbsd_386.go | 207 - .../x/sys/unix/zsysnum_openbsd_amd64.go | 207 - .../x/sys/unix/zsysnum_openbsd_arm.go | 213 - .../x/sys/unix/zsysnum_solaris_amd64.go | 13 - .../x/sys/unix/ztypes_darwin_386.go | 462 - .../x/sys/unix/ztypes_darwin_amd64.go | 472 - .../x/sys/unix/ztypes_darwin_arm.go | 463 - .../x/sys/unix/ztypes_darwin_arm64.go | 471 - .../x/sys/unix/ztypes_dragonfly_amd64.go | 448 - .../x/sys/unix/ztypes_freebsd_386.go | 521 -- .../x/sys/unix/ztypes_freebsd_amd64.go | 524 -- .../x/sys/unix/ztypes_freebsd_arm.go | 524 -- .../golang.org/x/sys/unix/ztypes_linux_386.go | 795 -- .../x/sys/unix/ztypes_linux_amd64.go | 813 -- .../golang.org/x/sys/unix/ztypes_linux_arm.go | 784 -- .../x/sys/unix/ztypes_linux_arm64.go | 792 -- .../x/sys/unix/ztypes_linux_mips.go | 789 -- .../x/sys/unix/ztypes_linux_mips64.go | 794 -- .../x/sys/unix/ztypes_linux_mips64le.go | 794 -- .../x/sys/unix/ztypes_linux_mipsle.go | 789 -- .../x/sys/unix/ztypes_linux_ppc64.go | 802 -- .../x/sys/unix/ztypes_linux_ppc64le.go | 802 -- .../x/sys/unix/ztypes_linux_s390x.go | 819 -- .../x/sys/unix/ztypes_linux_sparc64.go | 666 -- .../x/sys/unix/ztypes_netbsd_386.go | 401 - .../x/sys/unix/ztypes_netbsd_amd64.go | 408 - .../x/sys/unix/ztypes_netbsd_arm.go | 406 - .../x/sys/unix/ztypes_openbsd_386.go | 446 - .../x/sys/unix/ztypes_openbsd_amd64.go | 453 - .../x/sys/unix/ztypes_openbsd_arm.go | 439 - .../x/sys/unix/ztypes_solaris_amd64.go | 442 - vendor/golang.org/x/text/LICENSE | 27 - vendor/golang.org/x/text/PATENTS | 22 - .../golang.org/x/text/transform/transform.go | 705 -- .../x/text/unicode/norm/composition.go | 508 -- .../x/text/unicode/norm/forminfo.go | 259 - .../golang.org/x/text/unicode/norm/input.go | 109 - vendor/golang.org/x/text/unicode/norm/iter.go | 457 - .../x/text/unicode/norm/maketables.go | 976 --- .../x/text/unicode/norm/normalize.go | 609 -- .../x/text/unicode/norm/readwriter.go | 125 - .../golang.org/x/text/unicode/norm/tables.go | 7631 ----------------- .../x/text/unicode/norm/transform.go | 88 - vendor/golang.org/x/text/unicode/norm/trie.go | 54 - .../golang.org/x/text/unicode/norm/triegen.go | 117 - vendor/gopkg.in/yaml.v2/LICENSE | 201 - vendor/gopkg.in/yaml.v2/LICENSE.libyaml | 31 - vendor/gopkg.in/yaml.v2/README.md | 133 - vendor/gopkg.in/yaml.v2/apic.go | 742 -- vendor/gopkg.in/yaml.v2/decode.go | 685 -- vendor/gopkg.in/yaml.v2/emitterc.go | 1684 ---- vendor/gopkg.in/yaml.v2/encode.go | 306 - vendor/gopkg.in/yaml.v2/parserc.go | 1095 --- vendor/gopkg.in/yaml.v2/readerc.go | 394 - vendor/gopkg.in/yaml.v2/resolve.go | 208 - vendor/gopkg.in/yaml.v2/scannerc.go | 2711 ------ vendor/gopkg.in/yaml.v2/sorter.go | 104 - vendor/gopkg.in/yaml.v2/writerc.go | 89 - vendor/gopkg.in/yaml.v2/yaml.go | 357 - vendor/gopkg.in/yaml.v2/yamlh.go | 716 -- vendor/gopkg.in/yaml.v2/yamlprivateh.go | 173 - vendor/vendor.json | 213 - 527 files changed, 3890 insertions(+), 213525 deletions(-) create mode 100644 .github/workflows/ci.yml create mode 100644 .github/workflows/codeql.yml create mode 100644 .github/workflows/go.yml create mode 100644 cmd/hosts.go create mode 100644 cmd/hosts_test.go create mode 100644 docker-compose.sshd.yml create mode 100644 docker/sshd/Dockerfile create mode 100644 docker/sshd/entrypoint.sh create mode 100644 go.mod create mode 100644 go.sum create mode 100644 internal/jobs/manager.go create mode 100644 internal/jobs/manager_test.go create mode 100644 internal/jobs/sentinel.go create mode 100644 internal/jobs/sentinel_test.go create mode 100644 internal/jobs/types.go create mode 100644 internal/shell/command.go create mode 100644 internal/shell/command_test.go create mode 100644 internal/shell/history.go create mode 100644 internal/shell/history_test.go create mode 100644 internal/shell/model.go create mode 100644 internal/shell/model_test.go create mode 100644 internal/shell/output_buffer.go create mode 100644 internal/shell/output_buffer_test.go create mode 100644 internal/shell/shell.go create mode 100644 internal/shell/shell_test.go create mode 100644 internal/shell/status.go create mode 100644 internal/shell/status_test.go create mode 100644 internal/shell/testdata/empty-history create mode 100644 internal/shell/view.go create mode 100644 internal/shell/wrap.go create mode 100644 internal/shell/wrap_test.go create mode 100644 internal/sshConn/async.go create mode 100644 internal/sshConn/command.go create mode 100644 internal/sshConn/config.go create mode 100644 internal/sshConn/config_test.go create mode 100644 internal/sshConn/message.go create mode 100644 internal/sshConn/output.go create mode 100644 internal/sshConn/output_test.go create mode 100644 internal/sshConn/ssh.go create mode 100644 internal/sshConn/ssh_test.go create mode 100755 pretty create mode 100644 renovate.json create mode 100755 scripts/ssh-testbed-setup.sh delete mode 100644 shell/shell.go delete mode 100644 sshConn/message.go delete mode 100644 sshConn/ssh.go delete mode 100644 vendor/github.com/chzyer/readline/CHANGELOG.md delete mode 100644 vendor/github.com/chzyer/readline/LICENSE delete mode 100644 vendor/github.com/chzyer/readline/README.md delete mode 100644 vendor/github.com/chzyer/readline/ansi_windows.go delete mode 100644 vendor/github.com/chzyer/readline/complete.go delete mode 100644 vendor/github.com/chzyer/readline/complete_helper.go delete mode 100644 vendor/github.com/chzyer/readline/complete_segment.go delete mode 100644 vendor/github.com/chzyer/readline/history.go delete mode 100644 vendor/github.com/chzyer/readline/operation.go delete mode 100644 vendor/github.com/chzyer/readline/password.go delete mode 100644 vendor/github.com/chzyer/readline/rawreader_windows.go delete mode 100644 vendor/github.com/chzyer/readline/readline.go delete mode 100644 vendor/github.com/chzyer/readline/remote.go delete mode 100644 vendor/github.com/chzyer/readline/runebuf.go delete mode 100644 vendor/github.com/chzyer/readline/runes.go delete mode 100644 vendor/github.com/chzyer/readline/search.go delete mode 100644 vendor/github.com/chzyer/readline/std.go delete mode 100644 vendor/github.com/chzyer/readline/std_windows.go delete mode 100644 vendor/github.com/chzyer/readline/term.go delete mode 100644 vendor/github.com/chzyer/readline/term_bsd.go delete mode 100644 vendor/github.com/chzyer/readline/term_linux.go delete mode 100644 vendor/github.com/chzyer/readline/term_solaris.go delete mode 100644 vendor/github.com/chzyer/readline/term_unix.go delete mode 100644 vendor/github.com/chzyer/readline/term_windows.go delete mode 100644 vendor/github.com/chzyer/readline/terminal.go delete mode 100644 vendor/github.com/chzyer/readline/utils.go delete mode 100644 vendor/github.com/chzyer/readline/utils_unix.go delete mode 100644 vendor/github.com/chzyer/readline/utils_windows.go delete mode 100644 vendor/github.com/chzyer/readline/vim.go delete mode 100644 vendor/github.com/chzyer/readline/windows_api.go delete mode 100644 vendor/github.com/fatih/color/LICENSE.md delete mode 100644 vendor/github.com/fatih/color/README.md delete mode 100644 vendor/github.com/fatih/color/color.go delete mode 100644 vendor/github.com/fatih/color/doc.go delete mode 100644 vendor/github.com/fsnotify/fsnotify/AUTHORS delete mode 100644 vendor/github.com/fsnotify/fsnotify/CHANGELOG.md delete mode 100644 vendor/github.com/fsnotify/fsnotify/CONTRIBUTING.md delete mode 100644 vendor/github.com/fsnotify/fsnotify/LICENSE delete mode 100644 vendor/github.com/fsnotify/fsnotify/README.md delete mode 100644 vendor/github.com/fsnotify/fsnotify/fen.go delete mode 100644 vendor/github.com/fsnotify/fsnotify/fsnotify.go delete mode 100644 vendor/github.com/fsnotify/fsnotify/inotify.go delete mode 100644 vendor/github.com/fsnotify/fsnotify/inotify_poller.go delete mode 100644 vendor/github.com/fsnotify/fsnotify/kqueue.go delete mode 100644 vendor/github.com/fsnotify/fsnotify/open_mode_bsd.go delete mode 100644 vendor/github.com/fsnotify/fsnotify/open_mode_darwin.go delete mode 100644 vendor/github.com/fsnotify/fsnotify/windows.go delete mode 100644 vendor/github.com/hashicorp/hcl/LICENSE delete mode 100644 vendor/github.com/hashicorp/hcl/Makefile delete mode 100644 vendor/github.com/hashicorp/hcl/README.md delete mode 100644 vendor/github.com/hashicorp/hcl/appveyor.yml delete mode 100644 vendor/github.com/hashicorp/hcl/decoder.go delete mode 100644 vendor/github.com/hashicorp/hcl/hcl.go delete mode 100644 vendor/github.com/hashicorp/hcl/hcl/ast/ast.go delete mode 100644 vendor/github.com/hashicorp/hcl/hcl/ast/walk.go delete mode 100644 vendor/github.com/hashicorp/hcl/hcl/parser/error.go delete mode 100644 vendor/github.com/hashicorp/hcl/hcl/parser/parser.go delete mode 100644 vendor/github.com/hashicorp/hcl/hcl/scanner/scanner.go delete mode 100644 vendor/github.com/hashicorp/hcl/hcl/strconv/quote.go delete mode 100644 vendor/github.com/hashicorp/hcl/hcl/token/position.go delete mode 100644 vendor/github.com/hashicorp/hcl/hcl/token/token.go delete mode 100644 vendor/github.com/hashicorp/hcl/json/parser/flatten.go delete mode 100644 vendor/github.com/hashicorp/hcl/json/parser/parser.go delete mode 100644 vendor/github.com/hashicorp/hcl/json/scanner/scanner.go delete mode 100644 vendor/github.com/hashicorp/hcl/json/token/position.go delete mode 100644 vendor/github.com/hashicorp/hcl/json/token/token.go delete mode 100644 vendor/github.com/hashicorp/hcl/lex.go delete mode 100644 vendor/github.com/hashicorp/hcl/parse.go delete mode 100644 vendor/github.com/magiconair/properties/CHANGELOG.md delete mode 100644 vendor/github.com/magiconair/properties/LICENSE delete mode 100644 vendor/github.com/magiconair/properties/README.md delete mode 100644 vendor/github.com/magiconair/properties/decode.go delete mode 100644 vendor/github.com/magiconair/properties/doc.go delete mode 100644 vendor/github.com/magiconair/properties/integrate.go delete mode 100644 vendor/github.com/magiconair/properties/lex.go delete mode 100644 vendor/github.com/magiconair/properties/load.go delete mode 100644 vendor/github.com/magiconair/properties/parser.go delete mode 100644 vendor/github.com/magiconair/properties/properties.go delete mode 100644 vendor/github.com/magiconair/properties/rangecheck.go delete mode 100644 vendor/github.com/mattn/go-colorable/LICENSE delete mode 100644 vendor/github.com/mattn/go-colorable/colorable_others.go delete mode 100644 vendor/github.com/mattn/go-colorable/colorable_windows.go delete mode 100644 vendor/github.com/mattn/go-colorable/noncolorable.go delete mode 100644 vendor/github.com/mattn/go-isatty/LICENSE delete mode 100644 vendor/github.com/mattn/go-isatty/doc.go delete mode 100644 vendor/github.com/mattn/go-isatty/isatty_appengine.go delete mode 100644 vendor/github.com/mattn/go-isatty/isatty_bsd.go delete mode 100644 vendor/github.com/mattn/go-isatty/isatty_linux.go delete mode 100644 vendor/github.com/mattn/go-isatty/isatty_others.go delete mode 100644 vendor/github.com/mattn/go-isatty/isatty_solaris.go delete mode 100644 vendor/github.com/mattn/go-isatty/isatty_windows.go delete mode 100644 vendor/github.com/mitchellh/go-homedir/LICENSE delete mode 100644 vendor/github.com/mitchellh/go-homedir/README.md delete mode 100644 vendor/github.com/mitchellh/go-homedir/homedir.go delete mode 100644 vendor/github.com/mitchellh/mapstructure/LICENSE delete mode 100644 vendor/github.com/mitchellh/mapstructure/README.md delete mode 100644 vendor/github.com/mitchellh/mapstructure/decode_hooks.go delete mode 100644 vendor/github.com/mitchellh/mapstructure/error.go delete mode 100644 vendor/github.com/mitchellh/mapstructure/mapstructure.go delete mode 100644 vendor/github.com/pelletier/go-toml/LICENSE delete mode 100644 vendor/github.com/pelletier/go-toml/README.md delete mode 100644 vendor/github.com/pelletier/go-toml/benchmark.json delete mode 100755 vendor/github.com/pelletier/go-toml/benchmark.sh delete mode 100644 vendor/github.com/pelletier/go-toml/benchmark.toml delete mode 100644 vendor/github.com/pelletier/go-toml/benchmark.yml delete mode 100644 vendor/github.com/pelletier/go-toml/doc.go delete mode 100644 vendor/github.com/pelletier/go-toml/example-crlf.toml delete mode 100644 vendor/github.com/pelletier/go-toml/example.toml delete mode 100644 vendor/github.com/pelletier/go-toml/keysparsing.go delete mode 100644 vendor/github.com/pelletier/go-toml/lexer.go delete mode 100644 vendor/github.com/pelletier/go-toml/marshal.go delete mode 100644 vendor/github.com/pelletier/go-toml/marshal_test.toml delete mode 100644 vendor/github.com/pelletier/go-toml/parser.go delete mode 100644 vendor/github.com/pelletier/go-toml/position.go delete mode 100755 vendor/github.com/pelletier/go-toml/test.sh delete mode 100644 vendor/github.com/pelletier/go-toml/token.go delete mode 100644 vendor/github.com/pelletier/go-toml/toml.go delete mode 100644 vendor/github.com/pelletier/go-toml/tomltree_create.go delete mode 100644 vendor/github.com/pelletier/go-toml/tomltree_write.go delete mode 100644 vendor/github.com/spf13/afero/LICENSE.txt delete mode 100644 vendor/github.com/spf13/afero/README.md delete mode 100644 vendor/github.com/spf13/afero/afero.go delete mode 100644 vendor/github.com/spf13/afero/appveyor.yml delete mode 100644 vendor/github.com/spf13/afero/basepath.go delete mode 100644 vendor/github.com/spf13/afero/cacheOnReadFs.go delete mode 100644 vendor/github.com/spf13/afero/const_bsds.go delete mode 100644 vendor/github.com/spf13/afero/const_win_unix.go delete mode 100644 vendor/github.com/spf13/afero/copyOnWriteFs.go delete mode 100644 vendor/github.com/spf13/afero/httpFs.go delete mode 100644 vendor/github.com/spf13/afero/ioutil.go delete mode 100644 vendor/github.com/spf13/afero/match.go delete mode 100644 vendor/github.com/spf13/afero/mem/dir.go delete mode 100644 vendor/github.com/spf13/afero/mem/dirmap.go delete mode 100644 vendor/github.com/spf13/afero/mem/file.go delete mode 100644 vendor/github.com/spf13/afero/memmap.go delete mode 100644 vendor/github.com/spf13/afero/memradix.go delete mode 100644 vendor/github.com/spf13/afero/os.go delete mode 100644 vendor/github.com/spf13/afero/path.go delete mode 100644 vendor/github.com/spf13/afero/readonlyfs.go delete mode 100644 vendor/github.com/spf13/afero/regexpfs.go delete mode 100644 vendor/github.com/spf13/afero/unionFile.go delete mode 100644 vendor/github.com/spf13/afero/util.go delete mode 100644 vendor/github.com/spf13/cast/LICENSE delete mode 100644 vendor/github.com/spf13/cast/Makefile delete mode 100644 vendor/github.com/spf13/cast/README.md delete mode 100644 vendor/github.com/spf13/cast/cast.go delete mode 100644 vendor/github.com/spf13/cast/caste.go delete mode 100644 vendor/github.com/spf13/cobra/LICENSE.txt delete mode 100644 vendor/github.com/spf13/cobra/README.md delete mode 100644 vendor/github.com/spf13/cobra/args.go delete mode 100644 vendor/github.com/spf13/cobra/bash_completions.go delete mode 100644 vendor/github.com/spf13/cobra/bash_completions.md delete mode 100644 vendor/github.com/spf13/cobra/cobra.go delete mode 100644 vendor/github.com/spf13/cobra/command.go delete mode 100644 vendor/github.com/spf13/cobra/command_notwin.go delete mode 100644 vendor/github.com/spf13/cobra/command_win.go delete mode 100644 vendor/github.com/spf13/cobra/zsh_completions.go delete mode 100644 vendor/github.com/spf13/jwalterweatherman/LICENSE delete mode 100644 vendor/github.com/spf13/jwalterweatherman/README.md delete mode 100644 vendor/github.com/spf13/jwalterweatherman/default_notepad.go delete mode 100644 vendor/github.com/spf13/jwalterweatherman/log_counter.go delete mode 100644 vendor/github.com/spf13/jwalterweatherman/notepad.go delete mode 100644 vendor/github.com/spf13/pflag/LICENSE delete mode 100644 vendor/github.com/spf13/pflag/README.md delete mode 100644 vendor/github.com/spf13/pflag/bool.go delete mode 100644 vendor/github.com/spf13/pflag/bool_slice.go delete mode 100644 vendor/github.com/spf13/pflag/count.go delete mode 100644 vendor/github.com/spf13/pflag/duration.go delete mode 100644 vendor/github.com/spf13/pflag/flag.go delete mode 100644 vendor/github.com/spf13/pflag/float32.go delete mode 100644 vendor/github.com/spf13/pflag/float64.go delete mode 100644 vendor/github.com/spf13/pflag/golangflag.go delete mode 100644 vendor/github.com/spf13/pflag/int.go delete mode 100644 vendor/github.com/spf13/pflag/int32.go delete mode 100644 vendor/github.com/spf13/pflag/int64.go delete mode 100644 vendor/github.com/spf13/pflag/int8.go delete mode 100644 vendor/github.com/spf13/pflag/int_slice.go delete mode 100644 vendor/github.com/spf13/pflag/ip.go delete mode 100644 vendor/github.com/spf13/pflag/ip_slice.go delete mode 100644 vendor/github.com/spf13/pflag/ipmask.go delete mode 100644 vendor/github.com/spf13/pflag/ipnet.go delete mode 100644 vendor/github.com/spf13/pflag/string.go delete mode 100644 vendor/github.com/spf13/pflag/string_array.go delete mode 100644 vendor/github.com/spf13/pflag/string_slice.go delete mode 100644 vendor/github.com/spf13/pflag/uint.go delete mode 100644 vendor/github.com/spf13/pflag/uint16.go delete mode 100644 vendor/github.com/spf13/pflag/uint32.go delete mode 100644 vendor/github.com/spf13/pflag/uint64.go delete mode 100644 vendor/github.com/spf13/pflag/uint8.go delete mode 100644 vendor/github.com/spf13/pflag/uint_slice.go delete mode 100644 vendor/github.com/spf13/viper/LICENSE delete mode 100644 vendor/github.com/spf13/viper/README.md delete mode 100644 vendor/github.com/spf13/viper/flags.go delete mode 100644 vendor/github.com/spf13/viper/util.go delete mode 100644 vendor/github.com/spf13/viper/viper.go delete mode 100644 vendor/golang.org/x/crypto/LICENSE delete mode 100644 vendor/golang.org/x/crypto/PATENTS delete mode 100644 vendor/golang.org/x/crypto/curve25519/const_amd64.s delete mode 100644 vendor/golang.org/x/crypto/curve25519/cswap_amd64.s delete mode 100644 vendor/golang.org/x/crypto/curve25519/curve25519.go delete mode 100644 vendor/golang.org/x/crypto/curve25519/doc.go delete mode 100644 vendor/golang.org/x/crypto/curve25519/freeze_amd64.s delete mode 100644 vendor/golang.org/x/crypto/curve25519/ladderstep_amd64.s delete mode 100644 vendor/golang.org/x/crypto/curve25519/mont25519_amd64.go delete mode 100644 vendor/golang.org/x/crypto/curve25519/mul_amd64.s delete mode 100644 vendor/golang.org/x/crypto/curve25519/square_amd64.s delete mode 100644 vendor/golang.org/x/crypto/ed25519/ed25519.go delete mode 100644 vendor/golang.org/x/crypto/ed25519/internal/edwards25519/const.go delete mode 100644 vendor/golang.org/x/crypto/ed25519/internal/edwards25519/edwards25519.go delete mode 100644 vendor/golang.org/x/crypto/ssh/agent/client.go delete mode 100644 vendor/golang.org/x/crypto/ssh/agent/forward.go delete mode 100644 vendor/golang.org/x/crypto/ssh/agent/keyring.go delete mode 100644 vendor/golang.org/x/crypto/ssh/agent/server.go delete mode 100644 vendor/golang.org/x/crypto/ssh/buffer.go delete mode 100644 vendor/golang.org/x/crypto/ssh/certs.go delete mode 100644 vendor/golang.org/x/crypto/ssh/channel.go delete mode 100644 vendor/golang.org/x/crypto/ssh/cipher.go delete mode 100644 vendor/golang.org/x/crypto/ssh/client.go delete mode 100644 vendor/golang.org/x/crypto/ssh/client_auth.go delete mode 100644 vendor/golang.org/x/crypto/ssh/common.go delete mode 100644 vendor/golang.org/x/crypto/ssh/connection.go delete mode 100644 vendor/golang.org/x/crypto/ssh/doc.go delete mode 100644 vendor/golang.org/x/crypto/ssh/handshake.go delete mode 100644 vendor/golang.org/x/crypto/ssh/kex.go delete mode 100644 vendor/golang.org/x/crypto/ssh/keys.go delete mode 100644 vendor/golang.org/x/crypto/ssh/mac.go delete mode 100644 vendor/golang.org/x/crypto/ssh/messages.go delete mode 100644 vendor/golang.org/x/crypto/ssh/mux.go delete mode 100644 vendor/golang.org/x/crypto/ssh/server.go delete mode 100644 vendor/golang.org/x/crypto/ssh/session.go delete mode 100644 vendor/golang.org/x/crypto/ssh/tcpip.go delete mode 100644 vendor/golang.org/x/crypto/ssh/transport.go delete mode 100644 vendor/golang.org/x/sys/LICENSE delete mode 100644 vendor/golang.org/x/sys/PATENTS delete mode 100644 vendor/golang.org/x/sys/unix/README.md delete mode 100644 vendor/golang.org/x/sys/unix/asm_darwin_386.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_darwin_amd64.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_darwin_arm.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_darwin_arm64.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_dragonfly_amd64.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_freebsd_386.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_freebsd_amd64.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_freebsd_arm.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_linux_386.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_linux_amd64.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_linux_arm.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_linux_arm64.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_linux_mips64x.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_linux_mipsx.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_linux_s390x.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_netbsd_386.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_netbsd_amd64.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_netbsd_arm.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_openbsd_386.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_openbsd_amd64.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_openbsd_arm.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_solaris_amd64.s delete mode 100644 vendor/golang.org/x/sys/unix/bluetooth_linux.go delete mode 100644 vendor/golang.org/x/sys/unix/cap_freebsd.go delete mode 100644 vendor/golang.org/x/sys/unix/constants.go delete mode 100644 vendor/golang.org/x/sys/unix/dev_darwin.go delete mode 100644 vendor/golang.org/x/sys/unix/dev_linux.go delete mode 100644 vendor/golang.org/x/sys/unix/dirent.go delete mode 100644 vendor/golang.org/x/sys/unix/endian_big.go delete mode 100644 vendor/golang.org/x/sys/unix/endian_little.go delete mode 100644 vendor/golang.org/x/sys/unix/env_unix.go delete mode 100644 vendor/golang.org/x/sys/unix/env_unset.go delete mode 100644 vendor/golang.org/x/sys/unix/errors_freebsd_386.go delete mode 100644 vendor/golang.org/x/sys/unix/errors_freebsd_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/errors_freebsd_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/file_unix.go delete mode 100644 vendor/golang.org/x/sys/unix/flock.go delete mode 100644 vendor/golang.org/x/sys/unix/flock_linux_32bit.go delete mode 100644 vendor/golang.org/x/sys/unix/gccgo.go delete mode 100644 vendor/golang.org/x/sys/unix/gccgo_c.c delete mode 100644 vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/gccgo_linux_sparc64.go delete mode 100755 vendor/golang.org/x/sys/unix/mkall.sh delete mode 100755 vendor/golang.org/x/sys/unix/mkerrors.sh delete mode 100644 vendor/golang.org/x/sys/unix/mkpost.go delete mode 100755 vendor/golang.org/x/sys/unix/mksyscall.pl delete mode 100755 vendor/golang.org/x/sys/unix/mksyscall_solaris.pl delete mode 100755 vendor/golang.org/x/sys/unix/mksysctl_openbsd.pl delete mode 100755 vendor/golang.org/x/sys/unix/mksysnum_darwin.pl delete mode 100755 vendor/golang.org/x/sys/unix/mksysnum_dragonfly.pl delete mode 100755 vendor/golang.org/x/sys/unix/mksysnum_freebsd.pl delete mode 100755 vendor/golang.org/x/sys/unix/mksysnum_netbsd.pl delete mode 100755 vendor/golang.org/x/sys/unix/mksysnum_openbsd.pl delete mode 100644 vendor/golang.org/x/sys/unix/openbsd_pledge.go delete mode 100644 vendor/golang.org/x/sys/unix/race.go delete mode 100644 vendor/golang.org/x/sys/unix/race0.go delete mode 100644 vendor/golang.org/x/sys/unix/sockcmsg_linux.go delete mode 100644 vendor/golang.org/x/sys/unix/sockcmsg_unix.go delete mode 100644 vendor/golang.org/x/sys/unix/str.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_bsd.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin_386.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_dragonfly.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_freebsd.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_freebsd_386.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_linux.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_386.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_arm64.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_s390x.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_netbsd.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_netbsd_386.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_no_getwd.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_openbsd.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_openbsd_386.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_solaris.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_unix.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_unix_gc.go delete mode 100644 vendor/golang.org/x/sys/unix/types_darwin.go delete mode 100644 vendor/golang.org/x/sys/unix/types_dragonfly.go delete mode 100644 vendor/golang.org/x/sys/unix/types_freebsd.go delete mode 100644 vendor/golang.org/x/sys/unix/types_netbsd.go delete mode 100644 vendor/golang.org/x/sys/unix/types_openbsd.go delete mode 100644 vendor/golang.org/x/sys/unix/types_solaris.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_darwin_386.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_darwin_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_386.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_mips.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_386.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysctl_openbsd.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_darwin_386.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_darwin_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_386.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_solaris_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_darwin_386.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_darwin_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_386.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_mips.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go delete mode 100644 vendor/golang.org/x/text/LICENSE delete mode 100644 vendor/golang.org/x/text/PATENTS delete mode 100644 vendor/golang.org/x/text/transform/transform.go delete mode 100644 vendor/golang.org/x/text/unicode/norm/composition.go delete mode 100644 vendor/golang.org/x/text/unicode/norm/forminfo.go delete mode 100644 vendor/golang.org/x/text/unicode/norm/input.go delete mode 100644 vendor/golang.org/x/text/unicode/norm/iter.go delete mode 100644 vendor/golang.org/x/text/unicode/norm/maketables.go delete mode 100644 vendor/golang.org/x/text/unicode/norm/normalize.go delete mode 100644 vendor/golang.org/x/text/unicode/norm/readwriter.go delete mode 100644 vendor/golang.org/x/text/unicode/norm/tables.go delete mode 100644 vendor/golang.org/x/text/unicode/norm/transform.go delete mode 100644 vendor/golang.org/x/text/unicode/norm/trie.go delete mode 100644 vendor/golang.org/x/text/unicode/norm/triegen.go delete mode 100644 vendor/gopkg.in/yaml.v2/LICENSE delete mode 100644 vendor/gopkg.in/yaml.v2/LICENSE.libyaml delete mode 100644 vendor/gopkg.in/yaml.v2/README.md delete mode 100644 vendor/gopkg.in/yaml.v2/apic.go delete mode 100644 vendor/gopkg.in/yaml.v2/decode.go delete mode 100644 vendor/gopkg.in/yaml.v2/emitterc.go delete mode 100644 vendor/gopkg.in/yaml.v2/encode.go delete mode 100644 vendor/gopkg.in/yaml.v2/parserc.go delete mode 100644 vendor/gopkg.in/yaml.v2/readerc.go delete mode 100644 vendor/gopkg.in/yaml.v2/resolve.go delete mode 100644 vendor/gopkg.in/yaml.v2/scannerc.go delete mode 100644 vendor/gopkg.in/yaml.v2/sorter.go delete mode 100644 vendor/gopkg.in/yaml.v2/writerc.go delete mode 100644 vendor/gopkg.in/yaml.v2/yaml.go delete mode 100644 vendor/gopkg.in/yaml.v2/yamlh.go delete mode 100644 vendor/gopkg.in/yaml.v2/yamlprivateh.go delete mode 100644 vendor/vendor.json diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..b7a22f0 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,22 @@ +name: Test and coverage + +on: [push, pull_request] + +jobs: + unit-tests: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6.0.2 + with: + fetch-depth: 2 + - uses: actions/setup-go@v6.2.0 + with: + go-version: '1.25' + - name: Run coverage + run: go env -w GOTOOLCHAIN=go1.25.0+auto && go test -coverpkg=./... ./... -race -coverprofile=coverage.out -covermode=atomic + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v5 + with: + verbose: true + env: + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml new file mode 100644 index 0000000..af84bd2 --- /dev/null +++ b/.github/workflows/codeql.yml @@ -0,0 +1,74 @@ +# For most projects, this workflow file will not need changing; you simply need +# to commit it to your repository. +# +# You may wish to alter this file to override the set of languages analyzed, +# or to provide custom queries or build logic. +# +# ******** NOTE ******** +# We have attempted to detect the languages in your repository. Please check +# the `language` matrix defined below to confirm you have the correct set of +# supported CodeQL languages. +# +name: "CodeQL" + +on: + push: + branches: [ "main" ] + pull_request: + # The branches below must be a subset of the branches above + branches: [ "main" ] + schedule: + - cron: '35 15 * * 3' + +jobs: + analyze: + name: Analyze + runs-on: ubuntu-latest + permissions: + actions: read + contents: read + security-events: write + + strategy: + fail-fast: false + matrix: + language: [ 'go' ] + # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ] + # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + # Initializes the CodeQL tools for scanning. + - name: Initialize CodeQL + uses: github/codeql-action/init@v3 + with: + languages: ${{ matrix.language }} + # If you wish to specify custom queries, you can do so here or in a config file. + # By default, queries listed here will override any specified in a config file. + # Prefix the list here with "+" to use these queries and those in the config file. + + # Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs + # queries: security-extended,security-and-quality + + + # Autobuild attempts to build any compiled languages (C/C++, C#, Go, or Java). + # If this step fails, then you should remove it and run the build manually (see below) + - name: Autobuild + uses: github/codeql-action/autobuild@v3 + + # ℹ️ Command-line programs to run using the OS shell. + # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun + + # If the Autobuild fails above, remove it and uncomment the following three lines. + # modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance. + + # - run: | + # echo "Run, Build Application using script" + # ./location_of_script_within_repo/buildscript.sh + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v3 + with: + category: "/language:${{matrix.language}}" diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml new file mode 100644 index 0000000..a71f4df --- /dev/null +++ b/.github/workflows/go.yml @@ -0,0 +1,28 @@ +# This workflow will build a golang project +# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-go + +name: Go + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + +jobs: + + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6.0.2 + + - name: Set up Go + uses: actions/setup-go@v6.2.0 + with: + go-version: '1.25' + + - name: Build + run: go build -v ./... + + - name: Test + run: go test -v ./... diff --git a/README.md b/README.md index 0cd5def..1c80249 100644 --- a/README.md +++ b/README.md @@ -1,97 +1,154 @@ +[![Go Report Card](https://goreportcard.com/badge/github.com/ncode/pretty)](https://goreportcard.com/report/github.com/ncode/pretty) +[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) +[![codecov](https://codecov.io/gh/ncode/pretty/graph/badge.svg?token=BCUQ77HCLY)](https://codecov.io/gh/ncode/pretty) + # pretty -Parallel remote execution tty - (Yet another parallel ssh/shell) -## Installation: -go get -u github.com/ncode/pretty +`Parallel remote execution tty` - (Yet another parallel ssh/shell) + +- Run commands across many hosts with colored, prefixed output. +- Keep an interactive prompt with a per-host shell session. +- Run async jobs in separate SSH sessions and track status. +- Load hosts from args, config groups, or a hosts file. -## Config: -By default it lives in ~/.pretty.yaml +## Installation +Requires Go 1.25. ``` -username: ncode -history_file: ~/.pretty.history -ssh_private_key: ~/.ssh/id_rsa -groups: - hosts: - - host1 - - host2 - - host3 - - host4 +go install github.com/ncode/pretty@latest ``` -## Usage: +## Quick start +``` +pretty host1 host2 host3 +pretty -G prod +pretty -H /tmp/hosts.txt ``` -Parallel remote execution tty - (Yet another parallel ssh/shell) -usage: - pretty ... +## Configuration +`pretty` looks for a config file named `.pretty` in your home directory with a supported extension: +`$HOME/.pretty.yaml`, `$HOME/.pretty.yml`, `$HOME/.pretty.json`, or `$HOME/.pretty.toml`. +Use `--config` to point at an explicit path. -Usage: - pretty [flags] +Optional keys: +- `username`: SSH username override (falls back to SSH config, then current shell user). +- `known_hosts`: path to a known_hosts file for host key verification. +- `groups.`: host groups as wrapper objects with `hosts` and optional `user`. +- `prompt`: interactive prompt string (UTF-8 supported). `--prompt` overrides config. -Flags: - --config string config file (default is $HOME/.pretty.yaml) - -h, --help help for pretty - -G, --hostGroup string group of hosts to be loaded from the config file - -H, --hostsFile string hosts file to be used instead of the args via stdout (one host per line) +Example: ``` +known_hosts: /Users/me/.ssh/known_hosts +prompt: "pretty> " +groups: + web: + user: deploy + hosts: + - web1.example.com + - web2.example.com:2222 +``` + +Host key verification: +- If `known_hosts` is set and loads successfully, it is used. +- Otherwise `~/.ssh/known_hosts` is used if it loads successfully. +- If neither can be loaded, host keys are not verified. +- A loaded known_hosts file must contain each host key or connections will fail. -Connecting to hosts: +Notes: +- Group entries must use the wrapper schema with a `hosts` list. +- Auth uses your SSH agent (`SSH_AUTH_SOCK`) and IdentityFile entries from SSH config. Load keys with `ssh-add`. + +## Host specs +Accepted formats: +- `host` (defaults to port 22) +- `host:port` +- `user@host` +- `user@host:port` +- `[ipv6]:port` (required to specify a port with IPv6) +- `user@[ipv6]:port` + +Hosts files (`-H`) accept one entry per line in the same formats. Blank lines are ignored. + +## Flags +- `--config `: config file path. +- `--prompt `: prompt to display in the interactive shell. +- `-G`, `--hostGroup `: load `groups.` from config. +- `-H`, `--hostsFile `: read hosts from a file (one host per line). +- `-h`, `--help`: help for pretty. + +Host selection behavior: +- At least one of positional hosts, `--hostGroup`, or `--hostsFile` is required. +- With no positional hosts, `--hostGroup` loads only the group. +- With more than one positional host, `--hostGroup` appends the group. +- With exactly one positional host, `--hostGroup` is currently ignored. +- `--hostsFile` always appends its hosts. + +## Interactive commands ``` -pretty host1 host2 host3 host4 -pretty(2)>> -Error connection to host host3: Failed to dial: dial tcp: lookup host3: no such host -Error connection to host host4: Failed to dial: dial tcp: lookup host4: no such host +:help +:list +:status [id] +:async +:scroll +:bye +exit ``` -Connecting to hostGroups: +Notes: +- `:list` shows connection status per host. +- `:status` shows the last normal job plus the last two async jobs; `:status ` targets a single job. +- `:async` runs a command in a new SSH session per host and returns to the prompt immediately. +- `:scroll` enters scroll mode for the output viewport (output scrolling is disabled otherwise); press `esc` to return to the prompt. +- Use Up/Down arrows to navigate command history (persisted in `history_file`). +- `Ctrl+C` forwards to remote sessions; press twice within 500ms to quit locally. +- `Ctrl+Z` forwards to remote sessions (suspend). + +## How it works +- Starts one persistent SSH shell session per host for interactive commands. +- Wraps each command with a sentinel to capture per-host exit codes. +- Runs async commands in fresh SSH sessions and updates job status as they finish. +- Prefixes output with `host:port` and assigns a stable color per host. +- Keeps the last 10,000 output lines in the UI buffer. + +## Local SSHD testbed +Use the local SSHD testbed to exercise `pretty` against three localhost targets. + +Generate keys, password, and a ready-to-use config file: ``` -pretty -G hosts -pretty(2)>> -Error connection to host host3: Failed to dial: dial tcp: lookup host3: no such host -Error connection to host host4: Failed to dial: dial tcp: lookup host4: no such host +export PRETTY_AUTHORIZED_KEY="$(ssh-add -L | grep 'my-key' | head -n1)" +./scripts/ssh-testbed-setup.sh ``` -Connecting to hostsFile: +Start the testbed: ``` -pretty -H /tmp/hosts.txt -pretty(2)>> -Error connection to host host3: Failed to dial: dial tcp: lookup host3: no such host -Error connection to host host4: Failed to dial: dial tcp: lookup host4: no such host +docker compose -f docker-compose.sshd.yml up -d --build ``` -List connection status: +Re-run setup after the containers are running to populate `.pretty-test/known_hosts`: ``` -pretty(2)>> :status -Connected hosts (2) -Failed hosts (2) +./scripts/ssh-testbed-setup.sh ``` -List hosts: +If you want to use the generated test key instead of an existing agent key: ``` -pretty(2)>> :list -host1: Connected(true) -host2: Connected(true) -host3: Connected(false) -host4: Connected(false) +ssh-add .pretty-test/id_ed25519 ``` -Running commands: +Example run: ``` -pretty(2)>> whoami -host1: ncode -host2: ncode +pretty --config .pretty-test/pretty.yaml -G testbed ``` +Then run `whoami` to confirm each host responds as `pretty`. + +The generated password is stored at `.pretty-test/password.txt` for manual `ssh` testing if needed. -## Why do I need it? -pretty is a tool to control interactive shells across multiple hosts from -a single point. +## Why pretty? +`pretty` is a tool to control interactive shells across multiple hosts from a single point. ### Motivation -After using [polysh](http://guichaz.free.fr/polysh) for a long time. It came with -the motivation to try to write my own parallel shell in GO. In the end the tool worked +After using [polysh](http://guichaz.free.fr/polysh) for a long time, it came with +the motivation to try to write my own parallel shell in Go. In the end the tool worked so well and I decided to open source the code. -### TODO: -Forward Control+C and Control+Z requests to the destination terminal -Support for encrypted ssh keys +## Limitations +- SSH authentication uses the local agent and SSH config IdentityFile entries; there is no keyfile flag. diff --git a/cmd/hosts.go b/cmd/hosts.go new file mode 100644 index 0000000..1681464 --- /dev/null +++ b/cmd/hosts.go @@ -0,0 +1,207 @@ +package cmd + +import ( + "fmt" + "net" + "strconv" + "strings" +) + +const defaultPort = 22 + +type HostSpec struct { + Host string + Port int + User string + PortSet bool + UserSet bool +} + +func parseHostSpec(input string) (HostSpec, error) { + trimmed := strings.TrimSpace(input) + if trimmed == "" { + return HostSpec{}, fmt.Errorf("host is empty") + } + + user, hostPart, hasUser, err := splitUserHost(trimmed) + if err != nil { + return HostSpec{}, err + } + + if strings.HasPrefix(hostPart, "[") { + host, portStr, err := net.SplitHostPort(hostPart) + if err != nil { + return HostSpec{}, fmt.Errorf("invalid host entry %q: %v", trimmed, err) + } + port, err := parsePort(portStr) + if err != nil { + return HostSpec{}, fmt.Errorf("invalid port in %q: %v", trimmed, err) + } + return HostSpec{Host: host, Port: port, User: user, PortSet: true, UserSet: hasUser}, nil + } + + if hostPart == "" { + return HostSpec{}, fmt.Errorf("host is empty") + } + + if strings.Count(hostPart, ":") == 0 { + return HostSpec{Host: hostPart, Port: defaultPort, User: user, UserSet: hasUser}, nil + } + if strings.Count(hostPart, ":") == 1 { + parts := strings.SplitN(hostPart, ":", 2) + if parts[0] == "" { + return HostSpec{}, fmt.Errorf("host is empty") + } + port, err := parsePort(parts[1]) + if err != nil { + return HostSpec{}, fmt.Errorf("invalid port in %q: %v", trimmed, err) + } + return HostSpec{Host: parts[0], Port: port, User: user, PortSet: true, UserSet: hasUser}, nil + } + + return HostSpec{Host: hostPart, Port: defaultPort, User: user, UserSet: hasUser}, nil +} + +func splitUserHost(input string) (user, host string, hasUser bool, err error) { + at := strings.LastIndex(input, "@") + if at == -1 { + return "", input, false, nil + } + user = strings.TrimSpace(input[:at]) + host = strings.TrimSpace(input[at+1:]) + if user == "" || host == "" { + return "", "", false, fmt.Errorf("invalid user@host") + } + return user, host, true, nil +} + +func parsePort(port string) (int, error) { + if port == "" { + return 0, fmt.Errorf("port is empty") + } + value, err := strconv.Atoi(port) + if err != nil { + return 0, fmt.Errorf("port must be a number") + } + if value < 1 || value > 65535 { + return 0, fmt.Errorf("port must be between 1 and 65535") + } + return value, nil +} + +func parseHostsFile(data []byte) ([]HostSpec, error) { + lines := strings.Split(string(data), "\n") + specs := make([]HostSpec, 0, len(lines)) + for i, line := range lines { + trimmed := strings.TrimSpace(line) + if trimmed == "" { + continue + } + spec, err := parseHostSpec(trimmed) + if err != nil { + return nil, fmt.Errorf("invalid hosts file entry on line %d: %q: %v", i+1, trimmed, err) + } + specs = append(specs, spec) + } + return specs, nil +} + +func parseGroupSpecs(raw interface{}, groupName string) ([]HostSpec, error) { + if raw == nil { + return nil, nil + } + + value, ok := raw.(map[string]interface{}) + if !ok { + if alt, ok := raw.(map[interface{}]interface{}); ok { + value = make(map[string]interface{}, len(alt)) + for key, val := range alt { + keyStr, ok := key.(string) + if !ok { + return nil, fmt.Errorf("invalid key type %T", key) + } + value[keyStr] = val + } + } else { + return nil, fmt.Errorf("host group %q must be an object with hosts", groupName) + } + } + + hostsRaw, ok := value["hosts"] + if !ok { + return nil, fmt.Errorf("host group %q missing hosts", groupName) + } + hostsList, ok := hostsRaw.([]interface{}) + if !ok { + return nil, fmt.Errorf("host group %q hosts must be a list", groupName) + } + if len(hostsList) == 0 { + return nil, nil + } + + groupUser := "" + if userRaw, ok := value["user"]; ok { + if userStr, ok := userRaw.(string); ok { + groupUser = strings.TrimSpace(userStr) + } + } + + specs := make([]HostSpec, 0, len(hostsList)) + for i, entry := range hostsList { + hostEntry, ok := entry.(string) + if !ok { + return nil, fmt.Errorf("host group %q hosts entry %d must be a string", groupName, i+1) + } + spec, err := parseHostSpec(hostEntry) + if err != nil { + return nil, fmt.Errorf("host group %q hosts entry %d: %v", groupName, i+1, err) + } + if !spec.UserSet && groupUser != "" { + spec.User = groupUser + spec.UserSet = true + } + specs = append(specs, spec) + } + return specs, nil +} + +func parsePortValue(value interface{}) (int, error) { + switch v := value.(type) { + case int: + return validatePort(v) + case int64: + return validatePort(int(v)) + case float64: + if v != float64(int(v)) { + return 0, fmt.Errorf("port must be an integer") + } + return validatePort(int(v)) + case string: + return parsePort(v) + default: + return 0, fmt.Errorf("port must be a number") + } +} + +func validatePort(port int) (int, error) { + if port < 1 || port > 65535 { + return 0, fmt.Errorf("port must be between 1 and 65535") + } + return port, nil +} + +func parseArgsHosts(args []string) ([]HostSpec, error) { + specs := make([]HostSpec, 0, len(args)) + for _, arg := range args { + spec, err := parseHostSpec(arg) + if err != nil { + return nil, fmt.Errorf("invalid host %q: %v", arg, err) + } + specs = append(specs, spec) + } + return specs, nil +} + +func hostDisplayName(spec HostSpec) string { + return net.JoinHostPort(spec.Host, strconv.Itoa(spec.Port)) +} diff --git a/cmd/hosts_test.go b/cmd/hosts_test.go new file mode 100644 index 0000000..cbe3ffd --- /dev/null +++ b/cmd/hosts_test.go @@ -0,0 +1,234 @@ +package cmd + +import ( + "reflect" + "strings" + "testing" + + "github.com/spf13/viper" +) + +func TestParseHostSpec(t *testing.T) { + tests := []struct { + name string + input string + want HostSpec + wantErr bool + }{ + {"host_only", "host1", HostSpec{Host: "host1", Port: defaultPort}, false}, + {"host_with_port", "host1:2222", HostSpec{Host: "host1", Port: 2222, PortSet: true}, false}, + {"trims_spaces", " host1 ", HostSpec{Host: "host1", Port: defaultPort}, false}, + {"empty", "", HostSpec{}, true}, + {"missing_port", "host1:", HostSpec{}, true}, + {"bad_port", "host1:abc", HostSpec{}, true}, + {"port_out_of_range", "host1:70000", HostSpec{}, true}, + } + + for _, tc := range tests { + t.Run(tc.name, func(t *testing.T) { + got, err := parseHostSpec(tc.input) + if tc.wantErr { + if err == nil { + t.Fatalf("expected error") + } + return + } + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + if got != tc.want { + t.Fatalf("unexpected spec: %+v", got) + } + }) + } +} + +func TestParseHostSpecUserAtHost(t *testing.T) { + got, err := parseHostSpec("deploy@host1:2222") + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + want := HostSpec{Host: "host1", Port: 2222, User: "deploy", PortSet: true, UserSet: true} + if got != want { + t.Fatalf("unexpected spec: %+v", got) + } +} + +func TestParseHostSpecIPv6User(t *testing.T) { + got, err := parseHostSpec("admin@[2001:db8::1]:2222") + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + want := HostSpec{Host: "2001:db8::1", Port: 2222, User: "admin", PortSet: true, UserSet: true} + if got != want { + t.Fatalf("unexpected spec: %+v", got) + } +} + +func TestParseHostsFile(t *testing.T) { + data := []byte("host1\n\nhost2:2222\n host3 \n") + specs, err := parseHostsFile(data) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + want := []HostSpec{ + {Host: "host1", Port: defaultPort}, + {Host: "host2", Port: 2222, PortSet: true}, + {Host: "host3", Port: defaultPort}, + } + if !reflect.DeepEqual(specs, want) { + t.Fatalf("unexpected specs: %+v", specs) + } +} + +func TestParseHostsFileInvalidPort(t *testing.T) { + _, err := parseHostsFile([]byte("host1:abc\n")) + if err == nil { + t.Fatalf("expected error") + } + if !strings.Contains(err.Error(), "line 1") { + t.Fatalf("expected line number in error, got %v", err) + } +} + +func TestParseGroupSpecsFromViper(t *testing.T) { + v := viper.New() + v.SetConfigType("yaml") + err := v.ReadConfig(strings.NewReader( + "groups:\n" + + " testbed:\n" + + " user: deploy\n" + + " hosts:\n" + + " - host1\n" + + " - host2:2222\n", + )) + if err != nil { + t.Fatalf("unexpected read error: %v", err) + } + + raw := v.Get("groups.testbed") + specs, err := parseGroupSpecs(raw, "testbed") + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + want := []HostSpec{ + {Host: "host1", Port: defaultPort, User: "deploy", UserSet: true}, + {Host: "host2", Port: 2222, User: "deploy", PortSet: true, UserSet: true}, + } + if !reflect.DeepEqual(specs, want) { + t.Fatalf("unexpected specs: %+v", specs) + } +} + +func TestParseGroupSpecsUserPrecedence(t *testing.T) { + v := viper.New() + v.SetConfigType("yaml") + err := v.ReadConfig(strings.NewReader( + "groups:\n" + + " prod:\n" + + " user: deploy\n" + + " hosts:\n" + + " - admin@host1:2222\n" + + " - host2:2223\n", + )) + if err != nil { + t.Fatalf("unexpected read error: %v", err) + } + + specs, err := parseGroupSpecs(v.Get("groups.prod"), "prod") + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + want := []HostSpec{ + {Host: "host1", Port: 2222, User: "admin", PortSet: true, UserSet: true}, + {Host: "host2", Port: 2223, User: "deploy", PortSet: true, UserSet: true}, + } + if !reflect.DeepEqual(specs, want) { + t.Fatalf("unexpected specs: %+v", specs) + } +} + +func TestParseGroupSpecsRejectsStringList(t *testing.T) { + raw := []interface{}{"host1", "host2"} + _, err := parseGroupSpecs(raw, "legacy") + if err == nil { + t.Fatalf("expected error") + } + if !strings.Contains(err.Error(), "hosts") { + t.Fatalf("expected wrapper format error, got %v", err) + } +} + +func TestParseGroupSpecsInvalidPort(t *testing.T) { + raw := map[string]interface{}{ + "hosts": []interface{}{"host1:70000"}, + } + _, err := parseGroupSpecs(raw, "bad") + if err == nil { + t.Fatalf("expected error") + } +} + +func TestParseGroupSpecsMissingHost(t *testing.T) { + raw := map[string]interface{}{ + "user": "deploy", + } + _, err := parseGroupSpecs(raw, "bad") + if err == nil { + t.Fatalf("expected error") + } +} + +func TestParseArgsHosts(t *testing.T) { + specs, err := parseArgsHosts([]string{"host1", "host2:2222"}) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + want := []HostSpec{ + {Host: "host1", Port: defaultPort}, + {Host: "host2", Port: 2222, PortSet: true}, + } + if !reflect.DeepEqual(specs, want) { + t.Fatalf("unexpected specs: %+v", specs) + } +} + +func TestHostDisplayNameIncludesPort(t *testing.T) { + spec := HostSpec{Host: "localhost", Port: 2222} + got := hostDisplayName(spec) + if got != "localhost:2222" { + t.Fatalf("unexpected host label: %s", got) + } +} + +func TestPromptFlagIsRegistered(t *testing.T) { + if RootCmd.PersistentFlags().Lookup("prompt") == nil { + t.Fatalf("expected --prompt flag to be registered") + } +} + +func TestPromptFlagOverridesConfig(t *testing.T) { + flag := RootCmd.PersistentFlags().Lookup("prompt") + if flag == nil { + t.Fatalf("expected --prompt flag to be registered") + } + + viper.Reset() + viper.SetConfigType("yaml") + if err := viper.ReadConfig(strings.NewReader("prompt: config\n")); err != nil { + t.Fatalf("unexpected config read error: %v", err) + } + if err := viper.BindPFlag("prompt", flag); err != nil { + t.Fatalf("unexpected bind error: %v", err) + } + + if err := RootCmd.PersistentFlags().Set("prompt", "cli"); err != nil { + t.Fatalf("unexpected flag set error: %v", err) + } + defer RootCmd.PersistentFlags().Set("prompt", "") + + got := viper.GetString("prompt") + if got != "cli" { + t.Fatalf("expected CLI prompt to override config, got %q", got) + } +} diff --git a/cmd/root.go b/cmd/root.go index 92772e4..f160466 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -19,12 +19,13 @@ import ( "fmt" "io/ioutil" "os" + "path/filepath" "strings" "github.com/fatih/color" homedir "github.com/mitchellh/go-homedir" - "github.com/ncode/pretty/shell" - "github.com/ncode/pretty/sshConn" + "github.com/ncode/pretty/internal/shell" + "github.com/ncode/pretty/internal/sshConn" "github.com/spf13/cobra" "github.com/spf13/viper" ) @@ -50,11 +51,24 @@ usage: return nil }, Run: func(cmd *cobra.Command, args []string) { - if hostGroup != "" && len(args) > 1 { - toAppend := viper.GetStringSlice(fmt.Sprintf("groups.%s", hostGroup)) - args = append(args, toAppend...) - } else if hostGroup != "" && len(args) < 1 { - args = viper.GetStringSlice(fmt.Sprintf("groups.%s", hostGroup)) + argsLen := len(args) + hostSpecs, err := parseArgsHosts(args) + if err != nil { + fmt.Println(err) + os.Exit(1) + } + + if hostGroup != "" { + groupSpecs, err := parseGroupSpecs(viper.Get(fmt.Sprintf("groups.%s", hostGroup)), hostGroup) + if err != nil { + fmt.Println(err) + os.Exit(1) + } + if argsLen > 1 { + hostSpecs = append(hostSpecs, groupSpecs...) + } else if argsLen < 1 { + hostSpecs = groupSpecs + } } if hostsFile != "" { @@ -63,12 +77,12 @@ usage: fmt.Printf("unable to read hostsFile: %v\n", err) os.Exit(1) } - for _, host := range strings.Split(string(data), "\n") { - if host == "" { - continue - } - args = append(args, strings.TrimSpace(host)) + fileSpecs, err := parseHostsFile(data) + if err != nil { + fmt.Println(err) + os.Exit(1) } + hostSpecs = append(hostSpecs, fileSpecs...) } var colors = []color.Attribute{ @@ -88,15 +102,68 @@ usage: color.FgHiWhite, } - for len(colors) <= len(args) { + for len(colors) <= len(hostSpecs) { colors = append(colors, colors...) } + userConfigPath := "" + if home, err := os.UserHomeDir(); err == nil { + userConfigPath = filepath.Join(home, ".ssh", "config") + } + resolver, err := sshConn.LoadSSHConfig(sshConn.SSHConfigPaths{ + User: userConfigPath, + System: "/etc/ssh/ssh_config", + }) + if err != nil { + fmt.Printf("unable to load ssh config: %v\n", err) + os.Exit(1) + } + + globalUser := strings.TrimSpace(viper.GetString("username")) + hostList := sshConn.NewHostList() - for pos, hostname := range args { + for pos, spec := range hostSpecs { + resolveSpec := sshConn.HostSpec{ + Alias: spec.Host, + Host: spec.Host, + Port: spec.Port, + User: spec.User, + PortSet: spec.PortSet, + UserSet: spec.UserSet, + } + if !resolveSpec.UserSet && globalUser != "" { + resolveSpec.User = globalUser + resolveSpec.UserSet = true + } + resolved, err := resolver.ResolveHost(resolveSpec, "") + if err != nil { + fmt.Printf("unable to resolve host %q: %v\n", spec.Host, err) + os.Exit(1) + } + jumps := make([]sshConn.ResolvedHost, 0, len(resolved.ProxyJump)) + for _, jumpAlias := range resolved.ProxyJump { + jumpSpec := sshConn.HostSpec{Alias: jumpAlias, Host: jumpAlias} + if globalUser != "" { + jumpSpec.User = globalUser + jumpSpec.UserSet = true + } + jumpResolved, err := resolver.ResolveHost(jumpSpec, "") + if err != nil { + fmt.Printf("unable to resolve jump host %q: %v\n", jumpAlias, err) + os.Exit(1) + } + jumps = append(jumps, jumpResolved) + } + displayName := hostDisplayName(HostSpec{Host: resolved.Host, Port: resolved.Port}) host := &sshConn.Host{ - Hostname: hostname, - Color: color.New(colors[pos%len(colors)]), + Hostname: displayName, + Alias: resolved.Alias, + Host: resolved.Host, + Port: resolved.Port, + User: resolved.User, + IdentityFiles: resolved.IdentityFiles, + ProxyJump: jumps, + Color: color.New(colors[pos%len(colors)]), } hostList.AddHost(host) } @@ -116,8 +183,10 @@ func Execute() { func init() { cobra.OnInitialize(initConfig) RootCmd.PersistentFlags().StringVar(&cfgFile, "config", "", "config file (default is $HOME/.pretty.yaml)") - RootCmd.PersistentFlags().StringVarP(&hostsFile, "hostsFile", "H", "", "hosts file to be used instead of the args via stdout (one host per line)") + RootCmd.PersistentFlags().StringVarP(&hostsFile, "hostsFile", "H", "", "hosts file to be used instead of the args via stdout (one host per line, format: host or host:port)") RootCmd.PersistentFlags().StringVarP(&hostGroup, "hostGroup", "G", "", "group of hosts to be loaded from the config file") + RootCmd.PersistentFlags().String("prompt", "", "prompt to display in the interactive shell") + _ = viper.BindPFlag("prompt", RootCmd.PersistentFlags().Lookup("prompt")) } // initConfig reads in config file and ENV variables if set. diff --git a/docker-compose.sshd.yml b/docker-compose.sshd.yml new file mode 100644 index 0000000..24edc09 --- /dev/null +++ b/docker-compose.sshd.yml @@ -0,0 +1,31 @@ +services: + sshd1: + build: + context: ./docker/sshd + hostname: sshd1 + ports: + - "2221:22" + env_file: + - ./.pretty-test/sshd.env + volumes: + - ./.pretty-test/authorized_keys:/authorized_keys:ro + sshd2: + build: + context: ./docker/sshd + hostname: sshd2 + ports: + - "2222:22" + env_file: + - ./.pretty-test/sshd.env + volumes: + - ./.pretty-test/authorized_keys:/authorized_keys:ro + sshd3: + build: + context: ./docker/sshd + hostname: sshd3 + ports: + - "2223:22" + env_file: + - ./.pretty-test/sshd.env + volumes: + - ./.pretty-test/authorized_keys:/authorized_keys:ro diff --git a/docker/sshd/Dockerfile b/docker/sshd/Dockerfile new file mode 100644 index 0000000..d15d821 --- /dev/null +++ b/docker/sshd/Dockerfile @@ -0,0 +1,14 @@ +FROM debian:bookworm-slim + +RUN apt-get update \ + && apt-get install -y --no-install-recommends openssh-server ca-certificates \ + && rm -rf /var/lib/apt/lists/* + +RUN mkdir -p /var/run/sshd + +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x /entrypoint.sh + +EXPOSE 22 + +ENTRYPOINT ["/entrypoint.sh"] diff --git a/docker/sshd/entrypoint.sh b/docker/sshd/entrypoint.sh new file mode 100644 index 0000000..c9cf26f --- /dev/null +++ b/docker/sshd/entrypoint.sh @@ -0,0 +1,52 @@ +#!/bin/sh +set -eu + +PRETTY_USER="${PRETTY_USER:-pretty}" +if [ -z "${PRETTY_PASSWORD:-}" ]; then + echo "PRETTY_PASSWORD is required" >&2 + exit 1 +fi + +AUTHORIZED_KEYS_PATH="${AUTHORIZED_KEYS_PATH:-/authorized_keys}" + +if ! id -u "$PRETTY_USER" >/dev/null 2>&1; then + useradd -m -s /bin/sh "$PRETTY_USER" +fi + +echo "$PRETTY_USER:$PRETTY_PASSWORD" | chpasswd + +home_dir="/home/$PRETTY_USER" +ssh_dir="$home_dir/.ssh" +mkdir -p "$ssh_dir" + +if [ ! -f "$AUTHORIZED_KEYS_PATH" ]; then + echo "authorized_keys not found at $AUTHORIZED_KEYS_PATH" >&2 + exit 1 +fi + +cp "$AUTHORIZED_KEYS_PATH" "$ssh_dir/authorized_keys" +chown -R "$PRETTY_USER:$PRETTY_USER" "$ssh_dir" +chmod 700 "$ssh_dir" +chmod 600 "$ssh_dir/authorized_keys" + +ssh-keygen -A + +if grep -q "^PasswordAuthentication" /etc/ssh/sshd_config; then + sed -i 's/^PasswordAuthentication.*/PasswordAuthentication yes/' /etc/ssh/sshd_config +else + echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config +fi + +if grep -q "^PubkeyAuthentication" /etc/ssh/sshd_config; then + sed -i 's/^PubkeyAuthentication.*/PubkeyAuthentication yes/' /etc/ssh/sshd_config +else + echo "PubkeyAuthentication yes" >> /etc/ssh/sshd_config +fi + +if grep -q "^PermitRootLogin" /etc/ssh/sshd_config; then + sed -i 's/^PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config +else + echo "PermitRootLogin no" >> /etc/ssh/sshd_config +fi + +exec /usr/sbin/sshd -D -e diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..ab98362 --- /dev/null +++ b/go.mod @@ -0,0 +1,51 @@ +module github.com/ncode/pretty + +go 1.25 + +require ( + github.com/charmbracelet/bubbles v0.21.0 + github.com/charmbracelet/bubbletea v1.3.10 + github.com/fatih/color v1.18.0 + github.com/kevinburke/ssh_config v1.4.0 + github.com/mitchellh/go-homedir v1.1.0 + github.com/spf13/cobra v1.10.2 + github.com/spf13/viper v1.21.0 + golang.org/x/crypto v0.47.0 +) + +require ( + github.com/atotto/clipboard v0.1.4 // indirect + github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect + github.com/charmbracelet/colorprofile v0.4.1 // indirect + github.com/charmbracelet/lipgloss v1.1.0 // indirect + github.com/charmbracelet/x/ansi v0.11.4 // indirect + github.com/charmbracelet/x/cellbuf v0.0.14 // indirect + github.com/charmbracelet/x/term v0.2.2 // indirect + github.com/clipperhouse/displaywidth v0.8.0 // indirect + github.com/clipperhouse/stringish v0.1.1 // indirect + github.com/clipperhouse/uax29/v2 v2.4.0 // indirect + github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect + github.com/fsnotify/fsnotify v1.9.0 // indirect + github.com/go-viper/mapstructure/v2 v2.5.0 // indirect + github.com/inconshreveable/mousetrap v1.1.0 // indirect + github.com/lucasb-eyer/go-colorful v1.3.0 // indirect + github.com/mattn/go-colorable v0.1.14 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/mattn/go-localereader v0.0.1 // indirect + github.com/mattn/go-runewidth v0.0.19 // indirect + github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect + github.com/muesli/cancelreader v0.2.2 // indirect + github.com/muesli/termenv v0.16.0 // indirect + github.com/pelletier/go-toml/v2 v2.2.4 // indirect + github.com/rivo/uniseg v0.4.7 // indirect + github.com/sagikazarmark/locafero v0.12.0 // indirect + github.com/sourcegraph/conc v0.3.1-0.20240121214520-5f936abd7ae8 // indirect + github.com/spf13/afero v1.15.0 // indirect + github.com/spf13/cast v1.10.0 // indirect + github.com/spf13/pflag v1.0.10 // indirect + github.com/subosito/gotenv v1.6.0 // indirect + github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect + go.yaml.in/yaml/v3 v3.0.4 // indirect + golang.org/x/sys v0.40.0 // indirect + golang.org/x/text v0.33.0 // indirect +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..1053845 --- /dev/null +++ b/go.sum @@ -0,0 +1,136 @@ +github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4= +github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI= +github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k= +github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8= +github.com/charmbracelet/bubbles v0.21.0 h1:9TdC97SdRVg/1aaXNVWfFH3nnLAwOXr8Fn6u6mfQdFs= +github.com/charmbracelet/bubbles v0.21.0/go.mod h1:HF+v6QUR4HkEpz62dx7ym2xc71/KBHg+zKwJtMw+qtg= +github.com/charmbracelet/bubbletea v1.3.10 h1:otUDHWMMzQSB0Pkc87rm691KZ3SWa4KUlvF9nRvCICw= +github.com/charmbracelet/bubbletea v1.3.10/go.mod h1:ORQfo0fk8U+po9VaNvnV95UPWA1BitP1E0N6xJPlHr4= +github.com/charmbracelet/colorprofile v0.2.3-0.20250311203215-f60798e515dc h1:4pZI35227imm7yK2bGPcfpFEmuY1gc2YSTShr4iJBfs= +github.com/charmbracelet/colorprofile v0.2.3-0.20250311203215-f60798e515dc/go.mod h1:X4/0JoqgTIPSFcRA/P6INZzIuyqdFY5rm8tb41s9okk= +github.com/charmbracelet/colorprofile v0.4.1 h1:a1lO03qTrSIRaK8c3JRxJDZOvhvIeSco3ej+ngLk1kk= +github.com/charmbracelet/colorprofile v0.4.1/go.mod h1:U1d9Dljmdf9DLegaJ0nGZNJvoXAhayhmidOdcBwAvKk= +github.com/charmbracelet/lipgloss v1.1.0 h1:vYXsiLHVkK7fp74RkV7b2kq9+zDLoEU4MZoFqR/noCY= +github.com/charmbracelet/lipgloss v1.1.0/go.mod h1:/6Q8FR2o+kj8rz4Dq0zQc3vYf7X+B0binUUBwA0aL30= +github.com/charmbracelet/x/ansi v0.10.1 h1:rL3Koar5XvX0pHGfovN03f5cxLbCF2YvLeyz7D2jVDQ= +github.com/charmbracelet/x/ansi v0.10.1/go.mod h1:3RQDQ6lDnROptfpWuUVIUG64bD2g2BgntdxH0Ya5TeE= +github.com/charmbracelet/x/ansi v0.11.4 h1:6G65PLu6HjmE858CnTUQY1LXT3ZUWwfvqEROLF8vqHI= +github.com/charmbracelet/x/ansi v0.11.4/go.mod h1:/5AZ+UfWExW3int5H5ugnsG/PWjNcSQcwYsHBlPFQN4= +github.com/charmbracelet/x/cellbuf v0.0.13-0.20250311204145-2c3ea96c31dd h1:vy0GVL4jeHEwG5YOXDmi86oYw2yuYUGqz6a8sLwg0X8= +github.com/charmbracelet/x/cellbuf v0.0.13-0.20250311204145-2c3ea96c31dd/go.mod h1:xe0nKWGd3eJgtqZRaN9RjMtK7xUYchjzPr7q6kcvCCs= +github.com/charmbracelet/x/cellbuf v0.0.14 h1:iUEMryGyFTelKW3THW4+FfPgi4fkmKnnaLOXuc+/Kj4= +github.com/charmbracelet/x/cellbuf v0.0.14/go.mod h1:P447lJl49ywBbil/KjCk2HexGh4tEY9LH0/1QrZZ9rA= +github.com/charmbracelet/x/term v0.2.1 h1:AQeHeLZ1OqSXhrAWpYUtZyX1T3zVxfpZuEQMIQaGIAQ= +github.com/charmbracelet/x/term v0.2.1/go.mod h1:oQ4enTYFV7QN4m0i9mzHrViD7TQKvNEEkHUMCmsxdUg= +github.com/charmbracelet/x/term v0.2.2 h1:xVRT/S2ZcKdhhOuSP4t5cLi5o+JxklsoEObBSgfgZRk= +github.com/charmbracelet/x/term v0.2.2/go.mod h1:kF8CY5RddLWrsgVwpw4kAa6TESp6EB5y3uxGLeCqzAI= +github.com/clipperhouse/displaywidth v0.8.0 h1:/z8v+H+4XLluJKS7rAc7uHZTalT5Z+1430ld3lePSRI= +github.com/clipperhouse/displaywidth v0.8.0/go.mod h1:UpOXiIKep+TohQYwvAAM/VDU8v3Z5rnWTxiwueR0XvQ= +github.com/clipperhouse/stringish v0.1.1 h1:+NSqMOr3GR6k1FdRhhnXrLfztGzuG+VuFDfatpWHKCs= +github.com/clipperhouse/stringish v0.1.1/go.mod h1:v/WhFtE1q0ovMta2+m+UbpZ+2/HEXNWYXQgCt4hdOzA= +github.com/clipperhouse/uax29/v2 v2.4.0 h1:RXqE/l5EiAbA4u97giimKNlmpvkmz+GrBVTelsoXy9g= +github.com/clipperhouse/uax29/v2 v2.4.0/go.mod h1:Wn1g7MK6OoeDT0vL+Q0SQLDz/KpfsVRgg6W7ihQeh4g= +github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f h1:Y/CXytFA4m6baUTXGLOoWe4PQhGxaX0KpnayAqC48p4= +github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f/go.mod h1:vw97MGsxSvLiUE2X8qFplwetxpGLQrlU1Q9AUEIzCaM= +github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= +github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k= +github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= +github.com/go-viper/mapstructure/v2 v2.4.0 h1:EBsztssimR/CONLSZZ04E8qAkxNYq4Qp9LvH92wZUgs= +github.com/go-viper/mapstructure/v2 v2.4.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= +github.com/go-viper/mapstructure/v2 v2.5.0 h1:vM5IJoUAy3d7zRSVtIwQgBj7BiWtMPfmPEgAXnvj1Ro= +github.com/go-viper/mapstructure/v2 v2.5.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= +github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/kevinburke/ssh_config v1.4.0 h1:6xxtP5bZ2E4NF5tuQulISpTO2z8XbtH8cg1PWkxoFkQ= +github.com/kevinburke/ssh_config v1.4.0/go.mod h1:q2RIzfka+BXARoNexmF9gkxEX7DmvbW9P4hIVx2Kg4M= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= +github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= +github.com/lucasb-eyer/go-colorful v1.3.0 h1:2/yBRLdWBZKrf7gB40FoiKfAWYQ0lqNcbuQwVHXptag= +github.com/lucasb-eyer/go-colorful v1.3.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= +github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= +github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE= +github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-localereader v0.0.1 h1:ygSAOl7ZXTx4RdPYinUpg6W99U8jWvWi9Ye2JC/oIi4= +github.com/mattn/go-localereader v0.0.1/go.mod h1:8fBrzywKY7BI3czFoHkuzRoWE9C+EiG4R1k4Cjx5p88= +github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc= +github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mattn/go-runewidth v0.0.19 h1:v++JhqYnZuu5jSKrk9RbgF5v4CGUjqRfBm05byFGLdw= +github.com/mattn/go-runewidth v0.0.19/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs= +github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= +github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 h1:ZK8zHtRHOkbHy6Mmr5D264iyp3TiX5OmNcI5cIARiQI= +github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6/go.mod h1:CJlz5H+gyd6CUWT45Oy4q24RdLyn7Md9Vj2/ldJBSIo= +github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA= +github.com/muesli/cancelreader v0.2.2/go.mod h1:3XuTXfFS2VjM+HTLZY9Ak0l6eUKfijIfMUZ4EgX0QYo= +github.com/muesli/termenv v0.16.0 h1:S5AlUN9dENB57rsbnkPyfdGuWIlkmzJjbFf0Tf5FWUc= +github.com/muesli/termenv v0.16.0/go.mod h1:ZRfOIKPFDYQoDFF4Olj7/QJbW60Ol/kL1pU3VfY/Cnk= +github.com/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0t5Ec4= +github.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= +github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= +github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/sagikazarmark/locafero v0.11.0 h1:1iurJgmM9G3PA/I+wWYIOw/5SyBtxapeHDcg+AAIFXc= +github.com/sagikazarmark/locafero v0.11.0/go.mod h1:nVIGvgyzw595SUSUE6tvCp3YYTeHs15MvlmU87WwIik= +github.com/sagikazarmark/locafero v0.12.0 h1:/NQhBAkUb4+fH1jivKHWusDYFjMOOKU88eegjfxfHb4= +github.com/sagikazarmark/locafero v0.12.0/go.mod h1:sZh36u/YSZ918v0Io+U9ogLYQJ9tLLBmM4eneO6WwsI= +github.com/sourcegraph/conc v0.3.1-0.20240121214520-5f936abd7ae8 h1:+jumHNA0Wrelhe64i8F6HNlS8pkoyMv5sreGx2Ry5Rw= +github.com/sourcegraph/conc v0.3.1-0.20240121214520-5f936abd7ae8/go.mod h1:3n1Cwaq1E1/1lhQhtRK2ts/ZwZEhjcQeJQ1RuC6Q/8U= +github.com/spf13/afero v1.15.0 h1:b/YBCLWAJdFWJTN9cLhiXXcD7mzKn9Dm86dNnfyQw1I= +github.com/spf13/afero v1.15.0/go.mod h1:NC2ByUVxtQs4b3sIUphxK0NioZnmxgyCrfzeuq8lxMg= +github.com/spf13/cast v1.10.0 h1:h2x0u2shc1QuLHfxi+cTJvs30+ZAHOGRic8uyGTDWxY= +github.com/spf13/cast v1.10.0/go.mod h1:jNfB8QC9IA6ZuY2ZjDp0KtFO2LZZlg4S/7bzP6qqeHo= +github.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU= +github.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiTUUS4= +github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= +github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/viper v1.21.0 h1:x5S+0EU27Lbphp4UKm1C+1oQO+rKx36vfCoaVebLFSU= +github.com/spf13/viper v1.21.0/go.mod h1:P0lhsswPGWD/1lZJ9ny3fYnVqxiegrlNrEmgLjbTCAY= +github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= +github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= +github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= +github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= +github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no= +github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM= +go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= +go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= +golang.org/x/crypto v0.47.0 h1:V6e3FRj+n4dbpw86FJ8Fv7XVOql7TEwpHapKoMJ/GO8= +golang.org/x/crypto v0.47.0/go.mod h1:ff3Y9VzzKbwSSEzWqJsJVBnWmRwRSHt/6Op5n9bQc4A= +golang.org/x/exp v0.0.0-20220909182711-5c715a9e8561 h1:MDc5xs78ZrZr3HMQugiXOAkSZtfTpbJLDr/lwfgO53E= +golang.org/x/exp v0.0.0-20220909182711-5c715a9e8561/go.mod h1:cyybsKvd6eL0RnXn6p/Grxp8F5bW7iYuBgsNCOHpMYE= +golang.org/x/exp v0.0.0-20231006140011-7918f672742d h1:jtJma62tbqLibJ5sFQz8bKtEM8rJBtfilJ2qTU199MI= +golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.40.0 h1:DBZZqJ2Rkml6QMQsZywtnjnnGvHza6BTfYFWY9kjEWQ= +golang.org/x/sys v0.40.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/term v0.39.0 h1:RclSuaJf32jOqZz74CkPA9qFuVTX7vhLlpfj/IGWlqY= +golang.org/x/term v0.39.0/go.mod h1:yxzUCTP/U+FzoxfdKmLaA0RV1WgE0VY7hXBwKtY/4ww= +golang.org/x/text v0.33.0 h1:B3njUFyqtHDUI5jMn1YIr5B0IE2U0qck04r6d4KPAxE= +golang.org/x/text v0.33.0/go.mod h1:LuMebE6+rBincTi9+xWTY8TztLzKHc/9C1uBCG27+q8= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/internal/jobs/manager.go b/internal/jobs/manager.go new file mode 100644 index 0000000..c2793cf --- /dev/null +++ b/internal/jobs/manager.go @@ -0,0 +1,194 @@ +package jobs + +import ( + "sync" + "time" +) + +type Manager struct { + mu sync.Mutex + nextID int + normalJob *Job + asyncJobs []*Job + snapshotDirty bool + normalSnapshot *Job + asyncSnapshots []*Job +} + +func NewManager() *Manager { + return &Manager{nextID: 1, snapshotDirty: true} +} + +func (m *Manager) markDirty() { + m.snapshotDirty = true +} + +func (m *Manager) ensureSnapshotsLocked() { + if !m.snapshotDirty { + return + } + if m.normalJob != nil { + m.normalSnapshot = cloneJob(m.normalJob) + } else { + m.normalSnapshot = nil + } + if cap(m.asyncSnapshots) < len(m.asyncJobs) { + m.asyncSnapshots = make([]*Job, 0, len(m.asyncJobs)) + } else { + m.asyncSnapshots = m.asyncSnapshots[:0] + } + for _, job := range m.asyncJobs { + m.asyncSnapshots = append(m.asyncSnapshots, cloneJob(job)) + } + m.snapshotDirty = false +} + +func (m *Manager) CreateJob(t JobType, command string, hosts []string) *Job { + m.mu.Lock() + defer m.mu.Unlock() + + job := &Job{ + ID: m.nextID, + Type: t, + Command: command, + Created: time.Now(), + Hosts: map[string]*HostStatus{}, + HostsOrder: make([]string, 0, len(hosts)), + } + m.nextID++ + + for _, host := range hosts { + job.Hosts[host] = &HostStatus{Host: host, State: HostQueued} + job.HostsOrder = append(job.HostsOrder, host) + } + + if t == JobTypeNormal { + m.normalJob = job + } else { + m.asyncJobs = append(m.asyncJobs, job) + if len(m.asyncJobs) > 2 { + m.asyncJobs = m.asyncJobs[len(m.asyncJobs)-2:] + } + } + + m.markDirty() + return job +} + +func (m *Manager) NormalJobs() []*Job { + m.mu.Lock() + defer m.mu.Unlock() + m.ensureSnapshotsLocked() + if m.normalSnapshot == nil { + return nil + } + return []*Job{m.normalSnapshot} +} + +func (m *Manager) AsyncJobs() []*Job { + m.mu.Lock() + defer m.mu.Unlock() + m.ensureSnapshotsLocked() + if len(m.asyncSnapshots) == 0 { + return nil + } + jobs := make([]*Job, len(m.asyncSnapshots)) + copy(jobs, m.asyncSnapshots) + return jobs +} + +func (m *Manager) Job(jobID int) *Job { + m.mu.Lock() + defer m.mu.Unlock() + m.ensureSnapshotsLocked() + if m.normalSnapshot != nil && m.normalSnapshot.ID == jobID { + return m.normalSnapshot + } + for _, job := range m.asyncSnapshots { + if job != nil && job.ID == jobID { + return job + } + } + return nil +} + +func (m *Manager) MarkHostRunning(jobID int, host string) { + m.mu.Lock() + defer m.mu.Unlock() + job := m.findJobLocked(jobID) + if job == nil { + return + } + status := job.Hosts[host] + if status == nil { + return + } + if status.State == HostQueued { + status.State = HostRunning + status.startedAt = time.Now() + m.markDirty() + } +} + +func (m *Manager) MarkHostDone(jobID int, host string, exitCode int, success bool) { + m.mu.Lock() + defer m.mu.Unlock() + job := m.findJobLocked(jobID) + if job == nil { + return + } + status := job.Hosts[host] + if status == nil { + return + } + if status.startedAt.IsZero() { + status.startedAt = time.Now() + } + status.Duration = time.Since(status.startedAt) + status.ExitCode = exitCode + if success { + status.State = HostSuccess + } else { + status.State = HostFailed + } + m.markDirty() +} + +func (m *Manager) findJobLocked(jobID int) *Job { + if m.normalJob != nil && m.normalJob.ID == jobID { + return m.normalJob + } + for _, job := range m.asyncJobs { + if job.ID == jobID { + return job + } + } + return nil +} + +func cloneJob(job *Job) *Job { + if job == nil { + return nil + } + clone := &Job{ + ID: job.ID, + Type: job.Type, + Command: job.Command, + Created: job.Created, + Hosts: make(map[string]*HostStatus, len(job.Hosts)), + HostsOrder: append([]string(nil), job.HostsOrder...), + } + for host, status := range job.Hosts { + if status == nil { + continue + } + clone.Hosts[host] = &HostStatus{ + Host: status.Host, + State: status.State, + ExitCode: status.ExitCode, + Duration: status.Duration, + startedAt: status.startedAt, + } + } + return clone +} diff --git a/internal/jobs/manager_test.go b/internal/jobs/manager_test.go new file mode 100644 index 0000000..b49dcec --- /dev/null +++ b/internal/jobs/manager_test.go @@ -0,0 +1,45 @@ +package jobs + +import "testing" + +func TestJobRetention(t *testing.T) { + m := NewManager() + m.CreateJob(JobTypeNormal, "whoami", []string{"host1"}) + m.CreateJob(JobTypeNormal, "uptime", []string{"host1"}) + if len(m.NormalJobs()) != 1 { + t.Fatalf("expected only current normal job retained") + } + m.CreateJob(JobTypeAsync, "date", []string{"host1"}) + m.CreateJob(JobTypeAsync, "uname", []string{"host1"}) + m.CreateJob(JobTypeAsync, "id", []string{"host1"}) + if len(m.AsyncJobs()) != 2 { + t.Fatalf("expected last two async jobs retained") + } +} + + +func TestManagerSnapshotReused(t *testing.T) { + m := NewManager() + job := m.CreateJob(JobTypeNormal, "whoami", []string{"host1"}) + snap1 := m.Job(job.ID) + snap2 := m.Job(job.ID) + if snap1 == nil || snap2 == nil { + t.Fatalf("expected snapshots to be present") + } + if snap1 != snap2 { + t.Fatalf("expected snapshot reuse between reads") + } +} + +func TestManagerSnapshotUpdatesOnStatusChange(t *testing.T) { + m := NewManager() + job := m.CreateJob(JobTypeNormal, "whoami", []string{"host1"}) + m.MarkHostRunning(job.ID, "host1") + if got := m.Job(job.ID).Hosts["host1"].State; got != HostRunning { + t.Fatalf("unexpected state: %v", got) + } + m.MarkHostDone(job.ID, "host1", 0, true) + if got := m.Job(job.ID).Hosts["host1"].State; got != HostSuccess { + t.Fatalf("unexpected state: %v", got) + } +} diff --git a/internal/jobs/sentinel.go b/internal/jobs/sentinel.go new file mode 100644 index 0000000..50b769e --- /dev/null +++ b/internal/jobs/sentinel.go @@ -0,0 +1,44 @@ +package jobs + +import ( + "fmt" + "strconv" + "strings" +) + +const sentinelPrefix = "__PRETTY_EXIT__" + +func SentinelFor(jobID int) string { + return fmt.Sprintf("%s%d", sentinelPrefix, jobID) +} + +func ExtractSentinel(line string) (string, int, int, bool) { + idx := strings.Index(line, sentinelPrefix) + if idx == -1 { + return "", 0, 0, false + } + payload := line[idx+len(sentinelPrefix):] + colon := strings.IndexByte(payload, ':') + if colon == -1 { + return "", 0, 0, false + } + jobPart := payload[:colon] + exitPart := payload[colon+1:] + jobID, err := strconv.Atoi(jobPart) + if err != nil || strconv.Itoa(jobID) != jobPart { + return "", 0, 0, false + } + exitCode, err := strconv.Atoi(exitPart) + if err != nil || strconv.Itoa(exitCode) != exitPart { + return "", 0, 0, false + } + return line[:idx], jobID, exitCode, true +} + +func ParseSentinel(line string) (int, int, bool) { + prefix, jobID, exitCode, ok := ExtractSentinel(line) + if !ok || prefix != "" { + return 0, 0, false + } + return jobID, exitCode, true +} diff --git a/internal/jobs/sentinel_test.go b/internal/jobs/sentinel_test.go new file mode 100644 index 0000000..117c229 --- /dev/null +++ b/internal/jobs/sentinel_test.go @@ -0,0 +1,56 @@ +package jobs + +import "testing" + +func TestParseSentinel(t *testing.T) { + line := "__PRETTY_EXIT__42:0" + jobID, exitCode, ok := ParseSentinel(line) + if !ok { + t.Fatalf("expected sentinel parse ok") + } + if jobID != 42 || exitCode != 0 { + t.Fatalf("unexpected values: jobID=%d exit=%d", jobID, exitCode) + } +} + +func TestParseSentinel_NoMatch(t *testing.T) { + _, _, ok := ParseSentinel("whoami") + if ok { + t.Fatalf("expected non-sentinel line to return ok=false") + } +} + +func TestExtractSentinelInline(t *testing.T) { + prefix, jobID, exitCode, ok := ExtractSentinel("whoami" + SentinelFor(3) + ":0") + if !ok { + t.Fatalf("expected inline sentinel parse") + } + if prefix != "whoami" || jobID != 3 || exitCode != 0 { + t.Fatalf("unexpected values: prefix=%q jobID=%d exit=%d", prefix, jobID, exitCode) + } +} + +func TestExtractSentinelOnly(t *testing.T) { + prefix, jobID, exitCode, ok := ExtractSentinel(SentinelFor(7) + ":1") + if !ok { + t.Fatalf("expected sentinel parse") + } + if prefix != "" || jobID != 7 || exitCode != 1 { + t.Fatalf("unexpected values: prefix=%q jobID=%d exit=%d", prefix, jobID, exitCode) + } +} + +func TestExtractSentinelRejectTrailingText(t *testing.T) { + _, _, _, ok := ExtractSentinel(SentinelFor(7) + ":0 extra") + if ok { + t.Fatalf("expected reject with trailing text") + } +} + +func BenchmarkExtractSentinel(b *testing.B) { + line := "whoami" + SentinelFor(42) + ":0" + b.ReportAllocs() + for i := 0; i < b.N; i++ { + ExtractSentinel(line) + } +} diff --git a/internal/jobs/types.go b/internal/jobs/types.go new file mode 100644 index 0000000..2fc9465 --- /dev/null +++ b/internal/jobs/types.go @@ -0,0 +1,46 @@ +package jobs + +import "time" + +type JobType string + +const ( + JobTypeNormal JobType = "normal" + JobTypeAsync JobType = "async" +) + +type HostState string + +const ( + HostQueued HostState = "queued" + HostRunning HostState = "running" + HostSuccess HostState = "succeeded" + HostFailed HostState = "failed" +) + +type HostStatus struct { + Host string + State HostState + ExitCode int + Duration time.Duration + startedAt time.Time +} + +type Job struct { + ID int + Type JobType + Command string + Created time.Time + Hosts map[string]*HostStatus + HostsOrder []string +} + +func (h *HostStatus) Elapsed() time.Duration { + if h == nil { + return 0 + } + if h.State == HostRunning && !h.startedAt.IsZero() { + return time.Since(h.startedAt) + } + return h.Duration +} diff --git a/internal/shell/command.go b/internal/shell/command.go new file mode 100644 index 0000000..ca6c296 --- /dev/null +++ b/internal/shell/command.go @@ -0,0 +1,50 @@ +package shell + +import ( + "fmt" + "strings" +) + +type CommandKind int + +const ( + CommandRun CommandKind = iota + CommandAsync + CommandStatus + CommandList + CommandHelp + CommandScroll + CommandExit +) + +type Command struct { + Kind CommandKind + Arg string + JobID int +} + +func ParseCommand(line string) Command { + trimmed := strings.TrimSpace(line) + switch { + case trimmed == ":bye" || trimmed == "exit": + return Command{Kind: CommandExit} + case trimmed == ":help": + return Command{Kind: CommandHelp} + case trimmed == ":scroll": + return Command{Kind: CommandScroll} + case trimmed == ":list": + return Command{Kind: CommandList} + case strings.HasPrefix(trimmed, ":status"): + parts := strings.Fields(trimmed) + if len(parts) == 2 { + var id int + _, _ = fmt.Sscanf(parts[1], "%d", &id) + return Command{Kind: CommandStatus, JobID: id} + } + return Command{Kind: CommandStatus} + case strings.HasPrefix(trimmed, ":async"): + return Command{Kind: CommandAsync, Arg: strings.TrimSpace(strings.TrimPrefix(trimmed, ":async"))} + default: + return Command{Kind: CommandRun, Arg: trimmed} + } +} diff --git a/internal/shell/command_test.go b/internal/shell/command_test.go new file mode 100644 index 0000000..a790ec2 --- /dev/null +++ b/internal/shell/command_test.go @@ -0,0 +1,24 @@ +package shell + +import "testing" + +func TestParseCommandAsync(t *testing.T) { + cmd := ParseCommand(":async uptime") + if cmd.Kind != CommandAsync || cmd.Arg != "uptime" { + t.Fatalf("unexpected: %+v", cmd) + } +} + +func TestParseCommandStatus(t *testing.T) { + cmd := ParseCommand(":status 7") + if cmd.Kind != CommandStatus || cmd.JobID != 7 { + t.Fatalf("unexpected: %+v", cmd) + } +} + +func TestParseCommandDefault(t *testing.T) { + cmd := ParseCommand("whoami") + if cmd.Kind != CommandRun || cmd.Arg != "whoami" { + t.Fatalf("unexpected: %+v", cmd) + } +} diff --git a/internal/shell/history.go b/internal/shell/history.go new file mode 100644 index 0000000..4cb3c56 --- /dev/null +++ b/internal/shell/history.go @@ -0,0 +1,109 @@ +package shell + +import ( + "bufio" + "errors" + "fmt" + "os" + "strings" +) + +const maxHistoryEntries = 5000 + +type historyState struct { + entries []string + index int + draft string +} + +func newHistory(entries []string) *historyState { + h := &historyState{entries: entries} + h.index = len(entries) + return h +} + +func (h *historyState) up(current string) (string, bool) { + if h == nil || len(h.entries) == 0 { + return "", false + } + if h.index == len(h.entries) { + h.draft = current + h.index = len(h.entries) - 1 + return h.entries[h.index], true + } + if h.index > 0 { + h.index-- + return h.entries[h.index], true + } + return h.entries[h.index], false +} + +func (h *historyState) down() (string, bool) { + if h == nil || len(h.entries) == 0 { + return "", false + } + if h.index == len(h.entries) { + return "", false + } + if h.index < len(h.entries)-1 { + h.index++ + return h.entries[h.index], true + } + h.index = len(h.entries) + return h.draft, true +} + +func (h *historyState) append(line string) { + if h == nil { + return + } + line = strings.TrimSpace(line) + if line == "" { + return + } + h.entries = append(h.entries, line) + h.index = len(h.entries) + h.draft = "" +} + +func loadHistory(path string) ([]string, error) { + f, err := os.Open(path) + if err != nil { + if errors.Is(err, os.ErrNotExist) { + return nil, nil + } + return nil, err + } + defer f.Close() + + var entries []string + scanner := bufio.NewScanner(f) + for scanner.Scan() { + line := strings.TrimSpace(scanner.Text()) + if line == "" { + continue + } + entries = append(entries, line) + if len(entries) > maxHistoryEntries { + entries = entries[len(entries)-maxHistoryEntries:] + } + } + if err := scanner.Err(); err != nil { + return nil, err + } + return entries, nil +} + +func appendHistory(path, line string) error { + line = strings.TrimSpace(line) + if line == "" { + return nil + } + f, err := os.OpenFile(path, os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0o600) + if err != nil { + return err + } + defer f.Close() + _, err = fmt.Fprintln(f, line) + return err +} diff --git a/internal/shell/history_test.go b/internal/shell/history_test.go new file mode 100644 index 0000000..c9376ef --- /dev/null +++ b/internal/shell/history_test.go @@ -0,0 +1,72 @@ +package shell + +import ( + "bufio" + "fmt" + "os" + "path/filepath" + "testing" +) + +func TestHistoryLoadEmptyFile(t *testing.T) { + entries, err := loadHistory("testdata/empty-history") + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + if len(entries) != 0 { + t.Fatalf("expected no entries, got %d", len(entries)) + } +} + +func TestHistoryAppendCreatesFile(t *testing.T) { + dir := t.TempDir() + path := filepath.Join(dir, "history") + if err := appendHistory(path, "ls"); err != nil { + t.Fatalf("unexpected error: %v", err) + } + entries, err := loadHistory(path) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + if len(entries) != 1 || entries[0] != "ls" { + t.Fatalf("expected [ls], got %v", entries) + } +} + +func TestHistoryLoadCapsEntries(t *testing.T) { + dir := t.TempDir() + path := filepath.Join(dir, "history") + f, err := os.Create(path) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + writer := bufio.NewWriter(f) + total := maxHistoryEntries + 2 + for i := 0; i < total; i++ { + if _, err := fmt.Fprintf(writer, "line-%d\n", i); err != nil { + t.Fatalf("unexpected error: %v", err) + } + } + if err := writer.Flush(); err != nil { + t.Fatalf("unexpected error: %v", err) + } + if err := f.Close(); err != nil { + t.Fatalf("unexpected error: %v", err) + } + + entries, err := loadHistory(path) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + if len(entries) != maxHistoryEntries { + t.Fatalf("expected %d entries, got %d", maxHistoryEntries, len(entries)) + } + wantFirst := fmt.Sprintf("line-%d", total-maxHistoryEntries) + if entries[0] != wantFirst { + t.Fatalf("expected first entry %q, got %q", wantFirst, entries[0]) + } + wantLast := fmt.Sprintf("line-%d", total-1) + if entries[len(entries)-1] != wantLast { + t.Fatalf("expected last entry %q, got %q", wantLast, entries[len(entries)-1]) + } +} diff --git a/internal/shell/model.go b/internal/shell/model.go new file mode 100644 index 0000000..ea87613 --- /dev/null +++ b/internal/shell/model.go @@ -0,0 +1,374 @@ +package shell + +import ( + "fmt" + "strings" + "sync/atomic" + "time" + + "github.com/charmbracelet/bubbles/textinput" + "github.com/charmbracelet/bubbles/viewport" + tea "github.com/charmbracelet/bubbletea" + "github.com/fatih/color" + "github.com/ncode/pretty/internal/jobs" + "github.com/ncode/pretty/internal/sshConn" + "github.com/spf13/viper" +) + +type outputMsg struct { + events []sshConn.OutputEvent +} + +const ( + defaultPrompt = "> " + maxOutputLines = 10000 +) + +type model struct { + input textinput.Model + viewport viewport.Model + output *outputBuffer + quit bool + history *historyState + scrollMode bool + + lastCtrlCAt time.Time + now func() time.Time + + hostList *sshConn.HostList + hostColors map[string]*color.Color + jobs *jobs.Manager + broker chan<- sshConn.CommandRequest + events chan sshConn.OutputEvent +} + +func initialModel(hostList *sshConn.HostList, broker chan<- sshConn.CommandRequest, events chan sshConn.OutputEvent) model { + input := textinput.New() + input.Prompt = promptFromConfig() + input.Focus() + + vp := viewport.New(0, 0) + vp.SetContent("") + + historyEntries, _ := loadHistory(viper.GetString("history_file")) + history := newHistory(historyEntries) + + var hostColors map[string]*color.Color + if hostList != nil { + hostColors = make(map[string]*color.Color, hostList.Len()) + for _, host := range hostList.Hosts() { + hostColors[host.Hostname] = host.Color + } + } + + return model{ + input: input, + viewport: vp, + output: newOutputBuffer(maxOutputLines), + history: history, + now: time.Now, + hostList: hostList, + hostColors: hostColors, + jobs: jobs.NewManager(), + broker: broker, + events: events, + } +} + +func promptFromConfig() string { + if viper.IsSet("prompt") { + return viper.GetString("prompt") + } + return defaultPrompt +} + +func (m model) Init() tea.Cmd { + return listenOutput(m.events) +} + +func appendLine(lines []string, line string) []string { + return append(lines, line) +} + +func colorizeHostLine(hostColors map[string]*color.Color, hostname, line string) string { + if hostname == "" || hostColors == nil { + return line + } + hostColor := hostColors[hostname] + if hostColor == nil { + return line + } + return hostColor.Sprint(line) +} + +func listenOutput(events <-chan sshConn.OutputEvent) tea.Cmd { + if events == nil { + return nil + } + return func() tea.Msg { + evt, ok := <-events + if !ok { + return nil + } + batch := make([]sshConn.OutputEvent, 1, 16) + batch[0] = evt + for { + select { + case next, ok := <-events: + if !ok { + return outputMsg{events: batch} + } + batch = append(batch, next) + default: + return outputMsg{events: batch} + } + } + } +} + +func (m *model) appendLines(lines ...string) { + m.output.Append(lines...) +} + +func (m *model) flushOutputs() { + offset := m.viewport.YOffset + m.viewport.SetContent(m.output.String()) + if m.scrollMode { + m.viewport.SetYOffset(offset) + return + } + m.viewport.GotoBottom() +} + +func (m *model) appendOutputs(lines ...string) { + m.appendLines(lines...) + m.flushOutputs() +} + +func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { + switch msg := msg.(type) { + case tea.KeyMsg: + switch msg.String() { + case "ctrl+c": + now := m.now() + if !m.lastCtrlCAt.IsZero() && now.Sub(m.lastCtrlCAt) <= 500*time.Millisecond { + m.quit = true + return m, tea.Quit + } + m.lastCtrlCAt = now + request := sshConn.CommandRequest{Kind: sshConn.CommandKindControl, ControlByte: 0x03} + return m, sendCommand(m.broker, request) + case "ctrl+z": + request := sshConn.CommandRequest{Kind: sshConn.CommandKindControl, ControlByte: 0x1a} + return m, sendCommand(m.broker, request) + case "up": + if m.scrollMode { + break + } + if next, ok := m.history.up(m.input.Value()); ok { + m.input.SetValue(next) + m.input.CursorEnd() + return m, nil + } + case "down": + if m.scrollMode { + break + } + if next, ok := m.history.down(); ok { + m.input.SetValue(next) + m.input.CursorEnd() + return m, nil + } + case "esc": + if m.scrollMode { + m.scrollMode = false + m.input.Focus() + m.viewport.GotoBottom() + return m, nil + } + case "enter": + line := m.input.Value() + trimmed := strings.TrimSpace(line) + if trimmed != "" { + historyPath := viper.GetString("history_file") + if historyPath != "" { + _ = appendHistory(historyPath, trimmed) + } + m.history.append(trimmed) + } + command := ParseCommand(line) + if command.Kind == CommandScroll { + m.scrollMode = true + m.input.Blur() + return m, nil + } + m.input.Reset() + switch command.Kind { + case CommandExit: + m.quit = true + return m, tea.Quit + case CommandHelp: + m.appendOutputs( + "commands: :async , :status [id], :list, :help, :scroll, :bye", + "history: use Up/Down to navigate previous commands", + "keys: Ctrl+C forwards interrupt; double Ctrl+C (500ms) quits; Ctrl+Z forwards suspend", + "scroll: :scroll to enter, esc to return (output scroll only in scroll mode)", + ) + return m, nil + case CommandList: + if m.hostList == nil { + m.appendOutputs("no hosts configured") + return m, nil + } + for _, host := range m.hostList.Hosts() { + connected := atomic.LoadInt32(&host.IsConnected) == 1 + line := fmt.Sprintf("%s: Connected(%t)", host.Hostname, connected) + m.appendOutputs(colorizeHostLine(m.hostColors, host.Hostname, line)) + } + return m, nil + case CommandStatus: + lines := statusLines(m.jobs, command.JobID, func(hostname, line string) string { + return colorizeHostLine(m.hostColors, hostname, line) + }) + m.appendOutputs(lines...) + return m, nil + case CommandAsync: + if command.Arg == "" { + return m, nil + } + hosts := connectedHosts(m.hostList) + if len(hosts) == 0 { + m.appendOutputs("no connected hosts") + return m, nil + } + hostnames := hostnames(hosts) + job := m.jobs.CreateJob(jobs.JobTypeAsync, command.Arg, hostnames) + for _, host := range hosts { + m.jobs.MarkHostRunning(job.ID, host.Hostname) + } + return m, runAsync(job.ID, command.Arg, hosts, m.events, m.jobs) + case CommandRun: + if command.Arg == "" { + return m, nil + } + hosts := connectedHosts(m.hostList) + if len(hosts) == 0 { + m.appendOutputs("no connected hosts") + return m, nil + } + hostnames := hostnames(hosts) + job := m.jobs.CreateJob(jobs.JobTypeNormal, command.Arg, hostnames) + for _, host := range hosts { + m.jobs.MarkHostRunning(job.ID, host.Hostname) + } + request := sshConn.CommandRequest{JobID: job.ID, Command: wrapCommand(command.Arg, job.ID)} + return m, sendCommand(m.broker, request) + } + } + case tea.WindowSizeMsg: + height := msg.Height - 1 + if height < 0 { + height = 0 + } + m.viewport.Width = msg.Width + m.viewport.Height = height + m.input.Width = msg.Width + return m, nil + case outputMsg: + needsFlush := false + for _, evt := range msg.events { + if prefix, jobID, exitCode, ok := jobs.ExtractSentinel(evt.Line); ok { + if prefix != "" { + if evt.System { + m.appendLines(prefix) + } else { + line := fmt.Sprintf("%s: %s", evt.Hostname, prefix) + m.appendLines(colorizeHostLine(m.hostColors, evt.Hostname, line)) + } + needsFlush = true + } + m.jobs.MarkHostDone(jobID, evt.Hostname, exitCode, exitCode == 0) + continue + } + if evt.System { + m.appendLines(evt.Line) + } else { + line := fmt.Sprintf("%s: %s", evt.Hostname, evt.Line) + m.appendLines(colorizeHostLine(m.hostColors, evt.Hostname, line)) + } + needsFlush = true + } + if needsFlush { + m.flushOutputs() + } + return m, listenOutput(m.events) + } + + var ( + inputCmd tea.Cmd + viewportCmd tea.Cmd + ) + m.input, inputCmd = m.input.Update(msg) + allowViewport := true + switch msg.(type) { + case tea.KeyMsg, tea.MouseMsg: + if !m.scrollMode { + allowViewport = false + } + } + if allowViewport { + m.viewport, viewportCmd = m.viewport.Update(msg) + } + return m, tea.Batch(inputCmd, viewportCmd) +} + +func sendCommand(broker chan<- sshConn.CommandRequest, request sshConn.CommandRequest) tea.Cmd { + if broker == nil { + return nil + } + return func() tea.Msg { + broker <- request + return nil + } +} + +func runAsync(jobID int, command string, hosts []*sshConn.Host, events chan<- sshConn.OutputEvent, manager *jobs.Manager) tea.Cmd { + if len(hosts) == 0 { + return nil + } + return func() tea.Msg { + for _, host := range hosts { + h := host + go func() { + exitCode, err := sshConn.RunCommand(h, command, jobID, events) + if err != nil { + manager.MarkHostDone(jobID, h.Hostname, exitCode, false) + return + } + manager.MarkHostDone(jobID, h.Hostname, exitCode, exitCode == 0) + }() + } + return nil + } +} + +func connectedHosts(hostList *sshConn.HostList) []*sshConn.Host { + if hostList == nil { + return nil + } + hosts := make([]*sshConn.Host, 0, hostList.Len()) + for _, host := range hostList.Hosts() { + if atomic.LoadInt32(&host.IsConnected) == 1 { + hosts = append(hosts, host) + } + } + return hosts +} + +func hostnames(hosts []*sshConn.Host) []string { + names := make([]string, 0, len(hosts)) + for _, host := range hosts { + names = append(names, host.Hostname) + } + return names +} diff --git a/internal/shell/model_test.go b/internal/shell/model_test.go new file mode 100644 index 0000000..7ad1906 --- /dev/null +++ b/internal/shell/model_test.go @@ -0,0 +1,489 @@ +package shell + +import ( + "fmt" + "os" + "path/filepath" + "strings" + "testing" + "time" + + tea "github.com/charmbracelet/bubbletea" + "github.com/fatih/color" + "github.com/ncode/pretty/internal/jobs" + "github.com/ncode/pretty/internal/sshConn" + "github.com/spf13/viper" +) + +func TestAppendLine(t *testing.T) { + lines := []string{"one"} + lines = appendLine(lines, "two") + if len(lines) != 2 || lines[1] != "two" { + t.Fatalf("unexpected lines: %#v", lines) + } +} + +func TestColorizeHostLineUsesAssignedColor(t *testing.T) { + prevNoColor := color.NoColor + color.NoColor = false + defer func() { color.NoColor = prevNoColor }() + + hostColor := color.New(color.FgRed) + line := "host1: whoami" + got := colorizeHostLine(map[string]*color.Color{"host1": hostColor}, "host1", line) + want := hostColor.Sprint(line) + if got != want { + t.Fatalf("unexpected output: %q", got) + } +} + +func TestOutputMsgInlineSentinelPreservesPrefix(t *testing.T) { + prevNoColor := color.NoColor + color.NoColor = false + defer func() { color.NoColor = prevNoColor }() + + hostColor := color.New(color.FgRed) + hostList := sshConn.NewHostList() + hostList.AddHost(&sshConn.Host{Hostname: "host1", Color: hostColor}) + + m := initialModel(hostList, nil, nil) + job := m.jobs.CreateJob(jobs.JobTypeNormal, "whoami", []string{"host1"}) + m.jobs.MarkHostRunning(job.ID, "host1") + + line := "whoami" + jobs.SentinelFor(job.ID) + ":0" + updated, _ := m.Update(outputMsg{events: []sshConn.OutputEvent{ + {JobID: job.ID, Hostname: "host1", Line: line}, + }}) + um := updated.(model) + + lines := um.output.Lines() + if len(lines) != 1 { + t.Fatalf("expected one output line, got %d", len(lines)) + } + want := hostColor.Sprint("host1: whoami") + if lines[0] != want { + t.Fatalf("unexpected output: %q", lines[0]) + } +} + +func TestListCommandColorsHostLines(t *testing.T) { + prevNoColor := color.NoColor + color.NoColor = false + defer func() { color.NoColor = prevNoColor }() + + hostColor := color.New(color.FgGreen) + hostList := sshConn.NewHostList() + hostList.AddHost(&sshConn.Host{Hostname: "host1", Color: hostColor}) + + m := initialModel(hostList, nil, nil) + m.input.SetValue(":list") + updated, _ := m.Update(tea.KeyMsg{Type: tea.KeyEnter}) + um := updated.(model) + + want := hostColor.Sprint("host1: Connected(false)") + lines := um.output.Lines() + if len(lines) != 1 || lines[0] != want { + t.Fatalf("unexpected output: %#v", lines) + } +} + +func TestUpdateProcessesBatchOutput(t *testing.T) { + hostList := sshConn.NewHostList() + hostList.AddHost(&sshConn.Host{Hostname: "host1"}) + + m := initialModel(hostList, nil, nil) + msg := outputMsg{events: []sshConn.OutputEvent{ + {Hostname: "host1", Line: "one"}, + {Hostname: "host1", Line: "two"}, + }} + updated, _ := m.Update(msg) + um := updated.(model) + lines := um.output.Lines() + if len(lines) != 2 || lines[0] != "host1: one" || lines[1] != "host1: two" { + t.Fatalf("unexpected output: %#v", lines) + } +} + +func TestInitialModelUsesPromptFromConfig(t *testing.T) { + viper.Reset() + defer viper.Reset() + viper.Set("prompt", "\u03bb ") + + m := initialModel(nil, nil, nil) + if m.input.Prompt != "\u03bb " { + t.Fatalf("unexpected prompt: %q", m.input.Prompt) + } +} + +func TestInitialModelUsesDefaultPromptWhenUnset(t *testing.T) { + viper.Reset() + defer viper.Reset() + + m := initialModel(nil, nil, nil) + if m.input.Prompt != defaultPrompt { + t.Fatalf("unexpected prompt: %q", m.input.Prompt) + } +} + +func TestModelAppendHistoryOnEnter(t *testing.T) { + dir := t.TempDir() + path := filepath.Join(dir, "history") + prevHistory := viper.GetString("history_file") + viper.Set("history_file", path) + defer viper.Set("history_file", prevHistory) + + m := initialModel(nil, nil, nil) + m.input.SetValue("ls") + updated, _ := m.Update(tea.KeyMsg{Type: tea.KeyEnter}) + _ = updated.(model) + + entries, err := loadHistory(path) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + if len(entries) != 1 || entries[0] != "ls" { + t.Fatalf("expected [ls], got %v", entries) + } +} + +func TestInitialModelLoadsHistory(t *testing.T) { + dir := t.TempDir() + path := filepath.Join(dir, "history") + if err := os.WriteFile(path, []byte("one\n\ntwo\n"), 0o600); err != nil { + t.Fatalf("unexpected error: %v", err) + } + prevHistory := viper.GetString("history_file") + viper.Set("history_file", path) + defer viper.Set("history_file", prevHistory) + + m := initialModel(nil, nil, nil) + if m.history == nil { + t.Fatal("expected history to be initialized") + } + if len(m.history.entries) != 2 || m.history.entries[0] != "one" || m.history.entries[1] != "two" { + t.Fatalf("unexpected history entries: %v", m.history.entries) + } +} + +func TestHistoryNavigationRestoresDraft(t *testing.T) { + m := initialModel(nil, nil, nil) + m.history = newHistory([]string{"echo one", "echo two"}) + m.input.SetValue("draft") + + m = pressKey(m, "up") + if m.input.Value() != "echo two" { + t.Fatalf("expected last history entry, got %q", m.input.Value()) + } + + m = pressKey(m, "down") + if m.input.Value() != "draft" { + t.Fatalf("expected draft restored, got %q", m.input.Value()) + } +} + +func TestHistoryNavigationUsesNewEntry(t *testing.T) { + dir := t.TempDir() + path := filepath.Join(dir, "history") + prevHistory := viper.GetString("history_file") + viper.Set("history_file", path) + defer viper.Set("history_file", prevHistory) + + m := initialModel(nil, nil, nil) + m.input.SetValue("ls") + updated, _ := m.Update(tea.KeyMsg{Type: tea.KeyEnter}) + m = updated.(model) + + m = pressKey(m, "up") + if m.input.Value() != "ls" { + t.Fatalf("expected new entry, got %q", m.input.Value()) + } +} + +func TestScrollModeEscExits(t *testing.T) { + m := initialModel(nil, nil, nil) + m.input.SetValue(":scroll") + updated, _ := m.Update(tea.KeyMsg{Type: tea.KeyEnter}) + m = updated.(model) + if !m.scrollMode { + t.Fatal("expected scroll mode") + } + m = pressKey(m, "esc") + if m.scrollMode { + t.Fatal("expected scroll mode to exit") + } +} + +func TestOutputDoesNotAutoFollowInScrollMode(t *testing.T) { + m := initialModel(nil, nil, nil) + m.scrollMode = true + m.viewport.SetContent("one\n") + m.viewport.SetYOffset(0) + m.appendOutputs("two") + if m.viewport.YOffset != 0 { + t.Fatalf("expected viewport offset to remain, got %d", m.viewport.YOffset) + } +} + +func TestOutputAutoFollowsWhenNotInScrollMode(t *testing.T) { + m := initialModel(nil, nil, nil) + m.viewport.Height = 1 + m.appendOutputs("one") + m.appendOutputs("two") + if m.viewport.YOffset != 1 { + t.Fatalf("expected viewport offset to be at bottom, got %d", m.viewport.YOffset) + } +} + +func TestOutputDoesNotScrollOnInputNavigation(t *testing.T) { + m := initialModel(nil, nil, nil) + m.history = newHistory(nil) + m.viewport.Height = 1 + m.appendOutputs("one", "two", "three") + start := m.viewport.YOffset + if start == 0 { + t.Fatalf("expected non-zero bottom offset, got %d", start) + } + + m = pressKey(m, "up") + if m.viewport.YOffset != start { + t.Fatalf("expected offset unchanged on up, got %d", m.viewport.YOffset) + } + + m = pressKey(m, "down") + if m.viewport.YOffset != start { + t.Fatalf("expected offset unchanged on down, got %d", m.viewport.YOffset) + } + + m = pressKey(m, "left") + if m.viewport.YOffset != start { + t.Fatalf("expected offset unchanged on left, got %d", m.viewport.YOffset) + } + + m = pressKey(m, "right") + if m.viewport.YOffset != start { + t.Fatalf("expected offset unchanged on right, got %d", m.viewport.YOffset) + } +} + +func TestScrollModeDoesNotChangePromptBuffer(t *testing.T) { + m := initialModel(nil, nil, nil) + m.history = newHistory([]string{"one"}) + m.input.SetValue("draft") + m.scrollMode = true + m = pressKey(m, "up") + if m.input.Value() != "draft" { + t.Fatalf("expected prompt buffer to remain, got %q", m.input.Value()) + } +} + +func TestScrollModeScrollKeysAffectViewport(t *testing.T) { + m := initialModel(nil, nil, nil) + m.viewport.Height = 1 + m.appendOutputs("one", "two", "three") + bottom := m.viewport.YOffset + if bottom == 0 { + t.Fatalf("expected non-zero bottom offset, got %d", bottom) + } + m = pressKey(m, "up") + if m.viewport.YOffset != bottom { + t.Fatalf("expected viewport offset unchanged outside scroll mode, got %d", m.viewport.YOffset) + } + m.scrollMode = true + m = pressKey(m, "up") + if m.viewport.YOffset >= bottom { + t.Fatalf("expected viewport offset to decrease, got %d", m.viewport.YOffset) + } +} + +func TestHelpIncludesScroll(t *testing.T) { + m := initialModel(nil, nil, nil) + m.input.SetValue(":help") + updated, _ := m.Update(tea.KeyMsg{Type: tea.KeyEnter}) + um := updated.(model) + + joined := strings.Join(um.output.Lines(), "\n") + if !strings.Contains(joined, ":scroll") { + t.Fatalf("expected help to include :scroll, got %q", joined) + } + if !strings.Contains(joined, "Up/Down") { + t.Fatalf("expected help to mention Up/Down history, got %q", joined) + } + if !strings.Contains(joined, "Ctrl+C") || !strings.Contains(joined, "Ctrl+Z") { + t.Fatalf("expected help to mention Ctrl+C/Ctrl+Z, got %q", joined) + } +} + +func TestCtrlCForwardsInterrupt(t *testing.T) { + broker := make(chan sshConn.CommandRequest, 1) + m := initialModel(nil, broker, nil) + now := time.Date(2026, 1, 1, 0, 0, 0, 0, time.UTC) + m.now = func() time.Time { return now } + + updated, cmd := m.Update(tea.KeyMsg{Type: tea.KeyCtrlC}) + um := updated.(model) + if um.quit { + t.Fatal("expected not to quit on first ctrl+c") + } + _ = runCmd(t, cmd) + req := readRequest(t, broker) + if req.Kind != sshConn.CommandKindControl { + t.Fatalf("expected control kind, got %v", req.Kind) + } + if req.ControlByte != 0x03 { + t.Fatalf("expected 0x03, got 0x%02x", req.ControlByte) + } +} + +func TestCtrlCDoublePressQuits(t *testing.T) { + broker := make(chan sshConn.CommandRequest, 1) + m := initialModel(nil, broker, nil) + base := time.Date(2026, 1, 1, 0, 0, 0, 0, time.UTC) + m.now = func() time.Time { return base } + + updated, cmd := m.Update(tea.KeyMsg{Type: tea.KeyCtrlC}) + m = updated.(model) + _ = runCmd(t, cmd) + _ = readRequest(t, broker) + + m.now = func() time.Time { return base.Add(400 * time.Millisecond) } + updated, quitCmd := m.Update(tea.KeyMsg{Type: tea.KeyCtrlC}) + um := updated.(model) + if !um.quit { + t.Fatal("expected quit on double ctrl+c") + } + if _, ok := quitCmd().(tea.QuitMsg); !ok { + t.Fatalf("expected QuitMsg, got %T", quitCmd()) + } + select { + case <-broker: + t.Fatal("did not expect ctrl+c to forward on quit press") + default: + } +} + +func TestCtrlCAfterTimeoutForwardsAgain(t *testing.T) { + broker := make(chan sshConn.CommandRequest, 1) + m := initialModel(nil, broker, nil) + base := time.Date(2026, 1, 1, 0, 0, 0, 0, time.UTC) + m.now = func() time.Time { return base } + + _, cmd := m.Update(tea.KeyMsg{Type: tea.KeyCtrlC}) + _ = runCmd(t, cmd) + _ = readRequest(t, broker) + + m.now = func() time.Time { return base.Add(600 * time.Millisecond) } + updated, cmd := m.Update(tea.KeyMsg{Type: tea.KeyCtrlC}) + um := updated.(model) + if um.quit { + t.Fatal("expected not to quit after timeout") + } + m = um + _ = runCmd(t, cmd) + req := readRequest(t, broker) + if req.ControlByte != 0x03 { + t.Fatalf("expected 0x03, got 0x%02x", req.ControlByte) + } +} + +func TestCtrlZForwardsSuspend(t *testing.T) { + broker := make(chan sshConn.CommandRequest, 1) + m := initialModel(nil, broker, nil) + + updated, cmd := m.Update(tea.KeyMsg{Type: tea.KeyCtrlZ}) + um := updated.(model) + if um.quit { + t.Fatal("expected not to quit on ctrl+z") + } + _ = runCmd(t, cmd) + req := readRequest(t, broker) + if req.ControlByte != 0x1a { + t.Fatalf("expected 0x1a, got 0x%02x", req.ControlByte) + } +} + +func TestControlKeysForwardInScrollMode(t *testing.T) { + broker := make(chan sshConn.CommandRequest, 2) + m := initialModel(nil, broker, nil) + m.scrollMode = true + now := time.Date(2026, 1, 1, 0, 0, 0, 0, time.UTC) + m.now = func() time.Time { return now } + + updated, cmd := m.Update(tea.KeyMsg{Type: tea.KeyCtrlC}) + um := updated.(model) + if um.quit { + t.Fatal("expected not to quit on ctrl+c in scroll mode") + } + m = um + _ = runCmd(t, cmd) + req := readRequest(t, broker) + if req.ControlByte != 0x03 { + t.Fatalf("expected 0x03, got 0x%02x", req.ControlByte) + } + + updated, cmd = m.Update(tea.KeyMsg{Type: tea.KeyCtrlZ}) + um = updated.(model) + if um.quit { + t.Fatal("expected not to quit on ctrl+z in scroll mode") + } + if !um.scrollMode { + t.Fatal("expected scroll mode to remain enabled") + } + _ = runCmd(t, cmd) + req = readRequest(t, broker) + if req.ControlByte != 0x1a { + t.Fatalf("expected 0x1a, got 0x%02x", req.ControlByte) + } +} + +func runCmd(t *testing.T, cmd tea.Cmd) tea.Msg { + t.Helper() + if cmd == nil { + t.Fatal("expected command") + } + return cmd() +} + +func readRequest(t *testing.T, broker <-chan sshConn.CommandRequest) sshConn.CommandRequest { + t.Helper() + select { + case req := <-broker: + return req + default: + t.Fatal("expected broker request") + } + return sshConn.CommandRequest{} +} + +func pressKey(m model, key string) model { + var msg tea.KeyMsg + switch key { + case "up": + msg = tea.KeyMsg{Type: tea.KeyUp} + case "down": + msg = tea.KeyMsg{Type: tea.KeyDown} + case "enter": + msg = tea.KeyMsg{Type: tea.KeyEnter} + case "esc": + msg = tea.KeyMsg{Type: tea.KeyEsc} + case "left": + msg = tea.KeyMsg{Type: tea.KeyLeft} + case "right": + msg = tea.KeyMsg{Type: tea.KeyRight} + default: + msg = tea.KeyMsg{Type: tea.KeyRunes, Runes: []rune(key)} + } + updated, _ := m.Update(msg) + return updated.(model) +} +func BenchmarkAppendOutputs(b *testing.B) { + lines := make([]string, 0, 1000) + for i := 0; i < 1000; i++ { + lines = append(lines, fmt.Sprintf("line-%d", i)) + } + + b.ReportAllocs() + for i := 0; i < b.N; i++ { + m := initialModel(nil, nil, nil) + m.appendOutputs(lines...) + } +} diff --git a/internal/shell/output_buffer.go b/internal/shell/output_buffer.go new file mode 100644 index 0000000..9d925e6 --- /dev/null +++ b/internal/shell/output_buffer.go @@ -0,0 +1,61 @@ +package shell + +import "strings" + +type outputBuffer struct { + lines []string + start int + size int + max int +} + +func newOutputBuffer(max int) *outputBuffer { + if max < 0 { + max = 0 + } + return &outputBuffer{lines: make([]string, max), max: max} +} + +func (b *outputBuffer) Append(lines ...string) { + for _, line := range lines { + if b.max == 0 { + continue + } + if b.size < b.max { + idx := (b.start + b.size) % b.max + b.lines[idx] = line + b.size++ + continue + } + b.lines[b.start] = line + b.start = (b.start + 1) % b.max + } +} + +func (b *outputBuffer) Lines() []string { + if b.size == 0 { + return nil + } + out := make([]string, 0, b.size) + for i := 0; i < b.size; i++ { + idx := (b.start + i) % b.max + out = append(out, b.lines[idx]) + } + return out +} + +func (b *outputBuffer) String() string { + if b.size == 0 { + return "" + } + var sb strings.Builder + sb.Grow(b.size * 80) + for i := 0; i < b.size; i++ { + idx := (b.start + i) % b.max + if i > 0 { + sb.WriteByte('\n') + } + sb.WriteString(b.lines[idx]) + } + return sb.String() +} diff --git a/internal/shell/output_buffer_test.go b/internal/shell/output_buffer_test.go new file mode 100644 index 0000000..6ba295c --- /dev/null +++ b/internal/shell/output_buffer_test.go @@ -0,0 +1,22 @@ +package shell + +import ( + "reflect" + "testing" +) + +func TestOutputBufferKeepsOrder(t *testing.T) { + buf := newOutputBuffer(3) + buf.Append("one", "two") + if got, want := buf.Lines(), []string{"one", "two"}; !reflect.DeepEqual(got, want) { + t.Fatalf("unexpected lines: %#v", got) + } +} + +func TestOutputBufferCapsLines(t *testing.T) { + buf := newOutputBuffer(2) + buf.Append("one", "two", "three") + if got, want := buf.Lines(), []string{"two", "three"}; !reflect.DeepEqual(got, want) { + t.Fatalf("unexpected lines: %#v", got) + } +} diff --git a/internal/shell/shell.go b/internal/shell/shell.go new file mode 100644 index 0000000..3f834be --- /dev/null +++ b/internal/shell/shell.go @@ -0,0 +1,34 @@ +package shell + +import ( + tea "github.com/charmbracelet/bubbletea" + "github.com/ncode/pretty/internal/sshConn" +) + +const ( + minOutputBuffer = 128 + outputBufferPerHost = 16 +) + +func outputBufferSize(hostCount int) int { + size := minOutputBuffer + hostCount*outputBufferPerHost + if size < minOutputBuffer { + return minOutputBuffer + } + return size +} + +func Spawn(hostList *sshConn.HostList) { + broker := make(chan sshConn.CommandRequest) + hostCount := 0 + if hostList != nil { + hostCount = hostList.Len() + } + events := make(chan sshConn.OutputEvent, outputBufferSize(hostCount)) + go sshConn.Broker(hostList, broker, events) + + p := tea.NewProgram(initialModel(hostList, broker, events), tea.WithAltScreen()) + if _, err := p.Run(); err != nil { + panic(err) + } +} diff --git a/internal/shell/shell_test.go b/internal/shell/shell_test.go new file mode 100644 index 0000000..933953d --- /dev/null +++ b/internal/shell/shell_test.go @@ -0,0 +1,15 @@ +package shell + +import "testing" + +func TestOutputBufferSizeMinimum(t *testing.T) { + if got := outputBufferSize(0); got != 128 { + t.Fatalf("unexpected size: %d", got) + } +} + +func TestOutputBufferSizeScales(t *testing.T) { + if got := outputBufferSize(10); got != 288 { + t.Fatalf("unexpected size: %d", got) + } +} diff --git a/internal/shell/status.go b/internal/shell/status.go new file mode 100644 index 0000000..701bca0 --- /dev/null +++ b/internal/shell/status.go @@ -0,0 +1,71 @@ +package shell + +import ( + "fmt" + "time" + + "github.com/ncode/pretty/internal/jobs" +) + +type hostLineColorizer func(hostname, line string) string + +func statusLines(manager *jobs.Manager, jobID int, colorize hostLineColorizer) []string { + if manager == nil { + return []string{"status unavailable"} + } + if jobID > 0 { + job := manager.Job(jobID) + if job == nil { + return []string{fmt.Sprintf("job %d not found", jobID)} + } + return formatJob(job, colorize) + } + + lines := make([]string, 0) + for _, job := range manager.NormalJobs() { + lines = append(lines, formatJob(job, colorize)...) + } + for _, job := range manager.AsyncJobs() { + lines = append(lines, formatJob(job, colorize)...) + } + if len(lines) == 0 { + return []string{"no jobs recorded"} + } + return lines +} + +func formatJob(job *jobs.Job, colorize hostLineColorizer) []string { + if job == nil { + return nil + } + lines := []string{fmt.Sprintf("job %d [%s] %s", job.ID, job.Type, job.Command)} + for _, host := range job.HostsOrder { + status := job.Hosts[host] + line := formatHostStatus(status, colorize) + if line != "" { + lines = append(lines, line) + } + } + return lines +} + +func formatHostStatus(status *jobs.HostStatus, colorize hostLineColorizer) string { + if status == nil { + return "" + } + exit := "-" + if status.State == jobs.HostSuccess || status.State == jobs.HostFailed { + exit = fmt.Sprintf("%d", status.ExitCode) + } + + duration := "-" + if elapsed := status.Elapsed(); elapsed > 0 { + duration = elapsed.Truncate(time.Millisecond).String() + } + + line := fmt.Sprintf(" %s: %s exit=%s duration=%s", status.Host, status.State, exit, duration) + if colorize == nil { + return line + } + return colorize(status.Host, line) +} diff --git a/internal/shell/status_test.go b/internal/shell/status_test.go new file mode 100644 index 0000000..868b454 --- /dev/null +++ b/internal/shell/status_test.go @@ -0,0 +1,29 @@ +package shell + +import ( + "testing" + + "github.com/ncode/pretty/internal/jobs" +) + +func TestStatusLinesColorizeHosts(t *testing.T) { + manager := jobs.NewManager() + job := manager.CreateJob(jobs.JobTypeNormal, "whoami", []string{"host1"}) + status := job.Hosts["host1"] + status.State = jobs.HostSuccess + status.ExitCode = 0 + status.Duration = 0 + + colorize := func(hostname, line string) string { + return "COLOR(" + hostname + "):" + line + } + + lines := statusLines(manager, job.ID, colorize) + if len(lines) != 2 { + t.Fatalf("unexpected lines: %#v", lines) + } + want := "COLOR(host1): host1: succeeded exit=0 duration=-" + if lines[1] != want { + t.Fatalf("unexpected line: %q", lines[1]) + } +} diff --git a/internal/shell/testdata/empty-history b/internal/shell/testdata/empty-history new file mode 100644 index 0000000..e69de29 diff --git a/internal/shell/view.go b/internal/shell/view.go new file mode 100644 index 0000000..56f3d46 --- /dev/null +++ b/internal/shell/view.go @@ -0,0 +1,8 @@ +package shell + +func (m model) View() string { + if m.quit { + return "" + } + return m.viewport.View() + "\n" + m.input.View() +} diff --git a/internal/shell/wrap.go b/internal/shell/wrap.go new file mode 100644 index 0000000..0982961 --- /dev/null +++ b/internal/shell/wrap.go @@ -0,0 +1,18 @@ +package shell + +import ( + "fmt" + "strings" + "unicode" + + "github.com/ncode/pretty/internal/jobs" +) + +func wrapCommand(command string, jobID int) string { + trimmed := strings.TrimRightFunc(command, unicode.IsSpace) + sep := "; " + if strings.HasSuffix(trimmed, "&&") || strings.HasSuffix(trimmed, "||") || strings.HasSuffix(trimmed, "&") || strings.HasSuffix(trimmed, ";") { + sep = "\n" + } + return fmt.Sprintf("%s%sprintf '%s:%%d\\n' $?", command, sep, jobs.SentinelFor(jobID)) +} diff --git a/internal/shell/wrap_test.go b/internal/shell/wrap_test.go new file mode 100644 index 0000000..1d5e4b5 --- /dev/null +++ b/internal/shell/wrap_test.go @@ -0,0 +1,52 @@ +package shell + +import ( + "strings" + "testing" +) + +func TestWrapCommand(t *testing.T) { + cmd := wrapCommand("whoami", 3) + if !strings.Contains(cmd, "__PRETTY_EXIT__3") { + t.Fatalf("expected sentinel in command: %s", cmd) + } +} + +func TestWrapCommand_NoLeadingNewline(t *testing.T) { + cmd := wrapCommand("whoami", 3) + if strings.Contains(cmd, "\\n__PRETTY_EXIT__") { + t.Fatalf("expected no leading newline in sentinel wrapper: %s", cmd) + } +} + +func TestWrapCommand_TrailingOperators(t *testing.T) { + cases := []struct { + name string + command string + }{ + {name: "trailing_ampersand", command: "sleep 1 &"}, + {name: "trailing_semicolon", command: "echo ok;"}, + {name: "trailing_and", command: "echo ok &&"}, + {name: "trailing_or", command: "echo ok ||"}, + } + for _, tc := range cases { + t.Run(tc.name, func(t *testing.T) { + cmd := wrapCommand(tc.command, 7) + if strings.Contains(cmd, "&;") { + t.Fatalf("unexpected '&;' in wrapped command: %s", cmd) + } + if strings.Contains(cmd, ";;") { + t.Fatalf("unexpected ';;' in wrapped command: %s", cmd) + } + if strings.Contains(cmd, "&&;") { + t.Fatalf("unexpected '&&;' in wrapped command: %s", cmd) + } + if strings.Contains(cmd, "||;") { + t.Fatalf("unexpected '||;' in wrapped command: %s", cmd) + } + if !strings.Contains(cmd, "__PRETTY_EXIT__7") { + t.Fatalf("expected sentinel in command: %s", cmd) + } + }) + } +} diff --git a/internal/sshConn/async.go b/internal/sshConn/async.go new file mode 100644 index 0000000..e502784 --- /dev/null +++ b/internal/sshConn/async.go @@ -0,0 +1,39 @@ +package sshConn + +import ( + "fmt" + + "golang.org/x/crypto/ssh" +) + +func RunCommand(host *Host, command string, jobID int, events chan<- OutputEvent) (int, error) { + connection, err := Connection(host) + if err != nil { + emitSystem(events, host, fmt.Sprintf("error connection to host %s: %v", host.Hostname, err)) + return 1, err + } + defer connection.Close() + + session, err := connection.NewSession() + if err != nil { + emitSystem(events, host, fmt.Sprintf("unable to open session: %v", err)) + return 1, err + } + defer session.Close() + + stdoutWriter := NewProxyWriter(events, host, jobID) + stderrWriter := NewProxyWriter(events, host, jobID) + stderrWriter.system = true + session.Stdout = stdoutWriter + session.Stderr = stderrWriter + + err = session.Run(command) + if err == nil { + return 0, nil + } + if exitErr, ok := err.(*ssh.ExitError); ok { + return exitErr.ExitStatus(), nil + } + emitSystem(events, host, fmt.Sprintf("command failed on %s: %v", host.Hostname, err)) + return 1, err +} diff --git a/internal/sshConn/command.go b/internal/sshConn/command.go new file mode 100644 index 0000000..f8bf698 --- /dev/null +++ b/internal/sshConn/command.go @@ -0,0 +1,15 @@ +package sshConn + +type CommandKind int + +const ( + CommandKindRun CommandKind = iota + CommandKindControl +) + +type CommandRequest struct { + JobID int + Command string + Kind CommandKind + ControlByte byte +} diff --git a/internal/sshConn/config.go b/internal/sshConn/config.go new file mode 100644 index 0000000..0895e4a --- /dev/null +++ b/internal/sshConn/config.go @@ -0,0 +1,238 @@ +package sshConn + +import ( + "fmt" + "os" + "os/user" + "path/filepath" + "strconv" + "strings" + + sshconfig "github.com/kevinburke/ssh_config" + "golang.org/x/crypto/ssh" +) + +type SSHConfigPaths struct { + User string + System string +} + +type SSHConfigResolver struct { + user *sshconfig.Config + system *sshconfig.Config +} + +type HostSpec struct { + Alias string + Host string + Port int + User string + PortSet bool + UserSet bool +} + +type ResolvedHost struct { + Alias string + Host string + Port int + User string + IdentityFiles []string + ProxyJump []string +} + +func LoadSSHConfig(paths SSHConfigPaths) (*SSHConfigResolver, error) { + userCfg, err := loadConfig(paths.User) + if err != nil { + return nil, err + } + systemCfg, err := loadConfig(paths.System) + if err != nil { + return nil, err + } + return &SSHConfigResolver{user: userCfg, system: systemCfg}, nil +} + +func loadConfig(path string) (*sshconfig.Config, error) { + if path == "" { + return nil, nil + } + expanded := expandPath(path) + file, err := os.Open(expanded) + if err != nil { + if os.IsNotExist(err) { + return nil, nil + } + return nil, err + } + defer file.Close() + return sshconfig.Decode(file) +} + +func (r *SSHConfigResolver) ResolveHost(spec HostSpec, fallbackUser string) (ResolvedHost, error) { + alias := spec.Host + if spec.Alias != "" { + alias = spec.Alias + } + resolved := ResolvedHost{Alias: alias, Host: alias} + + hostName, err := r.getValue(alias, "HostName") + if err != nil { + return ResolvedHost{}, err + } + if hostName != "" { + resolved.Host = hostName + } + + userValue := spec.User + userSet := spec.UserSet + if !userSet { + userValue, err = r.getValue(alias, "User") + if err != nil { + return ResolvedHost{}, err + } + if userValue != "" { + userSet = true + } + } + if !userSet { + if fallbackUser != "" { + userValue = fallbackUser + } else { + userValue = currentUser() + } + } + resolved.User = userValue + + portValue := spec.Port + portSet := spec.PortSet + if !portSet { + portStr, err := r.getValue(alias, "Port") + if err != nil { + return ResolvedHost{}, err + } + if portStr != "" { + portValue, err = strconv.Atoi(portStr) + if err != nil { + return ResolvedHost{}, fmt.Errorf("invalid port %q: %w", portStr, err) + } + portSet = true + } + } + if !portSet { + portValue = 22 + } + resolved.Port = portValue + + identityFiles, err := r.getAllValues(alias, "IdentityFile") + if err != nil { + return ResolvedHost{}, err + } + resolved.IdentityFiles = identityFiles + + proxyJump, err := r.getValue(alias, "ProxyJump") + if err != nil { + return ResolvedHost{}, err + } + if proxyJump != "" { + resolved.ProxyJump = ParseProxyJump(proxyJump) + } + + return resolved, nil +} + +func (r *SSHConfigResolver) getValue(alias, key string) (string, error) { + if r.user != nil { + val, err := r.user.Get(alias, key) + if err != nil { + return "", err + } + if strings.TrimSpace(val) != "" { + return val, nil + } + } + if r.system != nil { + val, err := r.system.Get(alias, key) + if err != nil { + return "", err + } + if strings.TrimSpace(val) != "" { + return val, nil + } + } + return "", nil +} + +func (r *SSHConfigResolver) getAllValues(alias, key string) ([]string, error) { + values := []string{} + if r.user != nil { + vals, err := r.user.GetAll(alias, key) + if err != nil { + return nil, err + } + values = append(values, vals...) + } + if r.system != nil { + vals, err := r.system.GetAll(alias, key) + if err != nil { + return nil, err + } + values = append(values, vals...) + } + return values, nil +} + +func currentUser() string { + if u, err := user.Current(); err == nil && u.Username != "" { + return u.Username + } + if env := os.Getenv("USER"); env != "" { + return env + } + return os.Getenv("LOGNAME") +} + +func expandPath(path string) string { + if path == "" { + return path + } + if path == "~" { + if home, err := os.UserHomeDir(); err == nil { + return home + } + } + if strings.HasPrefix(path, "~/") { + if home, err := os.UserHomeDir(); err == nil { + return filepath.Join(home, path[2:]) + } + } + return path +} + +func ParseProxyJump(value string) []string { + parts := strings.Split(value, ",") + jumps := make([]string, 0, len(parts)) + for _, part := range parts { + trimmed := strings.TrimSpace(part) + if trimmed != "" { + jumps = append(jumps, trimmed) + } + } + return jumps +} + +func LoadIdentityFiles(paths []string) ([]ssh.AuthMethod, error) { + methods := make([]ssh.AuthMethod, 0, len(paths)) + for _, path := range paths { + expanded := expandPath(path) + key, err := os.ReadFile(expanded) + if err != nil { + return nil, err + } + signer, err := ssh.ParsePrivateKey(key) + if err != nil { + return nil, err + } + methods = append(methods, ssh.PublicKeys(signer)) + } + return methods, nil +} diff --git a/internal/sshConn/config_test.go b/internal/sshConn/config_test.go new file mode 100644 index 0000000..1011c61 --- /dev/null +++ b/internal/sshConn/config_test.go @@ -0,0 +1,219 @@ +package sshConn + +import ( + "crypto/rand" + "crypto/rsa" + "crypto/x509" + "encoding/pem" + "net" + "os" + "path/filepath" + "reflect" + "testing" + + "golang.org/x/crypto/ssh/agent" +) + +func TestResolveHostPrecedence(t *testing.T) { + cfg := "Host web\n User deploy\n Port 2222\n HostName web.internal\n" + userCfg := writeTempConfig(t, cfg) + resolver, err := LoadSSHConfig(SSHConfigPaths{User: userCfg}) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + + spec := HostSpec{Host: "web", Port: 22, PortSet: true} + resolved, err := resolver.ResolveHost(spec, "current") + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + if resolved.Host != "web.internal" || resolved.Port != 22 || resolved.User != "deploy" { + t.Fatalf("unexpected resolved host: %+v", resolved) + } +} + +func TestResolveHostPatternMatchExact(t *testing.T) { + cfg := "Host myserver\n HostName 10.0.0.5\n" + userCfg := writeTempConfig(t, cfg) + resolver, err := LoadSSHConfig(SSHConfigPaths{User: userCfg}) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + + resolved, err := resolver.ResolveHost(HostSpec{Host: "myserver"}, "fallback") + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + if resolved.Host != "10.0.0.5" { + t.Fatalf("unexpected resolved host: %+v", resolved) + } +} + +func TestResolveHostPatternMatchWildcard(t *testing.T) { + cfg := "Host *.prod\n User deploy\n" + userCfg := writeTempConfig(t, cfg) + resolver, err := LoadSSHConfig(SSHConfigPaths{User: userCfg}) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + + resolved, err := resolver.ResolveHost(HostSpec{Host: "web.prod"}, "fallback") + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + if resolved.User != "deploy" { + t.Fatalf("unexpected resolved user: %+v", resolved) + } +} + +func TestResolveHostFallbackUser(t *testing.T) { + resolver, err := LoadSSHConfig(SSHConfigPaths{}) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + resolved, err := resolver.ResolveHost(HostSpec{Host: "host1"}, "fallback") + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + if resolved.User != "fallback" { + t.Fatalf("unexpected resolved user: %+v", resolved) + } +} + +func TestLoadIdentityFilesFailFast(t *testing.T) { + _, err := LoadIdentityFiles([]string{"/does/not/exist"}) + if err == nil { + t.Fatalf("expected error") + } +} + +func TestLoadIdentityFilesSuccess(t *testing.T) { + keyPath := writeTempKey(t) + methods, err := LoadIdentityFiles([]string{keyPath}) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + if len(methods) != 1 { + t.Fatalf("expected one auth method, got %d", len(methods)) + } +} + +func TestClientConfigForCombinedAuth(t *testing.T) { + socketPath := startTestAgent(t) + t.Setenv("SSH_AUTH_SOCK", socketPath) + keyPath := writeTempKey(t) + + config, err := clientConfigFor(ResolvedHost{ + User: "deploy", + IdentityFiles: []string{keyPath}, + }) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + if len(config.Auth) != 2 { + t.Fatalf("expected agent + identity auth methods, got %d", len(config.Auth)) + } +} + +func TestParseProxyJump(t *testing.T) { + got := ParseProxyJump("jump1,jump2") + want := []string{"jump1", "jump2"} + if !reflect.DeepEqual(got, want) { + t.Fatalf("unexpected jumps: %+v", got) + } +} + +func TestResolveProxyJumpSingle(t *testing.T) { + cfg := "Host target\n ProxyJump jump1\n" + userCfg := writeTempConfig(t, cfg) + resolver, err := LoadSSHConfig(SSHConfigPaths{User: userCfg}) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + resolved, err := resolver.ResolveHost(HostSpec{Host: "target"}, "current") + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + if !reflect.DeepEqual(resolved.ProxyJump, []string{"jump1"}) { + t.Fatalf("unexpected jumps: %+v", resolved.ProxyJump) + } +} + +func TestResolveProxyJumpChain(t *testing.T) { + cfg := "Host target\n ProxyJump jump1,jump2\n" + userCfg := writeTempConfig(t, cfg) + resolver, err := LoadSSHConfig(SSHConfigPaths{User: userCfg}) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + resolved, err := resolver.ResolveHost(HostSpec{Host: "target"}, "current") + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + if !reflect.DeepEqual(resolved.ProxyJump, []string{"jump1", "jump2"}) { + t.Fatalf("unexpected jumps: %+v", resolved.ProxyJump) + } +} + +func startTestAgent(t *testing.T) string { + t.Helper() + dir, err := os.MkdirTemp("/tmp", "pretty-agent") + if err != nil { + t.Fatalf("failed to create temp dir: %v", err) + } + socketPath := filepath.Join(dir, "agent.sock") + listener, err := net.Listen("unix", socketPath) + if err != nil { + t.Fatalf("failed to listen on socket: %v", err) + } + keyring := agent.NewKeyring() + done := make(chan struct{}) + go func() { + for { + conn, err := listener.Accept() + if err != nil { + select { + case <-done: + return + default: + return + } + } + go agent.ServeAgent(keyring, conn) + } + }() + t.Cleanup(func() { + close(done) + listener.Close() + _ = os.RemoveAll(dir) + }) + return socketPath +} + +func writeTempKey(t *testing.T) string { + t.Helper() + key, err := rsa.GenerateKey(rand.Reader, 2048) + if err != nil { + t.Fatalf("failed to generate key: %v", err) + } + der := x509.MarshalPKCS1PrivateKey(key) + block := &pem.Block{Type: "RSA PRIVATE KEY", Bytes: der} + data := pem.EncodeToMemory(block) + if data == nil { + t.Fatalf("failed to encode key") + } + path := filepath.Join(t.TempDir(), "id_rsa") + if err := os.WriteFile(path, data, 0o600); err != nil { + t.Fatalf("failed to write key: %v", err) + } + return path +} + +func writeTempConfig(t *testing.T, contents string) string { + t.Helper() + path := filepath.Join(t.TempDir(), "config") + if err := os.WriteFile(path, []byte(contents), 0o600); err != nil { + t.Fatalf("failed to write temp config: %v", err) + } + return path +} diff --git a/internal/sshConn/message.go b/internal/sshConn/message.go new file mode 100644 index 0000000..74d7726 --- /dev/null +++ b/internal/sshConn/message.go @@ -0,0 +1,113 @@ +package sshConn + +import ( + "bytes" + "fmt" + "sync/atomic" +) + +type ProxyWriter struct { + events chan<- OutputEvent + host *Host + jobID int + system bool + buf []byte +} + +func NewProxyWriter(events chan<- OutputEvent, host *Host, jobID int) *ProxyWriter { + return &ProxyWriter{ + events: events, + host: host, + jobID: jobID, + } +} + +func (w *ProxyWriter) Write(output []byte) (int, error) { + if w.events == nil { + return len(output), nil + } + + w.buf = append(w.buf, output...) + for { + idx := bytes.IndexByte(w.buf, '\n') + if idx == -1 { + break + } + line := w.buf[:idx] + if len(line) > 0 && line[len(line)-1] == '\r' { + line = line[:len(line)-1] + } + w.events <- OutputEvent{ + JobID: w.jobID, + Hostname: w.host.Hostname, + Line: string(line), + System: w.system, + } + w.buf = w.buf[idx+1:] + } + return len(output), nil +} + +func emitSystem(events chan<- OutputEvent, host *Host, line string) { + if events == nil { + fmt.Println(line) + return + } + + events <- OutputEvent{ + Hostname: host.Hostname, + Line: line, + System: true, + } +} + +func worker(host *Host, input <-chan CommandRequest, events chan<- OutputEvent) { + connection, err := Connection(host) + if err != nil { + emitSystem(events, host, fmt.Sprintf("error connection to host %s: %v", host.Hostname, err)) + return + } else { + atomic.StoreInt32(&host.IsConnected, 1) + } + stdoutWriter := NewProxyWriter(events, host, 0) + stderrWriter := NewProxyWriter(events, host, 0) + stderrWriter.system = true + stdin, session, err := Session(connection, host, stdoutWriter, stderrWriter) + if err != nil { + emitSystem(events, host, fmt.Sprintf("unable to open session: %v", err)) + atomic.StoreInt32(&host.IsConnected, 0) + return + } + _ = session + + for request := range input { + atomic.StoreInt32(&host.IsWaiting, 1) + stdoutWriter.jobID = request.JobID + stderrWriter.jobID = request.JobID + if request.Kind == CommandKindControl { + if request.ControlByte != 0 { + if _, err := stdin.Write([]byte{request.ControlByte}); err != nil { + emitSystem(events, host, fmt.Sprintf("unable to send control byte: %v", err)) + } + } + } else { + fmt.Fprintf(stdin, "%s\n", request.Command) + } + atomic.StoreInt32(&host.IsWaiting, 0) + } +} + +func Broker(hostList *HostList, input <-chan CommandRequest, events chan<- OutputEvent) { + for _, host := range hostList.Hosts() { + host.Channel = make(chan CommandRequest) + go worker(host, host.Channel, events) + } + + for request := range input { + for _, host := range hostList.Hosts() { + if atomic.LoadInt32(&host.IsConnected) == 1 { + host.Channel <- request + } + } + } +} diff --git a/internal/sshConn/output.go b/internal/sshConn/output.go new file mode 100644 index 0000000..cc5fdad --- /dev/null +++ b/internal/sshConn/output.go @@ -0,0 +1,8 @@ +package sshConn + +type OutputEvent struct { + JobID int + Hostname string + Line string + System bool +} diff --git a/internal/sshConn/output_test.go b/internal/sshConn/output_test.go new file mode 100644 index 0000000..5bcb3b8 --- /dev/null +++ b/internal/sshConn/output_test.go @@ -0,0 +1,54 @@ +package sshConn + +import "testing" + +func TestProxyWriterEmitsLines(t *testing.T) { + events := make(chan OutputEvent, 1) + host := &Host{Hostname: "host1"} + w := NewProxyWriter(events, host, 99) + _, _ = w.Write([]byte("hello\n")) + select { + case evt := <-events: + if evt.Hostname != "host1" || evt.JobID != 99 || evt.Line != "hello" { + t.Fatalf("unexpected event: %+v", evt) + } + default: + t.Fatalf("expected output event") + } +} + +func TestProxyWriterBuffersPartialLine(t *testing.T) { + events := make(chan OutputEvent, 2) + host := &Host{Hostname: "host1"} + w := NewProxyWriter(events, host, 99) + + _, _ = w.Write([]byte("hello")) + select { + case <-events: + t.Fatalf("unexpected event for partial line") + default: + } + + _, _ = w.Write([]byte(" world\nnext\n")) + evt1 := <-events + evt2 := <-events + if evt1.Line != "hello world" || evt2.Line != "next" { + t.Fatalf("unexpected events: %#v %#v", evt1, evt2) + } +} + +func BenchmarkProxyWriterWrite(b *testing.B) { + events := make(chan OutputEvent, 4096) + host := &Host{Hostname: "host1"} + w := NewProxyWriter(events, host, 99) + payload := []byte("line1\nline2\nline3\n") + + b.ReportAllocs() + b.ResetTimer() + for i := 0; i < b.N; i++ { + _, _ = w.Write(payload) + for len(events) > 0 { + <-events + } + } +} diff --git a/internal/sshConn/ssh.go b/internal/sshConn/ssh.go new file mode 100644 index 0000000..dc774ae --- /dev/null +++ b/internal/sshConn/ssh.go @@ -0,0 +1,244 @@ +package sshConn + +import ( + "fmt" + "io" + "io/ioutil" + "log" + "net" + "os" + "path/filepath" + "strconv" + "sync" + "sync/atomic" + "time" + + "github.com/fatih/color" + "github.com/spf13/viper" + "golang.org/x/crypto/ssh" + "golang.org/x/crypto/ssh/agent" + "golang.org/x/crypto/ssh/knownhosts" +) + +func NewHostList() *HostList { + hl := HostList{} + hl.hosts = make([]*Host, 0) + return &hl +} + +type HostList struct { + mu sync.Mutex + hosts []*Host +} + +func (h *HostList) AddHost(host *Host) { + h.mu.Lock() + h.hosts = append(h.hosts, host) + h.mu.Unlock() +} + +func (h *HostList) Hosts() []*Host { + return h.hosts +} + +func (h *HostList) Len() int { + return len(h.hosts) +} + +func (h *HostList) State() (connected int, waiting int) { + for _, host := range h.hosts { + if atomic.LoadInt32(&host.IsConnected) == 1 { + connected++ + if atomic.LoadInt32(&host.IsWaiting) == 1 { + waiting++ + } + } + } + return connected, waiting +} + +type Host struct { + Color *color.Color + Hostname string + Alias string + Host string + Port int + User string + IdentityFiles []string + ProxyJump []ResolvedHost + IsConnected int32 + Channel chan CommandRequest + ControlC chan os.Signal + IsWaiting int32 +} + +func Agent() ssh.AuthMethod { + if Agent, err := net.Dial("unix", os.Getenv("SSH_AUTH_SOCK")); err == nil { + return ssh.PublicKeysCallback(agent.NewClient(Agent).Signers) + } + return nil +} + +func PublicKeyFile(privateKey string) ssh.AuthMethod { + key, err := ioutil.ReadFile(privateKey) + if err != nil { + log.Fatalf("unable to read private key: %v", err) + } + + signer, err := ssh.ParsePrivateKey(key) + if err != nil { + log.Fatalf("unable to parse private key: %v", err) + } + return ssh.PublicKeys(signer) +} + +func hostKeyCallback() ssh.HostKeyCallback { + if path := viper.GetString("known_hosts"); path != "" { + if callback, err := knownhosts.New(path); err == nil { + return callback + } + } + if home, err := os.UserHomeDir(); err == nil { + path := filepath.Join(home, ".ssh", "known_hosts") + if callback, err := knownhosts.New(path); err == nil { + return callback + } + } + return ssh.InsecureIgnoreHostKey() +} + +func dialAddress(host *Host) string { + return net.JoinHostPort(host.Host, strconv.Itoa(host.Port)) +} + +func resolvedAddress(host ResolvedHost) string { + return net.JoinHostPort(host.Host, strconv.Itoa(host.Port)) +} + +func Connection(host *Host) (connection *ssh.Client, err error) { + authMethods := make([]ssh.AuthMethod, 0, 2) + if agent := Agent(); agent != nil { + authMethods = append(authMethods, agent) + } + if len(host.IdentityFiles) > 0 { + fileMethods, err := LoadIdentityFiles(host.IdentityFiles) + if err != nil { + return nil, err + } + authMethods = append(authMethods, fileMethods...) + } + + sshConfig := &ssh.ClientConfig{ + User: host.User, + Auth: authMethods, + HostKeyCallback: hostKeyCallback(), + Timeout: 10 * time.Second, + } + + if len(host.ProxyJump) > 0 { + target := ResolvedHost{ + Alias: host.Alias, + Host: host.Host, + Port: host.Port, + User: host.User, + IdentityFiles: host.IdentityFiles, + } + configs := map[string]*ssh.ClientConfig{ + host.Alias: sshConfig, + } + for _, jump := range host.ProxyJump { + jumpConfig, err := clientConfigFor(jump) + if err != nil { + return nil, err + } + configs[jump.Alias] = jumpConfig + } + connection, err = dialWithJumps(target, host.ProxyJump, configs) + if err != nil { + return nil, fmt.Errorf("failed to dial: %s", err) + } + return connection, nil + } + + connection, err = ssh.Dial("tcp", dialAddress(host), sshConfig) + if err != nil { + return nil, fmt.Errorf("failed to dial: %s", err) + } + + return connection, err +} + +func clientConfigFor(host ResolvedHost) (*ssh.ClientConfig, error) { + authMethods := make([]ssh.AuthMethod, 0, 2) + if agent := Agent(); agent != nil { + authMethods = append(authMethods, agent) + } + if len(host.IdentityFiles) > 0 { + fileMethods, err := LoadIdentityFiles(host.IdentityFiles) + if err != nil { + return nil, err + } + authMethods = append(authMethods, fileMethods...) + } + + return &ssh.ClientConfig{ + User: host.User, + Auth: authMethods, + HostKeyCallback: hostKeyCallback(), + Timeout: 10 * time.Second, + }, nil +} + +func dialWithJumps(target ResolvedHost, jumps []ResolvedHost, configs map[string]*ssh.ClientConfig) (*ssh.Client, error) { + if len(jumps) == 0 { + return ssh.Dial("tcp", resolvedAddress(target), configs[target.Alias]) + } + + client, err := ssh.Dial("tcp", resolvedAddress(jumps[0]), configs[jumps[0].Alias]) + if err != nil { + return nil, err + } + + for _, jump := range jumps[1:] { + conn, err := client.Dial("tcp", resolvedAddress(jump)) + if err != nil { + return nil, err + } + ncc, chans, reqs, err := ssh.NewClientConn(conn, resolvedAddress(jump), configs[jump.Alias]) + if err != nil { + return nil, err + } + client = ssh.NewClient(ncc, chans, reqs) + } + + conn, err := client.Dial("tcp", resolvedAddress(target)) + if err != nil { + return nil, err + } + ncc, chans, reqs, err := ssh.NewClientConn(conn, resolvedAddress(target), configs[target.Alias]) + if err != nil { + return nil, err + } + return ssh.NewClient(ncc, chans, reqs), nil +} + +func Session(connection *ssh.Client, host *Host, stdout, stderr io.Writer) (stdin io.WriteCloser, session *ssh.Session, err error) { + session, err = connection.NewSession() + if err != nil { + return stdin, session, err + } + + session.Stdout = stdout + session.Stderr = stderr + stdin, err = session.StdinPipe() + if err != nil { + return stdin, session, err + } + + err = session.Shell() + if err != nil { + return stdin, session, err + } + + return stdin, session, err +} diff --git a/internal/sshConn/ssh_test.go b/internal/sshConn/ssh_test.go new file mode 100644 index 0000000..ff2591d --- /dev/null +++ b/internal/sshConn/ssh_test.go @@ -0,0 +1,11 @@ +package sshConn + +import "testing" + +func TestDialAddressUsesPort(t *testing.T) { + host := &Host{Host: "localhost", Port: 2222} + got := dialAddress(host) + if got != "localhost:2222" { + t.Fatalf("unexpected address: %s", got) + } +} diff --git a/main.go b/main.go index bc248c8..b48e2fa 100644 --- a/main.go +++ b/main.go @@ -14,7 +14,9 @@ package main -import "github.com/ncode/pretty/cmd" +import ( + "github.com/ncode/pretty/cmd" +) func main() { cmd.Execute() diff --git a/pretty b/pretty new file mode 100755 index 0000000000000000000000000000000000000000..bd32f21604c85023bcf1c5cbfa31a7d8b7d8c644 GIT binary patch literal 10521778 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 z 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 z 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�_O+8v%%AMEY@Rkelo^C(%@-u%s%Fx_&%oQJCb+n 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
tYPRV(jX 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�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%0D`9mpH)tLQ@ab>3~o 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ΝXXX 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

kl#yAt>El(aRsYaiPovtL)2uc# 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

f9(Z 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%0AI`i< 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Ü$$!V|A+8A!@-tc603d;9 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 z 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%0DJP2cvE)A#s~^p7H6kN;7ASG{O%b3G8{H;#XY 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%0D1wHE{%KAn0 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,~MP?ZoBw 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

(>U{S;|RtKg0QeiE=8mhKIEa>(cmB3 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

iGv(JDw_T=i_ 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 z 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:&2oXVdnrr3(*DGV~uDRwZuL>PkgIlY$jk!ouds zEvoQrE6q^ZyLt2@aazr;MFc|RQDniB;s58Bqg(|63N{;3BZ@JbA3C-tbZObW7)g;^ z<5f)%>%`0iR~}YeT%5$nO#;|G5*mFoZo6B@yRg3nye2htSVQuS61*DBHo%Jv*PvWn znI$4hn`u3a{eYZ)N&r(>=aqIK)a2N(FT#F#*ds5bR`SYHV30E6DEYY2$xgj?bpZpO zKkV_GtPX|efJBfd3PS~;*dg6B-HQ#-ko`Q>3UBaM2uRRU)a$d0*63`D?$O?C>~$jU z-B+fZ+YGz9JB+C+3XJg_~b2>Sz3)3OCO!ShI(k2eqb|2os*>t>;ny2ndP zEyf$%0?<1doJ;O_lW?vI%}g7aS3)+}D%NNlcCG9Q9!SJWC^*>^2EQHU&?G(zdTWbT zqC4$Mr`6kWYErnk9{iz|(97torLW%Kk#@981Q9YGq;CN;YzZno(LYS`Sz}j+STGkE zw`$5ct2J6m;dQKZC05+B=D~J^u!Y%5lY(@ogZ-xSxz(mYlu5!Bg4fWSG8>EIDzb|C zksT{Be}fi-!|JR_ZPZ|T^gNa3f3&y>2XNV(X?ywKzrG7KEma$WQv(oh+Nuaru@#QC z)a}(zwB{sRKi--XY;}Wi*g~Gpigya*fP5K9FOT4FLfJ$YfqKnn5#S({ycnGiOQQxu zv=|B_egQ`%agg42J2s0fu!iyVY-*W*eOOo9qZ*eg5H2L7G5;pBkXOmce-=3 z3&>tYi=qukw#b?q^{GTNvQ)qLCZ`kAIQb4Iv$IV1e!%IEc-Q(B zjbOEuL|d^&Lo_%kE(@iZ5VU>SyoFSW@=<_&@y_UJ-{7k z2o7u4w%LbT?b9>OUxymM%$w&g3>D8zp8t8MczW{uPeaA}$@4!B6;Dl`|MyTqXsNQC z-whQ{PM-f}sQB%W`|)i0Mx9ot^WZy!(vQv)7Y8v*CvqRoQWjO>nEt=rr;oyz$l~%# zNbfb}ru3o!MGJ~tkipr7^80}d2#=&=PthNaL&Zoqju#W*IH!=OfHezoYeB(%RCjbY zt{L$lDPg;1$qrjDKRDT+C-`BLGZjHK??V-e{4;*XC<5{V(a>!hrS!+u`ayLC(# zzg>XUlG6d(@hcpInOu$NJe$6YAR}+L|LzX29pT^OJ}5B*q@I}4-^b=RvHfjaCNDu| z_v1Jj03~RgejVFi#O9YVMlipCurYnvV4OS2a#g2Ycq6vR6&P0D_HwjmLeGT5uiIT2 zW!_5(!?}&-ram78cCpq&e z8((P6XKZ$%R?-I7CS3c~HX+aUyC&aTWl_!BFC+1e&v5Q^!dg~e5>Y9vAmir`m#r;G zy)(niCgVyWy`0F^Q&ClQK#mZzi6BK7T+uYFa>OZszeQ7JOa@_-T1Iz9&QN}B#gQRL~3dyO>@w+E|T7zyZ6fy=AFw#ZPpNwse z>OPCzKt4AgM{`?3#Li{;NK+O47(;`-*4d4YBP8;zM61ycivPi|vJjPP2|R@N zU$Yp6b)d~EMn(*kvKZpzFew)@88h^Um!o5lP5tDbra%998~LRt(E0Q@r<;W{EhJqGVS% z%XJn^iNjg<#s^iMHMC2Q%OZam4LdUW5w)bz@?- zAAFO@Y>kYEc=Ip2L$9Q=wlK@ z2t5H}L*fxns~r?0jO9VKp3uGfgkfJl@>1#;A6 z0GnW70d+Nisu#f-tSQX!_;;B-Aq$QP7+Pr zN73uKHHt7sj&8CMdoKm!&XBIIKWT&9JP!N4!oCvr)v)gm`!wt?HsR0__OA~6p|I}` z`<=tSGwd5-|LO7vGsDH)uwNARyOqOw2WAUSHKPH>nLAAQnR+s#dHfO5;qiSo zd*ux?{P?jG>Ul7ju`}NpomH(|)>pfv&s^STKG%nQo9U^ED{hguV%u401)mdR6pxRP zLVP0G(K?rWr(z$jB;@X~=FW;EiHo(j6UL(AZmU$fldWKnMcj{)N6S2t<=@s~%b;iX zWck;bJ|f4>?OAPZ^SvSB5bjEf_VQN^LIF=S&-;jl)J~Q@koZf^9Z!P3Bz?4!Ep9%Z zX&#FSQ=H)T7e2TYvH!Ns^EssPwNLrRSo0b?=En5qc{@>Tx|`<+bU^(`6Y&AvgAKHm z91&Jh{K4T^5Iaj@pY-|u_-+&b$k@*a*NTQhibP9lIcpXKEUFP!@9ui7mb+Qm{l@;t zm>)Lx=1k2tWuD-lP;mBs^B%&?4KZO9a9v?}SoC;68QfPs969*bm_rS-8)0^46L*n( ziv$pSmDvtXW1bn&ndw0_*NIS3a|IVQw>(ONiVK-jH43sf9hQ&-_YuSBJt*Qy5jR+I6{qQcE31pcz`f^D_4t@J5pU zx{h{5tX#qViOjF(DGNG|qI3tAE7%Nul#eXOt3W*@Ni2f6WKGTP$Uy9G?wM;oGmkFX z+q_s~z5amxaS=aN_=jNn&4Y#eHg4+n{=(f`xchXA5-?Y_{^2hFP?vqQ%l)8B?b7{N z%a~$F=sZhq?((1Ow3l_dOFJ>-{)|oAsX)c0#_!-OXEL1W0m;V;kvqS|fo${yV~z(~ zXJlZTNrAAh)|~tDN#Nd)=tk2WOa<{Sq5X=bA#s!2`FRaR<`qZeo zbRPG2#etT-!}dQmcjs7GU=%bNxncUo}^64Ss> z$Ow{qP^%ED^kjHO>N4I`u@ZA@!f8qcT!KcSOlfo|Pb3IGAbj96;RRre-}8XEvC-00 z*HU!K^0X6j#QI_F%MWlR7g%wj7;0{Dm&&lP$pl`wbmLQ2pzsw;OuHx(UmS@e%3mkn z4_%889G;-X?m+97Lj;i7g&1FP+>UQHtOHj719O1YmhHJCtn}VjSD&Lb{JpAuPBNF_(64^)bHEMO~JAq#0T!SL} z%cLyg#k(UvO?Z@TW^`){@_~#nn&$aBw9+4{n$-wiK>Mk8T_uY%L(UD7SQff74b%ld zNQ@be2kNv-1ZSX5Ul&jwo7$j;|B7KRF(&Jg@peGTuSM$sSApfG$QrQ=Y2H3<4ZUz?NW`64&F# zGW6|Gp}AYDKCxADbsVd4oHMm}jD&Cb#88Bzhz7 zl3Iy&3)$}Imb11`uvnDWTf42y;_4EFWZO5z;rB|6Lie^259)kMEnShm4GG);3m(S; zB;2kUi_WyP)@PQ|AHekPu(AnTt$Eb>z?5@czkExh{XgDj+OpAIk-#S6$%&$X@eWNpNA`WA~7h_~Xp>%HL)WTQQ=pe`sHM%`CsuCSW z_!UYGax;<=vZx?ALzYIbbwuyg%O8TX3va-`w}v-3(HlhfiuN6gPBVl$()%SU2ZT`q zBhcA*MRXy&ARtT~;Zf9lW`ZD`|15hTPkpSH5k{&gOHRGLO?2(QC{R+7-ga&0K62h<+9N1&i*c2vxBdn!F(&jMx7CL6G6k8H%0S1t?;@XutTEg{xTcXQD)sa1+Mdg(W@@*fy zh}@2q=uSRoh;^e!%@^o9^)OLd$<$7rK!K8eW~@|bNa(ZkOP3X5jUZ4;!@fLUJb9i( z`)0daNPD+Ovb*1dNVg0pL-Ja)n;JBEM4`&F`W{(e1Kb{XYn_H%4FqYC_g!V()qL5V zY0Td4{(vSnoP>dI$JiX=Z5g z&W|JS6Vk$hDIviHP8z(7DFRn^AqyZFY7~EH^49njV?ksJ$S;rXX1U4#WbE_C{#V)b zU-Jt!14w_t*cWAnXr43vkGgH}#-Y1qy%B5fKzi^aavlo5Xhw4zAqSH1!&fQL%l507 z5BuI=qDN%Za3WFG4aE~`S^)wPd75X8`-QkP)OgwuSiM5GwKL9i9-czvJTdM`0mP{) z>-P#}$GCNxU#fOA;P=KIU)Fx)e<<%sWBBTnGR@;Oi~s^DLJ^`eH(la43{bi!#=l?llHOm~0K>zwcJj)5HTO{5xa~h$10G zo^-7Va?eWi;>#WZDfZogSjjg47yBwjPm&_x0`pq)ZxgQvoZirOuz6$W5ybGB4667M zwTE%`V|JNsNr6x$nfs_z1ryK*ZLDma4)T;acX*g{`6{gsA0yT;vTYjYjuaD5=dwo$ zdX#wwy`(=9r7437le?leg!K*OB$BK#J*c~ zna!w758~~$ZYA_66zaJ|wxyRYchTKRc3g6T@yDB%Q;a#;q$e12ycs>sm{U#HStdTy zv|tGQDFglk4UC;*%%{za^W;FTpf%Z|LqWtZ&Ih3uu`{k$zMa_&SSKWrkfGQvdKKgjQGnW-w4vYsDOd%;VsC z!tE1JeyETfa&1P!h|H|beAvG_?5knlJLNnL=lx-yg?$nBGsC_o><7X=3H!2yZKs^) z;e1ippHY6Yd}-d4mktZ(<*VJ{oKN;e`&LHXSY7uH9HG=k3kkLJ^01y07zgzL&F&vURY10Wsf<^13FjQ5%!U658T9CDu-VjrJBWG)^uCy$$#$f9TLgM;Qfq(H;?_r5`M%b4zd zf>`9{_Q|W`rFOe@^6KMU+%$Rd;p)cIerQdvGy1hqK)Jy&5 z`_t_s)6G@W&FwDxL%(^U-(PC%GlTwTgXY;md+DGQw{{mm`Kdv7{Gd5)(4Gp5i^9#D zv!>b8r3yV|n%U4ELt3@C+J8ZkxhKgx=G>25*nA)9~KX7^fqpRGRHh#zZo zJl=?Z-Vjx&70BHyv1cVr(@%wro z#xca8?&GDq5_5r)JpEuA$ok1?=1&M&&4tbo$N2LO?W5iYS1Vl;xo9rV{O7VkSNj@d zsr|e&pOxEK@(ybCAO2mHch`Dq2VhAmDWRK@PqO`COFfGnu<4)?4DaVh2Y6rMRq?o+RS^xGxODz`G zV;g3ZSNcvI7xLztIL@NT%FN za*eIb$h7wM8J!unu6?$nZ^x9%Rs8L&Gk7WhQmk#Fw`2gQ)FG^BFW=)BS+01rie&3} zB4Jm;sPW5I^6s`Loy1!tp#q{6Y+i|3*i|4$RNAW1{!AhA`dTpnZ=a5cIc$a_+(X#R zQ2R)X4QxCb&&bEo*o{{w;+Y+@<5@K%F6R<1Vcyb3d>3B|;B{;1gcfY$m&{(Ag!5$E zWU1e_vb1|!yL8^G{IYH9M95*(sui3D7Qz*Rz7cxhDZO=Ylzvs%&ky^BVPAy(>%xAY zu+PK35%%TNws8KTu`0TH>GfJ>5i!Woo0fv6QE+ zU?ja2^MH63$C(CX9qqY2&ku>vpa!+ceIFL0dxKU@``7Q+PWg?H}@3g>IQ-JuOn4CLaK)ge|5vZ&=3A`|Ll*yTiAyRLXbb- z&kDY$xdylB8c6D@0ptkb-uL^>DgEZse#_OL`YTiJ?d5p(c)xwDUto^1B9?9+YbXMF^RxAxgu{Ht1WmzbBe-h2ezMQ%P~KMa~&Xm0EG z5B1we`~464r(IsecNGIF8}%jH6X^GRX-isP?vG$~v^g?rF^9OkW77)RG+hr+dZ=0seWczR(PzYM!c5!E3-IlYdlS|Nb^;eid-B zH9ze$PxrZ>^`Rcx3*!rOdY+z?=hG?Z*q%+;;%e9nkKdx?&&XlnrVbA0BjH?O2r`AH z;l9)av3)zZ0D;yJDiD?lL;4H%VBm1bE58Ca(3=KQ2TEkRso+;XPK^!}1`#b90 z3wjC!)qK0+?}IWyVZt02A1@LoVUi;a10}R$H6+VB1|JX1xHT0KgjG@NG>~*KagUkm ze2sgu9)QDa105rwfvNASkez~a!i^$%>l^KiiH7MF5wimtcOaV{4<#d>$*&pUN2kq* z$G-xX(BXM#Ck64urQ*BS;%>tYF*izj-IYg zW)?$$8)YVP{%~^)1J!~i>m3OASveTQkHTtx%zfC&nlub|=r}rI*d#Y2BfuF$s}~Vjl|ok#+Dnhpx5AY*G{qP$~Sdn+-XS=?FYF z6-i7cH5Bu*AQqW%ObxC&RE=I-H8;L5^J#wTr-iptY};d(CnVp-RGjb7CadUyaL{|v z3^JT>E`KIsHE~_V%ShKVMKUPP?U5`!yJANcSfU>LNffA|1w<)P3)+Iw=`5KE^ z(cG|iVSlz!vgkTS z-0QP&(598-Ac`l|VhPHN*dN6iVi}ADDo`O@(dn*>@EPUsYJR^@1_VU+Br9-1uz#MU z#G^dKbxQC=@)Bw-P6@+ZRGO?|cp;!?P?%kC2%QuiTJQ!S27r|)a(?u5klAoEvF~&5 zrs40i??;6SeDTKdyh<Mjrm04C=V?TY7}u!yubtTjXx3p{v+5=hE^mOdSacnMi!6*{#XR~kS=-W6TQDGzH3K3|w};!E;4CytZJ`{Jdhs%q zXyqkr(R6rQ{8q_OR+`SzFe;TLx~=ZxDKVqOSS40Ne(mhd4olS#?!|&x5HU-DGgJ6l zU8d=bMIdi~(0{;uF#CY}P<*UHi>x%QD%&1M*#Z3{qU6`~S{niqy>VD~5F*EiAyKY| z#?G@-DUZnz+qll;d$OEj8g8G>gzmU32q5JD-1Qg zJ<#0o^zgCD-U?s2Me$czf?0O6bO!Oj-G|H#hk7 z%ii7OQJ3I(Rn|vQi|D`^h>1ddc9gKaiweoQOF`CcPCqih`Io%?qDR7pgh+z60lFO7 z`&8Ru zERyge!`_AczEjT0Q_j;7#ijInZd2M|(oajk;7h>qOVVv(TyKr3aA)#q`J`v#^~>MR zU-tIUHUmr2=yC~xk$T2NcaI_MT^d{1^l$c>S1KVkWHY&Tj=5$I+Evn~gin3`fBMuH=D5q}m@mvp z&vfQT<)^;gYnX`Vp#KnoXuj8LUa169t{eCHIp&g$pNg{>Ir#d4V%>nbZ=n9YUT~w3 zoS5ZPK@}E3-yHPNyWsn?v)M+%UggpGjl{@fQM4x?V^H-?XQ3s7gqZ( zpgi;a*qEr*r#N@KGbcFU_;{!Y2;}TE!jJpb=2YG)Ob6^(m>P5!5!P84z-E5ju3#b5 zw1yabAM$Q!h<5OuEG*jsuTqCs$q-ZvbM*>yIqkZROR(Z@)^yKM)1AQ+#E1j2AmSy& zS&2mEg)fT;u=?Is;Gyu5nW4Y|mF2Z-#X9%S$pYUV3Vf&3N{EM$DuMANtih)qYNUb6 zOl8f}feN!2=MXKjzA^q z3JEk&XN97I)v&{U;|4U_kOqt0LW)D4#Ahowv~s{eK-ScL#Vl4F$Cfsa%bLfb=26f5 zj4m2-*Ju`|jZl?v;?Sw=66kb!jLgrx1FMHsLNQ9opxrm9fE zrh{OAm{*`zgT(=K>x3@N$j~l*nZ{&D1FVjG0O=ag>eK1GK8ybAfhr6NWySHbVe`== zyd@pGtcpoj)WAWr1N^N?QL^TAh@h!PzDb~8pRh@oSGSvRz$vX7&7RGI)5S&(*cVy) zv}S3JR?yF`0UBs@t9d|@eu9nQpVeG+?7e!1wDkLir_JT(38pavQ~u@|GqG;dHF`;m z4w#UX&o{s#@E`E+LDs^(1jXU?CK2ZqTCgZ|Whq=3;~eh-x)^;X=djA0r!46~Nz{v4 zW)RZ7z~N{vDI!xj_hOIW9zv;G#*vQ$o=St7PsD3jw;1*b^BTs5NsG?>*QL(9%+i7T z1)B5WupbQj@pX{zvk#%8I@omlq={~V0H01LB{A-~k6 zzhp+corHnS+nHYt_YuCJS%Co`G0xz=T`SD1%wQU>5pNs6+HMW|ReF;$5}||l4{)pc z#daigaESs--T7d+U-}eJfSQ>6Rh%bU;8%taOUwb&?oQ^*O5R!(T9ovORv+qd^Dou#ucV1R%G0tkqL3+gxusDR?@2rA+(4h95d2?!Dq*%A~tP<9ak zNnjKdR}>W$OcY$kT~uUH$@}@9y4^I9%*^x7JkS51&OKGPZY`(I`JLas81(Yu`Y5%a zA8z#KL#e&b+0&znREHIqi(Lh5za5) z?EHPM`d8;4byXgIfv=86L!Twh1Hn%$517-K)CPqL8QqAtWhRU=itD%&8Iv5Z1 zqOg(pi7q;*aNPN76<)K@o3RU0^Vf+PyUN?M?8J;+oSLl@Gj^S~B**Q|*aohMGj^l5 zAJFVTGjI3)W?z56`ycrF-@Sj#*GGGVDIv>HRN!?LX4+cv_sB`ZLnnr&E7LTKih+?@nvKNyE?5 z;-_i&QCj>F&x7pOXlEmZYr|e>eziiiQqlWGH*JvaG4NusO;RQlU2FJB&Df zWW8`a*(G`I7`-vOR#(=OO+n7Ac!8mgEtCQCi&?mneD_)P2WXFaLoItHcPvrfD4auA z{x$I?@bB`d-C}N&z_-OTVsvnG*8&-|%V+UQvuobl-(jWWU8~7Ad8YU``h0y>3gp=Y zUj*}0hqEum@jkq!>QWcnt*i@;=5O&IVjQ4?6QVoRJe232;>=n%_xBb7rScebGfHgM zj>WE1pqr5xp0baEkyjdxBwJDnjNgcVBm6-X&&rB|iG{iU4f!Ny<%cPO2tzfArVZ%T z0_HJ>8dn+0&k?r>NOf`Tz~Kp>23JY31(!;T5>Hp+s&7BJE%9{t04e4Ew<+r|tGm(r zj3g9+{c#o^$^3`>#9ICnQyhA0nXDZr`Ux!kXhyJMZ!MplS%_+nuKq2f7Hw}Wzdy6z zcN1$_>584!^7)zlbLt;W8@_s3<}b_|pT|)*YdnzoA7qUQEhh%S$<>JgAGXzcW+A5j zC)^@a1QdYVWFDT5b43R#jfy0GdRRKRk3=jTWZ3v0V(DR4Yy&LaV8xPy6}`*S_0p`6 zt`rQsf;k^aZX#${{{R(fd|52TT_Jpdk{IZB`p||C*#S88dGh#{gSdQ% zbxYpg{Y&)!tFK4$@_Un7=ps8kwxk(KFS6Oiwz7wL0He=_0-YZLPqYpLBG1A-pBS*Z zIZZ)7q8+vqzn@ds_X&}bqSu^LWGBjh^(F2ob4EdctGbD1431pbz-C93M0y8LqA%>A zxPhof@!kk?1cm`BxLAOG&>QsZPA8UFr@2|UXQ$Y%*evP^TP+VcK^WKcwmC^#P$j9I zEo{m;bW4uTJRWJCbT&O|NEUyjkI6GQ3!JK?)>*zN^ihL0|9)=o&lRk?CAZ(tsiNyP zPuX9uNG)FIi9aRId22KTeDtY*b69vM^XYuZ7_4ycs}~#d%hdcF0Zh3Q%Ix63N!eFE zojdd5i#Z-)#bbE>U~i?z>ZyNEmR@AYf`V(B#c>t-%ncyMTz;V;!vaA3#K|XS+0ULT zG5Av*`yGk`KiGp@IjkZDM8K{2mm|>ZY?qtaqN`}@?BlFbfid&O=%NQhu7N^3SI$CA zqca89jTM;dGw-OyJk7n@AX_@k)!3m*!po1xZVHbn9qiV%wvE)~Mh+t}lW zStd=^?KlzK9X`X!Pw+$toAdAx3r0jt>MtPe0R(9CBh$g&XMr6Mx(P}l#&4F=i!Aq2 zZfgStESWZUosMm!55*2=kyOQ!2P!@ZDXM%D3Iel7se?cfQAZJx?+=HmzTZ-Y3cayeSzh z7=?r4`&%i*c~4j)?hc$IOq5Fd{^Z5^SH1f(EORhdON~DTHjy!b&i?>8X|hmH6Px9( z2;q}Ktu@qAWtEedLwHUDv?>k|QR*6+IvPgYIZDS)XAh2}^F#+Ai)7kRI6dfPQA97z z*zObC*TgnVv~+)jYQ;^)ZQ*xK@f{vPN9omcJ}`5W;53)-I=(dd1jaS=H<>@%hcnT& z5<9RmEGQ@*OE2jy_=)o-_dm!j(u+;{278=6+8x9D)(Af9qDh%SoadX}8yUJ|)7SaS zjJw>}OVA7(Kdwom3>9dJ>X7angK5m2Vf>8t;(XMlzRXd_+%kQy=XFmgM`j3xOULfO zl+PCb7(W9*7LmdA2GlML_G#46uYulL2-hlg&Wu9t7E-wocR5gk3)4wgkrK6mE->bu zpNr*GWtW%6nV%MCelWK18FeaE^@fZ^7>5X~LN=EVTjUCRhq1R9TpRrDQ}(U@H(%tV{)IXa22xo9^~SX z0#Xzz!V#~!6nFxKMjoXLG>{(zq@W^<0ksaRmOYe4wl$p#m0IxgMpni6#wdKrJ{T#I z6mgo_ah#+zv-5N(X4etzsF_{J%uZN)OI5z#s+En4Q(V=!@Tf>o+(&w8wlS8CCGSU- zMj{DN84#AHw{9 zX6`7SczFF4+2KWUSW(NW$b7m1l2F8voF#+44Axt){>9GBimi`r|7K?3HQ4ltiIr}@ zmG8i3tOp!RlJiaWQhNv*=a;#cn?qYi!t$Ux6y^tJ8v_-zPq0}a6XpGL|3!z(j zFTFL5c{h<5yQj0$rNBi!o1jNB5y}cC7LGw+mBP^QkBD4eSt?yPD6!J~f?5|im5U{F zB4x)S+=hs{hs#6ucVlG|MeDvKCK|Y&tu6pQ%Ii5686}f0NnX=UzRLQfj~FQqAx9Li zQm2@+6umn~eXe_Q+ej{i?#T6>)d90_hnGV`Enuo&5#s zWejTt+swn_lo=?gI;+ZYQ~~;Y%vZF$p%_NY}K|w@?I|+>PZ)BZsW$vD=`qeC_-Vi*w&;P)qk(MKo5$yS2 zi=jF<3+uAt+gTlN6?bPww*@t5n}Brjm2U;2>1TuK$pN?#)ar9+qmzX^H!f$OhohU7 zoQUVZGfz`0=mH?7D=v!9y^O7GtX*f=CCR=^#5$>{0-`%kLXC~qY_ek;(V(A7c%+D# z#-|S5h+`xSwIdzI)K;_OKnMMiF8OJU?Its}QLIsQBe8Wp9ANG>F!JGm^qI9DGoL5x z3PS(UG?q;I!>GJbYy2=z@6YiNc@WeY8TN;BSdS3^tSRvVwg68OvSLyZkZ0k*B?HSE zJFFr(=a8@oNe%`HLj@!`_G4M>2SkY8lr26%?2n3Q`PO|VNAG)|qS_X*AdCA<5x=|d znGlcin~g_k>&eaVD3!ma`QM~gG$#p^Ycj7hk8QgB*)-go7JpBR_`BoxM*6;t^UR5v zJts5o%j{z%V6u!@Fo&13I0{Z*iC(GFHBKwn+-9%#`}Oe1StHD z5BK?SQCeJ>`VXb<6Od-NUT2y0sV&ra85AiN z7<&rugTuKXhtr>UpVA6jlxZO&xGN(eV}gl>l#p1&hV;hmSJV!VMrSf2HP$fg@zj2X zhEs7XRh3j~$O|m+Lm|gxkI9vzL}{^W>$)B>q4cR-Bq%eCPZxJ@a`)a(r23JkJjJ8A zrS*H&S6B8blDAJQ9|)j>_sX=|mY+8n!c_!V=@d`{;E-r*HHs*bVXB+XB)En^?q(L- z{SuOrBE_1c+>2o(AMe6N{-tXl?RNj8J5h8@>>Fvr+F>rC#-x+cR`W0OA^qb+c9E3O zEdF}538TM40EBe>antewXbfLJ$5Lq#fakc)!Qy0`$~ z+U5hei`b!JKXK7^=6W!JDwv?ZPVt^y8`BySV+Z;tBF?%kX}Vedks2UpXX*K>cLq&} zxRi%kH;3tD?#nv}ufHT>^nutO7uzhh%N088NuVeCjS^6I!`jF#o@zS)q%UNm_&@nO z{by8VSEp0GW>RqD_n7jNjFfG#F){Cnjuz6w}jp8D)R*)cdc5+DE(wYXgjt)DT-MVj;% zVs5$~Fc|>dF(nXO0T~g6J+3kq9EdUlcObZSpb_c|TX;*xa`%pOA4;JSi1r|Ednl#s zgR;iB;eN&6P+%2pww14Tm@b{r7P~NlL0@dgVq0d~o5}(JDoEa9Y6KKWe{tLCO}0wi z3wWyV!0T zKR8EVF#amo)pGkYw;gfzr%}aB&9@G73g1NL`crIrnx^k`o33TcZPMR4_j~8jah_|_ zbsR%IH0}pID&F1-`^bP@8IlgN z5ro3MA{<#=MK4Wu2h6^zm|&UTLyVkqO8q zcN%{@Gfzdn9(Qs%7HH_9I1-yA&W}?df3m5 zl=K3h7t88VJp^!BVv$-GM(MP*6{WqeQ*4x=kWeGv@`ub&axXzru*jbi*1p-8v(y>u z-w#8M)QId@FR?xRAd^M7xLwAFu^40|y0W;-Gi)zSAJze1b5xj3A)llI-eIFRn|u-5 zN^EOW_I=!MZB(+oe)?366W8XQT-+Oo{Toeg#q}4J>(%PtHBtogIQI=3zQxqS*e(eR z-S=(y5mm9OA>C@Jj!>6lzX*eR9FsjWKF?q(xTWydFqYwQro}0!yM2>7!_5`PoOyB<{lpPz8^LSu~TA zO+em5%A@R%r3RDSrR{+P2R*A-=KBP5ym^=9<8U;soNH{1R3-@7P{yL1hdppuyyDuFc^WuxmpyW#!_I7UunV#Vc*Hx+=FN$9KIE8NU6vy zo^Rx6kg9>gzQ~>gVfBDXxF7v_e6zV^1SjOl%_YZQy-a3{aw%P$W$4WgO_FD__K%z( zmld4Li1Ak+h^dNq<55E9;D+ht4f}8kAJjHp6`K@qVEX@DQ zR@al&kK!T!Z(BY0e{#L>;WY-Lu$z6l+l@SryQS}teqoC}B615wY)j5zQQY4%wui;G zf|7 zK}wH<*U8+89Fo!{Dqc=C<}Jm(<{4(+u&mhAtVX#oj*o;jhq8)Z4mQUB6Jk4$XypPl zbwqeoai%eEXSEx9jjvqk{Wac1wwo9Se}gyIdvk-YT<;r0q(#hGL+dC;;y&r!72eQZ z;LQh#G53|u6UQ$0<|1z{_LauuvHa+8KvCr6;|V(zZ>vFVua21`uI8!QxBEoF&xz8L z6v_I3f)f~HAKjdn8AP1%)a{(!cY&miPi&thEH9UoA*=_pP~z2{)MmTz-i>^9cpC2H zQDn?<)0WL3$5uL>C0n4TV_d=vXmmfxBMR(mS*t=7VtgT|Z0B|1DWQr6?h~`@cE05U zp}zx`F5uQ8IuPmM6V(HDe5)MIPc2WU=z)Ey}X_alrm1 zwrKbn&suED2(Pk@abBx1F+@{!HxA(*T0bmA}We;I+MnSDC(f2p~}hnsx1 zCk_lV7{t#)51%xMcZiqBs^}o8f`VU7sQaEUUbyrRKKw$7)26%cGceg5=qKZl346}! z4HvW`g7Va@0xaPlv0nkM%h9Rj*%Aaxt|q}K1!rU|@G4TRrv_UCO)lXgRGdDy~1usK>UbR;;pAJ zgkB7{h$~1f|&6Gm692;pm-UdNsE$-rrQ{KzQ_YKLa{@%Oc&a8XvA`b<<6)Jh&2*#F0 z;~xg!Jf#(vd{6($Z-B#(6^W+9K zVa*YWpEuq9;S3K$vye6H!Q_><)85`-RN~h;;d~P$gemxS&BR~t+!c3AHs5&_?($NS}j7|(pON_s?+tO)` zF*Ni;L54Ll)uF~H-!G#txLzX=+b=+io^q}}@3Z&0u$INd&4zJFWixp_;+B-8o6O9O zQf6Y>FWZnjiWyOPJ`JI>c(>Fii`^*nnOOI-p9OlqULR+8f>!VoIWA`CnGxGwN}o>r zGIL7XH)X#(PUaxgjU@bS!M&EB1-#ubpQXL+vSb}@QebN)icus3o0*NH1@eeP&TG0M zV5U#jE2g*25bJmqL${V6rsaQvbAJ)P{WDtu;vYVVeq%dF2~9u&l;u2C_tx_kVF z{snY}uo6EzSNEjm+Fp&ST>NuFkT0@+opJq1QocF{GNo`@fDAkg=r0BIhgr}t?_oo_ zb5zE6V!J%HGh_RIVtW-@dUW-ziI(9!yf<>shaqpUkHyH8ky=rp()-u~8Cs0a#1@Ym zzSYer=kJsJiJZ`|>Wn&BrVwDTHR3nZ*Ma9EpkJ#oJ1-CC=ffY!!#VkIgK=g7c_{_* z>K8NjrHlZG&*tH(e0Z*TFiY=N$$0KBbvoYaXlkX!#R%x#dvkYMZcfSV)WW=b+P?+! zcYLT>3@Ug$@lDbL@M-=O%pU`h2PYFs(LyfC!&md+TAQL<@-k+PEuAuVBvShAxBHayNpLT4zKVI?D_xnlvABs>8pIYq4M~58TC+dSA*L1> z|HE1G!w{b5qj_mCdm~ugm!KEL^G7;5y|W4fK?yb3a0Qe53^-@itD_+7eYDI+S?2B) zMe>svswIBY?BOH+G1KAFTLS(yiq6PVpnHyuep5`+-lnT>1JI)8e zxA0>ei2{t!DjfpHem&m~8o4%PIC^md5Z=V;a2IAL`6A`-1}Rn0_^wJ`z^FQNoPC{& zBf&Q{<4WHObd=WN;Y`pV zGA4%oB2z6|O&m_LemG99C7KHe6|XcO;ge%B=&y)N=H$|VmBvN!>eyzn9a@ip(Z93X z?2~SkL?tod^UHdPpB+hjOAWT^%ex&u@rr+cSba=?-q=|y*R`?aH zD-=tRO>QOO9cVPJWz|uR;KI-)2^)F=sGz+gRL?AYL>*r=o&wP;+!AKtE@OURFtV7h z@Q{S*xQt&DPuSTf2}xe}~H3xapfo=Q|!zomZrJ=1!)m{2;U6$;@{%^Hb@* zF0r^5nGYNDanV3r1k7)P{Y{`X-zGPl60EQwf0WUo@Z=MfrGxbQcUW_~HCNg619}3Q zB_da~hu@%l-{g+{d{8}P<-5zM4rm~H?d;WN*d0b1l7;>-GY-#zHJ5i% z77&VII? zgCwyWYsMUSEUt!@WFY9K9a7C2`N4ev*n6kA3Z9N#T#5}oFN@%yTv?_IA0%7T#;x!=r?ViZgdArhrx9x?Muv=eF| z0ZwViHfoAr)wyFG*y_dy><3cUmtQts6|*5A9P z$@k|ZuNPH;ad@m%{6#^&U0l#s*q!WBw=CVx7DT%<=`)u*)e2cjO2i%A)7V2V1*+W% zB1~vBIi4$o$l-D($JZ(-Lw|0!FcOACE!^L-ziYYQw~F8KO!v!H@$YOi*Pn)vW6DSm zwJ*2iNr$%X9rmQst|B)GG6h#N=pb)MB}@vGia67yNUX;1*HikwjZ=7?$ax4?#T^)p zhzWbgbsMl={OKreS4NX4K2YQjY{OnpBd)$54sWt2rhXzz+;iy1FcH@{0F?s7c~VUR zwzA0!P00c2sjRsZ#X+;4uVB{m6+8sqgtX`=-k?MS1!d!l!8l0FU;hl8mdUx*91Am_ zqt)d0+~`QM+L+Sr6!*)*00&Lke_Grhh;3OgpuDOZk1UC8J+>S#k~cRFEDp+!@t-yJ zAjhuflfN#!K7Nh~N4osvZ>j6b^Iw81Ig4ZjDDEt^ZCJuaVqOn&sl zv4I74e!;O;@?5m$#$VhnK1AKsbT<(H&29U^w!5HRd=O_5_x^TqF556S%+D8urTH92 zb}x6IHS47$*~L9XHf>uQY7F8ngtNDQiF*ad_hml+)GB@jpARhI1UlR2|HQAyxp(mE zVdgeV!5e1jyRG6oBqzaBMHN+uy0+OTO>KIp=@?dhep20!5KP#5KD{lQ;@zv_7t*R?p?!8e9!f}26|`$IaRv{g_m(`Ok4Rf=v=K@ zZ&d0na=H2TD0|&Xy;AENFSxyoZ+G^f3Z5P=)#bR2RZv|bvtS3VpOE z+7?jchWubLQVb7HYmBzg`yt!T6bBM!7qjAg5Zg8#buWphrsH5ee_)YaSS$&P?XqH^XVXdE{XG z0>^KjPvcFEcudEq@!37OBD(ANO|9bdEx6ez?Gs>-hZ|TXM3qU9*HojX&}z5l7uj}P zT_4P9xqD-Hd3afPLFntdqGfMs^`BmPGwzKp#m<`i4{yW*tIp%X+6gBHZifayzWK?)w`RW&3#a4{K_2NN5K zK-09A_lJWjlySmSnY-c~WQ*1UkP0rYi&Sl2q}^as}7>r(}OvIMBF`zZz5ADjNJx*52mRGxhs9x%*4+_lFd`=JfkoXRjbA zD*Yg5q>m|dEgrty+4DWA5KDGVETVF|N(9|@I}Ma9%LJ=xzJIlZqu@#SfQY0jzbFeu zG8j^JP&Z?u*W#Ku(wAy+jZ8T*y)q5iy*z)8v^*Qk>h+QUs_SLj%vqn6%Cur`^8C;; zqnYvuu!imKVq1D9l6_hP8D-R3tUP;y5>{ zEkPcPysa_QlVc+wTqx4>A!{zQ_`$R(G7*uKg##B#>P3x7T2|g8etY8jTQMjB37-;| zf2C(@KH|$8AguGqWDDq#KtqV_M%ZBnj;aeR1a`{bC0^c1xe=liYb=9p|7ub8gTRs) zv;6RiKyFOYLDzs7+OnJf&HZL%GMP#Fh<{EgS=5JjASWM*^WAe%KtI)Ae+_Rb^l5tb zF+5L6ccYP7cOivLa@?xqkc`+z&oUA}$@Ig@;!>l`4!TNd0Y#*R+*Rx|%Ejb}=Nt_< z>#c8f!GxgA7Ap|16*`wQJE#pLyTQI?z4QnqYtNJ8)|%ubJeg5!FfsT7Gp-b5;!0Mv z&G9KBXP~IZa@>b@;-0l)d8HKfN%u#GBy>$wd60I$S5dd)XWPBW)2YxvI|fW_WC zk}$$t!9V9%6>#^GQVPBr3T?B}1=uzp#icg;kFnwe*um zD3CzK2g{s7OPHP_P99YnG*y;NOhN=hNTBn{#oWL?)Me<~aBY3~QZ?k&A@8=IgCH&g z$wHv2u}i%-#o~HjnJlGruq@l!W{YEExsT%(`?z)CzA>t_tRv~I3f%GR)rJS~)yqe+ zTaD9^oFhuznogdR!Xm$Xq&-|oK4k+zCpZbPb|^Hu2SeXy)&~2Y5Y~qD!OZ>ygvFbl z6~a0?SNVW4jYL-xw&YF>bM3vE`%RWVl4Xeey|e$4<&U$dD_c=riLm}OOMjb9x!dou z^bvkf|4e#BlaYHT)M0l+QLl!b(k^JZtZxHPs|Y+n`I!(v;HZGUXbb6ngn+v;ZA@_fPA=aXZv**NSUW^A4O zTNeY-mEsD?-m2I|0QM3^Y#N~nZiB0`{&ir^9j8#c!x zE5fd5p4xt0W(iWbaO(Xo%EE_rzsq#Ld^S zBQ?`G@JyN>|Glg?HP2;c(2T^HK_eqCX+&JjQ?J{B{`dKp-GuFqG3jbb~l*DuH5$96Xcn*W$QKnhn+1Ao^#NZW+ zp*V5+u#L>$D60t0-Lz#iK{M{xCR&`!j%4ink}F7p6ZL__36OlNtFgsCl;`bs+Ctc` ze%goY5Epyq&SMyKFyJhBd|sYjf?n{5jn0fM+_=fncqBwrNnE$MRv@NzkhEE8OZg6)E+b>C3Yyo^F-Qm|^OPdqn&$JA zPz6{08V@DBsQEB*S-P`^26)hCj06;;Mg`dZP%Vp*`Y<{iJ`;G(b95d@tB`_4 z68V!m@_dARY7|mM-trYuQ|O*r)&pA>O<%5bc|-15fZwx;Gk+dVUC$>n`B49=Dd_1a ze+)eM>sV%ZK23WW=Nt|be1ti&jsYP%1lXshNcje$1~YgAFgUYM;%U zq3lx)Q`waQp;lQSCvI(=BlDpNm94$wa^RYN6R~J(QV&I?@nOi6hzFCq%HMV6?RoT`gD|k`+CsUunf1o}`gY)v_ z(gJERD=eBa(u)Hbh$}mm$gDnq_G@Sg85z#U_;nW5?;@mNJ&*+fuS>SP0_(k!t( zzp6|ezHFMw9pXwvj|g#6X{0!4gCGH&jGyv)G3(N_N5l2xK1T}d+ThSK&0xH$>05V*fF2(#A1wK@XQUt-7IBBEbQevD-U2ncdn%v?vp zRe(VrkmBN$DoGx(&2m(gK)r?fL4p&V5BO~5{y_0Ja-${(2U<0WKdsP)G&SkFBe2r? zHD+968Q`k3%1~u6z1N`9EZh8Ef0bn~&7|*x*qWzha|Q#b=Q~n~jU@zOfzI2q%?QaTqG1 zCvKhbG{>jM(%a)JaeN))>p3>SXP4O5EVh+}c+Ug!8~d>cEZ z?IhntSOdxa#+rw$eHwVZ-SmvJ!|f>Zclu&KJM&n{6~MHu$MpfX6rTX z2=@u&KjX~btlP^U5nhyk+L;?sXSmgP?qy~*vt|t$(Ws+kl^N|3c(rJTt;Q16cranR z1t5(5gvkJ|)O>;y^DBu@VgD)5j<0>u4SmNy{?By$pS zP*yesIfjKu381kFX2;kAFFU}e!)s9xv_2D!skEk*jz>cRC&_0ApteOUn5%Z7wVlDL zq)f%h5QVL@%WLd0Tcv@YAKTJ9t87but;^2=)y1I?9vaLI$E8oW#1CoApK#C{5`Nl8T(UEbQUCT zj}l?*Y+q(}CmxWeO0KQuZKYNL|48y6l#U6~2doI93H1WaNvqwB;Yp#tI#kC=TqyUT zh$L%Ds*?qfq)a**Sj&R$V=(J-us?pL(g<4fQQw(mW~2Skuw3fxN5PclQrw=w>S+Gy ztudeN4Z)50hgnAp_@ur*Gs102lBVLwvEIw}1d^G4A!1!G)gLt}5jFM|dX!)-t^tJy zn6Zx+twUj4P!!}QQ|4-zuKaFaCw5lci_1~60Q(Nk7NQ;H)?#7g(=38Bp-*%S9)oI1 z{H!z=;8@uXFlG=|l4Sr@EslrGT#iw|E0XbO9$!lyPf5^c*6?E7pFi{7RO4dexB%3s zYe}eOPNN&<%(Mp)_Eafr279WG&XoC9z9!9g&%r2XmInxP!naVC4D`tH?Iol$$g+(` z%FrZk118xXzF9IYf%V#yp<`uc(9-X?6nV=av+_uJ4#y!OJF_P6&o_tlw&>n&jGkJM zGMThTnDm%tANPX2;hQs}l6E&AO~WrxX8FBwzbW_Nws7B-1LqP{6&io!7AkVo^M>D@ z%vH~c*Y4|{scZj)3<_XAM_2duu@-R&*X6UwLzDWpp9^ib?I9lXESNm@xuZB5n_@d> z7_@9iio&4G=V@*GTK1OmA#`{2%y9xPoWz6?~(hG>T><6==0-C))eOPe(^{~GGs9i_G#+t$%9PCkWy zaQLqEw-l|J{{BK+>JEUUp$1x$5Z0$U`g_KXH`8M0mE(yz8Lk`Rlc51>f=>}UnEev1 z$31SVj#@uGGEqd#F$$z+0H$NO7Sh$!eJRbCG6*piNu`zbQ9H4ftRlXjY+JfxV32Nx z6sYEM?-bVp!|~0vsxOX=Nb&A!vV}A@k{KfoE0b;gqIXEhr4o_LkX#VYSNas*PfE0i zD?pdE{+=VEES(fcl4LkjsJg7?L5OwlL2x{BkhxCx5N|0(F=HD2jfpm6!Z%I%$@&;9 zp5oB@b@EjKdO&l*XhyzXDo#d~>4v9=I)fxQj_k`ii!O(a==zu^TXZd2d0p9ip30Qz zO7I4P9anN(S0Z&JCl@$|kZS~WKu*%XvV-!LlXwsXHDH*Xrc!JngS>RB@I)iFGh*AF z(l+CM9@|XSak9R5bxO*2{7oiVTi|sDe3}pDowM`w>Kvb#wKAg32k3B&Q*d!TPU`m_^eNvG6B&@BOPj%u@!&!BxWC-M>A9qGCrPHW z?@$6ZZd~$plkHbIVD>XB&z|$F%0Y7~)9v)@O?DGcAAp!lJGy%8>^D@8oBhVhn`hUi zNqzi)$u>-eN@}sfmx*3#*-8RtHbp;~2flCfyL@ma&YiN)9dv$F4v{p1ivYHgn*8_f zE3`26xsrG%`T*^W^P~P0^b%}uRm z76c2Pia8@gKHm^n2+-h*Jkj{A)6CIC@+iT9R;k8RAKe63g^F82hA$mh%^PBXiX*_N z5}^qyD@&XR+{u*%E~1i?ozdh9x&m_@yZB%!2{mI+%QnRQdThI~CAml?sWjmA=6=(d zZfXPZGT}a3prL#Ze*6j*)E(# zEi0Lh&+{9#mJN$4J<4sHlBc@EdF)Y+jDHP1lUcTfJ3r zH&}l?2%-&w$gnX8mhjd-OGqGQ7$lP0nTKuuJ{ul2#a~SLy(xCfPd3fcCUCV4*V*Dd zGJ7it;UlC?wf_`XAgWddUiRA5?!zdjkm|T1yZD+fK>@mw#8m@mF8^5td!-P&9mK4; zm@CTIrl3lMXIPq()2kg>f<|Y zHrtQ)ipSh82v&MJ7NNo+-pTw8+Z_vjuEH$cVceV~nGKMWNQxMda>TAO@G%5}gCiGB z(Zh6;hY^Y7lS$`AMOY{T5oyFR{osR0nxvGNd#xB46Wk&?vic~vn^aW#Mel;=F3N$m z}uE|b2G6|rV9&*{i#ub?PD+? z*%|7Q4BorRuneXbb}aLLBf0(H?3o-t5UmLgsok<-;nA2I16^h zi=EN<>;r@;AyYGJVCc2!V0?>%VwcNRJat8v*r;65Wn2DQ-3X$n)LGrEU-u2;;))*T zHD>`Uui`V7{5FMrE)0vz>CT-4ezL5f3!@*BUeoR8_eVp`nlpR2r)NceI+inE1j#LQ zYfnuKED7d>G$kt|u`!pX#fX0?FW!iRi_@5&vH0>pXry6%ew_CnuqPYEcu;cyA}ceZ z!LZ@+aB-o5Jk(~z?8oA%10AAxYwV$0al@<}oBS+;dnuH64f=}x0hrJqIxhKK>L2z< zO7W#x(N7Gz;6o;I{7)$psZxaSJ$>*8x*q1#lKZI1d4wwYBjY%aPXQBvrJGa^NKOhO zy(KW>(2h%4+U$X!@-Ice>jNm-m>VLM-Zi;&JD0#C{2=(`N2GNr83DiNHF-PpEbJAJ*7`*fziKTiKk7~Q2)FvgrINc=@T z#62x}jN#@@<<2d{W&Q0oe1R31E6dKcsk;F(Z(eC%1GiHvM+L;;=Ew?rj+-9Hwzflli8Cp^WMyyfkC8ZTR+TuX#7XH*_@j% z5&e3!8JPr>5Tb+rHxfR;9soeqwVb3-x!r8+7DKBL~e0=&9IlF&L5v&EsOUQx+0I~~>b><-Vz1Z6 z@mx`^pq70JBl=7`GxXNZ&%j+!a7LSs@)Th`W9HE_(MBQ8MbJayL87DU3&3v5=XCfA zIPUO@{^VlP6i9zZY>>P)Evh1g-%Mcl0P(_MN-5+#bQnvEW-#-M9kUU(G=F6_H_eu2 z|CF{F_scf?!+v?BY#W=&6IiLoc`I2Rd!wy?#u_w3pRvsz4)CdwVcn2oS|I3)@fGMWys*w-Q*DXS;(W~o*kBIRSI70$p^PkLrBeH~ z+XEt1IS4eC(JIV$ors!F2#GaS|AXd~=AmsoFCOySA|J(Ri&b z%!9h}A&kM;l5OYTGD0C3Efyg|c30-V#5(MgzQFfuE%|hql4&c_7r+Fh5SvIj><0>W zYTe55C_W+sY>sJ4+eB3$oIc z5<~uqvi_Ih`G5c>Va}&&301-?$qC)$T~cK7mm)ji-KDutPEdxp4W^$&JWBR*!rbKT z6^t4L&H9g{Wr=HASw5h{$o(9#*dh-F_iZtQvF(zWIXU57ZwYVhPtK7$E;*`TG~oXz zb|wu0y%>O+6vKoF4FKomJr(~XHCyQz#(Odr`?5f4#F!v4kFB#qS#=^IigFsP1S-)h!S2z41_OY&9GcRA zpuR_fpxeB^#$Y*}=+)lD=wUGqC}m{nCa}ie zWVUkK6Z+BIFk!@THE>UA0$MUz9iQ$+6X<@o6dEz(OK#JKY^5Kt~Y3R zFo7OSJn6wey&uW#myHalQ1jd3q$qF_xwkwob1U6=REjYq487JSqk|fgb&c4egsU=- zF5Kq0XdW63Suv2)(JgZk97mHPfwNJez`!Hv7wK?CN&kGCCxCL?ZA@EyJu$2#7?9-( z@*Ku%vaZ_dOrnrF&?Svy48Kby9i{KCCnxNXJcN=!%q|lchmcP6JJA$eo9vYP$`3$WIn^xgr$R+AQ(7cX zg07ifbEYI7`#vZ(tP1W>*$xyJW43c?e^Uph#X1$-zEY+_X&*A_k4?G&&FpTZ&gj?$ z(2CuhzOMw`vXSKLUt zU)oCd=`1W|C1r4?7otBn9ifRHH7m_daMNfy;BhVGLS~i4XmIQ6l00rsd7bEx@Sgz^ zxdHiq*sn$xqapSJ*K|;{l=pisB>!mM0zTdSBDX)y!*BB`z8k;G!z0)+Du2$+L%Dq* z&wn=c*PrM4Z}sbMh>>DEL+m9o%c|nvZ`$uhPX@SU8#2TN+b{auLiYcCf+}yP% z*s)@?Hc-t=9~%-waw%CQHHZ@f0$x(u9qaZ2(L4i!$k*_~N;hV}!2D8gH^|Njo^aJh zqg!v`fi;bx4k$dCSGF}-H;6Tj-`UpsW@4IjcqnDlNCD5(*1E`W_}6N!t}2&lhh;MB zL{ojLWipdTKOS23KoIuz4kP32^>wJ>Wc@3nCgVv8UHDcNAAU1Vw(o9E5T z#%Ek)>KB_u=b6?zlbvT8aj{u+>F1e%JL8li_45qJI~SRpB&q}=-)+p7WAzD^{H(Y@ zxyGzB!{?cPu3Xk!iusz4`?6_YY+77#u_-Pxm5ZOaYb`z}UuXKxGwjb!?r=GdRC%Si z)z>}=_YY*i#}4Mz0U&Asm3~H!M!cK^&qWJ0FH?da+Zu|5;WDH3G%)0b&FfpQ$c}6r z;a+85Xka> zK%OaXMIa1EJ(0Q?R1E3>yzT}C3)or3f^p4T%ad0!vf*;4Mfy*4_6;8tyf`Pg9E+W_v}rU_*tC=l??E;2;|~+vfbkw7lR=)LEdlFQ>aZ7L^rdHyuOHpC#G#|I zAhrt*BP`*QvcR`g#x_^Xmde*$+~lzxnX+FVvGK@~&6PG|aO`=8#b(blZk-u}DjTTt zYN+&q7nu;>pJFogSW*T`KYWr&PZYIg9}eK@+d**tL~#Z+mU_lW&VbHOTh@w8-*Id_ z`MS>=WK7avwLoR>SGG-4Eu_YWZ)QI?V`e_-bR8)Z0a!8ofF;K~$KEUAh%N>U-@!hx zAb$z_FSR6RsLeoG(q|N*t3|{X%liU&&Tlxo$bHP2uQ`9Ya}Z%X85Wx*RrGc3Z#&9D z)|b0g@rqRhu+pDHQF!hvkk(pB)7Jeq++*#xthvY5X}_pMd)(s;*aemi6XSoHr9aE; zgPFNMx(VnQB-J;nRlFoXTL?<^PRHD!wRgR>H^84-zD>3s{mqwwB~_%$KH}|7Qq}}} zmUnBt`9HjQ9H)ZhXr#^F2vaAZi`>G;aMLa36nnbQ_Ks#$$ove8+ib!K!Q$*<&37GR zGu`u1_4Y~f`!4|B0e}(;`-mdSx;Io25HeugKrIm!u#M;Wj8njxuKWAj!bXvC+J-r;q z###Ow+)LIwv%yhvrU~fpy&dqKm8{J|H*W)WwJH(`X1r?WB)uV?S${J4XPGH2hqHXN z=i)FF2S?ICi=Y<-K`q@3k9UoOFQVH*PC1HX?``PxEG=I@XR|k3{Nb@3jBPrloi}B_ zJnlCmnr<+AO_1d31gT~{r*WSn4XwlTOb0@}tS#ajKXzI=I+k38WrrD-7?HUpZeer< zAWsk3H*DVWUo(xb8}}7c{i=avL*5af(z}hj%T%cu^TE`fk!H{9AUtL}W`FKMUn=x> zacVANr`-FacfXZ6^!hBl0XYW`)gqhOt0W>CD&1#ENF-CvV5!K1dL^*ZXNE-2B<4PZ zytEhWnvw_UA}CtiZ%Bg7JE21*T;72oIe?WcFJt1y>|R@qSz||ITgJ^3AJ37pEssw< zf+AM}&f@b-d!1Q*p6Od><|P-Ps*jw!?eWuEAUWl!lv{$RcRS9oL5s|%P5Wl@!op|I zbhArIf+*vn=r67|eUt!j#d4CzOypd-Lg*j3Z`s8xirntzl=&s$3vQl$4x!DjF|(%F z#LOCF-(8`5t8i+O=*}Z@L}x5?D4WnOFjT5SQzwp(tWR9MQdeh0*wt`p&2V6iZI+PM z`~jD3L4+L0N$UFt2d9Hj&P<4#h>7djVXDZ}&618eAtv^b9l&kMrnSUy4N3q*(inE7 z^x0+o6W-A%fbdY*HMZ^8lIUyFUmBMMx-~m?XdUjg^e#&-hqC}?I>TrA3~e=W)>*yf zGj!id-cyGg%JczBm*(DF8{DGmu>IzQ>D$xYo9jw zFSEuBp3V3-myi9FA;<4_dV5a1jsk?AGlultwAY!eTaW?=IRy=5?Jg=yE4fea&F?hk zi`%=`6}nfY_H6^GVzVa^Q1+FHK71>da)0U(yRq#11BQZgR8PddgY~`F_xp|c;r5=l zN!LMHvY+;Zi4^xzzyz5X|G{Cg(!znHB}#wTJ3}s*&_WUwO+Jlh{t&e>SEYCb>--k? z_<~9AdE%Nr791+}ZyWsB%{^1j=6K88VA8uL`itk#XSdg1m_+sWmM7o$3mRR^7=Llw z`#N)lNk9AKcLO1Q&RF>;@tlcX$G2=z5|PC4J+Z2M&kf`XQ6^g;!U7jpPF^wjp6g6{ z**{zZ+?Bu!3|{u+Yc7DXOi^1gOi-7TbpQ7m%h@Qj;uwOa%P~Ao%M^53Qm-A^Aeun* zsSM11YIlhH5JZlPRZo>E|Gzwk+sWA{rbPO$?uYoc&Hc`y<4W>2<)IsUWVLQ**_YX) z`0Qz)LHjb;uUSy7`Sw}JYub+6p$WO{b5c;khGFJrB&7shYDOe?@d0D9UFv2Fp!nd1 z!**#pBIb+_1(nz?4Rb^d`809kX~2|;Su>5L^^xe-gU@@dhI`M_>PU}y%cNv!Ep3jp zTHL?ZOsNu9x&X-yNM%ErnMR9yi17nWR?|w2CoC zhiTnz+#SZ;E^6RzH$Jx0aqE-_K_NbZyO;a6xIg11}gDbfhxV%dEHtCjt9FgFHsJ*0>Q z6p!TQ%-~K!NPxnG=8ipyQ!g7GE+Sx-bY755IX8fBfIVy*|M1&D@3$(Bl>+Fg*GV%z z^*X%PBIRHM(+1tzAN|@Wal8#OnGD%>A3e#*TKsK(zKfod3tDcgnw6-j!)epveoDFQ zPEuP)68~;;P0^T(Ckk)RKVY21dtU_Lvo9DozbDYhX<`=Mb-?d@aR=OtUlzhI#>znh zWU;97ajPpyZKves3XCt5Te2mlcIJ@R8peoP>K>Ka41P^|HRopFJ6jt|9>TE-Z6f2Z zlhH{fwY`!@If%Wl*E7sDU;y1$(h3G@-Y%OJ6`t14<>eGx1!q!a&B;ahopX}~sPLfm zn9s1LK;N_Eo$%$z4n)L409=*ds-F1J z8e)jG#!(-6To+KZR*^_^a%f9pF7O@DaJ^IBben9YhONDauD0D`$6>L+?CV}!9POb( zbPNkM+>r5bJRgqW2R7z}7UwD9lop7t0l0emVy1NjkmU$^N%mz{jo>=n?`3DF+(!;~ zCz|9wJCuBvk2vbF$TJfm2+=fycYU+)2wz8bgqEU( zG`zxP+ysaNpm@3IV3TQ)eZe;#C+1-_T4x?2AjBISHc3h3jHz z+@3Pt;g;X29@`(Ez9_i@p}<_}`t|e;Op6`~y#whH)?4o_RaU{1dP06LX0l!`-dS+* zHH9J;eh@r9Ujx@4FIbdZ<%>^Fc4LFOL6G=Q%w|Wbfde-~P&#AB%6@6yV2`zL@O%c+ zm6bxVKk%kE=>< zNCX*SUg)2Ze2eJBHcKvJ$$dkSfDgHRV)skN$3tJjiPfELsHg!C!GqqDGMLI5ke)=O zr*yJ7bXf~aj&tfw@NK=PU+N@#xJE) zSGkYwfJJkB4~6b7$qXos*g>O0{+vsd_RHR+=(}lX+N}GiHCI^kNgcytk(nlCV)5CP zSmjL{r4se$a`Q&6)-*i{a~d!wQ~!FXtjfww&t|2|(WC~yxCfpu;+m?(|ENbynsyA+ zV~R&s3YC=xAk=3ILg}UZHJXz_(3eK0!U*W110Y&GbeK{qGHl6Dvv}QY$#;)!9@~qk zYtGWC^%m|6SXdXBTBEAsP^cdoFeaq0g`{YUQjTpck{WFfB(5sddsL!fW5$w&x0>cH z#>9Lkw8bq9>b>L%Hs8r2GPoNiO*k|LRzM7Kz|*4j_IjIb;swVAn3kmP==j?kRY9p` zJGXmthi^+QY7T~Gzc|0g=l4O-nIEn!Q8xqZi)wKMCTMGx2f|B=?s%U z9WM1UXV+ngXWO`d?4hnoCAjlk;MlpYy3Rotbw_8@AtQ8JL?p5DS@4HxIxg2-l?#W#odTOKczH0OaZHEKV`= z%Qx`zla>j5mY|0pX`k3fWfS!turW`N8O)WOg4YJ%ARiul6xc75{$Na)~>}iJho4ZZC`9-x+PY?KqMahpgO9qR`A_8tpIFK&j&7YwWWKx$&uPgU}~D|KID&AZD|^RbjL zL_0s+i?W?dvtot$WNL0p&F52d1*0$QUhGy;h@e1xTYB{@d|98Es=Sx*X`z;WlFWgA z?G30d0vx-<;mau+2X;-%koz6jqUHx8aYCB^R%8TwkjuuW%!3LnBgtSR51X>LZOqK3%*J-7*uH4W5g+&4u|20e zsT;qPKa@xIjz{*|NUEC7TO&d_qr@xwrg)J8sPp62Weaf4Qm|N+e)dn3X~?QHYFgwp06ORjrxJLVJU_3n>&P0CE_E;NLpx)VPf=#;-CADbKc4NhS7Jn(dK8~2=O-}DG%=2oqviSBu zH_4%i5`waVk>V96SIj9Db7z5u>v|kkxsD^N`F3WJ{xUb`O`P}sg8e6*#}V={^v>J6 z=OV7rS1KHw2JmGQPfmL4h~=KmE6KVYQ5;zAQ1*)+N<{Gw7>iqpCUa5RxUc$73|V?L0|N? z@i;K@8({_hnQV~W^wFYFDgs%lNaM@Oi2ZT@fQ_C7-vap$Jc+-MdZ|6hkuXP6 z!oZd6!Ex4V6R(sgyV911Eb^yGE!E~ueaSU7{9HfkEtXUkBcNr|Px|}{A3ix@<-ft# zsUvl(1Q*1m?Do*OBe;#Bx+%EN2YXu}y?T0EaJPi&tpSO0xDE;BHc%y@{j^%WMOVA` z0Ai8w-zl>J4`TbpNch>amr$6YLQN{AQq*XGnhd?7PL;~<(J#aX61z`<;8_go7BMCO z%Q&5Dk|K1G9gqIG?b=wiu9K0$twdxwMyR@9&yPR~Tli2pTvVge1-xe5--F{yg(+eo zg$$%dViF2x0=^@&JU8;kggd}84=UeuXB1G_CHYAWFC@4`Fw(zQ!$Vc__;8DY;0^4k zN@3a{;JuKFg-Q@+7w)ym>=c13{fE}YBf}d}ay&wwAhM63j}>=?m@6bG-FP!2HqGPQ z(~}>MqRTKORDfiC6&Ayfyh>3F+7|!|m882QSxX*%l}s-Gq{Cr(c7S(wr0SWY7c?^@ z{??HjyZv~b)bL)fCAaZn&E3f;?bA;Me`qO!%?v}LM;cf{iqU8^SD0hT$;TD8Js>+l;$50e^-Gi>rzIokUCjrQ&K zjqW(CfUWfG;Li;8Pl3g!k47hrRiOH&a@T zC*!KWUaT5$!=EeC{%o)}zPm+y$>0K5_c9R-7X=ikctGl5Ay2Z#Fq(4!5a|a8P^u1d z3gRBeC>p^iuf!K>W;dG?k!!{Mma*M+%GhoofZ<7l%V<~}BThykgE}Prht|a-ro6Brc0Z5bnTLuDV0=1)u-e*@v8cz_}ke`=Its zY|A46;7^_XH3n$ptsx>;gjvcUI%}WFbh47kD2!AUnG)Qk(j7#sMcE(;f>PjD%mOsU z>>xct`nt`ji8biAX}@d!;fFmpr>&&B7A*ZF9Cx8f{)U9qTb~hYMKHmWv0RHeP+?yL z4E(b>%pD4_^!sK6m#1rW@)uVpVf4M#2@Zpo5r@`SGaqAevyWQ)F>5|*`8L^7CV}eI z2ty?MoeER}E`UT#Afi(C#9Cb)qvOi83Ii=ZatSAvCb%kjU+^EBSg~^E)0!1%E$@Mr zR_#(G@6%c2 zH!~gaS#!_-%iWvD*;SQ!zk98{5)grI$8LeP zeeEVdKtKj%7Q{qEL_h>YMMM%o6m9HQTO5%@K!3<#Y0b~|R*%Pgx?f4BmDK(mC%+*S)FYaRYCvsN zLqTDNyG@&blkI3xUz@b=3^Et=3g;_fK}_%ipp&7C3HC|!2r^#*+N5G9tcod@S6nx8 z;~;8pWr(GW1>qgT#dw5U@<#TT(4^6AXwopFDeheX;D=ECiq{7{$H#7p&E`1rZK-2F zJMtZ~-Jv};#USZL9RoU-0bRj>zG0g||9}Z@Qk*#N$a}(9@r9Ofi!VVQqI(karNrHz zz~RA5)pGFzNpeq;Bw!wD!3b|x!RQR;QGPIS3e9+{40}UlqQ*OzwA1Zr=5*8EWNc-? z^|uvI<#Ba|Od%6|>y90``bAAb%?>g6eG^!^;Rm{im_eE=tQUg}wA@w2>?PP7g}wKx zG3d=Umd=IiSYxE3Vm6(b%V4h{Wy~9(?wLAADjkzBBsN(Sov}r!*hYMNif`xnHrlRr z+a1ZydD!?L&gTOLtY@2%AD~nYjv58jp_A>(SCAgYn7MK>D%|XXdr3(`E%(m=Z}At5 zC4}M&#&opGLCq|R`sT6Qyh{1Gt8oQIR`nB*O#^LsjU(*wRerbzcYFvbxt*i|fu2*D z!QjcuOw1jd~`@19C&nA9(2KdIGO=cS zWi_mnaFZa!t6go|)W%4oSZ+q$%r&}{^q>u?*_eLQ_z&mX=r!99XNj7#lg{V5O3<~M zyHjzoo-cM6$Pm31*EX{l7y8+HfU)Pd6}i4`fF1 z^s@zXQz5NGwa&poqp}u-VV)(1!IrVV-BHQK-0pzJ$+it19^H`B!Gn~04p0&fh@*2{ zd;w4lpuCt*p3WzQkc23J%QD(?Aq8cYyZ%(J{x#*gPjQd<=Fp;^@rA=DTW=qK1ssH2 z*E1p4b->p}XwfF&>%Cwil&N4MIjUx$_7NBiFi$4-vGPDD6I^5$og`#B8YFp61r(M6 zno`lAav)uyfUMNBp#R|Z>%5X|n000M{&-IxN1k_&0c59=IIXe`qd5~sv!9e#Jt+U5 zH)zYHeVWjgGofM|Mz%-=G^q$;f2u!H_w5e8UE$ljZ_l;<1D#PZ=syYFoAhrzY&iD& zP2ZdC{b{A;*cnvwiXvWqllzzUCq6rmmrzS~{`N}eB;{4Xr3|QUifxVTiNaiPNrD=@ z9m`rh7MoPIj!4x6@Xaufqn0q2vF?(5MA=B}yZ*=rbi@|=a1HOxj+`CFTYbY#jdwAl z*{_#mci8HT`c~hzxtdu-+Z7g`b`jM(a+tZAzjfv>xa*t0Ig8h`Qo`ypPqZ|j=GPMD zkd^-0@vUsm4)vRhf9ZeiH5d8s{#+7w{u0eR4s`zovw;7=a~)Uqn@e6kGp-^V=vj3V z$m+ApoZsZYAC|bl8yoI9(JfP!y>}xI$UIWpp&S<%}ln1 zaAj`}KM9*iJb5`!M1NM}9%ecEi-~WBy*UZKNeajwHsz4frti`lX@8ns&J@ChLXoqL zuYP~xv-5aKN_Bpp_-*2|^PI%2@?!jc>t1%fN&G%-8uTN;W07yiEVD-vs9I7-hDMe6 za7dmc`%IX;5O&1Xz8EHJ8K69_6;M{Vn@3#oBO<+`N_tkr_@6W32eS&UTV`)G6Uu-* z=6zr2ZD&Grbe{ktTt@I@OmHWf)Fm6Frbll|=W5-#=DgrnSeZaDA2Ye@aO#rhhU9dy z<@!J{o2Y+8+6U|{ypUX3N|2+9l$*REusx;_mYkv1F{9TGS#r7zb69 zTLZWYDnll>3fMBb7@SD(E2V1cmIhan@klz6z5D=XWxunSfSe!99=Zfo!%nBFlx^98m8#Mpnn96nFjx!P_eWJ zCkPNzc{kvDw(A3>YDC%zPsMM_0GdE&@Cd_$KTw!1E>eX2+-Wu`=7&fg+Q!6wF6b{3 zitO$(jWOJh!@ErQIfFB{X@7H{Gkq5u)s|JR4`a?VI4;K=@hw*z6a0>(!YG#uCVCRL z9g=2jVYf(F!vu3^uLyKM;C!GplJOD|?dze+gYwHOuzsPp>i!3+MGEYZg z`j$-rCn?-Fd7->g@{q4Nq%2>}TOb4r#HKL$3=KR=D_h%HWy>8|-CA0UHo`4(+A94f$;rbFQTL>)n{w-LCR& zv7<$HLDw5gncM%mIOTnlsKjcE+4_UcIfd{GmaC6?jA?V!WjFJ+6-=2rIkeSaLzl7MKy^Kdh)+N%?aX#d#$13!jvMQv(jfHH5%=Rm!;#&}LA-EOS{0!S-o@N18N&qoL zfgUP&r|9}n?evcUq{ZOh3skls+hU9fqw*E;=ihR!;+J<;K2E@il%vaA9ys}J4B*TR zVhc7|OktsKE57ZbFlW#|e2vKy0t_hb8a#=NQ6*QT`_DB0{nY$EpZqZoTUx3{-Qp0y z&19Izwj^X-6Lg^}r?`rKQ!TKi;V{{nB|rdQy9WL7+Z8*5QtWN^o%S8^c|xGti_Sw~ ziZ1Kb4yXRid~iWAKC@s+9NJcct|{0j3iioD{K3>-m}dLYpA)pEMq1R#pPxzWpOW^^ zKTBYw+COI*O3-{|u-gX^3^0uPWUfVxYxwr!>LD@;*h!xUj1lk%IOr2a71N5>oQ{d; z>KKF0u}TU(%KHU$X_h27qqm(@cU14~hr_>M?KQtnXGRKagTdt@`}k#%?o2Wq7&*Cv z1Y6GOrEesOmU$qxccuu!*QFC0Rp)yRDrXw&HR5;V)ii163K%Wln*cWiG2Hz_tM2CHgAQx0qin$7j-}<2m zf27!{@OyeXA>K8rnUFUkbdM<0GF=di?!bd9=)UQ@76S{0Z9ZFGrB0+VRCUjZB|5<4 zIDw0WwC4DZEcR{Dx0$M+%#`4)lRd`%OEKa8gOeD$Pz<3v;O9>klbeyr-Ef2f+jr%? zbew0(OeAOl9pK$1`z%X58B|72cv|=VAUGNP+8;b#$`C~s#kr$L6q67HCYa6hi(7+@ z;G`8iUGm7GthBK##q&$ah17sE=jSKj>!!o3LAM#ky*D66_wUNk z=7XEcNz3#pLnULOS+lOzxK?VOJ7YK0p0iONie&xroXum9LIKsTpfDB|xxz-*DOcD! z<3EbNwHqv&`Mi`W#;NdckM3a;ir*^4A)smnO@<9ennUQ%}vN^e{Fl^+o z>~jXx(ng;uC%2YSMCIJjnLPI^;jyC*J$#9(ZnM(4P3Y2Q5pRQcxWqPG4drDIV zQtyV~YqGNSr|Ftzr%VvBh9_dFd&r22fuL2qLPQ*1)NepJTrkKt+SjA`x}Ul%#=2ij z@0B%f4B;R*aj{Y$o)5<};-FwwBegcjn>@2MIln)} zx5~Q0~A30IPQee?dJ2`iRpnQ^C)Bb#ZS$Irmr1N2=~pa+^rs z358QxaqNC9#5`gQ+2|d{Y;TDIn#`fO!}0rMkGEs}6L&=mOY3~7oi$%l7M}0raW7YD zF>O&iY8IKrU_GvZ*fW!?{ACo}%#9ocSRCKsMuLlk-bmnSyH)k7F_6bZiD^SD%<%$*hEj}%&IsS9e|nRT^{CUc$mv-Xk>I@(%+%e z_W>e$02pxB;7@hfNM+JOHpWYAKyd_&Qk-t7B`?${;7V7hELNp0S4P?(bhc2Bj~1qJ|m9&Zakw%#A*IJcO<=LMWsQLm_KuPE(%{F)_E5XCjgP>xT1 z=9yAu0+QocFVft!g70-Jf`f(mNLTVB(ygVXc7Wd!X+Pp zzRkirruqG{Z)f;+v2SDF&h>5fYu0ARugunT=f&C2gB=&|+Ohv8zfV>jZ~(U`1pPz2 z!MTz_j%3@NjeNxQ9=7@fvxCYd{D4We{)(WGG1S?w;*RFDFRn0Ky1{O27n*RTBv8d$n;2^k2P|V)=8~2;lS3*DDk#)kuM(iayMDeWxu*xuc9yU> z2YZvVpK-}N6~cj!NJ%Yb|J#$Gaz(c@BQIJG@>8t+}Lof|=*=Ro&s$ z-CjC@0i_uB4||iJ^pa5#BqG`%L%)erV!7RKdz0_ zAe=|Pix1_5b@8*ndj<~^f^ zF%(p}utqT8Fx+-uu2n49VeBx4N`JkGR=3ia+jSJHniPE|?5XsQ_KXdV6}rm}J5bx9 z3)TO0I+qKlyJw+KN<@xDDscn^N3&6FCAr10=>#j4@Y=3air8Xm^)Aocc2g>#^%gOrl+%#nUy)^*_AXMPv$O;`942KoS9G&7bTm-F_@?O6y8m(l_=WN-}FJUB5U z+*cXhz~?}W&xnG-_kYdA511o;8wLMJcAvNv55+@A$0uZtL+r=yf5rQ>iMJHdkWyOs z;*NdPxRb{__9ZegiCeq!D5KiMJvz?i9hqYY2XwAXpkf)JOWU9s@t?|rK`-79DL;}e z3RD5yJ%-Y$0r-JOXp6Jo9PP z@c0(6;ZT*n?#8?Elu|ekf?E(q&4))wNg+VnS!gg?xdGm_bxiOAiS!}N;hsrb)uDR~ zbB}SoGr9rF!O0&K<^y6Kk}H-8VlH4HVF;7W=>eM*(RT+?e0)T&(&jpjzuJBl4%p|< zZ1^_x?OQgbrJ$7`mjugmjU992W-LD*ju}3?YL)s>dw;o)|7-eo(G1S?SHK&M4R7^r zWHg*s*y_ljzh>*RTK?Ea4G(BcoIFNGR&Mvk;F>sp-%J4DMx@w24VIw~_WI`Dx;a%Dv4+Key&UO!5!u;O7$u zrhUjozqjT{GbBu(oCH<;X=r^P&DZ9btLB=+&A|kOk#gRd*;s3utc2Knd;4?FjS{$H zGt_)O4WFa3Sa`?w=lm*6X1VDG-`cZnN~(Y-V)r<&%L`v*)5`@ZSFlvzcem@ovtcqA z&zCnY@%cA&UinFz+^Q=-!-X6xow?=E+nNyxFh#?56D|c zVw@!~g$v}Pw=esL`Uo7N(mOu!LyMuGp+1$JM-o0-1u9MB`^Bf&YEmm%#LKCmIO^x1 zkd+E{0F1s@H~^d71v^D+rsThTJ;w|5}-F8p1{VMEf*y>7@+W7Z&(14?6#Pym{~;nA(W zkBrO+rx)gJb!>KFp<9qH1P7Xs&*Fk)=~ln*T;9X&p6ua&=d-x`Ic9lfS-OWSxCPPv zlc(;hg4Sl=HwtkSKM`#zn$5-kw3~|gpj8-$6fpFhJEryR#tUOPzplfv-P-HBG;Ue* z(HH{zSj0KG@jTy!2e#g7uY7#x1T}lEZeH`(v23YNH{%*yGq$hycPVhCT@sI>re6|{ z6@4GVu@-nF8Rsb9(fDyreu>@L@dSd1Iqvvu`QP0b84LNnK~ z<^!$Li?Lms$oy~J+K{|8c1;*%RJuV^NE&ulu{Z@=Pz64 zS32_Rmie7Nf8R2H)aNs;+9$TUwBy7lvrAt-)%-=5{IzAC*XPfMlIx7|=4Ny4R`=ks zPw5QqwK==T_K(f(^~g~2abvDGIa-_q<0IS~%s~*sVt7^DMjX#Z=Hc-PT=@`sZh6Kex=YI`Ul0yr9n)TV~BLpJxtN4!3VG z=M9%0tR@eZ`!5`x@!71jZpH?!(F{GTJj(>h#pg3m8FJxLcp&gGSW{Vs<0t)3@~@J9 zLS_+8nD}=5R^JwL8JKrE`NFC1M`We+o)ufk-DuLB8AF2Vu{|X3?JCy!Tv6;-N|A0N zznXnL1N}sc!=q=HR!lF+c6#HPeQ8$@E;sY$%Kk;^sQ-dYP-lRD^nVhwgWypq$p%C2 zY2q@&%5K=-1WlzT>Md|O9cn~?O0J)(NJM91>)vLowfJSg3_@|X-ok|F%-paU<@XUY zHQaU!6VOj?Y-|n#6PmfWDrIzI=Ds_Sy?%!R8$E?C7%ULsg5plmj&`ST$JUZ?=VUjI z16jy^yPM^DrD&O1E_T^1Gke(G!#(2N9iOcgoVT~x$L$>+U{{*`QSPmD2e_4xi*pSY81V+9RlLnsKY}v1NB2)HMTGJ9 zAbt>-f9N`ECaPOa@%za-$aAa5qv5F^GwF5a;NZVcCsc6WEws6tTsxGrP^Eh8ViE7()My|E(5yF>lA?Wek}WB*dIHGl_L6mX;Dln^G0PO2eB_I&J%ELyVM)FZCgW z8gi#ac`4;&cSk(5*N`724q9Ho2WLw15c@1y2cM?NPX(*Wv;gd(%_NT1j|58_&WA|y z;0O8mnVfw#XaA6Mf5as2{w*~J6VG&ld7WLs`>&+mkLAp|98)8w!v*p8^^I3SZ7a(t z>bEO%<|^jb9+W(shK$u`U(rY9VvVH&p0#bsnG5pv?7Ul>kG{!U@>9p3Tw2z@d^)wI zKq#8QH}E`FC9uLTQ&`UX$b%;)f#@zF;R}<4fp82g`6xJciTB61nd^bB_8!9`TPYxl zcb5jHP$a+~-m(&P@r^8JmO#<(XJxYY*(6Ak-5-32Go#o1w?|t5B@40F|D!S3`n#-$ zGBA|U@T>pMTx)`lq7_QMlDA*W+ppx^eXyvA6?wNV$G|hxKPCEpa_H~R+vij!03UWL zPn&0Q=B&IqQ((C^Z_ds$9e2O-87wr;I8#YxY{)fstNWDAbJ>Kg*N3(LnK!@6+b8nw z$-E;59cY4(OO%B>&JlJ}!>v-En5%q2O$lh^f|dzf{}|UkHzLPIDb~4a7OZK<*>2QK zLp?RsjNlkQBt-?Y>FoRH+Q+1bMS@;}6iyBpN}0`tiS&_gY1ky!)T$V&jBavr_%*l8 zogg}!TV^6c&6WWckR%&?=Mh4x`A+g4W}C$3J}8fAXw3+o$5#W_IF^n~drtVJoe%&! z*Lg+O914tySHz`5F8J1|@TewpdPe9<#C?XmlErc8b(;)6d25XSh<%$?{|PsNp<0ic zTD@Km?kgrCjyzlcp_$8(06JcxG|&j7JGXz=w-A|*dfM4v)Qfx+CJ!d{dz0j!Lggt| zZ^&g~pVVN2F?$Fiup?PwEMo7-8Xb-X!K3i6$uk|qHDpT-vmIymAcuY^Ut$zG&*rI-1#iods zx?$j9y@|eRmVCw}x0y>gy>zu91cA&(+5UmS4meWtO32+8L{w`7b+C-^*f>Hn#$?Pl zt6(<1YaCjG@1jVmQdGy162RV{n6D@<2QNA^DfQPk?f62(lj*7LrO+>~wH&|7V1aP-MuNvgaU@Lo1*EWwlG5>jDM znlkcWQ0hBSvTd^Cro?Pc-tXJUx22B#?8pb~c8A=iqyqRI)dr)%HW=;d!RXZOplHRb zfaHOs5ts~-(#pm-Bve+52~9&oQ9PcJIl&z7PN7&3;W!>NW@eDV={D)BCGk6w!w8$o z#fP+EV(rT?aY;V2iSVi>j0rlWrEw~}YMxTN@+T`5R+J0!HuH)VDOZ?l z*p=P3C_G`dZ$o8pTZ0Lly3-)lRcN@aS==bI{y@~oh_bcNEj;=oQzW*s0f7*XLzOIk zpEW9lc$NrIUJ5K$&tKu2D)cuL4s(kZspq*aA-~lzQV4Z9(nR4%PR$1Fgv4G1t8zP; zvsg6TOT~v}p3K~8GBac>FFeY{b2fY{*DeZ9VhM-5+SGavYSm#Kl-CMwh7RAItdnBg zC%QP7uF{7o$SmDiHF?<|7Rc!bWGoKFEehV5Yff}yo$to#-M#r#W2CNT4=2YSoh}9M zhc;US{^D?zs0Msi;6B=~aWbi|7VPHlR@|kO2*b-67!yf%I%}0C-j_ zDH4#?)8_OAJA%@Q5mJ~o|NSHqY9yzX;cx`ki;`Xg7QmsB*Jw4|;lbs~=-+*IPGp~>b4!9B;1mY><^f8A&7Kb!M@GKHP^Tw-zzK9%@kRjU%x^DM4fd!X z0rdo66Zun#))wMlNM>CNyENT%NU3itzU}jE-nU6d3;!epya`(nDPi8|j_!I->C_d$ zZ9Z`-Z%P_etl>jW_$;+3GO+$?oltZ%ceyQHC-p8rl(7e5k{ynE!=biFu|}LI@`P&r zKp-IrML;;>cTQ-5=elrXUE#ZX$V4aTN_mqXm3IegFz$=MlZpto6^9a$dBF#x2+4F* zl&i>zf;3zs(O`L`4IM)~l!J^k8R1xtzkaU|Cbj zS>QqxY^FnkqsdWJ2jmMuOnM15#=XD%Y)I<4`{H=6wl4?QTj zG2*to9RtsU#Yz!`8deAJy3H2guFMK!Sq!@%Vv2L;xR|=Vx${OdYlECQsvD?ezB+zW z^%(mmb4-aXx2&+dn{*xVL$3OuvtM`SL06*vDz4AwVN@CM17x%EG0ZF=5SDUjF;H?K zQ<9w+|5PN>oLeS&R9rdY3tJ9HrS9PF_Igqe_VYameOufBtvO*}@4`MQ8lI^~CvU8h zzZR4cS02?fA93jq9F71CD`N~A38Qbg1n|#fDGoBAsok6LU_i?deTt#LXyk1ztFRrp zeZwC4xr37F%~a;eBZU;C5R$s&Hy(^N@wlaNi3Y#vhdmqoqTi=Yf)l3Dy_l^SJd7&G z5o^KI)TK>f@`EsbBupM=0_jJc=eM+@#W@-_poCx-B^OW~`OW57Nku1|68s8}X@LSb z#E%zo4gw&*pV*N!8sHvU&@KO#66I@tu5GI+$TH0uj-XIOtRNwad79V1c5D7sy zR=qd;r$gTB{wWE*g&+tC<3=cel*PPQfW2Um4+Bzv(B9Jy9!|a!-mM=dA0!LutPYGs zp9tMknRMvvTL4svM)+*=I&GiMhNvJ|x*qRL4qM2r(9R8LqE@k*4gvMimoT_T@nR?h z&(G@JgM>I-delt)srkELBU%8Ypx8XX!19M@Vgx?|Swv2Oy}3WcU8m&gJD1(`b`=&< z4$}$ZWSI%(j{VfnCZ37xYkKrwxjUg6RoxWi(Xi8~U`_gw5@XENxO1o&Ahb4>PN;Vo zp6p)7MJF^4O%9uLs5>kP9!nrQkC=o~ACR{acpY!#MA{Jhh;cs<|0Te35Nj7s7rY@n zqi(FCgHCh&2DfbHWFwI~G`@{8n#TBAA-UjtVS@JdKYGf*;)6ycFw~7L5R2>AD6L9?IG$# zavPXfWP30wx_Q&zoR;CJ9U2|hb*Mee9BK}WgO`}G{GUzqEDEs7pN;hiCY8TQL(z>& zjYkS4MK{}R-M!89o{6G+`UQ9=w`Tee{*QavmDR48m_NI-MtUtmSl}@ z!%Mkq#UJxegC_?`VPDsSoqv`@;x6{%;C7xV&clYQcL6`0uzzrMj$&d|Li9oCWQVDf ze5lQHh;)z-t|yd=x6sS^%p>#~+Gp$1qTWNX=9)ZCH00`t z1PLqGT&9%MHk-W_W_iNl!Am)UzJ-}cKxXAWUh#%;YxjlNFlTuCL-cXwk5q6Sj-Vt= zw|elnFgUSzN_=u%8r%4qLi~{e`S{cs|46U+#(uzz3P^XvsPPX^i@r?7b!`Hzc3K~W(q4RhemDbl88m?Sg8`F63t zswlPx5XvAHw;+E$>=%R19f)}^L|v{Y8tgv0%@)n@fKc(RK#(EfwM)Ka4Z&&bSHXB3 z4T2E{Q4SI{@}m*`%W#aTLZ$e5`G);77NRL0Gaj?fqD+t1>8<9iEF2K6G#HG`0gDKi zO{z(0f^9^|U(TI(j+U664VzxgWuQ}QcTb4BWT(*$fsPj#=ns!qayEeu=b@T(Ck4U0 z4hUja^7U%196XuiKPP)I=_BHD@F8MDPf3qUR_CzK^R#}#Sd(jr-UaGW!wUG(ogtwL zrLC^PsK_C{oKpdf;7T4(q(W1ypEnFKpa3BNBc)YcbWcd2E4Yc{7Io9c@SqOY(oo4u z%Wn_vg5P%}U4<-ABiu7FunnDCa-`5qO(nM;Yycq%1CV#|K2k^91psg(~qN z^mUDW{T69E8oteH+Eo;JQ68Z0<7~SJ*T_jJ%kNLNdXwB>Fc}WJB?fCVwsp$eu_mEJ z5+A^D6bA)paXeuEo`lBLH+l3mx|E^>)DYkMBZ0de*r= zD+P%;GZ$SQp^jW&7P{%CH<@Ne({55H68Vr@mfjMQ*&w&KS35ZSe&z-wrs_=t5DeUH zm39}Y*qtGLV7o)$HNiKDFtYBTG^R`7wgt`)p5+ zJFfD|2QeD_=b0>80z|<8BwEbzrm-CX8#$k}9AZXlQHB-9f|qhlsH3>PEGT{NbyB}1 zipTkPX?r%i_#7MZS|8xPfb50VoX;nkuS@k6GaY7LG2|4b6RIFn5iU}CBlejz_WfQ1 zMu57ltZdLSis3LTn9hrH%KrWiXbVNrheFlGgB6yZ6Rw)yu>~M_zg5bP79c>kV=9Vb zDDKyJ9zI|Ls-z^exl>W1pMknVJC!qhkc^a}_PD}o-m?IB_XlC&sN~3gRxI}ci4l`a z%q_IsRL{txlI7y}+JCAAVeTwz&$Kmu+H5kNrQKvIn~|0M95w(+Fb|bdL7Td~aYhj} ze)eNGs7P!vTJ-i!0nToZc#s1N8+BfjE4#ExM*WH1XOt%|?*XVW#57?ko8ofDIAguZ zVht^`vtG-KVS(P@av+2hJ7o!ncPhhVWxc6R-VRW-8Wc>jUA)(7cbq;BbBBWd>0(V< zL3c)iYLGGNPkjb^2B5INKnaqy(!oczD{jfF1^iwCcIY9tBxV~o3XIL%y%B_YYQ1F% z%e%ISHG<2CDE;eSptQ~u0WUq&@@u>XEoZhKc#0%3FG5v$hxYM0;{an(V;p+?9lF+; zddJJ>s8ttq^Xq{BwXn{Vb$@@)64wGGN(QdiT-|+KlcDiH^`PoOMWx|Yf)RA(`PGwG zVQ1mkM$^B+G&c&~G|q!u!J`Jaf--sh3gM`3oR|gGQ)hT8{Msk5gr~^X7dd=cU+`iA zRGtu{W33YEq)~sqOuVIyThEnYCBt}Bz^)num{=${0b$HTkH{xTCJ@Z5VI{@IEhPda zZHC<`&TOe7P;gyKTj5Yj1WGzJ97*xOP4WIsaam4hg)`GR;p~*!^63uY{B$9%%8SEA zDb8pq&S+hGNR|3pPwZN*K56iYGNmR7p>6c3MxSc*sYah_^ruFDYV@Z@e`@rnMt^Gb zr$&Ej^ruFDYV@Z@e`@rnMt^Gbr$&Ej^ruFDYV@bJG~A`OTexd&uW--W@^D#g|8T$B z0pZHp;o<9RM}S8$5}sUpd-%56JHvO>-W|TH z_K)E|)J_fGQ#(C8t%iQB_P+3+YyTSlOKpt_�Yc!ZS^6tqIRIH3EOmG2~w$q^x#< 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®-;?z?KUAYLlJR~q4Lg{!d&PN}uy2Wc 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

=rDTs@-fJt?VHeICqR0W-E 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

uQt1pI& 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 >E7J`iVAn&S{waO0UYd1uixc`cw3RD#^ zy}`Q2ia{Vry^A*l>pw>0-KwgpD%j_N?W+)}%qp8JKsd3(D!{6gu^2v9Fho9B0Em1Y z(R+}94rm!+R@w*McvU%Mp9Od~oeEu*2~nM`YH3-%wOJc)`h0iet$1eH71NIy5 z3%ZgQFVL0PB^}YzIbw&5jzmv8!a+}`joQ&y{C+$a*S_sRKN~~~q}|!InKq`;QENgB zeJd{N(`h)AnXlG_XidUa(`k(<4;v+IBpvER(n!d~lN`_@ICw}P$__@mnH`bfc5zgO zK#Q@UMeZQF;<>)HcIg8FKsP|8ggp)eX&RfsdTF$2LcFgE3Pqq(Bvnw!Lv$f=GjKXV z9vp?Ub%nQ7C3q?x>j7V|8xhkpJVF=PrngP@J{WZRxQ7K=FD^Srp!*cjlXB|8zgjqJ#l)yl=RXXz4VXNwrs&_*wa%f1Bc6}}&G zX^ba5Y~9QHJlu4LQI!H%>uN(YxZ-Ohzq;1D%W>{QcR~| zb3}jID74>%b2I9#?~JJF_=ZGGYINxu7QHWe!l)GMf@%@^CZwV$txTDoi@?U;1yEh; zK}Ek!fM<|1!C`t-)<;-ke!t`{)j&YiP8X94FE0%5zxzuLU zD~SmGD3qbQLUFVXTkAX*Z?kd~zFyCoF6~CAxVNDYJM?hEmS5;NXIVcCyKW835vkBj z%4PO09A{X}fXO=rVobNof#)ziEh7nly)`sQI}5-^wuLs$mQ%3<^p4_|pm1Q)Mg906jaIrO^H{#Z5oL%~_O?+?K=-tA3e7zZr& z6P_MilZ<2u4<1*H(nZOhBR3Hpg4AJk5_@OZaQzKi`ee}fgH(dyU54q&Mfv+7m#lu= z%5j>3=HV|k7yb!(#}E9&B)}YrmJYK+1tYXV#MRzKzDt+|l*`4LL+^#e1q%vf=)ruq zqSZSB(4LiXi}5venQ?kwbmo*c(IE}X9`IK2XHeXel^n@5k=us{P8`w!Pz0wI1 zkHj1>Jd>TdK3;Y_6?FaGTrCg=f7^wELh()0zH4usQ7x(RCd?l$3}CuaKNz z_a_F9STj-j4YmW_kGDr(HbyFN?UI#2e>CE>C8<}ngFxSL>IhzkDBT(0Zle;}AD&uJ zL|v!>DBj0$h0|z#(pGtNktTizNi4YJWO}CqLJnd&W)zC)Oh16?OCBxs1*ki+U2hWQ z`1*NxE0yEuUf)NiGhG^jT@5jw2hDbWiE`C!dagqV@hv1=?{59|Gf2`rvTs4F<9(>v zY|)=OFxxmmga@9^bTcptrulhPryB%Jh`x#5N`S0i5pvP}OTw&N2PEV3Wsoz}zcvK< z8VaZ2aiONuCcn&!ewm-340u_(Mdp|GqEn_D@I}v%Tg~({SunU~I@q$bTZ+u}p|`d| zBp~SCiIRZfmnwtUXh%mdna;FT#(|9k<5?Xwz@nQw5C;sY@(&7bU9gL-m`2CtY^s^rSzkDCeu*DW(2lEc4qW!2uqNC=~3Bu2ny^ru7CRa zHJvFXECU9bb0z?oH$)5*lmo3kdJZPDh$1jwkk(FT8WH{NDDC|Ez-<%$S{T;?HzC zebmMXUM|5d%{KN^EjNMrlknS)xQpHf)Lt8kV`*YZxl9vrqXJ?bcB(hHgdmvnVK-u) zM4!Ty+oC0@SQSdl$C|_~4iCjbYy+7AJXYBfqa7F_!5Te{x+m$n=fmXAJc&*m0(;e% z66v+WbOF=@=1DYJ7yF)9Y^wfTb?< zY_UWSjl6gk#54pUp&?l9Sd~IcvmUu3jXsO=h5(R*%T=1qv$UEG+&wHzE$C7~>@iA* zI&7GRVcyIosE8rw#kF^owLzRL_56bD;{@ zzW^=n9aspcsQ<|#33EAUAIvfF)Mpe%H|(h6n9?+e?bNH{bP#+3J7LCL6ae+MNAqs0e<5xU?DM>y&q0L|H~A8Jy7WoW^zNUq&-l2S*?tkDNX z^ZP+lH|g>+mT*|d7dr_TgB(H^XIcmZz|=s7s~d$E08rrZGF$X%{0X2HW59rP@fce8 zjxCOr5!16Wo;e)Aur;K&D=5?oY#qd+aO4SS>PT@K>sIdjOw#~ba3}2zjVRc2sOj`x zBBkPVNvMClnl2$*qg;+|GoiSePRBuG8kdJ0A?nm3EC`i^@s#11VT{Kc3$^t4r|;fF z9-R5K1E(*hX17?PMP;W{d4F;EY!iIoZ62$f9U&|dXa_dk5Hss~4mym=2mHacCoe4z z3@A#CVk2Z2hRUZup+|^Wpn^Gmzdm5Bxs@48z)WPf0h_g+q|Nhm=ugD1VrYv%4rbx9 zGMnjXV?-}|oPw|`{RPxh0xGr^)RW>uf=8h{f_P&!h|;8?xCVkDj2kKvQD<6|jF_I7 zZC|!vkI43VbrCEeED!tz?0PN0*H(X-$5GQTr!6XW8E-W@G(W-?O#^KKbkZRj0OkY zA^GAe2tyz*;V9i2ibMOVX?FPmOwH*Bw8!C#1`H7LEtnFhu`mZx`LHKMx3CS8ZhxHZ zHVm0!B|BCvP-{_5L=n@ENvsu_UdHuh9+G~7B#z-W@`F{_JH(WY^@p#`ri-<3J=i&^ zawEAYzQr#-pyV?1vsH+<_?$wfAN21k)J0Vg(ruuXm}NBgI|$B^db^}T(#2`42Su=r zSGpF#fT|yMm{99RSe|Zu4dFQH5SnKCNz(Rtv$de6r_$L&SxbmKSmV*k9#9N;Nn*Kx z^g^4BN9(PA=nZfgfiOb2LRw%{QOaUc5p;f`#HABxasy;UJm z=E6czyP=W>4Z*IEtuew*1+Hfh>S>iXNDYXN!y{sRAiPy6j&w`d0KE!z0!|xHI#1#` zt2lt~7h(&V_DoQ4!pVx;Q>&Nl6$xDP@-2EhGzhzy1YQk$Q#;CDDUP!Fu;mZI0~6Z? zB!*gh{EjwF@H#4$XFjoRCS+78!znk4ukqd)Vm%v%8e%rR4?@S(4RcOUi-ubT0K>&I zpD8Ugt(%?O&`=||=zOM0aZamJ^E0$~7+fIl^d(fKlL8PN_?w<6tO^1G6^*D#cndhH zPGq>Zh+?)BvPtv^6)uP|W(oZ07oGWz}?+Hsb@_MTKTQt3cReqLyJcq z6{8g#W}`Q-`V&C|e?$Yc5TL_Pnikkh$4Tv4PMe(v;I#$;<4(WxzG*?-H$o-!4e%j! zri(+RoE@Jx+M6x)4tl^q|6Ph!x(w@(Q4~^fG&7O?62T;!8kq@G;;%*fjjaXw&;~r5MP0dz=`!kB?kW+ z{#Si~E%mJ2W2HeaccT|rzl``J*`Ce3N0o4Z${pGCdvnwGX44-=VgY!WFoDYus5lxFBk9A@Aj#-R$fMhs&N>C)0*C zpZiafWTJlRwBgX=z&(J-jlrF{(}pJw6iS^D|Ja#%QUKM%xzNtarauB`Wi#SPMQ?!B z(i;s&DvA1Ii@z_5KN~c;E4RtgZ2EIZ$Km6P8E0kl{;Io+a=HRcG@i{|oz49Kx$EI$ z&a@U$CD{Vy8aCZ^{t`1z4*E|sWR{1uHS6SJBV-tc8cSF5|Bt(W0k5m7_J;Ab*H{@@ zNn4s;K+%G&f`UhAaV1%6Crhm_^6EL_`RehCn`ZCb>@`p!b!!n!6ghWVk>4EwHybfvcbBRh1OxzSmK1FIfA4i7?&1dx-! z)ixB2(1A7VJI#1f2Rs9oF5+%u@*#2pFJM&r`z|m@dF|559OCNwOetgAT6Lkxe*jz! z_DI1yHdV;IRv*70umPA8n6*M0r3?fP7bm$xoX7rx9V?zKqRo?Ll2)1iK7tkzrmR zJzvGSg3K2KhKj8!0|2@ZZ%p3FP(f_7!*~Kj#8DC^38$fqk6o&g`&Ijh*y!M{&mk1A zjUGan!i_u2kn{K%&a&^`m8ywzjSx#*P_XSTWxF2+qcesmE3z;~tWGUkgNN+7Oi#(h zqM3HaCY*EWsR2)ZXXJN6e&^-4N)K_0pxToIS%u~8F@K*2q^vv?Ytj*;{6DMzz9o>(y(Zjzf_TL;2d>$ zk??yot|7Zr-p+AW-&Q9p&5w?JtIiZy0;;#0Ye2GbrwQ0^sF9#vGC_a{&wuRnGIut} z!R$iTzZ)*$8Qcxx67Oy;$B{|f#yLq_P1yat^`;*@Zx4csSwEtVv76;N@1%1n9qos; zms`iRoO51JpRvcBOX(N=3Ad`&2J4BC4D1ImobVCgCI=O{79AcBO&@T%0WAW?+_g%{ z2A8&oj_iA#Df(T|EzSkb>zKYIMnJxEDgC(LL&BJfYWtIZkW-*oUy+B{=N%D}J6>-Z z`%l%Fie+D_--gTrV&9E=O1N!`i+CW4{xC6q^QycCbEY$k7^somuc5Yo9 z@?0DckZ$yO4C!K79>35cjxHdmqLGm?=n)pa;$cOjlxU08w-AS*~V8Ij+Om?Q;t4Vx56F(iw;WdWABIpv{UssH=AI8CpUw)wy(WP`J)s?!M0lW6YIuSI7fTve zHn@cQ&?tf80*`bF4(kBZ3f8y~T^pf$X%*HB<|t=Rwx|!e5x3u#i7KD@aaWUv{8sxxsXF_eaPG!HE#zPLGx(9 z1E4Ah*bz?hT^#Zbx-1)Q(yF&;xHi!IrIjz_g)GQfectbE5Z5+ey^sZ;sSR+Rm2+;w z3h{L}gqHF~)_qnU37<9Dm|MUIgOLponLzk?sgkd3pqr#3@-B5@hU09Y+fWq-zbHN` z`7YE%VgMO%(mwyGAqZ(Oa>yEe_x5;A915GhEEm6>b>Lsjfbo2pbLo_$p3d69e#EP+ zdaEh33RF0k0t=ZkY&Ao?p5!E8+3aDf@lZ6;2cx>J^6VBAqcGhI#kHOmgxCTpuHki& zAVsb!4@8vEdYkTgBP|4X4J2VDiP&Lxt?V9{WkNJ#oEx`CmD=PzFwSf539v6NXfCjV z|J@8iAa3wNNZVEXJy*Dg6hjLMll~lS$RdJ(9e)aaW4Ge(Q6~Wb*9^bQHabTf8OtHS zYqQUxEt5`y5}wn>bdK~+5?#nuteCqN*S{rGpm786agNt8Z8B@IV~rkrn;5ik4p8~S zY@ZJ%#oVT<-mZ&vh^BUgvsLI8%%6XUjte8yUM8`2w@A&xX zdJq<(kzu_NA+({vY&F7)UkrW4o$x=~;5irL_CR97g7WTR%qt9W@jt9fhIPVGnZ7Bg zqI3$qeO#0!=mUz|9rk|rh=-!cfntr8 zgtP$W_j2NJAqg+206eT9$U^Z~B+~K&daz;PGZ~>Ag%@=*=W%O0n>8VzGVD04W0X5&<(;$Xiy#5`d_X>Li$2HYQxOns9uzqyX`haY z{8BzY8+}f|Xwf;FU1)T$xBmao+j;CFumIekYQf+`e0|8d7~*AUonh61;eQ-tamMf; z66kM^pg$s?w?>}|IXB?b4FA8Sh@b@6_>Fvi3PtdF48yn2ds_9En1z6n9n8S~$I+PS zZ*~XH+0(Gk7@SMW$#*)s|KI5i=!UAwcW0p+B68{y&)fGUu*G20@=BPvfU&2(5qcHi zJx{+ef>3s;1}>hk8u*{v%jgq>*dqUBh0b|cNzTRijX?f6DhrKptHEq>xOMLby^#k& z+$HRLoN-zuo<+{NnB6>TH^dKDWm-s-GShXT;kXjrIjh(tIAFty$b`d>&!? z#vn`%-e53$aGk;Ietqdnfy)@?WCJAi>{D+R>?AE36OOwPm&tizw+=)jR*CY{wO8PbDa;rK0ObCCGxn64vEgXOPGZKM!f_-s_7}Nh%W}L1w@XaS zIPfA9gI6A98_|yjX7AZA3Yx_S0cgHeK959bzF9thgikXucT3t&kcJv}%ICr8bAL23 z{|NvN*A^yb6rvU$p?)q)TRWci?@SLj< zG#qlvb07y2tDKz_I#za4(a63C=lJ+2>Gtk|BO&+Gw<($6Cw)Ua_@rVkaL(Bb1icRm zF5GX1)j(d3*OMiuLFFK{)p!K@s&)t@R_+IX2BU1eDS8PW7{wLP zd5JtedI=u0N(8X<6UN#(o$VF$l^7^4X4Bp8TteR)K>VS5WQ(}Ia|zu$00tAw|I64> zSfPc|KakR2EtLM=fCp*^HK7i_Y+YsGz6h5C#tD!VZptjORH2MGFGBI&%JkJitno|O zr61zJXIMTJ*?d=ZnwCFaxBxo~XlaPCwt2za`e%KI-rHrGxMf-st~9aj1vF9BW12XC zCII^a+9F|Eb_tIGEDps&oX4jIJb<=ST-odnu$C^^aq*5 z+BR<#V%ok*rkA12DEri$fRH`ONlwM_K4k*7!*tdJU7n4*9`qVsp`H<;JDFusry2bQ#DC%iL ziJq27PcNR{)9EvNTD{ZsghdM)i02VRCxS5~XB}l*N(6`6!n7i3c zPTu8gh2+*r@SW;dDMXywdN~l~6#=`Icbc=YYFIb*o@ocn@1#lVjF-+w=%s8=gWK8r3=6v%{X3; z7wX&q<5MV{ajP-1i2ZQA0l5$bFWhfLBT3f}z{&EFSZFVo-}ni-umX`_s2{7{rJFz@ z={K4u|F^?HkAQoWm9`rja9;_=jLoUIRj&~)@8 zoX@jJWa>k@z-9E}B7>EVLh`bufUbscgh@BT@MU5+3k8HvGe7bhfY$X%BCMy$r7l6%pJS%)`Eq=oa6L6CMINA+xxY zNAIv{0V|SV*&;uD+B!mur=X|A0f9J1zDx}}9 zXOim-aMPF=>*J=0>-3tOzOM;-#$_9P1ONnHzO8(AT*SM$F#csK5gH zoIbo^A#eC@>n7d60=gEqf*@(pxxYHfE2sN}2i;T6sS*~;DI*FWE!3E>mqu1c2cpz7 zXm^=OJs72)O9QLace0k8<;iO8$Oj! z(V3ZgN_dLMfkvOHf(~@x#wF?rS&tyOSnMENaS1)-i%?iT?gAH|VNb5ZT256Bj!2on z3KIz>SsnWkHurr>4>?2I^_0Uz5+ZRlSnDMXZgT zu*)Mank@-%ndcTtQ2%7)SF`4Gy6puzzQ!;H{{blAA*%T&8GX`OK=;`pC)rqujp}-p z*a&toWlqx1tM*j-zSvYWh}Ac%3{ambC>YtC1ABFr)Bz>4^RcOD<8Hr2)sxJkj;d}g zoxX2c`qyJq(N%2p3#BWp{-R2Eu8EPqv~oY(oP3uS;sr5~=S2wYz;qSFaB}~|3homH zHncW+62P^Z^a)i>qX6ej~ znDqOcqW&x*^8v-lVT2N9dULh`-}Y;sjW^T=DX}K7!)KX}T2oB1JpDYD=Tv~LhJ9%- z2kQi77t=3eAy3h>{l;~pYJUNf@7Fs{D%C*0mkw$XRry3MyY={WKG~)gd$?cSvwAwfRX#8V~<390c4Y!9eSQeDK;cen1L1`1Wwd@WfDu=p$8<)9YiS@$?FkrZIbjWg<;;T%59}n= zf``AExRlWu;aZg+7nK(j!doU8k8Vb^XZu$Q@c5e;xz#WAm|u*Z6c`S z-73hEeGa8?ZFpJ8E~UrWr?W$sG9wH(5amET;30+sDq^2tys!j~=5)>13LW1r2X>AF zwJVh_T4;cJy@9DWft~7v_#p=f9&`L4MrL*g^b-($Am?K2j3AKGbsx zVIkrIbEr8D0|%n=*Tm?DkTl>yH=KEOTph~xz%loAIX3V}DSbtL`kWkYpdZR9Ep&=v z8OR{9Rq)8p;P`EIumRzEap*#~?jrWr-Vsz|8_}2h6ZW!afoS{A82#8jMPKUo=tp*j z?#2lgotsVcquE(*13$~j;h?C2Z`-Hno4SE*9)8vawSh9_vzzEYN@u$bJVoEMP1vjL zKhe0mCPq&H7k7ghpe0a+wk8-{b|nU=DIsj|s4ApQ9=$a|=jBu2COA$`CSDCI*-ajm zhqbiTtAT~CI?qx8`}VSDgSA0mXP)6q4g1w~N){(b8fJg@9d$M7YT-BKD`<#*^Dd^Y zEVWDy#lfCPWA4uBZIK;nyr4b1_1P4sd5HSPsdXH}37ITpxeo*Z+f63`Ks9IBR7P7n$pKHA z%f;Zd@Z^BUQ?xx6Mgv%VL=B)a$5YS?JYplH448X2Kv2@_RMe?Q?FsdjWk2$BtvYI| zy6{0q# z#OT}DW|EtCVsvl+B>Q%t=HU242986*!X1ioIwnlcR3Y_PA$3Oi)GtbvKUheeQGU%Y zOO-!RNOhBZC_>ljUzx&(_@Vd$1&6J6b_2Bp_7d3GIe#7YPww$ zrA(`x(y7nU?Ot7Edc}PuQ%9pz)9ryMWm>lfb?S3;YyDTL(N>jAU9M9rbIt;n9&kXb zb54xD*sIo$reXU`v1u!#>c3S_mD7{An`CDJJyA9VT^Ux}Uht{WYxLH`rtVbXt?Le* zT0p~godW8^xrlQ)rc(>$j_Z`loJjqP*Y9stPty_Ep;Mm&k^6KJ#pcag(^YEM9Mq*| zcf9(MQXQ|+sg*hB68cDN0mOX!B!6xTVe^yNW#3&mXe@?cg5WGL3EM^&p* zAH{_UU9nX}1Vb+jY)#MD5k7GColKTtpbG$5cza5b2Rb zy-KHINzv78X8$BE%F*oaHHC_2-+Ej(Xf{EWPMJRY9Xhp8Zo5tqAiUCV_Odpi> zd)1SapEjrtoilw<+jZ)5td>z-eZ%v6Nurk-h4#v#T6hW?8oNZnCUc?CHvRRxB1n*qfNOvZt$aWovt5x^-o9 z`^v7)#+6;&oh@z6T_ti_x|=#nCAXJI?AqGaI7jlzba(s4mQuMbZQV_sZRyszYWK9Y zG`44&O0-+3si1Fd=`K}FH?Xp&dwo!%m5u4{D^{*+=`K0=2)1=wyPMLj%_XWgb#}IQ zK4;zZx)#d{(>>ko%}s4ho$2nT%CWg2^Pw}MpSERnHl+)dTiQ{8klN9jZj5TSx2d0wWi__9Wl+YktnRHHQlQMTHuiKk zZPCf*H(OR$Q@XS93S`7AtF@`STY*_VZ3wPq0l_F$VOh5eN}8u3+bS(%pRmTvtU zn8wda%W6$`b+@!-nzjJDNkNXPGS9LkJ(=#@SX+(KCZ#Ri-Lgplo@ZI8mu_v=1sdCX z+PbF~P?LlF`53g|aYl)*#E(0mEtnT!>)+TAM95Yy9@6+4PA%b}# z?&8pR=4y@k*%NACIz$%~DVnMZ$xsiXp7{0z#y_Q_Py#x^s6_2Bo)v}$70+hZMuPZN ze>2@EXTV{m%OK5yy_V1F{s?cZ6(Z~&j>C>4$w_$P;?G$bBM&LG^fRat8D48|E726B zk4zq}SeK5I7qZ;~ku<#nLWv}upNTYi%THEe;Q$57^KTfI$aA&`b4VWwlaJVtDZ{IQ z=rjEZJcMC~h<@8Y=`5iS<2Tde$Y8NIl&`F_ggz!Ri6jyp>-TEKYele2|4YFZ&qR1j zJ!xQj%#3zyZs6{-Fy6Zd$LT)HjQDGVs@ZQ_X3YDZ((Sqg%LUx1A@qo@76%I1XBVxC zgN5W35GBI52+xJ6+xmDt%;HpAcpolz7w2fui?l=sPMI#F1%vxIV(sBC{vYSuot#9S z<%-u!O`1C2$MA=h$?WC?=N#8~z)ANq1R5|3ZtH1NRn`d>Xd^liOb6`arBz6CeG$AN zo3_CvG2q-$PSSvpz#T8NBU}-0EIS>aCM!C59Qqjn0|>&Y!~%su?M(%Iy#@#joHfQZ3)wE$~!jGiM|nh?Sk=i zE&Gm5C;G4=cTworbg~aia2JKOD0>o4XXr|FDFMW^hnGgo=w=1(1P60{%*AJJ3C}iLO3?9j0Vhd-`Dx zu*24d00&|QqWiFnILGTCDG!_%(KoP}0Ez5t4xN`E>VS<`9$$i29+4$aZh<2C!n)H1?B5ciUI}*IiDhiEo8c zn@~sASxlcF^cWjsZwlhJ!10YN4 z?nbGt*=RW&D>o?kPP7lPu#_eZozd^aVT`Wb=0Q(`6$-blA?0W?+<=<|b^^97ZZoJO zog6Cz)Gp-ANzA{$mg!@-hL1wan&g1~s#?x(n>3X=veDK#P+=f@cp79<2^HwO@{>k2 zWc#^VHU;KS;#dz!=rysTfP^=br5A_P?9qyR5ML|X1?|*A&8BE(5&Tfk^d@SHHG=39 z|6^?+4#7Z{=^g=L`XIlCK?=hC6#Y~R&}h*Z+sqhO%{ODbN$cTK2!Ts6L~F%bgk6x( zBlMisS~w^&lTcDn)dY`n4Gkthy`i9k$0S2@cW=4KQ|RkkJhUUhO={iI-Ex(J72<=J zH}HOHGup`1X$F>43Kp`%IB^Cpz)EIZ!*OwU1oe>xLVXDpG?VwEH~1n$g_*Bq-`yh* zbo6+6XwxtWqBXC>a)4rq?F&wFobhfG`q2gCA-o}`!O2?o#}Nf!y|FGHtug@KEwXHQ zeG{k~*%NiNElW#72?XauJ=>WLYOz#AK`9BMwe9h$-Jn($D|Ac%%D(C;_C-rfAyao2 ze|+lCBAjw(mPIY>yTns8;E7ihAL78RQuJ0Y9Q%SN*@s@R!Gr?dx5R+^YXLXMX$(^y zlY}`>Sq5eln>}(v1*JGT(7Z8V3k?s;9%otzvIR(S=zvo?(dSKLd=Tk~#6!-pX_&?w zqLY0I$98EKO*n+|j!nBL?~toL7+HubgUoRU-`B{i68O%7{_H|FryQauX7}dU^fL`J}Jp!6Df8G@X=AT7>*PzzC$ebx!(vogy51G}K#qW*+ZXA84K&II+!nfvL8 z(EdiK{HLPNW3i00q>%ed`TT5@I}sammeA*;&!aJfQoLmVp7S=-;aDCU5V7(+_Ng0- zC+`q_e>O@SoBl-dfW$+6PJzl**iiddOxD2%CW3>cp3#q3QI{J+4SRI`7#8mx{` z!n;7R1BYl|pQj=>sH?H_a?XVX>*x4?#Ax2+nX74vLdpV9{Ly#@^ z91J^;iwdY4j68+pH3Z`I;w)zRpn`$^2n6HNk;P1T41@maOgW3`gS`nya#g0z`-79= zAnq)tYhOrproW)|p+V0nZU6)e-Cg}c+CUT2TKJ=rspSwb?9ufLokT-8DMPqghVU0> zdi}pRqO1j(bQaUD=W2r%Woi+7-y!-#AI5-?6gK?GZA1RUn>jw zPa^1-gguh*gp+ZI_VkWm-TciFs>F2P><%59o>U9%=fDA7GVa)P94YjZUJukoks>vLr z7^;WWA-xD!;2g%^Do?&JRUoB~Q+qt7eh*$)iV+$zW<3D&_TG`1)ZDS@!)3Ci{v9I) zxphFu@4))7|C#Q0PEj9BeCi#d8+%J^dR_fyRoy;|e(9WoIhjL91DERH_`!7@lfZNg zsA2k)`g$1C0K0A&`>6@Tj56Ik8(2-<9h(k=IM6M<3HT>Or2ZyF#eTDG8pZgu8s0Cr z!Jr2*gJmjiEDJe@xAXL!*E-kW{%8NM;C^WKa2y*<9VRBC7*7fAcWT@}U5xv`Y%78L zd(_yT1smu9_dClX+&{YwxW8JCeuwB3KADD9g_G**YS`zM!u_+`W-XKg?zaQYG_`FS z?!Svfrms!M{SQ@lU!IQpZ_mK}=y?YBlQ0P9T@B!TUFAD?nEm=hJ+B1;_hAG&0uFm1 z%YIFCTJJsIG%#F_XnqUvMpc#Y-R`jPV6=9G>9h=O1j_@qnidHkDaNLB8ZJ4oo1q0^ zv?BJs+BA9#8Xac;=-O#qdRj$DN^wf_=*gN${j~j`Oyz^9EXMna!=~?9V{p`!?JNJD z7UII?&*1H0U4l2^$8fpyl<6VeXH7A9Gp1W{gJzmQf^2Gfi9CEV65uTLnO-%9@OboX z3wI-*>764WAQJlN$}GY|YPZhS7Z^}~JrmS2#2Q8Ag#7!mP+hvGUqaM9y<$umvQQ=Z zGf=!{3g#|0(xmHN=~~My_FZVYp3+@IL_`_-)|PRmuatwTr2zIY)4i~%{6=|(>zKZ^ z1xH4bzEO??{Z1CoT|ADVck}j@rs4fA9C_FurjMb4N2N_PiT{V0K7!OgsAjL#&Hh1} zg%k9Um>)){TC>VD`zWnDfL*U>C$EgCGr8?+vUv0$7g=cJ%;c^Ln+d~;V z6ieI2FXtR}dXac|^di&GU)`nRKW(o#0SbI_GdPdE5@#<}%c(ue&52@p*)n2Fg&TM+ zj$Vi8zcgWwT2d;q=NsFM-zL;C*& z`Uh(g&>yXkJ~-&fJuG0Lf&M5Go}?rTZX9Blem56F1RalSbmS_=#8rXlF@=$L(Z>WM zk3I)RTp)zHvw-!pn}v12MFwoeFWqn_C$WB3DFN>Gz^tFoRfx!V9m6kBJ(U*jB|~LgWac=Nm?4x2G~F|VivPVuqolC*CKd=Vsc2uNk0!=gMF+OF^NQ~ zrwoFWTxR6jtLoJdm9xTmN*j8X1J&lAUx;e6rF~^fdrx;uYYF9DODQd8OZ&?8r4)MI zEgMUz7u!pfHHyQI_SRAzcWv!zOwWLb~?zR~l%xK8YD+Sswa zrB&+3lrB=5Ewd~nCwtmjL?MaqjQL{ATAxX7jI@>N6Gg9-%4}KNpw;Y3X40LTTiOa* z#B$5hh%c43K9j_3B|CfCqA{ta*LQ7gYt%IWxJqsBXll!}bk0ieXzx-$LvyO8S%5>$ zA^_HPi3YZi66LoyZfNfitf2w*Wf~|XwRE5YTh`{zmhPra`eQmk&{%5qt_v-!D2{47fHkYW~-YG3t zSk^ZDPPc7c-_zEJY86Hoi?2${=!EB)j3Nc>d`qcuQMOEJT}KT`aBPI?f|n!2JTXT2 zFVSRPuowg)D0>064;?T707~$q#0FAI8noj#(qJ~ zCKi)zS(tJBj9J#^bn6EEB(?DIQ(H$!VURQVQAF{uCyFQ@HkP4y=A)S6m8l-hZjON- zZES66lb#D-#RVb|c}86ab>$E-rS&G(plhVy%hkIZG!ow!Oo5zMOed%66Gas{#Rdiy z`5z#ss_B{JRHe=)rz+i0q>93TUjXey=^3=Mkfdm5MKSHH5c*g|%=P30U6qoDUruxY z&YPQZVq%IZC(ZzVK!Lx-S(FonG=ZFNh-jrImF=CGrp_ig9_AN_;{wZS+$coe%#3;X^qk@?z*WlF*b%Jj-E(3&&F!KIiJ$SBeTzxom?*=_pq_ zORMQ?72rMhJGLmOeWv+vZly&~Sv-UL)Odr)#Gq_(Q;-(G=L*hnu@HD8TY-Lhmn4t)_^9U-??#abQw8w~xs(@p;w?S7$!VU-Ej^%ETV8|JC=htx! z2AZ^&QRgHli>{^z-(b4dv2VnDgua6NJbfRbJHIlBP^0uiD??uzOmHK;5+g^9UffxC zYohOE8axTC#y<2xd?)*K<`lJn8^@(S zkqB$zT8M~xi2p+wu@6FzN7=s(L4@d@!AbhQ6#_uUJqhyj9Mi%nl)~#;F3>%gWom)f z;EJ%C)_62O6Q`GDsKJXfT?IJ;W(=Un9R$uYz6-U2ey9hC#ZybTBX@dqVaSNX50!%0 zxA;e?ElcO-aUJ+q&(=bW;};vO{v@VW8elq%OARbU@PUO946}b!aF$a^Ioxjg5!(n? zJ%pgx#Xhuw-Nq7S%_XMoKkK%k=Zr={f3QMlDIMy^(6Bte8Vm7mg+qTG@SH08Ic~H7 z09UmOF_Rd(#9$D+&l*U6P*K7<`k2*DY8qyZRA)8Hhlrw}EaAiR(Va648yaHnak0hNxSdCjFoevImD<5=9vrp$T{qISzex z0Hz%icq8#rxLUdt8)KjCRn#(RYZsX{Z#6)VL-p*un!eRPSqJSE(>HA6Kzbl5=a7!# z2EV`UgP!BSX=tZ#lU9XoU8>u2 zj<;#RR#H52wWp<1bd~rY8&7-eb`UJ+htGtS39Lt;O#p=k1(TIqhv!k0tG&$bbGq6i zcuR(9nzOxg5&YTj9-MSmGHm3WixcY#-hmr3TPTQA5f*9 zQKdehN-;en;KcGY2ykH6pw^oh|IGH?*Al0WcN;`~LDR?rqT4yS+kFIVFq<;sus zrcQk2_OBN80|T3tsYw3XoOXi&|h*L-R#G zwiEF$KsQ+Oj4 zEjkw=)D;@LM>V#b?v=*wQH@Ou{+zM88bJ9$S{q6aAp3 zzOxbuScb(x24ohYFT-=o)SCc~pXe8~%vs$5FVZVf2&6gq_`qg@ws|G1OV9E&ActavkUzD7NpctOKO>s%P@(;b|@obFqBA0R(zPfIfxzEA_kshD*}k z3aUH>Z1u?0Rf4?`B11iiU~O7-h4y=&<*6DOUGGu|j9y{C0D%z%7Nz7tO0;0j_O2-@ zO3}iNQpLNQI!h$$3Um3f7-AxNyZnX*r5c~Te<}{SJ%bx zr`Mm;&!l|z)mf5e`iYbmdw%G<@xf-j0&V&>Y@Ua4oD2K9mXo-44VtHhQdgLwKP`^f z)=@}*+*%q0LF96{y^!%N+NO8m{GfjdncnF!T_Ag&HhMvz7&n@q!Gq3<;>`yM8_Y@& zE1%w)keEb1Lr+fbQ~-lc(2Kj-w`-mZxB(xyFws?@G&nzC$w~9`2(XvCT{Jc1gptN_ z-<4)C`y*CGNfU7pk8?S@;cdk9S4n-ZL(n$SK^sjl{IFb&;f8u~i! z#zKkcJ64|Q9_YirXU%TxD}!k5KdeG?t)@A3FWkjDg&V=)f%CD?!;wyX9?pePSPp|^ zx-xI>B2bM0CYsP<(Ev<0AFK~>L#6UC*unn&yn}PM*K*EG>+&|!PR6!+F`mCE8$^OjVAH) zu{^6bZ;fRnsHn`z9rWM;9tQes%wWCaD$@*J$j|XE-b3GqrJ|a|ub?H&p&dGv(B+DY z0%jEp4eE3s>G#Sl2^U|K|ek9a8j#;rM=sN=mPGa!U`q|rQy8fm{TtIuJYdRjw z#OZdy#m{2G7#vY=wYxB5rm)~hgVi6$Bbtx|Y%@y7(Js^Yf1`1F95%sBAGI^G`Sd}D zzcesT!_w6Wyb2Bnn*p;%Qr)JVzezhsRXaBq+QD)}I~Zs0q}H__2F8&}TSn+)KPEM2 zhnzdYFky}MVyefqo=5yd9D}Q_Unkp7+e%lcoaYI%s;^< zQ#QJI;@EiG4M#l0BS-XI6!m?$8^rQEc|UD3Gn3k);daPFyq+AVol1HLE?>BJ-vZ%G zH9}qYi;D+2W9-(l?;TOGmO!P&!KD%y0q=n~0>QDkutw_AvI{OSixJ8Y6_|b}%bY$ZW2Xr#U&qQodpB^u3**PQ zX)9j#TFi9AV3q^n#Q@SHVu(Nk#?pUzujzA0Q&2Q0Vg@JURML~c3XGRfeNX?0Q>mZ% z$J%h1emvkgl@K~%CnDj#0S|Y$0gx_*zSA-Y$R}(x^=7%2-tEzOp_uu2wLuNw2G0k3 z5&Xvb*~30qyag({p1frR$EF6kYlzE=ORGIPpnO%(Lx%^%SBBK?(P<%^R!*abv6BJQ z#}zS~!)ZnAxq4t%&-M!3)m^mUGo|6QQaJ`ONbfiwqAR^1^cXgj3oHo$I_fnYG= zs#mlQF)&OH{#OSsQs~|?;El$#r-)yTCmZ}Bynvd7?Klpd0Z-)KGKuI!RTu6XHf3bP zkVr%zU5RQ~V+f{Q+Lo~ z0YK1|4cTfs9hXj~Z^9B#Ng$Qs=vtqQkvBm#yCJ_@Cuo} z7j%5Up!6ij97qIwPFxb|3yPwm|3D5Juy#7hPIo#v45t&hdVxpLPABO2kjNM#ZM*-X>b)cVLHs;vw7$c-Kwpw z_DgS;lZM1~qTUhM9O{*EaF^-- zhtj`tUq*fWKg=P00Q|uzE5mhS&>U9Rv84HoR6x3mX*;CSK>ah;1aedKv?W#Pgq6px zqAZ}Hr$wmMYjA1pG5sHr{&O;RUoZa1kk4L5gOk`)*j)-RFj$D$2UQOQ+7JUE3|J=& zpk$YIxwm>CG4S`o0=s&XM}Mur^rq>ao-Ey430p$QUbcYw zt`~t|<#Ul;_FcI~bEpl+Xx6hJryh5hMOHr(YsXgn`fY(5o z1iYfEg~DP;dO&xv?+IJr(ib;*^q_|6a8H(Qsf2!qy1am#5cJFkM29s*x8Q-wUXSKw zsB0vkd7Uslh|FD_I zllsLJG?P>IbXDGiazavZ z=JikF+Q+`)rLktW!SA);ey;cH!RrhVzm8g3ryLXB2lw*|p6-55tlZBlc!vA=zUxgx zkqQAo1E^scNOhe$`ElD`rxYAK%l%wKweJSqm`%S0Z-*9k4{;8YJYQX)ts8X_hu&YN zNIT>K*pKKF4^(qa6!G= zAaIA`&%|pH4A37MXD|av)-El*#--)>$2Bzb=?w~)G}Af{4+pOkR+4ve@*ysA+@@t= zU6IdrLxN%x^r8?KTK3)D@tQCj2fO*o5U^lZ%dG}Z+6bX|-ZMdPTTQq&?!~Jq7VZSF zSghG08psZDjt0DlG3fZDf$cD+7?%c2E}a|V53sY7lXn*b$MlLBKIQKc_+AzQjfmh# za41hF>ehl>>Dz|T9-wWOL;2ctqOK-h(-trS z!1_Yyny9XAY+y*2EV7lc3$`+jWo=5g_DCN^Mv!b-8`B-ht|kmB*|oW)OC*O;a?v*o zo&X>W88@dpI+PT%%(7Y{s92fESfAEQ%b~@x?45Z`PfFyHIvN`A0%tzGJapz!%8NVm z={(rH&!fvc`co`qx_UsA#oGtP;v7{^*%@4Vb|P+xTLmr!ybAsSEy)E`xc(iFx+Z!J zy51$m-6#gj2KkYLMl@0}cYH>JN=(^Dt;F4>wHK2|8D1%ysH)2|2M&kD==PsYZgFnp=c=?2Tl!3dOK;gAUOcd-9# zP%G>YJbP*px%&2qxk-KAR77}W>}L=#h7~}LtLtzq$7E9iKwz(q{Y1T2@2=z9IWE@_ zcQ{YoCT79jn@x+$1r%7^AY^YH&g?3*Q_FsEx3GkaEv^oh{WZ{-a6>)y6xzDQw1wdJ z5W>Onc@&Dl7p#v5&qXgAgEAhc*@7^jt32f=C8krSO^IYvLE*Dc6xM3pdQb~-3;XUU zZAd^bNJs(}l6WqXrp3Jn!>bP?aG$<1m#LYpZNI}P+tai$i-i@?=4`~KEdQbzvkp_= zC^jNE>+VFD6nJOtK?rqtQ}2ct23Y_~tG;o<(LBsxlmU*>SH}U+UMmZs&`1rF7i7dDZ&#_HB4SLyhkquGQ^Rr;)de-fr6dhH9H)nLA_*@Q$GJ zP#E3@_NT{__eWt;28kZJ6H79sSGHGB`6)yP4zM(!*^P9@45hKpc)Shv5(J$wI>D}{ zD=Yq*MWypH{68fq~47%Q%Q#N+)0v<>GD9LqHd#2I46% zu_ds$z&2#j{S_uc%bL4P_fepFr8#%8GDL&Ski@F3B`RUft4qGp^O{AGy4$q&RVDgZ z$B0FOxkmW_RxGvbb4Y#Jh*>@!RbnB0C~K&mJDunSwY)Z}c5F=d#X|NlHlca<(?DWQ zdiMaw1v#4DX?aK0mrYa4LGN&Te}UvK;GIJ4G~;jmyJ-p3PVo2tO;V>(xBaVTz>3uE znL+7BHIc$|8A9nG&BtQYln%>6QMxEY(IRNY4W%n?L{T~v2Bp&%!(;atFchULfT0N; zD&XvZ5d#`lg496}QlY{ibOIzPfnR4f5|OU{hG|<-I*R3s2%X3-v@ojha>mi;AarL@ z`Kbi;do=+=A}@9^n#PUuY!c_vm5_}T)3}GG6F3(yaNvGZ2C-&D;X1x$;GRL@Qg!M| zrzjlHqHsJ1h2xnNju|9QQ#h`3Yo<{+%>(T{VBq+_LE)@#o9>0eA%>1Wo4g5IQ%v7f zLPX%S`O5O|n8p-=+sz132AYM1Ec6XWUNL4kb-r2lz3w&)>Z(4O>^{NY3t%M&$iL1|ZxZ{+L zfhsqewz;F6qT1XsQs;0Uf~iASDd^feOWhFHZ!DGCrCb0?G*f_C6?wjEAi#m)Nh#wJ zjWF>m!Nm%U<6g|NHsa>i*1oZ`X=7TvAduFh1D1*pgbHa&)8m+K zi+U;1WV*E_-DM10nzl4GCR-Nx0iscn;KJ7!ty8{4`gr$pVv98NbVoas_tdt#2$ z*bS_9wKTUiiNieq=H=Mub=_;!g!brx4`|EArmpVJp2i4!Q4uwPGwP{COxruQ zc6B#x)Y&R2g=m2u9XbG52$$Q+wd-pgo8@zM|?#zL-^Yq&3$Rj|=IjDOYl zbz2pbM|qq{ct4{C_72w%KrrW2(0}2zbEMpeYYXJI55rIcDc46Sk3=bm*_CuE5VA{x zbgC`~M$BpW1JmUp2wl;o8#p%Iw@r6Q)8*(AJw`XpGRP-db&t6vy2lf(P~QNlOLUJJsP!rUDWn(qm&z>ls~B6m_D>5!?UOG_?_x`WLiov3XSb;-RYLLrp}eEEnTH}jOQ_3or5tc z&Be5~mkPrU($rOw^XTYokNAad3EzED&4sHjjE+5=ahuXY0_9vcan>F`**`hcC*sK;2Ys;#zN8f!8I)ay? zk5%bZ&_~5~2ZlN}BaF3ELDx$XT&y1Lhh7zzIyYAx?cde!F^&Ax!ks>c>Z0IJP=0?D7NfP%O>y*n23gl=Ss0)MqVRu7WW6kctI@!vV0l5PS{T*t z`kz8njaW>&keaY>jYesY7t#(yX}@$#xr0&K zgN28ok40$@>9q3&8-M$|u+h?eMbEkm8{0QR%huhtvbp_&macSn_f}jhS6%qpRn|X@ z$`bELsHTfp=$2V`g6HHM!F$f0o#uAb!t|tmq7D_uCgFG-qKmNRM!_37HvKDhgR(2F zwy|{1d?8L0jqMvdI-9z>RyJ>IDHR@KPG^dyw#N2MOI!2GbuDe_&aEYmBXH>@l1-26 zThra83Y2uyD1A0vk?y);Wn*Wf_u3L2t?OCe(q8f`YVK*3!7I-PzdQ zwy8wSJ>Ps*)JxP%_r#QBXBk@y;25GBMU#KX~Trz!_2QkOc z(Q1&3i4+P}VdAX-nJukNh2e;(q9{@o&bp?Vk*Z)g0{VbeuOvFsRi#yU=tzQ3DH-Ct zqU3^*1A-N`76IA<%Q77OX_nQ}-JVAB!fAq&Dn;-P>JzjQy!*@ZI5(*if&E~zo^)$@ zjFar{#y@)?G?BP?5Sx5?&{%I&9bAMJj#K!D!rdPd@q146y@+)Vz3)Hv7v|P51HgSE z$vJW|kk@Fbz}}yke)C|IA=LrsDHs!6KZu{cL^+@dyixJlK`%gr7&>ObOq*^Q%rYIu zTRE50t%H-a%~(ks`?+cOOAy}Z>x%nebaP%aZVG%@d$-tUo`Oag`crFz@67H z<@>XaO;3p7jlBY|QSV3a{9JXUrrdtNY3-9}4OSWFf{h7a0wz}_*z-Zh?Bg}`!AZG2 zTNU=|2TaYIQB%Ye;j>Z02MgI>L`?qOuZ^d)G>c zw@Z-OIoT{jf1BGgP3w9}-MK-!N;HY&xm6jaT@))(+vKln>1t{$B}_0SG-Rbt8=Q$H zu<%^{{ZAd@a~;#2JrY*11PBnHG;Jw0R84P6)aiJhpmhdGn$$xCQ%aE~l86%RzmS7j z9U`)_nx6X%2gL@&&!<7s<9)tjus57Ny=KT5(_DHeYy;3~Fbkqs#8CtX2;gDyvM>`gBjLbZ`bn*-=n?R${)Dwip_+9`nNHBFnm}r@dPy_H@fy zub@hI>rH~Lmq3l$U5M4Vc*ggOFfJ23@5L$?6<=goO5nsq*sIU0S^QRQ93;Xi=Wdc=t@uIuzmmwQFsd`5n>Oot(oV@ z-k0U1ShT^j-&Z17ZMK@yk*jmUS^M@`C&3`QLwK+!2`6H$2C{w;jfWlu(8KJHId5iq ze?Nk*PuZdKX8LlUAozP$2&6wNY41n$GJ4j|J8xEH*?t{O*}yXxaf$1Or<{D}%`^m# zlwF##AxKAd%6T(hP?`Oj&JQSzqx(OBF?4DEgkuAUwa%Nt2qIii7vibYhiJ@sGd(lo z<(~$?h?!n)-pBYJ3Nn3l`cp_4#}DuVKlPcAcL#oDF!24fC$!bkCM zox!tn3Z>+BRmZt%=X|DL3m&0FDJN2Xh⪚1pD?sBlgpPC+@U4wm%<}8QG?11W1H2@Ob?+ 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

l=*;3Q-Qu);B34rBOr_YG{2e`9mTY}ocV#v@; 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⁡(OZEKyV9o=zho?psqt0Ikgg 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�oRn$W`3>FBLu7paH$13_6 zD!D7hDrypEGU~3ein=+W?NOcCqAa`A=$QXYvaZ)^U9W|%UZ<_=wb1ourzqDbN;M0F za@9t;`oGs;n0Yy20zQ_cU1r2Lw^HK{ht}f`2Nc;4MfBT2cQ~NQSqhbnOOqv|T6ri- zf8DOe@!T8f^q%sN`=POlGOBg7)7 z+6;E4(LVZXvNP`yEAC+{u1ochSaAd8ns_*TPzSdZ-voQe{<5qAZrQZWTRt&cqBA6V1Gu=SRFm2`8nA7Lk_;5 z?GRhP)8(PuU^pCzRYq{v-67Vtw;Q>(36guY+rv|j!>n#CQZSruPTBNS8hy`cs!qWz znb9!{QN%Ob|>QQJL~_h2&?8g ze3m>?91DgM^e&f6^LU6Xx}HA{^{W#NV*;|cMwUuEEfWY=zXH=xBe#N#otA&ScG@AJ zPz%p^q!uN5 z;6eH5Ci==EsIx#UZnMu%Nfxs~i`l?pRv*JX)}X3Vq7CY*rZoD>7QBHU>M6^Yn4X|5 zti@f&ddO-*O-6mPaPq>j=%VOzCf;&vE6aICG{x(yC@zfKS~RI-ZFXyIcC$7IkHvsf z5sVV;W`096TGZRk>iwKy{GuuFp^m*wd&zMg%J!8-V9Or$=5J|4R>mwvS-!H!82XWE ztm8do)g!a2l=dlHBzf`i(7%fIDSStw4g}S+aUobK{i5EiN~g`o!zOZ1J?NzB8*~^( z@HBAGK_~48lE1f5C#Wi*j%%-I&U5I^7ZSWz1xYtsD7s557y`nzik0OBxrKw<2 z(O%JYCqTG8(TJj14UCn=Z7*iJHFF)hHK}~Pa7`*Y≪!_{O6sQB5k|V_lC7+<;rd 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�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

4heVtJ`>g4&szo4Q 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�YaM!pXY>F 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

uLNzXnbUI?fLVB4$}=i z>iDkpaNCDik|+v|w$pgHnjbP$;uVctF(O_e-fJ~7UeUx9dGU&cT;YpX)Wx`_*i{qa zn)NQpVXo6`UvNOS7rZmq}L z03+hH7jbnMouL@MzyGr#H~nao-Gz;oZbUi3VePp7!_$yRc=@I{G}UTU zYd0;ON!GnA7N4gdj%S-~7)jDMJ*2A}=j_HKdu8@-$GH2MPXCb+-Vv#9}Eba*#G_po;p<>&Nz zw!pppo-K_~{X*|1^w)rQ6Rf(1cN693toLkbf>|$k zH+52e&Ia!$gv{ICO;B*7XVXFqFwd4Ij4#iYIt-It-c2}DrDwdx*FuCvo_AB2@^gIN zO>p2?&!(n;rH7+ve?jJz#QZZo7*gSrVo&br9VQw}y&DZRYKC;xXql~Rmf0Ta3wJcV$;&wbv$E|pR+0rE#CEnEtNFQv49$3 ztk7ar_WC++(hjw=OGOe$*NiTGAx)!ZnVlL8-jIgCwA4tKh`P7ENzAS;6P9dD(;SX+ zP;d5bjv1QXW?Im3r#D3(-j>U$B5k|bQm-2(hdw>)l{BjREIkxrJ@PyWW@-`5(jdi` zroCG=)OOWEbdB{U(Yv)s%k<8eh2&N2O=GrO=&Mri)>t@X_OTfio&+`Rec>pgA~Bsz z^(GE2RwE2HElqo0m&z`g?cE;j(9JLtGv##%XFuZ8;9FM5O$j3)4_pU9rv%5Da({ z%w{iNm#(cnhAC?>U9;Y%x6C#17T7)*x+)!A%rKGp)}(32+qJR1>)os^wzM833GZgz zQrlGn;$QG2sO<`Cmac|crdz5EnhoBBMu%qUQ4Lx0?KBh-o^W;3P(v+^YDY-zhHEzt zi`t5Ih=|+lN&aiKTQ$TKx6_m0cvX*bPwq<7Y#3?~exT>P^2qU+;e?~|(h&5(7+;#k zKDDEz4g_Pp2|85EjC2SMi_?(kQPpT^>QY0Y7O`}}>OT!_7oRm$q-ixzevn&wzg z?NNi!cA6(eor-vzou&<&bon`r-mO|Vz@vJBceCEL7&){xO{<})R?BqC&*{iSFaxhn zOG6L=e6M$7UqD1yf0|}Y@yHdP&Gl-BdYWp$X#;5pI@O4Z_q1J?rah$gsba-Bn1;d# zioCrlUArFWP&H0UYtoQdfesB;tV`1#Q7yI0$&2f~sWiMTUJqJ2kX}ebqeV5nrC#mh zJiQ?ekrC8dj@LWY&KNxRb{Z|9?v*c!PVx6OSr+1^t;lC?Q zqk-9t-AvDWWs7J8Ef$K3IPrP6_o+q~$H`dF_6Bva8kL<~oQ9&kr9Nf^#hRrw z4UG}hopnuxH;vZQ(yZz&bup|Hr>3Jp(wyeq*ahJlSI(7RdHZ$+M@BIGw@;s!v>YO^~b55x3EyP!JM^*Vpm*X(cQHQ`mYjtt;B}+S z{9(ys+{NzFa+LUtv(YEHecZKHorS?WaX2dYyt9(WsPd>jE5o&3e(qgz7KSNoUd>sk zWnMhntU3$TS6qQ|tUW7vDkiTR!;?LwQ;X3q>%x;u+-e@a<7{NiB97pfGIV+?Tpw_)H&`-d>dmk% zHY~$+ZeKwOlqa2qj2HA12YC6ZxNTUT>pi!4dES#6o($z(!;)@r``nYVbF6wWD_L5o0GQ7cZH?_`b6Jxz6uAlYa>?q^>(M`lc>37!t?)u#|&K<-XS<`R@ zT|DwV_#YcG@pUvkFHfYqtOD>avV%PnkbhNyh3ZBh5>EkfD>WfS!&* zVRV{I&+w1t*TM0geNVVscAKL5|IgiI{~x^>P_FU%E8m=os{vIz+LDQ_l1=^g|8fB& z8Lx-C_t91raj~nuiLPI%x7bIHuyO(WWSse{rmcF~^Y z@yI=|HR`-QcgTE?zhZECKMQ6@M!JzU zt-E4Po7O}9XfAY^7yf;?Wf-AFrS9VFDNG-0q!kg3=xNu<`m%>sjP#b0@rJ_^&}j<2 z>1f;2L7n`;0PS+%dXeT@M+XCVCNhp=UsDYPe9vV52vE(X|`CZJeEXZCp6!;T|6uPlPK%C2WM-&ofIh?u@jgHP_gmzeZ`Sv^(7D z;3icDJ?_%tY_48pwB*KwFU+7VAZ#veXvMYeQg0y{{|Z%%W;|CHk@0mK9>H$Ftih_x z>Vo`1xWAK(M+}RjlZPHPW^an8PC@}>)o#vT=k7{`eiJJPEGX%=XxZdKmwfewRU(j3Txv(8&ZQdOJA2SRp^^}qE(tnX-D83=&F6D2_8Oxhw)Exr@ zSC$T%;V%!sHlrbAamXiKGXpqWl#yMa-f$bcB6xV&aGAZ)qr0$L?}w2_+LY$5vgAzl zX-W0rBvo)1Ft|KG#-puR6G}7;9;hT^e-!gHMPun2?Y+fA#@pd|g5|2;e9mM6&6RK! zM^yt?Mz+sg=DE74h>V{V=6iD;gh7nxi4`b9?N>{)m0?{-dAJP1$M*iFWCKb#Ruse4 zMT&J+XpC2^b>U%19x`5R4x@R7W(Hds?@*dT1~<(J{0x3~bQnMSrxfS8gC)$c$<9!L zV`^R1{gmn+;_m$UkLuqOFS8CCaur)~f?D`|E#p z$O^u@AUGAD4PjgKRhfJ|AzJ!|Y;;DRKm{4^M;K`pQ@nl|{{00+GaH~@Tk8)7aBk+? z_%MDBdS(Q5)!3p+I#i1$J!=)4D zSk@^>)h(c_lNYUp9&GV-KYPdE#-~VLX~Fl_gCAdG!6YVadP(JIcacYxRj4$IFj*WN zC@&l3DJJ8~$p1JsN(+`NBq14it;b_(&mNYfBty-ua5YFLFFA2$B$R`-jwxrIKmH%+ zEDDsD{Trx7nq>-U>`1sh$da@1lZ? z*UsSw5;U|B)vD@h2>nWRK&a;-o`P~8KD9eY3#wOwP*p=rU7PogBd3;);0Xm8pS9rj zi2gB@p~yF_I~gb985F8oTB)}pNIWI#G>LwQ$74!}okv(6ULHy`(keU!*cPJdm+IYd zLd3QTBR$d(cg6qZXQ8~^vvNC*SG5v*xh?}=S79tp@bf^ zucw3Ngc5r44GDLI5_<8a2zMHMPWwdUbsbE4shg9syiirr!KCAeRpPUmNU7{#(qFRl zy3q-BQHFzNM^pM_`XLezWaG1N-49ZHbTabp4km5Na#Fg7evf>#gGrxeVG)Q=znWAt4g z${8CXwC$H%!oDbw%K*CP*;)J-OxEU+AQ4bz`=%A;NX8X}h&!1K)EYH*~xdv1M62 zeRZJ|rzbZ>q@8P0Y7UM=xhv#`j!h9*c6|qld_%{kh#u#fl-Hea=-3p||6G%vMZ`m| zM~phxq%cDdZQ@H6YMFFa$w z(>}qZ-@%iXVA7C_oYc8nf=LftZV^P>d#t|*y-b{YZ3T@K7`kTNH z_vZEvxfcTSMBpSaKwv>{@!_2iNKrh!|DRm)ggbcbH|FYVcp9whcnpSAC6Io`$!9=X zts(7VNTHVs|IfpjXNKSHE3^$L0bx97bG%ijv$#t>1;YZz^BZ)&L5d${T(Eh8C7Haae zl5gdC38{Y7ZfT`4IL)N1`{>bdr7{0b@oF1!s_vC7Kh18_py?Cg~ z)zOPM+D}JSJsY5-eR!N2sH2zgFf~Y`7w2#d9;~C?IeI16(Q!|7F{y1|Jw}atu8T=m zBdUfd8uw}!lkP)8z*8}`G)M-g)c19UE}I(1&#Kl(9#m9aGj#*%@Q;0Y47+hx7n8F7 z+GGeDj}h!%r11zgVSg8sYA#0=qnp0&Vp8%IPOiwRo!oEy+{L8DNYh{Lp~Xh*UrcJa z!by&rdC^eY^p>dtfQ!s^lB4miXuei0fD|Hfq~0A(>CI*0>{XV~J{7_ezH|~2T>YUALwT)8cmTpNln0mu(;9@d03?|9Q-3jS<^VA* z=UxR(nZ|cg1x4R>388l}B;Zb}PX{>Fom7_()T7%;;iHd3IQcqfwEe1qPU1VM8or}xLImj9T|CghitzFv(Io-5ttR}7oxmtmBFHFTCS1?GAyMr)6_#X~(KxXOJ zcV(%rCRcYg7hTL<%_Y(yT-1mAmP>W?5{_Ob(cbE5?yox9gZq}tvr2+Qx$zk$tsbO% zkKA?{CN&HSO>lF&W?+7cHMv}Fb*fkBk6z)t!Q3khyg0+8{`eglYG&U$#s>-%7TGuvtwoj7^)KiUQ zoprP~*S0P?dNB`9f6>uC{M!6{9aVQHrf2aD{IoE7#swzj4bk;)Vf5S!Oqx4H&x966 zKXd`=->re}WGsw+N+LZFQPt5)4@a-Rz@)=Ncxm8~=+`eWDR-z8X_Ywh5lrVxHmA^I zLs22{lwT*L#pt##iDyOeSN+dQ z3O6WP1*30zQw6j?N*7Rf^%R>VPVRm&mxxnGRqx=^QB?%V67A803#he@s=0-!qiW`n zBIUI|s$G^zSy$=u+8@<5%cMfY`L@gbQ5R>KRCkpwzx`2zv#jz{M9RJu<+nddm*3}6 zW3x<(7{=vyB&smWq=|^!f-5K+S>Wbjc+{j%59(E;@JvLV;YoAq0;Mz`xiD$|!eY)7l8>2@y;@SdoPsJ>XG`JiaU(Ifg0$n1 zYOs4GL~Wc5EvSv%MoMj*2L5Ij{pqhn>PuoZ_|QpdYkiL|R|{f23ITq6{Xiy_Por z7h%ku(#t`YTrK7z;y;^KJOlrG=l>@p6D$bT;h+rd?Vyz!3LDO2bGO-Qry8CGpTWb+SJw-LRz9pd3Fhd5>2{zw39MMB%0*Ik8z16y*%1UvED?J3Pn^< zLWtyrKnH!xeQ& z3;DAb^sTY(5(l*(=OjlilDu@>z{Bo*q*NiLh`uwPKbSzr#$hr_akx0Texa)4Z^1#h zEV|Y8a51WXpNo~^z7oPK?|=xlQP~+ zG->V)PRiU3-p(Hv=6Arx95e}Lrj9$Y9W23#g4gA#6EtblQJRJF7xP(kco`- zl5wBTIC#8dtR5dG<0s>_z1zjXJ0yg?J0S$X`b>b&!W6%o%YLXYIMOQjs>_w*RQcZ# z!A<0j2sDwWCpgI}@jLi6+({&E^Q3{t`~7rz7X~anSpdxU3v?NcGZo7WWgx1w0kBoyCd4kr4MMx55+Q zz2h^qW~sYuj41b#J|?h#xEBt+|91=Z~^NP{mHqp2o0HfO_V z+6cKAD!LW}2YNWochbhc8e-9@3QW_nCrFSyuS6vOh98ie>V@Q@mL}y3^E+UE zsHI8QTBI5wtQj-9e$?=vTAEbzcrI7~nDYZOl=r_66*;Xb!;dc`A7&kj97AlquQN_JNLZ};zZ)^}TY`=(5u(!1` zsa8_(#WEJLYqSzkFCj$u@%3|xJJQOe++_;HN{EEYhGojCw&+DDE+)yOyyc4LO7P?) znN%eS{qYe#bZ0q3m6Bc(vJ&`!C*^%5HCIB5D)MVZ+z=!{euE@f@=GMAUqVX)%by{s zGbOaB;-#b&3V$9DDXS#~R#V*QB$ND-f={xllm=T$=RlH47wb~#GfY{VDX1@zOX>Vnl1X#4sHEXaR9gulYL6?AlOKPZ5=1qE=;)ym>k6550(IZeu0tpMM{PC!b&Jta2BX;Mv|5>YQ9oQAjN z%D`&jFJK8MraD^+qdKio-7r;9ExbmFTqjiN_|F222aKUr%BaQos{v2)1+fl;Z^i(dBTI9jbfKW@)!kom4xs>M`&TH zPOY_3&tWQ%j~}b@7D|Y`++(p_RibM=_(KzhfgX=vohZ}eaP4>{#^CYzh+$;SAUeY5 zDpICl!>f)>o~B3NBkBP@eOh<=%D~87Hx1wR?Ll92%rRXaVE!}`+XvRzx11(zl*vGY zgs|Z&JeeMFnlx^@lVXoJP1-C}&4ofeoie?K7(1SO&#djOhy!DTK!)Z_16zO+ffH7=du&3_;k~j0>79 zgd1iE!cXu62!BI9AUrMk&Pa%S7Q)m@jj*9P!T})Zv0;s>dHngcR;^4b0+Fk7ZgbK) zkV3Vg%ss`UHrw+V0;?|6-=vH+mbNCMd?TyePn3@{K)+XFRz{SMV!!JaT_ZS3=|!bf zgtLLpzd0$L*UL)4HxyCal|f~gWZi{m(KNdG&dVM2IwI~#-a_)@ar@W5g{eErRZ>sS zNC;%bsN8I6^_pl-nSzwqG?z(zCMX*QN(g>#(l+zUr+G%Wr+5ZW^%e9BsK;e(di6w= zUAbU6zTh345hPk}+;)Y7QfE2|bLR>qVA?-mrjs0XYk1=> z3bXQ1Bqcqopkn0Cc=Avrt(obhjMaxC={@j-;BlGYBi31J;?>%N4h%#Yi+4jPKsURGHIazTOuKR7G~)Jb;xEG7q+&hw$NTypIBCX z!dCT}rLFozR$5b^kH$A*8X{1&ZikN8(=L-v3xqQg0t#=HPfs@KDP}_nl4y&P5Nri( zDw=ZM^QtN58>E_YTVd-cq1C*&@pX~Zt`b^QRayJc}C_nwO*QD1k=(tB)F{HoiXl*I)t3HRTQ3QV=UG7>wRch79*$OW^VO`G=3!9Tb2+ujb2Zv?3x#co zgqCmEb2XB>LPCqGbaj#BJ`zILBdC6(l1(}SklcNb7jnLYVB^)&*{w{9orA`Q9(0C~ zXG&##l#T=&TUsTSKBFydTcjM5DxqZyTiQ!f`$%X}m9%=1 z_L7#iO89CewD?)tMoHZ)p+!}GYm{UvR*+!AChfPIEfZ+1Dy(fnR?)D_3yad7k5NIs(Js9qaQ>7_mB zY0kOy4m7Dl<1?vlZ8QPFN_;`P^@L2?dWVxbpEn_sI^5}`&Rr*D(%pADDXzzaOrmva zT|F2#WqHm#DODY}F*9!WN7 z<6K>~AF5J`ee-BCZ5B-1C4}yep?mMqWZKVCtx1J->Q|rtR}T*rmZmyOBgA|f#dDWW zqi`kvo|9siqc4=~GbDr%-uSmI*`$H%~K9g#s zOmHBMhf9aBCrJp$3_=%56nD}1Ov-&h72+hkCMh1DNySizmnlmnM~#HY`3vTBc$sqd zJb9V&>^%0Z)T&{XFe(6{mDhkPb2F2N?6(uw?QJwnMrk2AxP={Ed`8JGQDw^d?tCH7;r#B81i?N zB4!Ln?*jhVcalxY6SQL_1m-WG`cSe-33r3fGSez;`+0S3Zho2F?ENup_Wl@@boSj& z!Xm={nBazZy5?@}g#9sb<2xX*4RpP$#(rTXkv zexa=Vf~}-`l$Bq^;M{!Yd$g5bSXO??Rt~-g?=#n1R(`|$-g_{L!pa$CN=21~09g!E zVC8(Uv6VGqh-NBdd^TYm4qZ z9rV6s(AE~1!l=%oL^Aj#gsvSxgwEnefDL(eG;aYL<1Wq~&L7RSv?blFEH=2s)WjND zL0l|S6T9sS2eqBACt)?Q(7Wi~(8&muLVPr$CYCFcqaL31(m!JFdnTT~zt>6W7&mAW zXTJ14C#By!&5fH*c5uqd`<#@x#IFEslrUX!>|&0g_hVic2+*$Bf4m$|^X^BR2wBxN zQ*CViO#iR+i=GqkUAf_9(Hi{pM|UL1V(-~;d(uYJ(G zxXMc$^deG<$e0%gzy0=rlM+vg&yQ6oIq6=yI}UXrZGn^0XGmo60vvUN(~5#LKMrr- z-dlizjfHpWM8*yYVaZ)hE%BE5OZiiZ6&B*uN~KYi_TmI1YYfri1a$nvA9PaIwL13n zgSu~6oWPYfJxGrx;8u%+58~00-cG9QCrUrI>clw#aTL@y?w>E5`Q zW$DCCoY;B^+)m_ZM3%`^&q&rS!5)&0I9jM=?_t>^9>ywF8SQ2?b5xAcywCJk9>!zW z%WQyFvzOJJ0Pi#_aX%+M{|M{mIm2+NcX<+`%$G!yS{okrD0*isFq8_}FCp00Xtvd0 z<0(nq%c_074N|x9nbg3fD@P<#{w76w52Tw%BvYHEGM`JDswz;5gs5>p=*dUnQki_L zT?)`~c_}7Ui>S2_H7&)YJz%;u#iSmOIVtY06qD+NqIf4X&Lib?N-9rEKIXZc4`OzJgF*)vc= z$X^fnzonSe?Qth%M4KiRJnp2}B-5lm!e(c`9k8=alkNn2Z_}h#mHd9DNy8<>I0-HJ z#imIO$WU&Ybomn^KTp`~>~}&w#JZng*yzVfgwHP_#BKoW?jJ|e9Pq`#dyV4RJs`nj zuRI|>Pklv|u;rW+$fSxaPiXHW7m6&S#z|acb894fm9SVv_H+$ngG*_Ka%qZ$!1f_T z!KLrkh^0|NwR2gXjCzu#!GRrxud9TXG&u0GC!NF&eE3Nbn<{K}cFTdAl~_2ikMQM6 z2(cdlBpmn|__+E7gcv}X?55&w7o$9#bHjGH7 zS}CuSz`l1xGTpS?Nu56%kxZ+W%WS-l3=MrHM9aPeRS&cA6UzZP_7>BmQla}LgiBcL z{iaEMSD+ID+e{(Pk+2EdonYffi3U3`JWABBkVlF3PdSMnB?|Eaj}p(}2OcF(;|Crk z`v1eJHqPd4Rztn@_%Qz;0L&_?Hmj=6Afe);e~60Im7-!Yen7=~{D6wz@dGM`tP&NC z%~dQ|1r?!UR5v-7R_X#Q^;o5r|2KQ-ol&KChD-0jDph(acIj$edS_JW#XdAFnd+qQ zw@V0LM#T_iY#f$Mb5_IUVA~<&T@p57JH%`l9_od>M?#AY1>NmwNCVqGAs>*i3ESOZ z3z=Smv-pJ`U(j3NF2yXYH1$b^~1?~D8x6};+R?Nj>d#U@gu%T#kpqAk;15!5QdrXCMxhf&%l0E zU`<{Uj_pHcgPZDvyhB1u8oYVl8b|}%E+OxcunC)&*_L2L5b`kzEw)p3SmQeVYvhc-B{dwI=sm|@Y2969%Soc#vbOPd@hvzgC3i5&S`_^sqt zPWlc>lvwk31#+K+=|OtSff?zfT9&wjBYSF*zaII6wAX<-d5^VB-^Y;^Yn|js+REZT zWAPE|Fvmnnu!tHQc%YfS4mpbGAjh6t#|@p!u}13i3JFm_oltpD+(*F3Y^#L4MnbTq zX}0TLK&?Qx+(%65D!Yf{dYRJ^G=7p2F_EnMDYKsggW%vP^@8AbKnXy$oId>~$ zemx@Ds>layGOvNvu_Ke|h{dMK4dK|XtHa|m5Y}&1!yHS1r5ox5Rr+g!>S6oEH1KmVUQQrU6GqOQVFC23Vu2`*pMgR+m%POx*{si@NUHMcw`Q0d?Qv2b?hM4RONi zH$+|Dt*TLvldy@p7H?YWszu!x_y^W`-V}9v@dM>J^ew5quiyvNW$h4kPwdcMs%tLC zxl`nn;|Jutiywe}!Q0}cyYK^E`toha!3sp9$ngOWRviYtBdZQMuc@hsT6JLN{MVGP zEasV-xuz-ez>&#RFU*%ha>>YKdf^=?y?JCZ(KaRLGLROGOs2o=!hWrh$uxVHlX&lc z{x+rkG-htt`+sjvmbO?ot-0M~0myuTt$aF$S0I!M1un8@SWNTx{bW zCuJ7}++`l#6JV%RNy;lPFGbSdQXE8CZtQz9cAD7v6!{^)T&_1S?dPC$L}t(@Ebv7{ zD(FiSiz>!PPD(Egdg%ufH?nR}Q95ld?&qL{y-qbx!#wWMR-t(v=53F*!kmB{{x@(_ z*%aDsVqTcDSLE$xd879_$x#cA(jdLhLhJUzKRguY$=qg)gcuFpjh97}BjAgD*)(Z} zke5gZw%zeWnID-ZQAUGlQqDdnWgIh2dTbwR2@Zd(xI_84Rzl>$EzNxFqmJ3|2BYnr zimj`JVEYOf@CM_s#iq$Q&Dhjy5Wl3(kPt$?iO1HUQ>IBZlDb|(P``zWgw`fyf9#}; z~TU&uMKEWp=|~itXFlwDN3hmX~5ZtxZ}wSApLlAte6*$#=Cj=^03Vu(e5F z%zXq|7x+IBc(*C)p)L_J1NfY%l%DZ12FjaCMxkdv~jb*EFf= zji!-(YaoY=My?(7ml^au*U8v*&}O|waTgY165QV#tgs}c-mk!_HdEc&$inADs$1{9 z)IlG9VmmEZ-5R?B9sAV*((2ZEPsP)K{g}+69tMN7vNaBc-h!mmH+i{^en~WfucqcDXsxw&fnEDX zLt4y6r7!(_e*wL0Jm1ej*B^9JIu8sL^osFy>jbJsijOuK=$UsQ!erWPl(tTwwM ztbIU94~mxbvhsk3UNz8n_c`PwM?HM*bC-Fjjy2wR2yTtrgkEE(GIJ9VWxj`mj89sd zv=$t(t3QgQfg*gNgm52U|M>bxk#zEqlREGID3b0z42f1{;Vmgmzi)wywk$tXKd2BJ zTpC{(yfftsV?<8}ZG)t6f8PkaCLvton|1T3oR;XiCyILO62n_^3o&Pp64U@%Pa_T|#sszT&IrF!&`ls?$9gvFH{LEcM3%$e}ag5L7ROj;<(OC*F_ke8p? z=dvO^Kvj#_9$M@^;Xfc@GqHUaE8}t{gjnQdu}?#6bGHYk`aBhuQ}Q2H`Bj~JOF8E) zcFwzBXy?2Yu_G~o)Yhm*0XQV&iFcH5hHA*U;_!hIHiNuEl2=Ix$jHl(2Y%V4$*A{u zqdWy3?=(-qLYuVIj{0bf+Gl?>2J^h)FV#l-qcP}pUq?(yQLj(wXbk#{XO7~on1X41 z%RL!KV=#77b`U=?Ii>6(AAaL)Fr|CxE6#Q3sFNJk@9=)l?_%)UuiaNz>1jmL`Q9QQ z&1vD;6i<0yIVruYg3iR?_2XRda2=@@Z!eS(rej|M#pdA^l%(#G5L7?*2;fE4$**L2 zf4fjM7kb=V@SufN{Wf32ef)Ak)9Z!bl7^QHmx7O9ZFGG^xw4mpV5@}Ea?_*uP-?x=sDd!{s-jf*W=IHWvm!~o7xPP^CPD~aOppSslV=K>&dY$8Lq{yNF{xU} zH4=ht4pdyw#-xRksEJTVQ?#MQ6KmtC*Ee_y z@?gDrLkk>;nDUJr0l~bGUgGbVEJGR(qd0LP1XR;cKq%v(b+C_KVl}Q~PT80-7|&9) zjZ?3(Qb$4AHr6!@iIN?>Ecta-xv?3EpTAyjfyb}LW+c9}VM{FLqFuk$y8HDXO0TuR z^Vv;EQ%aEdIw#H!B{H5JEoM9)PpiJQJ%-tDaKK~OTy;Z(BX<{X;h=X~;AVt(zeNMA zLztdt73sE8>zKO!4IWA}vD7g?6@C3O8_i+j4H9{@Y*l_QIU)cW73=_m8J6}gr&bC;|py}dfQ^tIB0Sg8(TlH;i8G#m<`hU2)VC>kaiW=AZ?k&RwLw95`t}WO1P8iMLZA0ZuDL#<;iJm{cXCjv#&B z#-#fp{8$^4-o%enZA|(KKcd>2A)ko3T9`-u( zc07&Vw;D-!dfgd^p6<%i*nCv!r-N~rRs9{&qEb2(hv$SEdGJ?vdV81x+ zRHtC$e|8d|G0pl}UJLXU{#*%>4`=FFVcySpHo!A@o+z|V!B&8zj=NO}?G1owJ`&nc)p#xR)7@f`OYv z>c^_?mf#)-?n1{rqpTVyA-qx!ub>M}_#NedUPY6~+t{W-2%iJY6S32g!o`~}e1#H1 zET~+yvso-U@HIlNl@M&Rwf1Yk#`3F0{v1pGddaX+LSzJ$&OOhmn z#`&-a8aw|X8VCO&iZr{!#%?L{vZ6oL%8DC2fpV)l=Dwf`P&Mn%9o*4=?m)Gi|A(%K zpYt9DawL7is}FM$F^%<;iyZk#@zNcf@+!G7fviTFkCt&-1Gs2EPY9QDN|pgGK96=< zVAHb-L@W_`aEDCnkya*kmDFw$f?5n}9BxI)+pp@Pms4<+Nu8uj;S}6al6ye$lyM3! z8L5(#a-?t_s(nuBUN0fER9e(VNj)hcsJAl}H#H1=UgaGkA*lB;6}5AQq|THO)Fl>m zqoi(@5Y#6?RX1V?&iOHm>ML6x7y6T1Ngx4K5?yY0_<$tS4Hc$|_k&!jvK*WOZU$%{uT>k8fnTZ*-}*z+*|S-=sAl z+sc+~{>qjxf4ik^rPAi8`IL{^uVOh~A@vd}56o-Db$MPZ)a8dQVe{16Wp&6|%IPkY z6UB^ZXIe69Ue&-dO52(AQ>=?Jg6&Ki8>dmNZN;5U=b7zHni1zBM@~aDb-AM*E^=Jh z&ZO7lTqK=EgQ{igpoY8BD3KnkLn7J$D#a{oXIjerTPzUU+L`o4oQpEvZfDZKcnxBU zfOx;1NyYIla?}9Ceg^S%JCoMMYY+_rVk^`zh&`fwpM(Ih4b9&H#ly^@R_OQIJ6z;QI*4T+cPV|r)N33rOb3zZr(av4CeA}r?CEwU zEfnMTNC;gGs9uTfO?rme@Tx$Q57^ia!3yqtst+pH|B42VLF|mM(N<*xq=q^lhomM+ zXi?QwExjbUuY@4~3|-vU6iRA|grFV)m66m7l17bWjj+{92=)+?jgq=qLW}yR(i!au zS|!r(nzBl@fL%%40(K>#1-$QY@nJ_5yCl&?=|Oj(*b}7plHmB;6J@ZYL&{|%pppl> z97)OJ6daZJOUg*3G_NkBJ?b5k2Gg+34(gx+b&x?lm8d`+OhQ}wYfFJpBjP7PJh#+( zNhv@|IE9r#Plct)zum6!Yo+mP));K5G=80gsY6aH(U^Kz89fE^<65^jDNj<$Vu|8# z5WVWKda3<29{Kq=R{rZsO{s(^Yf$;%T4gIt3mJT^h$@Bf=HM$l!BPB*NP|v&Q%O~2 zcuIjk#o(8=Qs7S|;RR7JNx;+R3jB1)=K&~3QYrx+<66z<>H$!VWsIs`cxE71ESQGB zp)}`72m&PV@bhXC>}fWm80`rTC@=GudS+O#lipH76#UzrTm^4;q6#)7DfqWLpEDC^ zfzw5f)FV8jnBznj@sSgqRi}0)`Hv`zW&;A(!5T@KgOo5Z2A7t*gO+mIVF&Sm0`UNY zNOUO>4>*mt;%TePMUDmq;z0)SlS_lh`9gtM0F`m*Yw{)KL8OEMf$wB%)k!<;5NZ^J z8itUatRU1laqhSw8Qu05?1yCxp-qa0&?pL@ghGap`lSN33@KqC4EOjf)v0gWA-t#{ zyvPtnrno4}NA#kT=aHt=q&$)S5~Oo2sgjh9NC~5lPa$hXx$oE&?p6wSv%-r_W%F() zP9c9~y2w%gCENS~+nm~3+njn-S@=FQvdwvt@&Qu9V35PYT6_L3JBmhyqLEQt*IJ=y zbmG0gjog~aoNwAl4ie+LcffVR!P zuK!AT{|^|>BWBXO%Dxl{LCB0FbqiJra`KbDCZ{%M!;}6!9b9T{VHKupC_38HcrnTuEsMFwio(qiC7dQG}lq;in}8c1!rPESzF+ zsG18y zF)Z{K@-Nj_?{FDdNFAjf#4ZGtzg<;(_EC;_I)L*n}l8YTEZt&@YWY^@XK%k zv6Rb331LhEwomeeGv^!CV7kQ1bN4=BJ0Kz0{VWXkDIb;8V-i|aHT6vr92ytMouG>| z4-x8c2|;ZMDkJd=lC~PjLSb7XA=pDmY9w`qgcj9SSyAUJMog^;j&KJHN-WRk?@?Y; zHUFO}M%MHacaZ3xDQLa*M=oi%`sI6g77@r+ES5TBOz88)SR$67|)EL$5*I^I*p}q zuN~7L3ez8qsroN2o>2V3m`7$B`sR<7LG==X`Ua?6`*M$~GTjv~TMp`uH+c%dlO%noc;2#d9X-k0D;lMSpIY)L{+k+2EdF|dW|5w3q#jZs&k zyw8+yRhgExk@dc1ZP2&1>gJ*>?BbziZBWOjAYS11>-e&6x^gXRgSLVOO0{j!K0oee z?+2lGgxi0eH(0{ERDy3iBVE%hB8#ViT?DeMKSmOm3qGDqq zC`V-Wk`T`SJpsd^^^A+Jglg3_2kj8Ed(iRZ#RV`Z3 z76!UbyGwxX<~gus^Ukd@Wjaxj~*KwgV&R`Ly` zG36G{hQoHetK0HiWHqDPnd73Yf^uIFSFY0Pwip_hc6X8Lj8-$&(}>IZ5Upms7xvIb zDlya*AF;sO?MGXMKfsfEBAQSb>(~>^dSJ27kF*)|YFli|e*;OeczM$8kb>JsLRfq; zEG}$i(j`4zYT~WAdfB+zW0ppIw|%Z850TIk@>DC6w)8|ljwgxQ6RN%TV1Hv&OcH0c zl@J+wLi^eqGig9CR2dvs$rW;*gkZahg@CG4$2Ft!nU`B2q)V`*bWtcOrI-6@PurA%4r;i_^&bm{;Z}XFlvPUzW3GiU ze@0p6cL&^)N<9`p|CcJS0(wdTJ;gvHduwQ?+G0%)6WyQMV$d4i+eMB>6u+1LXp2s% zyfRZ7zx^3>H=ypt;-0IS01N2D6z|2u5plzK_I(@LR} zO6EeOaFrSOg|cLbgb;ccs4O8z_-{i>bHAwD>9s3z8kHdBlA3nh-fG&RH`vhIMOjlx zV&g8>4ytL#4&r9?Z*QP?;1)SlMF8XHkOjgqPRQF(ENL*8#RN`mm6TY1!Nz9B3<})rs zn+Kk1Az66VG6}gFgkS+9!zBdUubOS9#a1We?Gl15 zI#Eu*zF@I63i+gjV9U^KUt4TBCzR4&5`xXtY@M!z33%KbBIMx`T5Ju&l4;zPF5>$_ z@5c`ux_=Wt&J0VY-|z#6_j?U-5g)prG6XW0;4&?dl_#Mk6St!*0~^2KsFMnCo<{Ws zlYpvGNUcEvk~7ePn@f8RbrB<(j2}SqBz^$NKK#J(|5jJIl!p8>p_xCI@ZhVsJ4F%i z5^(hr0wk+LP53+b*gqYAP;N|>5Nr$>sA{ef|LnyN_^0JC7cr_q_yJTi@dKz{7zY19 zwU*VTxlE}38f@%@>NBdzTj~;ri@JgM0d;@F4>(~Ren8z<_yKjPBV>m{j%ev6pfSWs58oQR{n1aUKd?P_l*#EZ{P>uoxu;l>p9Y;E)|)KAAtAd zNP*Y(q;haa3AGl6w{IliaY4)!dXVAVLG=yHGq#;bf52#y)AF%Xe{D8Wo(b5odes9(gt{lyd zMQzOeQ5C>I31J_9V06I;K@ZUL&E!hFhEVF&mU_7V>rp z!FG|B)@lsA1Znj`-Y22O25Ezt4bu9`z%WokuwAC5{T*zfVWrGH#eto}aE2dv*!H zJrV-wjQ|RJ+Fz&bAwd)+A=untgFV-PEsQ-qdsvn6N|oNi^|4Hf3#3kEtL>Zy&7uuI5ZpUK^}EUzf9K< z>wdO7|G0vBoT0uoPC-51{y8&&en%`wbey5~zg|Nff=(0c06*iBs2fge5>alW5L!y?vj^8~FyQHdW| z@_$!@??Z{CKEGHyK^9z&iXn{>qO|4ni&#l%uw}G0x`JtHTY!eu_?sQxBMROl4DZVc zYF*EH{6_+TTM(koEh7>6ycCiryi?tDo3M1ZSBOWit zYmaC);-4Kb*L0M?2y~{oF$&8+VFar6g(YId4)I>SgfPNZt?MP@?mrp9!>w4M(bqMx z;zMP{hipYriL&BDw&Ix*ZH1z$QcrE6P<{kuarm@pzCEQ$?Npi>gr&AR*6zell=@Ft z{kNk26IS2DtJN#2QeP{|_Op7deKp!r_`T>cF|biWcuVa8Y66bu1qz`BDkshk?lT4M zGX@v*D&Ks@;GVF+DXIdO6RUjF0B}u|DLt&xQbO@|WuGf$pR=-GMcL=9EO)Z@grX{C zeo=M=%GeXNwiNcncrhnm!n1gSUtabL1l*N*!GHy;D!~r#D+TW>hIjj9<%_QvUW+Lj zo}%LQ{ns7v%3$ae7xAiQqagbxQP!n%9KbFPQm8C8qJ;_LKMFiXWe(r$Bx)%|}`?Ft|_1jXh zqgF8fsO_NmKiQEZNvHl~$3SnuQxLSUH#D(fc1NBX&hCgu%=|LgQ0XU{-4Qe1hB9r1 zqEmVi&FP4Fa;%Tv)85e$urEghu)lF1V#Hlp%~g@sHHtW$&TW2h2n8W@i)Il@i?Oxe6vQO=;WY;7~*Gz8qP59W_SQ! zh0aM(#duyzqR!8@GU=I{UFtC0p_`=-?jz>sN{F_kKHkkftP%;GnxZdr``r~4-eTXx zB6mfwA{ej?$aUHcIoy%2gFMW|*f!wePjnt;Z(W8MzJN)GJ7OHX32_|M5c-_~7sX!M z-lQsV&1MOKu&^bmBOBF{XeYkkl8BFNtPbGekcHF<-x&!Z!~?!-+naP0s&D|LUZ{31 zOIkt&q=o8H*G#@zC?gx60o7(VSmxs%jMi*@Ykc|XstR3dtx@v{xAL`r_QiNAt8l4r zI*pU8`4U1v8ic8c`1@lY zS=hEkp(rq}zs|oBgD!Qm4@vGQ2_a(uZal>oFK!9Ch%YBv8-$BuTBVqlx+=+FEagu# z?Fni(yd9-B7FzAn@@Ic6S?PQ^$#&Sg6zp9L`zK4*E_HEC`V^{yOVdp;T!ywx=Ajpw6PC7K$f7ozd`o*vU&6pN48 z)d_|i5d#b_00TZ^H+Gtf_=_=(2{BB$Mqf9!U9#&h=CP1_Yb%Wrg(xCv^^RVgM-stliX7pW4~3#e#^%8o}tbWe9NX>KSP82HaeK=AUXUj z5md_WqjACL%o)<|&IsNp(E!}XfgA1aiGK&KzkCEsV{2$*$M~bd_#q2I8SMuJuAaIak$54!Sc7Y!@E~~1@B(|3f{Gq z+G+Rl)pD%=ff(G^TB-G)7QG~5puZ(8JhiLkBwOkz2Tlyc>@WV>cpxFMSn{`P0O|;fc}_L+RyHXh%Hut?c?6){(umgBia2 z8@BRLVhsEBpDep#ri&bTNb=Krtl^=VD$fU;=jE9&CKeYlcWI{(50nr_4~Ztq_{cQr z{J*=1?_yqqAGnJ-=T>yLxI}K1WLP61G7dz>Y}2IC%!ccXj|w@dz0w1=(O|7UNTbf^H|MVN+22xc#s0e)hYfPWmh*5K~ca3kN)GQa*ToUR@I zj>;G6+T)*9E%}*iNy03(W9jF3bbe!J={oZ>m%Qo>qa?dSLZGSwDs+Yovrx2u9>GG_ zr;aJN03@Ab2QoW>tLy9pRM*Vg6_D8p01~`i1DUNpl#@PnD$V5^Vcx#orC_ZRIJFW2 z);tZ%m>nM00JS^BJE;`7G@hC!xb9K7?qOWRW-DCxFs?ogO7`Ir0?GXv z$v0<3Vr{n5>T4yxDyIbs#sY?M(HyOKfl?fDd9c#&spwxR(@rfTC)Mui)rq`Yesv-m z{5VV2>ckHl5-{!b6a>BHz6yFeG4Vt^Ju=5d>E%U56`mkHomlln0{w`TfG0@LaE_uo zT;!-mdk5E0dNvWG@Tof`8$FwdR~`?}#X0bnF_bRy>A6HaM|PRVqxCw@G#io05~-hu zQ*5nbD7}Q%Gr7lI=xu6{G?`xGq{(-=$dQ|b{-@GU+Y<4ldID@%9o^dAq{bvQD!+)2 z2YlGxq`%(nqKw1sOQpR?!GgQOwt@whm7RMJDh}_P{QO+y!lM$RSXt(w zWRv=VkJaUgtZk45b%pncy4UX!bydP*srv#fP&a74rEbP~O5IEeq3(6agt`*uvzi&- zAUM<)^aP6B1sXjuSXwGJu96T4Z`4neuYwCtlrx2D=dzwC8}0*Yem-3z zd`BgWC8F_K+Ijc8)YI-}q1w4DY5nhqG>Sw!yfoW$bGE+Hbc82ZQeH^4;)2@F+7*~W z8%CC&$XGSdL9_06QP#~8*?7N;vIAro7!FS}#SGD$j3nqBm%I!bD37UsnLdt8F6n)(f zwz0Mq)>H}MZT#m2R88zCMASC5t2K-znC@!DN$E`hJi!1yw*bf;LA>snUXnBbEh4FF6C;kW5t){#BXakPt)@v? z*gy8Ig-}KlVQU%JhzHa;u(hp%8{)}tiIxjo;&AOtuFXGu&&z`kxYX4yFX9L8b1@dk z+q5c|>hD6=x#WorVGyDU(^x3t1LoGTY-_ij;_zQp0G zm|8n<+zm5%fs6P$n0xU9cfjn^z#9elRy1Wk1d}Uj2TBOw>I#@Jz-2C>p;l)$@%3>R z>cFo6$Ury07DzcT&F>6SlbhAPj*>T3Lg#LDG=um=0uNioD zIrl;BoY#ymmh01w3x#!wglKa3-^4mg3!0V|Uaxa3<=N=s2q@`iDOt?-)l=N28#5`- zW}IyT)-@z}q;>6)7TXXKPlR4SNc3JLbQD@T-iyTaDLhm@ilv1#hJ-=RCYCeTlCvpN zE$vy3EpS_xYU`}I7lg{veyR4;54x!7rP}{QO2E_fQtcBeF?6YR>xI~@@~5$nTkfDh zpgdq{tPN>ap1}Br4`N)pP{uz*CM;|+{{2}pw*BC)?g7CWK}#lev#biqzU>MJRcYCX zEdP(PdBkSymdKiLqWKzfEgF%p{*&lw-U@Hf5|)}32JgLt9OPIezCh%{Md5r=;;tyM z<`_z>7FTsPv7;cigvdYzxeH=>dcaYl1UI?Sa zq>!$mzF_y>oMzX6t%ArJZPOa;-HX#=tTgVu!PcTll2Q@dBu#Y0HA(E*gLB6>Nfa#! zO%m~{4T>CADmzC6BsNVI2`#Nu%%Vy?GbFuL^YrdL6yhX{&=0R@S)tQP!`zOOTvieq z8z&`ONuehXz)i8zN4Wi*Vp=J>=)u?8O651OoYp3k#>bjDv8_FEYC(__+gXWCuVjGa z_7*KK7~qtUu2G(XX#>3h>fX~~t2LuNzCxWEsyY43gC#mORC$U@-NhJ}uJaZKO9)+c zsKRL42zSL4!VA>%EGQt24tfiwRF1luNvTapgUTj(3WZV^YH7$d)K};YaF(i2JqMv* zVWFglFe6TdDyC-=m;3-0xho%#@;cIJs z{5*>o)RW#JIlqY+cRZ^cOW$dFYbF;}o%$o_AT`-1_?1-(Th z!hfd`V^|YUszzj=w8TZ3cQxQ$N*D{#*|`HA%ebVzb|Z%vS#ETwGz12wKaBG`q4>=Y>nF}3u#?i= z+;zPa!W@hcdaUbqrp%`#>&z z)J2J>`zT+IxkQEO1yl~=OJFBQt>T}Gq))&W*621jie?`=pLvJ{tz zsf3wGn6gyinF&1iaRxrjT;E1jsG(dzun?EpR;7%G!2B%GlgsQm4nTy$m~h8-(W?R)>`Q4oV$Tc(3ok$3$I9Po*YR zLa39yzWWscLknnp{$7IERJRp%*J;S(&d6c}o48i_G9*isn7F-XT3Vp1c)1e7 z9kSsR68s|JAuVB#mT=y3k+4E?u92{rgj$jCfR-?JxnP*DCG`2LGCWtpkc2Rf!=yyM z1g#yGdWFib9Cx{qv9YkM3FKjtl-Cm|HbS}1F0IQ0i_Vp zdl5!zHr`~F_24;Tgv5ICvqEGR&k5+gh!w|78n!}Rob?{h$rd8UGsyQM)*UnHofR0w zOUnzU@FQDI89yF7WYSA3UDSEyA(M{d$Mc6w8o5f#sS!EXX*pY0 ziJaKgB4;dqK+gQtBIkAdfSf*0qx-W8qOxp+C-A?S2eh2DReI<{f;DZ)FRDGk8s*W&$ES?8jRj)zV92tT?UHmT(cF3RY3*rY)(xTy2xhfR9w1vDOH zuafNiRvp=QfEn4ltalM-ACDi%zHq%{-?iR_!<~mrs+a8l(%QcRGqMlcAlYZ*2eNP4 zAlXlBK$D}S_O|tya%$cA(HP6gbpC&{9^@^jXm5G;aBrD6ILhNL^aRLwH_}K85WR4f zgVKCNcFnu zns)%DpFfEnh)%!CLFS8itLH6O){C2UW`CYt$fgJ*YdX=U2$b>g7qQC-F_gus7hRO? zBV!YHtdz|Ky(xkXbEKY+jbYR2m54j8a?sG1P+6f7{^=JS?r~QHElo7au5o9Ckrg1? z8G*VKu@NKx)FQ-DNp3>C%VWbxxcdi)S@C!z%sAuTDzHxBgM?ckto>io3)vXBjNUY5ofnAj)dF4+H5y; zaU_fvLl;M?0gOpF=b^`iEh-UF`JtCZ)fwr_gixAc8z{%#CJE z6l0t)t^7I7~iiAIcV>?zlTEx2g=JVd3o1se5l?Jp|1kWhm?5q z01ri@DsG1k9~lot+bZ2dN<(_U<1QSHy0nD#r*6k_kn>NNmh^l}i}J#T=*-~`wl@dE zhS+<>3De^AH_P!#G=>CtD2I$!bdLNJrp1|egSI5&_7f%z*zTf?yHA*OaJ!2#7o0GO zG9STT_6PjXue8+4RDYw+3^%+H&3)e+Z271+bSb?NjoJYW-N|@EVMw1uZ*uZ;Z{QY5 zRXKLB8y<9aQ(0s_RZD_~|WG)t%_YrKUSsLt@wQN`ha) z^Z=R2pSuHggwfAq=a_O!HBD3k)IQm63PLxCDA?g53}@ZY={>T;McEZo%gE?vt6JR{ zL^w6*=sjb~F{talRTMSm+ZE<0g*i}oN)+ZmVZWVvFw21pX7AMcb8Px^SigfV;APnE zaL=xtE;yk(n#1L9V|z4+KI(yNMQ_6^g16jP;Nb}ec5jwrL0pifPSObRJqD8>t<7O0 z9CX*)F3Q5lO(qn7@V1NM`mIf&x(i|mtgW%$ud`qnv3IXcp@9;gBOx^M;mqYAzT=|UHEUC7h)^{bRQDsI&U@FU zQ1LtA?H^w5F0}O37AWurn|}_Qe-6yQ`yJiJ&Vl);>NzC8W8sIRqPves0K#*%PmVPs z0@&Gn0z7t?Xh?a58k%y+9#NDc=}>qc7O3EoJ=!JvnsGt1<&vN5F7bQ)o{VgCl$NS0 zk5&ocJ$S2fkEcgCsQoTfP@*2Fp4aSBEwl%!ptR5)>?B7c*S`Q=2GWLISj?DCmm<@* zyHFacjVjFrn5mZd{@`S0nju2U0pUDrMSauQz)mKs+U8EDC4KK zDHMFyMRBp~QYgP$4B>j;0jg4l#UKk#8bN*&Btwk9_-P1$#4diQ@$;n=u?F_IwW~ExN@}SF~Iji`O3HsPBf6 ze!6<6GwwZjlO+a>QQ>v=(@PR84)$2NnNxVVy}nVmVB=gYDhi&Tx{$j=}B?$ESNy2C`vySoD`A^kzA&=FE)75rfpG?|{* zHaA=k^e3Ktagc%7UAOya#0(SB3}>-0d?eX)dB%KLV~^` z1bu}CJqf;iyzwi7S;H+a&!e_h;Rk2KL;v>jJZiXSE-ife<#}|-J>iORyH^&9q#+R0 zHfWl0ON1xATOyctyY~b&+rl+lcaNyq7PDqsgfd3Wlps+vC14^X=qe%TDi(AF_;Ssz z63iN2MP4dvb~S4D!B^(d?Wo!OSLV@EqGrM2T(x+kW;%haIcrtrBG~w6ABkY5HTzz9 z92H-zdqc-j#h@G3?~u7KXzd*z8y;Ib;vY#7 zOiUt|R7+(01!9_pf;tFsUzFlTFtuTagE%%{-APSVeVDsk`B1#KRLl5^lrc*5m8n?r z_~3o28`qui2pPfhlw1W0_|6%ws>6*_eV9yWeIqC9BAW_Wu-$`#TdEmEcs2tYbi)Ka zP;ZDL-D1SyF4v9TEx0Z)RpXAW7&eVmX%=C{0>(GJXU1&TiZ`t4t~hV5mhg+IpV4(! z^C}oHsJmh%R8bT$iUtCX{j=!)|GSY@1!Sy|@cftO z(K!CVl=Gtd5&K}&1qTJImZC2QDm0A-s)&x&aJgug_b?X}oRPZlFu1TaGu*c(;J8h5 zZdpszf_(dd`{#;WCMl7d9*hdS5jf@4=fzS>JeFH)< z-FQ{5`oZNimw@Hp+Uz3GSK2n-vgmQ z8w%h^(gHU5bwORAsEFGb+s{<&@a5KbVW&s(fZ67HOfiDLs+i)-`yYH~9l=z%cED^~ zJ*F5ukA6^A9A8cfGo3jw-0GIgYh2zoJNKFy6o3-rl}dR?oN10II%}w(sV2=B7;d#H z6?gS;WsDV}hRIv+JemCm(Jlgla-||K87Pu%)g+3CoXs~(-cdv0q^M!?t{QNqQXDF8 z7%BISmHPz^{k}@RRjK5L^OfOMmGUSKB+scPNQ#{h9P^bZbbHo)#b9sWny%r&a(;Mt z5NE4ri*v$}d5wa=s#G|w=to;n!{j!}foo5=lCBO452!P`D+X{)n_@R#H7#haZLR;w z29e}2wTflyf`jB7)AbCr}X>*dX(4l=l9X}Nf){}q5HpTV-5Aq(kBl)X`Iglf2@XV?RXO;v}VW0${XsS zo7VP@d{PuXX~ppHVAJPLLKN-or^wNK3isz+N$~jpo0bWF;h-EJ>UY=oj!+~K=)2$W zU_a3@C2Sg&*UP_fJa(kqPvTh1yER+3x3Z>OafSvrQsfTZXtia;F9-^9ihN~?+>Jyg z6gb>`>|&fV<)7V+@SgK{@w}E(FaH){YGAOO85k;4<+oYYd)~PqMSdPGav!c@>XXH?6Y%e<$Ng(7T(^}MQ(tEEBY&Ao zjcteWDb!aZsMu~mwg56j7jt|${1N=-EiV0hdlE$UJi^0&tp$wOH_Er?lo>isH_h?= z$()URe=;imnMXvP_x;Jf+ekltL`^BaKbe<*nm;-^wuY{m{28~AUWFb*@{GyBf5k!@ zem(lfd=vC5_`aHMo(v5i{434^w{boHi+%9GN3q?u1)zTV`Q%?8-$-4LqU!BT^hYLI z10rhpd2AjnZ=c3Hjn_tq4!R5P&n$d6HjmB)MZ@=I#%Qx7_!+h?@0%H;yC0oP3m=&o zqv_k{Qp1xoW3*M0ECb2h#uyd1&!vTXH^%7f?Q?1W{TpNS5dJu%F-CjtfK3~gG{%S) z3DNhVSYKm|7VVfz3)eKpXkdrr+#yMh2MIXe1QKw5euw0I^xx(Za~}B{a~^Mu(Pmlf z7GzMw{ilhB8IzyFTZtClIV(mN{B15Ryl+;FZo(gr&Wh0s;MMT_tQc*RtbPmP z56q6y0e^>>nohx^pA1UM3-V_Oq2grQ_Q|}wu$|lglYgH}xVyQXoAIZASKhE)Y%Ml_ z6aj3<QSM6JIkKjA1ZqWG`xpG?uG=hFUn-#?j7d>SIw%#P76 zDdIKIoHsj0Uwe8kExdSkj3Up?rG?*_9ix+;n@juuXm*Ug{@h$T;AU=$U(b%wAD^q+ z6kWZes{`Y=eO0I_UkqNqMCFY+gq%^JtrA^iBz;uL#D?>*&=f*ZgJ%jWT+=RHI3LHm{?9PI>M68FV3| zH_1|$$j|0=^!gMGV?Sf`bO~;fpUvy&jVah1dxX(R2|iJNHm{?%*fzTv-7mqPm7mS) z=xu&QbHA4mLAQ#!PE5sBLhB_ACxC3A(|Ac}5Jc42bOc*u6E8(w1F8`~HqaNQ!bZ;s zs;z*nqqC;sS-n{=gBKth=u12nXI_RMG&UW{yw0Bb)t*Kg22~!A4Rp>_SnN7MH38T< z+C24+Su^QwP+bqm2Kwq$7;erh%xec=>*#A!ON}#W@hdo7c+@n!r~CD(uwO+`bpW=G zE}Hs@muAw}K{W!%2D+G6AMO)WTL4=}mrPwdbtb(As%?O5pi8I1=a#(666t8xe#=xu zfMu^@!~tXjT`?8cT`poOYWU;q7%e|q#Hvxe4fx#b82#eaxwP=r*)f{(kGZt}TeD+y z^gqzQrtKM{&60Q+#0Tyfqm%wImln3{8KbK}eE6O*dV-0;d8;HI2QfHL|EJ`9{68h< zFa8spLA*;6e?}4iKoP&9h!?)5h?_npbpD(o&b%f$fBiMd`S$^FUJ{?Gh+j~|N4zeH z*S-$U$L<-U2}!&W#GgWqU!O}0SMC|3hd?~EXN>mz7l=3P8KdhZ@hKqw>Yg!L^e;r4 zJ!4d48Zg`;Y1V@V3^#xV3~&3_Tw;c=F)@rV=i{PYSArN8+xrb!uTQ)oRULgpN$-%v zXMz~gF9b29|AA@1a75C46EtA>B52UKbKjHu7@-l2#mzb&nC)Z6GkHTlGXgGPEQ zqiThX7utfspd&OW;NjRZ(T}EHSZJgZ-&P~SkESAU*G*pg%l+dc3tLCa<)MJr*7HS# z76Z+5QzLlo>A9)DKE9DoeOrw7&vAdhDUk5oRFSzdpO^T{^KZ+Az7wU2TjeK)(dQ=- zHQ-Re)=!ALAFbHjIPHeL=z!g@K?4@+c1er90%9!CH60^}gGISdGI2eN8THBxkB)8( zDm8M!3|=M@m3vcE?oF=T=XZMqcPP(!r6ac##ZWa*-$*FOtoyW{D>N z%b2&Krr-VTSy$X~$<_Z_T0=Hc8CY9hau`$ng4p%e=}$Ci-R1qZq1v9W=nRSR434gf_~@WJ7umtmpkKVCyoT=DbTO{4sN zg|UL8uwp9QbWpY3<+VT)? z=tfR9Y90uaI*+zyhKJXTk5I&o>^IcARxWPL9~`D4mSN|w9-tEcu~wWxn2%cz%Q%Ys ze`!XSk2FO-!3#~W<9_RU2Z>JhLl%{ldOresRuCv5B{1NS2pr{%fMnMrKM^!PLqrEH_z5oi7$L8YhL!TFfzh#Yg_Kg)f8A8>^Q_$G zq1>a9DBm{5yBM@0xV+qo%g8I>05rXQpBP;)wRli|LYvc3jnY0bS}-XZ8e8fpB(9e$ zEk-UhwYfCH>RcLuK9xyPtO~VJ@*g68AQTzw@iu>Tdw0+F(OFI`TNA^ zEm>ERQlRU1a3W~>bNj?-F9|(FeggYl*mduHanSAE?aI|?T{%9~*B(?N{|&P;mqj86 zj?(2^m+9LlMTPk`OJO(5PYAsnb%FU}lcPk__un^0uS)cE$r5B+K$hP(Mp=;6QEyOm zWTnQ|i%oT|jYL{R_r8|RxoNU8@3oOXASO1C()Ik;j>%DK965FxKMVasUUfToN)$7p zA4V``%uR{nz7YrphkN_W{qz$ixRDqJK#QI#LU%y2ZLqMdI*rPu8nqlRfw+W)kDV^qc;U*0!H_v4QX_Knendqipf zZ^3GNz8v6?t95k2>mgHE^b2GPR9$(O%j)ppP=~(#C<6?k5*2P(!vX3^XMG> zad~VWJ&r%Fjm@Lu8|phb-@#}L%s%IvruiR=MC!EIPLWLg<+U`+qyRin< zc8^BVznpjo4HfIB}#3OpOE|vOy6_EUL>}3r%RL~nMTA} z-$BUwum#)K6r)!qQKQrXd|nQ)9TM6jKY@J<*g94g)#A>&D5%uLr9w@S{Jj-e_$_wd z$jm6=q=)#{JyY5HE%tOeuz#SR{vG+*wKHk@9W$fEKKEhCae@4VN^hg$!sp&yvGzcr z<(HX?y&Nd^GAs71R7`y9X;g~6Y$*1sQ0%(KC^atcm`2S5Lo0{rmB{S>o_x9OM#VARvm{ngp^1ZB{r$6` zL>+_h4p&69{~=P{!{jHF-Vf`4X#Wqs50rX7r|iDqAon~` zc`W0GN#iFr65({|4SW?U|32jiH?U$DIom06gSdE9r@a^G>^KyGT2`(NgiZv)BQzzP zF=I1n$zcomATx?6(#^Vv*xtF3cWG$)c|YEZHc8}J@)OJO_e z4vv>;LUP?DKcN&q1Pbo(p!d&}-0|h;xuMC{yKt8inSk%+@6^#AInzmsKfX+a`Om0P zT1;XaCesdaqTnum|Ez|rymn-4BQ;FE{vkoO`ICI`pxOi?f@H_>l-Z}mQ)T1Px|E~r z>NuzINkR9g6C2?ObM@`jb>*S{;mV<_h6j6xR<#aSRvo(G(4q3!p{vKnM);qR%J7Db z6kBxjG@A4815lc_#s8CuBRB~rQ{S7g)>Y*(YiM13Xd^}X#7tt82s&@7t2dU$k#U!2sLe%^LxXIc@Y>#ip^%j4g_I55|GSjQ@3A?M zt_FRl<89H0RK$AETyPB78d^6{86LuFL%?W)4&+WL(yJ5XXmG-EcaD7HYGkZJeR`Jp z?q4wn?K>BT!tfr}JAa)%cu0&UWL<8NpBRTvL>_jh9Fm0}?iSZ!;>wBD(a zmcEs%h)zv=bLf_6lv*m~Q$S9qB8=?4mm2%|s~q}I#qlp{X6`f*0pTb1iqiB;&xz9O zvT^p3Vql>&Me_U})#pSl&oNl(I%l$}^92}F8BZ7ReBqmcmKU%xQq2qGi4Ueloi1YR z%z4P?Diykj@tyOc)R^y_ChG&bOPTH_MRzIFJv8tCtPRFTWo1+)c1$%Z^MivMGy&J`aqN#Ct!%RbX(-P;v9PGgP4tP6` z4UEuh+@^Oka2tT@=p3GkH18{mox=(I=k|qL)ATFP{s>J>6V|&(exgYp!1U|Jvp+&x z_Kng(x1RkGH23E^_NF;05wKnZ!MPoK(;fRpY5yxb_NHW0lxTWk{fDT3x?s3TeuCjt zOj`!le~4B!MQQp6=TD*4604~2=34_i<>T|G&|_fs-uOTVnJWbez7jB}N~R zbce`K&>soiU`rG;BtV{`%j_EL^Nl)YMG#lM%*YQ*6F{-L;0@vv4TZfR1@WuK|s29L0~?Q0%9- zO$(O1c69wGi#&=2Z&bHBLw#jD4Nj4n5$x|`>tudE&1zbKJ>$`hL)Z>3bZ2orV_|E7 z@2^D?k^L&`i5~xmqIoY@FB0RGCUKGDV@=uK4f5}r?f;*z6im6Et(_ak%K5PhX4LAC ze?l+X^iuNp>t@jWa-~8^p4&~8wQKF|J7s*JQcew5)(D+H5Yfm=d9d6&Y9K$%$f5tY z^$6|1qatGe{f$*-mHIGokL(x0dvUD&0PWAy_(1ms2f4$2Ymm&@L*=o<7PgMcuN1i= z64`IGm#Da=k>-!k)se^=lXtk}60_uWvg8SaT=KuFN|q~?p{li_3mg4` zN*2(q_9#U*1law?dMm5SW5k!Ls!6@_+L7T(Z)GDz&U|Nv-oV=O@c0--zHHD;R&B^L zB(<))?YrUi-R6(>)2v&28|lu&qSW9V6Qen{h!Fc?C8GBj>}iI11`-@0ip+IUn{=yIea8giCL^5bbd!ECS z`^S$~_S_{E>ypH%&zGT~wx=R#lO(7^l|4%z3)@rH!8E9gdtB5q{ccgYZ4P7S@(}>_{UUttTU{9*9+M^B1f+kU zBEK&F1Q?8s;d@ViBdx*r(T$@-M?BQuNH^gtUwWn^;N&lSB1)|z1N{`?ul(##J4KG* zaNSz2=r7Hc!GX1u>|WVOcODa^=1Mz#4Cl)y9UGW@+h(dVTkR;_3$$5$VwTWN88^?|+Kf~#wV%VW9Wp%r`&Un#i!W>e9D zNXyE8BL2;Zm#iqY3`zQdp;aV)ePTf>$_-4B0iiSh1jfk_?WdwfP=+hRj{^}Cx0<5( zy>;Qi=W##(UJ4$_E_@ybhHVUBmpm^5pZs82Io)}DLs05*9&in+v!u4-r(zY%*o9G)qV#qmwK$Q`?GVbkk5!xKNVRa+Xg7u?gy<_8}bV1}#_}qKLhBp%l zntv#o6Q5<^L_XMlQj7bTj$w zg_-E}H)mBpn<@Mh!J!dy0wJ*Zgu@2TQGtX~;LOrv$|K#z}F>$YX z?Z8-|#YCXZ-b6Gb(gG&Vo`0<;`wb7#<%h7wpb}*N&~K zhB)+nV(b6=Wo@jCmtJtt6w?jqJ~~VC}#Px+yYm z06#;7AI$kB6J3yx(t;tnS^T_Z;}&JPpK+;{;}N;GDd1KH-T~zCU2N`B#c@0};h!3KIis z$txy!4bg`Y^?qHD#{U4oPZpxI0Cy$dfBm)@L=FFaY>b++;?b)QqgOs~Y>Zqt)cW1M z17n8;a(9K~pBss^V4S6MxoOt9QEE{EhR%&F8)&490UI6}8yFrM1q@1U1FSMW+PkU@ z&}Rl3=@mCht?R)nB6!L0c`jR?7Rab|UW5lpnzrNESfI=DUn`p|+@m8#F;AKJipW)0 z&QNx_B68#!@o4KJOc7xYI$%x*WOmdI&q8|lPA?k%R=TTHpP2)W`c+O0fJo$4Xs z&+>?SI~)7Iy-;&%rINj4y@LZoYYfGdLOVi=-6<8jGxGVNM%ufm%zLM)*qx?gcM8R{ zDSC%Cdc$hM9&6Mxab$!Zi42|6 zNMl9h6}|LVR`Hr5dhhj;;_1l6r!>-^B*pV=-KiyxPp`0r`bwDBfqH;mWyrN9*sQTB zhfTQ=nwYfplt!A~Eo7WF2@4Cyc0GBwsDEKgs zs(8~KrU8C1NhCNw;6paIbVsRmw3i}3m?Wx?AtLevu}8B2>m%1rVvk+`qg^xUCfG=e zb2pCmjSU78=uT78k0+}$-9Mg;(6Jq|6ARs>>q{9f4rn~)2X2^PQtOHYVWD{2{8fLcn)3ph%M+w+Tl zQfZ{CPeAQAj+IAg2}1RwCvf!_SIOoiK#3dqgDKYIB)~%wu;P;{SrrNPf>Wqx{x4>l zmEiHeJz%jd#Og^L4OjU--jak^~nGX&D~Jyo(NnDl<-sQp>;)l;`g)_%5!K5gq!E z%uLDy(l7oHU5p0sLgHMQYp8fh)XVxG7t zsTAB1D2i99haxRyq9HK)86@&%)DWDBW{pV7OXO$sD2)K~$Vo88w9$@Oz--GlRr`f! zb;RgHpNi7L%^fi+d`iXH4OrD7ns!-7ETG<@OZ}oFM%M+zXNrR)({JyH(N;*fhwSQHDLN>!Bktv9auHgJJ>3hn^n2ZL3v2J7Q+V7wUH}( z8|nSNs*SisLbIAAaYlYNkB(L3NtUC1s1`U(=fF^Zzp&C5m9Y#yR595Y|^qtuL(V_PO6LzuffYSb+;JTz498w(_D4oSRPO1zpS z9==>kyqYBrE>}JJ>OkW6SmHIyrNr;C#6N{3rpsd^<#GiPE0ET9uUXF@NvS_#sV_kc zhK3)pRO#G55+ZqMxPgU=q2c=Kp+SyB!y{w(U34XAOGx0&QsB)jaIfAdwG5Wml?O>e zjsRqMWK4ZOp;rfQQATQYv(##cel`g&3ebXey@Lo;KNl+MW=48Y9t-qny3aJgEBL7i zKHf<53O_pYIcPApaYTLJg6|`h;jv)_`89M}*-sHsKq~Z#7)`X?^_<`;aZP_#V)r1T zgCiopJs5H2Nk|CN+k@v+8mVDLlwbyt-7?i70IB5m;Li*+lCuKwh;v(}kcu2Ef>EW7 z4#DtISs|k7AqXh9tdPNUM{XKHkwejK5lpwQ2=$E>=o?CBy5H2@<~wmVG@sOm)r^gQRsC3p@23cVlkHa)cB-_|O0?hq^o#ae2{of-spdAR z=73UjNjaqEDx>Qw9k)Da>bhAD-J5x2URK5_PQ8m_Q|4QlAloyS8fzs=V8ogja4oOO%iHA(RE|Yp)#(GU(sr0&x^*R{e1HCR| zy>cs+UYBXTE@!GidhA$z&2$H)4I*AE5Ck)jXw{!Wht@X$Z+|H)Ys~D)L)uHMqR<9lI4|M7HtEtmd z(5ZK9HPKU?&wp}tlv>sf_m=@cI)BD$Ws|3*0{%!F?VOAi(Vwptz2|w>=dY`ywBYlV z_EvriJOKjneECAQeSqBvc-MVL_{pN z)1Rlo79(q9xEw>NKF-PEK zvu_eVpaUC!xdF<(IT$7GM_*__H`!+`cCp&%%MCD)xAr~uqs_8rXHFsFestMd*^hpU zKhTdB52=2%LlU0@VtDqKfYJ?tsc2CBrpHV(+}|L&(fwTKYlpCuOLRZ~TF_lXV$vya zvcC7r`XW+1(12{AWmwekuUx}CzLneQuWXEO4$GEm^F&MSP%7R!9BL`N7#yfZkDDsq zHAAR)*9^GIj$tHtD_4$|$B6Elf#<*`k6@K^b$O_-3=pV3Is(

m^}C5XvgtHADDQ zrH!`DK&#jzqNi?~fd;%_MCv>tb#|x9PIA*oNaxX@rz(ZFg%p2rX3$e#oC&QSf}-40 zUz~}a`WCe0`Ou4M*P)$u&4d#Bo+6dlCY5+uDbaaKNC`}<%YopnPnedwYL>9vRkI+y ze2Qq?t7c)LRD*qCr=TL`@>lW8zSqg#vkbv)zSIk^PZ2x^Fg`Ytfi!u7_u%xr+E!Zl{N5qq#00lX}f5 ziRLKEn)^*yYcd;?LhxHPrcgV)^Ej@j!v|_k;o$2MV0Or#8+7 zd!kjhjSKI+Xiu2qmGSo&im#XYehvB}rHQSRq4*g5flz$SIu(kkTiEuSAVw&TtPfSr zg|SqfHa~0D?YlwUzRPtxV0}=x?{eKT>y>f8Yt-#3uG<;wMcuC9x?Q#YJ=QHR)x8?( zqHh1QUe@g;{DHcCYJ;lV7D@a=5TkDY1(Y6UM#d_=edVB5`RB~qZQqm6i;tH_$B4G? z2`_$N0|FA>5EtLyz;{ehKmh;!$i^tOaK=g78PKs&Szx=gK)IbB<0|)UlF(1aagUUSgF!Ph1q@%;#B#|6!xB z|Fb-MiG5ls)6pZAUSCkNm!m!%Qf8IdgTT6t(xUAJr45!D#yCqFgSk%pGzUgr^I^cL z0PuuRe7_RkadVl*5DR`Izw$(M4D-;PpH}7@6MduHPUGkcGe0Bs-P|MGcfHcL^)n%T zM-6?Yo=q>B`kpT4d#AJUj{l6-SU|=A5h@G7HvnLrPv_06pUdy8^yzHczkWt(eY&0{ zp22pe&q}>_NWH(H^xproA-z}j4Poy^s!F>|m47K$)_%z=YpKshsikjiKgsU{_>Q+E z<=<6< zzbPHJg>=1c3ZBlW5M9SpjAK8iOmm%_eU#hjM?BwH@i}Rl2`RB%%{RUfmWbrAf1u)5 z0#O|=ndW)6L5h5q^SkeTj*p6sRW=em+whOEM*2M<74ft;J=^fx@kV+9dR5A!6nU1@ zK<+5daryUsK5B%Fwa5#UytbE3x!Z!gU>oNJhkc%%X^8Uz0qO<_%R)rkW}%CG8UQ|F zBmtK)pkIC6imxNXqxg=@@v+b2%zJr^B7&i8%x!W=ue8zKEPL9iqA~C00X~1KH0?HN z+WXW1KYD7YF|idiHW<{a;}x@h7tM~eV1J7)nvD&v3r|H}JJ^r!7_45E-?<}PH2XW# zX43m7aKs8v?_b0uN6YV$1YUR2gmQ?B5j3tQ!$kz}@2enu`4+eJ@| zH`4Q9VQd%GVPcO4B{%;oPzxJQ8^B@C=~%Gr6-UcAAi6F-U2U*z;O(LY>@kg;Fpc;U z2I3TUm##it?k+ugI;>u+ygrhy#CE(95`Sg{@(X7uX==aevW^(tEH&LFKOq+X^A^?k z8Bv;!-KGa6R#9OeC)ky`=nUvpPq6`U3SOzREv(j;S*>3LYJFL>JquhdNhjndRKowf z$@M4;Gz=lOw(!%Z6`U(nays7BX5d||N$VOZvPqdi?rKpTU)wmEuMGFaaa2$-$-fma z(^q70`0s#C($nxI4er{FXDUwjrqsnPVchfp*E_T^TOP%!n@o9#ak|{v z-qAG-+O6gE;X!n;pNIrJMpqB46u+pW`Ia{f;I&9l>cXRA!~9DffEqmGDL|FE)JeoM%t1Ry zJmqKOLW2b+Z7%L*nRMR}G+8Jy^g|)2<#pP!#pj0*!V9LEFvk@w6{{jW_oOz7ChB`wcRvBYOLopxFk*REtCk`IYrCRzJzZl*H)O}KHC$!K*K3%%mM84=)TZ02*gwfgPZ# zoeEaQio3!tH+{p16M1A3!Vh$I!ceJ;Ieg|*zKp#_G-se_Tw|aCv{JU>4cI09c9v2yKgSz)_y zWvtv{3D=GUR;grCr0RNd2e6zGaUFES8W>+rmYxo4Cd>Kl?S3Jiw8d1$m}-VO2pT_L z5^nMBu*w-bSM2fKj0g}fg#~3C={L`X;klxu4}rd=NDvjHgxlR*GY&0)2N8&7jsK< zPPa&H48wbVcb5nddR}5Bx`YCnEkFrRw7(Jb0TvxzR|_y9U)PFZf>2iqz?@*In-9Re z3|V?4vPvl%5ktE1=YqH+5h>vX>#O0}c%m!sNOl{lvH5}{{OvQ^c4T8(k-bWXa} zr)zM_+=Nqgt_=lw*$|WMc1B~Fw%(>+CF7xEZ3Hrej;!T#s%2!NI>Azr<8VWVR56p$W6@#*leWBsleARSzQYuiwmhl1 z(Gm<5Ax^hEL*)>m(-{fP+oJlvs^Xnp*Mi3BCk?ZK3N`Wy5sWm8_YcMwKga1>dl=8u8 zMipJl@DuGyMu=p_L99C1ENkb|8O!IvN{m2%FeQ3j@ov?7ml(yoLOkc9moBxIaT^)y zg(<(7Q#Ln^S8_6Di<=hgE~o<954wu^gs`|HVxiz#Oq7YXo(9Im^fz3Jbf|zI;1HC|ag}9xu3L<*w z%mhd$p789F=r~m-%sY0@bNF9YMi2TZXs&^pEs{$4g<>ve=Y*vU=LO2ezLX`F3yjej zD7m4cd$*m+#j~z`LXB|GZ$EO8u%7lyJLUQDct*@qb%bQFo)GUJ_`XKuGje*bw`&+F z_n7pOKA@ciJ1JN0?lx8R{Dd<9>s4?olPP9oTDZF!C(|H38;6jjD`w$(FAh*k&i7so z^RQ$$`e3MPme(b_kd825l8W1Ml+zmv3|I4MJvU=;!OFx%WH9~4Lqd>=FH0tb=jZ^A zLTS0+uLm$dyOLc&v+3x-7(1UA9re&q9lBh(9oHHL3w>sXfSAAs3nH7t76R_bwndBM z$xK{$2^T zs}y=y65y=usFfhSd&meUDHm&XmH~K9?QZHVS%96uIm4Rf<+fvEsA=;@ir}iZ&%q-f zFNic%Z_6?`DPmw%M>Ez@B4Oq_cl~D-MsEA+y>I4UaPrxr2w-|3RhW`p@QQN6tCM8L zdU<1wB^J`5;4WG$!kONnMj2Nvqv_R12Fn#Zz4^^hweq5O+qsP7V2+u&d_ssaI&aSBkmh^avyvq;BZoEPJi5%?q~o|H>_x9i+Lz==+4bWK&LOU3}biV>jl zmdF_&tHZC5mT8j_mlaFZ|NdHAuCq&oZ6igKr8?y~03+*Bn1UPkvNF#x<~0hRNO>aa z>#1yj3XXdjjwIP8va*;lm?>1gODruJ^EQpkiTH1$FKa@+lm)q2w`!kJn%=DbnzAS> zh*dqkMib!VM!S&$s!~qgQI@WiW+!C9+U5hQBoelxYg)*b?qcKvQl6d6i{ZqWu>>eN z&ojn6g-T03YF)*aX8dyTV2+N>nZ*8{Ehp0-SIKW6Gc~0#Qd!KH*5+ zjh!)FEFsQo7)x&&XGyM))?+Ji#`qhkBIBsBI;wFck(t*kCR@`;^%cj0j3-9em#C$M zWqHq0S&*?trwB4?_V}0DN@T2fO5{Yw98WR^PUMb8f+BIj7+mWOICmkI#cEqGYsE#> zHzuWuW0&+4Bh6PRJ0aS3du;_&KYgSQO6Jl=wkH|N6E?;wX@F5$7zwy4q=KbhdJj<2 zU5&I^6)NRzks%xDsl+*MKBcv`(Q4#hhHLG$y3+x{@OQ_<)hLl$Q9Nb}m_3;^Z=7HS9xGSf`jv`f~a2-)0k(mWT}`S5AD) z(WPg<#XG2`haZokXP3+>E)TbD9etg5B#%E(9?3M!=~#xkhcOMu8Y-7uY>jk_Wq zofn=)Dxyrh)50k(Ni}g-8l`T@;*hJ=K6mz-*1-fxufHCGsB`~~0 z%Q!Q&61cRS&zsXifjPk{h=kXSW~C)Qtdp$S5NF-(ylW+}e{Uy5Lz^j0X^DTFW9R&I z!KpJQm6jkWDOm>EoFSH$Ao+l3u19EK5;!LxIG?#iAhG#)VyUd@Zgb^9qJ>o7EhKzn z8_8URP=r}4+i4ZtE?fH9?kaO<<2`&hsD@XSn`P}>4XPxw0}g(dofhs_Wdlu-al}@s znR1qv;K)bG<5epbU`}d)MT4UPazD6AzCgQP!InGLRni6CTb8$cu~J-B9!I>KJkEcK z>p3EqHs_P2CBC6uRWvW=s+!206qJ_u?;H-zW6`191f|5`c^zkVnYBW6FuaP5W+r}& zcb#G(VO5ib22H;+<0O_!O6C$;wD3a#+Z+d!KNt}?aIlb~wUJxJyfB%_V?w)~c|Tcj z^40pA!9oz!uV-i~=qHQW?6REY`3WbNveQL5{WljyG)+=2znUvv8moh>xtyf&D$s_; z6k|j&hify?n{#Nul@{hi5^ycw%u9h$lFdaDz;W-)QwK%ORRJJ_=x=80epj+!=j6V; z*;i{LznNYjD86F=2J$_GUnYCk;L8-~w0^eeS)n){@~QU}q5Z7%yl`{HV?d&!e#e64|gbS&&j^@&y!YMB{7nT)Hd$PI8ps>oD%~`y{g*@8WsSXGN zuQumQzM0jAT*XX?&D2wmTpS$DTv?-3jAIgWY%xgcj*JGr-nhu4V$${ENttV#6GukM zb~NV)3=gIT#s-(bykkWRR-#m}koSur*qk;pQu&mb@cU*7a~at$$X*p%TkY}00--OSl|vg9Y?Ilo{PWoD+cPevx4 zoR_mKF_F6UH><8LM12}VxtE11_?ZX73c$Gdmr;v?{`H}95T&@t$B^@!V&^2R> zYaL&-a-O>3pl!t1Zab3+Dxp1waR@Vhw_UK3emU5*g?!X@>mkBx(jX7jmeAMPmEz$VNFchfj+&%G+FYu>WNYDHMrLZYN) zS5?ooln;c>rOjw~qMP<%CUtndsv1DKUcris-WSr?j|Uf(OqKnl#U~GyLz&j}?OZ9I zv6BjC*2!OLXEM4gnyu*vg0$lBOXP`cGGna)GlhbOoL&TIt(t)mE1o(!NtC{!pcRuS zI~Cl7*MTI26FhYUkx0ECqf;5U)NP)yh2otT&~d@<*EmLKnQ zos4>hLYrLRJP$vfg*zlwn5x0jXnZc1=(4338yZ4dqF{TrdeuWa8RLvAF^26?D!8Ko z{S6BXoa(Bzb+dYG54Mu05+=;6#zA2};hHyM3`bGy{iKz^W?d>Sw?54dXi|Ba;2rpY zLeK9fCiEJb=95Km5aUEmYoSJd!OF)G3T2qAQ!7t()1 zL1Dc@CYTh|rO3q7Za@(_fFxPu9MQM*KqnD0fP!n4r==WuunM@U>SQddTOLKNYBrp| zX1}e5JKggAnJO0xb_tD;$hzfRE8*ni-SR5=`6`oi1WVssG@p!nal;;Z9>wT_B@b1g zW>xCc9X@5Lk|S>dR`)tn(<*+(t-FZ{bI4(yULh`zlvNdDgjEpB{#6~%E7<9@JWyQQ z^@^r4RV7PV-|TVbD8%ZNvVOi`xvm=2VV^3mFi3p2m`qwZ-?Iu?JEsN+l&KY~*w!Jg zYFfTE!5*Z!IKh1b?Nv@n&34Vc>ZELWr^{$qCpgV#u*_u&a_QP=O(*BbbALKSIyuLZ zSM9VdoV+^jryI`k6zeAqF@X;Zn-J+e^CJ3cPy zi=oLdsN*O3YLOE}wGg{x9`pV}yxYogn3ZA8tWh!;$0sI?W_5h4<~7`|hG~6$;@501KbORbcBaMF;}eNm3P!8 zKH9`IejypuOovOyFC@FGyQAZ~T|u=B*Yw?G*&q;xx*1S1F%DH&Cwd`Ox(k6Sx>a}# z5{ajgF6QHftPI$?GWmGHkq^35#Uvh;*S#WNupK|IjvyH#8D4M_mRxSrhGA52 z$=77%cshU3t%!4zXcf`NO+F3=SozX~DcbSs28F!m$2~7DFXrl0Er44+Vg{mD-txR8 z?b*4akgn6oJaUcPGLxg;H)3QUNiPHDapS$Q<5P;;A+)i^!qs4*0N9zql>VHZa0Z@JvEZ+rU1&fb16G#%czB8 z%>19Bw-@j6<3+Das%jVqn9hQ52<@s2PRipgReaKMFG$P`^}#4@<${dJP!T9QC2V2X zUw}o_S{W1;{uZ)O3d<-09x`akPcF;Fv-0YcS-aFbS}&!~*oP}^rwW!_@igZ-(9BM` z2}j=N4y7SLW->Uk!F|gZ$`}*8Dj6CQfyz2bJ7r5tn2nXvJ1K&tIRiw=yq(h)tg=SF z00RcrHxeT*S#Uf@Y(Gy_wG5-g>VTOe2c^U%vg!uQ7n~lIoK&k)u#Qt#yiE^HiI*rv zUV)+5ba^}`758Lo8p#yYkY_!@6_#c+Gb9x0DOj$Pk;{o8TV#VxC6iwkZwjfS z3TDK}!Zm|^5o@n+^r)6+S-qQ;8hLZ0Fj7YtA zxq_+962c)RaXcp{yR^2e+g0>@InW!52x!f$gW(ctXkj~vcrwYSn7BP}xaTzEc}hmx zslbE3dCzI5>-JzQ8cI%{zjx1Rr)eK&tcUl1nDG~%G+!iTWYKd1&R5lzEqb`b7^DYR z*Jzfsj28laT#GgozqlSY-?c1|e_IVfI$0i*DQ>LQ(- z@c!@IV?Gs&CQaL^q*YS7-(Ih@xm$i^Jpx{qWS9ABJ#^a2Sq0e_eqN7Ysl18)#e1v0 zF>R-^aWT6)y)F_@#T_fGqabV&}^ATc5c8xf2c5Ts69QaLLycq}nU5_G&1HY|{HR8Yp z^$1iPc(@+Ybl7w25omYWTn}ybkA!m6jAQLnJ>=|8P; zC^yv8FRII19tQredPuXUUs#X89CrS@Wuo_FJS&XD z@zP|vAh&*vECh&bya!{XdQ#ZffMs++-cB+S9+WC1#Xho;tN`p<#~Wu4b^a`ndi&YP zPn-;&Bb1Bo=6P|~$;NvUPEO>ZM%L%@lDd`m0;E|dKRor;nV;(z&jXnnVBTyTKhS9; zN;o;sScNsRQr9tdO}-csv(&Qk@r-)2#|S5m&vz1d2-+MflCg8a=1oX9fxuo8mzvNQ z1YF0@$(^SwLcDUEb*XKlZ&%^WXVvofm>}=-!4y0xE*$ubusV1U zlGWT2E?3MJ5;*t9xbyY(2UJ1t?0hFw$ZhjOrJkyt z*lP45-%hF5YC}EPw^QorLvuj~aP?%Zv8)HMdbD<8s}XX1JCzlcH{ZhqSUqQ3rF;tU zP}a%_tiGL6Z`V$24Z(wcWp)GKE~qUT!{)wSaOCq*hCljtq38-PtzyyLBkZeB@PfFz zN4UFQ>kv?}ydGB0O-m;>JTD^KG}}^$3fEwC+|lG=j2kcdHtP z8bJpVGlKedcTn??OY|t#Mtt_|9>qFLt5_J`<|S->cv@3?3ER~7c zauz>MiJq$7D%5QX8jIhQ^{s>$4L5~3ga;gLE0hFI{dCglwZ-h5R}uq~@puKwW#c_v zDl5=;G$h7R7=2?xVq8o3Q&>_q-qS6&7R@1EmhoM+OQIWJp}KA3r5U}p$7nmJ&iOxR zHh@0$NCH zj_H5jY0hI%Dw*K1MUNp5?lgbPg-Hr=*}jj~a89~*)=m^0JYvc9{BsRSa5~_eIw%oa zchsn*>%X}Mmu7{6QR)7j=He6-PFtQ>3bFP!a4ve2xgUWWwm5^s^YMAY`g;zXRi%KWGLQwaIYc$QOdmYcz zqMW4Yzh~4#34xnx1-hodztq9Y{Qmh`6kcUyuP|e)?If~(LbO6HT&}em5t8YXwIiHF zNT&~XldLbd?u<^!diD);80Dp_||M&lTl{ zxvqRS4j$l6)$>S4BMui-0F-c}aFH@%gJ=Mq-NN;2_7 z25a6(W~la4E8*mF@lK}zrvP_-1C~(*D^+wQFTL|FQAm|gM&G%$l2$yKS;|lyDJ*P@ zVC|`39nUEJVvv=zN?85_8{_dF3wQ4T(@SDj5=RjkXgu3wSv~l*NRaBzBA$O?pbimM zN;%wzvH}f8I3tQ!I+U$%-1M~UWFgB19yU1H8CO=>c&*H` zbNPak#yNE^pkIivI0izh?wc0hUt*ws3&664=jgC#*%+*IOs5w}EZfDh5jg6b_f`fk z(gXI4p(+-?7OYe7hkHnU3c; z87C)vU0-mpa9u6vcgDj^R?gC`vPdhLvpn1k6z#3Ah68T4mA+DL<$`MId%jlA!JQ>m z)Ocvr$~pKEKn5RS$aMJpC2D0n#bIIAUSg;|C}ZUu+&u)T5&d#b5Gr)6v~mu9@c^X8 zLv?`SM~(qD9=x=24t~=RP(5e?D5Hn*^q-Y;@(w?~18U=)I3RF{3@Zvi=_ewroa5#b z4Ad8m02CH79`gjy6Hwz}S3s8uvl;JWSvkkUvL|He>;ljPHctT7uQvm%oL3*A0@TXp zJrVYPWxAB(6|4k)(2nl{gPHM*aVW=YnSkpjS{Ymvj<4Uk08~oQ&zM-b9@*=3=3qH_ zEUy&vg2R)BI#2}fKe0gLIWx=Y&RGS-NyZpI9cSe&8A9|JY~`y4GW`^u#ixl-9X&W( zIO2|HssJ{gqGWh6r-w@8-CN+&S=-I>Z$zP>@$?@f&4PCtRb=1c62_aU0vaBD^VA)%k9e8oj6y7g~&bLqDowiBn(DO1}y zJH<@0laC!jfRQKlBxQipDY0v(8UO=~Uk0@;aEhcDk#WXQ1v*uARp9DyXVQSO9Y=hoQQO z7%C*`xDB8n)FTJO1fdQLuASz&3nb~Z&y~L;1*pz&0WCNwhU(nJwbML<0j+it{2G{* zE-_RmSb$;%30j>70lG{WTaOT~oyK)HCeFdy+;Aa=BWs2LqqUd0I3S&JgM|^pl>{y?cjb)E zkG8SAqC^;-O_Wdwqm2b3*rpD*bDrm*teN3M+;E8!GA8J3^gR}zG?YlB4Q?j^SF9Z0N6A?UnUoX^qK%ru8Gof2%zGLgy`^k zq5v>NS-GUTgQ4da5*g3nod9_UT2G#V)yv0vf(&@U>U89NTs@@_h~R>@p27iP-p14k zGB5}{JUf8RbxHyhCK&RvgiZs1C8M26NXo=kkg;gN$nJPvzNus^0RfY?%wop6kwhjvOj~#ojkYuv zZa|PM$_GS@)dj#)!2++bzyO46Wt5eT=`1k%#MKMkR1m<7iBCb`X z%^P8SDiMsPZ`NSc`1@8E<64`%*UkH~8CQ#saW)+UzD<79X%WeGZ77@db#G2-GX1bY=@z8S{kQm$JP%)S-IApJ@Sdt4gE@M(OBx-5(;=CZ-BYF{2k z;YWAHrSU7m2rSda)en|`H;mKVt_~v-u6m*S`*je0yqL5-&si#a{SU%4$d9G%e;CFr zP2yKJ`7sh;NN_oLgt59~j@c%IP=iyOQ+5b3xDhVNhM$vRA z9i5pZs3B-V*cVw6Nq{JU3<=^6O?M?}>2$Z<9Y}DCBO>EQRNN6GqN9Qs_gynC}Al*37_(StfeQ4V&fyIu9hO(J4Lz zuTbKic2lCo;cwuX?K5uR^m44=mCve~Qz2FHSvNwZ9wj{I&YxMWuONHg4d4UL`lgl_ z+^}gb;EQhHeEb}^j>?zZuu8j)d$}86?kpShiW@W+H+<+XMPGHpO1blrb0n{IhfOc9 z(KC+MyThvH+OWG-u!lu&661LcP+-t0j+9o@oTnDVV&fkOGV8;EJ@ z{4yD^m6y$zAL4o6jfLY$HHZ*7Eb_4%j7@td_!BqS6(T@nE&t_4DnDT=_9x3xQ5gQI z8(v+G4LNDTHoIYtyTP`&A-J=OcLLzi&)l$S-L2Z%4c^_X&)snQ$LhDa^XFlawfuPO z2texg?$C;wByfitSUJ0lshM!68#cYX<^Y+aS~a`6;)MCt zRi*P(-bSmKxR#=o;p(w-u&q1Ic)~22p7mtZb)UttQqBVq{;l*4XZA% z#JU{H|37XBcF|5$ee^GGNc9Yx=GShJ@=D#TIezaAidUE0r{|pC%JAAousV#P@vulBP_Ka9rg^;Kc+t z#?@{Nj7QuE*SHaQ#4_I{)8!{c!IR#nchG1&oXqRqsLou&(K-=8V>hhX-4(QEp=yW%9tsAOlXl`?E>5fuX zF~^Ou&W%w~hP#eyPSmrCTisy(G^lL;obu@vvuCLv<H+@d2TyM92Uubiyl1LkRMZymW zoM2bfyY`KP6ZKr_Huj1$^?3dOkTLGw2ZrPN#rA!m*qYqaE5e+4^Br!ycV9RT58k&g z9LI3@{@=$@NB$mgBO%nKiah9ssA@HTUPaA}`FgqeAvcNy#?<4d&YV*X<$2c%vJv zrnF{^+Ua}K4dEV8KySH0+M})g^-gD!)=5eCU`)(9y zGfl%jaKl)H4gAmz#8MM)9}3@(+~8!mCHFBu-WQ5vuk#Z(PAS%yxN85a7l174f9eKd zmZ+D4HoHNXAZpMSH;AdqDr#_Rm74ENIH;&R?qUjqqY(B2F>aCLR`M>dS zzbl`s=f+9yV!F|;ccUQ|j(20+;Ktx!=!UY|jeu<#qMEa)yb7KXa`3TJ+0 z>2dtRNE?3#Nm}i@-6(FIz>yiXyRoV&%5|Ss1ZU6w za1t61F0~@HRf!nenmqcd@~i73u>?bs{kVcugjIg>P@>A8841@hL3dUF;9oaj)R(BQ z^fhsAOOmFV)vAv87x@B#SVh=Ms40!(OkfX;G0enq&d!BV8g6FzF2{)m7sA|dP^sZO z58}co^Cf(tV0aPpaU3*cq?y5Roz>lo3RF>58MDq{s_qt6R4pE31G}@VjMvo%6idhH zG?q5CAqn%?r^pqIy;Zd+5e(NxSZHquW1I-x1+!K)b1O6h$5}#_UNN<@YVnw9!B9dh zP9msNlJohjq*Rfl!v)A^vaxlMJc=q1`vhSRKRKPzmEQHl9yVsNL4K2FHIz3l$qM{xsvisz^NXPs+;2uypF93 zZ=>bJvzjdbVyny-TM`UYW@=PaI(pOr4wWLYVBMThupyY36{!t|EXqu662x{FVnZ-I zC(@V*hU;|mHPZsys?(GU5%@_L&WDnenR^kOszV=&*jtuY{lTi6M6+(v6y`Anwi@2>gmkjwnv;g0z-XYn3>wT zPYm@1TV`rouNd%@l_(3weG5YtS|7?x-E^|@SM$1V(jqYgR>%3OC{so|ODP_#3;RM0 z4=MQJfYWm+L}`S-3}dks4n$(Z>LMXuxUMJ?s~grdENmr))h80s5yR@EKK~*bblvCa z)baCSgrILfDV>UFdL+l+5E$l|TE2l0pylBMeqA^G36vpd)F)NT0v+8^cgH+E9 zQvVAnMZs_|L0U@AFG`xR8Zr%oQWMQlYeJEAM$v!6E9wizX89Vd<9(q<%VyTzjcH+& z$oO;hKstR{78RZ$iJO;YQBjNx1HL9LxZW49|NkIbiyZi?+a6o=`w(4EWFXe}zaWc> z&WRP1!AYY2|BbPY!Ej>a2#g!n-qMfoV-oxSS9EZA&=;Cv`2tp~2Em5LmTN>y&VR`v zU^Q8RnpmSnX>$htm-+@3)ihryuE>o4Mc6EBu@z%!DU{bg8OYL1)1Y6rr&Gzd{kU>= z{!hWGS)|HKQ7E|3Kfg8*iCW=6Fg8DtY<;wVDiNgOG~MV%8@Iv%w2w|wO|rm6n$eRq zQ5TCeM&nLeO%rv|db-mt@dXp3oOBw$#YMMYce;haaKK5X(OX?)2X-g(N5WytpKwxY ziZ&Oew>xD#;$LLB2sJ^wi*QhP!a6Gf+DOzztcf~Y#0PaJj`vEei8@`xf9OtJXCf3x z(rNsGF1iuj>4Fizn@;2BxadZ8r;7%oF8^rsVi(z%?qrLCA(xgKy~IT}p*xwszI*)? z{3>}WuaxwpYlyfaUgIxt(UtY2i$x-?(9;A_7vYQ^grP{>CEn=fySt_+%wD0}ET79e8h@aR zZf&o0D1KKbq=|A|#OrzxhvJsC$f>O+D0UHU>_Hf}5_N9JYKjsU<%7LZM!S(}k}4PJ zqrH*#j08=zz(xFQZ^Uu80JT6$zs8y(>Z1H-Z@9C|~M9xg-`$xazbfXmt^O z*n_a4!RM};g5M@j)oA^zCtYK>8>OabcTsNYL0KD#xdK7scev=b^q^CdLT3nRicS~h z)?O%st}3nZH@WDx^`Jv-b9X$NqRU0OqX%W3mGCcdRWeOMKR7GrS3M|e;|ZTjSxqp| zMcCDYFw~t;6XduEf9OHjolfHyyXb!EK^INLe12DXXo?aSTblFwOQF0>KV9}tT zzf7m9Uz9Vt{-+@_)AzyuMGd}$zn+ZcsYYIWI8pY7ev}sbYUu{*17)Sv?BHG zTl!J1e+2!F--O;5#jv^}oG7Yo4Eu+Zac8QL*GRPfxqccY5UdL(;#e^-zJ-`XfOvW$ z9O72g7xN_|F*1Ja1?*cGueSV=a3Ee3@HNND_&LqU^DT@Mo!actJRC^=5SDk0?dcAz zy!uFEj0~8P*ANWLTio)iH&LV}*kBdS@`WRDmPf{UeT}>X(bmPb97dTL@%s{3<1%*l zvk`Jb^i{ualbDr}aH77bIuQ$o>&SRB#mH+Q%3188+=Y#`^lr*uHuj_3Fuj)or9^?+ zh6L82jnx@O9|wir4$1R#BYoIF*bm`x<$1qLiolQC?6L zW3HdB>5JG9EBuX#c+}^&$aq8{Bc=ovww6@+VsWcH7DIWzm2TvPe9c(PVXVBxJkwY2 z3Q!)h8YF{(j&y?+kNfH@1v0le1|hd4S%Ge!8bcrWyOM#02zDw z8+i+f95w{wGc8|~j4K8hdCitDCYCn%;*02-0S-^W;m26Dk(fosp3Gz+`vRxax0&4# zE5c-4(9cG4a2CCW3`Kwy6g7r}P1T6bCkzg-=a+8~D6)h$c-T-sZDbL- z&Ge`T8i^q&GHC`;-TjF<)25CbIdZ&i5X(8ZP?d#%XAiXjGV+bQ+5qwTDD^>Ci3RF8 zmM=iYgNA~^xV)&e1iIm}?H7iuK}Gx|D;6PRc?yS&qtVjk9Ojs5?@`3MC5cBv!2}t5 z)12){p5F>58e`35{Oe2)<@vcb7=>qfD9_i-?at3Wm%Cj>7zb|Z7Vr!CARf+ zUwE3ekZAf@c1_eO2*`NEtwZkVwe(mYH@@l=8qhV6@k}3X30P0z(T%-UFvM-qi@&E} zZu6+fB6_(Go7z0QxHz(iUYFD;PQAscr1k7RRf3z{n!B{gW8t(gX?Iy;jJrR(Pr17< z_bFBAQ+%-)-P`x4j(%tu?&F3*MAkMWP#wuw-dpdM7mZnd)yn3Dm#A(zFT7Y){oEzA zB7-f9#)9Dl{VjtlWRNaWxjew2i!&VY5pP_mTC_(qxjG~s=tmfq;F%ks$1T9mtxzUYtYn~Qq)MSnCry-?OzO$jo#cx*bs2}fcLWUL)v zAgon=4n^c;p)YR9YZyTf8}q`5dc5U^X&v`9xna74UxX#P2PjR(>-`KK#;{#^T*2wb zc6;O%vf}ZYdS7^kFH}p$CmCGTU^%K9p2CpZ^OGWBi;TY-MjqC+R9l@FsjZD$38iCh zh|V`${f8b26%^G5WAOwy%#B+CGA>9l@1ByIzY7l*&aeO%dL+sDN55&{^G18C6)omn8495 zlx#w7luGtN05cZa1i3Nt_lmf%Ibo4;f{h5B(7iczI?+K1d~`k-YX%M7VdMtsba+S< zuMLK!khi87c}pWrZ$tor#Nea=I~+@~he9ydm_u)S#161LVZ@nf1u|ty_T?r@Jx1)Bt370AhWi+@%W$c}ITlMYkii%;a1F*d z2aV$I55{^o8>7x}T{o+Fc!wDp*CR($(B0}(jt%U6*;C*)nF_1*7EHDor@zJ)|rr()y(gbT8$aIr6hG(vK< zz3F##DncJSfWyhSnt@1+K!U4+XW+@{lpmyP7;(=9S(Lw+u3^ON8~ zJO7qN`C+<`(P}Tsf?+RkqWz*Q8c<^>nN9M{ZyZ4nG2vSmWf6H=;EJd(K#wy`=EcbD zK;{|r65~}PEA!FeCebO%C3nFkZx1(Vu?;Hj4(hN$3j}nxrs{tQd<=%I-9g9OppNdK zn*quI)uCcajyzFHHuGIJT3L#+e1<%M_OjMt|4Xw-aa%3mHhBW=b&WOxXcFtHJh41s z7i3AA5~1R_C5;QTB@G2S_tGpX46C&aq89EbFS;y?3gcLPQR%lY(}k*NC_fNM(DJmm zZ|O%rUdF}xS0*f4nMIkO3^%DuypobaRPfDkldP5SpH;kaar(rDEh7^uZ(Cuv0dq_77r@I*XGpCAaBd5wP&!T)Ry4=nFtGhf|lUV!d z5$RvG-d+8j`u{`e{}0xG?-g4Af3Vh+kM*jj)39JQ?aD05=NZQ{tZ@)&H6wT?EoZTZ zEB^3SBib5Pc!lc1BqI^q6nA9faTL#d{BTSlhV-^)yBTNe7 zB|5^SoAI)Agh?NOD&v9?CXLEe%qPkd%um998Mlux=`6{;M4kYgl0r22g%Ktlu%=rH zOpC-Cd>oO3jV#y|9jd0e_fMBg=+bTXfGE*-c7nlRGRWJ%=|0QiLSf}MNjAT zLB)CLrYsteBfKZda|oQdtWR^Z2ghwxXTecX%B!EEnbxReKc{9Z`*38h?1RX@wJnR# z>aJv2LvMEIxv~#JJ$|#+Q=zzOkZJ-%nwGL@xKr8ON@S`Ih5NNy&Y*4$~X5xC?CFF z5ztzOKaC{MIB((f*bP~vLVF#jHz1A9|5i?V?ox40w{bFrWZ2hW(Q4NHmAkTN$T_j% zqG%#UZ>C(dt{?3?y|WwKnGRWDdXtB?iXQ2mD(&e!HJ$R&WUgl&@;7Etel%v)2AgO- zYw6G70&oEU>K9)tEjG**eb2VNGAQbPZEH@>CWT@-hg~n!e5J`q88g z&2x=f#wt1o1A2vy#0WCh^yLA4#>$ZV$`i48Qz}uxy(3Lp(2+$2kB&5HYeyCh zetM)yegAEUd{HoJ8`C!4Y1Gqw4a`a!EuyE{us8mZ zMTOF2Nmle}ZJ9!WF~iAtS{al13c|ca#oY_gUz?E>d~F6|W#h9+!7AsK=d!3UVAc8>LkYdYMRaWj#!cV9j4nIk z$HY(N9QBG;^V$rDn%8Do~m!Y3@NeIpsCogL3i`BzcYS@0`Bkb#xbWI~(>XCn8~M zwp#JKgHg;*i~wZNa2@+Az*)T8CONkuC*}*+VaZKK$=5UP4nV*Zr+Dd3&I`QZ=(krI z?tc6K5&@q zamkwhF_c)aA{}cKEBjrxz8}5%aTd25EBm39?_z|Oi-DlF5w2sbtWQ9=3Hd>~owF7o zi#%PIrBi-@p5(l{K7sc16em6df@i@>v`eZIeaHC+{|j?zUxP*8^@AA`k=C_>H>dx@ z`5nkl(AWLYjO_Rq6zFm=Th<@y5BOB6zpOvhKLIHhtJeMyaVGK;bY6e3I%5-tXFJdh zwW?-)WFMje8fDVeo3f~2z$la6$IHQ^O!~v-EGif}%A_TmvuNmqQ6|yg8KX?vy*Y~p zpE$~-$}L%x`LFF+RB~lHH~w=|i3)z(o<)~$$)dsOJF=+nXAtn&74tb)p$phMjqfEL4Xqo6jJA^}3n)J7K zf1X7{(ch}h_V8_*VQ98u*d$LdYy}k<&Hx%S>=K3yLI=KRn~ULT+hJkrD3fxoQ5Kd! ztD8rebl&zX8oXhYNsllNyIpW9fCIOGyj|S>ryW@|6mC~OU$7%fdHdZRS#%h@P3*>2 zVPL!Q4?D$;r|e`mJ~GOrPC=@Kl-EX?^p`KPXz;tEOiFwK^MO-et;}B`Pnch&@vqVN zj{=`Hr)!mUbAbcRKlws5|MQnF&3#{r=I?#!(!5w0*qR@*OEf=q7i$jxLY>S>L=nLfO5Y683oT%8A$P;W6eTXvQji_)_9^eYoCaRtZ(NOiE z??u&9zSpW=E4)6ICwMLfK2$yX2T_%7=%#9$px-Y~r>gKk%}GktRq_PevozcLHQVCu zY)=vNs5~8PRn*;}oIehY6{7BoA0+CI`q342;UBZ80PXhHA0_-w`bnDZH9twy-73uN z2we4VanHN|M#F}tyHjxN=KbZL1*h~sh*H*yRx7PWX{{FiB3iA(3tF~qctMA9^RKQB z#r#dQI{7!zs#uuWT0I67)Qew#(^^FZ$JT1kUeT(ayqNf-hIR;2G29McEi$~So4X4y z(CTZvK&zQ4UgfUuQoO3|Jw4T{db*9NUKLGU!p~N04^W`ks5Gxsj^Z1YCv3$E`gm1u z_(mUA4EuA_o{i}=Y74z^TI!7faCR}O==V5IFL7tHmM}TOM^Q`n{*dm zUL0-GXBl2K`Rw$mpxYr&1YJA&TnIThQ-mzf6d`wHLM7*P39FgdNVTU+otEOLRt0Y9 zZ%-?4>5l=%E16!xh`26MPsS}gGNB@DnBT(V63P$HjYh2)J;b1A`gv(UOF(hFR-Tx= z-N)Gf?&l>M&>{J6%QN3kkN3x3#G(D+lD9^i)Fm#t3kADvv`JF{a@tWHtP5KKnZsxs zTI!T!Wy|KIEt}bvI*%7~%VIJ%v$mAqMBDnWS>KO#dAy`H5Vo);V+MFBALr1vG2w|w zVpzS64~4W3@KWZtD5y0m7PdjngU6Wk)&MURqF($1Yh{91*S)N1d12?uEo1#v8-tq7{#ycLA%X0&@E$?`$a2i#uTD;>? zv(W&(?}1?rSzgKyTXpmSpKbf2*Gu{M8kpW=E@ykaJT1gx?2yXQILKf}z7|-{k{~#l>h^`%gLG1OW zm+~9&-RQLgpxhHk!>wJc^(G`6>FNQn?@tGL$-;PM!U&I3pFTi>*NWvziYHXIhtFSfQN(?I?y&~w3RkmLckm33A8mD zEhATR%ZVs1C&&|M*K4%%Y_!z^ep{YETcy!{0-Dq-G`gHgxSyf6zHe@6y32D7la z@+nfh6f_9HL5F!sR)Pj$D`h;=0bjF%Mv>xmpBy0n9ZAfCIrS1!am%k##^GKX&=phG zP+UESU}<0oNQpAA5s-6+0!)-Aj2=WpyeTmLa6~*d0XMa!GbjfjYzjmV_o_|6zvBg) z0x#hOn}EgaiwbH9EE|^Bl`fYT?jdgm3FEyCUap-Mq!LULKVhj z6h`0(?R!p2%Qu-DK2Pz@++-Y!7UPV3X!iIRla6XsjLYN+&5na@TgRBRiqX)nR5dEJ zkUW7l69zDJo#b}N6VMreig{5SgmxRI4eD|kc7wqi_%|4^=FNO<%?$=j6?1Ojqc+@k zuI6KKe;MMX0RiFjxIDS_T*Ih|A!r_zqvOqCKb#%21xJ@C%Z$~yNnnss=qDPqX{m=^ z8luGyx@~Pg(zYzAx575jCKvH2qcA`;s%o)^cH6|G5)bqv%1_WZyo@XGYDVfza;%`J zIuVK5oJyLU>YTv^eTH$ShfXfg>YRaUrn$_rmMD8PAvHT0tTb4sl?IeL$7Zq8088|3 ztp;p;puh_iFX!xCz34c{idzYrcZ*BLdV{rG&&2x=^%A_Wo+X|*R4cuni;D7>(A@?c zan?}V5%{(oHrQ-)mO4$i-{3O2-#BSQKe`F*pS4cy1vW09(hz!*LPXhSx0$^(sz$BZAK+F!-C(&m~;jZROCi+gfDC(w4S9U zA4o(;8ihDUeW+5N(?6>GB05=wS$G1jD0hJyndnM1{bZBBH}M)(=Cd zZyK)6JnY;vJsjyrBG8A9;6OhLnZ6Nrq@XT>ae)N7<~#5lC;w88^HR_*8-cPUDuuAu z+>9Emf+AlafUj3HeTU5lliChdVLFWGmwM=+k&06XN5s)1F-~l3pw~Eg+DI>X2Chx# z(=GHg=bZl==kgS8eRvJ#1>v?yp5WRS*PKYmqEZ)eCA9gq*?fU~ zaSD6%;uJLRi$-~=u#qJ7qAl@aB{4q{ra^_`_1Tj)s-#6b4ZN;W#$Cn6HH=oqsnpA( zwL7m$8h0I=Q!qvucRi8&&jpMOIRhR^gCpQ6hh zuho1j4M&-W)$mVp_Scp&}*O*v@CBs0flYEMI?pwWAL{N$P|u>a(jIeej{vx16CE z?Cg_umWKvS@KWa4V@+xmC-1|?Oz=`c8~Pl)JUZ5-b0>Id@IS|zv=%R~k2UEz zP=7Vnq)wq;1M2?cOxgjI!^fG_|7a9W#_(|_C8QME<%zP`34)4oCKVm+rGmNRO!^C6 zP6hhWUK(6K&ZKL=A~QD5BwD8e?n_WzGR~w&0m`_4oJnsB(~so|=3fBq)o~_$!f0E^ znbalVU*rk2T|oO4>?cB36-c_Q;QJHdV_i<0T;=tRU0&aCc@3WEC8irqn9w>+MxMZS~$K7~AdAvDM%Hw;ypgazm+4={Fgmw>(l2##I{5Ig!3v4533;lXc#21h^7 zXwmT|y&&L^FU-`6R@nl^m zf92zblpmts`ryz-<7A8rEI*x}j_SRBvX=(5Emw>lmuJ3Atyl1=qVJ$aCiYQsZdDPM znku^mRg$503!JLrSjWP+tzyXvB|$a%m#1@YeR(>1YjcX1io(7Ii;Ts?9@yT)uxN1Ik!V%M0B>1fjeC0?aZr|7Xmp3tXA>vLfV27YMhy2MuuLdCkX z1i?7gq*w8Riq%yj6)UUMOI)$WluE_QxlP4~U9nCC3L3hzN?|eAo+?2qhIG`Pn*ih5 zbAnjDK%P)?7|>oFXVTL^bB5SdzMMdNYr#cMuWeCY+rnP^ywpoYyuxE_QEtN}jL8IQ zgN9^aX{JNuj}o5H!w)^MOf&EpS*96@7cA2pj~6V{G#>*i(>IJaZFM#Y3uAS`KgXN2 z`WRh+ck@XtI_$OaI2G{0c$1z2wW{rUmAa@l!soO#m-dxTBOmF@)09X0V(PHv7%bm3 z))GC^_w#lAsn1j`=@E70E`JF<#&1KWVqi#5^u_vcW*H`Gx25w@TtEGjF}^56JbX6Z zq@2I268!|$e~&h)+)D*}$D1?;FMTJN6vE4a6HHo(mqR9)bZ@zr1|K%Tq<8RAIKia; z)4Viz!UU6w@G^CRNr7ovL{vn4mP#}fA{74%r+JClK7kjo-2_^&O`Yx~W*fr`*j|Mf zuzh(t*y2!Zhp^oS&CQV}eKj2m(>PW-Lxx6`Gc+>YuFTx6kzb!7$UkZ1q6#lj1~}h; zsVW4zOg#}D-)qA53L*TULZtixLRP6tr2I=G|M^%!o^h-opK~lCNCg2m`K5t?UFw@! zl|a>qUY5y?=w+E`L_a)M&HXORL@bOuPM5uclA7hM%tVVHIS$(ui22q`94@`$I4^nH zZcnHDghe+n$^*y2R*as1k$@u+4O?-JV`yTmi5)^r7B`7mYto2@VzNj)EN>B#Rq_NW zW{N{GQ^cRc%Ie02wslokIIX->S$QX0`TlWgexOppncB)b*=ouU&_;gSIMYj+f0Xm95XStw&aB>z-$ultEEZ_9bmlqEZaH1_p_cx#2`G zWHaC767q%;@&*fe)E4rFLrA*_c^g6&O)x2SmIygwR?qO{PE^b2SmiY63nl9dmQ^v! zOFXlP6RG2B3FL4`YGLJ0r~A?M$XqPjq+Z*k+ zR|>A5VA7A(+V-973$cBtvVHK{2_~IYGGK#MP&7B(;JOPzbMLr8 zDXc2~9_9Nz{jrSapNpp4hjr*ZEbpO5!a{t{m}fm@+|Wv3m3 zEEz>#$~UlB$ieX7Tju%9@mLOApU$7L`9fILy_WHY&qJugr(4Albe&QaKK&W~;*&Y+ zBzK2A0X4BZxNx*dHS@g0Cx7mp=cNqv5w{E4EAj+74lMEF;yb`XLA49?1$hE%E0!S9 zWsE!lZI2q`SFKl}a1bQsjyCD?6J&kzJ0Tr-eNt=G2WIg#vta#81l}f3h&mYDpnv6w zqW}66z3O~diwLxJ-h846tP%zRd4iFx^OTcVXO?)sAb6$dfq00Pc;iVT@joYt#P;qI zho3AGpA|;$%M*-ji7QW55>bLfL{gbNftZqxZAw5-k=!PE0{T75S2_`H%H$@GW22b*SFw!Ipv4mizeZ0p%~G`#C#yiY)v;$bhy}y{a0w zu2!61kSA0c4;Nvp{+QEXnd(J*R4-OgD^|Qlu~7>BbR>hdFHSSVos@j|;?@%W1V9y`F(DwWeW`F5IEpCUB zz@Fd9?_VyoTT&igXudh?ocy02pqDD2=0h_>{mG@urw3p>umCw24+zHjNb`U|G9Ez& zMg)=`8t_sf`XotTk2DXKC8M9^rNR&{|9W}=Rw3#vZN<|APy;BxfnH#3?zJ$@3J06$ ztpVuYb|5Wn@<)u3Q;QXhgfEt$j~L~6WLV*VB%6^;&^Bhgy4FjcO=z(j6Mp)H@jGhK zSbsFZq=Y!WOP(nD7g6+IOfc!QS}zrRJHe!b>%3IZ_h^%55j+@PA& zS2fjRzyZ}acmdU{dM`26vU*$Y&8k3l$rEy4(;Qv{J~*TWMeZ!TK<=`j=AbD{)+$cm z@VdggW;dHHeiD=$wQvrvm775jCynyP0MW8A=+N7vZZ39*5(I#~Q#4YuT zTa+p<$P+4U2O18ue!EDzv{r$(%M)1W9=Io4C7B!K3E);tdhCkCZAMM3G3>`8ln(4p zSAg#sz-{Xu4uHuaR3M@~12Dx4hIHI1DCNiKM}}My5(UeIS3sW7;oEeXoz0ZY1@Z(? z6jV(t>o+IT7!KGGy4)1gpW39dV`k=79VZW=?!Sul+uCVVp~hP-Kp&rO4}<~ z+xr`oE3aUk4h(y#=!}L)U<4Ug?1znM{;>lEB=wQks{Jrk9vw!7wfuC|eyGvsguUdU zyJS!GzWuPCaz9WK4Ns_jvX7?o`o{x5k!@iRz9Ong8d@{swvs4|9UWi{>Lw~%-OEh#Z{?Ev`*Gt91YN9;RHBLpS_ohQN zUw>(f?-UxPMjfkB2Q}`o)u=;vs98-%8il-=Oi@t19raS7G`bW; z*%qInt&2j6d;`@8P~90`Wo(xiyQDW`XWXI0)yOkxZ05N~o0PLrIqF;@D!B4!lP)^L zO9g9=Hfh@#m?s=<(jQ~Vh#lf69l0_`+f#Ly5~MtHmBFsL%7E52G2KmF#XI-AV)jh( zD!$n(Ig`9fePyR^WgjovKiFa-mp_I70&&k0=lX6v!(UZ*~*Quz4tD&8(mTa2NKFP^C3`%h^V9|RcI zq(eugYn$xQQDn)`S*0#+(4nL7C3JK`IoDXFcIf%ky1Zi`gZckEEcV7Gv}f@|1>b`9 zE~CGLym%tu%==05W~;-U*RTqQG%I3P=A+1L#>Pn}BTZY1eP#^yRQeoFqqTm6HMm)& zdARi^=X`)1&VZh8bKWm1FTfw!Ud?_Sb*7T;$a>){bOc~Er!i#FGbt~h<)Kr~;n)f| zvd%k4wqMq@t76(9Pqb83xS0qSMcj5yG6uPHS&}Z ze^#GNj3A?nT}_^zL$pf zorp^^4w-0D^)fFN96r&cXYf)y(WI*`@Y3M%6HR&;FUL$YDP_5r6t@NKs$#C!+zwyv z;JT(=c0*Tq+{p(R75Xgr5NkR2rt^Vp+RmBZgA7-1({4@|u0)0N zHPaqWS}Q@*avwew_BGQloVfy-s)X-TWwJ?oas5g!aoHZ)D*n3R%t$+!sl1bXU-~DsXls@aGQL! zlW?LwE7G$h}^TT6+XMJ6+Zi4C(&`@b(&A7@cCBr zIqN!?R=ckgt(ILc-1b~A+_G;FZVPU3##*c~#9unuLDu?DXRzI4pCh`5W8?fAyi^z? zx+e|Mb{kTt&H|0D*3qc2aZA~~On2pKFL@R`h%11ai|I+uOSutEee-a7nv;jCy^ ze#D2bQNfuF9DMIuvc{{Z+a6LQbNhQ&{~DoQ4r)^06$^O{Zsx-0#CHJ3(&=F(eJ(gd z`lp&c3BOFkm~ccJJ}E+`4ApisZmo2*8XRE=vA-@lQC<}`hH^eEVep7Jc6olkge-x z7%`k?BayY%OPR5WCbd73PGB{gaJS?{lg6y|Qo$7yO*#=T*H1KQ(KHY}JJFx#pn`w&7U6#-UcmpwTZI3vTfD^l zTZG8wf8;tB|5@w6UqWhT#21(;Kf^FB7HOzCsSLXh+EXnbI6bylPp=lk*>|qdomH z9+OSrWN@iPuNt5|73r{w63%ErMwD9kV~_8VNHhT)r*}E)^xJVPX5qq^wU|EUoS%^s zjN{Xt&p6}8JG_)1j5j9yw4E~w@5E@XDS_Ff6R; z@Y_aI-^bEvNMsS+%*9AVo>t)S9ZUBy+Nis+@$@(o{)2N)M^5x{MfkKPBu~3S`jwH| zfYkZ~HU}5cZ;bTi-CoLHNEfDH4{X171hl8+NoKs72f6dwz2qr=3b&EajVV~Lc>pqnbr@D}!^f#zEv+0GuE_%Z$tJK_`M7Y2;qx?7Djp zF+3}v*I3?7oP!8b>8FuaGp5&={pZMtERxh8??sfLg?^2P_a*mYNAw>ueXa;J$<=xf z-3wz?O^^OVwIoZiRFP~zJ_HIk1?_@xo*QAzedy89fOQGN&1hiIoLq6AG$#+-=T$t4 zpH@Q9oH&Gh2ObI|Dj1K03Dl^%ANB((%`X^OnUqg;npR%C%TLMKaU`Em|M<2m9`$uZQi58t?g0a z_ROQgtx9maaZ7oOxs^;ZsYNjG%|t=XB$G~i%u9n$nPk#uKw>Af3(lV*5s{YuxHzHU zaS_xdDBYZJ?&B=Tnq*S(^GfYGVA3?nq>mo=Qo*uGCXIc7zoCQzUFG3|CCn`#8gJ@Q@Ypuntwq^y3MasxZjjs+AR^nw2)0( zoWib5H42voqqw-A=t`cz?Mez%8ATmh;FYOp&LOav9EssbuynPeaHUG**9K@+Dn1Rn zr~_?XEJmvsvI|L^F1UsH9r+K80-sN(e4wmjl)=xS%P4+9GB0a+2wvgz*k`5TME~|GXGM_Jg!F5i{yWmOeq_AP z880DYDYv$7u+qDqMXUa@==UY-cg=H9y5$wg{GKx(MJ7?^W0Oo8_^OJ=RfxtHCzdTH<{lT141pV;c!G0CLwBr1N9Cx(sdK=|V%lkR3TY|Iybq{_2iog66ODn92Py~VSTb@AM%}fB@D!Du42`J|FO1D!sDV>guMnxr%2 z3GUZ|JH8_=d>JjVnu{izB%8;;t(q68R;20K!U~@ERlSV0XZ7V!q^QdtC-(JWINYwf^fX(i~pJjIv&ZlRN`EotSM* zU;3J0wlU^4uc3j70#U@=$!I^l?j=wA8&3N5ENN_~(649u7djy+$k>CfiY;Mzj{Yn>Ed^# zm9Bml4mxeJNyTp|2OS6G5Ipv-mxeY@Hi06yfhSFBolv* zeA0VfD!}K+x4wt6k(#Jo=B$9)Yc00-R0S-P^bC2T9QdkuRKP!d0IsS6;wL+1^8Klr z#ip-xK@23KLk&zW4#P4==?9pbE~UdTZ4Z2a=z0s$MfsS3_xVtwDj%ib|IkY`VAU?g zs<`<}alYz+J9!M*z2zaWe$>5_#q?rHR1(R^v_t?xc^Bs@vPR@=GmR@wP4{P3?9p zF+7`~W_^sBF^gRQ4r-hAZM9m4c@OWdzWI^tu4aCmloGa@64i;o)cVHoBAa#lZ(0Pd zG02yz9GUz%*vBU`;x@XlnDKE}%@lTF$SWQo#QktMdzTlOlw z)De=W`WZ#%a8tnNq1CtP9sMv>&-)xhI_%zc^uvzS2}n2KcNG=<%+Ku;Vtglv+&R

D!UU=0yWin~=ih7KM>KXeW?^VTvGCg%s@O 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

;Cf*rco>%7g-FtnOKC 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

ezkJyovVncy3nt#*|iYCF1ddv>REr(%` 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


FL0X}t&iktsd`46 zbsKCI&AZsgSNrZ|VNb{;S$V3q3O2mIsE(?7k&mjX2E8yDDn^<9(fG}yU0RSE99WGV36MACngkRpUQS!;k zY+WRT@!}wM`WhSkS?r*6#~K@5Q-Vv?jni6D)?Es!DP+b>YehvR4od&ev{tmd z4@+WCBzj6+?l2|`eR+S?(xkylQ)n!5MwAJpF!CmLZ3C^Cl3}UGcCDuYhh?Q%xfh<A7896wNm@EL$baks>u+ z@iXQaL}VBl0U`r?Bp#UVpp4rkvUIwGGJ|CB?i!+4-uaGujiP`n=(%Z>KQmO|3V1Sa z8sYVY&o`r9UwDM6p~BRZNko?zj?927=ql<+!OCRPu})O>NHWD_ggO#ka`jL<)qqB* zlf+ui(1X||=-`wbn8=QIDPlLya8O!FN4j+AP&?fayf&AM;{$RLAQJ{CR&mF0_de6*p zr-P>p9oK)yO(XCIcGrdk2Ks%yLhipo=oNBf*WF)8gk7T?c=taV znnyDSH&%33xGdlZdPWv{+~G{@-i*%o7kR_IiUQ%X27!@#qbKNZFw-02tdYe&cYCdZ zpSPzsD6Yor2D8}6o?w(kB^3?hxNC&zZ>b%%ho478mupYEgwozgp+xP4S#;Uv6iSkf zOP8-1W~cLKIw-?MbUB=*7?C`Q>_Mc^TjUK(!o)|g)Ke57x_tXEJGFTfQ!!VlyQ>gm zcs^ZKHZO^8l++woFzm%$w3 z3FmBFEbmVumM?<*4YT3;iTifgC~$ug!F)HNf6T10(b(AzO0TT3(VO_OsK!RW&vsDT zS8Hr^;o}Z!yS~OoXJLbD;`SOF(F3Y@UlhOp9UI*-$3f{c-m%eo{Fw8Ojefk;Tr&Pi2ca9PSPo*!`z2*IQn({dGzQ;fr`Ml!5VrFvAww0T%mzAv zF;QLI(r%;sSye(MPq|biyAm%~$Ysy;z+Sf(y9)p7hX3!op>{vI(&~mw8|8*ejcp_B zR9dOra4Gvn_otK_s@P=2l!r;myGUU-Txz^O!cIRwRnHAoF}T_?hU@t>yPArOeLC9J zT!npoAx{vOjKTk%eEhGNd}v3j>1B1e^^J14^~UA7cG~~6a=7*EAvZmv98SfiA;#{t z-sqQWr_Ike@T?(=jP){zd1(`uqj?TW&VC>XzP6cDa*63Qb z=n#I)*=?g{i?BEc;aU-HrGT`a%a5Q{{>w^cY*AF)~@i9*%dl+SBP{B+yur*S9mGrO^==I&#JEQ61(D;h~<&Q#y^MK zJ{>Dwf)`!bZ|S9&pD%AlYmmZS<)xTi9y=v1)#J26qr`=~ZImnS*9Go3;$0gJUFx9p zf_H6Hiywh^ZPej;2c?(3YojoJjCJ@c7T{wnV9!c!Hm(VM)7*c0^SzxEUmm=#J-?IGp zmvA1%Ls)C@=NA_ihv=B`+?z@C`b!RKA9VTh{YCV>Q8O=@D7o?>tnlTR(hpqpIEtn| zjF*4I1)d=N$f<*u!yhT}smEGT#lvbeKZdo2*B)y{CCE(N@>naXmaHFnqlmtpEAY4i zga13P{$DY#&K8diTx<2*c6tE+yWzaujL~*_e!247c34dK5s^Gnk<1m^Yui0N+D_N4 z;D;E&P?*vnI|=bZKeb0>4I%|zN=M|A6?pChkMz>{NH}vP=F?eI;J4~zMh{X zhI{(Q{CEEFzhI=)epWZg>TfNyzy00vRf{;Eo!(sOpo~I4Q44rR^2-j&DDX<`0>nnL zi>d69NZ^69#i>3!J@GOg();~kYKg*oUdE$Ec$K@rTbQp-0a*MB2EM;~;4?IGf*&um ztF4Q=F6D!Doh*-j@Xe@>s~qal4C902DABL@fV2u=rN9TT7%o> zsY%#F@dJN(dgvM$I?{>%<%6IS^PvhiMD$aY(II()g9jJdT3LD8YFK%gi^9LgO!No1ra7W97i`2Dx)Vq8_z)sJtZRo+pK}oefGvEgo z!`ESB$+YMP7oV()T=4n9MaFt~a=ix^rAShDjr`!^O~m=Oksn-i+u)$~dFt`Wkbl50Q?4?y^V#wQ!lh>26)wNch|HA~W?2UzGtIx`0?s{HhOKNgW7I*&ql}aW7~T+8nOvIVxyOn8#{IWH_oJ;sM>3F zriqrR9=s{C01s!1EWp1Nw9}iLlsBoh^E)@Ig(ww!6EW3_l5+AE?NAeq-9bBb+EQ=j zQx$960{mTDc)36=z^~X6y()_3(0{c6|8LBu%~erkHJf$8_^-{j)c8GQrz0?gOD_mN zvsIZ*t^6KAOw6WIF5afiw$x}Aw$qK<>X}UmVG&QQ5zpVorcse5+oMhMKU^^WHwMy% zNex*IWL@C=YXhw}Y{ho+Y*&7zmNY*_ERQ7CdWSa0dgJ_JI}O^Qhx_OS&ii*bD7khz zuU)DI&M%STn87J(firn0CS+AANiA^RfTYN1{y$jY{5QtZMyd^4jb&YsgRvqDa_EGS z1-X7DcG|X68A~m&Wz{HeQnA5^@w8!l%nc=WDyeDgf?RbCyOCOuJBWy0kjsACLFR(o z`nOM5klXW~jdEwIA(R*7dhE4P$~z89AGp^>x8q0NUK`DL2LmRAD@2$V* z%Rww$wo41wh%hh6L3ll6Ae^>agm2kx9YX)zg51ApI^ATIW2{YQT|h$9=?P6IZo0?< zQhceM7VTC|rF?=&@KQ{RQak0nr~82_Pl-i)ZIt?m zY6xCH+O^k4OW$))`hmSR>bloK>7Vbl(Y^R_bgzxJ;m0p~ZFKrRSR2K&r8qAjp?Kat zDSiY$P`vB=4&vhX;s=Uve_t1`km9_6gyO9}kmAqa2Z|rX4`{z+zk|5=xc%1V`yVYJ z{hL?%FcX)ek~&U27Lk|Y~^-6?zGe5 zkLur`*CMWO&`+=BZ7}Kv{nA?84a|a7)eU;E7T1GXmC_M&%GZ%%PRRc44f?;bkJu&q zZmWGPHrtV_iNU8m^Vyz}o)u78`Ca}Yxv4uAWuX@|S)H2aGN zZ}W^pdc14sHt&){4oc2J1@vv+%}B|fjVj4)-hU1`NbPM`w|UzT*SC46e~H_?$1S&c zmwt)r|MeEi$oGnZL4VM!arQ)AbIYwXK9M~8OSzRs6zF;r-2+6z&xU%c&YGH6K^OwKPAjv(VAL_;8_x) z0{H(=$_9B{`KFfK2O{+Ih&IGPUDK~|8XjU;;JEH<%%dm^H(<0JZK4$@oNm0nkbWBYB7GbHu>46%XCf95BKG5+M zs>5SIpO#CKh!S60d^XV&5kLK>Y7F%SJuc;58b7DLo@e+Qh$%<4dp*P7GNi=dJ{x8K zYfaotT0`nX^=hQPjGJX@nkJea-)EzMMN`5P4>hMn!g7Oza8Mjq^N-FlEa(k;Ox2DE z1=BlMuy+nVss@J@{7Q2PSoz3U!Lv*m99F2I_8)o#E0ng>>arS8yOz~H1+^ifwLGA1 z5VdQqYS%Vi?GV4ID!T!dlekYDhRQKSlVXNllT0UnqlUprF_wNfso_3xTgdO@>tH7T zHFZ=)bY4Zbpp+tkHR@76X4yu0{uq8Oe9@TjtF;yLPP<_{LPgK&t zw*;U@!&lW;qrMz4=38a8KjNWgHeyPR`f|We4XEMO)%tITLXC#cnOd(l>Khjqf2Y)_ zZ(Q7nm{Oy@aq-G`C)VbKS5TougV)tpqP~jrBVbGL#T?Y-%cQXU(7*+>J^Y--f)48DOyGLbW@cY z%J9O_3#(IT%rTjQA~O3}y(wr!jjG8BFUkbML5KNaEXSR9ML!@Z^!SkPxXaXE(-4od z_N373ng=4s{)&hBj?!NcYWzK&$s~711D5%5R|=hXTr7jgz~l8S(~Pgh=JPauiq+E- z_PE1d->4pC?m|!Ks*zz&kT6p{)HF&QFY@@pR|oxL!Ueru?yz6U#YBnW^j(|_;q?`J z80ZAGZkLZwRqgK$dxEY)7BU(@VWDgDZu7XqEYpxCmEF%%#uBj&pePA`62>xd4aoHJ z% zHIx?&N~1K3%H@MaR28+YqMOAc5~)OVv#=0XAtDpqEJd!;fu0ats;4IqE?~A5JEGNv z{i8j;A^t!Fr$GtUHJBf_!YQNqFbc~=aH9D{WP13Eid>8n?I=RKI?I{)^ZNz9- zv555W7y5myEZSKtLJ`){?qU&&&`wCI--CU{g@w8oCB`~pM)O1*cYa2cBtA!N-s^jU zxZ9`1*z8@Z1l}!S>(K7i2SS20o;c^!+gO8Qy z&Oe%+ASx>pCfnSm@=u@Hg^2o9f(2u5y$Zo4Z{RS=!^26Ns?zMO`Ao1%D%~ z-aIr(m;W6Jytk|^QT{iUz}VsQ1jW47trXRU%o}oz^bGcd;SJZh*&AND^u!7kgo_FX zo064QNvew>K5d04!6B+ zJ6)K0(PfT|P=PDx$#(=jqg;7j3c7sx)TBs5WrjSSe8x0Z8%CQ_q93c0$XVc}bq4<` z^wWC&MV3PCI|O~B2K$SHZclpVP_GY5NybsbXcP2}A}ZXILe5h9S>0#HnzZW|8|?Aq zn{}v|sV|@@a(omcZ8Ly%J1(N&NwkeIXB>A>S}E;iUN0ZVD)|$<#w&+v|A0M)bCW2o znD%pli+;dLRN|%zJC)B(BItM@t5mfWcDmsQ2emy^VW%nh@m+_rWC;WhL>mRi+J*kjuweS@`3i3q!fbg>rrug40>}HL#AJH{WcTBa@_8;|a@KIy# zb4f&PJ504x9m+*!QW1*|LThRWdQ?MM=4U6pn?lWha;RNBh+Oki{aHu^Ea)4B^)rm@ zAH~&AAL0sd`qY^E=>uG$(VX$8{zn!8uP@xWQ<1CGlxUh%Pg@Vaf3zo`5@W09<#X@& zdQS=&blE8ppC9E77Zm4Zy8T5L6c)Q(p}Y)FnJ0L`D1V0AU+52xEH0$eh8#;W>z?)G zzv&Dn2K#pA0I!dX{@e?&-r1&%IMlhWQZm{%ko(UZGYh>wk1L4tO^hdFjW#73xDiGB zbJ0Pg@`m__m)$|ekFiFZpeo;Hl!SQ_mJ%=2wkebF4i!oTdgKMeWSnW%fEuH|wCs*s z!~R=~OUT$1Zx+?2X>*5YE>@b_l&H{|@A3JIXmdR5DC(~YyL_F4#C`^XYb)|C56{9G#BOY9{n^WLV2X%O0B_33& z;^k6&u`a$uioGIXz2Y;Xi&snWXLWIsS|v+ZulOsL;*Ii9WjhT0+FGe|tyY_Y!$IMu zQ{vE!`~P%MW+@p{;*{0OB0ujiem?cIQYRhaT+Jii6<3}7GjVN(m&Hm={V>A7U!h2GKn~vI4SK8iS%sZY+T3aUtGez)W1i8$uv-D zb)zFqjg0<;U}F*$G;vZ!v5qZAtVG8s-brwqBTXSmnQk(F7MMR1E}m(ppTs02iqQ0R zXrSIR?bJWsN$CS;+G$q2lPF=>Ogps@xmFUI^7%9E^l7}4Iuy>tr9ZKFrkyIK#g7B< z$(eRaXbPOgE1OeSDc?;(;IP=sE1T00h&8JJnQh&_M}gS~wb5z>+u*6eZ}=W5#+Bci zqPa_(n$7)NQ%g_#En+hLvw-x^Msez23^qgjeFpb0E-^_|KBZd{9qUvhqmbxSw9bO2 zPQu1HjvPRwKyo@HIB`+VB7^hryQAfIC;dAuM5hBOFTts1FC3el&`7^iHdJgi%hac> zYzw5L6u@wAfK>q*1yIRTD*08Y(;8(ZrM0Iw6n6RC9;IDtt*)nitdZgFNHiA84=2D_ zog{W-93rS=yB83up7m#@0;SI2k>X{;$OspB!Y;zk zjY;H7aS|pIFEh^th?VKQ11T8ySpykLfD#tXw9^J@fNc_@3a_9FD`(p2w3Fb*Yi8Qb z?A_5~+h*EnAjBxC5m(>>jC?&Wx)5u?=c;u=jIc&y$`)a9v9~I8Y2Q=GpuR?A`J~8O zR|T#Q6--R(*@3d2 zPU1DUaw6)`re_D-#5IdT33xoCyBCif=?M<@-k~12lslq@id>}w`VQ#T$K%Sk%9WQl zNs5B=;GNbSSI|`yqQuyQoobDC&;?imj}qn6=G4b)vGklOvbXkxF`qaiVoaYWd_i%r zkWQP{q?ze;fq!L16mKFpnch%=r<9C~j5cl}-cn^|75g}=djnbOOhG);!&&b=hVSMw<}v)(5ATHu7k>eTJ_-t^?#=-l^3_5%ITw108O#l>DqVT=aT7} zLw#d{u7K&s4s#U6)UqvaCTaW8dnq*GBz?hYy8vG~ZUBlAO@x|yNarxpIY3%$BAtT; zjE0bgc#AwZ=~rV^EYxE=ShZuUcEGANvD%gKw+h0P_Fj21#h#2=+zFK(;wcLFgRWqi ziI}sFZRd`fNwV(@As|Sw7oQa*C7GXFEDPgO7J~z&AVa&#Zc1 zANQI*{!rM;QnSl?*2>b&EZsx)rI2x|X6cTw%#}JFk`OHOHOtAT3d`zfmZvxWCzhcC ze{o^HGN#EXXNi?tp@G?cA%?N1n>#6^$e-^aDqQzo3ccA}b1meiiqyW?=TTqq)>w7R zt(ZFv{-V=P-U4?hg1XZHY|j=NRtd2LT0tG3fHZAz|2nwKW6loL8(KG7qc2MDuv* zxAJt;@8-q8Lq0iOdx#RCv=Fw5s6*4|b1P=Ff_Gp&x7Zh!G&jw?@H;VMckvgWUz5B9Cd4+ErHDtiv+2Ys}C= z{fXA`TJ+DYos=0;Wek->nE_Y0AQI!<*6VoLn38jsGRO72Ha+7k)C4JR+Q6T7+j15N z@h)5v&1Xr7k!MH!cI3}dn-nWnTdCGssMa#oBWLNRtBswqPwn#TNJgz7=wEO5V$O<%pwx_p#_DZJd-`jV20tMit>i{})(n zPa7vuavd^U#o+>f&>JqJS2(LhTik0t&+Ytb9OfY7+oDyI%aI1?tqi>gsfl+kuv7K( zsw+3a8uZ)+c4~Q!liDs=V5g_>W7z^bZ8!&aUf7+zSDN{lgfMhG{&4O&uPJk7ONfjl z{7GDe0a6t4cj;;t*y)RNoRqlzx;SzyOQK{VItdi&u8X7l&jsg1eCH@aM1n-#EG$+kT31>LtOsT^n1rCXj z>gJ52Q`>_>0yy-1L!k|k5NI7C2R@V93!gvm1AK<03!gjF!Kd5ft<91J(FoT)-kRp7 zJE_ABkGCdDSYOdNa zv8q|4X&q1_E|pysRVv{;DOFyj+QKY#_jxGA%+6V(?9fF**x^#>1+!!4IZ2pt6C4(y zglbg?!dF2UBnO@^O`xUXL<*HPRc|<-Rm1UyOMX~FpmoL{&aIHtB@!Z|J^n;SSMC7M zKrp}9SDC#<_w3pYik<4=Z^s!Kksd{FbCdXs5CZ;W6fHoEsf;akHH(woRpmXLK3C<10G-Zpvyhl6YiT| zN!+x@_*s{n2Yh`#qaZ=NJSG2(*ux%jWIsH)BcnB%tE4`ROk1= zW=hVzuL(RarK^*e(|yco3!3@I{viTNZhQMc%m#m!KRJhE?XU;FaBA{p50_dg*zt*WKMP9Y;!}a?2Rv zDVC;0-$Fa(E>|vIg@$}+p`Cv1=A^c>7TRg(<>&^GsTP@XEmL~A$Q*$TcY~g9spid< z5Y90ce-bgWI#wtx6+pn4m3oEg&WZh8XHbp^Jc}X>n6OC!o+BYLp2MGrleOIf`C zwTa+lWIIVlI+Z|~y!4}EszK=>f5EEFRZdELdZC@l#e@g(g_PHkfShM8I+Lnas4I&N z6SHj>ok>r1cT(H^7oAD#dVnxDa;+5q6vg2PpY@PNzN{xk3|#V-Z&TE3Bt&x@f;_G) zxAc@NigNqC!*@2<&w zO&?2Qp8Uw7SSYMc9n+xMZ|jP;B%J!7RMkLY;1T zt{JJQ+ZCWr7+_Vj(BqS6;*N!Os$Q8y;MxQ8tM3-t>G3{JO8kAHol;*`Io*)cdy$>q z=>z*F7A>+~=F52Q>-VS71QSoKf;HgIxc${dX^#m(=BJd<%@$uH z&WuPcK!apDv-tv+t~OS}y;y43c$E#|V&->xKfy(0V842uq?v|OoBMf0z@mlGK*nIX zokM<1R6a&(&WMf5xY6(Pa7J8I2Kbwg007w}O5nO;PY~~Y1pGeSL_#D!O2oW$A+xEO zneQ3tDlQBUaFyn$hdSs<6+4KY&WJpqu{>&X7r25&c|n)kQ|Jj_P-P_jYf)s$sFtn z_f#e!!(p@u6CJ{n1(zF|)YGIk{A@w}c6!MPi#1wbkc=J%5Q1Ta(8lA-SHGMt>UrJs zNx588cMp^=?|7amEUBs zI=K=;_YJsq&Z@T4N&TJFc2%{VuIrDP{<>;AWed*DMAWv)T04ayld{%MMFSvn+FCo6 ziwr-txnZrHwhnMo2iIC`)-GCWr;`RcsqNIYcIr6LNr_LawNs6h$b#mN*4k;vKqsYt zvDQwH;>UMu?er=Nowm+S9}aZVIgWLx0VQUvvs2cqs%p2Q@a@RB)=BA8*4e4YwN7gL z(mFehyjB#Ii|oaag`zo-1^!2n1%6BpCJc;RBhpy0XXJBp1i2tbkRQwut(mbxY&Pgo&ke053Gz(XXuv-i7(!!?=66i|?!T3O~6=9DS zzIl)!KdFV+4KgjrMI5gw>Z5d#&vcRYg9X3e;QB>!rHEG-@eLL&FX$q>ql#2YkfRciokz<8Y-<^DY9lOXI?Mxw_h*tGp;w`l^4}XnV`mh8D)U~3(5fh>|uhR z^@gHv;tw7s_>T+|{8hu)i@>~Gq(d5cKcst)?(Zs;5}~;@VaR5J8oboIAp0nluHPxQb3{my$(69i(`$dc^R_M z3Us4r>2aghA|hrL%5G#WAiPM>H%SOBcW9{BG}NCO%2BPfnNSzr6lpc4y-k2>Bn04{ z00iyQn{dMmy}Kow_9=rw>~4sm3af9DD*SPiR3Rr?Z57A|~)5(BWW?5kjCmn!xoVgur7XOk;Kvtb7T9d5^BtYbXHBKQ(4m zH0Fi32xjRmQI#qX#DIiAz8A=-)Z-Cpc8OZS9R~r}^8j$6+Ig$4&f2JU9CoXyo_(uD zHCk$(sN5zYR8Q2%ucH`{DOZrIqmeJl738v93o<;sMiBQ(2;@mXMy2ND>XxdNYM9|GCqozn zj6Ctxo_RvRu`bHCcR&OK#p`)Y09NfLSosnH^C68{ivp-rTeo25L}T9ImP*ZWGbSok zAXotjf%z~nQK>bMW3jMgmr4k+DOxNhA7%&ISjjGz5MmWttQU)+BI6``k%SPN3NaXG zQoa~xYra&ZJh~!=M=H|O!xaJM62YpG5SY_7<|q_^ah~-EW>qw1Ekt1Owj&u6)!8jr z`y~YCOklz|y&=b9wUT{ELWn)0#qKx74omhi2_g2V7Tacu{Uq7+LBw?*(_$x&(x#4+ z>|_an_P7=sWQwIqb}I=X_JkIj2{E2()`~eQ^;C23C@1k$^X&r6c3@%0dgY@}p*ULV z0{DJOx@x76scR)< zQNN$@1G>)giLNVstP7r*^`@%V0_cKS@_a&ZzLwtPGe;yY5|APbb&;=ikxaiRxXur| z;kKemgcm^=w-sT3z1xbHQ3SUY@B4K{q=b1}@w;DcE3yMZ%^eUu69T9RciZ9nm6w-G z2>)CHrD&|hD1fFp91tyzw^Y4NbG5l$Fg>@M)m6xo1aXOkKwhemC!rXSx85$uInl^Q zP>_2DnJvs-C0MUW2+Ze!i6$5YIj&T-WYhfsSZ9}4ZWXM$g zsbC$F5SUfKgzEbt$EpuYcIt=9t`K_>Vo<#exKMp^SX5USzK@?vSeWxq}@Tm|X=c zS3+Q})tIAE0F`?F4#BL8#{3i_s8rgWjEU;x3s!-Iz+4ARROcGVvFd6%fTtJi_XNpqFCoOX zKn#W|x?2cT-7N&Fq6vHs5fDiKk6EcK!5ShVFt=*V{{IooDgP17+Gxx-Ap*>Va>hiv z4;QSPB?RU+V4^zbL5|xfU$VzZ2(j%DLv?)RqWXn$QJuOas@=bU2vm2thgGB9CkfUP z34ys&V-C1SFe~m6%d;C+Hw8I3s(BEZ~uAM=FS;{+=~Lh#%JOql&E$gzo1B|A$(h`kFj zm_1{hs1A%1)iu$o7eEB6zZ}P^VfHS9HAF&S^2TIfCXW})YsU*FZH;Qm@el##rtyr4 z>I@gGn}oQzoK6g5eCwo+Tl~_G_^m7Q<|wcI51QH~>y@Vj}3B*8P-u==FU)(PQs-p><{eV;|_W`p~S%Ni0LSP=$ znD?OoD)rU_f>{@h`5Qz~sVg6hs?=~n%#{$xp8^?`%8N*I)e1ytl7tZc48o||{0F6K zhaMCfj%`uCZJR7rb4@m@Rv}nb5(4uJjX4elP_>Pd1v4ia^LL1#YS|B&n9BuguY|z- zQe(Ow5}pel63p^w%>57nru|`yxzM=#1u^cEhz}gr$lV_n&4=XZy zP=X+)N(jzJfQ*K4PSM`gO0v632(hCOLlfjr5dsUR2!YyY0v|#I1RNEnxw;8fu7tqE zI}nW7qe3tzR0wA3_NZok4I;q&Q(>Yy`GQp_Au#K}6V+)m)if(xH7r6iB!uvH5Jsgu zQ-#2ysX`z-n!o{wfPizFS*baK^_qmh#MwHG*>jp;PMju~foROvAp%UAZemso)*%Uj zi4TV`X4~n4IdZySRz_pafe0`^nr<3E&E5|S;xP$<{1YqybH&Wit^b>3pLH?K4+#$lv^rGgmNT=@NWk3SFb(XDL*3(M3Fg(a1hXO<^R8J=>VU_W z>cL<2EYq~gwz~zFK8-YPoW?(>@!LHn_|?()H$PSn|H;Rq@Dl_#OG5B(qVd-~Cj6Vs z7W}$s{L5z7!@qkrTN^IaMG(752;_Jm!-bxL95-}N$u5u(Vof0i1AaPN2&6qO1ROh~ zoM*)2^$1ix&II5>g@QOkLLet-XziZ>8YW9slD%I-h@Av9OqNDJQE#&J z{1Z~Oa;cg*S$g{knJl%KD;M93=fZB(ta00bG6(v7o~zV;8Eh(Obh#dd9#_y(&}ghe z*>-0s8q?UKIYG}zZ>gnZY-3CI^o9biu)DxgHm<#`~Z<6veyIF4)r@YM6JUJ+Y@7 zU$1ppcsJS?d%8pF2>eK$8|{#418byUqa9KeY`D^mcFt=Vro7Rf8*=Ro=;0=YmzEO<8ivK62`OI`V zD*xY=m;Jt?xzQtzE*BcC50h~;)>g8umMa`N5Wdladt}3-x*A1Xq|swu1cH6qY`2pe zTZO*9d`~Htjc9MQZ%h4ox3X!yaz|1lXH{H|5@V}AP)F`y6Q@C?_Q)=69KS=S?QGkO zD*kMXdl#zO`ET}MbNMFto9PV=!G{aT=*Nev;AJ7Fo37=HYCVY_1+E|;-fW)zQsfGR zGW&VTLXo#fid=!4|@e^G~Oj z?&bIWBj?|=@6f&2TbPfJ{i!dB;V_##qCVaV}mn!rY9gB~D+OGgrT;!TI>g{%JTY zW7k}qtF{yGF^;Cw%jPA~Pjhknn(H=ykWL3w>nGLOW-2!6No)bGu1TUaS2!H><`suM zbS~tYS2`)Vau<+BjtqIiG#J~T7ggdUPu`u~4pM`ja#C{nyAi3bkg`3EcLd+VOY7)D zbO{niAu($o-k~g@OW|94pXM8l7>8}>IrjaOx(>|*ACs6_s?vZ zMCt@Hjp`lsk^P|p%*FfVlz8@0I|V*e-HzI+-6D-f2b4_vD6|9h z&|t}cNTve~rs%s!EO}s&n4o&StF7c zfg@Vb@v)Mz(9Zc-p$)2!Rw0rWv}%zY2->j5_h1XyIuRCF9LM7LM8RSQyYj1CNg1Y# zuX#?4S@p>YtZGFV`}QrT$T$uvNeio-gGv#0?=vgU5`nD{VPOT+Rg3V5`jw?m>%sOq zYNxDE6)eAte#22aHCqbzgH>}S>ndH5@};7&N^mS1Yeg6@?^!C6^;tcQ;FkND(%1{I zeaEz>cFzlJ&56SFxf1TJg>TowIiJ@<2H|oM?h9cw+-q96T7(th1UP5;$*M;mmJmJK z9EkFkiK8A_CXQP7d6c83ReOl2tV34VhA(IT$J2q#k;OiDNAqe}WnLAtiRjG8i;y_pE%M%J%$g*M%iyEm zh|av?2Rki&!Aa*9QEN;q53l=!HfDzoTpy&4wnUp-*%kyqCO0UqiYZi73bk~MJhtk zmM=LeA@8W2wn+`Mn=2*o2!3y)?5Lf(zT~9zdyd*^K7Kre5q!Cm+Ri#^r@<@4M=A~} zKZrGm_+nME0+mY`G^RD(ETDxF0{k{KEZ(ku3e21LC!XF`+fLSoQqv(hOw|?DlJ^)q_jL&$U_qu_kvdu zFCIy+8JM_Dd{tg|#tY4vm<3UC&X-A)7ASHBXdx?Ef+C|mWi*Eo=B+m8Vk#l?HSKUJ ze*85jC1-tw$=PUH#P5EOdmUO`A%K+;|lWU$KGJ^pCF!fL=j)ZvIDDG@fyy*z1m4B;a2DHUC(X_)BK~Unq{jX zo9}U#P&JG1s^;3{0?Af~+CWDv@c5Z=viBVhWQ`DVT8Zvau8UPL_i-Sj3duKyX+nsUBT9dj1OfXBwP zrmrFS)R@*pZ5NMeO{3m&QsPTvT2s|GYDg%JB}(5irZqkAmXkWX1Htt7$F!#SjZSL& z`Iy#}jvwEQX-)TU1Y4e+*NPV2cMEz;HrAte(IzKZ=v8mRQ;nyO+UaI#&H@Qh$G2bs zzTl`o+zC9twR0)W`XbxTSPeL+j_{D zdzFjuMeRVoFQ3~SZ)$C-lp1$FSL4p--14Vw z)z=jjm!oSwXXl}`PzilutU9$BU9r_kX?PJ8_h?7C=msQteC`tZf#V&wIf+ko`GJS0 ziQ8nT350{RJ!W-$Gor*Mx12}SQY+qGamFp@(X-o})WLbnc|;w~!(Uw)x4N%Z%R0Ia zb}U?s%D+!y%14i}>yJLF>Y8Ghhm^yN;u82M`CVpJuC%t3D6aM4)0Pcd zjf@uz-dZi&l59(sRWTaX9v2Q5hPlPDMVTb7jyHLQ~%YSeK^5q`_OC*`RyO)^%Y zcp#>Hm;`fUnTtObMX(qgAoHFlONiUMIZsJxV;>KZw*9FR(b7Hml$7&r{DGYF|H5*@ zAOq8doX^M*axOtCFwV7qk;eHm{DECVbv)F?&ZW$Ot?6aPh zV*d{0Xr`BbGDPgbr={4X&q%SC;}69C$ur>0>V18N5c^XZLhMGQ0`=~GMyhwej8!Oy zdOu=rENAQ!ptO^KP7-;5-h z%x!Dr!B=(_Svp%}LbRXzMzCAHkFEWg=T!SCo@M*FZ-nsDCDS-P#ZAt$&zDfy8T2+k z9Pt7lKf9lg53PLxlTn{?^Yj;vUh_f;QQ=PU>K%UdE4<2k`2A_5eUEBK<^5^2OGfpA>Vx;E(cv$myGGRD(5P96lB$WDiNh+Doe%_ zOn(FOd;;%qe%K96ecQ|Ec(x^4qFYUiZfD4-LGdn5cXR)B=U@pH>YocoY%lk2KX?U@ z5bf30-<(f3zXEmd0AdT>!#s|D723hzX5jODLJn_1uMNwsdsUu$NdFYo!fp)C0TJb% z_Rv(ievZ)2Q!)gHUxUM04^5>9UM-=Db03;YBVQ|_yq`QYm8$=lPX$E026Wb&4^1Vi z`1?asY4&R+RPotEQ|XM?V6DvgfaEy2QltRRa08h0Pe1_91B&y;%$z>~5S$mj&YbIR zA4j_6c&-e=`A$r-th;?2QLgXyaWq{F-8+6f?UtaYWC%Wc!RN2z z#}icyjvr5_zg|KW?~NZ%e@610uNG-f-uQ_i>jqOa!7wf9)4XLaD zcmp}2kubc2%ooSgm=?}cudyw7XSL9zc7>Mv!`sKvIQhI?f9G6y7~cE#aDbc7~R;ixar8tOGygrnW@ z<)N@?1NC`IJ`fmM<)%>B&Vb-13MMI>i67O;q~Dg@si1CJf%Ph>wOp z`OUO``fcH#754u#pUO6c%y1x1bM_utKzA{XU8(0Gt%|oW;QK<ua+UQP>PCh)8dKr1j81bKATp{=<{U=7*F_~eEMwq46wXc zPoGV@zR2e&Oy*MF)fY^mfwVUjdoGwl`u-A{^}7o&-IcrR7n7*ERtT_EhTuFO0^I$J zNwfjrew?E!Ot(XVVlo66Q$o^o-y1)k?%9u)q5t&RL|+PFFeRt#?VwUjH#k+0JM9A1 za_?F^k(SBl4jCd<%(7QJx_BbJjP!=s2%CrEvU7pRps=U*bn|FOk&Sq}1ZL0yGnj?{ zD5VaRQtR6|lJd(`v9Ck1$M80Ww>Z3qPw9H_Z7$00P6SglFPV%o{->C8A5*k zsDUz`@D9dZDB}Y%dis0;2kaD-1j={`U|hz7Qmr@=hFH(M0)TqYTUKI(Y_k zPDL#;LIGIoo1wS!Ik6%YahU|BIGo8G(&e$!FFw}J6(3)gH);1&>i8<34>W8?c2?}3 zN;kbzLV4?VPo*7S<@24?KZd*dz1>skF;1KKww9`T`{U=E)y4Fxe7nl=_5=C0*SC$| zn}M}aE6`$!8`>X9#p0S1Gm=m-C*^bV+w0p_?~9uY=i_}|&h_7n@PrBm0-8WHT9!Qa zEj3Ot@i{IpC-&?ajE2%A8cg8~#3?Ul$E)JIwYUNuF{x$ZAB?dZw0LWh@^bp5 zNXfBPNZq26; z-YKE-1P){KTcKEj#^WWGZ}mkIbTt1j9QZ1q%7W1ZmEif9chSOp=gvvAO(t=H3~|gS zTCR#8-#Lk5@8XV&JMl@B=Tmk{(9JRg7@s4^OF6B+c*3;0OuuEOUH3988Hyy1JKfIa z#y_g;V%6+?^-ZCc7Ox+jcCzJWy^wM$dwlU8qWS+ZTBir!#fNyyOizVqJ~H|xqS7=Y z-Y$Pnb^i>avK~5i*Jzz~zE?uIE$gP!CHDzQu8<+*!6z{h`;>h9f(#LRA{ttzeO7Us>HGNaqiLYL=L3u;|CLW=5t@mH_Qro;LY`(Ivhcs* zynJijblUkZv9x_EI*l9GO{ebvE}@D$)=j6&ZA`z!;2JQ-yrD3YKU91UNDTXQ;Pc#v zlFyir6h@~4Hk|1yt;au-n8Q9s^(;8FntRjgo4n!=`KqRmi&O1o`l6?BC>ArVo@g>| z&Q1EZ)gC{0OYPjC<%{*0y=I&yG}aXmy*HjamkuhRDq0cM{k?&?{%CJ36gKr>w5FrSIhj>WT4jE^(EG& zjVQp)40C{b?n`_Csi8{5e)%OPiv~pWLPYCdiRfby9l}GDPDC}l0RR29v=|Y$eFeJW z9A>*5bo)5EhE^bY(!WZmEJ`auw*>$FwbY7;1V7B9E<9ZNFSMz@JyNHRoC5Y(uu`ew z<0EzY&A&>h;;SQddeO%0lo(7)Fowtwm{NE;%x6Gi*h0Z)xx$2ip^?E*q9@s1<&XBx z&AtV(8xB<{#UHA|QRPy@N5|T2#xIW2=>jsGZN@ufxVIUgaI_i2GN%l!omfhGx-Dz< zr%Gm+Zdzl9bs)Cjt0(GIqzw`LQSA_dgTf(rs0SMWR-KvoWIUBp%@J2Rvg`*6+v12g{i$^*dyZTWE6;_YR*w_^xHl(q;V3dJ* z!y|Pn{z#~DoD88*yRrML4SQ5ZKP5xJQjOg+^6j7u5o0#edb-{e~Z8TlZp~L86U1aM+Nxj`CGImaj0? zhYO6|)-6|e@Kflrr;1Q z1}GdYhI5mHhhw)v`c3F_oLd__2+?X_?2VWu2ja{P5Hz=Xq6t|T-A9U*@r%A=EzpV{O(c8_>v zw>i>KpHel-*tx?g8~U_7ICtMi_G*e3r1>qm<6+b z?a4yM9V7FInNt0nvkU(>R4;0dHc7+8)2dtZzot?gnor4^QvI4& zZPi2a|2@^K#17W|jjv{{dtcli3a#bprkyi_b@3D?;j$~aQ2dmxnuP~h18G;MYDt!? z#OOg<(R%HmS;4O-kkXMY5f_2uvXXRn!C{u|F|1RMSIO2|xyT2;RKpmIm!@fzQGp|x z78xv}`2_}#Wv0P>4#Pp_OTNV1VVP*ybj;B`TwsVnG|%L;6&h4HaCiaXCK4+_Re*d} zXiyoK5WWk{z^k*13@Y4}TR>%7s0K+~RfO+9dFx7b((}YvmiNJ3U#in!kwK+>r8-R; zZBXgnQk}jv8e@+?mg>|Y!IfA6bJ%p9&iz8<>oOT)WfP41hnQ+0vReQ#@s;eju|@b{7Pu@dKp5KSlUtX*bJSvf{yau1WpqA zFg2Q`QL65mtL(uQPpNc=maf`YG&QQL<>r3`CKg}OPMf9E&yO@HWx=m#Q2dgyO4qOO zrT{97(K{NNg}$){mBr7ZcliC2c*3UudRJTYQW1ST)}X?{0%$Z&e`ogQILvUg&D3d; zEbJB;qVn*H>T_o5bUt8t7tGYDx=?7I4?TNqrcO5@Dof>vHsoNfC~fqQR9eAz(+Nr` z)vOe*wG+;qtNHM zGt_czwJ3G$$Wv+=V!F_ZFx@#-I=ys^m+8JY$)LiH(J9kCVzRJJHr?9EFu@%nnoW0& zjAqmQ6&|GN-i!arbYEw>enH2kd-xQ=mQB}>ho~^!^YCAp?mhe%E;)xA)@sKaFp{}<(6ih~wac1B=nZ(s&*&t8XV45s5m&9l1dK?+WR5`Ar zP=}~uIK(Ppmkr~_9k-g?oqw}=47m?x-PqV;#((*l%Q@L|k-3)s8s+62I8`j!LT8qx zBxnrqxtp^D9=png9IyKeNuwtUGmc$*eThV5ZZKMDB_pQr?Iv8_UO@eC2@jzEh~W%c zQ%qc)U3(arVGLM)sNtDBrDLt@@a*8MR5e(pFJZQpY#POsxgj2*IaKGsF_fjo0nXr}}Be z{~uXt!-7_ogMqixb23xqWIktPq|C?yc4tP(e9Ww!uhV7IR6b^6Swkux$08qjxiz>I=&-M>)oG)Ys|LY|Vy z(>HR>Fe}ASVe+^)0%qTO6$=BfzQopEdxEf2f^GZ_#aVWP+~IFlgRihLO-1b|-J-QQ_I;1{Lnan{7383%~kPxj|*ys_ABa zdaoP;4y#PX6b$#xwrs@{(q-H&WZca%mR5+FgWbF>YJG)4Ribm&cC!Rju5M6oa&GtJ zo{0(vAicjwq<0sSTwY;Np?+imHs9W@vAt9v8$6e?<493Xdr(eamg@9!g+V;2@`Y4n z@pvI@5e~2d3X>{RXBkwnVY*IrvzQfTSNbHYyAPTZ$YA%OI6Ovn7;Sav6Gcj5QbpG) z!%@F4Y!d01E!r_l8M)3?wXD~-O)MF^Zx;OZ9v^R*E&=upys^mGdt?EvpJPzr0c1ZG zjniyYkiIzv&e!5W!jp3_Y|zIRP+70Icm89dH=O)B<&bmK!rp!8q59+o zrm7w%(&7OEsA6*s%EhT3OOFyd>X9MRwK?3u9C$NmpNxM>hG^%x^#ZpK6*q+%kSGVY zh1HP9%h;RK3Q`qd@zFv^QIIFerROI>pHwCbbt%ee8R2pNbbyTj7+&&%003`(Cpz{|_&9|m2- zXIas$l$SF&3?j2PdPWEvLq1B=Km9yyP;;o&%=2i%y=x0-M{+ig%r=f2&Y&g{j@Qhi zQHSJTRX(dVZM`&mipgG{R!@IV+C>_FC;RK1VlvYA6nxb+nq1Qen6dcW?(GRPY6VQI zs=l!&p9{UZ3Cjp@Q zxAgjO)V~>LVU}0up-AFHoyThB6({QHFT0Yx<#JZ2LYIF|)Yn>}gqeC@9*QL9=%!^w ztqT3$PPdCp-!6(yQ~RFfP@$SGdt)?FWe?Hy+UBJ?t*n1>3J&098K6zh@_(yje`aroNtI-Cdb_-Qd}xSY_dB7y*6)EC>~$HZziD2 z!WM%s=Nn?H!u$o8Sp4XIo$i;EkIE1n*f}VBK&O8L%u_2dUnG!H%Kwp7DP7aAg$9Jq zCn=rRuu*By`K11OopvuUs4^BelYyw^iv*&*E6wdhlc4-}5fzGTiV{siSJt^um>)iO z(Ij{omn>Ap!2~D{=!OC?dYH-Ex8|kloUV?vWu1g!h`DKt2adl{4@LkxNNZk?~-6_6=u#SFP7l%;t#+#0_<)V+}x_6X2)(( zK)YlphMHbm;m{m6`mFHwF0LmPRZYG~Al~EKY>F2)yS_bwz3@;r@F^1;rp_s*|5}V% z#+y(i32lJ>M=nu?xnce6V#1M5R%nYEppA&#yaW>{ULC~{VJfN|J%kde@6L45wy|j2 zkmeV*2;0z$q(s;b5$2ubErJ-v%YA|>ouzlH^e_}3vQN;A(xt832=W#l zdgC+&V&pG1s4T5Rn_9GbG}SFNs61_tq1;X=wiXr+OehfB3E8r@Erksiv=Jrl5|W%R zL&yUgE}hp#^cY}y&o9x5juJx_J|c0(Nji7I z;C4_f*rf({<9E(h2s+apLZp-I4!)9XcwzNXOis>`r}fIe1N0kME$2px8Sw1!Lhr^^zDZ zdgGm;OSv+UmCq7X6;)lPxLZJ6O`t8)j2ID^80@99Exlvtw=MHR)~0Kg29I_#feWTD2dT%G%>@; z8IQ6^JKN6FaESf5rHQn2wP8@laT7?YUBNEZd9|mLR;C%-h>rNIAPWijNIdaN+UGeu z8cx1nL`J~eBnr1AM*qw~OX{5+!K_JK{XyC}BW-rxwCOXlS{)N+RRD8iY~E?NQ1Ca0 zv}e*5Y4~us|Aitl;t5~E6vkrUq)73%B*f?EFGe;?w(zn0OW^xE#Lh601TzXxXx)6C#jyG!tf}GL#Um8RAR2QuZT1tC4nT4o^jl_ycAx z(i^f&6{^V>Z;$(3dHrZOytpXae@S@>$IZu~s^zz*Ji;J{PNxtGnJ2A1Jje>W6$TMjKur zr%q~WdFhS)x%kpmI@L6(PVBVnRvq-Y_}fkCpNp?-!cZf*s~P7pp7`%8#WY zD{0@0k(1Q-Vyq#uzZZ9R>hzMGkxbu<+ndGr;#j9n7XI7ci{EMfU-({}Di_g2t4tiQ zGo!qYnrb@y?X(ZZv$}MuIN6}wvsUW#x`gkSAqsOX2H}5QsZ-0za0wmi&t#Q6*4reG zU6<4G8;?=b@}r0-U%FcPIFb+RBn!~jMj^wiD|MP9iSCghNN{9cX>p5A*8z2Oi%v^r z?6+lz`!yCr(lsqQy?C-gvrccpxGOi*qSFouQY-;p0`N60I*nUt(5#ynOw77pqQ8(K z1i<$RX1x;VG}a`uwn&Bmuja6YEBcDH)5%84W<6qrv0C%{+F>M(G2_xD-FuM3)+zhTq{G2Lfha?=Du^; zRQv7jA+Z&OmrtdCt;7A&VKM`0`BwR*Ny=y- z&^pfdy7dQ&=;;=f?{&zB%(wl&mQw%cssEhO`(+mP%Mg6O0W)~BMW@dpFXvcAe>xO~ z98YPLIbMoC$gv-PkmK`Ov&wNp(uzl|j;Op9KxMOdvdZo;MD*_?v`T+8j6djLZ)n9w z_vlvjJlLvK@b7#=DZa2?!2fdEFu5lm{?=wt?t}Zs(rHqcJu*ZRe81<@`^VDN?U=j( zY^RLAOoo7s(TEuK0ASu`%W+!m^OsuB*zc;2XK zm5FGKugbT4s=M>uf+%DP2RAyQPN8`pX=&yBD5<=&+3LlVO>kt{#czsSnYG z2advwIo&W4P1KX87*rON4Oq=VgVrsv+-g7vsRrp zty58bGHN`%1CV9E^FI6;?AW$#+jGaZZQI%%8#}gb+qSJ8+xGu{fA!W|b*sA5NjfJt zr*cxs^K@b(JEmiCl7Pg!b9#W+MbqZVu5X=uG6SzU47*j;B0s5CsgLGAt6fE&ZC2$| z*B4h1f7MVk{|*_URZ%Oj2H&3S$Q@o3o@{rTf?oQ<4>Qf<(p1gTr*H;3feg2Ih>In@ zWH%aunNiVJ-_y~cT>T?g!C&MTt|#*%Kv;9Of`SSUe!LPtO~thT}!F5N3i?_M9rN|1r3@np^C>Q77+Qdx+#Sp`n=uX83?mGSp~6x z8JccCumZ;Tc`z2bhegb)g;FFvO+UEG$Ie2-l3ZKE-WN*vp^($n35r?{w0x(`A%`R0XV`(*3K^BCFD7P8~*Q$6)Rs_2iNEhhe36|0Ga@ zOsLK%M*Oci%lJe%AHdMbX#f-NbjT@MkDwBA&~+rkgUWoalaK-bg*1qwsLrMY`+Mg? z&w{mR2yFchySm>~Lc(yDr4fR@=7RhCgMZh3zbCnv*Kl=j1VX?u8Rkaux640P(z?M@R)I6}Q~A^P&E~rQAca+ zLWMDV(e^}%kXrpl)6c`g_iXFWZ200;p>h@HI<{=b{%2`cwgb5kFsPcKSOel6o4_)HM$Hwm9RuNBrN1 zfghYW;Z(X$Q=@~}by#Umjf~>y7S&Mm+kbrDADc(>s>MiQ{M5qq^f$lV;Pd3^3sCbz zz=Ca2f_a8A4K-AmNeZOrS3#ev$;av)$g(hj2s5@=31IK{?hpo|TbOP&>6S8#=;<$E|HhApiMrRLVU+cH9x|csSw5 zun-&neH=*vSFJU2Z8=)4`bgM}w?&4#UbSUX6?51WtS9#@XgGF6W12BYKPZ$p><*c4 zJ`<2-raL|ku0FoGsT`X!eJ3QiH|Py+~RjrXIrXngH6d(g4Y0opJ7y@FXo)CWs2UjFs)K{baI z)`McPn0BMz5z1K;b;&qFPNVKYWsao1`?bEMfhPvPb$AMe@NaMBgam&jIR`A2EVlg; z!AvxR!nN<~nsnH7&2YuQ!Rk96I~8LA2mW8#2%0-zj%OBVj!Wg?6Ar-pCmZ1^xEl0I zQ*SM-JLNNb%oMG}I^_lXa(`X%Y=6=(>20xgI+YOpFpN2I>+iL~PYezZb(&)+Ci__4^{3Jgi79mGt48fp#IIF7L;!E90X-$UqxGgI|dZ6 zmpN@~tTztrb>2s}JzZ){9)<}tS|UghF5aFesuFMV>YZGUV2Y0;Il{$lL z_C+;;bNqG0z0if3ZG)8gVs|3_uoEW8bQ3qDcFa#TzWa-N%4hnexZJkNbq$^2b5o0Y z;T^>=?d1waSC_oc>bSc}`nQC!2tih_;y-+pEc1Fllur#u2+wUViTj!W>ZT z0jco0Yv_PT5h(?IdPiK4y;d#qenm9m7_jG9LA$LfcMxK%%hVD~az`B?WQ)T5RNR=h zdj;!UABE%Fgz{BxMrSsp1((KefaNT->B~LW(A?Mjgix}OhZnEh=kH0QPWJDZZuJaN z_9RBW8doBWU5;Sf_B<0*DUI{DM8eDG=cbCiCM-u;8?3)?+#;y2DXBw@RDF7~&-v5) zCUH7d*7BduzJF@aFJe{(NtL^sH?_rIr@4;iie80CRZ^iyH!o#yIu@so*|6|V@runr zXlxd$4I!E9QwW3_AE#(3Bm-dlXu0)bNr{$Y{wZiV{fg%b($c3>UWP%WTA)_16d%Qf zkjZDmZ6mNuHw&8GzCFGI2!1@bj|p#OkxyY%BMaW!hS6Je>o^*1f%E(OznrJ@cK%jeF(G|rjCeFt2(x_HHdm_d{ zsx)U&n6>8VJzFo6 zQ$;8K$ZcTINRSdJ0Gt zGJt<=RRl~2^~_w%S?wyQsWwMz*A~=tqbUhq&sh~l^Pnqz;q%zFZ{;n7@w#^41>~I0 zo#jk|^qddZH^~IP4fO7IbEW7XQ{7_6D?Om+A`7Pan*T$5W&6VO)m$+}n%v})mur;n>W=C1{6LHrgb zUdW;QL|Gzo$RWW;vg|e3r?B%ujjHjB43j}IjKHWf+AChX5+#*@mxh#p%PpkuMy&`n zPi*!qTMcz?vNo2I(sD#H@`SR-8b+m&kM|<^4;9G;%`%)>FBJ(c@xm$)Dyw=AnPpt% zb4e)nsGRsdBGZxyroY6{yrLn3Xx=5N@p{Okhk?m67`W%7-#sD?k0;y0r^b7t@&)x6#L_%;CiS1Arf;)?)J(N0rn z-Ai~oOQaOP2+k%qddxnB?gTyj0quZec)O%IneKeOE0O9{GZ4LbBHMrWbag22E)JGK zmw5qu@K-3;Bj`J0?(3gF3%DD^Jh=v5q!&DZT<2oWCL13{jMt=rZaoL# zgc5fLO5OOii5K^gU&7wVo*zenBMeXuf&iqVNFb#4D4d@s!O(iFUqiIGU{PP=3xk(;LT5FYQKAJ`K2=9k{hwfPZL&v@#rK-nZGe z&^~ma6fl;`1ZFq_b4xJ5zR|yS-nrsVI-j5Jj1Kfb9vUz@1mOJcUg6qUUw%< z@uM-PW}4?sZ$&A4aMd~4VAi|lCClj7ZM2Dhq+NWbF#oAuKiF%gvU4x`R52AetsC%2-s+X=6AR4T)`FG<*9Q z$(#K!(dAR4T|$dWm-zZ%B|VJ;NN|ii{#fl|L)ht=`b6GtUqYoye2sfXo_AlCX>!JF zqUZ@n75fHwn%bab#+r2W!Y9sbw1|}*CGH`+|Ei9i<4{36EM1>p2|?BKC&=ncW1MdA zxwT7>BUjN&!B5U!Lb{)9B&}`r{hl@-fOGwK2#|lJc7Vj>*lFh9zo{>{{MAf}T3V+s&38(YS$d?PwLDUnK4kH2$G>DhW_>`Ej& z7U3EUHUGbEJQj2$&Df{*X)8(*K@YY8dhwDaxz%Z&L}q^UCAIbI#Vv+kt#u&3AUjr zXFc6iUC))po+E9~(FU!MPA69@zCwOG-CVufhsAycKgkp$i8{9rgAKMbUWei4ovcm=O*-0eq9|O{TiB?$&8Tn}q+! z0Ia%`WIGI6IOBX27`6h5p1h7$<#dK9H*ru_WU%Q&o1Idm+$mCB-I;8E4}jG& zWl6bnq`L46*#2f%m)w0f#LJUT?0zhQF7~nSu{AWMt|$^Aaio*Txa^(%q8MAyTzO72 z_mqp4YGA{l(8AcpF)E;&4vDz@w6J25O`1?{;W&73*okzAESu88nZ7SGOEk4&%Qjzo z92PtCM4W0_R&90I2&Q(U%X`vipwd;U2gj`R>{dZ4ohhd3vWrHPk1hquDs0H4myADX zF|Fwl3Y^q14z#G0V?|V5a<(x%8$q~tmyc$Pt|27-b>pf#JdNckcgfhYN7bB}6~tB{ zt*i;H`?dvU^MC<3rsURpWz`bKQwU{;ZWuRnq9^s5#8aDesu@k>iQ~U_>b0zL`L+~K>a~eU$IGI$9NPab3XSTIhjbEuGrok7K%3uG3;fGO?QtBN1>eyI`;+Zg za;J`IdH%*`bhy3={^#a#SmX~{f(PLg;22{u61KkU!$6S@Kog?R;20sN4Zu7QhnOmu6U zz+|`<`!Ft{vq4sF`y4S)d8N-fpX57K`P@8p5#6wXrH6NGX#7sY{LhT!<+)6VK^@Gj zfbmZE0M?rhega@;Dn`EwZDy>PfeuE8GXdb|r?u7>PKxjqS3d;KHs)mU?YHLU!@~M~ zDN?}=RakXL{oM+@IC1o~e6;uStnm?TB(%mYU9yLb4J4Q;sS*C}>W_6@vP&)v1u4L! zu$elXp;vlYWkZ4aFm&F{Zl;;|MF5p}pCaO_is zsYrb~&_kH`@^8M>;?2PeHa+csCt-s@m7)|<`dA2h!^P{qCR}`Lx-3%n$Bu1KF5^ST)q8b+ z+D(lc0=Q(0+D-Q#o*iHNbb;FHkeg(RF8C5{{zc4jjcVP&IO~JGLk{$hsS!DRM{rfi|dx zoc}AmS^~_E`Cop_jx7!_Ux%%6qg%ppixTck>oORqL4F``)W1N*`hc`H0h0x99)&Li z{rTG-h0g^2;}E+se_o&v=(};7fn_p1Ih}8iv#g7@f!+951bH#i=L0^P!daBq5Hson z?oo$pjOr8jZ|#0-0azJ&(&c}y`tP^OfQ}dLx3GYf4881^c1XEe`2NpR10N>>FlFUs z4+rdvG2#1d3?&a7ODB`RK!s@!=U{|93OVcF!12EMC6x3>oZY|7W3C(A|3dpF`jO-(t&PuM5n==kspN zW{7pF6~Rd$-K96VLdD)cgAdof%MD`=rCMtrnd|-yC=X2pziC1I*P#j<{g_Sz0aad$&BjUyp%Bhv&rlnKo!(OZ2 z#@ySFxxaFwgwT_gpY=y!v5cq?YBEEeqs3lRqtj4$`VKckok6E3zp}i>yNBW-(TFDr>&Vv$H0#W-nh0gMT&E?R8hVKSLHsM6Y+8Zip7NsnO@bxbc53i zm7ecII6H9lpQfzWE)cA|r|~(0DIf3ojhZ8xAg5Fia^Nsiig?$xzO`d49*$w0KJ2tw z5d@bGk~~~B?Mml4Tr<5S#4Rnd6%^nokn{;@FE=|%mK>L{d)HevFri{;~mQ6>D58tY5;RL4#WhU>b|r2*58R5iap`YaJsF^rHf2rJYtl%l&Y zw9*t?{lhtL8c0E!I{Od0l>5SS!<`=igdZVQExo%(F}Nar=!Em%;bh$P>Y26{6Xzt- zFe`eA((`Y5TKl1hF6&vn;BuuCR{TUU;FNK@_Uo4_-8LwX z5tp{)K|zLOs%k}w1bwg6hEh4lG(7hI(N|jl6O~GK#`@E^jZ%X7zj4!y57|BTbKR`} zVspubTKbP5DcLXMAC!sp$i`(sDU&SYc1W3|TTqCmVCQvZ*(gLgLOQQl{3@EyUEs+T z<;s9wJTHc}!$e;T*<_|eXZ2hO`$L(^6=a2F3_}nDuo-bcX&c9-~C?c{cJDLcrMhJU=)OX{4%HIchz+| z^h!%)xYZ@OF_ga-Qk*X%2r-an(yEE==!S|K(&y`R0e);GxgBcnod-yIj+w$@QDg^h zEQhl45|1sLb3-JllSPrhvf(45<@%M!B&hMD7^wWN-rGxe-&a$>~>6EJJ7V2JFIhy7*raP9C zvGqA4m?PFy`L90eg5fLu!Y9yU3GJw5h7@TyszR@b^b1219M#^c@*mOFoakhi@7V?w9?znU zSwQc=k-cR}1I;S$1L&fkdX72JPhi1C);`W*8G*8jKg3?~q0cs8k48OW5NxT0QDu21Z5swhW=RA{%U zIQj%El#r4i(eqw6(H&$COOe`M9 zPOP&{(yahm)Fw|3#wB(73zfc@9wUq)rB_K{ z`cMCs@BL~PM(2b-eMI@b#GbRdvk#)V#-A&P49LNnJKNvh(m*I}W3ej2hfiM^8aY{H zZwO>>0L6LxvM)|RpBtm~Ov2g2yyJ&ZE8%qie75hxuRw|QvWruO7L@+6{-p!B)&T>) z*OMg%p^6HWODbQ%@`X2SW&3TEt`+^c@070Zq~A^a`6}0X5NfubBBfp)@H+fD^IkRZ z{`a7&yw!f-yy5!O-jNa=fQp$Th zVu_vRA7S)^oW|`#Za%qFTN=uqFKN8z%X`v^hm$sjlLiH^+peLT%Z`lQ=1@D;H=j$O zCY0ne^2KVIPy_^kn*Q>5oP9t0VhyM9_xgeJ24is+Kp69t6_Fw(Z12Txc}0P<{c77#8ye?mk?#pCE&1%&!;E%KU?9te?*wU%Mfa88%86cRmb-raxRa$ji-9 z=Bo&=7b9pG)=L*5;kevIso^Dspw}okk`^)qaa8ZF;EP=sz95eL0z|3j3qWz?$c`iY zd-Ie0U3-Pm5$&mp55cI0yKtY+RJ$d^H4p?Gt`^UBAmK8eJc=~mj|8#>ezAF6Ch}|p z!>Z)&r;0%hrpHJ-ohR}PV?;!hzNLX`y6wVwix(Kg8xbJeiJQ0Va*7%WBst|yAf+*t zK&OF~yPAft?GWQRo9X7m{fYPurgR;naNeZdvr8^IrW=#h^HU_BNWf)hHaX8x{U63xDrB-4jgZQoxzEs zH>H*x*tREzs6}X|n_hmp>f}Pt~UrHW`5&dTvaPx16fHL<1@8 zK4_}=BtQKR3oNEf>(r)7u{n;*^E*M_%kw&k-+*7(Nn>V01%ax3B(!5TuR$;k=geBd zzHuf)@HSl{Fit|DRO{puIF*=)^&_3+=LFaT@}b%XDlFI7*r16GBf@XbZrCIkD^#{_ zy}lngaLBY*@irGD!v!hqBynZcse%kP7sy}@Ezk4>$~q2&@y*Sb&`atxSg{c`Y^@J$ zpxz*Unn`w89qUaY2668AlzdK_LsvSoQDMyS?OXv|?d>E}=|*F(OCh zM(#{cP8%?G5ys+-_7GNqHw&OX*M^RFj^-wb$j3}HtS1#|=rQT)#=KS<))~l95u#Sr zR{%yoT|lVVqm+Sw*I$oxfyv#(_a&$Eu0_#=p|hedL#R~~K`AG8I@TOGO39DKQ8Cqq z@yO?eI8Qk3zu^nN_6=&e5D!T14&&V3NrV&qr^u27+)_(wqBXAACF*=RP@0y@9Mbwi z^7Q_AJKjN6v*gr;GZ6eiqz>=~-HmND#BGiaita9r}gV((F?DTC&{Y%w3r6xN@> z$cvJRyylI8NGL8UCmo9pgRug=gt!*aiU)Gp0vOZJ(B8g9VTPfH!T{z4w|*@Der~nd zmhk(KN&vJDftz$f)@&k+8~B15FJWs7%-)Oz?mKT$WBAOfA`<%CT$ao?1zhmw&)B!{7n{XhR?@rgs?xjeg+g>ioS04REi)QB4CMLj42bRR@s5w9 z#R|dRMDl{JN`sYh6DbgocL}T!QO1j>6L7bbvc=`oRt=frMPgb#6vlBiLvXH{esk zM0_LJZ*xmd{+2t_^42sxGn!HEZ={hyEH$%IocQ266icbdN!H>y(n>ErPXyFl(b++Q zYjvD!Nu*o{sGFCca;F!o=&v}x6)et1Z`kLX-9Ad54dut%yK-)Dqn1!^o2{_$cr|~J2LTkGrJ3aoU-OM9rv~#i5aAvUzH@;BQ z)TcYqY&ijstOUXT_#674Jom87eu|2Et@#ucryO`S!sKDQj^!1TN1C?48uC45fvx5J z7VM}xX=!k}D2~Ak6KI*hIR~}Hl36d8{)7| z4JdBiN!Ber#u^)E`YA_`Mb0))V1)avZ6al-tlkuR+r4WDC)UgZMI*`rrM7P|`(u=A zdkhUBZuMdwFIQ+O{1ahbKDZsh4n935`X*e_>!*-aekC=-<} z#b`F3(Gg&*aI22kD?3r<1{7}hI{aYd zc)i+Wgii1C;d?xnNyTonpook4drGaHvf{~h(ixtP2(pV7+uyQQ*k@V9IqtQ zMK+kfOl??lMwXguBegC7o#z?0Q_oqti&5NL@uEfKKJu&n%;w`ci_Hen)R@t3M;qKD zMK1$ogIgPa)0V9uM1gGgEj;Ldm99(1psU|3=5GJTH4jf7fOEUzGFkZLdc|pyQYKcj zZ9avPJl4D#twkRgVp9tpY`6~$Z9sRl*#4X;oqpVZU1+0#(+FHK?j%v28rnEQB zAo5i~T(8tjQn>IO)L1f*6jx{1%_B%(l@(X@In0|wLG8wOFjQ2nR%1EL$HDH~=k$DZ zj#rH-Q0`4bp|4XYQOw;TdTMKWsJ z;pTu?EjRbSHTbSm+Ne?EC~jBzCh9V-mEi5}^URf#Xwr`VGx%hz=yjf@k$V)jxi2!y zcwg6SyH5Qz!C$rKF_+q%Z_bR>T440JDltiUOw;?YOk=?8u=&AjERs3dU>&79TT^Y< z;6B^reHJNw8D^I0P>AiGkq>rV!plt0hT_Jla7z{C34Yi@UZ~ExiH)E62kH@wXT;zt zF;>4@e;v-_q;&0c4aLpCwS!Nr=RbOFS2}W-y%hVk4)h^~*Y85PXK;W(L5;8|$XhwSb#H`o+!(W%|sh%b_sQ(!Po>TBg;Z672By zQFgfX%BV)kw9DZk(NbO^+E<4t#k8pK(JmaE>fq5Xx&$|(T~lJ;^nC+u2|9%yN5Y^m z(3;Ieij|`Dt%urfsInW?QwD;E${^wsW-el_S63*D(tJ0G2_^!}GkvTICG+^J5yHAJ z&1$6;#A4+`d9l^$f(gZC`QoR^a@QTdjWeVN)iQ6Bl1Z_F(@*e2{jBDDGo;3UGlbzO za+>p^Gh-W8v1ff}`BLxqJ-w6O^d^18YYU>@^mQ}VE=NJ-8~A$kD+gk9_{?bQj4ONR zYKbo_F+eV@Z+W8C>eTwV>gbgNL2r8hsLsY{!eeUTNW0{P{z-4T#>{&+UnbS(%`fdk z73(E>_|cwt9AEXddaWaD+bM_Dh%dhdSNsGagDw8Io%5!6^0M)YPJ$-NsLm9&q@+cy zjF^N=5xrS4O2N@2{^MP*j?{yYKyRpc&&w#E#f8{g z5&pUr6*%0vC`~}hp=7lOhkH0819j~zkyK;hMhkuB%xBN<&va?LHZZ^gy2`RW6t&hL z$z*gHvKY<3#qjq)1_XkN^184ppS62qRez7F7zwgf6mwG|BilNh1pKC{wS_^2w>Ug1 zcMm{rD7u9y@nTZeuAkGb8d(L)Hk>isr<)>kUJ?>^3ij|EeiJQX>gDKM8Go8(0o0&O z00q+=>pY4LOV5}U`Jy>WFw7x-5gH2vu0*A-l95WEFOLl2#o}+9OhW#)FR||0x>-LYCBPi~|(-M^`|98=;_3N0;t?%7l>yOhmu!&9>aB?Vo&a$3Nb;W{W zutlI@#Omz#({|kouDi%^T3&50<83){j0@>qhAN%zvVG_YORCuH^&zWxVM1f-A@@P) zJ3dZ!xf20=%k)YawtNcvbksr6*P{e(L{T;jCG0HM1=@l=Zo$0aNswb9H%hc%z7A@g?I-vMxskPxuwNk>t_pjnO9{CE3q5F*sl?n?HqV3A#5z25@)FbN*{v34AAx2${bAtJ~#z zu^*U{n1mLyBdK0DR~@`c*AkuA@^?~RzB`ktUVwc5up9YDf8?Xjy`nq$e{FElDn|DG zoJs8$HXeoKEL+Na#1q{X8rj~IM^0!E0*$^t8reI^!mBczVd2lXaG!a|ov3Pu+zQeq z(QDZVeuN(*E)a;T<+rK{SwY3H)2(L6N2&;`R$0E940;l_2tyU6G-dZkRQ{9&X@a_? z?%40LXC#q?$iu9IZjqB=+Y4$U0JQURmX1H$oj_`d-fYZA@4?i7Y zO>zwiNr9q*n&Q!<5-_v}(arBdI+P2xf`k+k(t3;ylLvR!wg&UbNS++*LP)%s$o0g7 zTxM4xmw&HjaM%;tg((To(^xclA^>AM`G3()B3d*kGGWtL#Q*x{%1P8*EeWa5nf56& zTHN>ut9}u&s^N=g=?Feg;q0eBrMLl5A|$J>JV~Y7gC>3`X4Z8bRRyei41+Ak=3`CF z_T7+=|Lximjtl{`osU3tZ6uVN>`MwLf6XE0mmD4Ubua3h@{ zrq|2kv>(p!l@3$Yt|gE|k`H{j6>9JpG$S|LzC}P=ecbNxhB@q+%q|${mDox^KS2wS|Ml3#-xiA^smcePckxwPRcs)Z(51X#P_5nKp> zX=p_fU6~@l6-Q-khTpE|5wuRPNOEQeGLl)T7T5$ZeD|Xiuax1NPF0s{dV*TDT5Bs&COrF&oK#?Q^V)yH3DlGpRV_eu zI-sjMe~0Hs2Yiw=@kpF;%h5K3=ltaNaZ6HY9@ zxOHpYP^Ik2^EAa0xE!arN^eRL&R-~jmLSy)ws90Nfwf|eefp|?mDS*Dh#&qVfh5nI zsA3|ufB?;9o1;$leem0zn?LvEaN!?ZYKx`y zJHAz15qy5@LgB`3E{tUB@j~H#r+n_|1&VpwxOJp!TDEvn6IgSB<^UWjIU$yaH_VUx zzks`4z^4T7(`7lYoOV7d7EZ6RLbha}z1x}2~6^$m~{6!@kbcTudfB^4IXRs5UgTM3Y4V2}_-DN(Q&eVa&dcSyxX z4|^NzPO~oKQBdo#ge7Rh*rM(Ws>HrQXw`o1zZiD>XVM{kF^9VTh}nat^v()%F>k9P z;Gbd+M}bxN`BOj{o5I0b-*O`35{0(V|I;Jt+7D534&i&syrg8uTUt**yPs2 znc9BX@b(!ycQ-}D3E_pAw_K6ONkE0BTx@b&j;&ZW-+S&SKR4&6%bvw2>w)NgG(-z- zrs4X#{NY`&4s@pAQ4{fnF{L&x4{;D>yg8{pjeV(1vqb2L(&?^P!IWMJ@l+mSl;zgC zyO-8d^teL@^+^KnbN)C>`PG6L^R+m_<4!%In!hHXJ%F1b6L^E`ofDyGW4JU2L8@H9 z8`8n&mK;@3GKtIyvFbNfwz;1wfSZwkEwVuQ*!PS;3~*;#@V6ELN9+gU*Lvi6!V(%u z2Y3UL!llU&scN@2=!+y~MGgW|h5cJwxaQW=f`(G~l9JDN08#Anb%J#+2(+S4szT95 zWpOZO5iE4<24`U4Mx-_+b=<~>U!-U7#*H-52U|j};)g5%rdcC^hQ5nqaiDkSKjf-& z@$z#ms9$Qin?!2U2`sS17fMfUvqe&9?BdDReJy`FW~r44L{HX-w!YER9BaG^H8HkadKolA^rx zaw@o>M_ZcDhHz)3xWCQX%8E~XVs24rkYfUj zL2}ax=KlK^9txatXvD<}?#rcH$*6~{w`v%d+MqSd^544u(W+fwT3doS2@R86Yp43D z0fzDEU5i8SmShajmHZXd2+$=C>%n7iqo{HzPL!Nr^(JLc#O0NK$8N@K;VmD#wyWvV zsOnbax3)VKDmzhE!l7$4M6UnP7wmIr4+}=#6{f2{#F^ZZ;^nh{Rt5#EKmPaQ9Ujm; zAM|U=@$v@p&aZ4Mm^lnNwE-(r$h>wUInae*r zdp+EE3(y|5^2F`kpjc@9ych#Q%(z&Xx1?TdFtd{tdVfm7oi8NLnk*Zr8fX(i3+23 zGzH4EIkHGLn8GD&qSN2el1M8wC^f)Q=l>QcHO^0%CR#BGMiM;4QJQE#c12 z*Z9JWl3)5M3^TIj`^gnsVq+fIj@W`55rpGo7qg1emlpHWcwRFsMRr0`mFy^q@SASA zNu&-Dq?kChC=oit_p7`SI>kn&zZ1O7NS<}c46E7RCdX*Y{6Eag-=i{>oZV@#s(F!XJV+S0eVgPd?UeQ<@=3rc zB&J^ue{Ui$`@~95$^+PhX=703`T)0=^js=2mY@^Mz)h*oL>QP^jQ;cgn_Tm^b2^&C z%M1;uU3*-kc+Vu8?v-AT5i9rpyplyXV%XE8kaodDHwkQN1AavnjlC4<*anwFHfE+L*lf;2_=&&LQZl&m=Ivj-tTSknHRktjHcq0<{uUy0F1A4Pbqu^ zl^tmGa<^GDQ7Uxgwdpv3^Zq8sQoqi^v-SWuq z*09n=!LL@KjQ{Pul9q+ZKD>)TX?x=(4IyvFEkrAaf`7Xd_v>*r7f^vHR1sHzQ~}_& z`b>;OJ+^X1@&!iV%Bx+nIQB-fG;p)jm-R$oZ?5P%%$~ zGo$i&v&{Ckx#w~g2);Hbbn}*kRk9qk%OQYc>R(3P*0YSpO-2}h7w({0)|I(>#0_KQm-4m#}yb1?@% zr9KKvCllKy8|&YW1+8`o6Dv79C_<|v!YIug&-1v+Xu%f2MtIG++%WTWGgAQ$qDD^v zAM$;>a}Fb?kK1`bxWpA!_C)C+^X$pc41VFF{yH&?TkO1*xVzw)v_;403XR#FOmejZ z$~=MX1;3#UuMW8*Vp>{ceWXkX)whRPm?T^sQv@0Q><9t^vc{7ZCiEZvg^)F4GE}v% z!+v7su3T2~!ipCJaUSQ`4lB0m9)P5$a7TQf1}vV(qGd*xO8Cgnb;&%S{U;SiE~+SN zmn5`RrSQz?H6VU~xKU(dQh9=MA%snU0A<0yx$$obm{s>*CAt#0*h6x|?Z1MluCZ*y zWG3%@eF9KcE=!!$Tb$Kf3J$hY3L6^Gt2tut zY(;Z`%zBI^4z#7|*WtnA4C-W+p@qHEE~KN{?7v|cf`J0m$&^6=q{HtnB&BchSBWw4 z^#I6kBOZ8KP@TJ8tIZ+WUv_VnL-D=qsnGl{Neq`565qrU4AU=b^b#zQPit4Abqn@< z60}K=WM?AxR`Jo?8}q-Yj6mpxI!auzk#$R_JYc9QpLL0wFjn{zt9>YFCZ2u~(+p1o zxE_;cs&1xAM`4osXM@wr+L}XVyq(XG-aClM)Wx(N_4-LSid*4{aZ)df8U-UUkYXC; z3X7Y`g->KhXFsKyz1r|jeF=!Z%*)um-uM6=o>VwtE~BStwbKVl_qKj-SlJcs&`PI0 z%skCEpvP~_Jk`ll>vba8*J@f+P{!K^aVwaUn7<)Cv{R#+7*3k(@d-$>#Hc|nC%y1w%@T&9M`%6|V~gO<7E&5# zd`&a5i+tADP~BmboLKA^4n7|qw?)`yq=WI{zZIayN=@#|+S2untnopG4{7O~PN6hG zE*$Sn02IAow1#G<(a6O0&n@p*^Bjo73$QCgBi9Ix;77f->2qTLDuY!E`lEH+7nnzi zaJR(QiJ}|+So~7BA}Cl0_Rbf>y`aK!erMA3m}0 z=SF#Exk7jk47u!p^rt+TU;W=g`;_>zX*!rs=5dYR?5TqW*3ErP-!F+;e=eFV#@rhq z>Q?d@Q|D#_YiHh^yCyU78sYYV!D5_(ZQp9?zjCMo3!FOfX=RSY@Z=t-(o$9j_D3V( z-cYauXYQAk8X9$ds>b4VO`%qbl?$^K2TRO?arnhUD{@ni&(D~lhO-~DDgpjesSG&M zlshf;#Pu8{Wdu_BcW$m!Yq$$-BJ_WGeBq~+@~<~_)XO|T?qVd5G@`I9q%fJk!3kaj z+^$eJzIRI1K7yIf{mSG0-D048l3bD9En>nQ05~dG1$X!2MYcbw)B@y9Rl~OIR}7os z3XU*m)}?jUzQig~|Bs}rjEbXax(Nh#cXxLP?hZ?EcMITajGOrsw3X z4;Y=|m4HfR{Z3f}FQ?Sn*jmRd=FNi2Q?>*^I3`F$8C~1$3C>K+ za&zAC><3@>wkiw5XgG=)ul1Gy>T(j!UIciYVh53$qI?^7j#SidS|Fd*7V?2X-&^s# zd6u)sZa8j`#Z_W}Ot~hV0q3?EVn}!+@;GR2>SA4?>~_&R|igM$dViHM4g5 zoj3Gq*Z@tF#Zdaa_t*;53ojdPV;lB^_tXlM7LI%dyl2BwV#BG*S@wbg{CN0Zf3?vGMpcT=sY=G?B?IY>fQ;uA(TFM)3l zF+D6zM|i*V*KHi9pz^y&@cX^G;2#F(4!04a0CxIFY|XhE}i`wTl;3=180|7^;wQk6FBs)okp6&cl@>z;g)NuUTz@_ zPEZeBUbM}R=}8bF=*@3CaGUC4D%i3R5T#8vQz{&8)1GcB?BcRlkulELHk2_PXJvdP zJ{M(c2?VtwJ;bg9=t7Ni{kBf8FwRoA2QbHOsuQZN#^v0G25~My3DFu*MBdB{A2?nO z9|;j?I5UCqjuL;t;)5VqslR0~2Nan=k%){M&=Mtb7Nz`TPGPpeeOaIL0PLon$Fp$1 z8_<+myDpq_vf*6Gh-;ax6~-(@DkWg<(h)`3Z{ZroRE66~P>!!e?dmcVF6bpIh*xzi zPE}Bf7u)=!pJn8{m2Q^ry59Gn4|&;-px)%b>ucn9m;J53X_J6C`*`~hdlNf5C)Iswe8}e1@4~0<@XOrF4K!@0JWMiTl$yN4yE>nzRYBV`6SxFW` zaYC)p`%3vEIpZ9ku64eg6)PJj7btvaMk(iIDa-L#S-`5vX&1s7q4!VTFerK6ezfU^ zKaKYI0TA#n4Wa*l|D<1EsF#r!&x*TWafyb3#8T5q`6i=I>SV7`>G{)fFI9c3f zu1bztH%yn{=K#b!B8rv)KOQAb!bs*EPh~|KwmwPQ`ac`Ypb^?p6yk%);sf~w=~3vU zS)vdnk8}QoQ9m7w@KjZe?J0=F_Q=`WHv$m$L{Zj^ZtIV2k9RQW$TWF-Q2Dv`Q|)YiZ|Is^)rU->6T(vS82WEpyaZQcD*t zGVg5@8EcLGb+xMI{zdDmR`G5!WGvrW<_vw(ig9Cgw?j=Nc18A0){{bOe_j%@pQtmt zO@1u2?GdH$k@91%k1gnc6dyx8o^-&*HS#I3qF?opbASC#z zRn2+Y(TpQ97Nm?D*;Y6?V^kLO;KJ`oKa{lZ}I(>@r)y6Xg9HC zOPDWcL#wKaW9+kmBsCHx4AbOpCNY41vv5miwhqMV84Ed_#C>XuENL&oF10EX z8-gm>D_5&#_|=^`8m%GN&n9}YqN-W4SM){Qvppr+s!_>77Xji6bF)Uh@FrHQ}81Ys& z6eCPU+uMJmJSogj^L1A6iE%HJxg^W&Dme`KPF?fDJqZ?YEkXu%XW%gq2J zmyTm$o$ys<`Z#!el&j&%I3teuoOXNwVD(%V;uU47hEsIkpXr?CYR(U76bU4r(AQ)J z2Q4D``|;yeRO`*T)FyJ3HdOrj&O=vXlocv-`8!4MVZOY1ym7N;<0JUfhIpcF6~$Y| zfe}|HnzEwFnAjCCexn5Jwi@aGZcE29gMwr1dAp(ukOq1_qR3n+V%joijU|@KeVbi~ zH;=`PsxV_Jy#%IMW>0Z=Sqa@tTGUT<|F)Vsnmn1A1e?1aA*v?GXw8i;?mPF}Mum$) zgKG+G4nTMn2if+zsJW2pq(nzL<@2G5aH*MU%?uTySk){YsH%ArD(8-r zq{+x}B@NXTZ}YL;zyrol?KyFx?km${w%GsOJ~HXdq?E7XP#*JgW-?x+8ehGO$N zEt%Sa?KT)-nBam6OS{}7CFG2w-uQiaHJKY>ER}^V;Wv9C&6<5I!DIHtm12LST0_Hf z_2>b&|9sG@ssz2Y1lk;#;hH1tvq0A=c7!J{s%-AGZKmR4$25{nZ5wOD^vASBJy{?o zU%e{hE!;1RIA~EST)CME&+6~?CHAYX$6dZk2}}_!D4b|~pXh=7&0sAM>MJ8WvdIWK zS&{fp>qy&XH={#M6ZWh;S3kyb@gf>kBZ_`a`Fy`bRyHcrvKu>V{n--(?6u*TNG*d| zDXL}6)&8;WUX>sea>{CrRt4Li3kR`oACw`tQa6&CQ5w0rkUH!*bpU4DHX2#XV*cv_l8{-39_U^*A^`!D|Wh;u?*zwxd;-2rNhIUbcr3Ldo z26flR#SIE?1}ktm9w!2)Po&F-k%%YV_CwQZs~U?+0C&PnWx2Qc$h3G-jIQ_A`%M>8 z6a4VqOQ)cnG^2rRqO5Qn{7V3|K{yxk0Kx~fDjD-j{F<$tohqo9zX+F(tGP%MZ!atq z3xKIU-i3qcANh9rbdbHOkc?7Ry|AWJ9x0??I9QudlSov)p)BA@J&znvnYq0%#kh>#@!?&$z-`I^e!so2tbkvO z#kMK7UY;l=DG#<&*EV-0nVK!MQ#fuHR>`<`dl57Msztlp zjE8z`QX!kZ(Ts$uQ?)>Xi@EhFX|HUYlOR^eO>3~FC)J~&WDxZBC>oe$>)MjEzlH_V zhS(e!;dr!$29pRiQ0Z^SMczYcm5F@31_5JRe5~ktcSiNYrDIH_D`(1t&62V;LC(D0 z?u*QToje-%&xYkNnYUIEcq%T*lUA3UL zY{Pdv*JLtx3NxC5?U)9)JmKKr-BhFv)$=}4?x=bQyh4BKy&5iVaupYtw&cXr0`r;WCn zhjJ*A&0L=L@VSk72#sBqvdBA(gdF*DBbjR7Izg2@df8@zii6kzdiu)nr@a`n$9_th=*Aqu@-T%Q{6g<>7Cmi^vGrP(Zaf0CU2t3Zt zT21yFM5qg--|Hx)39I2eL+?c%h<0Etm?~kfFdwv5GA1bj`JNU`g^~tG+mHI%m@Xxm?Z=ItQQ8Rp zq(dimdNo=4jh=BD$v+%EPrJWke~Kf4$DL!0Nhqc>UKzTOd(pJ|2(w<9@$+~C^MiH# zh>bH|HM$bP4~U1I>x|&Cah#o8tEL7qyAVBD!jT-2t6yrw1?69B!pZn`U1$RXF{u`6 z8i-|E7h%~8Bvw@1Dn2cx25r8co5W6wfAMO(*?Kj0mp#P2_QevSv{CKq zMk*G2**u5iNOzdqP9QgbO8v%c=m|Nf9i;eF`y6I4&(FMx8Or-bu;ei2s z>ZFfH$vF%pme3>h@jzCl*liIrb#YH%f-r6?u~C0b#4z-|A%&eL z@~(R=or%VfoXoHAW*G-t@ISZIk6cnS)2utO)IG=bYv4_EPFi|R>JUiN>uHea83(Ck2;SbO(f%(`SY7nSU9ixaCKq~WR(>!kz#vK^#)B3c)j|UgI-}(> zV(!(MnW}y#!$77Q`BR^{NUOvpK%>GkHy2@GRrT#&hq-t&L4YWH#B>@9EWdPx*81^C zsIq@ywG&&e{P40!h~CUK%3U9EfL>ksF-?f|(soSm1WGk#r6M4^N~?a;x7K;?PK)`( z`qGm>-AOB#3#>JmgiE;_C%Sbtw;60C+0uLSaS(TW&XV5Cl0Fyp*$O17b9{U#pe3>$k z(skwF(K>TwS=V(XWmHl)6-09 z8wZe$sH<~G-|Vs z0ZXrejS`jezKAY4Ozhl7VrOer>FKe0S7QWek-!Qp8Gxb7> zPVL(OUy)@AtJ{`j6jl94KJ0M?dE6PPpF16$?$p?l=E3TIh+p>1Q(JpKugQAtb1atU z#!Y4$HelQv@`O5E)(N)jw!g((NJK3h9N)VOI+t^!G?Crh6P{4L!Xa~AL=!7OLS^7Q zrQg%|wecpN7f4kiz{h9wD?rVznO?I6v~c--F~v_Xzqc8<^R^4FA$51II=J|CX<9}OIYl-~gP7mtM@M1~d%O?n8dI0y-f9=MX8=ElkyD2hTW+;AJYgYFj z@jU;kYcsNDTD)Hn!lY5C?+l;^{V#Q6LQh4Pj4b&`*A2&P7R;cB`jGj{t7(lCF6`iH zcXR*3bv1PAz(5bI>NR)y`MxIHQ5(+H!z=tfv$CZ}GtCVun5X=Gf#@F{@q-6p)TcHx z9fQCMdKTpup^&yi-1ZaL41DX=TYtHQFf=&P?+DFhsP81%Llk7=g5Le?jae}Du%h-a zhHsww_hNHR#oF#O!;fzzOyR?L6Xdb5ShQbbSp19GTpLPzUw&^!<8p&AoY|}|jH<1NDX1q%XIou(o4xh1N5&SO zG%Hh=VaU%%T2*?`j2H9GrQ1H|=XuzP-D}a?^RaW19dT}2A>BxG*B|WYk_Ee{;R&g& z7s#^M#`|8st1+%jX|(oJF5bj-#IF&o8l*k)2%PGrG{LvOGS)7n)&t@@ zr#By~Eu^QViaE$vlT!~N+zBUf4ORt{@Vgz`%*V^R_b(sQYH4t}MDTamJt6wY(OjAi zSl))r(XH0x)-7nB33kv8hd6IsOo)MJYe2Jc?#yjeeRLcm&fVW$gMVj=KJpQk|BYen zvg)H-ee>p%v&u=yrVJ&4^R{s2d#AwOyM@ml^SQwpaYf6*ZGL0?g54sSD9}V zR!IU@!vQUGL_4dI`eH!|MFMMIOV@8*3YaJWdl_aSgTM><4}Uge#Sq3vak?s7_IH@N z%~whN>d|m@%`%O@vx!U;-hz^FycNn3H7=R|^P&?Ol;W(|mN+e?PUg)Qnz55{g9C@?;9Et zcQV<{e2_o$$r?{Qwn7XvGzH_DP&mC?87y@EWE20ps$!4tY-plH=N{y*o;D=-tQl%R zG~vr@mIr{-ZoO`nLLA;z6|ANWz;3!X#I;*}p7{4P*4>fNq6Tp`5>>2oMU;k_&-Miw z%Q{U}YX)#KagL;mrW8vnDw`9gw0-Y%@zpEe zIu`;G9ZqSu5{jbm=f36dX3m~FQU53kKbBHJ1tj6{;2=RIfNTvGeV-5hW~0kAG7ig7 zIY2FlY!0qUy`_+mO#l4rAf@ij5;vE-kr1hGw=5wk^0V;ZZjem5oBj_F`X;`lbkG{( z>mr>INaLZ54Q?~-Pdo1_oyaf-^;LntFztQY4eR(<8}oQ=c8F2t&j*1}*(PI3?629> z_I-pxnstDh@%(Ax#LCi_mC=UHUelLm`p?pc2Dq;!a-NHQ;Fl_@Wp+hl$Bkb~nr)#} z`xJ#WF+#xT2;|)FojwY@WG9X)>dD4ru?cvz&YLY?TwaQC9Q490zFESTkWB8r>|0t@ z?{cPqiMvEIU?mG-47s$I6mpAt3AN!+#21{kVoO|}5#<>I-jlpVyT!-eLP=5dv9yhv zCU7G>%XHViNLlKQQI?K1{BJI;@<$GNc7~Vv*zSkG1f- z5G<$!HJt3!i$IV!v2>f*y2@cMq)ukuBC;@J{f}Qme%@{(ijFgE;l#Um{>!S5&1O%Z zZQ3GCApvH#8pZ%%aGW;#6DNX#*68kaxPXeiYM8Q%5>C``Ul0KxMrOzsAVD4xe_}wD zgBn4Bl=)0o@_s#~EG6sU*YOqzb~zBM18*!t<4rsCO>7*b>>(rpzd{0s1InB>NLg3o zF6ozAh+l}oK_V6T!|!$F?5TTc%D3fb!@hamVEtP!g4!qkn-&OQB&u3>bz-3QhN@_@hn=R zyS8jqF4>^$rE@6(^v9w(bVAmcf=1wZ@jI3P9%j$v-FuB#qfUvj0txrGhCmEe?6J# zL?^vHvgW99MgAh{vs-F+9xV�k%79F?D`|*C=1kT99}Rf>0v~y79Z-7^u}u1N|_p z%Ojttr{81MugjwgRr5Usrv%9{awNM%Jk%=cAF^VXT6tTccQmG3*&xKcSu{0~ap#eh zX!6!vvg9BNZmh^BnqYd0x*VBCcbnXS~U4zj@)&Io% zsLSB3y~BH|foRqDbZ?x1mwbm%Np&XK?3{3(U%UU@?$U;1a4GC|#%|$C=yd^EliKd$ zdA5w4B6hWSa%(|?o7bUDH9ApFSGZ6=DE`&|jZj5hO26l8$t6TA|Flg6my-aiV4{?+ z@Xa(jP8Lg@izHd)od3mrz?f9>4>q#eIkD6T|B-FZqU_+Km^adT)m+(}DElYOv1sd* z@Ey0vo#Hp&4($@{Z}586Xo{E92Rwrm{?Ia(sb}|${yg7_FJ#GUxyXqx+UG|a1oe-k zy{@vO8|?i3crGB=44$&lQqP<_^pQheVBn%?+ahQfa*u9AgX%PY^b=qF@p69sF;H{0 zv!3T22RK08j)L{NoUzE;6Jh@}`mW;<2XG?4wvuwcA> ztO=yJr8YReKaTJ*_%ph^k_4HN>E-jm5;XET;`E@M(Lu+=FDy4r*D-cB2`Eva<0leY0J#IZJT_gX;2sy|=UA5= z!=J%=(ZCY$n>&m5{VEid*e#+vJH4No{&jAf`0$cSoN=pz1&(}1Nq~VrUn=kLCDxNj zzJKij;X@(HO)beGHPc1!o@{ZE?W7DNuB`b7c_{RhpMpK{Pbz{-$T#uRr=O*b8+_VnTO$T53Jv+buhkD%GT<&LHnmB zh?QfFd|O8)UicE3)oA=@8je*M75^J4*wV^WXid>(z)7S?(ilQZMewe={6kpHe$(P=suO$2i^Q;K^CR1tu0O9^W4=A|I&L%#=-| z@(9B0-*fPM6f=lX90l0GDPEddIhQxzy7R5U?8E$kygkRwaa5LqifUUT zqhS0c@uoxDtl9R9)h477)lG9p+ydexFilNJS;!&(21Di(f22_s%bQ1;QhI$P*%Y;1 zzpZEP^j?auYEojvCW+C#3~@EKkyVICIo4D9Sf5V!M|?)#YaZo&x86y&mLrlZR)?%# z1n;X|s>b6ODegAo2Sx6pU*dkTG**YU9}aQV7Z{8llkN}XS0_;V1n>6<=be~}l#r{M zPmm}_r|nvI2m^MARJ-tl&=<@qd5p>`nd5NGA4H=4ZeevVwO%(ghU%pbTGFBh-Aw~W zXea4C9+~bnqt!1F>hz|e5mf6mMldO>KLy9BH?)mAov3AF9$qn*KO)<~w*GZ#V7KcD z_~^7jzY%*o5p`S9%O{p!E3NoLadcRF*RmDnFNr%g4kG(zH*I}Ry6^m~?Amv3-gEVg z7K+tg*AnViyR+jk`H9&7mtRnEYT(aK3q$uvL0=y06ag0ULzuziFRnzJNZ!+rgF23~Mt?p~L`HTs)V8f)eQ zk=3ayS52y44-NBo8lyLhIJQ0y!5EDsfT>VaLHsO*-@lF_G{%(SCtCFw=Pnxl-K4{K zCBz|mO^yO*U7R+<-(sxb1v+So$|aOGD3k@u5YrA~&VX9ZsuWJNg|3?pKwJ(kaP~*s zWGQBUeU&>hRr#RO=W;6vZNG-Rar)>0vqHt-&$v;elP?hYe_&1{+>I%HOCS-kpnWvD z&Gs2?IXOwsbm&d*+^pE^Zz$viqfFSgdOIMV{;7#saA81Ohicp(-Dxw7r`Hh@RrPhD z1Z~o3EHN+gmZ1b~xE_3#Dc(E(L%0nBp5VJve7yLJZ(VyVA8 zC+bDUcW~FjBID=`-S^k|VADoge6-&KoiQEIBoO?`zPp!4{pd<|5otq1U^>fZxY@vhk*1c`%&Drw1b zx4(gxGfJ?Z{&@B<7+kdGP*Swc%!y=*&#u}z;D6=pun*&nueEu8$KEnjZ*IsiiZ39@ z$KbfD_v{}MnIh}ID=qCmPTfSV`bTEATu4?23v`>Qxv?gmx$%_eQTmi#eOYHnlxmLM2Z!eic7Z}dvPz%hbTF9pj@~$7ZvDa zWmHBiN0^AxnyHabzZlf4hQ;SLL@XO{`mi2{1oG7k{=XEE*nSo?qpD~qrnz>mNADTveQ6-y}AI;xu4(h1{-7CBUmqtfn9a3)%_DnlY&urQGziT zET1}#(fD&2UCjo4o&o*C$YSJvK6tbeF6=;bEx-CTZsU`m& z;)UR)T&HSuSc{|@U5)u+QSV_sG&$`FHHrZugH=a~Nw+J`#Vb>7vIXBWZxrU}F(*4) zF>Vy@d{k0Z1)P$P7p|K8EjSG?2g>Xi8+}opjtUtGE`Vau(`zW~7RGn|*V}>GOkJ4v zqzs0{92p_)baR)B#cv%Ho!6xhf_T*;*na&Bb&VlB9Exiwuv zdV);i;t4E8u~)=jNC!$gadw&2s@8R=KR)z*pPo1Rq_AR6B2a?GUCb9WeZ{e49 zdp0}b)RpUaaLaECY7zLDQ0SV7@gE4{#wtNu6AfbtJ7AvFxWM;Ya=YObjBBs!=-KLD z2c@wfhJOfE*A}`l$!6o78kC-Oqqgf`U{LoKZor=`UJ;dAX)W5X>b>z;O$zx9K&1H$kn1U8Tq^lL@LAZSzF=IT=V znn?(EIr7I&VNV>&W_V8ecKhpU?=^Hud|;TLQq-Nbl1GheHX?q%r>Z*xQ7=?;%(6o< zDnrU6MRvW=S z8J3aGkuk_kd-2K07;F!dJm+IrI^qi{L{zdHc5}o2Q5raWsSg1fOZOdISJ2VSkJ%*v zTsc1&Un*p%AEnVPO((=c=$t~87E`!^{#YUkqXf6*fGD29N6rpiBK-&2zgCA8JULm= zGhGbNIFa4ub2hxy7|s5bX|pAtcD9|7AX#Lb-k?S2qHO0-K6cTA=VrxHD8Z5}e#Sr~ zO~~<;?ck_J9c!GCsRbx-9^8v~PpcMxk6p>v+P@Nx7`~u%TKQP&0$t$}E?FfyYxyA6 zi1<*xaI9M4^v5zHAPyx?@+czk@OQmQ(3%F9iG?W)5brND>v$WhBzq5+Nxs@fyjW4) zm^50q2a{0}M#-Qi_MokF=rar!`YV|rFAYU*gd8yIWe4q+1YXQUY!SEXAhv7&tmRP}XDY$fU`gPuIw0Tly>bt}Ozi-@Eh^7@ zT!Hjhi*Q0@i}g(|!hkjXPhLIqi5C`(NQT1nR5UjhO{XmlxscJ{12@ckLbV^rgw>d_sHu=P%F!D0jl*c3fvTLq=JFv7{6P8?`i)TcMqRf>Q&%vRwu&iZt$*Sk!^n ztzL5dLIS%nTQO(qpPtVqj+k4VJ`qWi9mh!EI7(qmcX<1vGzpH#Cdmpjh^|YVVa(`{ z508K;eF)Etjmzg8fRB5hdxC@et++neD2?u?M}9C>P9p(++O-ITLW@+NRdX1Z%(E6m zcj@+ReRC4uk#+u%5`?~UU2?}Tobk_kwZ3NKXWn?d&7l?eYBb;4#Y6U9e*N&-KMs<9 zOT<;^6KFHKIxr`R$SJO3T3WzjPiIy_2XJ66Uo;hPq_DjOXW28tvatwzW;a~%j8=kD z2PB?RKGFL`=|vi#3r~5!2Im_%B7@QDkC`7H6B&@7{Ro;SXK0}pdvQi=7C>?gUq~}# zA|A>(Gli;`ZlgY()2v?qm2F*{S*ww3x%DQD18)u?(q%vS7ELmG7vwS zvt-0yes-|SjOEsZqiN*dOJ2!=AR&0jnhIO#A4Y5&u;Avr{4UGtbGdmZ)5S;tm zg39Wp_*m=`4R=7w4-aHDc%oKPG43%h7p_bjL?<}6v+=fy@0}(;*J%Pz(^Z&l+oKe)=t>W?Ly9djB zjq_!ev~>pDCDN=*nqSntQ4aOqA)j@9?H5R`N6vbS1zzz4U+zd7l6eWPGcUy&h9hdv z&)vCas4L}_R#x1r_)mQ+MWRq1OH1m8Wq2n%r*P)D6BJ9dPL|R zZNVh+M2qxS5^a(B3)kq+V|b>ymM)#*kyldI3s!`nA%ZAHc{WvV+FU&aZ}rIM>iZ$L z1Ez4MPH0kqu-s3UL9SNi=fdzCX}f5J&p>Qd*#CwaZnf=cQ|)RW#n^2yg)6W-%crK# zmusl`9mU!drMp(D%poTD(RoZWg~rG$wZF`YR}+OVLhZFzR40QM*`9b6I}39c42IQ+ zJxuj7yB6FNku`qfLYZYQ^wF2bBk=)A;;7A~vL2wM*79fR=>sf~rr=UwPPy9UZ)%wb z`}LIh&RGX3%O<kPGM;o9Xm=WAfhhp`YU zp9<3Z5T!9v|HD4h^x>3fjs7q>39JZU$2PuJoo$exbxQ?VF@){6z(kM5XJ@8OjYt35 zYZH|g!l3uKx@(%ofVfHfjCmqbb23fXl%C&^N8zK83Yrd6dNJ2#hVG+T8cT=2uosgH z!~h4STR91Iw7wyiUCR$lutgHLF$|&>O}0aWK@ZupF^q5Sg!ItHHVGqDl?T$vV5rtm zjXsGdUwIXHe_@Gb0L)`-oYS-AFqRUDHby$cq9K?RjfH18_4>#%^;5^4qiKtu6)v%B z&{_0OVs1tWViNRMZhrMA=qq?#lLid;V36iw(B{sziqS#tbbfT#CHJY<2A7JiDNHKdDzma8jZ4%4MN$?gUx&SUvxLaJ0c09DWqH zoaBJ=PaX&>vUDt zOVg)fvq)!O!#)x5Pm+ET>G7v^$QrS$Mg?%f!SL!$h@p0S$njl*4xNJ3Z|rAvIk!^ph$JaZoc?vWz-u(DDd3^ zVlP%Vg;BQV0g`%gBB|}py&AZ#)y(23ayOuq0nVcj&#|80Q774MOlMImis0ftz8O>c zeuu;D!8cofhSZZ~dAW}*HC>9@fQ$uYe^P=Rr3A_#uocUUr>p7Ioa#|Lk`CkKJ`4U6 z@FXW-l;_oNgVq-p<90!cwddQLbz&kdAH1i$*@gxtIuYUv6FK5Kes!Atkmuow3%YAA z-KxP6=G{UDu4j8m{(4{M8znR91*Ze^r8(TVM9aQ^bf4uHUz;j6jz7=7;R>cU2x`8g z9OWWh%C*Cg-kBU7)&lGVksWj5yntl6CzN}G+lolB#CxI0A>~B)!gqGiFvg5Y%U-h~ zEbW~`9cWrerI9TU)&I%ky{fI|l4hNiVrQ}2bjuxDTU3HV^g4twqGboW@MjiAiFDX4 zO+9N;8BMnPNf~iR>m@x&IdH^9+Y`=UB8N~l*)jY0sBzymsiP#WzEs$oWZUS8Xm_Ic zAVKLB{NDrS^4K6&U;MzP&0$sqc+^=G9a4^H3!;o1yXOt-oed?tX$J@Q&+$xIS`Q>N zN{i{~CAJs>cHECUQ3hnZ@FA)}hZ;JVAV%Ea}1 z(9?rp4NQdkqxci8S%HbGs@y|oqJ>*}-(84+7xf|QV5M`q=LoUj&*~-g`Vm7{_kVl;w=1#^?Iz&&LJ7v78<0f4G^>#Qfl&X#&gk)2){4a_G_310-U>~GRg6d8ssWw`OGr+hiSLm;jE*>-Sn$>3RV01CX;%QNjHUg_f+vZ5w6U|y?)qIEVlNJS z$EbK=ga!zX%&a_`GV(H5e;oh_afzE7rvwxXiPI0W5aSOIEZP2d;E9cMB{gTUt zHgQev@5@}yj*p>ylz>9qaD*0JdbEC8$<4%qWF7q7T48!P+h1dW%S7?StA7lWxi7=w z&sn*`rK0xkt3p{8jn~{Ek!|v;*6V$Pwotk-;(fQNpx&{8yDD-%A%A0tLT`|@f6PfD zehw3I_4cP8k$n!tZT1wHeV%@q`^G;hhev87;5V%GXTg_W3w7YN`%AW(Zwt3CpE{8U zw#McCe4C}MRgGaBeZ80zJz;Zq$>iKpC*fl>i}UfrY=@kWyeXnTLFYSAcRGDBeSgR0 z!+L{C{s;E>495pFtLWFCjDwo%Qo$d3ehhw;nnlmUW!%4ihtx{|iR~J~^9rvAR&xC) z;510`Mi}J%w!?^a@{KQsS^{)U)$60{R=eB{O-gJSJ8KNDGWxvq=ABQRz`b-4Yg9zS z_x_rURgp~fQJq+~baJ0f2=33txrcxFY}p&qjIX9eYOfu4(09zvLSD%ZPS`jLeDM%; zCsO*9@IM%T_hEC_rv+rjd=c5{gAuB_e12?_8yJa%r_icYCXI!VQ?q75cZ;Fh{X{!Bw^ML+o-DwKK@^!ICw5p4rVN|w-ak(I3Vw33WvK<1 ztHj$XXzNltFSh&1na;UJ>)p(EsY>zRRwpKcI)hnCvWL68qe@_x$R=z%D;qai;Pj)G?L0}hfel&QfJ3^aYl)aEW&5UqOmO;jHWTrh39-uGinOkE z7Xu5GvuE>-YtLF&&cCht8tru%x}*cCT8^7Si$#%WcR^nR18hQan&N(9ZbMn>xv~&l zRzj=c6~dmm8GAV2;uj*VX8rY!BAZ$1cXbmSJYzh*z(?3|64|M;} zHge!b=JO9MmZq|KXvL&t;!nf@4Ow{;t${U_R1+=BnH?<>ZE^}T)=A*$tDJk(U>E6w zMK=n)*nKDFTR!F*o9w_P>TOMtHB}Sw7>YLeu4Q5HGEu{_g=QdU^aL?;D} zYu$V|DaF8N>0tGo(OScDqezq9sH>5(7x!;BS)Un0X{z_a!NVui24$}Zv{$$c1yE;! zbls8EhY?M{qdCK)8N(wCLzCh#rql}H97?)wtx%xE50wFvg&R%jFNBR=)1MFFVd>$u z2!4vJ9Q!Bj)@0WfR4yHvKm6aUe26+yWKkFx^ey8OQD?g#Ffi*esfre)K5Udkw0Mq* zFB}*yw90hJO?fT+lxO4L;e0DSbhxommCDxz^w^ z+6x7~pegWJof^i=ItOFwHg|^vL>ARS%eDhV>XJRI6$LK~Xq}^Joo_WR+lV}NC0`5_ z@BjSmBM{3@ayn6~*80nxrd4S9vs`aI zTlTEA+{KCUfL;kKPILhY)Gt~>ORGxetU9HyDTc$}w67GU@`0!-X*W_t)@nJBsx#Uu z48sSbTHm~{L{mP`nGq;Dvsz|YOS=;}L)_1q(Wb9ynKhn=|5_7rxk{FFZ_M$*DF1a9 z#Ik9K2Ut{$v~5j}7ZjeG;?~$_GJ2iTcCt7`7VnmonO6AD-?ZZm?`hpXat{9T2ML4r zwV^;2=G7u|bL*ednrpS=G1l)kAo+(y=BJOm-8-(HcslKXOGyx2e zYO~EqQB(`8j*Suroa(mLkm~mBMyZiv0IhwefBC(swxdPMc5hQUnGBB#}$IVNo`!xwBMn?xlT3}d@VhgVoN*m}Gq>toTX~@Jg0PM9y;04dZ zp!>0pLEOVx*BGX8S`=1{w`N20e>8n#lqF3QW>4Fkwrx(^wr$(CJ=3^t+qP}nc2C>p z?0vu8{gdZZ<;i+7qXLP@h#`i4b>beJ%^{W+l3jacb_PfvKy|ySN0}HzH!wOI{_Ejf zb$ipXB1mJ)U*&fv8dSd`aHcK?6~!L5RQHhYt?Krp3mYY&o`anUPz*gsvkPgY2aHo8Mb1B5Vg~I? zif8{yor_$7O#(ES!coLG>BN(h%SmJp*2gcUz z>`3T2I2mf)qjYGBo)_>sJiOyy?cOVBI_f66KE}9Hp*vsJETG$Fl1^^WzXhx0oQ=>i z*>WE_lVE>wCJYX;e=bNw7a>FmH2lQvf1So{XQk5USRZd6^L+%7Lp9Ht%7@Z~#CZe> zhrwa}RL@^W;Ih0Vm5XYt=Lj5;Q7rrpMC&fOg9Z9p>C}&9N1|*`03I{sqQXP(E&xb) zk}Du^qi2SzRNEQhnUj-Hr&KiF6HyXY)QvqXAa{A4Z&HWdDPmrYR$4eM5QGAA$IdTT z?79rVK-j0|J*#>%e`ax^4+FL`WU4tT-RB6={(QE&oT;cf^|pvF-1$-O+niV(h6-Kz zSntwH&nU%(Fqm%>ov~qTA6&DwMOmR7_{#a}<{+PJy~7$A>jj9_@#GK(SRk})ddih>uZ zw9#7e#7g-@><2}#%9DvB_AY2KS@Fr1`Doz(r9tWTAe~hR3|3}RWlI?T-t9p6Y)V<1 zg?^g)w;49$plrYcY6aVq(+vs!n4`fonFF78AST#4CJE1T3(7?AH4Ietp6|zgHP3;4 zHUD|Ak`yb;22UnG6fA%zl&4sWOQ&*cS^sHXF`I8q`Z|<>psJH<9j5z*R4?n9gFNUaxw!LQ4UG!luhL$GGoYOfbJ z)A+&78Fc*D?$_Kz_ICE`(`VH13dyOOSh4c~`B+wOm;u{><19p5eb9b@FrKeIiPGS# zG#-XR{T^mpVkbVnxkA68c{k6m@pE!Sr2ryic#Twv0x5n*X5^l;{_~8Y;+z4ZENc}P zWTXxf%=O6+dYq7}kQ#PCh*GisVYwIT62!Udc>IA_#kf111FbBqhH5;MIL`0syW zJ>CBVR5HjjIw@scZCy~){i!YV;S&?D{~qYgF)sAv;apR({AuAu#{HeDr&!oZM2%wm zkQ3&4KJnUZVfK|%?1_Z?S!aQ*ubm>SOz``f`HCA&#(g}e*p;MWg3<@&uvkPDvY*-q z<)GL@we`71{iqt^++yJht6Q{TWtXY`D=*|<*O0>O+(!B15@jpGl^yt@;-wLa^UW1Uxs*D|FsKMF$f|(rtHMvB6LR^RM<7d295^itcpE}2V zn1JuS1-RPT~olfIA7H{Z~UyCThGo+%eCNQlk;u zf&;PcSF))^0`9me#i9iG8Ek>($05R;ElxINOa}|Q5~CH=ZvRjTlk|WsUY;zfte*mf zBP}APc>N^a-stfHoH@4!k^_ z@oI8GeH=}q##3PrzI`^!Faj4C#|Y;`^~`Sdo@DH#(j!MeC zL3B(WP}3?&r&|v#+o{-ld&Wa6g@K^~79J;YCcMa{R46p!%;;Ti%E~LS$Xj{X(JQRp zRH2dM@O|ew^ey8TV&e7nt8tNJ;!VO#Rs7f?TVL_9*u?py6)vP~bxhf~`f;W*2{L_7 z23|(2sL=5?NX+Ms*i-T2bJ9(pQv>maR@u76GPE;AtwW@Ut2xmCPUHrYyI|n}BEeT< zON99|k;d_=Dq?NU!ol%`tJyc10r<_Q1W{%dacuJ<1|ioGYAw^1;VY%Z35uBCOX4Q( zyac~d@@H8q3xHSf_3fi6^13}?m3j98=qM~T`+?AoD67gl&u?Mg2APl{!see*a=V#hAWE|`Wn{S1iI4mlefd3| z{`q+z2f|XbX3_GSr)2XEyvNcCo(a!jZ%@JvRp9IT0&#S+WflSjbx~N}5k_fL=u$y= zp`96+bvcM-Ca7GN6vU_dQ3{{{*!!jH;~*Jq9h|+#!4uQZpn4rITV3Wl zuu0-s5fIC_ZJ;nxn-Hvr1bgr>m@M&u7QbO=W@JSc8B#MlGN9h(o$`x=E}pAk-=8JU zNs&F-L;MVg<^V$ za23yJVOZiIed~Z!b|Rz3wO6@BI&vW8>4yV>kuso=4(Ik8h2r=SI69`Y3t~;27i;3o z@y5OU&l{%EC5ll~Dm-&|n1uI{HKi~N1TF*rEN#p2kVB)>RLi_6iwGm>1OnQoXW$*& z^oHi|GGXPTQ#)?G^h!jfb`~>(Qs-+S#d^}bC-~Mp05`2=8EM{;Ej_eD>(mS6*z%%L z$|1B>Mse6aT7%lBXeF%5i$H&OvZ$H_L5iHio`hOjnf0*Iy6f#c#&Q0y&S;-TmDrZD zRoNfSBGNUr;ubFvh4cmbq%%t1?$YB=FiQ@iU;H_yWZ4`2;REN;&!9*ywq=|eXG|$L z*#GzkidHsRVAS=3M%g6ZWx0FD3WAOJ6R#PBov**zr@vhh-CW;hY-$rzsIoot|G0gZ zXu8TXUgyjhOK9joWs4O&_}ZORYFhyE=gx{z?pKKl++d;u+^3Z0HS?zjPvX7rF8sRZ zbT|;jLZUFxo(>>O39_ENyXrCbZ;V;IiQAGiunTQ&2D? z1B1(Q4btKG=Fbj2s33J8nfmnf*ewNTfZ=fGe8e)}@_%A&@$Rxsk?^JwnZVCB-J7qf z&1>=+IbhiuaS^C|7BDouq2Acx4xV$)^F zAv(r$mT$jbCKRWaS&G*w_GETZ{xT|J=RW?VPNb%-L)YWuXM9U6$cn8y(E4B=9TT}0 zCsv1Yu3s}JW^iC^k)sl$BZxTJsu?;!r!Fp2t(jW-<8CD;*Gj8e0DW04>`MW5<&`|^ z%6rwAtP@=fap6ayhHo>!hX8F<8-p6Pt&He7ZLvTY+icmVo-2h5%t-ib`;Z1(=e+o(h=U{Di-H4uGv+&Ss9?gE)pC2S z@A?dF`&?IvS~}Bca%d92v5>~+pga)!#{8>f*{W^4$0<}yi%aI$9pYeASFOpjWYqon z@hHY;*<%Fd`^mZrDYH+Nz<%k;TN%iMXVh&8s5;HTBh>>#ADinAfFf#_W%P=YM0>}#0)reFLP>x3&QxmXY96ro+NnbL3uIRc z1L4dP&Tnc2T%nl%Wk-$?)di?uPeQ$GupW^B(J+z z83EoVk&3Dk=_ei{P@5tHVn=3)w&%bSpL!1>xC?J)2ylJO7RJdj%$f(#o4-ZPri&bj zB3FHTWHSX=qH3_slrXmArM#Lo*Y}ctH^403#jMm~+271NYOAA28b7&WUZgQ?6jWgV zQzr1;(oDqssd}7|oyZhXcog(_`cY%18)u`un4P}0JT+RAD&Z_AjcuaTzt~P8H$upG zlHrQ|?a8xRbZkO5(e_wBIOdU>@wESu0iv=XH$?~8kK&S~D3>iJPg_1t2xdsI8sVS8X08Ue!K1gI2Yqp-s zYNCj@${Ciac?WDSN#@f<*DyFg(5yOU4tuV)4PUT$^~FB`YCIQA4U?h)j}u#(w?QokS= za3!B!s+ly3kCHG4kO3SjC!yye^&9NJ;8lbv^kfCAhDsR!6ry-ex6Y6H9eCGOUe{oe zW5q2ggNEbO-(Dg`TY4_ffJRyjbeO{_kE$$DrZO0uQ_eiGI!oI}WDQ?JMHrgUzhi~p zHoe`y1PTTVwSzl}ENTAJg35drEt)Hd|JR%9rC%kx9F1PdOgJY7OwSbSnVYKDAMGW= zs7*7p63Tq;HErB2EDh`tWLZ+n7`ml9V9&RNO!n}2yH*@@+8vtD8Jcq z2@VY!OG2_%fby|OZ@dc3dT3r|C}&)nUOv$#;|Ic+BDVEuTwx)s0n8}2%F<0X6 zuIM*(4w3vh)@a4^E93Zb_@7CJ)A7Nu`JM3}p&=Lyx|egYReCupEQPiGyZAL%+*xD1 zPdiK-o;lK|zdTJlZ6Y5g?P4OJ@pW=bxH7)8V7k1Ta$Ku#4QEh>x2R*?B6~b{#!!Ou z-fW`VLtl(HyBo0WQ zWnvG&aBM8BMCvNfxdFdmBqfQGgyOuJ{p~V*56<3Ax{;DP?t6{5HD`bzdpDfTD^_Aw z=P#HN$ax~CXsO{dj5`>PVh;<{Yw(fVE*`(7bN(iM3wVjPEM)YZzaN*d~KeSsk7-cSQ7+7=8ci1Tt$?Pyw zYS8e`W(d}fI0-j721nAuOb&6Vv0XUPW67=il1I`ZKqStEWZL4Fvdb<+;MiR zv2tS0>-1{%s|^MlGX%1&l++*i(yE{a+4&|H(>Z1bGGCjr9R9T4u6=$qGKUQ(O9!;s z$}>spX#GX9I3&QW%4NE^bpdYBcVT9IO2+LNH89T9Q?UPng2FdtAhnKQ zn-)=pZtE9{<|_t`iPQfGYXyG6qu38>1rEIgOz)bCD(o2Px;l!$K8gRsPHUL3Im~)* zje&-~9dY>+mW@Oa>NCys@>CGwQy$#DQn1FA3$#llzlz0t(+EoM;R%QQ)>hGJtRH#c%S}}Gp=O1PnQw3v^wj9LK!~<{tDY+Y&2frQ<|%cJcTa#lHW!+cr~!i^4U%DH>6C4jF-Ftt}Vq83`&{e>Z<^P6EyemRhs#LqxWSQo2aU zO|xKk3!Ji9bZ}P1lq<^(<6)gr`EIZdo;zELr|YHO_=tK_WxQzOxp#2dvM&ED@ALQ&$9F%5u2WA4m>*oF}*sHSsDhBuT|3S#`4XiHb9I>%^eeg#a`ctp91Zxg_COdu^eO+cq77TW0XOnb z7$H$K-wd+7aO>Y3(#4_0ZbafDPY}p~HS9~z-ySE?h(c$^$L1o==8b`;q^m#v!Uqb? zWTDL2HG`pVT^~(Bz_(v;Eh5X3sfZuibZQ-f7i`m*xw}kk{ZN%m4>jDOBBwe5<54#M zRTjsB0PJ4ib}|b(YRzO{Brq@59KRU`O#cm=5HJLNo*49Z9?T`#52!9xTdO2g&RPg& z(4M7h^}g*HmrUZs9+o=!&op~zf-E8MaZ_M^rOF0itg)7=t4t7QfBwb6+6Rx{S1aik-jp0p#B0VH& zu%B8o+9U%;S@N@>B0|XIt4wh$5YWF{pcjx@^>Vd9YGWnwn z2GSNL5b{K)0Eksh1JddYf>@pc5{)impNN{&`hycx@dpjKVF6I7f_OmmdGwz1)eA*| zIf}WxfW@(n;e*(zM44p5_G!L#3rermgS!)f)D9s2-v(>@;D#D*t)PYxUyUNx?Y`0Y zuyQfCF6J?f#|qb)TgApsn4<@KIKPM8g*b#QjYQCFfiY!*VC&cBgJ9X)jFo8W_X;=X zv2biU2&4Em{vt-P*B-drmB3EAGY=V@BC0Zt!%SkbZNthCVeP8u zvd;Y}#$n2(pcN&M0*2RE+wNnmGP(T#XodHEZ_@9=Kb{sBNI%q&$A!WdX>Lg6% z!#zQaZUJ1+xmWbjA$M{}!em~9v4Z~8gr;a4SfDe~LfAw}ft$JU*L*h3;Gx>+ zpcs`#|0&}SRTL`rX(a@121X~Wc>f<0kWflq#? z3x-aTzyPEYMjMGT3Ccd&6moof^EP0NfX*dC6nE7Vz^)udCg%?Tnk>6HVlAi;hLyoP+Nz z+jNBDZO@U>V-{P547b&~GyjthhXF{@Vh>S_GYaYIl3;|IGFB|3?$ zRn15^XWb3i|E=REdjN6v%XsnTqbhE0|fn;rxCq{*MHH_dE4P|a!+FOv|v z?$kjK27NHQ2Jl(8Uw;2-^~F0sl`5SW;+^koYlOPtAFz_0$sZn#AGuLltfKm@JJS&W zf2h3j6e*K1S~7Cae{e3b&9XSyqcz5tnY0N z3#KWAzblbGnxU+07wLX9kmTcv~niKH!5+q!mL&WK!{Ca_I_XGh?Yfmk`?Q)I)Njt#yT zqTV~2K+(Joj}PVs_Fj0E?Nuzc;(5jZtkOUpb0(r*I2oN!C?5{^W}?#D78n?J4!bnN zFYq6P)%^Gk?n%hp9a2!wXM(=Q;2uC_?9yWY>*^N`qbd}sQzay+F!wbm{(^Wp>^G8d zh3`>pg?r*n?S>x9_n(gz8JJ4*A9w}cC{@C$|1;*5S!FvAXdML0IQ;%Y>yza_uDzAP zAc`1Ob$j>P_Kn~%aA-!D?6PV|c+nx;`{ceRTNW7`l-$J#O(6QVa)fVMh5 zdhoeIIsTsn(?S22b_(F@?w8m#@PzxHcO3DvfiS;uKrB$5j7eNV_4afiq1+_=TOLje zs^^L+xJDfd;u_71l{lRy8T00~nmHy4;mVI{=E5(_n=zAb9P0&*W;*dsL2{WvX_o`4 z8wg-MqagoOc^puozcEE1y!{+lYE9e}olp4b%+JyP5N(cLDV9aW|fw zd&=^-p3PD}mqkF4<=a)eHr{1wpX1HdNyt?VK*Win1*u5!XqP+Of-i;Re(b}>I2uD$ zxI=RYrM1>n4;o2_-DPx$5-Ah9b2ns_su4vOYl*rBF&BlO1`qVCH$4FNO(2&w7Q-;V z*`uU!@7Qn8WhW}D@}q9$mu_(B0k~Q(;r(8EQYMkynqA#BO&a~@eh~CE%P4SYjLhMC zAmuWKgPAcH2%#~leIt(!IP}uF4J}CY=&>I~;0B~9=u1^sA`*I#gFg0+vJ&?U`M**y z?s2~|;o(7cNLZ(9QbU^Xn5SpkOzxA7;LBscFOlapMsg9SOC~1ia8Q3!9JDdfFlOfT z$nJUunC;PX`>H<}d}_>2(ofI`uaV4yU$OH~PnMuDN`T#P%@rxnt1ysHO%0Ll9)fE* zVvZSVVN@Z0h&Vy{pEcV5vX|Un{j`_-G4N-S?EqI98Ct#)_ia|^$LuD!-|Rd2ySC2^ zB*&j(>XE()9PN>c1%uA5f*>XB{xs)>+P;3Qe(MfW2nUeZ9#D_?TfMAn1+Tpnx{f_q z(VmYr*eHBe^sBk;WaC@hNI7_->;y%Z>+oxa@)Qro=8}bz?QhM}f`(YW+iP@gnu|37 zyyU0P6CpUd+SXM3f`TO(9m4Z62X{j(0tcNJ^47KZ)Q4d9SslUyZ#7l9w-Hfmo3DMr zt@xz_Nzo5aHLgoF_q8Di&dq#wWJ+(gb84%eXPy~<1W=RKRx6O&uRRM0XMDPtSn zPW`16P>o9IOAbwqcT70W`c|fitSnl3oH3?W=82wCUEqEInsR3YyWplWB&O-&v4%TW z`z9D2oqOIq1;-FTIXXybV{rV z7O@}CE1jXnIy2sv>Lrn-Q=BVzqFH~s0kOx?&+a3{kpNYKe-UyvVffioa<~%7_w~Wr zjx(9|5CYT?0` zE-qHlA0O4#{*t0O$W#+nRp=DG`%$;Q$1dS3>)mG@a7#$n*h_!;Mjkx>oh& z60VuC_7SzeR%bd7u5@x~Jy#=d5R?9^mH9p%KecF+sr#)hUE|N-wlS}po!lrM?N9u~ zS6r+iNQGN$8Y@?xOE8Sr-N5RqH}IpjNIj~@X8864_~BI*o8bWx6mBtK+h1&Xp%%$i zC~&({eBD%;?1KYUWj(J#=cQuntQR=!A7*CHkkoG}PlHQ?QH^IN6q3+A2+9p5SLL%* zgVcv}K@@D&N_vn2-P|sDQed^sWqks3MJ_d0!ai=OdLwm4@&yvvp*N3MD@vz|5}FtP z39+jk`1#bV0pRH;w*)$4n)03C>u~|uGt=5XfK5ke2%q1d6 z(@hO0dq)Jh$Ln4DJ((P-=_p934K3@IC)JQlCoy?ULlQ zY>gVac<c9NZe<%-TL4l(#a?`ZcLJ`3vWCQ z#1*R3qj8rU2M5%L=M(K|NzR+lIK(b`J@mySaQp+2^EfE^RMEWj4Bt_rD1Y6~4R7)a z>uv;IOfB{QcyH{LJj4PefZ8~i+;K6-Mh$Eq>bzP~b#nj0Us62ZBKdf&BGB8XM21A8<_ z>O$0trM0GLs(=F5i-JpA>skOqWwGz4{a07>r==Kwmof8FhiRGm%ZB1uZNAh>KsQy4 zy7fSrlp*NB`ft_*rj8>D)Macr!dwX7-13eKZN`%}kX^mYpsrhY!RXDB_ejW^>Ow;t z1}g$Q^Q2;I)Ouz`d{^OFsmIh55LnB_Dr!WRHNfPwT{6WWc9B@mR%PgDI6dQ}NK^Lc z>V+uy>cC|XLLk$d&cTlNo0UntG=+zW65T_hpB4_KZw8SOyTt+);{Ft!L+Gg;s)`j` zC)Rj_tDQYSrYHSFDt@7&&QB!-Z1Id0Q~l-L|HLB}a2@&5h0@oPlrD*BRg0 zBX>FRs1evsIrC#hv^du)(Tn@xSQ$G7a(n-+kLF~AwPrQEc}^_XW?!(OfpV5i{aG|c z-#o}>->pH5hP9chB*cEnaN@SE7cN||s z0(tXuSDEPbWE8)VG6B3Q*V~k9*TbDMM+eg_FOLEq%8fO&!jpCn?IeH494Vfmh3^3v zpVDGf1OgDtkf>V+A*mcGg{|MNS4WD6pxnd-dDf9!25tHF>WUn{mXILM&BHfd7=k*a ziCUy!$}Fy6tPg4!1hZ@8uU+^B^6uWg&qmfu99x)YHg6U1kgUeYh6Isg^tZpgb z1#wg($Cao%Ga(nRJV{VxgjWNkR;OmOt z4_YfAJ zZic6vIfK4~+0t2$W>t_lCHLVgRs>bKq>BEQ$t>wgZDdGPc|zue3V!+Sl{^qB zN5W&VkOvo>QF9#Q#s_^~Xd{dQt288d&3qRV9Flz0CcJ=H1L9v0+O^tCR<}6ju!PmX z2soPKLC)0sRqnsS9a4cZ(JTbX1v`cZ&eG5?Vb{g*PJSZVR#qo_;7h}}FVfv2jdb{hjAHMYB%%u_7RgNr76txDQM;$&-uwGs z_?a^Ps>tvy+ZI3XDIj-|R?W^znfTfHYX3Mp-R-HRSkJb%`CigQE!^n@A6T<8#E8*cd2R`>A#e3Le7zs=E#-uPDB6#b3jX)*r8FvVgfq<55Onwv+k^0iG-> zSIOeOx9gFF8d|D>v*ND=O-m6Z6bDGYR3z_23#&RJxl_9du8vl`k1jmA!;DCiC7A?E zZGX^f5`8JIoDT;ur3ifH3WDMMD7rUce%{AO*z>=_4la43CWJ2>1*=LlvC`XlvOoDq zBEiTkbI>i^c}4pYXH%1Bh5vga#iryv+U5za{A#7dx3CgbI-fjWY0b! zO02ap-BZB>&ZLcoBsdvvz;XPa&)s9xvrNc-ETNk1aPnsMxI9)i{{7|1;1{Oz1w1j2 z5P-KRqWCLubqIIW9!BuD9Ve`?nX5dzw}p*N+7x7-W@87oWPpeX9 zKP14tL`?eBBOl)afS~l#D^TN|1ta%5-nXEEeUS7m>5lG85O7pVdzMZxK1zG01uSJP zn7VlrQnM$H*7e6JnY|nUM<%7wChvH)k0yW8zlmlaMbf`Da?T={zxsjYFF!)S*YxiIl_tVZ}e^QJ%q7q8nP z@ZI6SYsp!zkA=?#0mbHn#0TxkP~o?9W;^dD(7kvXKF3=TBuay&yL3qL@w;r`DA`Pw z1Oq48kX|2uif(G(3NOd@SA;ccj=1r@V$6UIa*#D$;XNx(6yh?H4-Ozq1c4_<+;l&! zuZ%Zld?4SPD<|A+U-1yI+7(58-RTTRR(n)GAZuiO}7--sF#7F&4w)n4&sb zmGr6BAOt}=g}C)Ho?(wfxYIre?#^C(Pm{K;&P{s1(={)E4yyo<&n?^7*_E8PA*NZx zUAUd@I^GPmcXd`j%FC46qcCf)~WwxKjI4lkOnyzr`f@c8(wB4wIu z?9AQRAiYGEhrfj<-VFrLV6v-$oW&a6KQ)i=Nhd=!i?${xJAmvMe=8 ztC#gJ(YQZM^97bDvi{*3_wlm+9UAusBqh1~>H5RXTfe$tZPP8h(bvy%&eSXw9%O5c zbmq%zTL{Uv~XY@kyAmmD1r7mK3{fYlDV)BNn#43dZ3yPbr%7&=) zcBFc0x<6!jh{o9*@rCKiSqbF6zYm14SGW+uZ^yUr(#Aa>%VynN6poL=Z;gHW)(njI z(f;Mk3;+z_=_^!9Fzg(VsGnKEj8Cgi+2*Xor`d^n%45BlA7@V(B0_0)oz(pK;n_u5 zZOWb2by9f^)pyLN;^rSR=@ZU^X~F*5bwcsLCI6U{G?n^jN{PB)P=1fa*?m$lW9aCm zAa*9#e?*OfdxX2Y*5hccrnV)I{7n1S1&{xubHV^qI+~H*BnPeQcIh3L^$XbJ`-0FH z&AAwT9cdC~f${zFeASgGOtM(PhC)__T!ezloiTRyblJ&Rk!ic6T-b>Y=tK`7c(g|$@ zDF^Tx{ql(_{R!IpL8aGLInOzFsE!y=jb9qQgwHrjZ2J>?jWUz>Zse-n&Alxl-2>*K z5X#4FB;$`Z_LQXEd+&qR(};fhjwDCkZ`oZPjIF2{o5>~kaER|@t%SjlYTm@g9A-vqV(;5$a zw=aHTXSo+__lL&J>ngM9^4R5e4&~4_o}Ypa6l7wuh~c*rrsC%{3}b1bP<{0smIH`H z(V2QwW%nQjthVAst|kI<#Qv^kdhpr9#NXIjGb80<3TDd0a*?kzHeeDO;?{-zaaWbG zKQR&cN^aM7-@=D%KACy;qSlwc*M%xnQN2A?)gm=y;U-b*4cjuJiNm#|9?x%W?-_^! zm_$QiVI?BYjZM33vCQe`Ge@sf#Hp~V5ycMf1{#Jwm~%kJD_W+ll?43Due4BEqX&o1BZY zgjwKj=9PEyv@;+K2-a+sYFAXr9gQ<+?sgc}f*e&FixEpWZ~h)OIF*>xA{gVqAQ9@I z@ZPoRW-fmw;jN-u-%a*v_x1f(<{}n>N0hPRN-YR^-mR}tZnH4i!>Ogci$65avZc~hfkKAKG$t=7l53wfvZHX zkWklQtxH*{gXyV$g@_9xcaVPFTtoyg}@z86N=QXBl;9~G8{unXekuD%^jU6k= z#mB6$Ck4}!&GccU=f-?Mxh$4@*kGjn$_G6*s9s4;S2d7nN*3X~M!^?$y7ITMiA`p? zAdC@L$7sF+NuHT37~$CYXVjbMB@zDqlRQdMWc2%5f!pz5xz>=p(Ovy)$gt0R?B8BPFkon9ehs~|I*D&^VLMB^Bz_k$k9obm6?Z#VBTR?|4S>wjP5GY>7;m#kGiAOdm54N z4JvGd7bd28am0*#Nxt%4>)>U!a|I-p`1MmO*wW4UxZVYZm)Y3Fc#AZcf3~_L2mAj2 ztQM5!SUU+kAe>lY*{2*W85^v>ev7`Io{u5dtwMqQ#>rYX$_?rr^Q0qRm%AbqTG*aB zt%PiC2o*>nIwW;-P+=cYX?meS0QkfxbkJ5V5E7_qSxKOoxh*eStNg^St!z5w9$-rO zsSEmVT`y=pjgJwlJgPJ7yHrJZnXkSHWQuFNO`Z#BapEhS&FBN}?Ub6u8@Gh}pVP4? z5(+q}ed|{;=Q@?YyIT>H{vlu^%wl$9mI!Qyxj9J7RMS4Deam-r3G#py8QPiF3VFBW zQsCDxl)QGz`fp~oZ!ByFDuuo4(W;?jgBJDxk_1W7*cy0%{=5@l$Xhs9rseVPb$#)FrXqbZbu)pBX_XS1Y;e*6CLvNO|r$nl5WeA_A<)08&bxJx`Zk;q{_#22LzS|KKRPxb02KTKS`+j*`(kEg2st_ zgH&sil@r@THx*#-dD7ss1|+{)1lSqaPzQWgt@c6o)aOBX29Q+OL*{+?OftQ2QUW z0ex4S7^wrVEQ|pSd7J$5z$6elRpyEPKj_zC`ruC`AavMQ^6jy5aHT5T?uaRJk95Um z(SOh*zes$Kej(luCf^n-2S+Ic3qA-$0KwZ;9TNWoHz*Gi7}pitxz!=}tq1nJCcc#! zJCrf`T>XCo8)*#oU1~(UCr$dVd8I5I5)-gC_1x}%B)@37JxPZf!+cM=rJ(Lts|mX? zWP$EgsMt;Y@6&{jSwy*yc=iU*0gNmDrjGWgOA8zIGtl#Yqkoo*sv5(m%c%xi1)Oq4 zLEdiMjde>FlU|!jiy6*Z}&F@mTU1nzY*CUt0o^SEz9}eK;5Vst57x=zSJD zN>VzT+vNx!cnS3I(w&_>~=0Jd_ zfMQ}fFsUO&4F6GCd8rfFTs4v%So1+tp(4`zq5tk0P&VU^m*7$qT#>_6qoy#qf}^R* z^-LaBhuW2rYqZ>Bszk7oeb6-1hq^V`7MPg1g1Z)cyEKVmX4+$@EF(ivs0*-Kre;ig zJe&_C7&#RfJn2E$1IN~n2qY>+y8}#TmT|hh!G)8`4m4IHK>4NA+1E$|ON;U5wH68m9 zi8H|ZU>|*^vxe1<%ZjsC$4W2@4IWJaT1|mpRmXGl=`ckmep`g@;H~gZP)%cxrJ)v;}^=WSQdooO5SO&tQv+U z(5~|lum1?g2;@fod0m&7uRCl!qlDu7mjpF>eiPInI$0_J+$G#uX8rSl@2M$mZaIud z#=U_+pPPRSwt-)3GkUKORPs$wmRbN;_cME^w7GI^DMG`mckNZP$X$FZwmdr;M}1fk z0ZB-^fTTB+G(fmgOyn;Ly_ApwibFHitiUWGe6kT7&USLJdL4mAVb|3)BE`o8F6Zpb zGgMi60Hgn6K^J(NadJ}zBmQTKZb9$ujnAzQfrsVneb|d*5aH`y-{r~c1v?stPLkRq ze1PU@{ZC$}_b+oi--sFO)TTaWNE8os2m6$nbDcR?`m?3f8u@IC(TdwFp^tL2woQY~ zq+a&=UQivniF>|GDX*udk^;1n z0{;iZKs&!PqzASMq!NL2nTGU@hV+|vx(VrwNG#y&=+;Ha7nt;RaSf&Q1UIBd6{JTQ(wXlHq$Yv%wubcby8>y~yIpouz1u+= z1)bzZ^EZX&Z;WQzd)ydyq@tr)@}5QM7rbavpA!{Be<{&zZ3oP!Uo@%s{cfStuF{~2 zPFA|qyb2%R=Wp#JdKbOV;1=>ns9${FqV$a~nlx6dnJ6W|rKJ!RWNtKR$_JeVhi6Bj zLc6jiQXcb%<5iJZt%Iqp9k!)uym4u18m7W2H>9KARwoGF`hgy1)bGx91qy*|6Vxhw zGu>`ksZ_6YRP#o`mHc&>t&Vb4jX|!MjFtSc8s00oG7a85{%;oLMM8nnNSvNvm(Il% zd}8MZroCT&#_9VsJc&Bs@Azm4pY=%1X`}mR(;a`eD693kO!aY^C;8g5e@747yg@F0 zoz`8&wc>+=n9S9Hs%PMM85fXn^Di zt~!6CNi9-UgQ~x5H0dj@TDQ@pT~c*Est(v>QvOFUGiQ@YyJjeCUrPyWmw{~JCX>zs zS;lFbO!B>;9QAutU9!of1s_?IarGvXqAz69(L|Jk$?vXBCVlXcMFYOyWYV$!XVHMn zmrSbNZsAs^GjmjT)~QFK-F&Vob26Q{(V5C@V=1r?m7R}6vA2~5CZBl@L#Cy#1^&*X z=Us+cQM5uUgom%`!HxBr9@1FVcA;x}V6I1bxW`!B1AX3)+bzPxNNo*R&DSRWLtU%0 z>82i-m(Ae|bTf1J_!y1g1^$eUKSsCl#Y;X$E1(xMDKDOUP<|J4Kgo5asEhgoykF%J z*7FZkq+`e9c5znGnaT!Oa6^jhcufBUsf5O~?JQNjT}qJMi7#-YVG*VGdC8>c*^1^O zDM52LXr{kp5*3{Fl1W39z?V$QIY$xaO9|o?4zUQ7x`k4LW@QJO(pgH*IZ}dVi9^Fm zLr~g<81wd#nn);M$5gl_%uTjZsm6_`RJfmNAMU3(Hk3DyTKKOAKC$pk;td>@={vCF z3Q^%1w@QG`9GI(j;0s^Du)6jZU)!<+Q9!U334+a1!q{hYu#Wi@Wbkd)Yz45dlpx#K z-X~{)xKln+Z{KL!eN{?@^1;p?(#Ur9;8vE0^MJo#!?zH1NJPE%MtAl^Yb^Xs z52SbYR4rBAvo!TYGpzc|qO4{_%+<#3<*GYBgWD0EDdLkwQo@?tRB1})=O9B<`a!DG zs}($uS*e}vM4cP`I^N`;+|Ckr?A~?0QlMglFRRoNZSIK?dBW#NGrW{#$LVi98$ZsZ zOFqZfB-ljyJ6kqpC$=%NNb}CUpu>LUGw9}%3x%G!p z$rl!7^vg{n+LTFyi6|q5sNjU$G`i&riwef(rctkdLXL-!W7o%2h4*Y{;|sPiRwjHG z`pV}=ZJ&otFmkT-?|gjA>^pl_Fq{}R^mo2dp@eUCBog|akF%Wr_FX*7@nBO(dlGTF z+%SBFQGd)|TTG1;vx(2bzT7zW3zI7UX%U_VUT*wzVm6)drOv6#4Q#%oJbpHK1uxd! z{UvUBH)T@ZY}rbj9jTMBHw)mC;&lE#J>v(*qfE|1NEdjAWfs6vZ0CxL9mzyc+K~MPiPUwxqJc zOQJWvAdGu zhr|=HIMHVYo&&$)`0g_fC=DD`n5YTH$)MiZl>RN^w*O7)$>*lyDr+LsBC%S3h+g@f zhf@&TAqQ`%KOV>J8gqNtj4QX8AslR{ zHXp}=I2Dio?u@sTakc)2Gf!3X4C4<*muysmMkPjL*JLdjXLd_Uc_d0kS(ijOgGE_o zED};jDH!WhSQbKWhCA=2q)a<8Q#`U2w|R?yZXyz;t9jKa zcee7W`qla9#@P|0Vz!@*KPRJWLW6-xr6~&d$A0Bwo38RL;BW3>m|?qqN-%846>`WO zjs5=q*nH(`k>CE}e)YJTVAB6=iaO@Pc&7US7#pb%lkp!VXpbTIj#t5T2-L6rLQlF# zDfs;VtCLFo)iy%&x{5WDe!qzKTeL^ zzS^U_e|1vcjBwlu)XAL+RQ_OoIjEqp4kE}Vki%Ucq2kdj$bsKZ%km`+6g6weIVDrY&ZF045R0%`vVfaYX80-!ifW7)- zzLJfj7qZMZHkcF=>T9J07d~#ss_$ens9q%1+oS{;z5u0E?~tqcbCar%Xs`N3t@>w{ z3DpUqUMwYK;*OA2oBz^Q-zL?Yr3BeP$Lj5J)ruum4`{D?^1sCDD_AB}M}>Nkl#q#M z@T__Tlfml6Qr#*g$O;_QZF1EYPpZyquljYZ`hb7K9HGQN2yB_Dv*JAK6}Y*}ui=Ygi^!2ZVZol#p4ZRX@aJP`yy9H%JMxVn_96x!R{L zsT%9it~7gFtM2`^wz@*78>NKI;ac@jCWGn)QvHgQAUnoU{k~l7KQF0zSbM9_{#vZQ ziDkm-8lhe&C1j4!svl!AsJ>RJTcrfqNJn*>T=mr_RUg-0_20GXL%%^5ceU4WZf?}- z|FKT*5p{YItd30J-PsecJNx)=)E+sShy}j%S@_AfLj1e$Qo!jJ8oW@d&>Z8SXl;ka zwO9N-sOR+{wO9P7ZmY+gUSU;TxUzUSwa)KL2K_(Uz683d;`{%mduf286j4A+A4w_N zQdUt>DxjjWR7J(L4Q&d6G>J)Czy*q|Dr!Z*1=PABC~6T!RD`N1D5w=tTo9^)q9Rmw z1mu4{ckaBrR+i%L`{x`wZ)Wa(@7y&h5$%YR|aE7=8BEF-8%p7GpfWw?TVS zj-JrjH4$TUF{P-eBaOuvo59{Nv<4>@+7$bTA|IQfMCfk}i>@AUT?fyE(7>%mM7;pZcr7?|ho+(7momS6S zY_S*IEw(uQ!2iq^Jxs2Zb+}thaqEFPrWlW^#S~TlXJJfJoNEe^eAh8daRl5grbzqy ze`bpACfBk$+%2XU_IDjq+>5Hk6d(Veg)vRh%@m@hjxd&}NI0m32}$le`{4h~6kScO zxnr%4u$Uqs+|_*};bBxQrda!b7REG17gLDJI>J~?(dg;+I9%5h7al%2Q}AYVA)ZsFHI5?JX(s$))Y$}s}8rLgd=~YQI!x&7GfZE3Z_aFm%B5~ir}WTqsM-p@=bl=1n_G-_>gP{y}A)2NrtL6op%XBut2yCt9RxLZn?_$eSZ z-jzlrfKS<#Mz7-{bypg#2jYK?2E7WcO_w^+YQlwT&-p?d;^A+bgEDt6x_N*W+cNejC6?|=qg)YhIV4}SD~&FW7M;qZ=SK8Er=nn4`avY7E`a)hA*c$`Juk08!7XRiOvL zRUtj5YFlF9hy;wO9wJviDPxGpjxC{xv_`QG>VWa323KaRj!F7d8LP2|%#D?p4B-MX zISau5$=Awy*9J_R<=kVn-E6fvd3F?R_g1X3-E6i+OkBivv!n2GSXt@??i~~t$u{%2 zB^c+R#HG8^C|mSt4Sn|RN~4)^P!-0@m#+5cLKMHvU9erHwF~yz6em`QikE!kh=-;B zOT=I15Bue-OooJ^M4+rTR=XwzI}2I>??}okZy>13Vv%Q0S28 zAhPF2nqT7P?v2n~6KP(^%}tZgoc)DK`LiEq#{wH^*kr(|4>2m4sfoMla zKiEt{`ZZi&V1LyN5>es{yVIyjz`qChmfdNTbc%zFzjmk5X{S2KIJ7&B2A%4l#H2lG zR4cIe0`|&1X*A_j2W4EdCyf^1;+8#WwE0xry+`gzqjRRI$SRW(x;_BJIeXHmb#n)0 zytF5c+NU@uL@-(pk zeXT^h9k8&#*QbdE4&nk9=+Y7vcwlcD72dBbutZ8&U@Q>d+nYusTRJGCdT$zyI^97T zKkZGUS5Jpb90S?H=67fqiGg2F7YhWWzg`S9I>VtR9F@{w8n~(KS11@b`O^0?wAivcjoO?g17|NTFmSR`MT>HQ zH3v>ns%UW^E)X^!q(Tb}obW?R`c+cK5Jd*gLBM0+tZOR+$DYPoz_3-qW)Vb!Vf&_u zVRH>J>{LTUsuft%uvLbLv;`LssZBeGgh<{xU5V85VO2sTGm@`uCz0%Oh+!Xdut+)k z(kS&?Wx+RL*acGOy)5XGn;sO?Sv=?=% z1lF|hE$u~}yKw<^-fjq`04D0V3cc>@r-g=WuZ7h~s+JD>GL5{FLviW5Px2GOL zySYbZdo1Qq31@Y2{7>|_HXvGDtKKl3YsyZuRp8iIhp+VB_pj96_xd_~%d)mF>{3sM zZ@4{m3ffH_)+-%e{QsmwcT@Jjf6-wFWVQN1bU3A}gZ`yMx32#iKX4GK2QI!uJaseW zuc@O)1LNs-$ZOR@;^_&ro4$~Es`?-4Q9qu#nzHB4`490F+wJJ_)E@1o4iZmScKiS5 zi!P@8Rdw`epfAcH?@@fQ2<@gG;)}2UM|#xvMQ2m?>?i(%FIsg!x-Tw5yQzct!qxr% zpD#L@@>kT+qk+Dd3we*?i;vN6>LI?^_Mh~?=1fz#+NZU#V~A+CdN|*$AI{ao`0i*d zOH=wNIvkCgL8o&aSkhIMk*E~-eOTyLyR|0r=cUhE+GV5CB<}dZ(h;J`F`%8&1JB|c z@R`df`iGf}?BO74Jo+gmUb&R%q2V;1$vlhxgh%(KQR^oaOsKqKaIZc;h>D%{b@w!VLEfe{xqr( zxTR78J^}FegV=cv%9y!7jc#H1C-uL1pE*C(`e>-4l=gvPoq!I1N|NQ z(@eO*7WhVh&pePuI|1MAKpJ&8AMm{nq)}^e?m1F|eq+Fw9!R4>=Q}8I+<`R8*^oq7 z8py#Ok);RHh!R#FNTXCiY9}Q?Vljn2a3GDs=R2r_?QgUZB{cdwjdBGnUrLi#@4wUN z5zQ+gye_TFYp@^=|Wq8wdWQF}6&# z3`CE{U=FkCe7%hQD2E%O|1rKYE^v^&0F}~tpCD= zbA_f}@vJtP4P16dgUtq$jid>p=b9e%lMEkzFQ8)}=njX+boBVbZk$lmafE+ph+1Uc zZ#T&&|8O#&V=%t;Q;cJ?$tv*reeNs#L&-MZW=k94A4+uAfF{(I+v#N+SBCpTVS0l< z5^5U?yTTz5Q7$%_f`9S+d`wKS&KTuq+znUeW8+|`x>7s5E||ehlH2*dBuy` z_sEWCZ~&YE0gfQ}vwujUbZ~DE6W-Pn%i_Hag91OO4->J$(kL?wn%~nw#{GstNf$cE zc+45 zELJQFial|WgEGTJS;+&N&^lBK{KdsCUm;Nz?pZB*IVcms5+ce%${5m154bE?fz-`Y zU9)jIqxr2~4zkz4UcjZEAoW)-WbBI6sh{B`jFjoQ6oRhJqRw6OplgVRQPB<@^txRUhMBfo!71%2}ukV&j+{ z$gUk2mD_~2=4ek1Oux$f_)uN58xDzx{VNp(D1rlx*$pI(x)bs%H~a_tM#Q!nSW8}G zYM=~UDD~&0gj{?UG7Nmy#bV&$(yO5$plRUV7b6hi?w}+SnR8=F%m+QhxR!T7*TJ3O%b|TN~m=MCKibLWNFl$(B?mz+f>48ZLLSG zsgJUDSn97!39Y+b0O^fLT?9U zj_~shpb#_jjlH$u3z2Ii1*z-C)vqfu?SvdWK_dZ|(nsf?mIC9I5-Pj3Ct6FR?u4fQ z*%Mdz>!cK|WAb7pq)mJj}ZJZwok+#A^77BG;p4$5EA{7J`QE}QkeaQz78DIz*CId z7Y%GeclLFt{L@3MFhff432Qg>lt$eNWtAHeYYl^vH>!JXDXi4Bok1VmZ|FJA*E}1pdZ7qw-Cq%2Fx8Xgm;c&lmx)|B%z_+08oCwCQS06RM$BDD~&0gd8Q1 z18#o$5^?iz>D5rs+;sB_mi9j+HZ5*nzt3$7R`!lEj2d&3)UJ_9HhB5hOCnyL#P6EV zyi}$FMC!PJ;b?G=_JsTR3*Bf$Fuae(P)R`ne(Ikl*>D`eflDPIrt-8c`?5$xOyf!C zHJ3?9B)p{r@=6H{;n)Grk#=d+oiL0gByuDqroy5Ki6<_TkXUz_gv6QsFb%ut+|wu^ zz~zXy4&6?pgtryvR4L<$C?3z(YT8jF&D*4eV2^_lLg-?U{Xc{dd}56s?UvM~N+z8q zo)dR%mJ&itfe?tF(fuTT=1H%Hf|<QcVUN%4H3iCFrUgq< zn-=j@Nz@dhe_21Bow>kT-$yA3AiCT^>7K&Tl#JSy zsEy#{-wO44sGBi&7MgaUDc~C8^}7nGIYhYV3Keg;`0=9C(efx-fW}Q{pvixwgZRkW zRyZ!^$15F__(4f4s@RxBP>N5Y`nseQoz~w$9X6KW!>z>YN?TF20Hnb1-qKcd0|3IM zt%wq@c{iG9Qxe&UXf*mu-;Jh4=pTz7qJ)pOo=P$AD(l&$1Uvq?Z2i_#sqp}0Er1P| z?tqj4;}5|AHUwY|bz}PuNboq-pd^%$b&1y%2)PSQC*~|y;@IZI5s}lDIh@FeME&dl z?MWwo9FY<*aF&YeH%kc|9J#`SNO!K2&d4C5qyB8*ac1WciA@1(O+hg(ZMMt+5vPxj z1~@45HmMwj)IqXw<{_eYT1B4I-C*eP4eL16=Iw0$K}hq*5eCz>Q1)VHvY|^t6phD#{fc%Z-DW$UXqWjl;5GmT-9=t^K{)GjU!f=H zE(nwD$J6)#hG{+RM^UkT2X+RQByh$K*`~(X(%eL!U)_Y#Myp>{{x^3Emd6+FLAK>} zvF5*jG}SCvB?|44x@hZ;YD){6M8^kp(I%%P9bZOpLsUIe7w_mXQkNY(zOpVF4!}LG zNx%+xFW1F8dZg54hcH=P7cKlo18fPrC3W$R9$pr9p^=^d*}jU8_`8%iO4|D9>v-HH zDDLadhB?-At8~uG;x47rv){ui$Mzp zIw+%i7lV=pIf&wVbumov)c5LgtQ0hN7lX0}X^xdPwk*Z@x)>%(c|Fv{g8E1ogXRu$ zP{vbT42sPK$9Y{06TG$_TD72k(Z!(lx!6wB#h@vS_EQ(b1gH1w3i`W3Q|ml(tPsT| zb~Q}M!3`3 zu+SYu%gt9ep}4CYlv(HsyU=jsf=1NuDs8~Wqj5K<^pNLvH_hXBEcagJ!0~u5L?dgg zM`dV95xpFZglt?blYmOb+j_OyafuC=Kb|)CnMP`ZWq3>=kA6HY_j#!od0oTk$I}LM zu@l*IHziTJkLED1i>|@G+7QiQ>ZR8>$X!5_`H+7(I#QGbg z#N6X)%sm#~)Pb5^hY4>@zf&o-MomkeL09bMr&3pR5hdO|qb23mC`n#~B(r9;r0cJ9 zP{LC)T2lA}<(JV?HY1|cSfY$2Gg{JPAd%3ed5YORu^t#vLg%gqwU*|dQo_fqb-%6# zEd#IqO;b#$b^--Weu4!Go2JljfGV~?rCOlQz(j*6;fecCr7CIPFC}=fUJLF&m6~4< z>;EejIX2ywx5Dbq{ou^6P-AJA{l0e&gXj#>0_649;L8H^SW&0&hS-^vu{ zFviMTnPR&S6~)0)rkB#wF}SJyj(&Ru@Js30m{pCFsBxZy?A2)T&~r?2N*+^ujxpBd zF+~z%WJ{S|O7mlol=q?EPCv6VUW&QSorC-!7gKzlF}4GP8s90}E|4<4l-`QL zJ+j$QP^G`)?jz;b_EKUHUx7af>wi0y5+r`?Qlg_b{xI%R zX|0kH9sTf!ai@KvD3?o#jvV~q-X*J5?@}qzfkT-U<#wN{-u6Ih_c^)gWO>4_p)~W)rSghTe_sdZC?~79lQw!B2#bq-C+lK9h^E<^qA1#o~@Rzlc3n4j^v+ zoXPYZ#$;AAnLCF$$WFg1GHaO3cj#yMHB9F4Fpx<^_RjfL-9z4qB1%M}F8fv8aa3|n z+}9+9Dh1|U7%kzgloZOYR%YohB|4Vjz46y6DKuiZgEDGTQs_HeY)eU@5)bZY$<0!z zMo29OM#9Z2&!lZaqU9HgBsx9>soPhcNsoFQlreGTnUprdL5UBoJd={QCh_wr4vomz zvGPp1e1wBC4y-(rz8t|yflJO-rPN9gV-*6@vKlR{!lT0Pbt%!Y27IBy-yjMVMvQb2 ztFV5ggOtFB1fjiz1`w-(2!a0wJOuW7Mc|710zd2(fn$qVU|6_X#QO@w{vDQZoxjKo z#`1N_R4OQch_z*giGE<`pHr-Z@&}F#veR$axk5EuoeGxrY;GzkrY+p~Rk4HY`DpXd zFWl12=fLDhRmyxwBIpj$uiX8q4}u>>PRrC@osO#|t@yzz@$`6GrkiMbJRb3CeGdMe zk?HXmRD=9#DtDA|RO}i?m5InvYNXW}Sk;ivOEdYQ;UB+)?8(3LZEY5}bPqscdk)&X zG>6+}1bEQQj>p(r6Trp^bbIIt?k>EIQEJiVr5CvE)!Q&a|6s!NxaC&`m5;X3v@-sc zlq9+&h(uhenpShuBsB4OtNBBP=EKoMJTY1#&Ri-brcY|@C2VP$LffRdR!RiO%h8wt zUe(p03lY2y`CrW>EHa#q%=Id9Ry6juMkjne;7YI%~TbRB36+ z*x${di6suopza3!T;ia_#O?;w3dofpnBCo=xKamY^yqGoyOb$Ug2i?yu5U4A*d<_T zVY^HPGy_*j*EF4GZu^(u(U9X^wAE=__&)vlYzx|&~5A00Iii0VWud6W|dG_!8BPC zOAAXfA2eadgfU2zm<{y*M$ycb5;PTspCRW?CFe?}2|3H8Wfgn_XP-Srl%N23VyRMhDXCVoRM0e6TGoIjBBtZ* zV)F->CN!NYw5CZ3nt)d^S0NNW)f5(L3dwgsDp1%Un46^p1;A4R?q}`4Q!@9I61_7a zA@}x^)?6vk`vQ9T)>13nXLHMaE6$|U-Ac!&xaH#R2IWf2Gmx;TyFp#`S14+o72e)>Jfkd` z1jIbYwD2AWnEh|jzJD7{{8Ih%B9bKtEDRwZu{P z;(pQ~LArD{1<3!oo_dQTf-Gi19=}%!vY6K#H$f1rItHwQJkrIWsQVmhiSgq58Z1cn zuBHIAxt<`^5kab1kiz?vAk{WJ!_L3YL5Wz$tgs4#Mawl11dEnQ(@rdiyhza8%j!$< zyON^rvgYxPjQ1?~ac&`%yrrIEvlU6WdNwPTHBF}~SxHXB8g#W)FDy8R8lVn%cj;{M ztftVYv5OO#>hc^~smsy}oFxJF;+3VM9u{%&8V?tCV7^l^c@ zbY`H~;{tW>%0P`8)n})EUx9A|iP2>>>g4m!|ADOSlOnJ0O5MIff3V{)zt`m(mgNr) z>o~e&L2yhU?2qiU4fwrdI(5nJMlIf-Yp1fc29K!heJAs7&!iE1G90r)!#zdet8vC{ z?=hXpHpym7a}h0bB-2R}DlYNjCCDho$CyYPN?f)b?xE3WXzTT>i<6}6DlF{Oxd++q zWYQ1~q)~$6T}-+_%HbXwi-wbA5pv_59prx~ieJ`&2425$IYuc$(I;iu_8kUX+$SUJ zI(N`hG{$sl&X>x$YIFOo{Nno7zG=zS{eA~!x+fn&GwOqja0ur8TN0|>e zs6+Bo?TCz)Pqm|a9&nJ6`cykw`+$QIGoETk)%%htfrzkkAS3UocGT)Y2W1RM4L!fMWm~T&+Gf?X!wI{gNS!#`EIw(DuO*0s>oNJw=wrVC8KVZ>< z0@`E4kUIi^0(yj@ubqWOgiiD$*A{ZEGyTN1bzJL0KXYv#YQwXG*|dtuobd=t6wIcN zxqcznI|sAr6RziTJv-QmR&#v<*E>eRR@x|Wfc&+4l?M?N3p?ckU`%)>L8=BlMB;Nq6 z2L~B+`y2;lJTl0jCjk7^AcLxKF>jDTKjWfukU?=zKyjd#2|EASHPADj5cK{}IEc~x zxB&WeTmbzIpr2$0DDwDRUMzd-L0?m6@IMh{%j9(PL=^JPH&0-TBheF4+e(_yLDWL1 z_5C)9&U_NXESsK;!j0@=u62^yD6Vyu+RI!U;PI7&aSmde^lq*o^Xh# zIMF930q_UER05Fp`N`(8CXG1)DwY$I{EW9`n2>MI0&s7Adl+rc_AKiAfQPQzO13!~j;0pVL z*ZM;4u-eLZV&F?%-jJJtZ6^jE94t|=QH_ozMUl(n#gHq&wv@!^{IAqwF>Gf$CekH7 z*HEv!kP@SJ-{j*lj;Ebt!}DOJ#OOU%Xj(>*L~@*DUNGEMFx=HSn_5hG#ZL6Onle?N zR8lc%9B*c?fwD&XgIBu8ToVquUB%Z8F+SUyj0_Q|77#5? zO{TQMP*@}l1q;;GaWywN+*aZWhTXxd{UyFavX!YN7i`zTx(1g8q{>27HjJ#RuyBY! zNVZdKM-vUpI!t@0qS>~T&Op6kG3;}Xy4L3^2@l6t6$P%ayHFX)48Pne6^1Io=h`w0 zh;m`32cLCN=1BJ#qFi|MPgEsrxZ&sL^z%J~%kzCMvOn3A4<=Fjf`J@mHvpZ~-DsKw z{X8j=;cvm6GvTLO4f;k}6P6pCP0%|8H;a@!gBCpRpp3Kf3~DsjLG8}Y!_T}Vcwcf* zu0Ri#5?EMRQN6l#h^4oXIRaO=-fZc`w{Qwqx8_@Vhnu(+()yf~;OjMeb?ZD!uaA4N zZ?IZgw@C@ytI^vquSP*o`_5 z167|s-$Cg`C0;N6%wJgTe$hep+=EH{Bd;nI(npNh>m>)-tI*@2)eL*?0_;bn)wXrd zHliCB;L+8dd?<-{3+xU?x(lrd=jItyCULhwN?4!@z7FRZ^vePVW!#x((5){!C~;Dr zK{HgO-hQ}ZZ0Ya;t3Q|c6kF~R1oY+ z&vX4csrQij7^!#aEDdweFgly&G5B(>b(31cV(k9wq&u%tRo(lzs?vPM{F!UrrFPDn zjHx?IRJF78F5_xvdXX{XmjL!$spWF5htwY9TBj~j{fVnx=p{xx`z;`Lm0Fl<=Sl5d zu65F#ac?`w9{7iM;=IBqArE>R(VNgI-=LfiRfyavB}POmJnRn3Hz@eFgEIX22F=68 zsCOCLEAxsDQL_k77DF3g@Nw~g^9QTg%@xE3LD?S12<&Qn7b_$+Gq+FEfor3 zT!6wOxB!KHOEIjb<{MP`j~auQ18a4@L4DtKP{x<}1`T`HLB{v_20itz22MVrfUnfR z?`z;K8o13e4IB{Q{u(%EnNTiRCX{EJz|{ggKm#w+z&~o>)0bZHX2S*>W4F^|=rlU0Q z<0f#v0Qb=Z-_^i18aVnrO}RpV`)Xk4dqVm0_e2b@30y0{muTPzHSlX1_$w1QJ4(rX zsRrJ!fm^*VlrO?+CI?ACfG^X)uJ=WZi5mC?6Sz`<`)S}$H1MAqxZMX@L5fylT%mz4 z`#>m<_&~(CAHW>#WvkSPTPh_+oCAm$ag{*Ci2DT>i1x%44&rD(2TN6n7%$nvjt?mZ zRtaE$wG0=)`VkixBQYOBNMPj)R)*$v{)aNMZovhx9>xW*7Mob*g2n4|;PowF!0Qk$ zfOXbKB4O{3G_NYb;>9^&xd8*Lski{vOSk~9&w$02dGuptnN?E4GTB<%zW@&k=_?(? z6mG!-=Oul z0ENaM3xz%(YYG~3h=oEIO<@e+LE%+gfWj7BK#NwNXzSIA^{_(8*1PHx@l+TWzc<6Dm*<6=D1KnTt$!=uO&5QPyJ;t>o$?uKouzgY*SbjUIj(i3-x%*tu63i| zxpw*I!0S$baP4`nolD!eww-G|=ufV-s|MtGw4G~ZTkB%hx){UKwM@M=N{z)<1nM;?(<+gI37oaFvvZ zbPql|=3d>p#?m{|?A5K+mfm8sSGTUS^!m+S-TIBC_cpUvw{EcXhPW3`FkRQEQJE_x zWOkdqVQDRw61_vY7y0jXY27R(dPnQ{UA0z5ShFuBes9DD;`iAvVKGq9n9V;`Qh>r3 zO<^10F#@`+6AEK-0SYVEX$l&%uZ04i`HYd5{FTUX11>P~9>fJGeDjs2pfST13U_E3 zntUx3uEzx^+>Z-T`1)%-;we_;2|h9!e9u}hSiNxptkJjt*6j5fD_gL}*+}K2F8~95 zUSr(^7+^hw3t+vD3-DSG ztc3KJ9pwE?c_knvyfX6shR1H>Of=!d|aw!3Jj|Q7;g3XZbN2LVVy&7!32{uQ%E2IS2eHv_y3HF?H&yx~h z(=^x)fYI^Z!k7zCLraRx*H>jx4MM@{0A5MrjaO=eFnHC*#Ic_o&JbqQvO!2AvUy=^ zOYM92#Wf6}6C-S2HU6>VzW6fjHKH>ky!PGH)$tAE(1j6pe=`2thKV#3%ZsM5s)$zF zB5T3*7u!9>0WY;!{idCAepTD~s$%VwMVI+g3yKRn7Wj(;9n2=WbcuFG$S{ z4R;0Ig{eXJFxOBId4T_~cTAv~b+vn#Clq!EBb2u)4(fK@#+DfvIgF?c7W7Z~9>3k= z!izGl4@TWp>hgH8oKMu|sfCTG@_Pp*^qk#_0wU@}DG|H83Uk%$R`l!l4(f0N-ZmxR zJd?1%Xjr^J>4o)`uS;4{#s>3j6YB{bM>A3ubaEHFePLJFZ@`lrLEMjqq zJLL6rbooLac3IFJ3i*T7;;$uks=c}eLA08a@+%xKRIJBtS{P+r9vbWp7JGbnQAD;_ zTUr6pzRE^Ku|vm%-Jz_0uFy3lMMa*`WcyzIlsZ;j(?Y6^E61X3Q6j5-2j1!x%*g8F z^@rSKE3u`GB5Jg&G1WQ$#Uk3#(V2{Cj*9D)SyV8dW5f6M=YZ(9@Y_(Lb0BT<4|*H}EK0`PDLpJkaTn70c=z<#57#N}_aqFkYN1Jeh`a%s5)EeU`b zEtDooiJ^8OdKtb(;4eZ8!@n+YE2IQGjvQ9-*^QL^IIvQ+lv!I?hvwHR9ok6=3V>%F z#&5zlnZ>QBY7_3okT6@|dP)iS{*Z@ttQPt>*HLk#BqhVOfJu1rjaD>AFy~1L3fH0c z#OF3+tLl2Cii)uj9AhI8V@EbQC^JYj0-@8rM#tEQ2XKsx+Lbs0ae{9L zeP}GJaZuuo(_2!mNRM^dTWcId6qho}F!?4A(fl*69A!}FA2p*A zCVq12UF{CJ!x#HP9+PaPNgfs}v$1|oY*ZPWG!O(D*mu%PB(mXzu@Y3*Rlkgc&nmZUI z8~Y*dzB>$4oxrsl`tY zO8EW`gW3s|zEZ;Mjgesv-C{!o@ZGc(YcVNS0Xv=8H z^;=}~!xDQ4Dj=uYkyCH}S$*zchwZ9<)-hR6l}4K#lmNqgBPtw{68AFvXOmuO z=njR0{xM{`%$61)N@<3T@<+iyXyv&}-M(;Mq1)>YyUDgc%9h40M6aKEJT%42#5>=X zrdo(TInwm#k<0ro$o6)WEv?8OEOv#}=A|@Oa9D_F&=4FwbrdNhdU>#!$#zkLl?smu zxbwnU^2LhnG3Z7#`@k{e3k~-N!-HMJ$d+$Q3%iCX@o=WAm}e}heCPo;y`#zUZ}w3 zbp^>bE3qyaYX(X?fiza?(3q1~9?n{K`@$izy%2qD+9z$oyaN1E$!G)@hN27UR!pgT z2#G@1ET+`f6#%ik1>l6jxB>yUuP`s{8kVO{?emnn$@WWq+o@w6C?O%4(s)qi6_y0N zydNf{j_R|Rw5^AJO~gE~Eu-ZX_yc2TXCjbKC=aY1bh`@OK^ix7OYwxyG{P1dN9E=T!Ahl$BaBHu|ju2(CrGj^NPIw zQF&f>soP7oFXQWx^I{+A*T<#^r}~S@HmqUV030!JJK64Oc-XkSf#EK)WjB~dp=X#U zOtx+fLvV#O!ubtDu$mE>LdOi!m)wrZV(S_*Et1xFbFGdeOOmXcQrhZ38y}0DaI8Q8 z!azO08txuVwq6Yr+Z9saeg6gCcBqFgIo?ReDN?rE{)KlesX_r)ftzgJh9UUeqjJ^l z#+G4Xv<*;)<;R`e%b>-?*`q$!v306z^rMPb-+3Nipd_3Z3I}nHy=`D!3TfP{a@A3( z`P`$_Gj5P<>!NIJ3+byU%*rTMpF^7)4i5H{?X5<(v@j7)`=RKgOl6^l`P7shmBvp` zHd!A%Dh4a!@rB&MuuNGr8pUe#wnV&UtjtSo@ceSq7JS|54-vINqL_}Vn(|PaUy_sQ zV?5>^O+;p>48=Fcyx}fip%*7?3cngDZOpfqEmQOD1-|r)gEEJf6cquZ7ZTqUzc?t% zN48#&gR(G*w)Ns!G{x<{%P{Fx#%X;r+Ke^my3to8L zGS;9}yIQcil9x@6rcLD0OMUcfa>-B7-0(b{Yr~hYxp>a({VTo@Cd$QA)|g*Kh+N@> z?XN7v2ft#KZRS{mw#6$-eT5?ET~9wYg)bdyX zOIHBtx^LBs0tJxo=us9?8dGkQSZ*UFs3IC*q5%*s+v-q10#8BsXd|klhP#7qx(!+B z{NEgujvr>9U_PfS$wzL64&-(xD?0gB79<{JcJtCWDmQWu|Be&g>AFb+c7 zR3P837%N2{R&N#_wn3G(!2R2%G@RLa|+79e%N|&Ia&|Tyz@$z#z;1)EZ zJJF1pq14x+&huH_a^{~}uNReG={|a$uUvoP_&$CTe#zEme^Yw&PX{G-8)s0hsP-~c zyLOyGKmF+-BX68R*KBu?F=CuS)3-Y)@#;~nD7UelQi;e#L>Zn@t>_K(oZdEu${X7$ z6K8=%5oPpj8$-?=@YjhlDI>=Z&&Y(~&*g^=1m&E>sZI-_;NQ6UZaak6I9Fu1KoDu2BNjus~=3r3I?7@q$Y_ zkBP!-*z-TyKHJ}vhW>>k_56iy)%X*K!z6B`eT?-vSNw(U>-ZbIKY2jM?G!XTYHa7G zd^B0&bO*OC-szx(72^!*d#aMNN=m4H0G|1CoI&iR$w zr{)KukkD@3qjh~CO8MPK5AxN_Jvb<^iJj6*se)V9>~T=~NP3hjE%rj_E6WTDh|tZj zHq82O5ZewpP4R{PDNqUe57;aEPs9cEe+Q%zpnsVlv}_qcYzaiz;%C6a7H8~ps3CdP zKHMaM=oN&R(<6wf8gc4A8OzHx;$9#gW9*m|n z@eUm|m~a$ooNYHoA^X09Isl+2)XgGE0d5jG`9F zlyk^IS!!AG&nP^UtM|IwdDq~$LkQPoyz8YMQSDkJ(^rQOq4$;LUbT%Q;TF;df3$BfJKXg zti?Zvu`y6-F)12a4E{%JLCusFyz>ZJj6&Cc)FKPNG2Y44q0F%AaxjX|2tF8v*JYpn zg9$5MnJE$NM;zoRq{FOeLN;nXI?ReD4?_*(27&nxZ)|LN?-4krnVr%-p-_oCL`S0D zIwgtTKLWjQ7=1wWx(nXf&@6?nA}1wmX_i9m(v(#Fq>Leo986zMPIWN-8@OnBN(y}g zyy-V}pmPL1TT0+Pjr#`*U3Qd#d3MoP4Nf3FyX$mcjbCR*RX$lRBcS^6GLQrJ8ciBITS#?3{BFm2(zF z!#RUcDCl-md^cw) z3x(cNDIsOcD81Yv`kW~4eE4QnOIF#@D&dPt!WUV>h0UC#WO|WhS_hfN2D8cbq7sSE zyRMKxIVXx#vWgLk2~xsKDp{#e6ZkC1ej-uj5lsu3-^VKK8%o$WSlI9>%A9YoIbTAJ z&G`n4{?jQ=>|e?z+Z#&sbWA}P^AD(Bd8(7r)hi!&A-x%c+xm*;PBn-8*QB$4116!5 z+vei%e@r@2{k`5V)I4r8f1!qdvF7*4FV@sK;~e<^YAC{Q+WfA5(*^+6x}93s<-pZt z`~x9>r8w2BZ&?i1_-<{1TTecKw0@8sO4{Hd`p z$bO&_*{cAfO+pXF;ug~C42VLlt)k3|g^(9!b zJ#agCdb~l+T07O#7oBP6^JKop9pKt=2K8(0R4ZijaWP_?K}P_4^{7^qe`dX>ue3H! z;-{~QGwVHlO=yDnTmTqBpaSj=bRO3;rq^JP{Mq=;;hJhCj&q3^u(DmhkhRy zxD#zTQ{Ra?EAzIL5;+ccBA!DhoP~J-e%z^ANaB{nKkjrkx=2YvsY;TOung{i1J9C~ z{c~dQRZ@aF?uIN?e5y!w4lW?opj44+fxuTv2|QD(V5*iXkg60lrJ9K@u~>yj1&i@i zW(hhIFgG01MJZhMq3|2nTue+MC(X`6 z-lZvQ*A$wi3580*Tq0#X3IU-I(iFO;i450k3O#x#8FHkoN1;+E+^s3xt|>gBDXbC9 zby8X=Jac*q)e42_pzz7*DO3dtzn`8$KWhqw=PMb!Qi8(!$_}8AYA8EAqAA1~PGSlf zhS*`NVAe`mk3z0ccv@5FuPOL7g^3p^8Ky~Dk3zXnz#AXdV!EdAhNfVb+|^u43kA#` ztA)Z!$bj+k4G=MM%Pvx^pOX@Z=6HFios5^oxWIV%ww;WZsRBPuO5mB}ZD%Fy2Y2gvn8{i4N)RH5DN{Lv%1?phI;sFN3T(qjU0&6bQ z9f0AtkSuf2%>X{?>?!09hp}~q7nuhYnRBMxzKW=timr{dWqOF##$vY9*r{hnYdL#k zQS(c_>hE-_WK}6jeF&(R#QdD1yaI@rt!aWit!KN0>*EhF2*kx_!&|H&oq9o zbZz{a`oXcRfH>o%n(S1X{-9^s)5M+SQo?+e1e+u9n-DwvBNESDqLh4H zN_6~)KODvZf#0Sr`4V{Z5=Hf;3UPy!z}X8hJW=oKAWzg9>KlQI$iv)+T&9Q&ml8yN z!XFO!8Pd8(W!&79Wa^aZly+?0q(yNE5Dz!H0+)vdx<}C)ad>i@hBkjm zI84vPVQ<0;)JKNtS*|5yVTKx}=eRZ=HTC{~fGaR~Ou$WZx#Mqi48ut|F0bx+fqO=E zJl3O1o!?KYaB{3oh{IfWcSl5Dx}DN}9-7FKcgV(S7Me!TBnBFami+br8bOm8s45!) ziRBkGd+2Qj+z-I&4t7c($*)^i#kK5Wr*}Jn;Mr*P(ED-7GrKx5x(euXR6r+3%Pb-P z9F=8N5GQ1QcqY}zxZElw!lGp~QAY0%&m?bWtUds2w{#zp5@2U&uo(d35U&u9Y3M?- zSjt_XP%T~Oq6@?`x*-2xZ7n-f$=MxUSpF&Q;w0ncrYZCtF0in6N>>>JEw5A&*G@`| zflKj2+?4p@c!SD?)CC~*$#{eMb(N`bPL^VFAez(+cw|>6@eKGqfM5n(krkN%^Tf9% zD>CuLKc1p_2Pz4sN(oc+20KjAHg|B zUZHXA(x^KlxV)m6E4&71F>dJw$KgKL{whWGPANeaU?(2-o{-ugjor+8oabMwsHyQ@ z6KBKnZw<%oqHg*ISHnY+>}4H!IBekn{->Lh>{Vzn_wfG`hnG|Rx^uvu;C>>B=bCV^ zq#$gHku%gP&h|JP-iU3F!%gLl?kfFkXW_P?#_4B!9F~5JbItU#T}hiB^7xAUv?FfL zX~|T6E^aJ7{IWl^-_1DRqp?nsDvL*wiaW1PlDaz{N$Mgrx`RR55jXd(Mzn&fUUxC4 zn?0OV`kn8j^g_SSEh%pT|02)!^N*Ek>aU9MySeSBL|)EeUF3LmYp%jF$G;o!(q#K7 z$X*KIICXn+HoVJg$Oq%Fggod1JlyAUGu^{`EpNX7iv?Yf-aK?K8z!o!lhQ-{x$pFN z`2YN#2#oG_!ae!1cx3ZgJ=y$4etImv#p%iP7C?ho)N~DAU&ZJZDRRXVmunzLmg^B{Va8j?mMWG&&61jo3Lwa7`3)+Eo zwjlEFD=?{iYs-m-Zpa9q24jq`i8qg!!dKd(mlo;y)|`4@pAm;718o|jN)H= zIVrOkHH@@IIZinPaykEgQYPx^JvJ@p$noYlPbkl@W67iCC@WBAQAuu+K|a`GpwE^c4@fc=DM#%;Yk z(R$IH_ZZ#+O2njA2z2WrMG~ZTYEr9?(g{*bm@Ev@qlQiF1HZUG#GM>dBWt^BZQ_KtTsm%~0 z7&h7F+-7CJ)xv%&vwz&eek-&8!eqZyu@@izW`o@mE^|`C{_zH_5WQjoiUC4qJ9Zyr z-fhs?mm#m;e78ZVz3kkz4_#yLHfSii8s@n?z5P*i(z;ZQQY=-RPQXSlG3kUTnDnvB zA|{;>1(Q~z1z*Q_3UChogeZ74zMpoms%u3jMM2Sv`Z>v--^)(v!`&`3Ua5l5{_1%- z-jJZvL(fNHE@NDY;J4SHt<)V1dHg=h=UL05+9xN|4Ocq(eO06*M9ZUYichAoz-D`8 z=O}wM#$r0`^{m+ykgfvV^&Ps{8C}E5B4H`v3_gt#&S=(OJEKx4+@LA+L)XbVgTJ=$ zg-ti)j8V*$JFw45yW>xG$GH9xcl^ojSlnM*Uhi;HX=FQF{?GnSN|<)HK{t<9gx5(4 zt@ymEwRanoJOBo7PzH#^k=s{jid%JuqOQcA939CAlcNzumko%BJvkatGn-Z8XLUCYjHtVw)lC`Xq)a~S zhiE;k(;qFEj{Cx1e7a`LYnkLVxmK&Gm%4M%77Dw9 z^2yJiY`5iTHEp?_+wQ$eNEW+-BWWkM-F1z$4d+iT=&xveKM{Yew94@?s&&})PD+YeDe0gRR ze8}%p?=N&x`fVltu)DB+*9So5fnU{Ixx6V>@8t*4|f4QTe@z9JV37~67=;9 z1DOK?a}!{|y~!|826}~b@%u8MUouS4?=)d*1ms!UGr(tQ43`z<}UEz<^HY z5l+f@eS$%UM>IU^@X#^GNS@ml4vsO0VZ{vVa9kc6$v(?tk$ukeMuy|^SY)4T(Ng3I z;w1m&yqr1BtB0Ga>*4lsEb`H-UMJa;FSYB|_qcV77uv!@IhQK)eFSacp@d@H6_Bnk zbXPBQaZY~pAtiU~>8eCd-T*M<K65)@B{+& zmizDof}56omf~41CDcm>7!0%*U?)^B6!3a5=W!S7X|kzF;4wvAY4mJdBy66IL)c{c zos<~@rq}HwdX|^PM){puk9lzjjj#O2c!C{cnW*zkT!L6u#_(yeDMC(#Rh0KEqP)kV z?1v~ap?)t85!^B0Bpt!;@rqbcK$~0DwV10}%zFY(vS(jrM(_vRx;&u6H2*Rc!C3ud zFZ^V7l}lG1EDr~rew%jCopY4j^n@zmppgKBgK`1JS*ltnl%fk6Xv%GprIs-ahEQ@p zCBP`afXg0qag+~!N>N`SCAi!LFhuz|!IRA*+5u`ILYqGMS;a&}!@cp5Xt*~X(NGYK z#P_}NaKYn2ZSZ^5>VeF>?u$oUd=ZrR&Jo2Pg2YfPKBUd}=+la4>t|F6#hw5d%y*Fq zmMh(>qy$)n1}g#B35S6SK>p-fPc&qFYrXU5D;bpj3oZIDWc?R}BKj|6{eMP_B+-Rz zfiuF|BC4(}@-|!KsxTH8`kzCILoI=7Fx0zdSB-SNr@MBWUCEcLxZwp1 zV4Yn8^CCNro~u;aDkbdpF(@Ezh60SEGgm15hAu?sV)AOJZ)+U5p1Mt#jZN#Zc*9VbQ&Ub)PaiqI(7FzHGGCy`qlpPqUVLAY=4V zK0f&O-G`%4=RSm;mZj_st4!}$WO|2XYB?q%(>pBFAhgKHe}|=-JVr~Y>e@r^vy|_S zaZ=+7QN91Gik)Q3cNyaJ+jSNQh_`yd4e(Y^v#Ub7uFzc}v#VOVZqQvXqKkdpexc%5 zAtik52H4uW4f>J6kSr=*Q((!9R0*)F0fuDJ@(zfH2{&D-f~f>uNEUfukLivqXueg6FWsQHR-4yYGlN>M%R%>^sp?90-pgI?Rq5dZ%`j zs%tm=!)|!&PFXIfmYC?bSh0jPCPEz;?Wa3o4QLt=O{bs>nx1}_9$I(4sW5j-2@2Bz z1`4?VJF!86>SQDH42zIyf~qP-U72EDVkC#mOGFNta+i}b|Fw3M7jzd9%}>lcBbk-~ z0w-rgsH^T56Fp}n)1JGuonA~-Dd%6*Xh9-YqRts>&In&kL_YeC8>~kPh3Mr(EKOZG z4oh8E;sZ(knD0YA6=?Q&Jo4uE=cnMW`RJf3G$pQ@U{Fne6>lHIbhe2G^}E|i8BHb{ zG!7SMOf=}ZyPah8oM_NWTwF5Ipd)uXiJ#Oe1}N;Uz{ZnWy9x57RxklR#NuO(z-$9d z=G_L}hc1;ma|bH?&(R0}zK=d$CTsn+^1u)&;oqeI1BnABSXjC%r3BcU8Z3Jvgn*jW z!e~9ZpysfNqUMtmozwwpDjh$V=p@#$$t2M+dytaR)UnGX(J?p)x33e1S)p4U1B)3^ zfxpn>8)k-A<@-uW+Z_B{SjR||bwrRoK1s(&M-?J`2r`|IHOwz2IVnBh57Bw3?M4m1 zG~EO1C#Owrz$1hDIqbUZI7lSYZ`vU__{a5bC+4#c!2mOq*!X(kV{Lcx<9USyP>q@xnxdCQfxy zhu0?p>V)8#I@NlBrAa~1qv|hIYw7(_HOq&$sQPF4!2iqIKp-0y-rG3hfTf8c(0=Yb}sP+VWx%LdKk#H zxp>W85O#;@V;c^tNxctqjjQbVs(BZ~U3VXX%$|F-ozlJjQ8bg6u&3SUr1asQVZ){V zD)8tUElOwlCJM5wWn|@nRUa#Z#C)Pk*!Bmk^uq&t?i0foO*0Lj2)~tGV`s>(G~_+g z1oCfOz(sBD$0!4Er2yZ8wJMO!xnF=6;sU_y0L&4wROHw%CFIG~i2DGKKp6gjQwIXG zs1X+Y3qfFU-vh$p5H7&ttOs$AfIK&^R;oTKC0LxRS@eET5EngImqqemr7|yHgT>bx z^0IO)Elo6NM7dTuM}YTh``iy0Nd6Bl0NnN=4O}L`O|=Yt9}*efzy*N60Wb^SS^{{8 zln_2aBOU}ixOk_V!XI^@czhoG0IePkwO=ZW*yiBu3&WOPOc%Y=Dw!Ufj++d%L;6@b z-AV0(d>os5fGg176ADwuk*$-7?3IK0lprM}I#r(Tc5Gm@U> zL>BuPT$zuyBCp>SE~Qs(`0A(qW0K2XwIP}JXRr!@d3@ngs=`${hqh5n^e$^Lm=Vvn|tTT=QqFL0-xVFo{*qR zzFEP#0E?jOhaLo7{>}A*?zty8=n{`iG^kS0%7E5xl0oz&(%}nvnbiDy6>t5eL<(2~ zu#fXH>7^%~l(9B1lRkUWNeSQQWl~E4)8H+M)Ekcjd6_isDJNw_Eov$3h!g86-m~D1r)fwLcSj=zoni6XFqLXrQWL4{!?RZcv`T^ZmoxP|1&05 zjbLrkSQkAjSjlqV1FNBued%1`Pd4JeCqB zpziU}EUvacGWY0X{g^|alc?9NPw8mv{YlAFD`k2q-N#X!_X56c`{qa0eRHJyL7tb~ zjqXI8x|EZrJT?oKLr_2ef&_KkJlWfJ$vg?_N`WdT&e)@PGTb5bm=htJ= zVZN}KiwlgKE%Sv1xfHC)BH={|g>qLt7874&7QEqT!Ou!j+N?^%0yOHd2#1<=sKVc) z`d0$v3vc1Mz9Vp#H zZ}KE>=}S&(TrKgkS<3VRdMgT3#hou9_aqO+E=WHg&0WRBQx;&KIhv8D-s3|&E?mHh z9&I5fG}03=Wv%{I%iNBL#>Yfv&EsP*ZO&idq{NPs3B!g;&iyd5E zm}Jn|FFPsY)ky}8e;MO~*irrW&TfVg5J8qWkIRGD3wjk#0TAcE2R^&!7m6V(MUb-~J`8!=LNR3JLWmDT)(T7- zU|`5E(REB=l_9mHH9M>lFR@6xgeBg)P)WRmCC+(GORVbZ8S`zH`N!9tgr_2Ui$P=F za2{O->(XG6J6te4uh<`StDOWPQ=Y27ta3eMdEfUCzwbNzhL+?Z^>)vmQ>Zuig#9D) zJcXlab}XLDx-NF|Ug6mccl}~)9|ov8RQE}4yM*3uf_Ti$(WP{Fl(@7b9CmVF(n@&m`IN6|bL7EUvlreF#LHTcj;88vDZ)^D6 zqr*_a?K6!~_P5m-uUd@pDjVaGH=UH_A4#@XS(`f7>2h$k+E?*wEcUH@21(zWY*39z z%5R5%m~7CgOPrLkWwJrt-$Hm{EGHK!6BI!k4B`3cN`Rud`;=U(q{NW-0Srp70oY0F zEVo0gaq2V#oH^rcocbsH&nqpAs9jCHujc7gikP--X#WrlV>#TPg6igo9zYjXr z3g#YBbd^=HgIcUe%URLg?`TEUHfbeQ#XkzmF4&N2HI#t2&tB@JjMpX`G;}G%JKC+p z8tOs6*DG)RO=&1f|C|XZ|7sLt%e_?LV4kGR^t#;R&CA0$@P`Y_RD)EEWUS zL$eqp=6xsGX*eG7{lz$opB_p0@bqLl|9xoR(4k&uYpYg1JJxE1f4>8|<$bMN-S<0d zSkxI1;6xFpZZ*Ok@5D6E?075h^%e)LX9v7x@?I}?Rc6}8yldZgs$rcwT%}2Vx5LBw z0~yx+KagR)O0?`5r#K>*%wg^SfUVdtHO!X=ru4N5ilz#qy%sI@vKDhc&=%ZVM~jJx zaP|)$h!z#1#a&nkhZa#QM2quQh!zXPUa7*djutnsI2kSEhdmI8_%#E6&{QKi$*Rr+ zmKQ7!@C%lQS2#(H@&^(z%0F45)q6nRmnbJa&+6Ge6!mIFy_s4)=ZB)+Egy<{;Y7uG ztCV%rEBo*y)Z;gv1%9vBT@c0|V%`R6YL;qOe3Zi~EgDv`hHrkTHLPR}w|}TLtgNHq zhpeIFqXyjf)DWmI7RG`Wro4$&sA`K))hyH%A8DbgS*RHwX`!m?2(^WU+W3)}J;$TQ z##(Lm=#^sj0V~Dq)5ILqSV>UF?17aqd*TIC3@R5={H7)}#h|xAs%(luF{=R7u<^q- zaPuxct#Tk)F;@PlwWwaps`p%_RjsX~>Je6T@+wiaM&#S6RefodsJdsBsJdT_>}{$z z)={G!$LeHBT#<&67Wo4Fzh#?o6EUSxwVh9C`-1FLtMd2Jmb7FmQ?#6o;;GF?=M>ATGI zlYLp4jZsao=4 zmBhv>xD4YZ<_j4w1HaIb&`NP%B_%v;j+fiMfMXkIQBLooo7O4NMp0Mp{nnz}x2)Sc zUtpob;~VC66Mf67?fgQkrs`U?pINnxwGB2lzwOWhX+cuYvym=zT4PwbAF*&h!rWgpxgSy7?a5xt%>M;DX8u2})oJ8ndftva z67!{Q=}mLFCF4t^%=@Ppl$)NkcbW%pmB!kwN zFjWH6Q^V}gFj?ym8z&lUY>ddnSsS4GY^x!@wnv8j*LDp1tJY!I^Met6ZT}@XnWnDO zj``ZI20nkDzQK;Sqs!MJk$UaazSuRwAEeFp`R_L(YG3T}MQUWvF2-V&`l@9wBW_-Y z9UDP+k!Q5DBz}dbP<-*wubq-{xRe+fLtzH&smc1vseh}Nfdc|GRZ0MdHE?kRn3t;Z zi4^<0=htP!;%IL41YN@yP*YNz(DF%^G zahVI4jZ+MA1Ll`02ED^D2!U*Yc^QXuFjl^_JfX2RYOFTvPu}5q>?G~&+AO7%$_C3D zN4&ngF}$9$9@!xB-4ZQtjA!goXl6pRym9&!cG|dJ$HMZ)Di%WYVPgbB$~Ss7P}KMw zYQV(HzJ*-^$CPk=DARi(;VS z;ejTRczB=*;^Djv^|XJW3F0AuW+6onG=ci-H)v%aXrdxQ&E94-K_Y1KgOk!_W07hZ z@`J=lj@aY$c$sBC^8?}}b*e#S(v^a)oT&zV`-77*`b{;cdcqkjbX0hRGY{THjdNzEGZ8#sz zk_zdyCKy%CH{rwrl?$cm%1zp=uZdX|ipa323C7&ro6HRSgjlf)?Va}-$n2~^Ca~|rdR4wbKN|^IXz{8vm0E|f`2ULh(g)XrBP?L)J z5q`t?Ue{fbxLK?RQbPd`Qt1F|m}g`*tDTT@fg-D%vCZO)ZS0I&e~jGLwl%?RZ6>#1 z;dEOQ%x~BHs4c!tEFPji+04;DVVOI?(*YkJO#47n>`EE988$>>D-*>>LlGplX`3an z#cTl#6t5JR>40Hnx5y;^R=_k&Yo0rcs#U$LD$i{i8N+j%VhqpO5>a_>Q>gsq7Ompk zrfRIJprRL=BAgoig0p8zif~I-EggT6xoX#*iq{e;;k9L2k-@)c=PtNNfprzp0Jc?w z-3PD+tEs<%)mrBFQKXfF4_dT6$lAXDi<2@V(;Yg<8XiEa^}cqnDe_qMuTC<@;K8OC zgJXWxwo#ar9-_&~FiYjHPD;FcszG#{3U6BiQO44#2L187lQKS@YEarAPBQ+UYS0aT z=5I|!i0YYzdoBAJqG*yf}TSk1t{2F)Uo1xtb+(+Am?DVdZn<|RiWZ(cGY@67|mcu^OE72qV3ul*VX*7`NHT5b0e+wM1R zCi;mj*ZD7PIfaB5?pu=aO2zY+#B@OP@@pHU>=YaH-zhejuv2VMC9tLq-UBQmY5z{x zAhFRs2Bn6SQHwz^`yPY3?}EM2l`CC7-E{+Zop+BxWzrQ+z`2@esjkz4_x`D2MR_#C zz<~j2xg7-Iz&m$|@QZed@W1a8;VT5z6u$j#abVtV79Ip^1gK0Cd;&liVC!}Z!K6Jx zFu6pDV-mc4j}R=|1A+~Uh&t;MIuvqmvW7%?v&i@=Z-();Y)>S!mp4OZ--8x&rJ}qU z#@ji2wf9w>(hG+Bi}B0nG`ksspkOZ!Fz^)w-TZb-HGYFeuiJ%<`SO#(_nZQ91NPxj zH|X+s@!RP`z4)PmP-TJJFUCodM zsJ+Kmh_gEOvaG}t!(6fXeE0_w!!Ac;Vi-JvD8t0CLSSA)nDCS%FhH4ex0Fbs3qS#P z;hBtxS!cB%E@niKdVQcmTq-3HmvJv{=1t!d1i&Ofk=;VVeyt)2QcZB8no@I=QZqG?C}YqhgXY@O zDdYM{|Btpm0gtN4{>R~SlZXj4AYnmZZDs z?m&WD95z9bsEiv3QE}g*j;NzxR9r_P?g-2n9XDL#GUGbV`+QDS-E@{thwuOQ@;s!v zs?L5+)va4qw+7&xkPwF+0pt8sRNwp$sF{U`iJX(Zqvk z_u<_QXZPV~I2Xnk*hkE9MY|9G<&Xs(aNOcGsnjN`+^AZ= zCYAmhYmnmx^rvxvfpfbg%!Po#q)}d+AtsIf%rLEhZWLZP7clK>Qt1xByu2orUIxtI z`lRsb#L|VrqNNv$R9JT9$ZpH790|*Q8E23>%pmxE58+=;*})vsI>`@Na;D(E|YE_FH zK1_B~sfQaRxrD)pKA|Hhi0_dpi02K39q_=fY!)#= zfW-p0E)g{Kr7|U=LqP!o-wi|tyL*|aKK>$+0xU^^eE_h*MSG9QY8B?RRuGlpJ~}Mi zM#V;If2yb^vtG@|@;h|(dR(iYUSmo`c%Z2v< zBd~I0$v%a(R$;wjVReMTh#1+lO4xF%OyQ{g>}~XXPs`GFnWFXsuEjI9_6mXfl}u6F z3GRr6ufTM0PR3?h>qHXe+@$q_xN!1@G2KqyFa}OeO;%18n~G?|7&!90Waa4%V}z%} zo)tGS$VrEODtepc*ga>OUfRlqx1{1h$StyU zg|L6}Fxeu%NR>Wv=gd{CPGy&uSm~d2WtW$vUA)-ZDFeHM)w{r9;0_m;=?yIuA4c9rU(PuZFz{uUgb58p|A{BQe~rMp4p?~Ndx3@S{Q(QBRl@85 z3?iTdFc>}^D@3^#4ka7b+~GL!t2hU;vbknz(ke2;G%GJMqA7QVgr zvl#~2I@aL%OSft`#5nsTSmzClY}VTNs-9c$S;hBjQmOGIgW_Y?rjq{_A$!thkz!Z- zar`VkZEY%5t`*1nW&y8xZ7Tg2Bq@H~+Em&p<9xoP0NpncQEJ=TRJ!_Pu*R()Es`}~ z4S|a%UOd^Lc-;EYE?Iso)41^aFXLw#;{MBY{J_N%r85nRzji?yy)5BhlPU0+I_|#= z&IDuJ`q92toU&})`f)v~NZg4)TZFptGKKIAh&vIU1gH8Dqb;a72?b6^Vw#-z+Qw0` z*e+9x$Q>g_)5nl|+lbLL;uJ(u+(41keXC}+6-@qHg@oEBEddw(cS$>LhAWP_G?fZY zF~k-B$yW*|Sy%jD432!of2FJvSNsoFh%AeFN4F6DwgoW*S`Y|Wkd?P7v0;t7V>FIz zx;y5KABNG3r=Ziml0)>K7&M3fqND>QCfyq|c2pA0JQe2ZmzzBeC!7}q0=|GFgAdUyMgFFRXb7%6R2cr-mB5bL%TsBy1$|E}8fPR)ihXX=kx^dj z3-DF+ib}_wiW<~^B34WH5atbQQM8IBV!7E*N$iLKk;#WnLwk zE8lyGJGag}&5$22$r|gLlYIfl4#pfJY}-^{gNW#cc8tdE!KP=oKIXkD+5 zmp;m2qZ3~S`SDhv!_+%O3Qhj55wU&d=R!#SRBN3O@(oSid2m~#u+Hcs-$vY|E0(cL^ypw&?me%~(P$aWp20;$|7d*HV5Zjh-YyA@E@_L}}=5 zi0=lYt3_vki*2|!u>%>si9-HS5 zrt9MnqW?vKmo~-WsktBzwS3P>k<(AN#JR^M(RLJeUpcUaA&W4YhNQAudzg!&W?Ou0gis4J;|Hx!oU!iv?=tGR41u z595Bo++PN82bZ#?J6Wr*QJQqUjg0zW4SmQWB^8OLL$(}M@f%mH5f$-)Q^(N#GBV@t z79oHL9gPUR>eMlKSKT(s0{KdUg6eD{N(*iqMdY|_+bD`DMqxtowo&B2Uc?}d22Cy4 zHi{+|8x#*Zx@6&&DNq`F(wQyjwC);Dt&)xdD=km$8c&Og4N7}q*Lb4T-MhxqbpVZj zzTqgc-z!9)E>ozG2CR1*j-qdX_0NW*@OZuLs$=LX3A9zF0L}*RV^tz0|I91gCYgY#UOb9x{>sJ310XCRw}FO zWC}38qK<2ymZd++6t!n6A~Q=Bk^F}QkBemrurn0cV*pF|+uBs>kfxi5s@K=1QpQ;Z zB@BOIJkbp{iX|f65~{y2o?bi)USJvG9u~xtWeVcu7<6%M#bcuODw(1d*YL5Le=1WF zCdr;;woCzb3dDdl-UAp7`R&qFtH;TCLXg!qIgY<9l}gK1XLFN$BKF%42N&{-_A(2- z$HwgEU-Kn7yimOlz?&J|}|GlI=&274TZZqIOhuQBn4jI)A zURRdIIP-5x09fpmLp59G4K~rnU*$^@j0%|OFPEm$%Tm^4i2?+Ce-!-_+%T~s-7X=; zQsQ(-9vX|)eyC=vRAN2LVqId1RVzW;WeTyLv#uggUk3L#ShT0{CsF1Sy#1l?TNrX= zl!pR10!Rta_LQ=ZmTnT=6!Vv3ljtqW8PeMc92z&+2zN!}KL^EsAS1xUW6+je{YnE!@v0w;1|~KTsi{}6kLizhzWiJU<5c?PrxDbz zgyrVq2Gi>@EvSBJ6*>KWkGIAGitCSIxyxDS3|KJn{lVnI=oUy)e;^gkni|tx9%`yH z>6o7*h@J0isH!v1YQV|b-Jt!-Ue23zdxQ3?!CbLdxtn0WI-KsSbB7DquNJ4*`IdIm zN$yWkZcMqw=PoQL&MV0;EIxx~{XByDjSdE#S8@9Ep0NFTRKaFVn_JKmykGNlgU{*( z9y_4Wv&sr`=g{H-CC)1g1B)!|+~P2>$U^3o^#F`4UUA97g0ixbGP-3z>52-9O3Ka+ z1C1?u#&h=?aU_m|L*$ta&9B z1^ImuBO52bWZtX+5c_S#Y}L82Q|{cpy!vg^jBR9}oJGWA7>EK+gF!ithP z1;vE@gpvEf@`|#8+@gi$6}e>Vhj|udGm@2iYxkP61idLE0mtPL~h=FLaC?CBDZyc*zLWZc#&I_!0Rbq zLc|`Wci8siGIWr5J-H1V7%P%Ww!xwG`v>%^`9RVWA*~x_LzIAcRZ0AtUz- z(th2bk$Z%&ClOj(H%jEbz(VOMc;rr?XB+Eg5xFB!7(F>e?f@!s3+G}?#QkSCgUD^a zxMX2*NqzynHgMF4(TxQ;K)9#}x&<3KR+MrUXyh2-5n<2ZEw9L}D4^d5lv|(`7M0E| z%qy(ujx-UR-4r70BPduQ+8Z&la=j4qN{TDwGfhezO<9X4eBUi<&oZYd(S#QrGs#EtwY?hjWy;<`CUekKcS z_FEJeM1D^9N29m(B0shxV=G(sv_#|wdvr>@?GpLXADvdurWtu?5JpKU)L(E!9x(Jn zpr=J5k0JU&?QMd{ql$iz3yMlB&h0~DOvHhSAkouOVu(4x3|KckEX0)!ybRIYZ<7}ARSnhEW;krWQQ&I` zfp{O_e)}{D+@B0;s&z;r#~(eDh>#XO?}>)Fv3Io zS$4vHJ#1p4gjjle5wE^YJ;g>^f3WTbUY_zw_@rp?LVzNtUm_$&L#Q#mIGm*$BQqL? zr`qXK^5;YY4teSoY-u!De<*-ckEP_5(ZH*mL33JWb)C-{qJ&ug>%x**EyE*N(yVqi z)P?v{Ot&Y1Bi5FfK}v{CjuV);@TOlM$Ysb1XH^}1mb6d6W666Ucx=5%h;5W|;ZlTt zq3e9!nhIwPBx#ngWs@UBLr`ut1Mn5mfH7Ci>rbak6SYW;h$eE@)%lj1Za9IDo<5zA zfd;c2X(Q~~=~s&&Z*>wX-zfPUk$+hKz}48AROIv*HH6GY_|EC&R^S;QL2qljtr?Kf z;g1#_yhbjT#-TuExB|46i1&CA#cQ?BU@eWQFC0$(1LIhX_8V-JL1*}qUG?tCE`0D; zXC~M9vNEzy$e4C=a(b}V88F?+0kg(gYRSkj?hvXi9EmE}fMxqon#@Dg@-y}1yo~^c@ zq_CNdDstd5iHpv`ma-ddWN)mZY@m_7sfwoXFG|>5MAUqv*h`Bo(2kg5qMhd$ljd0q`C?awUc`24YJBK&*0Bfi8N{39bs{>nPn8MKc2E~Jdf_hCt^`MqMAJkZe zPAS7QB1(e{0{!ldLiaYAD)cl6gT0B6Bmfsw@%Y3?tC^UX!>um zb<+X*t>;Vh)^K!Soq7SVi0%*TBLMA8!t~1Im7A66 zvDs#*MwEU?cQ0afA1;3bjVUM^PR&OV_ZeLWB^}TY2`83;4JwTgg|rnhT1t=zTRT%+ zM7Tm=f`?Y}O#{8Kf=xkJsII_^C#ajW3@t?*iG)a*5HLeD8Q1+x5a-_TZ;I`~w$SUr zxD8#a(xgLbB)WmSG%elqE+M*0gFyS>#GWMl;&Q$cKaN%nTIemw!Z3nNyCT!hWRCfh zLAIouv0apQ@~*bs3$dS+6`{9z57W3xYZL49jO0QA4xD_Gv+p|%k|+9zg3GH6vULig zolNxSD(pW^+Q@u9qnv-ed;8g-i8z}oTSrFkb)s;lYl&|C*+Z)K@53{37tSQQ$k{6V;Id!1-aaUtdx)= zd(ym9LB3)^wn)g)Jt4nRkRz&L_U=t-J%Z53p<@}KQdfpR6O{Yi5*{8(+0};F?}p60 z>InPY7Gz~!&>wk4HreQh{G$&KrA9>_nTL9kAJ&6np3_xp&h>cBQm31TC3q4xYeRbg z<(pLvHL6u4#D2O!jK#32yceWJj%g*t-guac`;;BG4ebpoOof40>0U8fu9$gPZ=m_p zr%^&|<%NRb_tkv>a?6UQO{Ij`9FG7=y08z(T%XTd!$8Tk0_clHeSpfR%*dQi39-$K z1jvy3!$_kC2GhaUI;YT>wWY(UZM*1j+czCl_YVBXL!Mgal#E5D%jH~jde*ee%;JKQ zVvAApGlHSU;e{UljIrH4e8eYGt@DJeY#QS{Yq&+B^I$~=g+m7Bkm2%qgAMiOJdZat zZ7ONcXQm3_tVKi+(`<{>`uro3( zyeaE!|C23Vl9BFEWtVAyqfkB4;32 z>#UpQ@j3%d7S){R!>O;-nEXn%S3->%LapSD*YZP=mHg#kbZd5V&h`6EuUj%!40B!y zXS_x*Uc-!YY79!RB3i?2ms(bIxU-f$#XA2AW!^ai%zGcbCaS|wph|>TP*2h zZs|qmSAc-d{D4KLd5e(eW<}?=fTTk~NvESXojF0N*F8atPI9ZDvr*Cc5kRm{SxD0H zxAv0fmXM_LTgal*F6rQ#PPX&u4N{)14U$gMt-a`c3lQj4w8WxQd8?3zzdeP&Zd@Yi z{AY=z)83m-?ouhwmZcV*E73Oa{)u`}`&qc404znu6|<(7mbsF3W9_8>l^|sO9vg zrl8{_bZ=@&vOHO)ptem>^Y^BvpvOt*-qdtiK2@fm_PC9+@HlkHvS>7ZnptywsqCD`&(}<{hHF z>3EE7n-NE|FU6yYDa3aO*+yr6k2*yc)Oc| zU1Cm^DJVD;g`X6K_TChZyv)*Ky2Q+vDJY~V3a4Bq?afM3rcO8=FOcQHkca zquC&%Hj}Cl`Ug0ZB{Iiej+$(dna7zaB6B5Yri#q7oH;>ce&WnDkxBnE2%IP~E@YOH z^UnE+bkm>%U$^G7QdgtZ&Um}Y6WK7#BVo#*NETk z_+2Z0AHC8bTk>5zo94!pN8?KLc2nOJc4?8R;UN!dH?B0us%%!3OS0%f2>8ZI^a)wC z2$>&|S&~h4$c$Zunrx~^=A>0{xvf-i4T0_js|>QWqac(`O99l(7+KVS%vf_g9_@*DK8Z^WcqahyS;=Hy>hy+)53eIz^4&HvYJ4F&7Tiaz#wWb%a&-Dx z%BxGNpoy7&adW|3Sz0Mm)E=oDk zaLfN*`(?!!QOyFJY{t2->#ZLj`sV4!XGRkVC_>veR^I&Wue&#_eq&Hf!ppYs{`}-0H~j10 z5B&F-!H77;Lfie!j%Q!E?ccjT8x*^#7T(<(-}vVZU%$F-#9-K+V4*#C?X`EdeY5Yo zp9aNlnuYiB*FScwdhEkprwxYPi5A+eckI3T{db;RbJ$?eG8d}WbN@FFeYpFPmv2lN z3|h8@_QprMe%-e2n^#f?gEq}VyZ5{6KYs3+Pn(Y$4BCkn+HLP|xccR%{=P49Flbo| zRbyX$?+=gOe#hF^KN^$=rdW7SKJw%f>o@*(!|1`Vn`)swe0}pD|9kC~n+6wOCt7%0 zw;cFs-|{#2z7$o=dNJi`x~&fCHEn2=UU=agECm#Jc+CNWiKrM2L9={zE_&{S*k8ie zHRz$i&HV#)%pVJeTMxC$yAN{q9~7cJMnz981XWMZ(toI@C>EEF*N8rhi$42bTkmwy z80~`L7Jl{zkEur7xDw z70ot_Hkg;N!X;36*&3x{2?h;=CEh(TqA1gcLP;^qEM*R*;Bbq@q4Z!lh=mtLl|Bxq zUdGhRK)rp9f#aijIR$$S3cX%4Ko@>`ZX*5EtE!|SWCqBKs!!J%WO!tkL_zp^?Uh*O z4+JO(*IsayL55EOECaxGR~cmMPytW@sA21js20PB#u_mzHJU$B>L7$i$Px1h&?KXl zj)Z2;b&wJJZi%mHxN)5!2hgJ+4%w3Kkpt*sklzPc5)e?=P?Fd8Kyj@{$X~YYC`ytl=rV;O7^d?;{8nJyuniLM zK-?~Y@?{F(@!SHabP!wNc(#Ye9N`>pS+4D#gXxw9fq{FOVsq(&8ec}R*6BAh(i%M8 z(DVx|cK*+m!>|S7ZcR(h@H+#}`b;|IyhI}OA9rh)U7*uX>kUfBRuHS8}uZ1ic7CC$ll=fEN(FAe%@_DwoW+OL(en7gVz}F{k{CI z`yv;;fuhLTvGOtwsq%nOguWK3m@=5A8MTxL`F?~@le|?8)l}X&b{HLhEe=Jd{BzE< zkqf_r4fS*$0&e5A2HA2T2U^X^h~2d7AX_QQyfhD+1d33?A=Y-Uh|04NV(8W$y3Qa6 zy0ty{fq4AQ0`8Q+^A+&;4HEc}zZfET?SDb=VgfGdK0*0x00)bS<^Tq>Z&&|C&exRQ zXCoZ%&$Dk2&WNKffM6PK%Jpc%EMc>xa}MZ0u)ka{c|8H3_*c(OrEy;gvrU&N0=Wk3 zGN&ewu_~v^$^;@BBceRwNJlv5Y%}1g_Ly!;i2YCas3i*8GBe=AV=W=JvP$f8__=*3 zX=F=|K5%fFK^pU&Ioyhbw)+mIMFBn1umQ9)=9o=*0`YmB^3+akhL*C3=nu4*0dd(V za+0esSkUM3!vNo&!xl%+(s-99u5c(9>rDQQ;>7MusY`~VFWcwM9=uvAkPBvOjYvxF%0 z=rBs*eU)ftDZzkCjGLm^4BLnW)qK-M*oa$2|DUNk-R`XH>B1IuKBCR{4W*P?kNnXn z(g`lQMnlcO67nXH94&==N2nGRJa1NBftM9C1Eh`WwiC>>?$Kd`qL6P|6wd62Ld1sx z0s#+itAUhST_y(TnnpvGSL#-2n^o)BR;kmz>s7x$1G^I`{>9HnQmusX%M|lbC!x1_ z@AHxL2RfO7#qpX;OBzBr+uLpN%lSt1NE%PR74qSHg$SkzH>f93A&i}WgA#~q<<5;l zblXw5+S53!9ASe##k8~s^FL|nE}}nyxzFPErznFynAzeWy=~EL`8Hg+N~T{4`qx4^ zZX-Og{R*<&P&j+|jfNO`Um@jdktqybg&vu=9p5cW_sA5r9;}$wP1C9KJ{yf7vB`MQ z7Lu`M$=%TvF29fE_d)&zHyR}5_rW>WBFpk~cAt{}WvPFMOd;W7h{N)KE=$KrE~sr( z@+aLtc=-|L8JU)}ncpd?@pwCGfEO${&ucE__^{CE`*8G=S?QCZw0@I{$djS;f}2!C za&43-G(|@sSSc3mJy?}7t1_^93#>Rk%E0PB$g+JoJMU&A3OBdtGz2%rrTK?&#m-}H z=Yd=E&B~iRGP)gE=Em8WjnTM;>n0z27PI!B6jLlDr7_bqJi^j9DyC^ru@qTm%GsAT z;#mDmnvBQS#7)R#Q6@5XaVDFxkcqtoHB%@XnU%;aqLa~Lcj0#^lV+kKZZppEFZL<~3v*7t!%&+lEoh77P#Xw~-N`Q$X>!Ef}ypQ>jzS{bF+jzP6x*bFmdn zmQ2P_s(JL0v{Rb;HJJ`4BJ4Dl@Ldu<6PtRkDpFVqx}z6XTI=W|(Q24i@&kf}o zvu7aOQi+@06IbEvkA%CTn5bFemZ8Icu9&EJ3r43|M^f7ZHdYWz6OL_JN77=LiWsX? zVwHpA--;FP28EmSU^i~sgIPzCpzwG%g`5Y4z7;(w>{S%}{ZsgFH-%P7VO~!P$*ofU zj{Yg+wPI*J@DnY(ovFxI5ufyXc;uhUk$)~Czq(aL{<(@{6|`WTS^T^6Nlx=~fl_r4I>ToM%O2vn=_OisAU5h1N+j?G^cL5`H0k(H;2; zdQ>m09+BTEaVvY`Dx9MS!cA%ulH*kQFun>WIT9`+KS$zTuA=wmtuk`_ZQaq!k-r_L z5|Q63vHlEcyCc6-;dX@KhDCnt9f&&SOAiZ~m-nPF=?=*~^WkppVH66xDO5@dD|%9> zQxsbIr?8$W3>^6;zog7Dn^f4VaBu#f2mrCeXoJRazd=LbKXQk9fNtQ)g?H}26cOFX zvjCUfX^`PvL^pBnwmY#D{jd$YTQ+M5AZr#W>>x*O9NEvl30|j8?UDjlZE)&zwpG<7t8jKd zS2dw(U}x|ED9bW^hvfp?`Z3T9GX_BRwD9*7N7yh~(do44VG?2-dvx5m3leG5-D(Il z4jn}lDSI=@3pDw~5G81_$k80UTB0$lBbn8aVD-%1s?$6Yoo2#428m9Sv(MZkKgBzq z1pa)PLf{FoKR%($y;puhm;6_oH8|!^=$^k9Q4)WPQ>SK$*(y^|u!F+ePMr$wGsy8z zr%tu_@wro{@%ICBz_&1df8(JTUYJ#TQJQwf2#JNp+57^OjZsv*EJx#? z5^3_|%2^J`T8%8r%Gqlk$4)6{Akaj|W2)ud#|IIjy@kjPS?rr_;bP>m7?cp*UaRVAd=x`@5TtzvH=H^j6(Kw98P3*vM0R$&LAK_<+Q{IUxe|d{ z0?5F#ctWAdOBJy9U!H}9y>u2^*zRix$)7~FuD{xFxh*a2t`k4SoA6v|)JB=Yw6lqb zKOlbnS@{96=Q$b59gl@|U-*Fd%je_=#H*i2WF{0MY`58%4&E*ti>q`>*lCbsS(Q!| z__4f7r!712*aGm@cwx>bWC{Ve2?6mrzyopk3kC_|nUXj+62Q!VK@z_MFif*ELD2kB zrl463r2zlEf5u$a1yFLl(|I zJa}2ATQbmL;j&C-Stdi4w?UolGTAdfk$ys!W#R0RyDcA0hAgLuJY?Z~uR)WYZ+_*g9>?MFKz5hMUuy=q@Dj?QoOXGE>l4AycXBal%?}!idt^m6vuH(+VvXNhpMLck?0P#Fsp-*p&bQ9?nHgu*PcwJ0&_ z4Hh@zW->_2eLtk-4V6g)!aB`hR`ztM-5}v-WQW6#i$*{DglXaMk+;}Fb|Ft0mI=ib zEJLG_&zg}P25yT6o_)f!F!00y!Tr9vCbr4On1~C%5IWf4_xl2&U~WMIJdBou1% z*lWGo#QF6-zh>RL3iK||rT9T85$ zHCP%`K||ptA01BP9c{2grh|w=R?jtY?8W+6jp&h>$N?K{3I?2BH;ozDG@M$#5C^#V z56bF_#38{ZuWPb1v-) zitNaK%&f4>z(;{Me*k>_=Z8lYrhn=n`CN)Xp(l3jo!mE-`4Vkjd&>M zz)kN`*Du$pOIGp7 z>+$6}{fMf*qoHthy01yjvNWQvh3vQ{`Soo_Q1X+4C1h}XyzL0u@D_gdc~&X9)t*2w zG%sjULhOy_i>*`3ei_!!qemfx%wWjltts)=HJ$GC)UlZpVt)#M_R@0$Y%w>zp@7fd zL}Q-61Y53z^rcT8Oc$$2^oblr8BvQr7WHKEnUwwDh?px%ounRxV7W$KNu@ zm?Tl@h>Z&q=^M70Z%B9Bt9OQKC!@7ZUXo2?R$n^YBI!RU(Lo~YfUv5jkm(D!%|OQ7 zg3^Z2Jdc-8lsVCA9Vtu1<P_T!IW&L#Q-hR(l#rJBLpqLrY5Wiz1P6R`XsVt`K*) z%7)p45LzR+PM>RfYeKbxC>rsfx<$Z?i=Y!QgCY6Tw@A_RsPh_KwN6*9b2?PaC=wfy zNn4?@e2MKtX@c7sa*{ZWyI%UMVU5 z!53qxRYE@@Q{Z6kKJ_0j#?tw3qe(?%%uPbEYx!10xW;U!G23Zid)eFKlf!B7&^E~6 zC2bm}|0o0dNVRF`ZYchdRXVkQBZ#~#Q%G|P`jmH8>D2j-L5_c{(#iEMCcpq6FPYk8 z3iw%gYXiIhUIpODI`lsNL#g5aPDmouIg`~n6YAXau0iSSU^){Tb-t^tdgh(@{L%0& zqB(dnJh%r7Yfsw9KwK38_KiK5F8XwpPRV~0uflVnoVHr0%J&UQOIWQFImY1cUV|Jd zt9AN%FHk10)~QsY@Q#4_t944~?2z=Mpd;*2&Gx8oHgtEo7l+9lW&-$d;0_E2Je^t zAY_^^Q>;O(g+bx{pFWV$a%?ApII_C31o~O#!^K;t4KrM zTdiBD?G_1fEbJ9AS5#W(!d}7W4-m!mYSlg3zty%Csmy;1jjf|*uZX$356yT8@v&t7 zxlA$C#(xSs_^tkdf>U>qsx-tyi z5@PKyU&sQyS(!*0oi@Px3HsHBkf)Bu6#aR)B}ej82lM2#X!LvvsQ$DyM(b5$PlKG6 z!Le~TKrC$Er>`QOQRHl@GSLh2VVTNerTY`~(aM2M%7Dn57?Ue+M?n@vt zXULV|@wx(Lz3C0{*g$Tho>1$d`FOldsPoae{KG}(A&pE86CXTfQ{m%bIB6$nDJ~)` zj!g)d^-dg!8lY*QGC{1!orvFkBcocL(Py+6fpSKcMYE*`?Xg-q4^U_<#)uDmXwbw-E*iVM zDv{zl2FW4QqS7;0IVrMlAmP$J5}A+Ta-O&JjI(2rD)oBPPM6m z|5q}F6sO@iv*l`?M*qtoz3pn9DB;Pgb!vY~Jg)dKzD$3Sgjn{)MGqj7_NkmhJo(jK|acR0?axer%9EWY+s>Hd;8W$%7za%~Du%(#HlR ze1El0El&$;V!WbHT#w^oGuG>LG3s$3TDz>r7eB1)R_W&ZW!kMP!*@yeb4i|)t>D`F z!eb>cdAs0$KE{LiHi+V{oDoNRBy^`t!38c!!`K45O@Uh~aW8a2ik? zKzZ(C?vCTJ!11G`sY?SRP%zjE4<@^;yGo{jsQ?=U(KKS_)laQb;=qD zz+sfULr4@BMx{FhwiQOlOJk1#s!6NA##dnQ#P zlB!VTbh|w`nAurZ$R9b1s+&GB$j(9M{wtmqQTi`?nibZ(F9?CHBuTP|OSFgsdl4k+ z0DEjNphbw=Lq9dBuQZDwXz8ao%GZQEW#-}rPXOUCZe;ZlVIHV3y`1G zTi_YfT#1y_4E_<9zCeVH5?FXTrhze`EtBtiHK+p{S?bp1FQB}+49irRT-(JQYX zM^ArYkYnBT<7nKM206A|KaMW@5*~>jC*2C=n;|n$@9}zqA&<+_iqgZiTfo{afOcPf zDYRRFSepHn(ry7%653Va=R;pf?PeY?2<6KZ@?+C4B|y8%XT&@kKB8fb4*6PYzH~o|7(vTPrb7dU6UCMS*)6yF6!6M(&ppG5hP<*- zx8&)Ra^bv9Tt<_4$xkDQ9PyiUs{6(uN75#p-ugy$3W=hvOUdH)_N%y@p-X1!&Pg# z8|qBbiY?hAqX!#s5mJw9g5(+Ja9GLoLe9BW;|8g!!lUTm#)aAo~LO?2*HQ_DnILP%}007(3L;$`vxj zvu6Q6dm=s5dJxaZw8$o9De`#p8)!O2NoP-kW{wQE8SpGI%Nwc|nN2~94rMEPnEoEm z?>yt7c0(7=$q80bGNSqZE`t)*-J(-cyLdND#tY2zx9IdymqDqo-=fnY-x);l@7|)* zbSY!0OhNfr^tGcl>vS@Mfz(!6y;G(D!)vMIsatfq^gDx?{;l`{`a6Lb-CjyvcvC5t zJT+WNJ1c32lD~duPt@4B@PqP zMMhktNhu5--49-K=^1%NmXw*(l(dNbW3}`eqGP9+iF5$6%1I)z<@byq4NCX=ye@Hx z3>}MJ`9c(ioHaaV6-DcQRQ_T@aw+9l9+GgYn=36;D^qYrfQj0-Woeg8Q9EIa)@HAHNG$_~x$@w{Z8lvnoWLY~B1)2ZG0%x5Q>%)y9S=fX^u}sKV zFZ^5S%2{z(L9?{!6*7eeIR~Xd&~(=2VgbC+>-M;uAz#4Kqhm(6KKZOqKJ+>4KL!bX z@}bWHWTie_;QOhkK3w<~3WYwLKj~+s4`(s?5TX*$yY*)rq}3pEdA}Hx;MlB_zg@gX zmY^TGV6#p){bG=#db3Us{A!THyIH57@S|z7PG$c!D0RhVo$mfGRzGpM8$Bz~F`edE zFiocq{wu%nIN=ZZjYrP2Ho~`ud?wXR({$SOhy2Fl`#&%|qNuY=R z2cW3kxm|=#iQn{ECeA!1+|(DasV{)3$B>&{O=2$!0MkZ;Dgx^`DU2x}F)rRNeBr_m_=1Mng)fe<0Uf^Rkmx?3!xz;yJ2~*_m^s`o%$)Rm zFJCwk?c%#Z`v`0=U|*CzFT~(aP~fnyMo6G9lK>Re7ap$%$0jTDw^(k#OYOt~W{uRN z6$H@9Da_|IIJZbm^^|HCN%LZOHu&YwBbPIfs) zrP<2s@p7FJ7jdPw#B7$P%7-gdD|G( zwkpv^$Ot)W$b`|a9usCU4;#g9Hj0C(Dx5X)Yc$J<0)oxmT9-y65iOXQ>BEz3@tByi%v(6wUZ-hi%tb&?UXuhi%xIhM>49$ z*(t%XMW>dXVu1i>^Eno7(a9WVCr8Z|ovs*%W){7jAx?R+-Q%+S;V%%9in+Vt(l5hd zx%=f^eEkF=A0HYExNs0fx>IBT@1QNb)~ z*bkI1L`;?`Cj4-~kMP4F^hO{my_LRgX9%J~?<1w&{7LnSBZb~aLhpp5y7lJT92B_1 z`g$&X0j0ea=bA^3R*`vRcVs5RzJDCeCOJwdu1q4c;UStTAe3nY1e>Nqdap~SFb$4^ zl&0ZeYu{<(a{d$t!FI|qGT5q*k->HcejwPsIYtIsSMOjual8z+^TrP@*xWo&mWw>f z`pW9fv%{^QrKQg%%EC8pmyAbi7vpVN)QTecw9SIuo*!=~Tk;Dwve%hn!!6B3xxCgR zPSQ@2DQt2I8X6V=Cmd@R*LqaGV53AL9*6P*VE(a#)2qf+FO}jix|L>1qslYGH7nrN zpn@q25~=1`JEh~fP6ZHlGqORP5XaeN$>Dkzz!cLb*vVdxj{S7@Kfl?uyda!e2!(7I zk4>;kZ>tW;zeT5Z33evHZrP&KT@&o$5S=brb3V+~Jo-q=FBAfo$`nSy@Jk-%k^G`y z2zWmH<^xc=GV4exeNk8tZ=enweiM_z7UaOZTTb+#{41;HxH-HjkPI{@A%#RD1qxYRPuKL`DP_1&ea&y}pVLj1} zIAu5DgopR0*a>m%gfkyVwG&>O_(3g-I#3kekucVgx;=bNQ}m!*)2Q3SBHjfSWG|;` z5gbo#(JAL8;VZ215HEoHWr-VcfcU>%m+{{!ErCZr$N!5uyvJA_63bLr2NV{)EbM1t z*(L%jy7|tSom)QJvR2MqWi^}HNMMBswagW;j((R2}G1tg|r* zt>_p4KQz%U-oW-tH+(EpkVQW@2+4T%%#tXxI9#$x(w~#S>{CcKn?&ZANnv76f|xmz z>}2-`eC`HUr~(HXlcS?Lk!LS5F#|{TCOVma*fL+{Z=QMc?8-@YB3mn$@M=1DWly1$ zw@Y-qY-4Ts(5vpt#haxCSI87CU=+qC;g^fkD*`tgZ5>-x6!aCnu!s_V+M-jYgvVv% z4x?44Pgx99`FmGQHt-sOsy10Q9nk`;My|?i)u~HXF~Q1Kot`!90`jeFK^Y! zUnDGku}tAQkP@Mo{Hjm^uhVJx9$S0_exY54ap|kw0h#vTj5wU4H6xDJ*%6j}N7Lt$ z?vFABea!rDb7)g^TEggXb9jp>L=S8ZpQ463D{_)bggzR_wpUB<5fkM7s3wvAW49A7 zS@&X|_6UcajAi6QY|M1n$=3cVhsR<}x42Qzg@UENfLq*|vl?ZYf47lwAvFPLI|}?L zs1GisW!Tf!>3{(S6aQjU5zluAE#Wgu!PeV?;f85NfF3GTyQQc5iCoQ>=msb9f zVW;7Z(wH4GwfmickjE(?X^X}k_#kA*TW?ieOL6JXQT&_tMO`I%J}pyl#7v#q7xiqbPVKU8 zZkdn^Fg)`7p;f1?lkF7$dl-~WLgC;8^w$pitvbCl8NQ6ieEr?Bey2=9%|KX3URzf$ zm3UX6$sge(d02qPoV zMN!Ny^~pC~7IJ%SIFZ*5(TMhq?z8+ZhN(0r{ux`)qrQF4E`%SS{M$npjOV@k7zANS+*XzHF z=|NVSD$nN)hMe9|g{QuIeSL%$%~svZ-XFw7T=(vbVdtp861rneDQ{Mu6$#Bht1l%m zMRp9o^B(hhZ6bX!8KdMSBrdu*JyQ+jkC|ADk@2O0%nW}hK&ywX-8z(r^Dd{KRu5w} zIgcwnWj^7*PwPali>Wp|cN~e^b-FhbPm5jxVg)+<2y!K1^RMBOX0xQ(kaS3vlr$Uq zR%Izkvmfvz64^3e$M;_}4L*M*3nO+vN?cVgn)$sak&J9Ri9=AP{vtSpWD1M$@E3=m zJd|xGc?e2xiS22wDp!FxD!J#mbV}xy95W81pVlVQ@F_~#BDPyJ(mZd$&&Hrd zH0QrUY%x7s!o*8JJaY;bG0TkgP6A9?2{+h$?z;8UeH*2qFo&7)gdLN-vm+E z;A|qXw&0i{*A_Zox6xtpoNmXh({%FAfG6X}ZrAAviP4`;7tX1U^f}oc{@_gsPW|Bd#vj5CsQLmQipykLe0#D#Ko`i8x5w z#c{Bb55&5ECIX=pMF@l|wLKRm($G^72}4{u{U}X3^$)=hI`FYlIJf57Q|u(qt?4Z{ zM}j4`BkYtGC3$HN4K``)txa0eg^AR4iV}Gf4?v?*4-W=Kw=3odu`i3;^JYPRGt(b= zstSkAY@!>H=XenLuTQg+fur{xX7*ci>|}_8`X1qevvTcZ@JW4-a(?1088a@89Na*aa5f0|Y zTbummCFu=8#`;*{?pR^7`(@e{|bA%sz*Upkoc0V$BXP_%Xx!e&*z~wrWjK8>Ubo}`6Xea55=&3XgK3a zW?Tuz(~DKZ;`OZSk>z&9+4535*_y%FD~`CVJPX|nR&igGs{AffD8$o!u4y_gKT9^8 zt~Yu$oR>jBG@PFkgiNEPY@onP%IIu|m&wld0Dhn;{j0nmor}dT6Qy3|FhNqBUoc)v z7Xt^P@n|r)6{?Ahud5TE(q@r19xpQDweKq_NxUQzL&Vd}eY`6-w}|53>W30)ybuPB9ay6~FNb{9J%M zKhG|dXp_RfCQ~SJI^JF5Z`iI=k`(oLnWAMOl>wSxLY`t}@zCEnbBmwJsGE`))8Z?pEOoi0l&WQy81tlBPFYLkkf zb}wrCwzL{oz0zOq15(;IA1)Y+5bV-;6F`@?qAro{p0C{mB9Crgu3{~Z!R+xV3+!Y}nk{o7s*;;OHo0V7R1u8U!hT^9q7<<%&UUB@pZe??w;Oq7iB zU;&NeJjC0#MDgEI+}mZM%D+gtOyuQ$oaiVU}|^hl+a`+hku7o*-dszz($AWcWnF#JQfsr?Rhaku+ib>Cb{( zQIn4h7kO6n*NN#eUO#P?cqrjD-{&udM|k|5EHP%w6qpsD zk72~8m&#$p3zxxSkfBY|Iu9_AVO6sLqCj20l;H|VVS`LT2^@tCoe~cvEW?gwONOly z<29KAa{=f>h7X&i4DFW#p;ym@slJ9#t>uHvql6*E^W)wrMmc@XzdDx76|bcCM4(keEd-i#1uTjf z%#l?!s%izQ*f~$j$m*0S4C4V940G2CX_(_z+9?fVJhZV;lixfk!(1#*@%O2@pRoSh zvQdX+D?|zwP>A?RyM3jd(ih9jk1Oqz(S68>`kGW2DZ`%TG{YwEdL6>9I8+|3yrN4sCa7O9b)S$JMlZj?p25l^~s-< zEyz=dvl^a)bufA_6HOKXWioD_=$<(+aP5bwy)bBz>H=X{L9n>Vggz8=?XnFTS z))o&ojo#^VIW>(L*EZZTt^d7)nT;1S&T6JJW41F`%YRO9zzvBb`3~tT>$^`6;mQm) zq893|m5q_txGYIJm8WD_(U5oE)UDDktJd+&n>zivN{p5aOnnWSCY~2>xWjNc1_Eu~?TutW_3?%l;_Ggk;NmHZrQ|a_ze0T%1x|OEhvn#`P9|X_c2QPm!gR9^}V@{CtbN@SAGE z8AbV1IsP=+#4?KVPvC+WRZu=VH;YSR!%DKV1)6H(fXY5$8p9nD28Ub!;h-U5WhZ21 zbJ?M)tSJ8ki%GmHEGsN6D9X>8mdUUQsZdxV0YH8*!oL3VJVsz~ZtQDs#e*1JLpba?LyCDTY%QSWR-46*@6 z$=)l&?Wr-vC(-!Ox%EF6a&(|$SF4m6_}-0cTlR|eM_0~aq|vvY?sco0?k|D;W?h{b z@|c0iHNJFwxH}m~B3|&wa7vynK5eBv2h-z$M2~NO`(u#d37+k&^SJYIu7&pJI4z~g zbOz)iQN7O_s+GUp&L;6II!U*)DOl(w?WQ;_rCuO~QH_r83C=ZfE^2EJX$FIr@2T;G zNZT5xr36TRRT;&?8J=Ldr^ZX#Pcgj4hmY5yv$Chb%U9P>?-iK|F8W>@oTgP~wJ%`K^?0$w`M9Q~xP7h$J_SoKP*=6!iIIYfV}rQ? z9Cj}JJ|P_a2@U(tCh%dGPxE}j1Rw2S>7rYlkKL4FyxCWbT2D=Fou{T&t(Qg-D~#G( zVN$)Pq{?2Q=%@oDXu=|LJbC!A=#KB( zP8@tNP>8g7T8f|O_R>*Hi_Qo9E^JS>=Nf9M2K^-XHT-QS@Hh=k_Aq3 z36Yjz5kF`P{ z5DpH&Q6*Q+w9y2_+MC>$Pw*|GH|0sq(S`)|&P8UC(=Ueed=5sn(`AzOdz=>4)ZyV@ z7%~I+M%KYCinQZ39P{||fkA{>xZbr+ue(l!R4J~K(^ee9{W7|m6x^IcH+PP(bdD-v zIO$->8LUO$LE0tw413RpKF4f2+gaCOl9uv+3i5Dzjh;|9xwL-C#YT%OY>c%A^PPoaP;X5d zL`C;wn22z!F#{HQ=b4HO-l1(g6KliJ?;`6>(-wMcD9Kd=8|GGMki0CvSX?TL!nw&E zRN(f$#qAg#`-qd6k6~^G?_y3t`T1+G?II8$J8B+TYo~-4-qR_0kC-dOIS2{k_UKe9 z3u0r4;^*(tsbh{{Ja?{0q3n_PGiYVa$b)4yJYZAO%b%461HiePX~#oHGLz7i*=EL^N& z7ONOy<*ZX;6@QE-A?#c%#NwuME}F{1tEHVQQ1c;j?hsXABzNL^JK5SGbkKD9yzU^a z;tuls^>#AqJ>G_p8Kg_0!DT3Mdjh5lFBepcvfEHr>uU%EX$kUQBM*lz0i)?HgV)&# zE>>JAoHH+6@m8_vsg;N2nb#=QTQw*G-7_gHlZ6b7gqmz*AQKru(@zib>&_$BNVD9{ zRqr6nuOp8#-nMJ)1Uucz^qtpXmqxTU&5e?E5qe1ZTh9;I;~AmHGt6bxbxMzCG#;Ug zV>P-nS)>U_)MO(g^njWF&cB;C*vaq){l2C2toDzuM$k3aV7p)n?><2I1E$NvgT(K+@UR=8FkYI2^gWlHaRYXa0M|o5a><2&anX-#z;!pk!3iyU zbZU8DwAp_Xkz@NFo!Yo=a0WZQ&gTqSM(U~zH`Ye6oV1ab6W+Q(8Ea#V_L9|&ZIp|j z)${@vFS-$m_(HjL0n_PjDmP6pJrIMTzvfmi=Jl75#?wp}3PM}KsTMijp%tTJ9!;#(mc zYD2<&$$N$QreJXc<~t8$*|MdwYMQFL#HwnRRk^CF6;*>YdZ9No+ibL~om3^H7G2-# z!s@THL7v~Jtp0jT*u&#>HV+vddW(xM*#xslQ;OxiRumyncQNenTL#^R3caBcSICko z(-kh=J|W#cmhPTglyv)83^bE0()KY&NcSNZyEcbOx1TXrp$O9LXV@P$AB=RfJYGwx zQg^s?2ZVG7n8*4pO1c9qhLr9AbA)u?a&cj6m~>w-W*v$k-4_h|e(S+VhrRMjstz+; zy5EF!zcG)7Ta|Rbu^3Xi-z6tmYQ9);p$!&%TLSeV(}!{c)L_YT`*^qDK1M5j*iN<}hywa)pXK!Jx-m!;_inrCq7hWvPX&mXoyfAkn1Xz8XQtKBAPG#EV-0S9TD=TVwG_ zUaZUre#bGt^Spe?L<1c6T(o4y%A ze>{S9?ez^uQTu+e+jI&ZiGOQ2ic%l7Q-axW6eaz`Mkf=|VvJXbfph*LfN>@m!?gB* ziT@2v#V;hkSf-F4#3|v(hNGxMQV@sAMr}~N=B(K@mTmk!Y&26#H;HBzeLI2{JgR&$ zlWjypAeaJgw$L0Wysy)x7I3Zrjw;mBfYTo~m2MGiX%?Dm?6dQ<^zLcr^Uiv3DBb!f z*3wO)^DssJg~j(g$V`Tu{#^iHP53K(72wHZ`V&g>Wl5fx66dmuQC9D4#1u2R0QFat zn1Mi%84NmWOu7Iny@x{CpcY~}yW}xD89bdV@-HHfJ2#w&qm*qjj{KnjjqUz=1YtE6 zOvJuwWK()(In2nG^iK}D8dRRK%}%xs6kwiRjK_CxL%X!Ke!yTi@`&wwz*TnINWk69 zg*A@@FyYkqbxQhBL>`|u-~7H#Yf+c5=6#)VWEI~U{`C7gJ^Q$w96R6Fsp$zjId;9T z(~D2oDRtlbI*oi1;~=c&RtAK#>ST&A<*mI~&7B4?j(EQ$?orL-+$Ux8X#22F^XQbo z7h=GKCY1b9ADGgQgd+6{rmZK;QC~QyQ^N2@;hZlVH0E!TY4X1WL0kwR+hpm#1i>Xr z!aEdjiv$j9!0i%vDX<}7(#L|JgaP-Qj|IVHAPDYNPf7005?FEvaGM0aL;-)NfV=tv zCx0R+H!I-grxoQ-gcy=CI;J)W%$FLWV;Zqt0(VJZDKmhRKNXbMD7`8_6$HazS|rR> z;0}VXDS{n+f$1|raJ>RvvqN&v`K%9RzXZNkaqs90L!S$R*C~RhKcfhK-j|>R-l%|g zDB!lfz?~9!lj5Fypbx>)1A_Y&1=H3O2CnRsFs)z;zhBfYB~1Q85R~3QKVJHUAb1Zy z9HMra)xJQzGlYJsxS_tv3|M_-&gG&RiazrJO-tu~f*#-wVCb`UN?+=6V?|e#0{4fmtl2v&uOW{bSbIV?x{_%>P9QW_l>4sPBZ1?(gVE_v*9+ zKfd0p(?ze_DfO4VI(c@%q(fr&>6U$RRw+9=6DZE#n1ok9?WYHi-8%K3_18yY;)EqV}Sh(W>CPETuLM2X*OgX)QHs*wYS9- zpZ2xkA{Vj9MbCaag8Xj?ixt6QcUfY{dnD>`_%}}y9`dFb@et1oUXNVB3{o-FKKiXe zn-gATlge3nC0EXs;qq0oe3h7y%YDmE={yNZm6(Nm`7LFsN}jBY-c7J=EWXl}ieKqf z;e1WzYl82W79SHH6k{rkxW@GyagD<$O2qudQiqRair}c`m>=@eKHXx~X|Z%1vR|hq zZ!3i^gbSqWFFZKcEA@K2U-9Z%7p|s{)%5-P?FicQww>fz9zL)i@s5(l#}bGL@T02! z9T@?9QQ+T^Lj?F?t+U=8Oayc$zR#HS2+m>L0_<6r+-0?=poTZkkdV8o!b(it0i2JQ(2HxA;{YIEJ03% zAaB1X1u2z+;2S3v%t{ClO;G45^UZBfB9TQd}-C^dz8D* z6z)P7SAzG@_V=-l@Rf}WH_FPt|7Zja-;2S%RaSwr?7a{)x}=NDCN!jw$LF=AYu*qp zS9oV;m9o)ruo>#zMzg`|OmyglH_Ty1QqeGR;`wv`KCnhlSTKp?&p!ot~C5 z$4inRh~C6;-+rAE_rqg@2rX+vNvO$h7I}j8&XB8C#F>({Q!>z4<~EF#h}tv=)36^K z`*BwYwei^PMlNs$YA`-()25zcqxSuF%D6O;Nm`rs|6}b-;G(R$|IY(1j17uwT4o45 z!Hj|fuB8<&xs(gJrL7Dw!YIs)GXp|dp_y5kqFGs4QJMLBwW6}Uj8e-o6}3gn6fMg( z!}i7M|M{MK?!%zIDZYO{AGvexJ=;C!-1FS$KKHo~cjc7TlC-S#skkT7mTQz=Ygn&? ztOo0~hV?q_Qz$BWtzo@peyT03P$)L#ZpDy zS8-Qn+@sXp!|MJ8?MjID7;yctJzB9n{LqDx&+*WY#-blv(cC?F`D%oybk(ANgOI8wbAv&6Ssw-O}j zbhuW^rbKk;G$O~}t=m&VZ3-o}YSW&E;YY_d?P+Rl3dJnG!b$4|f1{M3dl=lGzQRd& z)IxCW@V1nB$j(iVpsDGIwp4{CoDJTpJslC+CQFrh5XQAY%xl%2c0f{51QrPvB%Oix za4BYftM(Kp)k#u<$>(75SgZDwu`h)ZpKsNk7VX2r0fhDwyi6&9{}nWXEZsOj8jq4S zT&hP(sc9(&M$VSnIZ~qa8)yQ9zr8PoY%q90ECM65Ne}H4lWO_`p@(pol-QD$LI+Di z-8H+DC`RJSE+r)5*%)!_aH$7}wmV{H4PAPZiF8aya+hpF*iY zzdua$Cr7GpzmDiXIaJABbI7ia+4_qsUf7RV`F(d1#eJ`W^ayO0@o5speuk$0pC(b3 zH2sC9z^6$xLvX*H^zC;^1=-s5v^#fALTgOd4M|Fk#?&k0IDPod;es$kUC2XOHW z25AvvK5`(1V*YPW5>2{a2@gw&{_&fTU++nxc3-AY%rASAC{J277Osk?!(JEdO`=P_ zOd-dpy-DN)`sBSyR3PYuQsQA_EYKg>n?#R&iPTB9ReO^tyH5Ew8Bb&m?@gkOVDZ=9 zB&rtD8Yv+WY#f)?Cec5TIJq{75)P&iOI$B#8>Iv)zL3QdCm&>qr{J-OU1Qoy^q?}B zit?9~w_ajz%{-Vw>Ris3qA)Fa2yh9}OYDI?2eq>lEK~NE*dJ>0F-am}iIi~0c?PM; zM@8LH)0b+gIO)kp#8yugkoDag>@O@-n=3}TadM4xvT{XaXRB3btGTm@U+K`mZ2#9lsLuv!FY=6fk!YCwMq2zw<(mkt~QCff0sgu zTWXVN{&%?K#I&-ihP(v9WP z7@-)r#s8=j!@IU*yM28Z%95H(m_O_Du;M>lO7I_rR@-;$yHJJTs~X@}OU5&XqrMW!%p)I-camuCwce@L9%rxeh^l^4%m4oZngP~#;A7{FMV9u1KgfOIAQGkUMFK`@L?G{ z*Byo$2q8_dGJ^0aRs+#qA!<~ihVgf|Jk*D(Ykq1)tA9+PRBQuQRhxfm zMW6ksgFsP95WLK;qU2x+y~5ni{7D}9@h#H=Kgy4i^AE*G|cR z!!*AM)cOMeB6?91+)tkSJA}mjhOrO~(!*T25S5%qSIXe4k`l4-x(-;~xLO+P1C}Et z@S6(ojfj+(4*Qa*$!gWb7%9PR6IyM!4XG6TZ3d}3jxA7wS=CC@b|7;qs}dH~Qi9bE zj0U8#CVwFIF~~ZLag(G3+80`X-54*8N9iB;yVCzVux-_1-! zHPVUR=+-H8LakwHovWWyrdA2#b*203tovf&z>;5{!qWkMg zcRT$dV_*YUtUsb-=r=JItxMgf)U^EK{40kFY&dLR>CwtEB`lD+5(CuM>I`!*?9M`ijkZ z>g^dVGXBL#FP1lzuW*+)#mH*hpbiJi@Tk#R-t`16?zJyRN}1P`^U}Pg$V&&wL9+Ti zuPHo!w&CCf-+8RUM8ko2agi~vDXxJ4(gENiNA{W{GPoDgbWhkU$cy zlA48FbIn~Hsa9$#;F>vib)-pAApdh;62<+k$QJ|o#0Ea*u2Q||qPv~FHnRKotM1>= z-A|52Z~3(tx}W=hHP--w3+{^6{lA}kNXhW_$CgrXa8;I&%k-< zk)|tuZbff2amb3I>lLL#KPeGMcu9p<6pNcW)Lo0l>Lpn9Y0uW@u8veAW_cK9VH?sv z%21DJ8~)N11L1@r8DX(v{h*pJYL>Aw*DHlpetBCN?QJ&N?q&{3<@e8s-e#k|HiI!nsnoZQ`2fi%hDKn(yI?K^K{n(!xQue)%Sm5zEhOZo&Ff zDBq-OS~w{2x_p!F1`0n15)|Gj_Fle8n_Iw-#Igd0()>G?1?g2%^EGOCMmC^Yxoe1& z(Dp;!Q{9*;jrBccZneVgBXHw8^SCG_@nh8RHT5?kr8kru@ZXJAzBA7fd{u+HqjIVF zhjDOat(Ka@`f6GirOaYI%8HLx6>>E_wJ09p!|ob2x6v`2^|n%4#qxq?oc|UyL;h=W znuAhtFH-0sTF?v`us^Cw0L>p@r{HNim=|zBail)d43YZDX%4byMI+u2sY@B3>>Qe0 z8w}D4Cb}Ax9EEXBlx5?hNe%f@8D}%4toIE^;S#A{DJAUQCR%3lYnUwpB2(D5jmAX~ zQ|I@E;BzTKh*qA-f6au5+JF!yL}R_;B9k1k61A00lsBxX&5o6*y$2|W+FC)eqIOHH zidxR$O;u0NhDtoW4@k`!=sR?@zoq;VFC}!eF0M^mf)`IVW=eaxl)!U>El=5&No}o^ zXibckDO+Vz)e9@gYNXjk20+h+bu*Y;C2D z@+uob8Ra$p-7n6e@>X^;6=8!o6!4&{-#bd;l~Te?!?l?ffDRA3Dx|xXnVyRiGimxv zp>JrWYM~P|#f;dWL`wv7jg*i$7!v31Polr$aQTN~HPZZ(lt3E-H2AM;Yw=&52(T0z z-dYsX^gD&Vp`$-9j1zKW<_98J;C@qQSw-jbWawektQ;wI!{ViuT)#_4sb>Osu3$#)?3p- ztf%RR3q9D^r+Kn9@YkuOiJ|djZ)922WQxQ3{_ z`TPNPN>C>e$&bt2th4U3$92`YdjE^>neO%ciV3S6eeI&YLMEx*K85&NWK8 zOetZ_h1!~JI!Y{Ni&ZRZp4(BZsp*r19_;I_Ss`>M9gALkFxzFBEWUy1mNz#}%^z4( zz!3 z2{&o*Z?P{-WX;G;2Pa8IbvF$vcX z1gww9sCJ$?SBv*oV`_)7L@iV}M|iwiZ2GN~@c0hxapNrUxJw8vkEfson}V{XMSRLT zlqy@OsN1ahTn%gA!ry2*KMwhkI3ORo|qLT~hNqCN6yQm@PFwa}B7fB5O`9 zRmxUPogo7st8S}IIV*;*U9)0v?P}V!K2y$$!L@4)*AUH$!L=*cRcFdsF?{Xfg!S+F z4X-suq_bM-PgE0G2zXBtca4;Y1(n*^B5`rbYB5c$$6Ap!JOFBUsU9_vp23mL@O4$( zW$fxIj;xGRAz(R@5@Y~q`h&s;D%4-_YJ^VQ+$bM3e2QV2zUmXDuyVly<$?w5f<6fj zz3*%Rd!PsvSe9WAEKkrLP_QgaFHr8_rNTx0`?~}O*%t3lB5JJ+*a`;uaDNgFOGHGj z9b%G8np&gjk0B=AkSL2F*{#*`!E7SprMu@69ct!1wWij{FwxTtFWf@`_ z8}vu6AzH=;?O1rGqO}2klvH zu#OiDQWaMupMzz*N?rK^S1#eoI#l9u=xZ^U3mM5W{dtXXl9E9f-!_&QXI%_F?0c=o zS;sgJFiw`nc{c{L-XAs2yNq*s3iy<3oNbIVCq-m!W1N-1vBhraLe*_maQ8->C2i3${gRVg8Hf|l64n^-kdC@qO;-NdSzzEbELN(=~{ zNMsjRwpZSFK?+=aX*a#_)ax^)%p@tHOn0Ec#qr%mnHphgDKo6QD5L2I2z^6ksKar( zFPN`N35gCZ@p>)MC6t!L zMTb}%+7+g{7%VMJbU7%wsD!>}9uEU53DbT~c|Fo4JABTv7N#SE)SMoRSDASmlMNiY zWjH8VZDX>PoolDjfWtK3hOBApDJ&keVO}%5Cmw2cl+3u4>mKZh%bUGI*FMX&pQ6?t z*9oY281kwOw&>hT*sW)z$9o|xN49EDLnN7xloCObt!F~Iakw-h0%RtHnP6on7412g z3B_PbN2MSxmlE9a(8?R2Y6O336M1a%1*?Gv5b<9sx4WbS;WWf5wmWt1jTDNVHgRVt ziPM=UbjXyN5Rfswoyo{(3P{sajEsE-l~PlM4nl0!S4!+8DIxZHer&j*3$^G2`|@*- z3Ta;=CGcKgwh&Y!Z0B1wbf(htE~~~RHEU7BJmV$OQ=|mXjc7gbP{IPnKwsVvPtY^P z6ZH6UJz0J}0M;5lt~%8*HH>!H3{2Q|a42N-(ZfQ)$~W1fA3kr9_(ZGrRMp3!cBy^Y zN1ln-iK4$riD($w3~xuU6{>{8hbPyEDR^IUkQ|(<)y+H{srDYF_8wOItiBFP<`W^}gi*v*L#%LC{G3sv9Pm$fPQ{AuQ?w{Qc+e6$%9-=xM zUMJ4$r@LRr=8)`G$Ek&qbKSWG9{SO?|L0b;qMrkAgLn#AT8MtK&H1Gj?Ln=78vVo+ zm!9ju&dkG{e4YTnw!WnWGE?k%CzT-son!g+vcW9-AC^7tJO|mU&@hc=wHWeCD|+rc z2ac+o)dEWFJP%`xZCEQdJPaGgoc??#S|-u(o|G{Dk4=c2y`S$y=J5f=8@IB$|{wPPJO)2)}rdw`^`#I7bzuSyd<$&MW0TunNfc%|3 z@NItwnH<(|YKZ<|GsjFH;5dmPJ;fiq$emljF<}V~{2Hmif)++=3~^9qsCI0mNK8em=J+> ze+$Ifhzk%rw5SDMb*#R?LG~Jud8v{a9k{?j6g%%1rRWhUlfxPG80#5xAsj)r$}L@p zx~NfdW>X@^D_gqI%@;bzxdAPSTeozfCx9C>vE)n|DSReL3D3uas<7ltO3HMQGhA{e zQOvm4qA5#oG_FZRrMOEhc`cgm2ks58Vex{fN&dfo)*>xMoq~X8Nsb05*K0=vepCI# z$6fM>&ccBaZ3gOrc$|YQZ~(?~@nT0!OzM*@e9DDxjFHApMErhJqt%r)6|G^`?+rBV z2u*uinyT|Tlma3+MiYp3CvPr1s%&U3Eu8*npu}*T7BR_EVmNLFC2bAIB!_G`-@?@; zmb4Olvc+`+5ke>HJf)3TLn~0xP?2+?$U~MQ>ZFa6mVoe3QX;>PphaZ;*`Uu;aYVwK zmZ)P7Xt3d6hwR8c<4A`Cjp}o~M$&JsL|sE=JW!^^ARVtBjPH}`xAh*lS_9!tJ*iWQ zEdCWo>N|}aa@n7pItVj#K$wFTT7q9^SX}=)Z)iOgHF%#K>r($(4YbnQxc)jyEA z#Da>vK224w|J~T)MC#$IH-pqki?-k9CsnlCU`QUrewD0I+33K$7y8H;}~|h)KH9(8!QWi{XO_L z!sjmRk>kfF-+F|+`PAY1A7V*=HmsscETz#fe|&CHUXNUVQNUa1iO=_^r)Bg`>(f6z zHB{gZdh+6fo_u$XmqOlr{Uy2Mu}&KocKh<&!MwpN-4YU4|BW&tYGV-Pw>#;tQ`HNS zZ@y56FVTT>R5qw;R0lMRrY9I^J&Nl;oHPO%A&f6Djpi@sbT&@<0}DMY`-@<#z+U3@ z<>}0Bv@;T>5v}~xKXUZxL6<87~lhpt=mf47?Bi{^l#8;d02jkwD4|nQ_M}!X!#tw-vb;9G8HwHV@ zLz6k8=te2QMxQorkE7bVWxl93marDRzh#Ht0wK^hQTqqPNwNY^l&4X|{HdX=&hcXiXeZgH6gE zqUS>G)YP!?5pwjHD#UmDw3u?I7KhE~9s@@#dyseL4#DPc3~dj_a?KD2*(=WG`_-wa zIO8G*+3Qe&7h-7|>TbV??{Ew8`^}4Ri}1gz8}i^#4j#-y3*Gsa!sXo}6|XQ@^9lp1 zAGnBb#I4*^!2`X=P`o=4&plYgHDiZD#sAr$gK_@&MWq3KaER87QX@5dP-*xeYxvPn zhkmo@K?7mca+r4WgX+^m>a4&A`LGqToi^B{?D$xMk1C1CF=4PtlZO3&Q9l>z^OW7v zxTbfc=1(fkpJdG!4zo0Wk~M$J()`It&7V}7C)Zyho@1NG4aeGrHy8@jHpUO40&%vL z+wTH6jkfTSo<9TdhUr-YqwSs%Shr#a=9SVLjQ;8f2PID<^%ab67h_GOE0)=P;b0lP zWgyqPE`gcs*{J6$#0~?O>ItakmoF;2D#O042W(AOm1wL1O9`q%1}wj6zf!!rT1vR) z6-?Z0j}JDHtCT|9OU?Iut~e{BW8$6=ZthvV%!jux{Y#>?Z)TNq-r7J z+zN(J^_DDAbuE5C)zdB&RiC(2 zRHY=Pg{A6mmx`+KV=Yy)1!*@pL)ACOimJck2UHz8?!T&faGa<2j5^T+F9dVqshhUo!=*GeLS{acRCr^oAH$KnLd<#T`9 zPQVo;uaxHSK_`6xPNSQmFmv(&@P_GY4*0l<4ziOOtKJd&nOXLp$N~Q&kB{X*2mnC^ z{2v_f|92VeWv@a#2mEbO2>30i=76s?mGchifR8&z#kUpknNkrM@TGl}on}gjfdAeK z_`o@eCl0dWC^~$ZL{Z8l2XPb?Pm(CQcCwD5WJP2}(ay;dMRYm(zyY5vNWbYQYI=o4 z(E$8F6y18oe~qFAS4tE;d!-KeYGK&KAf@VuSBk2!SBa{ZUnQy@xk^;cOgT!`VONW) z{;MrjD+MVAoDuM?uMt&;;|El|>ze%0u-BEnq zygLfl%^S0=aKD?6vwA*Thx^?ex)Sbp^RYdV;eHQ?@^{&IjKGuQrsT0lN14Cnta0Nc_35+L51@pQOMu-<-i*JHdDC_)%8*$1kcb1Fp=}9Aa+TG z1TiPOY^QP~KEA_Y`g)G|{ulf}vb!@^d_N;kd|xX>R+xT}C%$jzfo>e8@!b^Xc@^OuFAJ<7dyRvn zi`PMEYDQqZCSiuXM#gIrX5KKZnWmZdtMBD$T;oIPiO);u#Sfp{c zDdTQq;~w@}#@)uoZ8x>vxZ5I)yRF{1AFy#Rnd(sU%)0I>kjG)2hs_-`R0-@ZB@8h^ zo7)e%e)%TFr>X$6%)Mf&gZNF}Pk{n+X9eZFQ_F5w6vzz=HFx#lUF14q8W3V?+;0apHU5TA|eP3OtlMM9`CkeB}k1T;nn+sa%t8x<0L1XU9Nut#vbfc6I z-UGs4%1NRN3NhxILAqH=+ET>8Xy`n`*ODG9)T2SV4D(D9#Fl8`I}OV55@Q^VZh1^7dh0YU>Q(?VnYVP4$aWEcrvAJHR^wx9%mahQyW_S2|qp*s|&%?4__dT9&K{=4$g z{WYpG$X~JF#y|ts#lC<$cN!UWhLKRJG;h#;yjX9~u}=P$WW^cGS! ze7lhvD$beaDGL$Vi<+KBEsL<}0f$uD5v!j9WCJpIp%1MdW=mwpp1Y|&2PFrBo-xJY zKyjE7V5#R&mqW4my%WE=->qPaKLM()Gd$JrAbTJUvr1|YyYKR2YhR_R>4cgisIh(V zRy5V7#S*mU(@vYc9ZhEkFx|TS+$I#)Lp3F0oIH7M6B-t9kmLDto6y6+X<(Hp9&ae@ zDYQ&cdrqWDQjF9>q7*2*KH#9#pa5S2nC2o%LAP2=$JWVofl{YCD6Np4&xDi~i~y3u zDafz#`Cj#u=qPvDKp4lYUxp(9I4L)!=Bj#8zpHXtg(8!gY4y~@X}?d*oum3 zR7|BwsAw9*(jF?N&}8V^Kgc_gvJuX6f=C}kwsn(Ca=DbzE{D3lEhXC#DeY-|la+@#J0II!2B{>H>SQ;%37hgkhNj8608R(zFL`>jSIF3<<3B@B@K$ z6@DPF%4c9mJ0_b{A+-BId&y*zC~?AMlO6@8d$LJy;YZ12lfJS@s)b}fG#ND6BzviY zB4~S*I*4gK_yO8^rP$OsXR=A{x+%XENC|7;jB>~QlTBI$H11KIh~OrSnJo}e-?hWw zj4_j3<{<9c#rT1)6_vsC&6Z;vNst7jG?qEuLYK>QXtr;^x&^6AZi?Wzq{P#S4(K4} zBF{3<$Z^piNO>6Y;aa)m*H}Oi%Ab$OgdldAayZe@X2c(6yxlZL{*~FPASnreCyCw*e8ix8L^!2G0FHh zrH05=Nh?#C7OB(#R%!s0vR|i_8UUqw0OTtigKu0XN>xjz4oV575c8~5_J3Duv}eZn zpf^zH8FJA$l`1S%YI{VgG)CrxW1z*^GqvN#M9c}t@SHF?mnJ3oThgJK4vKl;jl`j*5eDLp>Z3(V$hS6Bf#K*RYkYfiUxWtzL3C<1!-q>So4n zFdlxrHoqGkUks4V&)~otkPNNaL^-Fdn^BoVg}4l?#BZcU^5K%Y2_WY~1&_MXLH3Fa zPJ|&SzW+u{Cu&p;f62UQIcnm2GENzAQc%N@nBr1eXGsam7T{`$NDTChjKmmBNX83Z zwv@mx#Lz?*yaa4*n4DDhjOC_TXu{+qR4$W~*0Ycj8V=uMY^y_C+tk%dX{nqxM_pm& z7_e@yS=zdD_~LQ{U^cIUQ)f4@@1tzr>8Q-1g$yhKzy@B#Q_~j!2YIflD$czLJ64tX z?&fRFmYZPFxL$10d%5Z`S7ocJWn9&64l*sq`*4YkfRwP>?b^y!y<#KAJ6ky{c;!+8 ze<4f>EB6IkwsLJRW##2)f|akCBUb(kIMzKACdU8eo=FT_Ev2j=wBO)wN%1%90U@aw zX?&6(&Xf}OOZd;peDKZso=IA>rG)-g0-tg-BEY(5f^zjq8_^llg0rofG0M~xvqf8U z{Ix!o_Wp&~e0E%{F}_?6*`hPAQJCA?+R2E-RPzqLBN|%lQ{Vr$MQ10gol(D4w>TcU zCvR|p-<#`6$Bq8E3ibD+bx@o&Y6ehyE7UdDv~0*VG{|4-36U+j@Zl){?Scjc5DC^={14gWd{q3Oi4D(+C+?TN_Wh z;=Sse6_2!_t|9NW9?Io2qffXq%G!66=l11$f@#>Jn&%BQW12h&ny!;IQ@Cdm1RZH(JvbWM=x!wB5IuI_ zWVT>g>RGSqU`LNPkBl>ogdowzy^Z3M;#A)aa-@xgG07NaBm{`Mf7Xhi6RuIG)-~Q~ zW29R>gZ1X@J4M|B?qJAsS%Ej~2?gA_9x^^}evF!3gE)ukVDm<*9Ljb3B01k-u*%@l z)k_OFcb}RC1{b)!J~A$1esFHWl%T&zc_<<5S3gdT^}ul0om(K|X<)qowO>JTPRPX` zE%mz*Qecmv{=!24jL@j!!mt--E)H^sytx=B;~951F%o!PeynFoqr>PZ-eUr|dbtbh zN7`V2QIW?N9_^Wd2-7kTG%*r_rzFnGsYpBneR(qa`m$ko^!bPrP*;EGOIsU|r7i)fP)YdS+7jnwp`grwD!{)koyV zhO=9(*{C0TtH|!^9ZSg^tP}*oYD_En!Cpmg^+1r{;0ooNwDo3ru=m5w4zl6FUbUcD z5BA#6#iW$U>!dA+SvAP}%@y)1<_dXyA0@#ezd?~>_hgo|@t4*e1tvWV^7I0e)@$-| zLBX>?ezg51lQ+V2cwohoAYZ;^vZ~j$>9CNK$PYgfo7c9Y7Psh$d?He9W8~;D%@3IL zgBC5Q+7gI2UQahtJw&Gu+TV&&ErF*uR^VvQ3^hApiI#|}YTY-8I@^f+ZuZ$2M_IQx zC{;f4O=m;u2dHre^Fu^ukC|krcJs6q&gMmiMp#>0!NC*5h@F#Kt++QM)yp+f14Ox) zP+e#V&BdbwiWyd5Qmu66TPe{c+;daRf&!DO-cY>ONQqYd6#k|HlWv=bFm22bQ`U5- zd@rfj(l>LRl4Y=2Uocql7Yu0r#5@P3<`BKWchxmkKNKt*YhFt!>Vco zkU_?J))3lHp$&}H_I3v)^T9K3F_#g5dDf}m;C$)aTTD9Z4hI0xKrg@9-iH(WsIxTQ zMGk50HL2wS2RS-ulqG!yxHos73%80C?Oa<6`}R!n#v>{{=VQe5ZqAU2iFoBc){YJ&c~P z!~rlAradh5BEZ-=qrO7==n`I3=^IPQxsdS_6YU2QTl^;`YI>K*{E1~=e;3Rd@S2p_ zSDE}Hn6uhz(yMnlC~>3Lq%ZDvknIDnNdZAQ7)|78Gu5Ql_c$o=jHxE|UkcMRpDIB* ztock|Dtvn1D|~7N#p08FukcB_kNG4`H7UNI(&rcOnL5>^qWc`=D4uH4UPe0QLCiZA zEZ5dGaPi;D#ecJlqwZHO{+kVF-mhK!HyajSO(#P&0>}WsE2T#Q4u3lHHw0_$Sxqn$L)+|U*@3XX|$MuApj6jiy1F} znS*$!Wr;6NGl+PoWj}zWIfTuCca(Zdr9`@o0~$i;<_E;}Z66fZ*9a%e^%p!Su7B@A zcKwZ0O`>y^>rV%tO;b&ZddNYJol{LZ?;$H(1*ao$AnU4!L{|SwkrfaWOV*T1ku~ID z$U1d5jSJ@~Cu!%@Y*toKPFk*}WsQN&JK z$yg&Efs;IC^b~`$0K!dAG3N3|#7$Mw;S|^e88P!w?WU3MDFs(b2{)wz4W{!vDyIAK zQ8AtCJmmq)bX}H<=~gd?>DW!#g47Fq;HIt1#ZAp0({8F1oIb#TEazh)D`thrsu2`R zR?ih8tM%iMb?R=q#8Xz{F0`BzzfIXdISHE-14OT}lP-T;Iq5Za(xS&5aD@w75+g>E zYD7y0TI!wjI%9QMDNb6);Ans)?n2xOe#A99Q3JQFW7#vNBy@u?zPybJw zuUwig*5-@)kC^ZG|A_gj1jRC6(ke0EnX6$wPRezH#Jl+5hD%oqpY~4(pZEbv3yV+Y z6T+v-lgtN6Ia`pfgg!{h=RGM&`6?iBSX2tmRlq@5dV0{Du{J&9z*Dquqj0A>>RGvD ze#3ZyXB}j(9S}>&LH7)*V=0fUao|9e!wl?v4i{qA`GPS!8WZdFF7b?$TX7z(yFm=;*TBI#p|b;bk@rbO1g6z&fHLwr}Fca zC;6+VJb8LWCQs$BAh0lbsuG+s$U>^<{VG&iHqE5W9m=%XQbMIUK>KN$NteGWDh-iV zjRlqBv`Uw}21oNuu2uxy0S-`Rz*tk^}QU;lZcn2F^MSMpoYuK9GUlT(8EQ+7$NBt z0c1o1Jprh(gO6My&VS#aC#kP6{Lx!7cwS+|``^Y6nUj6$5^?9q>ur&{qji^PZ)Dfj zsjjW#uElIrU0cVRjNPcawk|p%tE)!zGlPtEtfYR^f!<+6^Bw(G4{eFYZRk~~$mO-- z8pc?O3S{>8nf~&3wGIAc$x}Ds{W{N*IId~IXiPv8o8blv4UYGX}_PGCv z8>B)AU#{d)GxI$eHE%Hvf;>}j-a-5z%&yoBa!ks~rD-RcknYPjOS<2)S<-!#pjheN zwnfr?{uYj8@Tn7|FEyVkAmN_iimk#Yez4Ni;xl)v@JX*>KA6yD3(^nZgG<7-H8N9p z21tBqsT7=_fP+iR2f)F6Ke!EyPC01wBCQoEt^<(~Gph*?hFMK881CApB4$<-#PZ&4 zI$~xuiHI20C=oNOiHd)Djxe7QU)gR&%wqmr>W`?v22b?>VhLk)*x{gL-b6hv><)(M zRu;PI0~s(6F=x+*I+k{GbB~?4`V7`Lc@HzE>Ycc_;6)tFHs0Yn+b%={0ww+;fKs|v{)i$?G_O)fn4=Ma4ZqKfddg^KCKrqLW!8DMFc+;5t-6riMZ=i5wRKMETUX+ zED?3UfrzX<5OM0keWIrXR_2;S(C_0oLY$|Qp&9{X z08l|6^!vlIqJ+TP&jdH^b5L@jJM0NXwtdEJH|}?ky?O-R*bN5h2WIo=XAZJgUX0n2 zXA1qoc+LYbi>-T+Ni`QM%g==6D~e1SbwDg1xJ0#h(Si^S91zRD0&=!|rQj3-2O+u# zII#TrU$6+Ixf($V0SW0c`wK~zYrl{*Mrbt%Tf2sVos40?F<(JxT3WlrFDFVod1bPBcPV~|}{58VAzr?0r|1^(} z7Bk1L2X*REaK=}XnHDqUFJJvHmvXDy5l>33&X(6jc6zz$^m6WW?$@f*%UQ*_U+YdQ zSUOz~;C7lZ(bAKQ<*Yg-dqTPHfG3Zh;?Gxp{x#lPq%~}Z=HECdIfRUiXI^W$Zuqz8 zx-SnkuX9Z~YLvB}VgWCrf*0Bpy!a4Ef?67T>NzoB6~S1b7^Z++ zqt$>&!ow1tSr7kCIc>a@nA^6BCgQp6CqGzoTSl%tq>xuj3FH`!Jnlye`P9c1o{H%> ziu+kfQ`6taoADreycq`3rXN*2J>Cq1DC#F2Pmec?xZi4_M@%+Ez@`p=zwczvy4(52i zKhSi4kx6yZbP<{k7MXM>HzA*8j#0iDfF|U#7yodmrQ8vJNFvr%|2QZOJ~I?dX;@#g03OH|gkfxKXZMlq?;?}3 zq(|2v`fWpfCY4J~Hu`vz&!pz$q{Q2OCT$|8BC5_(_l)P@p7DI2NrvIXCfrl*eq`#@ z9k2Z>(f|jQ0S>YOk_;z5k~+u+7-l#T&@M6*3?Mxc$cO}b0?^ls+nX;~)q)-~ob`G1 z*Jije+7acX6f1Qe;haIqk~jZi@RukjC9AyoE9;RK?Zj9Lg$1r`0=B^*{mSwdG<8z4 z&YO2MN8bFrsgvw=Sx8OcAl<~Jfw3yG*CP%Z;m86{>3ILx zVxPzISKU96etWyQfrp20bKiV1PD(BG`0~RAL~pYSpV+kX-e$eUd2h4UlpLhZ&9T|} zZ<~|sRZ!ncTbS_j7EW9#wy=e+ZvjK1Ighq7L1hbctq~omf3zz%=;1NJp@n{Tcua7J zJIrTvT3xGXs$MHrS@=+M&ccV9BMX1kLWSlb?(pTO>E0b`9+8DrBf6SF#v$oyh~~#2 z8ZWUs$(}h5JBss4X%W}??A+N!F$jl6b|;Z-35M!8<+MMei5xXPlh)XsYE7wboEo8c z>)3&{wZ~#%4^Cp);}sRYQNu~>?v`MPEL|l{|9~N~bn{kDQrEdjQL4|`QsO#y1ZY_B z>E6m|EjR7*nUp<2i8u^|_I{JjiW9|ZCMd-^BXvNrmaQ$tGAAl3{<;vd>py5?#VVu; zUk+l$0&TQn;U-G4nNmWrA0QWs-PNXEu`Yg-GA~mi+Teuu@qUx$wuSgpNnF@{V?~CJ zh>94cjEaoP7>m89m3-hoB^S6u5JZpiw*qS0 zIk{@Qx5z`wxvE2Zsk)XPsq> z<9ScpV6&GxI>}CxF;YVl@fJMi!7pOczi35=J0c}lqA{1|+Awa%bb>)KJZdgiR=X3X z!SD!nlHn0|#Zkj!!5N589=BOnD5`rvh2im^GrQPWZ)&*U(tQu*mL=$8cbJP0;Cb_OsvR+0LsP5w?XqYWc z_|O4UZQ~|T#a*qaZq!u2a1&EW(@Zo$R_fVM@#KfAIA*w~lzpQkro2JqthX6>)pb34 zY3$iLR@U1v6KG7tinKAgVRs?R({idB$lIjkZDM)Fmb^`;DsPb2=MI*!KrN`YfxxXw z;8qs6)DpP0(E>fC0Z(q&;_hk}IRNoth*F{*EajE6)d1XK!`;XpOQwP`=F-X7!QT&Q zjD?YO8!j(s9kM%UUGM-WgJ&HXko`!!b|`})+WMVAM#hSlS`gW*uf|BGKDY>f6ORc6 zDtNkdKI*ROir8yJ@IhH?b)ccvTHE+DBefpJS`UNPE zVbcUB*{e~(TJt+!-zGq78$S=rRs((<5%DvyR*8}d%B976?sX^;RE_NGWnN#Ne@1Au zhqv`weRFk=>|;6JNhT`ittgw5bT1Vw-K+;P$S800RutG>7V|9Ofi96s+^3YdkCkX+ zY9$mbO4I`xWZb8euvcfZwIAkJ1FkR;B&cC?uj0zh<|$aN!TpbDS`{Cu@$*XK=UL-A zOJfC##?MT#asMDIN3Swj-(+WF{cXi|r21Oz3NuoD>^RFI zQrpO8Cu@T%SkzaiDgwyB9y5#r06hUH^|i*Ivc}C*aD}El+@rB6PO{-Sbe3BM`DX}n zJbUiykRY#+7CTxn^&}^|>VyaIMC?<>c3X$uZ>zgVatN%U&KXIZ_C+h&>(qUet+ppT zmBx}HN9v5#pX1@zdTu;<`Vl@pl7}!wX@pokVnBA{LwGE0u{s5k6Cb-{k*FOMmM)>ebLwygMpFHU}KG~fG#+*DAfA<_cvz_OhNo)w}KhZOKGcR9bvIMcv^qPpoEb0+q=t0NP3%A2;eQsR^%zS+i+31&BBJpImfFt=CQXpcU= zNiz@h(LzAl)lkPbbwxTJZVBuf7qE_R>Z+3SR7%BNPHJ~2C7+W^4q)VV#}(4e*Gwm7 zD092xw#b#kHEF2Xj~afre~I+2N=k@N#Ij-og;SjBXaR@3K&jQOX`uGG296#%7dmuH z#f2@x;`JORjTws*g~CCPyU1b?-!HQNgP74EFdCieq*OlAVGxWl9U#A7&R|p;UyVk< z2HE&MRsFs@4L8>4@H85U4!?)S5*i7_@6lL|#!?!Mb*?r&oRnNfS@_+%2b{&PjUSQD zrSw(0!8Aj08O!aHM3Z_riQm$vTy^Qgc@d6>`y|ml%z^ZYS@8Gq-~QHpuCn^hFO8hJ zGSHGf>~U0-AtHwhVxg3H^Bey;E`RUgRI#YBvIGliTd~;Lh3-*wxGdl~FU>Puo!G?V zD^0oBQm0Pnjb)Ibb~YPu$%QT_rA{XWBWV-DQ~Hhf z7Zvgv#lXU#$DLPpkxc${|0-Wr{WO+g0XUJ@tr8LDH^Zt}#WoUe!Ry7z@MZM%uZE?OX&qdwc3(Rs>UFZQF-F&FIAznt|W< z;Wt}oCU9Qs1?#K+&o+Qi+sjGzN>y_+*F^V*$yLoft~sYS8_5O}#ZOVk7fsjw9l?z! zyj&hH$_o9tIs7hb`H5$b$D=Rs3jOP+MqgUW(hr{+wL8Srb*DxhN@wa5&w-EE@lXa6 zw>>4Rhk7#ci6_#>mE4Po6HiTYZzk?_YQ%k*_{6jLsRd~ zu4(>4w=X}6pyC=CLwM3-~#txmSyaW zG7|96nUKg5e14p~!oR!XD8Svkmz&8 zrjD3TmimL%d~y)Z-3t-eZgzE`maro>W8?r09w$si|n3)1~uC2hErn6O@jxnxY2RVI~6?Mf-pItf?K zi&vR+YhNch#;-Ez%f3!Z%3fuHXW=T7>IC~IDM6LPJkhFae~W0%vs!iSk%-nQR;#Wh zu@N{ISgn~-J48yf;(#t|EM5~W!am-pkYUfJ{+OcRofjj@pt(A6S`Gv~7%9$@3 ze1iXr2Hct5Pv2a<$SZ%_0P`?Wu)n{PlBX0G7SdqM)H)M_Y{{!ls>xTU1RMa8 zXSGTGOeZ;tR-06dA2aY{AfB%QnF^E}&~DWTf|`B}`hNz+M7YDzLYJJBMNeMFBpLpBr@1 zV@wh^4Dpj2>?Lqdf%^$OQQ-6psVGB5sf$)J`7(xj3v_^?blsRX+)2r$>AH1>0_p#l zvYMej0@+3|s%{*szzk`~&k ztv2aq{CH!vNh|T=oz*670t@D#DJMm6=&U((8zmgv_yG=c@B)&_Po!iQvGW zz<>^CjusA=;s-c{@dF&*AC2*}eYHt(Q`LAH0l6)oFsbVpCpkJiVbYK>PDW`425OvdG)~L0T2{H>4AMC1 zW2L9#$BJSzEaYlI9;}h?)5x!B;2x_jplbj)ffOQ#udV$d7B}cQvvxL37R) zWPb4#Zc3UUoQF*i&QpQR(H=iojkGJJ#E3H?1<`&72r=T;;RmAq3;aN|+a^LB#!H2W z<2R>4HFlzmk^AujRBQ1ARQoKdYN2vyS*KqnROjIbr~>!_syi>!vg(A&si~d^4m8|_ zAD}vdAD}vWlBSCHE9-UBRD&joEDwHwY94-oY89y1GW~`q%M?fn%eXX$Ex?D|CX=1S z9L~cJa0pD+nM6}Ajo`rFqk)xH03RH7;|FwTbGeh4!|=;B2Ti##fcY0IcUn?A~^Ka941~Nc9@SJ;P57XfWvR#!2Zn=>+x&o&^+x*p}G`5Ko!Oh zP~CH-wt2Zw_0_Uo1`f3S6hA;kS4n>puhLXiLe)=G4FwLUy!ZjC`S<}@Pgzv8LUpdD z+7290{fr-=>Ug!t>VGvZHvfK$P+;9>>M2X*2o(!z>QWnJq~bP{YI(A9_0{^mK*1jY zmKy_A)B75IXP{uYHK>i^djnka5AtR7&TDWPO&92UhB5@|myNcb0?lHm7k$Na?=sYz zzGmngH!%CqHw?{Ys4soX&?biZ(RU0PIlw%Z4l#5UL+LL1p23$Cm`-&Jw$BA_dIlY4 z@M;D2q#qc3T!FplM+WN@*qeT0@SHp++2aCy&Hsh3`TjfvC~imcWL8)pC5D+7i|*X2 zYYQV=xLJ8$YU`wg&K|3^-7pm_ zE-BHP!>ve{fxzwSk-#nYz+&K_Dc3}B;CIn6INt$2Lch%v zNlaJZ2L{aYDVl?({5*ogwOWVofDaCR@`Xboet^Ss`I>{KY&Tr>6}`AlbNB}M;Lxi; zI84P4aCo*r5B2PTO3F8Asw2Pw)!AO5nt&gmD)nlr3Zc4DQ#}bBP<@Ucuvqh{VzKk5 zYN~3XD%VsY;DG8?`~cNn{D7>eX_~4|sAg%Ze$&J|KKuaHBK!c=8c@X~KVgzxQbnAU zu*}WiaQPD^ePp4vlje?60&T8F`@=%(EY0y!0__%!c2*(W0ij9KoFXOA=4rG{3$42} zyQBo#tr{)YLhB{X{iFoiZ5nN^g*HH%Go=I?A47ni{-1?5M4E?73AFi|+j~Hx)Bg1y zGpBe8o>%h*x9hKK&EM)shB2Qx09seDBs*68RbD-{x+nb#L zGo3LHZJc#)^a(IC81tEr=WS|!0?eL_`O~|zcAY>vf2qSVK{ZiT#25Ad%_r2s->;>0 zRg9m0N{hY!ei4pbPnbBVUe+j;aMXiYyFv7F?7uHiTkE$0e_>gAPgig1u<_iMq#0#4 zN_mUNaaXF35rxeTWMs%%^?~K5QP(2sxhCB5zbu;`%fPF?@Pe2&rbh5dC?fif`J8Z( zyH77NLe?_r$!ebB95ryTBki)F7ax@$X(SX7L2;bdjP=U|AMsLG0zawciOfmbL^zKt zE+S(>JzqHkv}=(&mnP!0@ss5jD)3GTkM-skga?&nka4qGvwo@g{{TZQvOlsS3gcxDR*98dPYAoW-?DG1D+_s>U!pxD`kO~Za~G!@(y_lJ-O`G zMNtNpy+N$MUWKO+fKP4-9o@dxiVe-{_(Sv9;DihHIEovs2PQsP(^+Q7ox{(bM&B1Y zDYb~GGvel)B0XE~jPY=3k&|LJzG2dE8Q9CD1ede0AoOH%Cf5R9B17Xq_*$6;h(L2+Nz?x*?L<$|JEhDrYjp$jCK{<2 zCX@*C9)LxQNNt|z?9=8=gn5Vg^qof{zgmzIE(%Z*k1pGwwMkSV_QZRY&Vsc`M9u*I z+O|EIMAg&PS1RL($Qknx8sqRcvExHYG}Y&%#Q2AjsM6=87{^0N6c!cBrHmn>GvTLe z9!jEhJ|{WzL5+XMP5sBlSBkU9oh!@8Iu&U{(4{)w;H^v}wSXwITX9SJ0u~4mWg^~+&)DcMJZ(b9A}wvJ>5xrTR54M5GQX^L^7^{Z;2=VaD%GV}~h zcapk|oD47CJzc&38TQcSGYHgMUfh47+K zK494C^dR2na?zdqS(0Z$fYJp@2m{IxXfdFmi9`q@CX zn*)Sgx`(kp1`tlCeGK&}!RxFUw4b5L4E3bX7@7&Fz!h}SMrQL6!|6d6y~FUE3}*yg z^e)2(7qI1 zu=&=RR25SDV>W{D!F47LD0Px!#X6I&DRolflj}^n2R~j|XVS~1xK#mFtx#>!RG(@p zDif-{_yMZR%d{pNMT7UGgeI#n*2~`HXNlk(BXJZbC2-!+Qm!u(-73Kxy6wadNcj^| zShu*a>Jgtuiyn2kR;UJEE4r282dI`^3*8{Mv&c)55^~?ua$naR_Ja^|J6-1_<}lzo z%|TOkkKnLbbGYU@(P1_S!QmzRfDXIC!S=>FlQKnf{wDtq>rDCwRDY~9DPg9Q5~J3e zbP;}>w%()y{Aj!0q}yl0DIgCBIe)1Q-|? zxDbq#5)!eL>AY*bN#uB7y-5`o@_0d-Bqfk}1run`0`2(ss>fcs#=G;a8>_hE-me`? z6CC9ZO>^-L=0E@Z^H23Z|NPUcF{Els*pWt(7P&*yM*3%D4DyCUJaat$jp(uJf^f7y z+<)Ku5o69W_`pEG>GkNonNLf(+cFn2^yWfvuP)EXV=1RMiB~mGG403s~^LmLT|1olr}8rpK(RLKP^#*MgF`Iz7kImA4$49BID#MbHfqRS z;vwV7dW%LN<#_Wi;*FxP9T`72H|ld(1RB)N@rFlwd}O@WK-n68(A72U577HZ>s{n7 z&GOG6Bc7LD5I+e4GPsmwwXQ|(Qc6Hggs=c;x^u*%1zkf>XLFRmlr=%$FThfpqm0zNbfV2{sp?sJ=|sVlTufV7qtBpUX*z9XsM%~MrIfm;h9R6s zl}p?Bw_~iyguAf}UkyFa zNWGTmJY1Z*+=QqhIxqZO3z~3~HVn5>GA0@QG0CXB2`~OxQ7K{u=H*$OD=yOphlD!} z7IB9G8S6xbg8l$hMgm&9$}U#hk$E3miyD*G-s&Vrn;Mha-G-HrGiyw$ z5**&X*1yK2skh;Tgc_5wOBA&mnQL;5No#I%lEYnN(wVnA$u_mdq?!`73VkK1f5(ik z!9@Y9^VJQE@CQ;q(I4EK1-Cm1-B!?s+tsU^fACfMIPR4j56!T)0pk~<4fynhXoT27 zu(|=K0luJamTZe^Op2SKdiEl+)MGU!oi^V|iBHs+bn$$owPU(54wI>%*Oza}s<8v}Bt76C#9vbu)jmvfWe4e1CUsiUcp1&(Se`h_fxkC-H-=mMrXi0YiQhNT* zdhWbK>#5L1&)=1v_RJY_+VLNJHvFH^D)v=TI7X!M;qiYnLYD={RU7vtAxq1EJ5t+) zP1utQo4}Ld1zMeje4aD$e*HW7_o@X>vVBxzQa~Kr4ksReUt^MUp_3fH)|lkQ4`Z82 z2Nyai(YDQ`(<+>l*k+qa11pZJnWr>h>67V+)a&&o?CsZCue=H;A>I^pKOiJXZrcv1 zh@`FaBE&_Ze+E}9Z$aZ0=`JaBN-o6=AVhC8!Q||=MR@yL)okXPbmHx#qjY z$BcY?H9X_>mGHFtZC2#*J2Bjm5~x&#{-v-`iyD*Oy;D*`{1V_GC1eTCSl}Qflq`{y z5Lc$Ct(5S@5=jZY?~;^IUUq_%Fl_J;%br!r?RD34BzN99Qd3q3wbn@556>atkAv<{^2`M~?Mdz=gp5_rlz+Gyq1 zDbq}c(R$XH^x!>CV(T5eN30i^sZcEIWh@n=xvsA_nxnkNq$5ialf>=_T(8LZ7;kVM zd#`X_cCT=bzd@l`oc}-zGIaF~M{!<%pW@tkn@Mz|A}fW?=WR3TjQgGB7_`l#y!+8F z;J5_mT8(qd{Z4WMhlmlf1)*FcY|~86T&9^+2+nMcbHOr;Nkq0S^b{0%g5$hJ#f5m* zrlTWsT4ag(|t_5Wto$b-5CNoA8=A~v4-XXD$&sX2b^TDzA+Zp<5!sWf(LnapaA!S zumWxp;>(q}D`5rPB+PlxNqm!#U4GO}!s8%1)-)6Nd7@>ItfEeQ&Vrf~Z&rrc%!YaQ zL1h>P84szG5fs!9P>=-j11fd_gwa+oh&v4iKLuD~wYIBtQfi6S+7}=j5X_dhAb+Kk zY?o{^sY3d?1%17Gn@NvXI>|9*n@M}{!?(?(_76MBQM%2fQ4hmHpsE(Ct(qzT98f)u zAE4TUAE4^+h^DF&sv1o->JgDO2S0qlSHM9dzP(v*q zb5g3OH0<%^dGfe&c?%l&n3K|c1IbX_Da|)1;&(9O_XKw&kYfQcv$mO3B{8&KO3XD5 zz$Eu=GpY13CpjM3X3|sm@tl6*{#mN=hC`zcEMG<4#H*B)~fWCb$La_J2-Fo{%HZdO(&X z|KdS^@qc)<-qH*SWi|kxCx0Nl(+pPr^*_g4VEGzRKhtg$XwRM%OUcD9THFkSt;Z^) zm2`ow1yrKjHZY{y;#T8~Hl(V>tk)H*u_vMe+}xNDP!%&=0koWmiu0dvlD%R!gu3Y& z#@YS^gyslz=95l*FIk`&4C%INKrHk*7TWnKFuRE}-3!bs|0%Ye0&aT>u|c+Hx0zIX zlNw!rAe44&GwF$^oa%B`IY+hd$7?aW_#7>K!*R1}v94lgR>|yQc9mQxYi_Q;oZ%nK zikqwG{?xL520CUkwbEkA>i)D`F{^G-G?uK~r$yGgK*6Ome%?{Cz%hHC(BVvBT#V0u zMlQzTXM}b9t%9QOn^pq__f6M4E8VEPwVpL!?>~H2nGPaqg?^M4(S41Gn6XAgWZrg^ zh$n#p5!XE@BC2mYTEufo1O`3buIR@?1O|Hd=VhSh;s*x$ea|DkLZ5O$z5>YT@^;|B zbG8>mpE^OYx;*d&v1ZE`MW4X@qx8A?MWxRrNJ8_KJ{Ld)t`?uXD7m=*OHSepem{O7 zDX)DAih-(5s4mo0`+$S1#lV+^>S6o<)vlKztv;1Y-WpZEK&=y2+|0DSj=v55# za@6H#&@AS-6m_=UFx(x=a5umNe{D1AwO3`BWiL=Iw;&4PtmdzYv*H%27RyLoF@2~BdGmdAIjpb(U?Aw3;w>c)Dkf}jQgR+X`yZkbJS#l7K>|Gx4pRHumbZ{Q zF@VdX>S0_+mq(#b>Pm`xvGxr?X|~r^@LNh{XnpD}$fGixbF}>}Cy_mFQ7k3T@aBaJ zXfdn&Gf=n!9b3#D>-aWy!2vUm?qsa~ZzBL=F57O>w>K)kG$~glyu+XC_iZ;R^tO{6 zCEHDU5Cky@m`uT&DJAf;5D*BP58rmGP^npTRH*dYSRX1ev$vbHa<-CZze$zggI#Bi z2ezBEc%zdXRohKEw9!e4uWmQ#oOiJC283}!P%0$|AAtfO{O%nmIUd_?(ujA3!-jW- zLz_*S!%U(4TuN|wRCCz1NjUU=Q+{GM>w`<~{YDTmLgSAMzXuwt_iMr{$o^R{Th zJR#U9B}A{#gvM4OylSfu-nA8eIwpaKa@{^_Kvm6EIv6~#)~I#uHN38UWsO?wT4P|b z>rOyCnrID2!S^+KkSlaq>{5*YGRRnC@YYn!4oMxZd(JjY%7Q_9o|^*O8mt3DwQ(3R zTCMC`BGubq@HyifSfQltn9O5K!Um30QirT4~f?DUD^0ueO^M{l2#9XH0OM)QI&;i>&h2NR_`;{`;2wH|Twp8oxCjDs4$+ zfRG!%Wj#Nz=e6F+dO(_My$uxu$2e>i31I7*Ik2SWw!Lf#gk zb*#Eg>xyrs_TePn2TA;{51f>yHcIqCA{1Bl;o#w$1*E_(4KrXD0ZG zSpFJoUkr`bJ4|}<11C8;?J(&R{OG#Fq`&c_`wo+?`p`+XzB^2E2~h@!#_llb{tunx zxO|66Yd>_7Gj9i9r;Z&>6MRJxUDaKzx;?V1{rMu?A6?z|p_5X%tJEJ|?f8-QcYp4! zJ$rF1CHtq*0NhHsKf=%t>@aDk*silMh6M*e)th&iGzVzMswO_Tc-)xLmO`2HBNZFQ zJ{ShYHd~4egI*Hf>WuVbSzEnk=9+1B1LkA6*JHrE?jx($W5B)bPTlJ<+-qvKV25du zyYA3BI#%p3X_AH99hc2WZLnP-tiQ5 z=hYk?G0@hXmuKl0sL=g{o^Cdm8+!UbR(dipb+>xZ!@#0Xwc!}VA%{We``n(0sYAav zux*9M4WIX_a$a7YgC_Y^){`VdyIiUD2d!0nKT{}z)2u>+*zTaWegjy#h{<_1Y z8}01V1?z;0b1bW5-x+D0>)1Ni z!8#WmP}X6f>I-EZ20r~#TZchdXTAaRe08vq=3(O@ttjKMwc?j3H{Y(iknt4^03&5f z(-JhnNSnVBBNcrOoFO$PRSM26z=4q}z7`{``$mjZBPf=U>b^aWk#dUymT|I{L>lQH zgU9nd2F!H(cgivf>T^gvAiReYJPxv7&cCib)Zpp}ClvX8;e3CQCs<~&&t4iS<`s37 zd4Bz=Rr*#z0C|y{{crKWza^3&I1&tcNn-CKyFWZm!XvmmC`1LHZfF2 z?=f`f2RMeqqWW$X7VF?wM0V>RWf0x)BarInU+%oT@qWvenfFH8^ebi4uh^!WepEJ9 z(1@S#m7II{l-6%p`v3g|#?9z`)8bNTadUKj-=z0|(ae0`v>NK_5r({P()T|($uaVM zliK{;AONh*WIlJ;qN%t)Qq{FleALz2C~S7<{j<7@T+8<(cmAy1xHbwgNXfn+z0OUa z{_LdWQd$>v1CrA(PO?pa`uD^Vk{_R)v*3M`?)t?^j=SGC>Aqjl$9m%-G7CcmmM-*A zq)z{+{Q>{5)L(y9=2K9=Kh!knpD5ht#vRcbs#d%)wU8g)&OUNdfmWYFkIE4-54~^F zt7575q(tBNh5KjTH|ggiPIA2bzDdpg#%2ANttRajyx*h*K7U~!&l&gpBhMMXr*1@? zM5@GI{0csj$lFof)CL1jlWr;=YX!whBIh^jh6hhmYfOq?s?1%1r}&7~(apQ5gnvy8 zL?D+11m|AhAea3orkhImciF(Gp-Y0H0?QS34@bJ>0rlYgfoKH6i?(k3$X7uRp4N@{ zWsPXKWO8gb%r;zPs8+aSCA;K>*lxSAu3;u7jENyS4oXC#NX|->Ly}X9GDQwiRL+q@5+z9|mGpmHuj^XdQ18#D zKELn3$0KW=>%P~0-TPkmT6^ua_qF#)@lMfFva6J=q@hpi`ud41S5#sU~$~@ZUVe2LH`dZSY4~mGt26 zJypi+pg}9_TypKT>A_08T5-_6(?R==gI0E$%w72m=y#Rn1o%si4x*NhshbOVXGZm1 zyb?aO6+$Fp;B zrd-COs+<|OS>4JN>ZY&fKRh=#eLc@-`{pe>!Bc)|IFt)Hr=K4k}dQFNX=y{i0(4(%fpp&0J zDCq51GU%4&S*Z1bmW`Lqe_x)3saNKr_Mt1XaMM+}sM_%Bqj9|L=~}jw0qZDV^`oEI zEwdJ;N(=I4{PVJ*eD1YmoQ`m*Evo|iKleKCD(M6F$TBP6V@nC}h_ohqDt#4mSYjU!f+Q?28M_n)BE2lrkDi;zw+8Y!U-d))KzV`Vg zPWpf!l|Jw@s>Xb*0YM1-PbriiKyk-^9LTIa~tO(r>%n@ z8R0j|#ZT0`O>&WQzk_{LuNy@!{-7E)mF?W3;!fyaMb0Y!ZuX~BN3|nYWMQL?`42K6 z?usm2)GQaZ&t8#*zRhe#?VX|zxw1WU8Nb##qhw0g8m)8k2zh@*ru3?2Hl?fIY*V_# zs-%yjdIPi~ZHC zNPc&%upqsMCcmi->z*23g)csbb1=TVHQrOhtH_?Ja+mHYE$uDp0#iYLF6#5FiQ!e` zWF0k+ca~PSGrl3G2=DQik;|LQ9w=>Bg86i<7GgbVs+${xOk(=?k+V@sg*Qr$R-@q?X6_2GfSj?mm++`ZVzmgi_Au2^cjGS z{>W-o?_ZIH9X3UF*;009p6twLS7f1CQG8Ore46f>5?e~O9H}O!kaa}|oIB%^+jXX@=C@QzI>tu83%!zH| z&hX5Rm$dnG2dWlV=zyHV5>}(5v>@lOpNj1q*0!C5`HOQ{Jaa3a%i_sfYnF~w#;}ZP z@=EY7Yo3F8$?`1pYnQ990jIM0zc?`VpUBd!?V1<2Dx>+U9vZ)Lo~>*b9~!^%&^WO} zE-(7E^m0Rs<{HWrHR zzaP(1>pROONpT@YkPRP_xv7(W^kFjTpLob7{Xcp&anSWqh5HPnUaF3q_U-W~L~)Y#p5?w#+F)-^1hv$FD4IHAjoL*fOUGV_BSdSdO>E%RB^MGLdr3)UBiJ=p$)_9#@6J+|xrNi@5$miWH)}39plwCJas>wY4{gHT{ zYCHX`oxxH;+Q}}9uTGX((WJQO3l_=bZ8Slne=J2ZdFyqx$y?l2`gq{%>QGoJ@4R$K zPp9(vIx>33-FFzzxcfM={k!I(KC>bB9VR!Adv%K^ihkzESpdr zIjzx+6`FRJVcsRH3h;PUxewK+yPVc0%I~_PC*KNxS1RdH+%-`j6o1ZJhT_ym?PW^o zqcSEVS7c$b)u|*uu{&!;7Un#fi)vfvR{~zqt$&swsj{FFHp@nOTeXpu9VuJMa2@)X z4cDN@{$jW~HovA_fqQLwn076yI9#*zUH(~od;ZPG^r%x^&_iF4s1`k*%lG_@eRW*Z z-}k?YiVA|Ff=G#!UI%!Ud5$OO*l`aU`G8SfBSs9({VV2!;ZnXv|V$d&Mt|WFSunuF^`}{_N8wl&4(ut<*a= zsSzDj)~8tmU=kHW@BYIRB<}%E?BzX&wbub4KhMi6^2z##Gw4e`vCDO77yX1^6@PL> zb|%B$Sm!x&c=z(4OKdseO4ZYQVQ`zw-RQe3lql}O8>8%>*oF;HpubMz} z@OueT)NfY~bovjYbr$f~h>F;R*;gs$1D)|!YY~=U@(U8QY&$c1EqCB&qvkm_I$B*x zoJg6GO|`b_(`0mG)xbSwyTH{b+}2a$v{1)jSM|$tsJ`CYz-W`S&~%vsL}mh+PIF5g zM|i4GH%ZNq#zqdGMgn76@1faBY2=}K=K6f}%3x2f%<8j5@hfL#yL29Y3B}(BavLID z%lWp{9cq)62gD+>sYAAFT`mcucb%$LUA(w>_tK4MLu#t_?C|S!sI~Rk*z2L6d zHs5B`5Ti%yp4KrUs#}GaD*y3zWPx9Xbv1InR26GXsy3F^56$72zvtJ;bqg2RNULsvYdfSJ2>z-MA z*737fdyW47{E_-9#wOWqMxKk~4G>#Tt0}wPJ@^|dp~5YDwnSR=4wu&-%TteY8Ozgr zb9)Z}4a2CCaV>silq}ermFFaWbG`75tMBg)&^+!2q(oSuN5if>m&P-c8zU(k4x;Vq z3|g~H0Uy{i)EeO8kYuv+)iwQ1Tw?T9&~Q2DjN%($iC&$L$t!vl!WAF-vj=PRwtFl=2qvH5b>`&L}DrYcFD9mVc9mp7mSDX3naJc zq-7Xl%2mw7&q?Z|hs#6nDA%`TL1xe)RK4a8$FeFxbm8{gJiP>@tmz}4%drC%N7?KH zv}@Qsaxp|FIbHPhZt$_SoyBK>lSm!858ds!z2@H-Sv_^ATf6&o;ppP#Av-bfqk2&u z$?lA&LY$l#ut$AbTM^k;Ay6H)GIH$huU#E=X&F)64CyQOV^>m>tZ+V27CA30n-k-s zEd^!zxcoik%kc3oY>Ql?-0>v$mpW8SiS#?n>4dJxrLmmW+nJ2q^_@cP2(4|^tVeI5 zY?2m@1JI2uPLKBjG=~rYOu63`Z3gw%a8oS13q2sH@5qs^j3MEDAi8L48dxS-^=RX)3~#rX|I zyIdz%(?so3cUU$m)oWdkck_9irkl(DQe6&%+E&|_9i}tGQA`>2gfIuzxV2Bs=M3Qr z;f=e`^ce$D?n@-oiO&5CBTc=E;0WJU>Zn%l*dCC_*Ev!&lVfNJqtL%q!-!={{w<BRI zNxxcAMpTtcT_4=Cs@bFDe9cHC5Op0jEm+g0R6 zSfKGYDbS=r2r*?3G;WB?VxdszujS5;q4j#g_I?ZEXo@>&V#4;{b-K3CrXc-Hij1nc zXg3<`SPX5acsVp28l8eXb?v!F0~jaF^EKTg0(Effa;2)!P~2dP(L1MwZOR^h8WGez zGUVvP;>@ptGb_upVlEFa&2nL1PdE@F>UPOPJxBW6%crN=7Q!`e1~D{AS$ZlIv)w-b z2d{@%=V5+4UsNMLP7Epq{L?Z4j8b@-i_|Uj zHpc_bMtB2$g_D1?Y6x_jG{1EqS!iWzG(B16K|L6hq3d^ql-UnVNIX+WFap!vMu5Pi zx1Y99Oqw!fNi6QG`+(c-6HNMALyD5+cBSebd{h^`sr#DwTmw=#hzaJ~%7_f+*Cn)Z z1fRS8+JW*a^!zl6?dK~CdB78D%CX2U%A&<~HOF70|oqqjk*&SrM3g^%MUdb^Y9Y#COe& zA8IQy0S`#e)t6(dF;&Ivk>-I&)!6fEq>De-YVl-)@r(L!n;su;?eE&u!6px2)j>Rf z>wzIcLKS3i)2(6(-|^dj*-;$xYFQqhe)(};DV*Q}Cp<$MbzFa#_Fb9LA6SH?(O}#I z3CzdaEl%Sq1iwael6vixR`KWbeqgZs%VqO1Ht3vc$M|za3>o+U%@K_drGXFqgX%Zg zm~(CIg3>}MR^!lRi0UNh+D#A0$u4C^0qm`jhV0AIdgGY6=QIB%tyFS_6+)na}lQ~Bh5H5zdI0D5@efK45;Q#g3 ze4c8JjF%>IJTIUF{UVG3+O z2T6rjJl(O9dsHaXXgLFX-&GSRnbc`m|}H{g#j){}AJPg*}$-(0hyK{7DI z*#2CNrIl*AYSq@rKrhj;vH%xxvcpcZSh834Z*?g1%w0U(!-Zu0Mh;+K=k~4mg|fNl zdS1XsQ$-tgeTI|+hK@DWg+ZYz7Z2x1_lkE+Oy8qM!c&Wxqw7@co1ER4^zN8D7u(0IB!eZ8lyvvJupREr{z z(lLT0Sk-#MRPdW7Anm>dbHJ48OPE#}^PZhUU7;i7U7GA5X+%Eb!f2M!ds$498cEH2 z8MYqx3w_u_XILYfK1__gSK|Dy5Ugpc42bP()-drw7?mCbIn@ zuQM#2s7{Ks+ufGV(Vd(wfu$qcH`z{SkRLW5FQZYi;MT?eK2p#$E`qP<&JaD)SJ?iCF?14z& zgqPv?9{VYo1iEDf81Mf!x8PE|X4a{S;Uq1V+SDrxTy;hSuadp3sTSQvvHKd|%e>eV zzaCiMy-gNe3$q$$n+ZoHV+yI`>esqtT?^i9SVai9Bj<)v&h?MIW+#tT;|o{8_UooI zV>}IzLg^BK=Cy6f??PrnO%V-7m3G(f0`=#gDANgwRAyrxPKI9!wVU*hUg}z*x$GbZ z7KPM4iGz?9mTN$aDE2p*{3gMVy&T7yx4sUnqzZ3V>}txU{sr+>ceU@1#*B&cIw}jc ze&^eNlJ>lZrRTq6kiXg=N)#dx_C`$m&ogy{r-@nxuZToKASvj0L%UIoR1Mo68yOcrq|XpJ@Y(@TJ(Xyn2Xl z_=UcvCorX;q{T{46KdD{H(4L%yDTbFU!e*YMF2@N-Dv(fbOd5Vups^91^9)*ypV|l z5KDL1wpQ;WI6E&TmEPZDx8gfnWXO7(BH2Q$8t=R7xZcjoQdyitC}KX(eh81r;d@DH zvDQ}tCn7=|#_PNCWarUAfKf;hZ&Vvl=j9T88sXDzwE4=f=AnzGKgk$f=5^Gs>F>uU zaUbUXWf;&i3xNk5Hhd2AWwTz0V`%`YmZV^X2sd zc?mwR%%g$$-o}DTTFO$Q;jtvwVPbC!`L*@FL59(a<^$7w_uCZn(4@KvvfWcnUIvRq z$t1fZH(y6_yMG8#H6Trze#*vlxs8#@7HY6qT_?O*!iBF?^IE(ehJ*)XEvQ!6#?>Tq zk~UrXy96KIjd&8=1Ny4cD~P>o>t@swl;{V$G^G^XrP};pgH(;Fb<5G(9Y)KnBbda6 zh}TDU#o5)kwjLhhqX>}k%AD-wPn_=_0>#|yv$A6wce*2;O;-1c>K+=eQs{U9H$V9& zh}q{C*FyUKiS>;JSWkZfkc#wht@GH^NU6nv{BnH%wtIyD4jn=~FL^s%O0B)V!psTE z_ym7!L-b(h&SFu^qK#qBFm=L7Z{a$RSY(4HF~xX~4l)nsL0mZkxkv#o4sJeNLJT#dyVD3Tj33Lt%I@HY6v(6y{J3telbuQ9EQ zLEUG22>|JM*#xFRej0CUI_>LgoH_SKaokpmx`+=r5o?g?U02C~iwT_* zJG>8uQCC_a|59QG*Ej5hw5KVorNR&Q{jcxs7Dr0ZbS;APe1kl+k1rp17fa6m&W#8~ zvm%DQ#%xo=2S5|kiuR2*GAAClNgw9`if*S^2|5hJNB6an!d7T{~ zFxX(bsD}8Oq3t)8jQayR&yHyBdTk$Az7A4iFPtdKpVQXOwEGn`HLb&%q}sVRgy(ArEO* zJ)L<~%ef_4ZuVBXUOUf5@Qt=NzNXF(B+u^*ww`M#E^t;1i0X9f&%b&35h;?p{F=In z=(O>flRn=m;8M@@C8>RGXB>Zb#>wnr$WFoV`TNTPPt3-Z9D!C+)tBP>I#HHd<;_SQ zHgScgKb@ngnlHP+;tKvd-3da2Awl`ZDqOy|`}D2-AY%6TTJqJRj{2IwFn zV&|VInCA@Lopp8yJt-*k+xXg2jtQzUSWh8$XKTwlb9B^eHZ#rlpowH7r)}xj&y((B zYpvFNDvk(TgToFDAuixh!T{4l57?7tgtYFS<0x0h5yE3IgS=tyt%(~WokaO(Bdsf` zm;bfl-FZj>@zwcdaO3!R%0BP4m{5>s#g-wwGlI4 z6u!z)(tYWPA+^*g)7q|LuV)>YTy&|_DY+^pk7ioIM<(RN8P>5u?z)g^VD|;fk5)tF zwac{*3JsEUc8SF5Y$prvjI(iGZ3~W4l)u{My4-H@yNfwnIC)i8d9z)LwInS?)|k2T z51p0KHO<_3#T-FD=flVU+)1e~8_#q2rO!E2&&g`5saFOTD+;3Ge>7a8-62zk@B0V! zGZYO2PR8B%a)Ez1D88wTax&Q#sY!kFTXzkVZGL2zUdes_Ez(pjG}1w|&eq4gMOqOS z$+@muK9%)qt!#wnBcoZw%H~|-&QP-N)sfXrd;JGteu1#n9KISLwBPNXEVp!V16vE zl2!HAJ*1z&)JZ{7*KeP9g!Tnw%98w&nrtdo2xMOGK~q{ysR>^-S`5dkg9otqTsVhC&^-YHE6pLo~r8YM^TCwHOFG1m@jI|~ko=^_S$-#8;z!xyV^l{w2f~*K z{K@&wLDMxa_9S7$GC$X0T)Lq&&`~h9Rh;zryKAlU;2P%W?<=dgwzu!?<7}bKf#pU1 zlo!Nx#WzI^Win-cguN=;h79eKO3BwruH=o43}wHbhH^%ULdY9B#5-izEslnl0N+j> z4GFB~o(?#%O9g`4A%kzmBx-Yt!KUFDpQl`_dto3gt;|Iv(Q47olW*bpeepMI)xzH$ zC-Xqg;js=xYZ%HqVVPlfWm;n`_4|u`EY!Q$)8*G=;Z?S@RE?tUt^G#-0@Vp^ zoei8D46o@>dK3sZvKina-n&!(hI-{~bVWG@!}nd0&d0KI#&Y%39E%+_UiobFWz zSbL;PbF=zK&*5^N&=5`AqAYo9yxTy8_%kf((|(2iI$guEENH^;YD%MYk!xICdn?<% zY#Q-A6BWh9t0(OCzLgcoxn#ty`$2>AU#9=vsjoox zB_ka2y=I%L6+@-x8w^f~5bBOAqk3CTFq6mmT7WKOA1`#grSddM@*IIQHS8nZ;2kw&D@_K=JaDW@xM|@T{I5V}K~JY`2CV z0guMz^AZU^)|m~Hn$l2eRm29;T*Nwz#ub?=)?Y>GdU_@|aw{bX@vAP~;aSRSi;qHTRMiNy{0@nEAl+1+&VVX#!8rFxx`I9?G?0FRudze zRIv$bvX*VJ&VSWTMX{?$F>X{jza$i;Sf1pF67y;iO!20>H3$$liy4ZOSFIe0?JG9< zJVqugx4v~Qv}q(ES7>|l)Ei|3{n=si+F$tMS?n^XQ+tPATsHVOBBtv7v$=3{V5Hp_ zg%xoNK_g=tk@I4vr$Y&y>ldfR%r1t8x5%sC;^&1<6D5=UYLb549a4!MQSnTK;1o+d z0!{iI`8Bcp^@K7BRDENUz|f&Tvo)dX^I+5PHhM8b-?eJo+O^U#f#FhE4Ncn4s@5O| zys2alOnFBiXyTsqY18WXbS823T*H{deNXOv;Au(+Fagq0WOGv zJ!o(XTPPFHGYb~)=?@WJ|2BT9cB`Qiuq4Q7;LhQAt^0u2{(@i)v_a}si@wXLl-3pF zQ;}X%^*bAVMA32DesJtNextSS+?s7{JSMQB2A1si7zByGJN(Am`iz}JL8>!`P%=`i z3R6jPgPg?4kWL*9mDS}BS6$$W2?k|hvdr3lL z039PA>y>65IoEgDrk_$0j^Tqh)&{hM!x6W9`>AtU$==^e51ta+JnelYVaOoS%M7^f z1=NywMbL9@?Zj9)h}XDD!{YB23SKueI6hl$s(m=FF#HpITgQ%(4%KyWe1^+oU5SqF z(A#a1C@uyxw-y%!udrCymp{;+>Fa zV4!KDyK7(!6Jm`OJ#&9$;?AUFUE&8i4614=-DwjQn}5d@YdFD<Y}{9j#kJPe4WJlf!pkjbIc* zH|Pc0_CJ!Z-t zgSSVF!Cko9T|t7XP0-%8<^LXHym4J3Xfw#TSZ={XEM_*tS2jw<^%IrT@2O&@wD8IQ zJZvtS#FwywTnRP-`$1`3MAFIH;yEk4X^IHYa*j12?Fg7sPe62K>BV(63EZq%U~;*< zH3|oGHiG90d|oJ}&91wsxMB$xX^bPq-LfhKw^#|ffNn8@p$waO8`NodPu%lvUQ`SZrBc_#T4;moN(sy~b%+#A+dAHAWZ#?ZunlG(a zT*LU83EbsM${0>gechdBJz)O;_>?%!2j2Q~H2{FmY+W!haak` z-HNx@2KR&Ku`rMkec)AlF`*QBb5goO+y*85cJ(>++(bLg;Vi|wm4#cO!9J^JdX{!-W7eV zj@d>3PlPd_L$RFxOGgt@M*DFci)FVCKAyWLx8YcjvpBo5lmDatsubrURNlKC9@I`< zm`Tp}UpYz^2y{x_&YFJz71kl?+xU-GZLh55cE0a3S<}$%Xsu_@0{&4#aNtVHsh(v9<@Fp=RcH8dosgzPA`qiyy5XS6&@gRou15SaM{}RKXj+E zGM}UIE>5!Ms4~~56uj3vtHCxI!48-yT1OLcc z9Yr%{y)9yAIAYdi*YrxfiaC0*3CuEJboM8_MiD`|E|MN7kq*blvHKIh?PVtr2L|L2 z^Zb~DE1Pk9A4w3uG<`(LrukZKLHXfhVir0r(btNxS}m_-k!45w_s&Bxz19d@yT>o@ zzm{2NlZj@k(q`V>#rQ&>|E_WS#v6LDx^0pA4GC+}!7jZ@zNvIOVAC&)>3%Aq%nZ=E zNR?iwAm)bdz=?TanZ?Rx51X|pO_`fBl$rOLz3mMjL)^Hdq9I%h@0_%KyzoFBo1f`t zOu0nklEvF?gad-f4pCiEl2D`obwqanE~2zXCd}*Wzz@K8Olu6iJ1j%)#+CXShJ_+!I&-s+#(a%`!#bK z?*`tVJ~$8XkEa%Cyb&?0*5HuARX^~P?4(&mmV}=aZtLx2eTu?UO4(qKni%A-9aFLS zKRYXS7b33TXpT5sf548c))|p-z8Sl=N3ENp>n}YkwtqvVrK~fn4M)7AH;MQ z?Zu1QIFrrnfx7|uYMVdLRDZM|HLo+C{P9fJd@uG%HFkc?@g4}vV@WuV4Yj0*!bm*B5|Q^Dg!b6G!;L<*<%q0*Z1W{HZo|U3l0ali}O?{$BXRt5yP1l@~R{LB;cJ}>dWakU}HEg;^ z@FF$*HDJwD490(XmX7S9{z7;iFVd~*0}+XE!ZxqJMCLb2Lc&{M^Plc5j)nx&op$vM zN0xG?TbP@Qwa4O}JI(0;C}gEi1);wCS9~mEoRP|#6fZ|G%+pQ(OwaEp+c!CDyX*XW zsq09mOZ!?kE3MMVwO;2RweAgnWgDQ_?e$){k3}wAi8e-1Bf09TA;R;|O^_IRTOMCOS79xpe>wmoN0{-S`VF&*4 z&%y*u7MD=P%5d~Hg|HS$IG9X<~$-$)J^NGU5zPd6Zek&XYawCN^9%E0|}VjF@4?Mw_|=Ebgme& z&Ui1nz;%E=tEh^f<>21@1hpyu{BUOHYoF2?#V;J~n4Kl?1x0O?^HHBa<>CQ%5c21a z`Mdc!>Mvy1sUqEFNB!%J#`zQ(nyE^ATCIWs)s4SFHt zpl;SA)#=D-YO|-;IU*5i*o5^*+nb()tbTHVxg=y$A9Vf04(<_VY#P-@4Ib57k{WLM z4oV_(2vZ6C6gwPAYGRD-RL#V$TSYo2-74e=EBf*s9U5-wue2e^>=Ea?(E zg(>O&S0DBS3C|KFJ>IT_(gzeWxQ3W)8V=&eSE^i0utH<%_u4nzEeYGPQUhEUBUZ#_S11{i z3ys>iqD`IkJJ;BS^=E3MNqCl>BgHHKTHzMo7tgNuHeLguKV6TeEeV6Mvx8h=7_cR2 z*XAEfI)=^j^*apMT|A>7O$!z79c3p#rmF}>(s^rdL$(ybM=rf}C z;Yw!D$3r6bCEe+uon*F;))@Eio+o2|X}IKLdUz3-uaB3#&Qb?-F3v*Qq$$5Vn3kh7 zV>*ZMcG|k2zowa~KCx3A;w}f??k@3NXNb8XcDwOQEr+i77t+|nW;v$#<_ZTC8J1c3 z(1imRO}KN0a+jM&WmncMINq{0`pPQ}qx0(~oRCHu$iM+KZHDK;g?pUs9w~K5}ib!4fsAwQlz&wHW3KF|CRKb_He&ms zp0sfR@d3R)9>TFsYf}DYaJh$N+JAhWi}~e(6N5)VS9#1C<2OuSrDg%S10=^ zP@2(*D5Z7#;3Y-pLzgn%&=`yQ8Zwk;b=rVt%apWn(b4{cX=CgP&?SfWr=UwAZ@2Dh z5t@qv_alZQZ z9w=T(7ebx~FgR%zR;T!d5Wkp`N9MTg6P{;bWGA~;y%r0PMq=>cb?-m%7grMe{Lm}9 z%{Z-l#iE2)8sHMo8_I$b>MOXithjGb<+jflaX|JSyUdDcz{p79q?G8?l4Q|$hU5Jq z^bZrO*pj@GukM`WW!J9NZ zGJoRT%-hM2sOJsET9{}UA9Sd8SbA_L89RC$JiNvOFpi6EMY37Nvs9IAE0TRd{}hpK z>XufK2+z%$^+$V{s4>-hhnqA>Ugt}~scQL-R=v(OU!}y`s*2e>%S?xv1RV4q|Galj z=GiPQfz$SF@i3_`+NLsz!6$r^+lv51vU|p|lg6-jz$!DV(NQbtjAb;G#jsx_X@zRj zy@DOd2?x@3QyGg)w~PrcRA<}&=c#cyG(_^W0%HNJ0-eS)EfFuYhN~$9?7DX$z}>;3}77Alsk)P z1EzJ-BE+zwXHe=gw*#tX1?*o>mvBt4Bo1XmhI;y0M_bjelJ}D?P7X{q-#3JQ6qhIi zWj%Vk$lQLPmPLpabo7p0E#*U2_<}_&MxG9*1pbD!Fa-Z7LIt21FOoE&&$F0y@#@lt z8|jP3#EfcL^msKZ7)1o(%3{c1mmsF6)4X`Cge)iK&NM0~=J`HXqHOlkdu*HdqFu8gqe;`-pi`%msEGj6lWv`HIRC@*UxV7#3c zI2$k?TwyIze`>kZs1^^+iFSOET^06jo>L z$QF{FMQ0YfRVNsgy46I?RUGY$c<&hgr(_XPvJ%)cIcbNTCHm>5b$j5v!68*BZ}dx# zc#}k&#nn^)vsp4lNtz>0(Bh66#XM@qRA~Me^%CKQzUvP+p$47bn10+79`Ga`TdpJmYftekY%*x|iG!+;65O{&t<%+OW|A}6)bOz#rY`!Ay zA6f7dGOyShyxQ{!cEGjbjTgP{1GHhIDQW)EIeR>WuVtldNDjm$rZc;(FJ8EYP++qM zSfk-;sr_dG_W*x3(rKde_xM|1t9kPIrYgkoTzZ8XTa)awUDu05Om4n8IDuc8-7|_67ozX7x{bf-~Gfqy5$v(!3UHOpVmu*b} zHBrVosQ9kR2LQ13fZFqae%pel}i5@ZdnGO&h5jY2Q= z*Pc4B-8iq=IIn5{CsEBn`uOE<|4CGnm8WX@7V2-fF02|ip3J^%c;DV}c60RV7(q~3 z9#~0kqJL}TaG;WAUGv@_eC;aGSH5e?Zlo9E+|U`N%c0-x|4l-4$X%@UOyFj;%lJAe zSkG|<7bV`tqk=ft%@e1&2yA!Cr)cHl{pY-Q zybDr(KEsK^gL5r>;Zde|oh$tBsxmz8IbM?9Vd(QmKg&mrrYITV9Rqzp$aCYjhIrnk zBKZ-ocqt(B+_=Mx3f*{;uZ*#OnQ%>DGSuk-Z<@x#*YXR6#5`GkpVGST;~s!RB36CT zFOBIN6F%NcLNQ1teh3QI?R%(1k<_;>bn5Z)RBT;@iO+9V#%BbTR3L;*H zi8~S!`0<#o$6JSym#U&7Hj@Me9cUiJKnHk1N$~a}57))oLF0NPY znAmme;}k#tZErM?S58&?2NlWaTxPsYRqNdGQk%1#hYGg)1#1JOOr^H@drVb(@TN?W z$iMtd1i$^XMfoUEE^K-xq5*>Oab}ps#B}%6vTKPY#VGs;ZSZL3gg+Navyp0?o{?yP zXasojHpWcq_$zo;L$aWb=dTS7@fJt6#is?FEcOmEhDs$V3k?Ys?Ssi0Z>qIuy&@_& zYvB-PeYUvw#mE-Ehw9i?Dbt5pKpvqIA}IHBSHs;&ax?68Z@X-pwOJ`hhD?wRAWOm($~XDj0e zcWwc!<5HDFqmGS;LfSgGo0zU;xLa#~`jPnUa&1T?Jf=qN3i} zvF;|vISVoI+q=i$fA;fq4H{DEj>?u4w=I38dg9+%^;pPOuII#0#q8hanmlkHb6v#} z$r>9$^v;W zi|Iwhk^nzYrp92nrmjZm`5?cxp}^p8E~=c;dH%K?GZB~;Y>J;s>PnVgvs4KE=#I80 z|DdXqw_hlEWm3`;tAI8^_5WuOPhlPBE$^*L@zh|1w`4mA;{9(D64{DaX~Wi@WDOs9 z$c=AnL3h-ZooIt1slUDxO>ng7IEg|@vQvAXNjCCHQ8r)e=V1fDWN>VuR-l}olKXEf z4Kw`cJpz^>qpKlXzW9@XM1^J5W~FT9Pw6Jtj}xR_SbU5NX2f19WDP6gaPmu>9+c9pi`OQ3#CO!PCG@Adgge~nq~q?;eBR3p{a zasb@I!i8V4sgBD`$5|eB}7;63$@=emtRDoam*1p84+yR_!NXWwuP|LcVg{ z_aHYbEG;}-zAs4-s5~rBit_`1p`19!t5$j!#k@9@69Bwv#T0vqe#zf;L4{FUVojd7 zGP(!nE0=&r73t4tVfDk@Dd2HI95jW*99=%Kyxp$&Y--Vb<)rhSAD)LH>MD7Ms*#bz zt72u~w^2~%F!w-s)P}yO3Z<1^mBxiv0=$DwroUQpjVOYO@qi3S#m3NI?U);_S?U{a zdhdmvcP6F=vc-hwk$M*uys9NPlRA%IUUI+Lmw;A+_0&H5oW;ZG*!=seZ&WFl7?NpgLHA^H!FnuEMGh-0CmO|D zPNz{=9SP4zX?60JZ?Mq-OBPDq4p`ZBFO}}W#rvy=G%wDg;ghTc_(oL`*F?Yxpo;y~ zStZfcq3~=r&EzlbagatWq{RW&1o*`pDEp!ufRAn$xyCt|#iS=?dUEiz--L&7yOeugKSlEsYag>mduARX?56m?7!}x%m7(S3wYp-UM8>Mn;=?~cCoF^wf% zu-?Kr^@kUwCj8;AJ8=)z3z)P5!Li(#YvZ0aZ4f3cma%|NvQnxH8es813lGj*pX&dJ zowi&gD-}v502WKGiv2#60TvJOvhZYGH_uV)OS{{-KB=m1s}fbfH`C6NFi9Udw__lE zJZwp-sUNWH_?y&ExoG%*Elm-r3)%X&&d8tZQ~n>RvgYDGNe_iXOIf#}$Vy!YSUD`up<5Q6WaYEzG=3;t zfaN4vc~QEAUpEelC%8P2hfr?_mlSAmWnukzf+96ZuLrljjv_0k<14C8UIUcnhcM{@ z1jY1*aj^f2#$7}lyd$O3|CfPpsG}vxfk^+J5DT7!rvGSlaYd7rO6eAnC4UC3S^Wlz z;E%)qwR7BZn5=X*4L=|OGt~GlaC7}Jzq4rTN+vbZk;c$pBk3OZTTMUxIJAz@V$byY zUTv@mws(*#Aip<5;z~8}%Slb#0+{5pj$&nY?2YVlbHp!xg=>B;_m(6R1sSHGiN*TK741yus!UXjR2eC~Se-StOmwO8)0Xk6iB z>HPhNh%3)p^XAd|0CT^|9#@WzsU7_jyycHBU2?vk`om!nOS%j&$JkcY;Nh{Os|D*= z@4s;`*8besG2_m}VkZHyWZCQL>3aUHjlrxn^m=M~vUz1mmrldx$H0*GvQd*6A)^4ggTIyjJ|hal+{I)8+fywF9j9k*69n%{0UNs-#`Zv-y0JEhPGPWNOQ$@N>=* zmhj8V)Y^N(eLxXdha8~RFFcl5e>qVjrB<5s*iTMPP;A6vTWx?#u;z-T)(ShpLfv_$ zNN1=QP$^O!vMn}9kF@X>a>Zy=_NFrU_25F+AxxmairD4y?KjZZ02hwk8J=G6NtFTT zS6eVCY{cNqQ5v4&T0%dS6O z_@(NY%$X-_IQ@)VSS>I)rpx&;nmIEb8fy+;+2^%uDz&f?ZD@v9;n+9n2eOiy zdLe#3{9E|H$7fz#vzq}g>>s_m16JJ_4e#&%;~A`(Lz|%lnl2wi6O%UHfWO;x(CI`Q zle{`LxekImSo0NBHFVNbqUc$_6qY3dE)*lNC#+D_Q9pEyPcAqi7V?NTMUdyA;b zHME1Yj)3sCbT(by2Y#{1^tYm_Tv#Qw8pj^NdxTHD!?EKiIY=MLEDX8(&rQ%I>@oZ; zjxE}EiQK)}4{1ZU%>`P?Dr&GdQkq6F{Rp=c_(Z(wQe8V z3_zV;Tw(fwFy;ycjCIl%uPV3pEbISc-480^SxK0tt!ZAXy?ullwKd1)o6BI-O+Xd? zkPbkDJ3@Wecj<=da>Uk1B{OXZNfTx-%z+lme7m%25T_e}V4;1WA(Rj6wBiE6;^8gZ z6m%y&MbzXP%HTJTP+?hej!6m`=otaq*75$X$y zA<$P9{E@HE!08wuu1~~vsrL`MHIKqtErJMeqeVZ?JF2C7)Md}9nz!7_>P## zbUmy{sJrKo!x8xZn&gR(|+R->XH`|NPd^u2V3 zNrDEN>saXPSIFDJZV}>pteDyHwD+lXkd;dWu1#M}_1sHdsqRas(|E&=hPSN1D}QHs z=X9v|W_Z8KRiV{BG;jq)uV`nQS+UC3^~);I<5a)l#fCr{Y`WLZ>bc9^8)+(CX=tlz zLZv}RePBR6>bYITK?j)w4p@VV#?!7Lsdg1d9X1UruFu)t=1$wp%|IIiZciPTY(|bV zZ%SXm%mv>#n;(8dB4la#kIh`yRLmQdr@6}L_Ktgh5>d*}B})fh?J0bvTym-JQ0LWu zC%Ib37jG3srS}AzOU`tcq~#R7v2x%M>PXH<9H)5!y@Og`t=`Cc(p;X6eU9$klhxps zciCx?H}f*Piv4fFysPFb;%faM`=6`1XjT)J!#ddgPc6*A7JTdoTdUPR&hCurJrjm` zsnx2dig7sNR~caxDn#+VIjRkc?#|1h6~k>i2ySJZeCphavOwd&@b=!pny>B-3JcpU zzJkEijqjS-szvznS}ky6C*ViepCwSRb;BKd3Cq_)2^2$XmbZ>Yy0X9xt+l(zXI4(3 z{?fb6&!1yGNkaL-Snj>H9{+gqf*_5VL<+D85 zdjL`U>Qe8S%ni_&yAv-8{67Byey6#@UpXh ziT3`h^=_$_VR9;X#h~}Z?rP2@Byrr(DYNwe0eil9`ulQjDxUT}_g-=Pm5+pRERgHP zyJ026b>Elo_HKh!1>v;beqWC6J<(akxsBY}cc(Imd`_v6axErx#Y5*~({o@U2vdH* zLKw8Oo$A+Ie4!xv8-h5th85`xF;1Mnj0|}Xe@y@2?rG_{n>=3n;tA~o0vVhK|6@a` zpna$W;lT{4i|vA6yY%nKl#puIMmTy;U*G@;ySg^4(LV4$Fo5wTY=pW0R;YTk*~xbN z7S^{L$EY8qJQ!emYR>8EtgSx!<0bM})_?->I%3d8Y&YZhqMukXjR%GwDyf#ty>0@O z35QJA@`AWNnJH30FfH4Pzciu8|z#Q=p)I$qe8P*D1@j@8*taratUACa)6jj%q5|nD|;y;1Ey|C;+ zxztEmMAEyjQJZy3G$LtT@<(84j}&T4C?X2g>!)jPv)Bn4292GIk|3jb+w2GUF|=_Y zp0`l3n~g7NZ*_ruK4Y8UNT=ULZyN>6ZvKvPL zH3S_y7c1z4HQ(I<<}XB+%#b6a`MtzebAkgR2K+R#UXdd5rK+)-`tJIQrLX9mqv06a zWpT|P{b;}Hl!u7g#zrC<0Ls};IY_+f_DvLeuX|PFyKfffY<{d|N&91O-CTx3f&AL8%&y}cVGO_)E>ik`N-p#+>eM&cut{;Dw`>6QSyoMfO zcf>3g$7mQl_3$g(>F9dA@6_-Qy=(#S&Qztj>4kvj?Ox3 znMt4cdlFMbt$w@u9`K`T8*{0(Z&zRWLanO8LHzx8)g3S#e7HUPk035OJFoAe@7Zvi z{7yU{!P5jJByA4aS2Ali2=;$E5#~>=fiZlJ#!2p$qM)WA&PT(w(FfZcvCZ(BQ>#De zhfHf4ufMo_ZsZ3-SMOmY%}(8`@#XECfB#WrI;+-i)dt-B`}<6 zi=*`J;U5tIGk8ubaigqS??_<@_u-2=Br{wuBe^raq9e=&U#K>7Ym;=$Ybh@5CMS?C z%$N`kL$ho$`WCZCUp*=6K->t{h@r{#RTOnJ-(FT#+Y|)7e3MtEKw)l zfmBg#(+%x&b3uTjbi;Xl?*A)j;r3Q{{JX(wYNRg_CrIgkL36LI<_|#X7B`O+QB%Vf zz@MkF=dYo6UWuE!W9hk{oX~_@Anr6QlB@O3T&&A-wID={u{{Om5CO~8&vX1lsxmi+ zAzs3mRT>~%!I(Vy9{1sRijse!Ug^Y6QbDec-f9-MjXixV^aZuek|$c55Wv!|@Ces! zdB7>6A826N(@$XY!m{PoFIs7p{MFt_0xKxxdxVDG;N_JF_nwD2aZ`?b|Js--Kx{Bv z9zxQ$At@hZ?uZPf zl(E3W4y|X(ki?geRkL|{cEFMaU^^tM_8wQMYWkF6hrXs1IqTv zJckTpO2JA-3P5T~5sw6k!#6JaT~f)K~Br^RTaEHdDq|G@BLZ z3w2@2)3><~PGuQ~U*eZN@3inbCJjkR%$9Ph`V~>t75R7#8wz*-@ELV0M60cs3wjZ0O&Y3uN;~B_g4^; zL^b;=H_LlF2+2D(F#?&k4t=}@)QR?q$&@r}mkg#D79W`j5z;qO>;phuU52avC4|rN zV7d%)c_<<0w#Z=a^ec{7ot9fh zOHh3z6?_3Xv^Fj?=+zb(>c83qCr&nfTP^D!{lsK(pv$_9|3~M^#4A51P9+Ob#zh5} z0DG`?jQU|4Zs&H$!R>&< zrgFvg4g3ch);=WgIy^Au-S<_IIa9?~ICHgc50sSdJov(26&^~~3)`ab#DA^v3p)94 z|JZ&rpU(kbt+5FY+r<7gjJEvH`_+a`babG+mr(cbc&g`P3Lop9KzF}5E}31b+S|tX zOiN8rv%Rg{V*eT@F>UcnNBQ~h&nV?qhtC7Hd-Y1i=aV0z&MFSroLwa}S^y3mAhdbv z!tGfzVSv!qk^l&8&vLuvmX4f!Zt$`U_g6TiP%C<>yZ>c&iyNwR_>n=u}x5`AUEFu9WNxqSr`K%I60-Q%d?`{NM6}iW_xNBv!L4XQVmg zgj%@s1O6?S-lQN$3BBZRr|X`7sr-25?W?{SC#So$HO|*Vkk`5C9~OJmrh6O87sUc; z!p@H5J{L!FLXpbXZ>2G=|2`~|18E(Bv=^-2`0~Z1Kw9D6a%6Lh^IiJ`4+<&DPzeVT zq5@Jz%IibF_Da4laLZ?h2zq}E zt0>mT6@Ihcu5iuD=2D~im6B^2=id}Vz*YTIsfLp$teUbl&o`R5mEx{i9!|Ww1Krb= zrcO_pNi#g01pV&Hhwl4q)U0?QVYI^N>;{KjD`()Vr{#CQEYkJC+yQuth{*Ji8Wj`X zCi5gU?#1W6)CAYhQMQlfOOtG$&A)o^3K(Wm-tqMdc6a2(uB~SF77=%1Wh?CfYogJC zZSqQxL>5Ge*} zgSwkyoeHMW$oH^C-hVCGvrd3D(Q|Bzl^Seonqh2M0w}3Olcz$B7T97yNu}ISj65$n zpL9P}hMtnHgi$>)Z@t^`f+3(zWDv_QdkJx$YqiGATJ;_xBrB#~{O+>@nglB8;g=_0 z1yvK-#hj|gkU~y%>~%o6$Xa*KY>aQ?$ zEp(Omy_B=C%js3q&e$FP^0jHQ?~@!(ri@v>w>DkP3OCPe6+!LIH1|;ac%Jpc1(h(| z@nH6n^ohH@ZFd*LixQyS;mAkO9=wCgomZqDT7vs=e`X*Ji3~5_+5GnndA8a z5ZN{Gh9hjR9hi7(+lBgew)epe9K5BBvk(33D^rJlqIfW@Ppo*Ty8fLoCGD0 z@X!kCryZeX)Q;oz-vn@ytB#i$nF6Z$mD(|@iFX4my_5_FAwT6pi{a4;EUQt^9b^{9 zS5SpH0`*xR>`>+%tc@8BvZzgX#}TJ*%N?%FFfK1i&rDgxZBByH3g){p2wkrPnFGQF zns>T3N{u7uE9t_Lq{xt7PHC@=SpuMAHP&$2v(rMMI_j+JP} z_LYD{0GH>k-5_NG(+zu=vq@!ppTc-O=zOrF@nS9rln5k{1y}?7m7FE1t{=5GD=ENo>66JRf}UP`h{sMsJTyQ$>~#`=7|%U9KQTIPPsD;S=)H0*)3@Ow zvmy0S)K9{kT3=DvZ~!N5jgTCMAec_{yB%*KuZelBV^3%XB934FmT*Wx<>87}&A1u3 zm*S5b-S%BW`W)}uixvd$i`ku?jAKbvkoj9`;VjG-v{-Jre(xq4mpP$ zHcwWp8`q=yu7s}CV6SthHp*$WYfj|4mAHnXLFHTt2lY6W1iZ?Cm4kY9ujTcSu;RVzJ$ml(aOm+lrZclDcKJT?!Z5Q_<_m1?O z_DOBox2UwmTs~A3r`s)IE?V1dU=FSANqK7V{bbAdEWr5Dz|$R^PfXaNFOyzg_LSio zW}-B5*G*Yo+nvx)cAAGcUI;aZ&Zk^S+fGPyO_eqLFGeZF(Y)W<)Y0^=eeqw-5avap z6S_>p{JAXY^1Mo|2FFX1*#_msYuT9c{E|$8aPvy77)LYyEz4&~tb@jH3;b{jERCe}-M zv?9ypGj<1t6+;o>4Hbf;1|w*&<@4*ZF#Gb#;M{*37efKnF&_H~So96h&#BOC`12ziF&N-uR*vikCqj(e zD+%*9#TI=cz9Uf-^~r*%Q(+m#mAY#uOEmEd$=fH3Zf66-&iA&QHmL80cp6TaNy}Fy zVn^9OFg)+txDHOjmPPMM@LTWhis8WN+sI5kimYKl1AwV!-BIC9H}F-&E!;75?v%Uh$UYwqdVdq7h796{jyBgb`4jWk~7!H6^7eIV~ZT~|*gw5-E zO(PRnCcc7*5j~3f@}QZemws1UCGd0$#{lBfG9Lu+A`Is$`XJJbyoniyU=&gy+B8hO;LejoKPh3RDBfN_#2b+; zZQ7YroSiMbFAoa*@Wp2TWsPTU{>uxHrV)t89?a+4I7YOT`5OJi(~&-knCajO@ZKh( z4r@aCR_WjfU@=0s;bBq*IKmk&>dgxEg~Em$vW;7ElT>@XSu-`+of6QCucxlV8s!n{hw`seG?Y?vE>h%`&FB>fC8@B%88hrUze_Cs0 zW?_wqiQqf0aj|dSRbalr{kF%{uE>`#`?v?u%sf%d_28id5_a2?vFHX%&<85OTAAI} zJUlvkAd2+|^+c9)8Q!T8nn3h8gJGQ`TWBWZDb#G0k;-oM&cP|NOy}?&ALtA#5cNoi zV+wCSady6vLY};yNixQ3reRGjHR3lfTWUt#^}&MxQIM?eJ3{smMKe=s5<)ofQ5jId z3@gNm7{`mvFf+#sUlYAm^TT?D2*b6sLm=3rw}0BpTl_?^xL#f$PHnrzv!ix7^UUBa zXX{@;yaWu4@Ks5Zs$FB3-8I@5ulW}VXWM|a!tjyQV-6ri^;ilu2@{;F@D`cSXowdS zfuR-bpF1(Xph*pL5Bn%l4PMYCV`k|uu)7bkaHbk>oG4pNOld%FX@)4A09_SCs^Ty84N+D zQ3L9k8^;3mWRl~6!jXc6;YNtimqf2^O`VW4QWtZzvqB={jDogP+dOze)UK;Mad?YH zeGbHH=Y%_6BiZd_m(&$#k~l8E@`yKAsdH#0(^znZRfm)mXZ6;^Tndt;b{z`Mf_NQm zvcUs#w2$gitCaRlcT0`9%><&C2so*V(n!B6-;iOIKrm3v``Tl8c!&}2?RLmR)Ag!I zbt?86z6z%<-{ok;S5Y9~^tLT2BMaRcG?+c~j_DM%-1_Dl$Bk;@%B$&da{KYH)T|5jD3>*zQp^7# zL_Dyc#g3M-eA3x0YdSKOn8yvcIJCI0hW|--wr^5<{*5~uA=i5&dqdEwP?!VNM_g9l zN20oo_we`$3n^%R?XW%HY4}9lQt|hGhSgC21IwP@`eu5%EGX#>z1zA+^5Hs{JI&gp|f&oa=8BuTJJ06_ji@LC89rr z-%(k@w~u|p9}WCAw(Fhy2brLdKM@ahyKb(SbE_hLW%4JE1cgM$a_@DVa`~HQa7}IX zWAxWzWbQ-BsNc1OG%wLU1CFNtibhNK_qGFtXi+)byBLOFE}O?&jq!m-(9(r}l-!K| zEpPCyI@78TKFXo!AZ&LxStuyiq?`9^E>jRrGVz^%Ef6RTzG>VLm*=WD?D1%}>z$(@J zSV%|e`8f%0z3$Lw`(;8K?L@o(`NMbX0E(@BG}|cHw(GlfN^Rlh>enudTeN#%s1-Uo`Q?h0LaR?p*4jcODY%7W4V# zA^S1(Cv@Wv7uo^ty&S--+abJB=D2;<-C3%8&8vFH!-^)?_jPak`dcO^ z6gu|)u=_)J@zWrld?Wie;os1=OT9PW)x4*kT6-sw^YT+>%4}zR|F<_6zvTBmd++@F z)t%sjF(d2{{LnARo!VDjH9(C-O(-zWH`N)jzGbWFpPpd%f(=>32Dc z?6L2^Uie*kQ=*@(;EZt`XFJX*4fL-k+fR+0&Yo=h&K^TKt5x1P-IOrG9y4|RT?!s^ z!DEH9GkGOmta1m{I(_(|5{7bHI!YBk1si!C(9C)Ux7;zFifAzYc@P zW_VxDsMs6&ZyyKwY+sZ1Wii*H(e-b>BM$wLV>kYJf>+9jz8_&X|EYn;Iq-;l>+Ck} z&r>L&R{wkV%^WKca!l$d+uYBNLwHK7|`F$#bv#IbEC14u6*! z=LayeDF<^2C+#W{_fDYe&_UI=(@I98&s7X=%$RcrZ#sD%QWrd6L!jNA)AiFe`EK93 z8GE0+)C6l`A)^Cb;4a;{YT=|tjlG+WUzDyDUw68oqvy75Mp52ec6!18NI(P2%O~G& z?}R7}hC84BwkILM;ZUcV!@Hh@32M}_@maH)8jXI~X9dI;|9YwPZ66dG4g|dKN!Y6* zTsSCrXR&ammrcm1a|vD>&9&=z+js45kI0y9`8I`0Ror?*Z1teQI9KPlt;@K--{ef~ zi@J^XOMI3WVgW8Zfp!S#i*WsY-kzD``a9d6rv7*SP(7mYbrl9DI%kV~+m~~i@6nU9 zoNDK1XzKRM;`De?|K>%d)VeEJe|I~nI=}R96=>FI^rty}pLZ2Y8`=D>`~9`1U*Y^L z_E~;z#Z!rThWh!93cm=}t3iVXsf0I5xYnZPlY-w}D$EVT-zq$~^QVtgf3@m+3G&|5 z9lOQt45*s@HYDd0QkOYi=&*NN-S-vq?Qdt6^ce|_0zo$mnreUinWlL}p%}v*X8mD+>Z|ddbfs?cvMM4MkHbPQL{7 zv!!cp-0@ty7rW5rnZK5jwzxe68dkJzF}QXNELp=2r=Ovd&XtE+Oq}(@9!ftNH}iAY z)~&aZw!`l!_Z>QTcZ0Z}JNM&gdViKL6%_P`jG$?F!=}Lz%@#9OTC)7K~J~~zc_J}mMw{WnbL)ZhmoM*eR<4mf- zYVpJE*PBQhcVAs^-1etO=ChL9wtxzLA-E1yJoK);Xs$)u-|N3jw#CvmO&rTD)51$X zY*G+=Sot-AOR@i`?xU_{F^DS%Zs|lAiNo3#qmxUY;Pkl|D?(#pKyC|JHkg||CWU_1VmzvXbX3c6C?qkiW zZanx;Z0A+v!V8>OxhghR)8TOQM21S-KwX-VQn~7+eAIQPbqiC;f827C7QJ`cMGBMF zk#Gt;eU&m!>&UHD6Yj+_o|hZ{xX(4gC--DBH%Q{tDQ3a`kAuv7wUBmZ zp+QLBva0TytKy=ecWKRPUA)*?v@=zzOqCR;X{2jea>T~bY28u_HJCDD5$t1>R95qF zikUB3!q?;}$MHL*@(?9&aQVH{X2;~#ds%0__o>7o0u-YT?)&*RPqRZ~@sd`s22m9m zq?x=G;?eH@eWPz|9-dFh8tRH*9WH6k0Qq`VJuD>Og()V$X0u&p_k`60u! zUn4Zb=+9|h#-&ZngTtvCPa^ll%hD4&wnQ|K)1;%neak3S#g=P!9Jka>yjh{T2@9*q zW3ObLX_{cZQr)~+m>@wUXzo^y3%Ef^>k!p4RgQDNg{#JQx{NI)Wmj)$zP!hz5o`qMhx-^1e2FRnXQE(Ia zeydCaK|5x)hz4Q}qrmf|8sFy$P|fz&7en$6PgsapXXnV7DaTF0x=Opa5`tYbiS7EqmCNSi%ie|X9XZ+jSF zhp)!1%_oYhmheMc7q2-wHTqdX%BR<-YRYO>E0LnN;Q>l(%5hM6!Lb&uGrV1a_dSJT zaooQ+AjKQ}wuNO?{E`*T7P;`R?^WCjqG%$JBrF-j{<&VdCCP6#6f0vkV?7u3B#NVl z!Wjoiz`^2pkY)p+g`a(~u{jqQn$DiyxluRbl*4!kRuRZsvzF3n+a&sXHve$nKnjj; z#6j}43{3IX(QYusQd9mBlY8S|b5aV^0H-O+s9>_!)N1yx?NdK&c@PfSR$2`bjj!U(!D8yOm~Fk^9^2-Wxj?+AeS*ZokB z+=#kc%|wCnY2lfWw%%#0UZLIhurnVCxvy0>Wzj!84lw4)>Q4uCd_;{|IW?jxak*-O zU|lN4fUei|>ARA8r^Vr&QaST>aIh{DP_YZdI_(${g<)|Y$rNT^O-aqF@Ft~ku*k(Vott7z`LT|MKThk=P4cGD!%K-C>P_b@?PMap5t}{<&3?S#Nd7m;dWj*6M%C1|3zW5{}1h#KtE(f;{lo3yUxyZw_to-8fa2&*K_{}(pa z&OJeO2wAs>x7hc?&gO;$?ommADVvRb;tHd1FF2B@#}h%?@D3Spj3clr!A-tl%!={x zQONU{s30u0OO~ezZxQ3k!P~9t@sOWqCLHi~G6;9ed$CK#sMrzCsH7I+{?$lY&q}wt z@^C<}jPi&C5^Be^L_NC2IRw9OKePezsdswG)h9&rR^XprpAQD%XxJZ5)_kuF>|0Gat|#X$y9=ohk5ng_4Z(0~&%N#X}89 zK>KOtzX*wp$qYKVmSG~9B0$M+2D&bCA&b#RylGPQGR;PoRnL~1uipw$D%al(Ml(H> z7*=38>yvP7&s~iDNT>?S2=!=`a}91AvMvN~J=-7f0mt<$UtATW?L2k{CRq`-l9vN*;X$tqesR?g3GD*b`H?uV&h1K}&mccfHC@MBM{abL%3bff%n_`KyA^Z=Sn2w7cAmzDK$^hi>Gi-Z6?CDVydr*0^G@qpNfD>~2#+Ls zDPYFfdKp*vGokdgir$&|Gy}@ax*D}BygnIHs!ytgc!@D=XnW#V(kP&|=1Gr`=e;uq z@Q%HI_yOo2rTUwF_g-CX5?~FUafH=K5)oa*WJGUwczgn~|1-~HQ|CKDJJQ6|b zSoE?j67G3kPtQ%Zv1K&Ag$G|vx%(e5(R}5wQe#*W=5tX3dHb)CuM9sdWZI9n9e&=J zX8<>qtIs0l2~D_K4yESYw1k{00Y<@jFnzMOvE5kZY%<2~WAkyr8*RWQKYJf^41SHe zb_Q-gv1SU7lprzGJVKPtF0JZOUKRGP`1weF;cjNKUvZj}*k%7PRgltUOeW;@%En7b zK6L4BV?6gJZj)n-D)_asLbIKi*I^C@YGkafq`JOq9v~QuHqWPE_AxfoB`J&N6AST938(IoOucKv!3pr|M{z}*Rte%BIkxFWi0nGC_P^OB(ISm>T8_pdENwoCb0fP&&!$3_hKmGZPhrhu9BLdafi*gd<0x$euK z5ArkEGY1A%k{~}cT+KuRpZrlVyA_)Y>pIiVm4!#%?{If*U$h}kugjpBE#Ic6QeACV zEtZ$Q#@57`2Psm`kfE`VQcY|Fq~Iun8>J^pLv+xZDbJo zl3iffWV$@~$gs=PZMIO>^_<9H2KKzj(38yz_(5ESV%H7Jm2~m9FC}}GoQKRn$nu4w zqrT+rAhEd8lXG@VK-;8X?8=9Nlw!vBor_0Ok9^OUUW3S483Gvoo6wO}fSVWMOo(38Y z63;3V+*KQ-dbpZYo9gxZ+m~#h-e-U@^5|Hc@0IODyV-$I`j0|a#)W}I@yo>z$V$b- z5u&w?-GShZe74taMu(56Hf!DoTFd%^%Jbq@qn?Ej0}|yZCH#X! z9MB3ADR;zHvb~Nm(&Z^j`i|A%s%y&0Fm*wo-H1eE$E0uI7*yP7x-LI`5`;R=-Ia*Wi#dEh%0#Ogr(fsorsa& zG+UEJ@xJ`R<6O0xvg2Igc~3WHzET40IOr|HO~m$uyQRob@|td%+}nbf9xz6SUZHRI z@L_5&yQFnBuu8)Ep=qu`FD-g=VrjR@hV}O*%|r&%auj2jme5o=$Le*v6-|T+eRlmW z*y!YD*%Br>WEYy92c57E)&#`;uqrR^otgwAqWiiPy<_|C5&RYjp#bvAanl0cxu-vy zECdAjgy?mOQ3m{vCMWlgpWCz-1XIQauLM%NF7zV^0+$QsdS#0TH)bz(EDFy`jldDA zipm6jmjEHx>o8*_tJcesr$)7_4wnZjCESl1BSE%G+lr+1W)H+Mn+>}g%QI4zXQeDy z5o964h&%aJEX`%Odd5S7QRw5)v3PqckVdTJtHOfACCF0>Tfubm?A4CN++MNMXg7Df zohstoRw!+Piv7*8Mt_+#bzjq1as^HKsRkgJmfq^pAxVJEXe@)gcEr|0ejZ>n%u2ifxe6BS;L{>S_?IQka zG}at%ou;m)SPC*do6mU>I%^`ghAey}-?3(DV(K~n5;Uh)tP`;3fCl+Fkb>=u(b+xm z%s(h_8Y~m_xES2eYa>B+=bc&FA*gmHVQY$&-7?sp>tR%f>hNRmb1wZ|00tU5Mw60e zHd;BlJ;rmSQL+61njSQg2D^sc^%7o@0O7sqVEKQhP5lhQWF_0ifsIO)8F6kr*NRUO-jKS*K3vX5Z6X6Wx zAF(t-$n{WXBy=m$hoD*Fg2GJanz(3ysI_?kM9o_Wa}L}aN?JTZm(P!-%_qy1&#vEx z+gFE&z(Mq^*9|nTm}w(82cJ@I09`Yk=tVN81Kn(wt1|(fR+R?uG&|L)%lN9OrJq}| zvocuEJ&ch4#cS-J`iK{2@UgSd6jzWc$!#q$X%Id4uk~&RYnKF>KFNsLTA2=rT$-XK zPMkO;r+DU4vr@^KD-Nd`zy$Sr)Ro;5CjtPnraT0YH9KZFOk-d_uu>I})>xW*^43Oj zKXB@=;o5VC7G+BXnM0;h`SdcZ8#$YNQ6 zq^tO$$A-rhZ(MR;N~Udzb%3p>Oo#xfY{z0664)|VAE@+0(oNJOJjW7lTfHvN_sxNR zilt%TPbJ8FGfP`lemoJ3!v#2^j>SSGSS@o~HjuFq6A~$^0*XF@U>7UW4%n-@o8!T# z5oFD$e`k)IRFpD@5x`KP+A(03m0_9O{5b3Hd@Qx?2G5n+YGf`oOV&2p0s{?Tz4#?BkjfDFmdhF`OJ8aLq1qAN0tt-*TWAwjsR4`C$Xyzz zNeMGcXglMWTByB1LO1Zzs=*gmECfYkT>{O(S^w(LcaUSK%wv zyBw`n62&FR1Iaf2)8UoyKwH%aY8k+J{b~9H1OLJ}vSIKbq8liY^ag~}j2RkGV)m@m z+8G32him~R`k)sqn_Qg|VB|^VY#^dzWEr6HXY96ES~?jt+)UjXYVp_1TvH%&N4)jV zRyLLwNo)bua;t6F(5soey(_tL4M2h$H6>nLmC5eKYh7kn{^a&X0@bH%t#T{Wllt$? zO^`xE18Ymrt;_78{qW|$SLh#sSmV04c1Jo;e|ie2fGk|0o$FX^n?0ZgcULl7jqY?I zNEYf~;)r=_8>PeoY1d&kT$xa**1+rzfo}OteX5yczv$Ld-F#h_IUmjJ=T4wrdU17U z!JPmSTmDv>b_f%)?o&IThiJM2tTt&?n$89DoJ_(1lm36@!)U-5_HD^WZdOX};pQmn zu{9@m@?GPhLO?T%jH>3$)Ra|l6Of|fXDU_JGA^#92wX0f?9Ml5iju{O12+>^GNA1l zmQyN<8JC*nOEOFxv|>c)gD;ShXx6Km7%oSI+O>mMDW4$;c(-AwXC0ho+8zs5B~6OV zB%mHka8ANI%tPP6QB_%nD;T=TN3WG}AJMrp{B(BN_YE6(i)sHHIe+h@V7J)&d!&n& zwu@L>%jy?Pw-Fv#Hn`>2irS&hlcw5?h5?k#t-k@tgN><&Om72LdXFHh8FM2>z!0nE$A4LDkQ($xGB@6M~H72Pm5dpmbVBn$mB?fc`n!`D|0>we@*NPe3=9KPNf9r!VN+no

e@j?U1KdUeI?DZ8EI*a<0`a0+ZN;+uc4!xdB*?NVAGDlMEjKFahGg98Gw&_^=UTZvm|6++#iswm+7Ok$SYxu>i0@NSpbF`<;2DN$QH)*&DxkkUAl)mw~cr2?mRHw;~pC3tI%xEIsP$We=K2mvlMatOGWW5Mk z^B>}|UAtMQlwt^5rE{mf7{5s~+OEA$76eCPh<@hlj>2&8J52t>R>S4K> zTE#C^9>X|#hlhCQb*_qZ9{3`K=#la~ZuM>y)Rser9QK)m0hz=r6{C1NGS6mMVm*UK zrKTvLJM4!c2k&*|t#&5f@M)v-%qv)gVnb!i7~vtm&%r&ldexcx+{Byqd0fOH#wy8cuh z1ugAggr`F7vaFAWl%B)Bgm{TEZqHtnSY(9zg=j9L-OgEh$S+!TD~SYd zKBuBRbQb^lNSeXtVPVS2?kCsIeBz41A4&AMFBvQ~9Vme}Tj8(Dx-ZWU*U^9lOQY>f zgU=raelOQ|S=x3cyaafL&17f>BdoONBWw*Mwq{#&8PhHIZVqC2#8x!X3<}1o5t9jo z^w*B0Jor7}0zo#Uv}E1`;@k)VuzRAZ0&izGupkcD_CLwif$ zm5))9qP7$HMLU*`gQj(4ncab#Z`oyzBpk%!BxC#Q&>)@M@k$wK)~bGm{a29B>K8gxJ;sCy0}Ci|G$!q zwh&;a zdWmBnR|);gYd^+Df?fisbfRQZEFF<3;6K|~4B{4g7~s&{Gc?27ooaTsta`De^4i($ zbpbcE-_3y(xAfJ=!DI;mR-G`|MljRk!^Aj|whZ9Zie8oC;Z{MDYY78y#+Q8lZY=H5Z!6o~HE zM-~sBDw2kqpm`>>^Q8|rEvP0cAQ6!%e+X*$h5H$0Kq~tD66Y+KcDyO`nXJ4{@vGjAg}QU zpGOJ#|Hw?Y7z*>NEm}+TE*thg2ILkRW1wdc$3x;It0|eg~ zodgyTOLcGi_OE@F8afm=kSGi@NQ7olBoL9iNE=ws@!(cifR$>OQ9yk*rR%$=BiTiq zuU|bA55Y26oK^4*X&IibHw*r-N}iM5}}?$-&OD5!z@& zoche+qQ~Hl8nsLy1w}<`q%)o^_r?f;E(ptUa@3#5qeB8zh6^?0n>3{75lseA3s>l^ zWLGW+$8Fh{>w#Cw;}-wRiU!-{x6o%ubVsiW}KCR60j*T59G zt-=0vm<346hTSpR7xl@>Qm)!=CNHsclHZ6OXf#CU=7)*wJ&5%aWv=?N>jks2*;j^X zqlSjPJ%j3h{AL+AeFD~&|)BQT#9pdD)`$+IQCYls}_|h zpd?hIa1aX9zC1La0e@ds4M2_2S%THKzw(2%&rS0;G98}u9d4DdFi+y>F%>LP3h5_H@!$P?infMp|L($}F&x5-# z^WkTALDuU!DAHr{8oG%tY7{K-#JGIeEz|ngzWK3?-IC|usb3mcR&x$Dx1H4}3hn~q z^7BTl;AjKZ`kbX{h{2?`6aL$#>((F|5xJJ%brlUXdl+8WWKU4Y6rhPp$u5u%z3uv< z&UY%5(qqgdVZ*l0dT=QKr~3h1cch&&Fumh ze?0&2wIby<7#dd1Tg0FSRsY?gt@J3r= zFeuUv;4q^p%Z(!>e*+--<{SGh^z5aVD+OHu^He#691TPxj;|KfLC`A&0?ylr4oaLG zw`EXA;sAf;=)|^XC%5xSy4lgCR1i^9`8MEj*m!0G>sB2?W5sI%L$d&QoJ{FD=Ulk) zCQv8+Z9EG`{WB`={!W&9cJumMHNsP5jFg@9m0tar8;oeOE!F2`N&JpD#^c( zbr@_vdewY_%S$8wlHn$u7GuA^aU`Y4x@fOx}CYk!`@4Xf&R zB&xV^XOKMI*zS;q-JH~@2?R|w>T@Ey!pB27*ljktAExm$MyrwxNlgUT&G(u!!L0I8e6{2a&w5vkq8by<9_inA0^` zp&#>Im6xgqYs(yIsz5c}n%xr=I%Nr=!yA%X^24q$uT<2DMB9D}a)RB4(4WD2U5D5( zr!#>LyJ?>bO9~k*WL&KXvka(DrNlO%9ciWwNeW;&%~(^>j0I6GyS=i*an2poT3$Hk z5(E$R%m!iQTFdaPzK5Sy zb4yql?8Vjy!cY;E+k*cYY6U;qnAVXax~EcVh8H zO7IHH05o)Q-w+nDHI@ZP!r%Lz{)A7#E6f8jxrk0%P@1;-+ytbRx_pHxWyhqK_lWFW zxQzjh8g%Cy-ZJT>S%R+GmOO!rPifvKk;v$m(^Y%NjtI{k*9>ab!R zvkcQ_h2~Q(S56*)w=0kikN@2sm0yMKY|VF-T2dQ)4MrA;wt@3XhOE5qdME)ZP1@6E zQp_u_Au`d~1G{X9@p;Nt%N{kx82rEH^l@wRLO4aue873_fe z1;m^!xS)nEYkd@jh^R#a$OsNwQZ#Aazh_4Of{4A7ALbn3uePP&&g~7`5Dj@(NCUY3 zxg%VEYs?AyJjnOew|w-`Km}OujiInqPIB=ywq=eM<1yUrJJbxGsOE#uIe>g1FSNhP zUwsR3{YS|Z1gNF7N<@@MK3f`mYrHO7WA+>U9G4y+auaz>ND$%)ljTK3>>~9PXpopX>;mwy2c!2EU+{;P08Z?E zi9i+=+lz=lLaR2P_@4NZWOEdV3w&r7zEw7Nt?NQO44C~Bn& zmVt(|B(l>>z4AKsL%(yzN1TfM^KM(5~H7-znM* z(_kE9e5qfWPR7uoQR0~D;cH$v?@k>=EL)Q;+0wY2JBO1wZMm!=PMrFIC8y|Vw*H~z zHnbqrfK@iFRyaCaFEB%7ump{TE{?PjPEeM+q#N3~SV*7pm2Gvqq}pta!z4p&ZygHn z+3F{Or?q$jOhW|va9mE7zC-}zO5d9RFgsfDRK zd|khKBCy3UB#!tH*!zGjCW;f-VtU1uH{`HJk8(S8Of7!Jk~h+Zv(=c-FAsxKy{z95 zEkSjjGEfN4;Vo81-Db5&>wFBObe#G?iYD+pA?*-PJXyYkh@~OT8aIA=1~-vQg*wc( zaj!a`F;Sign2>Z?fokIpD^P7%B;q1{0XL{;mdv@Y?U!l!z64^6Y5$~U-};VRsz%Qz zmoU;>$Yq?fU`!6bL^SDEU9t$W%nS<+#wpe{?4M8r#u%=SWwvi6&()FAQ+gV$&Eygd zHJfc{vbrGizl=_V0_8Js1_1&^hcrPv@rAUBi2a3R22IcvHNyaC?3_dhkB-y(mq95> z^+*fYr>8U~*w+&@7TD)2tvS4KIkkJHvKfv5X4GH0i*29mKC9eCcD)KLF)lZNB?it4 zSXJ4ib;;;#v*9cesd6?9^a9?du5tfF+;Rwk%V=2_v{(7RWl`UHr8Ghub~$M3Q$0|c&(xR4tqtUb zE3lEdYQO;Iz7z%1a;Iq^V&6~|JtnjiS~JL{C)Mn>&C?vk z0Mb#^oD<|5u8h=z={nF1!P>bsop-^L<_Xi%2`;6s!@RTsjd8uAZu;}HVI6;3 z=#&8q%>kw<39$O#+^u=MCFj(167iXH(qdj_hp1{|1xYj7V_r+F75Itd=>_Bx$yvK? zd;-5DFb4T0>rl%N8xn#-fj4Lk5wA`iMMQ=oFT(V~fQ9mrY%>29P<9vy(u$5-s+9yx=s0ia2SMkKnkrICI&Bw?s* zi161)`y+p0JFm;h4#PxfntB+TD4K0DFOJUE(eO^>9W28RfZY)i+}T)`g&LCds0i4n z|7f747DtWBEE;fRj;koHaje_0wVeE$%fWuz{NN4w;D^DsMMR+(bCs?@ zx{g(4-H*Qg>)Ll{zA$|S+Bulkxz@=1(yOy6i>m|P{w@gLZaqGkhgj*SRedkwc05yR z7yeZZGl?~`7c+1>4oXLP^}m4lvp_HTm+T(M*Gc*fFm8{+pBTUhN1MY+53McI6Y zQj-Ea#WkZFxk^Xx#^QRYeNHw9pF%bYf}p#(uU{lHYZhAHRiKfo5fBLh)SUu}U0K(| z9PW(i&kv-Z;yxF#{`ui@w&?5I^yvDrh4iGqV|`ZPr>z_$zFv7FaNb4kLwGDSL)lm~ zTc5t*oSEf%@(F~foNd?%6tH#DgVJ)*`gVjv-QdQt0hu>3GZG}M|WIW|i?&YLr=!5uoDK&oa z^*OxG#_wL-b2F|_P`yQCZAzQq#~@JLDwwcKYGmPgC~Z>58hUclC_v%mq?xIrzLMs; z+*KvrgEg=1f?sGQ?NaCM*loBcf1A?d#rkMVPyW4YVNX{1xgQ-KJ3p+-YOy=GaO%#m zYNEv~|5C^6rwmf~5YdPD8+*SG7KMw=U;k!e=ar7sp67yuXC+I8&kGpA*Y=m-%KjyAWr}4V!ZYAK#jK^kXeq!qd3tw3 zUZty|KoT4b_A7ttyR@3LG<45N#b#h_|I=f&gq_6I`&KHA6rQzvqRsw0Geh$JDjTpy z3jf+Y>1IlW7;=#mHMBnvGc)?}akWFjrIv!O;kB8o&6JN1mo!4lg8#+^4$Tw~7_02* zf8So2NqDpNeJbI>LX5nkgnfU=$OToeUx{f`6K!z;`w~GfH}NU7_%rwy4|ID-rspbe zQ%f@~YU4TyhGj_%gamXphb#MTG61AEQ6v7cu{ADK*-Y~Nv$7HSKEU-e<7q6L(7unn zKv2mxysFRU-*1z^u$ZQCNkmF`xL>mQe@T@w{;mL+p%{rL!RR_uMt8UAeVKYZ{o zU!5|ggxXTLLvi_hzwMvQquipxg=c4E1`b8`GCTS88dvPCiusG5S(VR~9k;4{Vv$Z-M7tD&tIV39w0}9go@a5%GhS!$ zuLk$f;KzrHYX8DhCcYaF)$-qzhsR!U6B+Tx#qvHx{$*(yB$b>C8X=WQ2Q9$v)^ZoC zflsWjag|5c@e%*?+h?z`q(wY0A^7Waf9W4i0Q*Oo#H;J4>Lf7er%A>O z^(LbeIC@hQ4`JAIuJK|5(5u-uL%oclF*SNGSu2w}5@ae<{S){r)0pGcJ(6t>L|M)- z4hnC`z05Z0^o^IzlJbj(CXvCj5uOj8jpUhI`m7hyxQX8)g}IITOZC~X{oL{DnQ2Zu zj5SyCF6z_>M_(4H5wf`muMwr>4;P*77)NmY~+l6Vk7kaC$rCe1iCPT0#HUZY@MCzDEerhX2ALH~-?U z`R|2m%a<5=#hm0`Drtqf$3KdF=o0@pm-oK0`LA3u>&M>gQsJN>y}RZs#d3E)kxI|( zM&Wf7HaW|ZR@~I!;kj;M@K<&OZFrP2fdd}jN>JdISJXlQ-F|ElrrB`fF)q1Qs?AF` zFh%Wp2^yoGJEB5l|F&$j>3+YKvqW?a3$?=^0@$yzD+R1j>~kEL*GTw=xNWNPl#T(d zy-RL*3m+qMjhUojT8*+dT1W=-kPsft zF3CNfn>HDYXG_~KLMKP%38!>`fi&KQI)CU9bXp%*lJ9!OVUVoCV-hCT#-r1msTN<> zH=y1-dYN#HbGd83ASm>eA($$o#KBY<{~An{-N;rj=%iXduTr)iB*S5_(yX6a*1zPUVy;+Zhng9L;j*ZO3)rQqDX|_{4&QPmO+% z@aaQ5whFYMug+1g!aiT6?PGyt-GgQd>$axdh4tKMtpOzJb6=^pNkg`jqwNo|>f1Op z;n*H2uhuz~%Tw2w7$bkChzj3im>=15-PDi~lG zaLSv#4j62!;;>W^tI}yKRAQ8qc;e17nEW14U)Vq)kIkRU2)6+ZI3%RX1kl%GC3yo3 zD`2u@-vX0m)XD3$P3=7AmhA~A5&*i-WkO0_9Mh6-1&dGEtid)ewNPx&OHTkWF_m>R zX38kL52=lKYK^2w;8|Nf19aa=1DKvzu-qDqwG}t*#_g~iSBKeD?b8YT0ifApr*uYY zX;-=qwK5OOK^pAYX)jjEg-Is@=o(*U!(2TXh#;Ue=f&Y?uAy0toBhrvPF7i^st( z@o~PdAW*0rN}!eWAW#F=0jI24vm~sH1a4yfGuWz9l*Ry5grFDEyaRfX(o3@riRRA> z#rvuZH&QsqDk0zeg2Y#FDL^`!6si|sQFP!4M1;N~dtNt_(ttKaaX=^+7v$&e$Xjv| z70p`)qsQkLi_&xQOV7{t=PP-cuw??FcNT{K2VTrwU~Ty_i>$_JTuSIoR(wpTQzGs~ ztq>4;@1%1g(Vkc!^xhkM{oIjCY=%Of;PXt~*ig$h?gDg@0Pz?jDFE>*f_eh>SunT} z=m$|+T3935bQvi$kG_V%UgC2O>QX~o3KH1*y@IQNMYThl735AyM}vgNd)Kf#1*bSc zE5eg@`-vOd^m1oI5+C&$?2`;F87NUuPh1xFIJQT2`k~u+zk$=N zxbs9V=4I2xPu(uTvE<*UIvlni#Shs;1w|w+yq9DKVxue3N_t_U2G_z+0UAC+eN~!C z>6})j6aC^6qf1=wj-+A<2h9MBgi!5m^XCV;+ZJiHU=eDvlch6O!acyTf(PHi*0MJ* z)(jWkX=aK~4xQ$Oc^TVeI$SSl>*vqKkGctbTP{F^XHrFFD5dOgy}*6SJxJm$J4a8* zFXo%QWr{E42WSnld;%k*j9&^Gj8j9FunefTj+hNFw2oE)fSpuCsYdhYZ>Ap;)MjZAoa@gYBus97Mdp?OTW z<gwOFW`VI<^o<6Xatv65K$FKHdwD*aAv+UQ-_UdeQKwaN8zfo z0v{IaHr?aSwn`Fk6IfktLWCz!p8}&za2l@*3n~=23z|j(2TnJQ4iAV2;M~6zK6gOE zr+R#YUmbzz_rMkx>Y~g_n)B&$^DK{(Lv4?e1T+&LN7agpDe3Q|TJoZovQf-p%k+jg zOX~SR=6K9g%1;Xk!8&onbuM6`M&mk z9kZj_T6$DlOO9%5#Zhe?1+|s&sJ1#SYtTnGZ=WsoQ|M!Ti32s|<%j?lY^C?a9qeKo ziU_x$9*2QV^xpBhNYRt_as>K#4Ca9*Nb^V&bkj!8v+hcX3Rb2PXXy^2bom;RmZ?qx z&W_u+{`&ze7Nv*M2H84c(tX)R&FP$jXakJ+1)MkNyY;9oY;uqg(bK3rKyuO{Q+;wY zpb0wD+R5uGs-~IvF4yr&pRJBS24_uK9jbrRvIc!<7@hb$fvVCFXM#LG_2oiqH5o3c z=D_-{U`{l8QtNQ-mlOmkOfF@F_4?A>Vcm{2dsvS;*g$#p=P@kUb^i!(EO= z_d4DZ7K~6L-VDQGimM>z-?{nF?H z;h4#C0^*eia;`5Ys{;`Q0#NX&AOHoVih=T~0Lm+PksmCJ3?ON0$YQerb>$I7_3nK^ zO;4H-OqZL6f@v$ZzT_=anYA>dsKA!A0269c;3m^bRHo9~3{$h{%;z%HdVR5t$ zD|7)z1eOXCDfJGeUE^&$!{KZtdN0R_EUO{r5ds;06l835yX7@=|e7vibQ zq&tZC1Z1Hnut|9+cjddXfbFcGyh}K^8BkwPD-tqkxRZe*mo8yJq+T?EJ!HAM2p)RL zMFW+@yKoF-pZsKZurPg`&9Cpd;f9EE6mL_~U)Uw@r!4$ZLd5|rhF-<{lgj}BW(Sqz zP&@lX^N4kkzAD|}G)^n<@QA+|vFZ4?+0a>nmCE8uiZK5;uq#eVi{WcL1NG6gC7PKaJ} zJ@F;Pf?xl(|22WK*L16J=-7FPdzR!^C5Z~*c(h}gt8sZ~>3_zhKP<&7%{j#ZOD_*ge@5>K7Q_8$E%6I!&B=w& zMG0m4+}Qq9&{JT3=nF_<)O(Lr_XqW|d-p%@J>`w5b{s-93W%o$Ugmr#I4@f{scS8W zV$Q=P>T}y;F#2rM{XY5vD*bVB?pmSY1?BLw^?A?mJT7dz70_Pwh8AddDDZOhXdx6X zDuKRzIYa8&pGQ&c-$@HRyC0#S9&f_ouhQHc;8B)t8u0i{MbDiyrrs0h`@i&ZW%P$} z4I^}zGcX|uGH+7-E~;6HNM1yZ394LX9J_+Pq%(FkkVj-p=#VDy+;vPu4IW7&bR~#i zN_I+1dH&MPs4T9RaIGx*D#5NS$%D{R=dNWDzDV%tWtYZ;T@-mQtfA2BWiqaK)k}v} zw$jT$Mi|b#h5=s&AI95h7y)N1=nuPuLJG}8Pm*p~Ltm0i0~GX0TBeGSfo#XmsT;iE_M5c@YoQPc{SL z8&`}jTgG3#oc#JZlu)M+cAXH_XIsE5=nHUSR_6y0qsP+vnd5~jlQ%Ak7>ib4gd2;s zUFIAV^t@y_D7=$AwNd!35`t1OLNpdJjiiuW`024^I0L@A|-ko1J=4Eq!ez++bt6v*3&>HO;e7RF6Dz+yFx zY+%KkMis!qm=AfRvjpI=iy{Dz>$5ud)fR&ow(&7QXi0x_)K--7F38RTJ~66L5Ur%| zcViE<72N57^!$Cr!FKymY^dqB#X%-{?q3UU@o@kkTg3277*rY8fdrijGwkU%c*QQi zUGWFFB;bWmSY`t<%VoQUXk{P+H&6?%I&C4 z5?BLh`3I+xOGN>thl}kb=`6Zyu$0GvDG&$g7y5yB>gV_|`i;QDxBLqcX$mypdfdup zhKqWvts}ec+_TGlZft6#BsYN$k}@KE4(SBbbqekTrX|$PL?D}`iD1oSlRFJep|3(m zc~y9fZPFdiR;Xb3U*av@!1T9<2v0$FCgo(&rIG`Pr{E-D$XOr(Lk=e}@qIJwjab2?xY_;I#J7(ugyqPkA?FwnBe zzXVYZ7Z*LjcL!K1-jewY9bO=^;79}_3o!d#L_}IrePMdL`ykP3qX;_eZyv$w4)|h_ ztTb?xtn>yXD`_eO*YK8}?9fUyPdhNWi;c6$1IbF}(I8pLB1s0m%{PVyZk$UvkgRlW zxuPMdmwFne$w_-ToKpn8KH$c|<;w{5c^TROgHmZozqs9K<6y+|8%L>1DzpX!uztTs z!>0@kT0im@bJCxKDSFmA5#ZJkF_I~u>!{_!hmk=gpsy$Zk{)VfLv$zd?vz1TYdx>? zF*RM*zmmWqDf>zt2wJu0sTD*Zb=Lr01=zC;7`}_W2S93GhZ|ejGN9_}siCk>O0?Lz zZ0;A?nrK8+4AmPEkD;0&BE^v*u%7F|rGT3%m=kWxHgx)@KyhVjBndYp!GNwJyanhg zzCLSx&FjLTW}I06%28a*)_CDE)~G(cvnRhJ?kv5E?8@YDd;48#t@NI)2_WfeN|ugh zK4#*n)#d6=_t5{~BBStsSAeN+_MYjZWPTyEl5t&S0JtKMcZj2R>j=?PziiA&|EHu?K|&+*$$UMMhxUnfL4lVyvBXb-C05dkq%l)c2{WjKE|`rnI# zEZ!0Y`fET0J2;u*68QzuBu$9i9;@<*fjf7>vNu+Keh2sB08K8tOi$!3R&me+$%yL` z1|&VREI73!5ObO~5>^cihqTcMz(ItE-VOLGNqmTg@&&3F?MHm~D-lQ*@*%fZHbX$ZaD@ zYQG}|=?1tptmgskqCeUB96g8Z$~Sv+`&}Ww6o@E;q%l4$H5(9W!YNw2hw{2e(vx}N zD)i2LXJ!W-)B3n|V7??*dSdyvNA}zV_Li~LP{`>=;id%kXp#*PkPrey9)slo1mGY} zzXPR$K^3At3p!D!n&XavSECH6srX$Pa^fKj=EaXgmn#?tWNj(kmzDb=dz~@(lWm=Na z%s^7bOzLTf)1gAAzPQj@Uk)arcq@)7Y#FGq`Ng2ZnvQ@9i$1Ebo6YV!qaeF3mO6j= z2xyA|752_ig?)2WVONeS?75=~d*P_U<{cQpL50mas<26*!v2+a=*?I5(o{@$xL(SP z;lDHr{Ej9^!F3+gb0#3T&Pxl30K5#dlHvQ>M-{dbRM;OQjYm_*4}6F_Hy;U`>k(A4 zP$I&IRaYMEAs%xe2@u$4Nll2TbBC3RH@-1iMDv#+=ku?l+9-7;KSt||@)SXnd_==@|fS~RX zk8zSD?PP~ppfRSzQ)$Z+1Rl#}U~?QLZ6jhYQg!{e6P1Apz2_nAb0$cKbOk)!9?)Sx zK=@-;nvPU?-T=o1d?S%3ZW)D$te_I#N8S4>^0eqAC8XGM8;r@IWUX zx02icJ8u$H|5Z$MPI|}Zwcqf*_APpa=b`JZyvPSH63%xidimQY_8nYzfhrtO(Cp=%|m^^&B-mS_g$CH|MB+z_6Ukad^%!j|aM!Aty= zByYCiE6t(ARcQk!3_zY0C9MGl^K4P zRvUTNj?wd}D(yM}R@=VbX${O%ZEtxVP>b60$uzTQQo$*15Je^*y`yDchQ#6Yke>a``>xS&Y4k=kT-%uIO0-RrsvP z<+RZ7#{^@!Ke7p`bw&XXNzVLtaoNrncduO3vo*++>$MFF38>qf%64Xi;j&#tTCxY{ z8e&vEko7t3wceSRLngK7{HXOA&n9@BFW>#nKT=!DaW$?oyu ziK*u>W8F|hGQQ_A;x+!u>CGs7pW)_9{=2@Hesb*=L%-f{h=OYGsx+A0eFBd^z*jQ5N-HT#WUO2f1ATyB z+G%J97IhUOu&8^2^=2zrlIf|nf-&l9y4!!{JMICMsJdvh*UkB{yj|ZYed-rPd@q$5 z5qTA90@Jf>&6@JZ#TSaSd6{lxsl6|*BYjaFHZW3NqW}>NlV6w&b;dwl{O|pk+r%^H zgG$G;LZ?qL&M`XxnvmbQ6E=4d-~SQg6qJ}YZ84ecHeefi+|`5N0U?h zw7Nk_tD4NG_vF|22$Q!`9ufyS^&;Zt8qRCj2PH{v`G{hyX^-9G-_GQ{&Hp{XZy$8c zKB&PdfZvn3v9RCz*5iu!x2kz>_XjgNn>JmW+-+p1 z-wGak6r5pA@y;{xTe=>1^F8fj(-hUzv{8P^I<7!L`k4o<&>Cb8^4X`4k_R(B{J1&& za0QWD0Bip7x8`-A#}Auo5fIIHPU+i_szJ3kNdMzNA0_jJ4CVHER*JpP4czjZkRV=H zp?t9Gu$(3j2KpZj4j#Tc8Zu-oFtK6;g8SzB?guQgeV}~+mktG&4y*gV0s{J&mA-)t zz#A&wH0O2f&pmmklMV{}RXzc!(Zl&}vDR5$c_sqH>mkP_-?!?4WIi7B6leciewa7y z>H6ujN|Y0uwe{Y?IZacB2TvBSFn!1c#~1wu$M1M;JqA&Kqxl|Yg3Wg1nq~PGv3F~O zod3)h5I;P`g4PEOCA>eRfH%Wr+9-yzs78GNeemO4wTRPp4#hq<=w|DuXRZtGh1}ov zImqwKigPau>R~Ciz47_QMkc+|xMf7oC{x0w^x^Af4RKm1My{wW!t%WpW*D3Cw3)Og zIxk~W9>2ttG}-a@^?wz~vl_MZ=gcoteBZP%`t8G+X_!M}kj9=WYK{ z*yd&Ie|KEQX8!xR7I>?a3vzL2FHDRpsPe1LaFFAld&{X6146?ef*%ZS(rsq{+P{M1*w0O6rfrD@Hs!qg~U8A3^0-L`Un?IlorUQ+# zg4y=t4~zcef4ZSY2$CQECW>rD_^wBIvW0Hc1bp~>(+0Z>w=vrD6mWqNg2HXQkx$y} zrnUnuu}@v7&KNdF3Az;qK~xuyP-UbLT6Q^|Efb#g*M93w?PZn^ftrgpYB3OD1xSD@F;S;P&oXu7@`uN*xrq0+O# zpMzp3+$E&%@5kKU$dbC#Fr(Nnf0!>{R6Y+xWOoXs_vXS-p>GPl3=bzL9C8;GkyW>M zQLm}bMKv@F@j;se^_CX1?G5!DvxZ^cb*IIk-ou@X4d9i+Uj-u-Skym6loC1u<2+*TaN_%=yA!q6P4td2d7IT{ z4TVPk0y;8<)?y)e@FrIPvwIr$Cmbo1jeV% z8HHJU+EmWKMQ>$X+Y4wJaUWK#R$C?4Wd_-~|7udw?1y?BZ&B6^7gCl=-$YQ?x z;hQHZV#`M{kEKm2kX|3Bg#&UOi)EN}>~v@Mm#GCK=JP#1pse@Mr$X!4Bx2)Oe6K~R z9xI$SCmr@p@AOS5lpks|i>KZad6-ghQ{h|3>n50?WvuXn4Y!Ov-m3Eqd?pX)}Rz(Fn6YVm$qozN$Q@3 zI~4E29C`Vr85k$M`o@{0lkE#RNL53u%>!>$Dq6j|3GtY(`$Is(v-a9OF1>7iwpqvO zKkTurshcUUP58xAW6=C-m+rbH3NyW`Em3n-%DF%lRSH<$(eixEK`cItyBSzrzUPbx4BDQ*5lvNJpS!?-I&OiJ@+y8vD?iT}0 zISQ@$biAopDoovB#CP&S`nQkSUDDSKI>OOBZtX7^xU_jL3hW-Yv?jRy5Vv%5&%B!x zC|EXSYu0CfljD>q9yOug#Z$ee%m$799lj0m@@tp)OW%ZqYN2xDs> z6fG<-?_J(@hf_l#MqvRPAAXV1^XH9}$)wDkln+Rp=^29zVYx@so9e=hVV@7{>m`+$ zCM;#GbxlWKZA+BrZ;nj46Gx3UjU0^MI=JTX@u;d;y4}#eJoa!d{(edERHB$&`bUPe z+oCPA)C1VfknVD;7BtLZM5ZWR!cVcx@`YH%z_lMmH)G#8FzmX6f~_S*c`nVxx_zfRMUn_W7qReI zY~+bn7jU^elXOFKC-h$i62DIWA<1)6Xw)=^xn@vCGHqY1-&xc2pm)ZJEoQRbW*0`# zn86&LH_2W_WK&*fWEmODWO>O9AExMLDZsOEOKk;`8`Cs!>?(M4VA!A_$T+93yZsYqa3$=j$OZ3)VcR_ zx@RCoU*hyXzM9D>*X%Oq;;0o4JSUEm*8I@iZ=Lo9^2@B*TMX)BW8i{CcpR_M(S zhIYc@xH`Tc(KB4Pi`Qa5BVNt?0%I+>3Lczjf!~Zc;I2AJhW_;P`BZoRletu-_BnB` zW^D_63t=357*mU=F->1iaoh%9>;Es>EPke|y5B+P46;pUBDF1oi^Lk;lrn94hRPi6 z`(Y*^?P0OXdA-4U!qt@HYvx=FnobDjl;g8R^Q4)Fw~IBDkz6gDh7kwl*H-e3e4*mz zs7kA@3c`>m)1^=I7T>eIF+PG!KXfdI_45eBlBYae3hz`Ak~bsx*Kx8fl$#OTcepZF`+cr31xJ;VOjs}u zx6V*+>U|g>G$kKb8z`y9I2fF{e%Hd*(QMu0b}^l|^~DV9?P3GQ?^a@Aez_mJOvZw< zs>=OLUh0&a8%LB{2e7w@+>Br~=Mr*H%hNe?{d)-~M*0fVC8QU$MWI|%hqb`SS4|vu zT@Qca9N|XFalWc+sqO#2lSvj_(7ONse6%zbEMUfC&UsY@O=kSN+^U+NKVN;|EBfMv z(7WQf=CsS$z4KnJrLR;AXFAI@)$}-mmK_}J|3zv;+?xC>MO5CzY-O%Xfe^1B6Huyhh^Zu zdp|SA?CuTDUr4W;|Kxn~t?Gk<`kQhmN;T-(`}-GI5{p@pIcYU#tAwZ5ne3Aq!j`_aBCD zbWL!~=$^rKWH^{rGO5fr=QKBr|0Z3-(yRlBPP^7kPulM5?^tgee66J43E(+Z|G;K_ zN3m0#cT4g8*+r)$IsOYFr1jC7L6hW^kMEgpUrEx2d372I+)NP@yuKE}wX5~QwRNje zTPyT_C=vF(!ezqzoJP(}PVIps8w$Evcw@M#d4$OfS&3x2b?1R5p@aXaWy5dj>6V03 zMXmFzE{=QInTN%F5l>Dd9)ZuHxQ6ScXEiOHe!DFEckSiY>jq!19;3vmU&6aq(_M_W zFdEd%pEaospEvI=5wonhF^aJTTQ_c3&kE+De1*jAXve3|ZT6o{JC2+!PBvztwJ|vE z*~hJ=KW}K9F7jJu58n|scTZT#U}yQU0;0N`o$QZIuiq?&CC^H} z=|gi|j*b;SI(A0)nWT7n0r7&|MCx&5rcK)YZZGU~OwtrS=bR@jW{_({CUYg#7u$H9do*kIpHjku7C>szYlXM-ljL6?6<_gBxEW?lEQH|Gz|^LLtK^N95K zpJ!(89!})r$$1j#U3^ymLBY?&;OMlU{ek2wliC**PhYs3quhU!*VP-1v${OIupxWa z&(n(MFd{Q}ScK5NL6PZ*p8GI&`PxGJ;m|<3R_`DrE+^&2?eY)(+n?^ZftrJSJ7rwS zM2Ge5H^e-h7f|s}R9=BZ+n)|d4ybQ005?=B(9clzo3A`>E8m{=ec;^-V?CsXVwscG zP1AEGeYzWl#WIWOttSp{d`v&{w*1w0?bI*uv%fGEW#?4IMmJU3Jat&z_cw58_f`A3RfeEBAfjaGjCZ zQcc6>(n~?c&F|JIJIENnsVV!&)<;3ACyl0dov#MyO5e+r*#0(;7y7WP2CdIb750qt z=^MBzAI(*~YFpM1V5i;h2&TV!<>rpA(i5q74Zy7{1UD3wxn*6mCacI>vy5YZmelMT z_3ARmdg$<+hfkEbKi{d``GvRt{KV2eVtE3ZU6Xdi<$t0`Ju7U#7}DxH%TLimRW;V@ zM;B7uKgSQeTNPY$P`>3KAL@i)8+uZ&U6X`RJu){lnyCnbUnKYty`6#$Wwc@&*j|Ek4K`6I*8V za=$#(^OH*)J^rXN+!CGt>X$Lo(#F7jX0&eYG0#2br?2*2H)ltG{BbNBeJJAa+rGQq zIFzk-<1pezrqV5+8-`|{NzXXKa2^K@LIQ%7)#UUC}OKBLklJaW)@Ye&ZS>B zuZ`i_{8y~Ww>7P4(DE_7Z1-}FNHzOk@s;M2?+$Z0y|1>v~c2Sj)hVeu;aXc>TF7gwXB&ygD}akyD7i?9VEJpvhcg$Y4>eaO4J^W&vF~neXF8jQ*%8@hpa-8&| zOn;2@Ri@YkL;dELGePB=XxOYif;;WFbo~?KeQx{R!LTXoMDyAluFZ;MgTwaQJ?2vv zKEEwz&trvBx6uWY%AfOY3RyEisrAz1A%|gafczOpVsQ?(bC{&lmoWrfZJRt7+P8gGOx{+je8yb{eO#+1N>A-mz`Fv5m&I zZ8rW+^1R<4{q@c{vpci1yE8jG*Pfl|lQwVf_vi4<9%cK2{k&@?JbqO_B_u0@V-tQN zLip%eL$hxb%hL7H%Kb*WugfY@5e3!2D(2ab(CTAdA7QI>4LIuUx2P%r{|?)&u{eS{ zUZv`L^Eyu3iM$14QA*n(5EsYrl7xjMw5dVNFA&FYFBR)Lcf*iRl-p!n^Nl0JJt&x% zhZEEREn1KO4FLWei_9dci_=lerKm}S!y17LOX@%4)Dyu-b6UH}8NGalO)*{iJ&7nL z*BeT&ywc1~j#zK+Cbu}~iFq78E(5-?(&#s+bXD@h;J&^%xjKJJZk8cT-$iW{_YdmrjEg7n& zV5Q;@;?t57ep7uKI+UoFEF6B9Pg>-ta$L`Vm z`GOy5`k;QFKG1}jOcD1behuQEpJQ4u5M`EzSSUA@Fy)q7RFk$$b}?WD5kk!|p_Y=N z=QVpDlPc^t_{ukh4n%+i=9t4F5)hB44X2o@;tl_pLVEhyqN|k!vo2^#!gO=M z;+O0dq9+?6=^j}25U?OQRb_h&;>f_%E(0sXGJFUQ_COqt)xIMcu9Mhimn?(oaf1xtBuFitkWFkyd7uPJTJU90`|59nFaasl+ zS|U@{D_O5U#$ne`Xl*h$f#=21_&)oY_Hz2#o#fje=u{Drk8N#+;P40EvuWv7EFr`K z--sj=ep&6hnq}nljeelt{bcD6(LTc_4En#A5UEugb_HguIg#W#vx=>;$2fjxA#k|m$VS1!?ymBL|HvXfHLK+pzdO=n%T(iO0~%=J-OHyY&97Blf_Y9 zZR0Ml>%bqyn6}(6WO)iY1J;s1g5Br9bdtj#kt>|J7FNO5&{eXT{QWuQp^OK<`m2~y zD0+@h^42jaIhq}a(wOQylIN`LUUT;^8dCVb7JhbGU-h0J4E z9?1l`tc9yzl40ff0?IQ}Cl1TQoW7e?pI1U~Yk!H#Sv`iaI)X(x@Lf8B8~!yuVEC3c zvb?I}9#6a2{os*KYunJeRJh?fQ#e-lqbO(FL+VEw{4X1(&t~ZSltFBw!@S01+JUh4 zo7y^+NO#=x+fK-)2{K&&U>yo-IwfFws`>Gq$u#v@2IM=rSE{ry7p&5<+1aOibenco z^3%>{9osfwuSyyzTCe>re<(VBv5PeQ_Qesm3>YGnu$Gm0j=b}Q^<^xo;+LPF<-*#c zUB!OOEJo9wS{?~L{HgmH8onH4Q}zmSS;7o$Wb#)VAQfH?y$)9&!}Fc&aeUVIhCNYX zIPB<%R=Z{P=qghSF)j41{q-`(EJ?F)lY725OO09zScxURTLEB#F^586L5m!)M772u zH>uX--k?)m4#nF~?153$B`VB{Ew)wk59HGH>3L+`vy+dIU`}*; zm$&fgr^J?gwZ?~d^O)7UJWBf*i^T}_I1LO)yHxzTZxLC&+wfO02mjgD^i+lm* zlQ5XY1a)c~ii$W3uwoly%ta7bfRSN|ZVf_iDi^1j7y2&YM87~K4&0e)|2M%xfeIxn zmN{Gcp*JC4{07x3O9(OL^KE)fy-nATgJ{RW+f2=K6s0ES^F%s*i<0{B77V8sUC;0L zfq!1ID=fBN1hG|P6jk8Uf0eP@A(cl{N|PRMx0C7wD< zY&=Z1`{!$2o)-vqz8me==A(=!Ld)m8uSc|3BOw*+V-_#TF?^f4q>0oD+lznMAM1&F z5m|QwGl|cP`x5BJwX7cr$k`2Q*IhPqs|f21O8d6vQ1pcZY6~Qn|MuU-4tPQ@E>rNO zv$qwbmIUZ$%?R~NiX(Jn5PXK!HP511?9xg@C7iY(_4l7E_1`P=@0l+|XK_?F$=X#{ zP<38W2U)9z9-F{Ew@+LrJ}LDiKUq}Wn-X^K6vV+LWH6Q*28V`}3DKB)vM}ZYYtz3w z1*_`k*)-HgwUuef+zV$vJ9qYQ%n9fgyPVQc^@ z3uI_0sJcx3{z*2RT8STaH;o#X|rVU;0`xHy;|C2KhHPzakiLw+&v#mTLwAoN2)xI68xdrGj`kr$>wB zp$N1C6ooNUz$P*v0aO(b`N#b(dA56F^3ztuA6Q_iwXzV4W zf4sWbVdS=LcE8hVf}^ECLjCNqwvrALX~pR45I47WW>;`f!CBXi>VBqydv+XLFy_`K zo3LJ*)HHa}pMJ-?D!B?-P+X|wc^Dj6*SR!FqN>bL7Pg}yM?3Ks>gu)=fmX+t{|##%rlSJ+YVd0l zs~EvS8$_A3lX-HLm3osc9!@FdUFT1SZTPlY*3;j$vJV7WiM?}7p*KJAk1EX5J*Nq) zt%kZC9a*MyZuuEkK1Sp}R}@d=5NQdZ#664(oUZJNZ{z;0w86XT!5-aj898pjHlx#r zU&Dy4E6PXI5RXb@1uZc;K^hu~HeHV`V8k}t+IEg+GC5_+XC@*uh2)53HB3;RHiw3o zHh6C)YN=Gw7$74h@sN8OqP%`^ad!WTCb#^dm;28TnceR#zpGetEHTAd+djb}32m=; ztPcx+?K_To$Vro~9T?pHIZDF3Rot!M-MIaNH$|evoKr2)H^RfCP0ZBVR4dV!p&jYD z+T`_Vw0qhEuHq?Zmw7J5vj?7)+Y2hBhYX5KKhlTC(fPt?+aVIi#bCWkA3uF)gh=g) z56Kx%q1h8JNR;6bDq3KiNSO2jYO_XP7*gJ#-mx0WD5fjI4ZCU`%6Ik?-fxkpG(i}x zJGSTxBs|g5X>Ui@~ zFiQPhQUeViGCZM%a`-BDEy;X~EPn10pQEj-(vjVrrb@ZTbfAVy6x8(*kmd{L782z% zXVii9FqWL9u4oKTe-Smaq%SKa_Gf18m9BO)^Ki6RC_bpI3`s5#*ZrudiD~9k;hbHw zY-Ucm$?C6msu;9Bh)?frDfch#_9Bhnsiw9mr4Re>#E-F}5E>pjj#=Xg^B*!G<5QNH<^y(wX4($w7_AZ22ijU!@(0%-EMz?~$Z5V!pudgEeNR#Yc z?F!RBI7BM1$)6U>K$nnEz&v;^IR!2ZjD zb&qD&Bz6sC0XeW>9R7pG3NqW0QQ5dZe&E9PM{D(a1w+A)u6mh0U~qm>LRpfxH^i2E z_eFMfF@yPV3Rw)Hr6Wfm`T$Du+Dpc> zg=whAwA!t*)kr4^nE&!%G<$gxR5%-G^R*iQn*y`faPcBSwLVWoier6v*+ox4*HKmJ zx!5-8xU$m~MC3%|OaaJUu3Qs&IQ&V-N8;)(qH>3}^d&^(6@81z64~M<5%q-!WFUU^ ztCM>AqwtmPT_b-GRzGMXHvtS0R7mZr%GyXN}vdsOi$0D~8 zXT@b*_l;t_l`Gw3|GYHnRK+r{tffKlV zJ~Y!eo=~x#l_vA0sDAUO_YU7Qf_Qjyj_)a?VKIeSY&5MCp$ShDjj#I z-Ox$4oi8D~cqSN9d~hLDzned#Fz`yis?5{X3kFcmzsR-xAtE1CIv2|->_=*yMTq@% zcSn3u7Lhs4eos9VPUz2d3tKclOd0UPn`}c%(F3qpzc0Gv9?8$hp!~fxfr20cc2wA& z-ad^G+vP0F6yRp-gTCr>uD#O^97ANeLg~NP_?dnW?W+Aj`dq7p%o#;bLcG-y%bq(O zDtgP+Eniw4y#i=ZenT58L-9&dgg|cLgEpS*G`oND!GOq$gns^O!&dNjg4X@bRvK>z zhP6U!C{0&MUkhPXw+ropsfspv+n2?NJL9qmY@?|{Pk8BbV0_y!vvls3McIzf17qHH zj>P$8D>xa6>({1SZv|I6lt){dWoAE8mRp94H`!t<9p{H<7=~3JBlPL5VEn7hIJGhc zbkG&~?-Ourx41Pvocu$bmtB2)Jx3H7prOps#`Eki}7e|ThvA9~@)`t5o!+uofVaHd0*O>~7F zUI>|l%OWo5*?!LM9mli-nN}$ivK+Z;>@b{ur?4t%4eKNEm~ zOtVHrN*xJ)RmBx4V}vDKV#SaE^ny3tK)&ieIp%^qryq%bmyrtT6$?(~yw1c=yi-EK zUrCi;G4PiZ!YqPJz%OSYO$-L827Cq8b#5zo{TbruS?9c*VX}W)Et1Sv zDihv3YO;UVhM^Jd%(XceEoHKR6)J@s@QfOs%!%p0Uy%e(4DY`_mH+HmTP$}=f`seEq@0ctm;eN- zO!mER((~ zEi-gLOZ@$jJxU{>`g~K$Z!_w4tiXmJU;?TwxBtYv{p!3_v2#l|ivD8%joLgLGqJGq z&kx?8kJ}kc`jsFl=}2T$z&4+!3!jp|*DA#Gp1ZRRTMB$?59kGakFZ1XX__Fz$5a3CNdq{z|(18sQei_=u;!0aE$?sQhoLB0c;@K(HeI%Q2TT5 zk>yHdR$Wt?oxHocE$%OOs>2%NYk8oza22;G&))vrqb^Bk)CvXf?RXM#EMW=H5R&W~^BE_WDcoz@rrj#NIQ#|g?Z>w>c@2j7itSXsduARW_znj|@$u6kT zk^s4*WsYH#w|rD}-MrJamEJ1f4o$8Wb$!%Zj%l!Vo)5;58}xZ$fPgU)IWyFS@IA}p z?L1b)q3;;~14&bKvG)>_fd<`@Js#Cu49Fb8ll@`>5>i)CZx3B)FKBY*9ODzB7o>pf zLj>rp){~yA(bJIt+=1U*WHAR(j#a4wZ}}uNL>*BWLt~eZNugpNn-Z}GYk$`6-1LaP zTCvjiM<)p__S$j1apwwfW~7MK8u>L?N(Qm7S5ESlW6}t6)928i1#(#8+{xNy z01zNC&Gsz5X&@bnSLl{^D5f?yA~V$%d9N+MJA1cnO%S|2k{M^`0TgCI6@kxq?V9-@tkGl4efjR}4 z?BTOH)h{{Tb9>YvJYxpNDCDGxt>AGm#er);oYX)-9NxV|9lK!GC;49%7KlY>}hl+ZUwK}IM5Snc2YCx{ICZm zgR8b(t!Tunb2f>n8zP+tQiBb!DEV@7Chq<<@x?!sJ$--lrCh&`0b+1VdSoC8C=pSY zl=+Wu?nxsXI2mZ(FOj7{PeHxKM^MM*J2LT>1hrtG*{>a? zv+2pCeDcYK5JeqyHA(MN?s93~3s}nvFtZXA*lX#NkT+VwJ{#hAo2d~2Jvmm2_LXnv zwpOn`$`M!AK+tlC`MKx%gqhx_^Ow-938?73L!`nb?r<(o@oS%4S~M2}V4vc7iNBm(jHl)lf&^iDWix}M!GuliYvp!;v&J4)Cj*@HUAPSC)f@_VPNa( z+s#XGNR}fNbUjGmSkhjFS+B8-=bDO5crt>m52OdDzH#t9{aoUsh`j=`Ur^ftXTpm;0w-&&l(-GaU6DBkxbi6+t1o^VM07kV*oW7F11PU)e>_(qs`qgC z&s=$CO#}Im-Qr-guic)U?B;3HcV)W=l0r2t@U~yN#iha~Ff)jg!uXjLfv(ZFk+6z8 znbg$CS-4qm(QtP)c?>Lueqp#klRQd5d8NRepx74@T+7Yz@M6${h2bq;fF=P>nZ<7a zc@zjVwLgU^496Phzi^n9PAtxXV=}xrP&<*5+00Aas<^bVr?%5kVSX;WI0Kjz)w=1q z?r|kp%KaxW5^Iv-=lBXxMrlfuC8mUGld|09m57=kw-1B(n##DWR2Ssq7CR!W!(k`<9Z!kUQksu_Vo zrdy-DgQ`)Vm{Z9g1>Vf9VYo*pCfgL797+hnT$|d*@M2^W;*-8^a)C>0r9A(9_o)a{ zmS%aBtQ|b#_guTHgN$!Xh&V zz(etFZt;>fa^cw0g-wP(7m>E zl9{!vgD=0hxl3WjC)p;yo|!C;%*kBTcW?p1OWQm{JLXVI02e%4ejjsEnY;<9OIuH3 zxj?S~w55pcO32^`jHv??Hj3i5IV@$)0y##Ug~BD1k!!qqc@(6{c_hmgc`W6UU9tfO zD05kM*e}=jGalii89%nil9vi$+Cyb)moTwrX4^mo>F^sCm@NoG@ z70x?$kyjk)>wB(0J^;@&@g@i?f|aC|Kyv z%onCm7?{#!@U$AGgZe zl`iaTUA4;V>l7EIq^P)32$SR?Ye+LG(`yqFRyX0wNzsxRUVL61x13IrkIVO0L|F)3 z(h8A6u0|fE3Agn~MA;cnzcrz|c}Pi41Q=wyj#O7n225Rg>JcmK=Gq<9Tfu9;n?vM~G9?ot|LlcAn1Ymn6$zMW3nhpq!1@n!#2B#@ciC|@dWdJ4 z1H!TME(G}6b2p~EQw5p9HsZWf)s|{nDP#cg zJ|N70DAKpuzBP9LkM12s3RE)wmw+|$t&)&L*ugJAD2An+r6FjA^R68e?nc=E=!@Uu zazGbjPQm<)UxCi#3c_Yb1jEU+c(Z`xMPG~YbFq{^qI^1B-8Nw@wj(Vp`~FwY2ppIw z`Y&II=!t#;GmS31ma(Huou#CUR0N=|qI~*_kR;5NwYDCPo0&T$*9#aB6zHVIyQ=YE z7=j{Pf|bIM$Ajo8wmi)*7}8~|D?O>wA=7W#0Exl|cCk@YSEFh>p>|EDio(E(J98JK zCY$iH7I$^+6$iakN5ho-56gM8Z3XNluoP#DS`gI#eplJBf)QohyL$Ys@az=d6{BB@~5f5SYYIE~5Lc+!rsY$@V0^Qj11EeAOCY|v1f06EQrx{CPCjgfVbdYC4 z^pezn-7a87_5KLBliBr4cWb~$Q_|ubxi_uC>|1?i{sy$dI~hRUqHl>PbGq-0eE(t= zP-O&IetMf{H{<|%K>M2n1v!bq9!2Eozq8w9wnb)K3YKik)gXw!TIZ>wS6eCdrWB&d z0DG3BTKxBDwC56(Hjp~vd8t0OU)6)bq-%f%m}r4xm}mvVns5ifwhXAB)Ls_m0fVd# ziD8`MQmXBR0|jlIl51)yR4_yU>>@f7D3VfjOzE}TWT6y3A`5aG6KblIM_G74C#jcb z_F(eV!b$Xw@f;DESy(5=)tBvI#ZuP63P-;wv%pC)MWS#;`V(_#J^+>UH}}Je#zLHd zdgYZziVKxFO#qd&18@Z7LFKk)!ktRPEzI=Wor>eWnhBNt4io`^?rf>~*XQsj#xw`+ zFbBseE6xRj!6?UU6Mw7QQt27quTq}**@E2hNPf0neuhQKvaBfU;Ls|EGTHcc;mwgC z#1_Mx2eO^4O*~y&EH$nvBDA$dt`=fih=FRn0?V*|*V_ISnYmosxZ5Y~X24QT@!GR( z4_qirrtgdSry}<6&MmP$$7Kh7TD!SZ^R}_4vIquKvOZ?h^4iR|Ecb&JtEwOX`dj%> z@m$uMzoIru!WapF5(obaf%lcqNO%7#S&^OSxx8aHQ-wo;@n5RJ7!}@VFiHfmUo9{B z7BN;3q;u9V8ofa}iQgcZ?}2Shur&dIh-?WO$paXTguX|xj+=EgK)7kcPy>XUxcqO0 z$B0%7@~5h;{tBhfA-+Y>cEEB9Kx7JqhKd6b^j?%25G)(!0GLt$(kbEIbG*{i68H17 zDcbPTdzBXI79{@Fp^XtEkP6)qU8FMM1t-`66CyqSw)?6_+_pi%<1W0q)I=@wg9eIyE){hQ@PYt9 z^WsPH2yzS|BVY`09xe5kogazsUYG0g(6m7w64W_#Q!aT6nP6Ems?5rr$uHK z)fMMh6l$n#0DJh&*|Ie4=17l}c|N=twrE@+#Kfsteg=j%|0k;_*6}50sM>G?;DguW z&7~ov)`6k->DA(RjHOtcX>`^wD-MU=JLCq-mx*v3cFMSn8F(nTyBAzg>9xryuc8qAsu-liy zi=D5g16iWQ5k`ld%!LS}E0Kk?QQhF92(r0a4lS1QipL5J+6X zvbXk;`r%&plEpV9e)4(K>m~5rpQK4c=ls=UazCgBNW7KpFh&>Nb|KFYZor zsX%y>oZ#g>1vzT?G)&lBtKy2rOh58fA$P;*iCKL)!+by!z^bkYn-A8mkDX@2O+nS; z7bX52OYebpd?0q?lozrlJLXhlhL#Qr9EKD)_!sv9=O|+w_)LXNzCVKrVcdZeu62R@ zo=*YFNOLE#ITgjBH>lRP&VZH}A_(SiG|qI-c5jF)TV?2nqC-{VXhY(#qYui{29g7U zq!A1S-`=Jtu%%oWciA|v-``noz4T}?XVN<8XK?Fwrge72Rb*V>I+lEGb(3;?!{fej zvFeiEQ*XS_Sb5;_Jld~lYvkLo%6jN-iS6DS?Os!*%pal^w)l9C(QU)c_wur*ZRcR) zM&m}ti*$?SH&n`>A6kaPn1CtQPwc(P&n^TLn1rz+N!$mM=jUEO8`Q)-ujiI{YaRVQ zs(zC{GHvZ0L7@HsH2})ibhpsj1`f9Ipt+rTBqcpK_+bsPt1ehYbFcXszkI*k@cGx0 zwa6LKQ4b-i>0Q6}Pe0Lvd^Q2u3r_JB9qdK!90koe+pGQBbKp!_>^7kCG_NzjhZnrn ziB-tR2(=x3@#KrHH0jy~>q#@gIog6wV@J$CNJYb6f;~Dx8sONR*abR4JjjoScl;RL z-;cx)N>{)AODT>Sq$Ys~>YHvaN(KqRB@>S*5;aDAu0Oz=^>)hQhERsY(V$0)5H` zf8E(-qv!w*eB!d7TuFnuALKi0XOI+jPD8mAr-a_e!C&2>lRkStWR>dxzOSNDNs=(* zjV5)pB1mtVs`ldFIS#RLaTQl4skg1FN6KRvF0tkhrZAGZY?ODRz9{u zO-TKD4PNqRP##-V7Lje?sLyrw{dmjI$1Iw{YtA}VqHDbM9c=2)wgW}n!p5JX<~v?- zL$*PEL|<(b+u$TY1a?L)cAeK<_HbP!dBTHJLyQ3iU$N|tg9m??gj`XD!o*O8=I_W- zATaWag}s=D9a0$EezKjtTo(8=HrITM5Heb5pRJPX;FGlViPCkc4Vk;3X*yUvYLWM! zu$SNdYkBs|LBy{i<8&2mmHk?zvr7$j#!9r%O5Oeln&fNZ|SgT?g@^i$OdM*omnl&zYU@P$Y~R<>B{ zTKZQ>j5G}is?FoDP#?mdew~Hmcd9J7by#m_rMsa8m)FSBP&3VN)R{Ha#9V>aw2A*< z-H!Cppx21Bh(7hTg&qaag9lccWIacEO5$C^1Z|)7;wvc0sZs}~uDpIQ#&6UR3_3i! zlDwmndoH0xWP9~elJ1ollIWrhn(cq8g9i64@}GR{eR2*?I~HGVh=B*bw+D?#lnoC8 zyOQMrUt;&N#kTz#@UxaXr>T?=4~8)<s}lPDN(z`4%q&bTpGv1-zzQ;?TCFkw z-(18VkWK#Te%+`|*cmbuopisEy@v8P{39;4^LQJVLks6AlA$X5S9!Y+bD^f*+f}?) zk;+L^pY$uEqACN^>*nL<6OD=wU zwVk7kp^NZKEpVymB=fYSHr|WG+2x5#q{;4s+ z>4dtjys$Dy+ds;FEk=WpgBXdSu6`r&_3@4gMWM4aosqdQ`(MS~D%|_i6GSg`G(~H2 z;y?8}l*@Ho98?!SEorzu+gUU>N(V@dRWv=#mqw9nP(o`i5!uu(>;~PjwyXB8Bwf^P zt10UPGcQom2vvMNYV^-j-R`t%6!?&)a^&bMN^2(?{#>rl5$Eq3(utPE6waw}>!#)L zoFz-<)+T$^0Pxvcs1BxS-G{6|x50_L9Yi@1+u+81)>hy?aM}lHx*g^EYJgJdQ?M3S zCx81UBD)-&#PDC?`qEuA)Wa|KL8LDc5YWja^McBJ8|!kdOAC>v*gTDDiDXS-qtUs6n%Urg-FG>}O)b zju--$J4CIEr%SVkJ(qJ~FEiaN*aeLPc)==$Nr)xk@xJwBsKalgd7p zunCv2K`3kfR^JJwaQEp#Mn$}|Kv5o7stQ(Kk_n;QW@N@@)IebrkLvy@G54eI&je?SA9nla-7OqsxKz|wDUZ+%chG0u4a1dHe(SCj zm0}E;F_*f<)$yqX_ZO9Yj=L$X1}Q<9co^ z$II2Z_L=beC7#7Ob{Ii01+ReCNJ#>mKUg`+3QeRMxc=RiNYm`2H(vIeRu4FK1<>~_ z3$Y2ntfZ8l5&|3@5U$L+j>NMx;I(>M0;G8NLl>%9f%@wO(CDr4r{E{)^j2lqZq=ql zGnalka5{o1pwZvuMTo+zECCE+2HzQQrs$1pebDMj6@F)sD##Xz+~if+gao{v79P>< za>yOG^rO`)2Lyc3`*SQ3!heUmPYA?}&-l-TyS;utfLuz}jFtpYoK{a;vLPI~iS2`+ zz7@%T^o}9?^@9&9@6GL@E|JO*Blf5LIx_xnOZ?Vi`hst`GB7K`=b>DI|FzhSsW059QKu zq)reS@2$c$g&r2T^hv|0p9<1}ftF2ap(YN7NL=$e!E_TqkoBwyt=Zm_mSy$oeVOqt zpVa>HGs)4&XCd#Q7&p*P%}2`(Gd86{hq(aqfNDIrR2hQ8ERZ*r#&%{{VA3YlCI26+ z9rHsSdQpKY*nuZubgs3Oa-099d6_%X4r-LhV7=lC4OM%zU5QxEc1&Q3^J>+lIeC3N zlLSxT<(b<3msoS6li1g~vfoaM%H`sVO-z4Dr?BfBkV)*6=>t-{Um9tBD<=cYRW*C6A~= z|94Og5?h=D6kw1=Rz+1V8|6Brs+LPcObGVs=@BBf*mtD3eIjtJRktj5034Wl`3i4T z**LSPDK;&kmST1?PH1e2uoEBMg&8p-XHJGp-_;A?Hqp${oYX_*tWYRQH-f&@shF3Q z0U3}cRX5eL=S5GOhp@vZg}E1Lx_{OaTKRa#lb+}5QDnbM{PTe8B2ZWI#!wJThZ6AW z1c_yDh*gDRKJ_`c;t)SVf|JZpu`tEb2+xuEzwn4V{!T=$cC^&E%`(=YzJgz=)vwn~os1 z>Ym)C*bq4eI%Ml3AF}=?L|Nad9Y>G7J2n{IMnPCFste-VR57vmYDffy>1})qs)|s* z?c8Bdy3XURfrPS)sYAm+@7j5GJ8oo>D_8!_K=a6SckF4?h$EI_d;>%jsJ7<7c7%VC zmyqCo$uQkCyjMz&5r|8PFl!HP8(V6aH+e$*dN^0%YRrtsFF|1q*qnxeH1LD!m;;8n z-*fe9;sbLJ?PMp*)p4WyZEU+QLGD4J_rrqGN{8aFZt;QJJqq~_U^I16U6Y;4fudvSjWS`G=d zP6#w`Ng{jZ1YY9M-fAI4TN=)5z^1qy!;`6T2F6W|iZ^(tacOpp*6q|@k<9O){&tQ{ zm7mji>yu;tSf%5lDcRC&$wy!-6B($GTN6JWM^4o9LB%!OQKm=;?>VmCQ|7*OWJEVf zP;1Y^qjybwE=i_IhVvj+VoF^4;8bFXMp{ikSN3I95bZ;jjmVy1eruR455Y%co+k~_ z78O6741LvvJP;?f{pkG#^IAv4BO>$sV$(jKIlCr86HjDRwW?!~;) zrOrv?K!w#{=G^_%J)(Q(AAjgaoD5Nfo)uI{$@q!Uyf_~VFdy(jE9@SKM^*R0oT=kZ5l`oJ9t*ieO1_;Sg0eB0R@xbzm2H~ zt7@LFNkvh55V+zTVGcNhE-3S=h;!gz-Qnli!d}1~WLBW2yqz>f%OEOQdpEZ_!!qs* z_UilEdW>{$#<}-OU#IK0SXPR$!<+Y+7A~)bmL>K-Mcya;k@G))m#8;R<4tQ9C;9G< zut~W9cO%DMMs>XP6Hrv26_CCp=6EU%7I3~| z@2%wuI)_sD*E)IV`qn3eyVza+x#MO2fcFR9U-xQCH3T3x{Q#s-_)q#V5=~i{74y>n ziL+3h0Dg8ctH##Yi+v_Cz?d0|Ozb6~< zMvb!VQWh{j7Zhe*((erl2A*)ZEvKobxT;d7G!l$7sEorg1Y0COzhf{^wVQon75Y0@ z5kR8K{l_GEIVWBwaYwu|v!%Ma5T7f{KpmqC3sBIY{M$;fcJj8Ks*!yJGdarzq_ z^YkBk%P*?k%F_kpt5D8JCq8VPtuKiQY+S!tCvJXM1_vI|?VWFMT)^;X2ATp;Ie~fj zO=n~J2bdESsF}?hp2pAkfw*q$rCGt|!4G*%0^p7%>PNF629%|bH&e;cpIH3{Fk|Yx zPl<8MD{KPv@zp&23zkG{D>3{j^k5#xZio}l1~1-@`vjN}2+HtnXwn!A1(W;LeOD66 zv`Ij%-X=y)7u5|hcAT`B76>o^i&}F-OpT@}$R5{$6*MG+_+__7Hc*Sp9})PT`qNlkd69yy(SElh0$Pj^%|p z%#E93v)}4lxECxn{tMV{6*Pmb&p*lCg@0G*A8vh2p5RCIKO6zII10c*b6s-CGI@*7 zsog*pzpnOq4Lc}Bu75f_6M#Kj+xm0?-?&;_FNfpCJN-C)ROCrSo7r~ls`5$$@M_1h zxY2*L2=F6TP{Pw-sC_6{?s#F`fmC_r(9C?G>+-$LaD=oe3xDM_$-0M}t9sp@ruU}Q z#P{w$vUnOKOPcN1{u=&DWWw*UhE_~9!*JXRc`Qp;LY;iehq>x#B*bu*7)H^EO28g7wJJsY{N4mMWsbNITj^RaDSBm@_m`Pggw$tlq=W5d+yQ7^ zvxKvw_#Fyz6#pk#--u7OFI+E^edYnRWip#yzts{~Ab{ACrajsR(IVBpavMTgJU7q5 z!UuaOy8(;=e%O;bFf_Tl(~f=nO+|tt=f7bxx(Y(~-=+R~QW7Jjsv>O&=YG>L=r!V~ za_rI&C%6qlX3u2Fo5!%&2$Hpc?t$dOh{lDL zQw(B8(w2rXmsP9!`0Z%-a*XSE0VPxGo}^v(&`8C5ECo+GV-8PRl^&njA)+KB$F<)<5|p23tMvYp3nTW<6BDe2*^>KpW>c1X$;SQ+*Zaj+*3Vj z0U^d(@#>ZOP;{C4Vi4l2)tb5di?_0hVSvSyo|ocC?1?&8H*(<6SDN@lz4)ihURN5| zYVA4Q;o4XNth(!nc!nKb^#>VA!5u{!k`;&ywQ6BWven)j4H&fP-(nMHM-yhMPfDx3 z3sJr<19PhjXRwOwp2?xC>G?AunZ?6_#> z4EI*{GSmz;CZ6CF%NBkV)ZtcvT=9;wTc7GQ&XCKx$TJ9EIKp;~_f|&6qVB%)7Hob( zg*oH*%rAoy|4KC1j{j>d1hi}ePqyE0bI}t5dO}f8%v`edfqr1UTO8;gzYtOoir{_8 zj>2=Jd)D@b{g(zSe4`=R{@|p$e&^%Xh5*yvMf|^pOk2<-c zs@bvPAgAPn(DaDdWi!_Tnt4J+E8Hcxv&HzuMY~?V$&-@DQoI$}Uig4>C;yBA*e);= zg5$4%J=uSjn>)2FKEQnl^c&}$9OsyJ zUJu_OlPE~{5a_vX*aLQLM?t&3ll*yq2LYJ5!2cuyMQe zJ*KwEwBNU+%s2fUkbobxOav%$)>%z2Wq5^N;51UIk30kSv?u(1$5~?1&3d+G`I#gkl5)#t3}%au?mJDnD;tz zRQdY>9|XBAL*cw6xYiwMJbGIRqO-6TO(`nFA;tT%-uKvBBLt)ikj=_Ca{_TF-Fo5t zmv4_df?*+^FIsSIYgmdr=Bj;S?p=X%V7y6Q^zF_n<5s0oG@H6CIrnPxt3KdO#+|9z zF<0hal>QdNWyBEJ(l>g-PBx3~&9zTSboI_C1|Y}E%2tq5($K&pAS>s~QsH6KW@sn# zFxFhT7k52Xn+nI-4NP>ygSHD|Zd5aF6`OzAK-2WtPm#2(7E#hrkYlnsm?_K8v&*{A zg6nFlo#CNtCgP2vE#PJ7^4@;?T3N>8y4}lT;bpyshZR7qYITfrJqdhBVZS>aTym&u zn}mO}C6N2Tv-Sbwz?pbhII(pI@4&lbz1W7QZ3e?z&Y1Uja6P+PfW9|Y`2UD{%dj|_ zrfoQQ@Zjz)!QCOayA#~q9fG?%ghdy3x8REtf(LhZcX&6~{T$!-WB2Hp>gk^9v#VyR zrn-wuR)R{Ko;bMO0!^rpd0?;JGvpyg*Q>pz+(K zdSv0uOmei7Oc3GqC_J3>b=yEwABL1iXq#@nK-DZQXJ*`vfQ&mQl+m* zkKxl^TYr3qe_@63ofOWzbbd|Dd7R?I5V0gT-!iKP2;GaF%juSo)p;Q?Jxbu+a$~rU zY59-H&ly);_q~b2n36Qqa{Ax3wD@dw9mR|SuiH&zyiaLQvz3%A{7!D7;5y_<6vVQJ z`ab*&2fJFDSO*y$r>y{6-M-t$qoBSyK=&R1TBmWujwvf%{?=#kHCN^9&*#W9)!FH- ziKlVX=&@qRx3YaSM!uMSRd|-`NE&Bue>8N*V(+gt7vt%EXvr`MKFKYwF^OGIWi-wg zttg2lN$}`2A`VYQG}bG+a3i|<(CfsctxWgDfvYP}X1q)&KE6NvI&g1N zIud7N5&cVHaek%$0hP-g7H&7u;&6Y1W?Jus(ZBVMWr`nw(U%WIVp>g!l{+YIIFc_@ zD3-sbxjp|eez*ov+_c52#8a_a&ClB^us@oJ55Gzzl59R==ZQCXZ@haOu-3=B#Ve`r#L`jndA$Z^*}vRnqW%h)ElXOC7DHdShTT;RzA}-m(pZRp}Kbi)TB;e zdtQah8o@|?x`m&5(6Z8(V7MNaMfjb~*CHTLBma_LX{DEePK7aZ`~hMw>ILrFxC9H98~w-kr78Iqr!hi|1+frNwNvh)jjT)5t`aS`MB~A zJvoL>`#CYeNOQ8MOEhs02fLl!^I7JFwsB~%j}2<2`*YOo#;b%hdWQGRM-H=?%NAQG z!sza7+-|{Nsx`VNUxud+Sr0H8gt8{Suf5%RM(pNt(n1ltn_tOBqkE|-ZRwu${+^}^ z2yaKp3LR2XqzY73?%FV9)%mp|+a|M|YHK~6BEHG+EK?T54TZ3*>omvi$@gQi)W}E+ z3{XPk`1>b6=#5U&M^%`su_1HuSGIg0Xxh&pWNE^DsYOb}}$umL6?r)>%d5A=Zlcmqw$}?<_y2-#*wo>tv2mUn zVi=RN%t%vW9%Xh9XJBfkiwMCyAca8z_%9#<=`!iMUDlgu`?3qzKK1_4_?vZk|H;~< z4oy{i&a%T7Jnd7oyp!+$tU&Fe=nLH6fATiPA}-EvOGW^%0*dT8s*MghDB~f-QDzK8 z;U(#&qD-2Gr;qg&J`4Uz=6%bn1iNqQx8ln6yP|1wx)H$}$V# zCpkGED$#9lSOff4iRvMvNOtXXtScMcwL2dpX-_k=SE02J_Omjeivk6d~ zc7PN_g*!+-<HQk_OR#8d$p$?=TYZYVPQ29OW77$ zPqu!*%B!@ptE51axLR@b6lJlvX7z-bpGd4gEfujhtQQEXIYT+T+HKMpd0Ffpo5ljt z#;qFmuti*NTX*-D-bw(pC93(6f9n3<8Hh?jc&56R!$J4T2x_DqgX+*sX^4VvPjT%1p`6>&xnaB-gHg!S!ozv1|Qh~X$4 zh_`26;&ey{gfKM>OSZRdBkw@6OPy)&Y{ROf@%j8v*Oj|a*eUGlsax=pVsDOPUw3R^LV0B{_<5(*AuYf?Ch=AL8hkUnfkiPR?J7*z zAJwxGFYQC1xCKxG_?+oRVNCRu3R6iBh!F5c7AFd$P=9r)g2|0|Eug)9z*J5~;`SDf z$h*gCFVX*Y#p5%vc)OkI2sf!f>>N&)!V@fwp>#XG>d1!io}s4+BD|C|nMWzs3!2ID zHZO*}nA3i6%VV9V)1s9nsT+6GAG{KVVmV4N9#+u|>4dJGbm{C+m|2BAoRt0-|Ho+E zX^q_)Dwt>}%%(AdEeR0U7YCX!+~2aw^&uPP7DHXO?CtYoX?O>Tfq!_3#2vWkl;2nh zyt@~4eb;peB--`C3z4+!!MnOxh!_fz@@|Nz+@uRk7h_6c(WbVbppiQkxM1iI)7fpi z{b+J+4W$gswM_PY=%^X3%D)v*wc67E6eZZ@{$nnUgc<_Py6iEq%OBB8eSZF)51J!r zwGH}m+3=V&pG6fK~T#7n%s)xYjL7r&nfzMQ(^nG?)N zv6@TIa2sKWXEZ5AcpB?_DXr3MDlW&%O8A0)wF3ej`?d^RqW&8Gcnes>-nHxLYp^_2!vl}rFw>^v7Qfe9&UBTj>b&L zeKx86H!sy;83b-wS2!Ma=rq;a%EN30%5=D*HE*zQBni{JD2Sion_Jq+~8k z%fo39>gcl{19IG9Ee#qc{?Is)qq{7NTkSm77~!R$V&8sG03Ycpen4s^`SU z?u7asw@lOo;*RQeK$%x|xN4b>YTlbx-NXxoC7s2x0Qyk4D2>&^PA}LV&`4?eu zUr9N95|vSuS!udm|1&0gjBM&hzaEK8(WlYXpeCW-60o6|7BZW^b;hfd?m$kl=X zM2w3xJ-?&?;IZM=ke~sQzuq2zX)~@>$XWHg7%2YWgkI_wJz)Oqgn)vx^Vw6W=2e|N zLKS;I5o)-Y;ZT(8db`x?D5vGRPl-pH8ZJf{3UQ>bGmn?9Jpi!$r9Ht>anh>(B64*R zCc`@ItCw0UyiXgV=t{@w+G_5)wX>?rKB#<`_DbS+ZB60XE6T+a9FJQ3VEvfVf@8Q1 z3FqMB@lshWz}#@nyI1CNsPQz88`a8DU>pj|aYS^?sa}Jcsz#i^I}u8_6}2G=&U^o$ zcMaAfjYd^>3wbK(L~|XrNtw&QJa0*>1Gilib;G+z3-|nfinCX%4He=MAtXOl5YjFr z(>Zm9c;Q9SIEoR`M``NjJ3y-*?7i}`1&Z#!Yv zQ&`Him>F&xxg&Qre`hW3uRfqJ!+Y8}7PpKLTkM2@N6?FU_a2XO#IuxS9%YI?T=k0q z$<zn&9dNE<&9f(l|_a@k&f%HzG}<+i%m)I@Td z`}~d^&DB|TyJ4`i6JphOw@kuWkg)yIl-(qlNU$QnZwbf5&mpRY?FWYH{uvIv_c@Qo1x1F zz1n%7xiz7cmG3)uLTfFtQPI_R)Rc3_=1ENo)U8TQL1_1?ZO`}%1ZKf0h}XGAMVHMY z#oC5|lSM_@XTMh#o8-;i`EzHC@aY!EpQ*Rk-38(qW#(f}t8ecs-37O$jz2jb8~wk5 z-~VZl9oD#0B?AzD%ZexV(6W0d%Tj{mcvyEdFYFGft_&XJ)Vp8N$XD%1+@#M#7iByb zChuEOMknuM1NovZLVMno+A+GH`Dw0lFNZEZZECZB*2`Gl$znJKY*=`&bH)p9$dOOF z<4fr}3ZkvVw$o7~KNHJ2;7oJHH}UceD(3N3^^tKs%xy^$ns_P^arxI;$`i@`84aR1 zEIgCciIy2A8OrtGeoIea>P7Ri;vY8Jy{sQLV%fZrLV#+RtR2n^2w6k*lz3xFe@m=+ zbE1DKD7_yrkW{IVSwZ24_Y2HW$+DT*KxI(<6_eXvOdqIQ+!1ElaDs}S;^`{S7w|>Z zK8PY`8D6HZ*Woo1#jIucftg*LaUelHA*uoNMg!1vx&t#XEFzx@4mf={AeYz(&% z&4sQ}w^F{zWa7PS5@6NK*eJgbiAC5&5Dw>fjhx}ra^NsPHFeLZd}=X0*~G+jXE$~C z2!*=7OWiitDEM*-N8EKZjb(6o@cBlIPKq%RedH=hlgfa;`J_1Xmb(iP0$rY2_0mfU z|~uJ5~35q^%(uPvKj zB`)PDj?pOBl?*;vO%FUcTj`tgZDk+CaO2WMNIdH>imu7doXq!`E$ObIdCpyO2D=w&_GU#b^3irOKEdE}=<|RKpr?{% zd{%#G4;uKJ zrawg~NUhUVE>TJN>SCI$t!aTw?xpsM**0`#^{#P8w&!|G3Yunw-Aka!hye-pRiC0w6NQH&;SKuq>ho#99MuW?S9qTxuQ{lKA z4@yH+j!SfKU`KTTM3@Ppjw>Eo&d4H8v7H7eZx@CP93{qH*QIWrm~R$O!bQxsoafJf z5M3RT#3hgs$F;Q}yF8RP?VaOpKgkKFyhHa?MD$`^HJLDe;0&6E5J(B&GrUo+ubi{S zE=dY7yyUnABybJ7dZQAdeZURQ!t!DyNa`*A8wq;~0J|c~k$ZkT`V_aH6`GP{gT4GQ zx{H1Taf(x%tTON8UNGEX5nPfEjxbD(vj8r^l^coCj8AVI`ji?^Ec#Rcp=8v7Fu0`T z5lx)o6o;Py9=V-p^aNrJ|CQp#U9Gdb!$Olak8NpoC6?|3Y zp8A&R<$z~3LxD|9aAlX&q6ds618}RpKMaQCIS;`YB3)Sx{%*cP+Z9T4=wS%=vOr-w z`toW+0|+Q*3Q*MN8n=6~_!v*D>x-ixj%zOXy8j=`ZiO=QyN3;<*ie`L+#|BvgO zKsf@X1d}4pnvh=HL9bESNe(e|&{x@>E~0Pa45-kz zsVE%W;aw`0-JE9tY;1~POqpWe8isnUn$AtVW9y)PvJC~rs{FH>8$hCjSki&oGRBv%=K4e8t5tzv!?U^dU@sIy!JE@TOQ)JD=EaL0RbENr`9 zId2gUWZDllGL9E3^j4*)qfL?gc>aj>+D>A>vTCZfSNV@&ye#{fs9(Jt3nkt{B)SX$ zRl;M|a;z!jUv9w&i)GMhAs_a^lEcv3(;;QQz6K!Z?|89rZ9mbi6emD%%L)uXcqGMn zxj5lc0dAbyCbkQV90i%S@Hv^lGh_&hidc|dcf-Q%AI~@EMkx+3-xUOu{_)HY<~iJ} zFol$XIF9Al{{gOv#Ck-7m=NdHA-f_@XBv61D?|!7Z-_Hpa~!l4g$OLqNJd9sy4fia z`nAN*`&?5Gj5PdOQXCqtgt*=?IzIKcA0AVM`VUXH{<*X!DoUVo^h z%l6X$rpcb97%i(YJd2||A!Z^bJnL4OB$wa%k;={msj{GHl%#mtHgmCN7}n7X1&V`H z3|XWn$KH+&dQ?gz*zpVq5wL-TvjqjP#vQ=IBO>)-9gv8^-O$8aj8VN_v(<76c%o+y?*%o_)_1! zyz#1cxcdW9a_!m%pXl&}e3)f*h{t@kA5-@HK$XAWJ2G|jO+S^eizAIN=GV9t;dh_+ zn!K3sMKAiwU&ooWSL_ioBr!Coa#0r&@%?Uh_ztRV!X+n%JMz433dKjpC+bb)_JdQb z6oFMe_Pa+kgYkY|fKop6NOc%yf^V<_7Ix%5T`d?6w0EHta}VV(*6JU}ql6K6!#UlC1vFDN=Jm{(y$-|NuuIS5qSg;nG2Nk8sSHsX0D^hNwC|wWL z)d~Y~Cy{I!ee!+2&#VP_oY?TBOmBM!-oa``wGlTpuVPB&+&5#DF(W+l$JD+Bd1V*t zO(=a5V%-&TT?IexTwZ(73z>(RkKK30CJVF(X8Ia_!#JkvE)w&P` z=hKq1f>iyO|0+q2u;m(*GaRjCn-w~+y5)KXxNAglrw#{D>?DLIozdWTa)$98x3REP zvu#GjhGh_(eRud4%SMGjhgY6n*Y2mRKo_% zy~(I3+%6WZz{N>=BUZivnJQ(T^W4=EFJ)edR#O(_rAt(>u>gaN$+u#`PO=FF>i+Pr%3i&XK zpMV{YO?G(;-dTIZOHzmD_hPz1bwu$s!&9ShmQ1owt~aD-S!60K$dDG1u(N04$da(la$}~S z*ndN+^em!S(1ze4uwW?88HLlcES6d-mq>ZTI=Y~C3k!x2xAy+)6`sX6fvHoeQH0~P zF$8bOC>&zq06WuIh2;(s)-i$|cS>eEOA>F6m@WY#7Mxnn%5OY=sLzT}q;ZS#3||UU z!6M29SxB|dYDN*8LxHWLN7kFsN*_DAr1i`yoIQI>g#FAc&cX{*;a7g&_+{+APF#tO z%iO#OlQp+U6*wHcBW0d5?1!O@I8*1MDE*^>~1RIjOycXj5O zuc{^yw2cHw?Y0Ji9o~^Kw9e{zNOG%RN+nY{s?4G1qm`6G-U`#vZvTG4$y!fG<1i_U zNq+rGQC7g1=F~T`VcAh@4!y=dC$ZlGCK_eNzzQ$01s{itl3k?%@R|+;_ofC^AzvwR zH#XQq)(Q3t2bFv*{(Miesjd;f1;0t`PYJSvGi1fUmfnr!A6!a(e8;=>jEF&Z%*y-r z0yJn$wTj3fo|HN`P+r_(DlFbV`ci^`l`4psIn|ImvlL*P&DcZ+g|qGm!Wv-Q??ej=lz_a3^5QI!dbOaGx=G~A?` zc?#E5QZE`st-52sYZC2?XeVl-! z3nVK5Acj)zIK@=;7k63@9w+`)F1Tz^6O+99^;Z;j$qb$N97Zzl*I#rDQxY;HehWF* zI3?HK$O*wY!hs7p#N)2hn>)Hbv%5(w@=>NP^15WiYvfehdF=<=gemB`%BPz%rOGt} zrOCemL)e^h^f4vQ*a`#El6>yi3L!L9F(rLEsWZ3rHtyQ8Qkf;+PDl;~fFDw_d`jTM z-=ZjY?(LDuwm2n)7S#JU95vR;oCl`wF>NI}^O&T*H4+N4+ofasJak0H*>R^!{WI<} zvoWfC{pyjY-eJH>Ar*U1nWN9MVIzPk9X^SnFG(|KCEiIJ?xmRAVucBFHeaPOnMCh- zbUI}JoF;>5Fe3n7#eZ!s=dm?#phWuI~o#U1d16UKHNJE(4J$-v~;@72ey>TSD(#Ej*duRN8Eih zg?!pYca~(2N%?)Pspw&6i zs^>F{ui1GypJJ6Z_?KN(>`XxWrpE{U&Esc`i_LezDB9BWk6&mX=-d+-ERkSuaiiNn zPt!&nh0W#DxZh(va}3&HOp5ox!e5Ta$QfkDj+w29i(zYv&2PrxZeG|iH4xfv2A

3nS2phM%60NWb9Q#TX{c;_Uc?*258c1nuLaGStllE zc=!aQ;1i~MsvDEjN=h#KGb>$`zxa%aZVTeoF&$|B2lWu1!K1oat?AF~r&q5IHW%dz zR2g`v$GjCAc3mf>rx@>>8%()ThE7#$sz{FO}7RJw)u)->jI%WN$!v$*xDn=}Ts=_!ftD*t?sgtK=#+Lxv+6+1fklV8k)7Vo!zA*g87U`{wev3Zm z`*Yx-vyq_-*NZ#Xs?WTR4`w5TZWkYc9e7hIjywi6u1Er1AT-QxQN@otMjT!NaMFv9 z{*86z$o>2~!<)X`QNxM=8fo6HaHg=ENL4qDz@YuI0u$1)oI`TB^Bu4JHhd|T|?8hk$tI6hgB0Co#k55FcuY%EaD zZqhN0#XMGw;9jyiWR*Q+!+xTm;?^iO;mGO@9L4|JbCNSyZuPy?=DLmvua7gXVhBFuz*V8L!rAoAnRn5Q$pp8k-a&hq z6Q;s~aREW8kb1A8c0Qk5=BTW|8TY1>k%+umcUgq?Aeu6ClE%c|W=*h=!1N}!Y;u77ViwEh$D~+Wznp_rq#UaystlK_XL~OHTs8xCN0@ z)HFHuuLtqzxca3x{a7kip8n!Da>q1uu6m%=LL3Vnj*q}kF`1csu<~#~M=jl4&D^qD zlLa@!hm?|=2*PZ4=bYaTyScB(suI>xvl3$B2ot+W`or;>4NlsC$weda z5K{*-60W&@wsu9IF*sU@SA!+u%fiuBD|QRDM(}xZrj9Jop}Jkl55ky&a;!LM^m|2K z5Fnsk_=&m}43dXybh5r1c&hRh+RWn_2iCY-iY{t>T7x|dKN4g4t5+tI^`I0+K}*GC z@#lFCQD2;{vRiFtK=m3l5r5v~*TO(wwb{zYF>aj~kAG4&uc5Z)BCbQaJ_t$CqHs}isUFKEx zwK2qgbFGPS0c>PQq}~WWYJqdbXr!1AYNilz-<3?`n6S1whssRGVCh}WJfl*``{0tF z-zGK@QbI+9Ep^P2FwNvvoHwZ&cd>O4aHFpCI!t|@MHnz)Ae>~D%)C7mAPOzd zhimdus)~39wepCwt<-oGV`HtX&If;}eY1=V?%nIs1c!=Gk=44^$Sw_CI*Y>Mr^yUS zLZs2DRpo^dQaC%_Ko+k343$rlC3)$OEyh>YH}s6?*6EoB5m}>682oMfE2>-{Zm?_BzBxwD#t@G_S za4-7$Bcx2wk*)`}!upYWP$K%F!kSZ_D%+f;nQqd2N;rt0`eZtuFjI(y*dptTs(+sh zhF%Xs!uGAY{DG|h#DM*Swx5IoyN%X)n2s7tc051zlS(KwI0t3QZ^J+3G$rLy>Q(D{ zpl~sjK3e+C=p1Y-E%hIKLH!ZJ-=Pp#dKImgD5;bme?Z#(S>{DJ;YF?d2qrmGYY;Vn zwBMA=Pm;hNh21Gdrb9BP_}F81QQ7V+&770cMa@9h=7N;V&`P_qBCN-4^EapU2{2bowB!;i zHjM1e(4&=umJvC2j~!7iq}~J2e@*+rdCG=E6+guZ#>FZLUHh>p1lUep-BzW>h)#XK|+*Ul-we)$(j-_^f|v$ZmRLdwn10v<@y+ z6F4>|(g)p8Ffbv?HsZ2B>IS3*H${^f98D+AIY*q-N&kqj_HA=0kX<1k_q$QzV{rnj zxj%*#`Dwnh(j@IqWr!Z-kKPfJ*gyK(8?ST_-uI`B7=Ju2dwfo($@6*?vmbd}qNYk8 zA-DeQ_MO3*2<^HGG))6pln-OaT7F=L40|@mVk(+o@yEbi#Pl!}Z*&g%n^SPQBE!6p zTL3OmFh*}Zq^sWv8= zy;60wK9YK?=>>~ETSaB3ym(Z2it8viY&&d}#o*VMpn`KR?03CMF<@#Y;%f)w#frT) zICK1sc!!AWFS21z0TM>fq>i0(5SFt|gCovuX@kGe*>=gU?H-eCf49LeL;ETnU-t`* zwz)Xz>vk)a`(xM_vs#B3+zomvkG`s39o9mO7fuunGV;2`{W84Jcd9JCqNbL_rUSn(L4!6sBU!+fX!7*o&zKV$U=Qy|vA#e4`P0N&}&z zLXnaf9H~|gJd4m5q|8DPR1P#lh|9tuPLmQJTO`}V{gPbs`ze{Q));}ly%iBfEZf`f z>7u+7NLw%!Mtu+*6B~j4<4dn6CCha_X<#Ny5woX?iyCPfVSo<@gyqBP7tBKyY{M`8 z5@;|w@6h8U>en>d@4|_#Hv(M3;Z_8Osc>dIpy3l^3AoU8I==iWCpVG2COl;+#W?6W zwNAB_tMYRWVI5DDyqcEor=1eO%S>4e^aw3VA~f`f4fVx#UCia%uR71{Jga6E=Oh^* z8nR2Xifhu|-Mo$K!d59k`*VDxPs_F>6vv&~padO123BMTr3Rmk71Rkpe=?)26%@S_QdeCaS!uKnjV6-x$79 z*evt`m;?o<92h!pxqVi#Yf=_rU0UyHh!4|Np{OA^$)wW?o_KL(@QfuJH=7d-`fV+5 zg5#Fk-yWrYR(gQ5R;V~)TBjYI=M~!V z_U}SW3Amj;O{@!=rnv}>>4!DVdn%3F6_@{+ zG1P`&Q}oC!T~oSx!6nrC>OP}GZF=6Sa=MFJkf&cgOs}k&QIN7ZWRO3e1%}BxpWps} z)~Im@VFn9xqg&7IiiRCeKju&~2qOJ>S*>u!X7z_+H*DFhbQ7{vW;$u&Pe%JM!nT3@ z{l`NlWOBK|?$Ka#=?y`xH5Aw(e5N9mS;MJVEmOj7GhOe|7;}!fhU|g~8vM$c(Bx4x;v=UK%xl1fW-@c0o z#+pW3y{EHZu@0lgQ)MjrJA$~gqXt`_*h9lf);(q)(=bGd9NOvq37P}Jpf?(8A9PF! z&T6j$R-fk1C-DEeJ5))-C$(~Tk84@Yz)1KOLO5kD=uQi)IopC7`1@A<`TPpZzVo-{ znB*K4Q?x3_<~XCpDoH;=>zZZwKtYKo8rqAp%T_eT{ctTQ`8wgMg;^G1zj7>ku{s5| zwFuxG^h*LKI1cN*A_7a*Ciu)7qqsxCLKwLBnIV{Ha%Or)a^(-SFPdD)j73Olwo$Fo zkz4t^Znn{dNx5X>H=jSyD2ml5v+^2+cwLL& z+)-6Qbo*}@c8NguZNoE1g}M{%Y$kSIaan~rr3UqfQb8NE(|Pw#)oZo67HD>YgG3-4 z48|75LWpp~&qVwkBhi)AqD9-4>n#Cq54UC@$-AzAHG@)$Dj{RXdMuN>uHWLY>p4GW z)iaunrj#Sk&HMf|*Zf}0i&YGnF+zYXGl~hw?UiBqy<4`a-_C_lI){N;N)aIr>H21D z*uJ5+V1ZS^df1(#xPaT6bkb>+?J;}8N(j%*DphjIX)pQdjQ$gIgc^{P;ELuJQ6XN~dQ?O!A2e zhPM2R*D5cdZYZtl221tGb3-=LOB5 zFj4*1oL>g}ATIE8K_AQFrEn(r7`f%ZmM zvx6prr1l`Rl8Yyw!!I$Vk+sbi;I6o*6h1mx>%Il^=L=fhmDtY@eplJ8?j_>stgPO6apBZ3D z^e}XJ%KJe4bqX>SHbq!nA~V;LHHHgN-NTJ=5V+iXG(sk|sbloVpL^d5=}N$NXyv|{ zcGYZWsb`H~ywP=B;rU1?&fPy_#%0{y10Zo%Ht8(j%RtWvcr$8@QT0GlD_h`I9~Foh z8p1AN2Q_|k`gE@*!0(DEW>w1Lo|0(Mhm$z&I|lg%yH2%4T{uhNxH9q>NSWA&q=jyNN{;= z!eov92@_~>bviElv$CQYE5;JF&a1r1M^ZM%GKEBP14gxao)JJ)J_u=Do*G|wd1{Bf zD0fHvuN{ke2OyZX*1Ih(dY(G7y|mG&t!0RX#Q=Ew0rC-9js`Uv5cl;;#(+Wm3LqNV zwh;Bx1~+S2r~Oc#YkPG%1dF?XiM9r#J)AWtFX65|#%t>z3ug5>~# z+v7ZqosM0Yp}-X2wu};>JEiD%Yvqld&w*R2_762@w&ttTvjoYl*oxSQ*`#mry^X#3 zFAlgxtb;eF_qc$t96N!Rg`#?a7dxQLhEPd;&Be8_N);G1_uo6t;NV{@?5T6#RSCKr zeS~?0R{AW<=|>i~J0Fit#Vlx0V~QtvXiKEpVkG>&4u{|;`^m=9o|KYkOQ{c(K^-{! zIe`}@j{g2e;hj&hHD33(GzIHrb68W@g4R1rwmRzw?fXlXo?9Lo;%~+Ax>K40<~vIS zdH;u4lA;!|?RaCRD8UqQfb7(Q!wz*1mX26;y?`FCCZ2sFctp1?H?J3*Wd*i4G;{?z ze}X#Zx2$ZN0scQg{Kd^JCReAGj7#=9)a&x)*kvvVO0KI2&DYu+tEWq4WKEhX*;`+5(-bkAoF1? z9fQSv+s{{&D<8G@AjY3&6idE<1gfReM473s{DPW`Z6uxe#uUbi9)GfUvx8Gj{%RXU z<0%Impt_=RS;@}=S!x}QcgT)xGd06hI%P`!dx^m*gsUS+)~((Wh-`=O7V4!8=T8gj zlrN|p3QV8iY?5<7&>KsZIUcc4@@u5;$1_A5nq>`=?4B8_YOouN41>BLTof7}&iYyy zY^p$~-nGlpT#v_rN)0>FRn~Udg@g;~rmR6+@%|qgf;ydXwF3)g&ExeL)bvHos=9JUUSrK*tzUW}|wCW}0PPXS-04mW-`EX#4Mqj(|@xTerGwjA@>QbA!4qCpZS% zvOat_R!oghE)eqCTh)L82&xa!snW9s(@N_fC5~S5Q?ZAiwW}(JM?Vo6Z~f(DT!5O< zWQ+%EO|ntBGv64~hX$_@QU~y~`Fo*L^)mOnndd%~I#y39>>dEB#~?kAROj3LOU`f@ zU0Ttu+Gkn%S0*s7;O}_0+vPmXqixk@OzGdw9LgRnkPxa`wD$la-5-8-k3dtb6;?9fD;0G1^9vnY4UYeU6>u<*Nj03DNHkb;7B~Bg@HHkX@hhVhXO0|L-4|C?F;p1qd+CGRmtUjSP?75q? z4)VVb8z$}&bwewOaAb?nzC(uf3^DjIMtbiy6n}{?ULTc4+<3hEExE@2mS9KF>V72yZ zM=0oRN^J;7+WP8*h|vM7NOy93(Nd?13>m#u+ZSe%5kNklrmFjzeJKQ6@((z}hv?7Ra-6edHVL})iwoR zcy#xLA+09<2&3FX?*ShiZGN6FE{P5mi$SjkBLLg0e0jXfvO*Kp{sXcxM8b zqy{HUIs41Mj05-SuZUj8u)2*+G^X?oo;>;MYq;(W&1X1CY$7Y;ri#9tB|zstdy>!- zgX!jeyM?I}O9`MyWuN^Yv$i&;BuNjY|dnopkU0 zRNZtm{z=l0SL_nSy9o_zxr4d#b9qTevr+LQc$@4}*oyvzdy!8T;dCh^pRH`BQ&<8) zoSK;H^aOgvbEwdMFTDCoK1s>+fR>a9x{_Tx(WxkEFH#nmkZB%if= zXWWwF(^ZAPTr#8+W5(#p34d`Sk>kvER#AT)oR?!XAZ>0|J%)qS)vj2v`uZj!k`RJB z4JoR|01O}{O#pUy*sANs`D)t!Z-_&@4CbulHeR;NfG3 z;8u|?L+`eX^Mn>_G0#OMh5jNU9b|I&jG1V3GWmJ%vh-C_ZJ|-{;?RGHrjU0m7;qWd zJcQ?BQm__(-uNqhHC}5Xb9G{?U}Hc3MT_7gN~|e`yn@JZMaFq=kxAD1w-)I$voci* zxm&9!H)HW54dIUpOuF|QTj7E#!~4kUc&rxa*$FF#Q1zrF9%)C zQ~Ep>9oOck<7mtWqF^72xdE~0i1rE%4LVhUEB@1HCY8>@W6`fJ1O7rh($Gk*X03%aFuy!SHN`|w&i$;WELFytTkZ~QnJPr*)i;U!14^cTxQC_iYp{DpYBuK0 ze?Yk(4l6f)#0@RKEn8#LDTcLC5L;zn*3Z`zRkVpu=0!8{)2+Y7>qk|BbU;1sero`y zN1uN$%y*75X^FKA@1Ijbg$f;$OluyVxm9bj5 zR0k)-Wt=U!xz8baM>9W0=xtF#F;5s$!5;>|NZemJnRnc>=z_;xxIw+uI;zE7Re%-E z9`!lZ-2PjNiI7|_`PWo126S>MKuud~)vh2Q{$v*|JvAso+b3;qL9SfpiZlI~3ykKr z7UM73=jse_?OMuM>BaLX*(}WA{|Q&I7pq(hNNRcGAFfA=eH~KZ9`6|E->egKi`#18 zjI6ckql1_(K)tbUc zUdt8crbh%hOJFB!BC4dKllT;L=At{w#G5Srft8c0`4h#(Nj!pR5h3usr~kJIH3K0!7T8HAZ7U zujLd}W<(`ye`+ehy~a5!h0OhHO4vRqreJpj2XtbWQy^>v@IqlfCiq<%^)(0UA$-y<=ti0Pu{L*M0 z0x}bm!qC4x34oBNz_!tBNU}l6`n&qn>@UL)VKlkM^WO@Usl+LNo=i1~#9OTiAInb1dGur377gao7u0ZCXKlb0pwILY{Q{^>%6NLTF+ znP>Y{RSXkkId^+G^|8>lB%lu^SWX8mb#xit=ie7XA3f90v8uj;+dN$+p_uuHRjAh^ zbY$~O^DLtnA7E z@GgwQ5-3)?&pm(tI!*Lya}l;I6g!7B)oKzHE$VhRG?G<7g`C51to0H#JW)oT(z{`Ef^e}pb(CzT`^siOw57z9u4F#Zjk}g9_s&7gGh!Z zM<_?F|IU16oNtaOQl%as9$+E==eJ4Ol1^WU3T*D-#QSZ0G#q?amzs@a`@iSah|{!_ zTh%|mP12Ua7f(XHtGu4x6LtwrW%KVv)EfSh{r6`vfQzLb|DdA7R%ZP06J-Lsb&D|F z)mG+iymLuO6y7_o6gK(MJ~FSQeWF=^@veJE!_Ow7x`EY1^=AV(y=8QE93&FLenFk7 z)2N2>#jK^IZ?%yDkJ~irX5XW* zaD@D>-t4IjvKg2%k#O{L#zT8astjnLR>-J?7LEKLP2_5F&@Xfr!TVIZrKGZwbbAR* zDI5>r=yq``DhT;aI{}|pL+`d?diLArBbc*mV_z;omK1B?8l#G>&zB(S(j4?FnD+#b zS4`?7M;N%~l47f0knkJ5`ONdB1gCg$w_#FXnpkoIv%uyH7J<<(a6}(lAduRtEw#?! zqJ=J&Hzr1jmG#_)&7))2xbql>LL!hrocxrP)>Yf2|=m~#d{@ABwdN& z`>{m2-mvBp z8vEgkb*Cay659W%skR@t(f6PPbkj-=9=@=pcVSF=<0zWm)5htc3{Ko=680Qi6rbL! z#_?E&^xbIEcKnU8aC!$$JGS)JkOgYNjdsYk{07Kqe&Z;b-?*g~&F}rE=>a%@A00ra z`8{B~o08M7=F|LHYbGSq8RJ!czq-++|ADX>Liw=GEfa9{bB)gLw>O$}Xo5Yz`<;PV zQ~5n*l^W0jDKQgPexH7ZKtMHBqVi8`qIp0dfxioRfTPHp8pr^(%L4o=>+(d7QiIV!my zxXUEZxj1=W8$EdspXsLL%_i}~AO70h79VhQvvARl1Shpp2y)?9vdv*Z^kCXRL zw<-^IU8hQT(n{`Ts2y!`7g=HEyhGV)liCQWXlkE#fexv@$JbjS6-{ka{^tTt2tIdb z&z5lD)c$g|q;~W2xYTaE5P{MGCACfMl0cxc$inQrQ)7oGY`MK5=G2X&Xl{ot(jytX zJ35lM+}?Q+4`s+3^(MWIzpdQ9bKbG#wjdUy4R_lS+mag?qi1d$MU(rz_tI?1op`av z@2tMpJgVfLb_vehE27EmyF?}T@_SAC9>Qh_<;?xue4M$j*U7#1UXwBx$ZYb;eDVU! znM&?0GO%Z)#6(!hy>Njf_g0bakWyzYf0C}c2=R?Gw-)b;Q0*xgWYzlKap21IhjMrIOr-#Q0$;k$(4Lh5hLK9O`qKPVPD}X(jim5J_@33KA>1 zFS$(4+|EsEg2zb->$c?1T&ad&C3g#~a&qsuOSRl7B|K>*cTF)|-a(oa+Rxl7-gKNb zZ&pUzWH(|en%y52>zL~M$!062qS=kg+dOXT#JvlDBPBSymzPL(7q5)V?h6-o0$XRd z{W>-r3HkixMHcS52Q_}U!Ri%H)@Si35EGQ7rzv*WLIzC6Fhq-LKzU&6C4IFDHY;C#zgY4me|22G{IOE<II3FFIU1kPKM25wM9x;x97`^Y6w=oB>6FToD2&d zP@bG8B|K^6%k5A*s(jHArz5RlhceqHV-Qu*jOiNCQPsEKgH}{UGX|AU1fm)9KK`~c z=H$zD#@rZ}F=J~GD;*?yBye8LZ=fserH@WvmZ}yF$z5COsn`n+@PaG#lr&5pi)983P8b^J5CsQImW0;B$$h6eB zDR;4V8NOkddf-8ma+bI$x5iV+72iK-l4ptbV`{gpmLF5qCBv{PN}K+E8f{pDe7q4E zMkn;%YSQbdXhOwe8j!Wsq;HnM)t*ZATOxs_aAGp8;TD-Ax0-bOQY0xV78CzW@zYDC zMb;TxP5Mx^s8b63Q>Rxh69qonybPP%jgZ$+9==PHd4=ToNPwMwg&V)N@`wtaO;S2) z$PGW-4Qb-OT$2(-GDu4N0uTREL_(fP%~!a|?2%_u;+1Y1+&j;thp)s)y0^czfp5;9 z@2T>JDJh};n??K!22b_sK}IL~(B1mlV%DAgMp}ou-caa#Z@DMptMQ&6h)k@k3@q`M zQBp$sKGhG#+)+O&EYIg3w4d#zq=W|P&{da023?&^oaRJ{MrmkSFcKKaKj!cERE}Ke z3x-{zog=-aWnmBXJz;Yi)zSz?+qx!|^62b9W@%N~$kISn&{yfrEDyNy++*^_j?c^u zS9n6+vdoaT+*9HsFB|9R{Ug)W;_D1g>ftj^HgFvQ@cY6MZz)?X2=E;{Bgx1v zCF=TUDrE;lz8a!+kEBv|S*WC(=;`04Qg#KP5`KH`NMLKcA>YDf{~e4J8;t4_qVQue zU1x`V6TtKF2ecbiECH>n@(ol8VHhqswHbE3XZ>dWKm zo1}hOTz&e@%FY^F{j4+lQo+rs)Srk?q&c25`@%lz>!f}W^i}=QxQ26TTD8A4Z(+5+ z)aABZ)M&X1YnBXS=&&-%z_1hNUX2T_m#{07IHUG8oJeOsb z67A;uvH5;%e)oT8-es8##+bId<;VZhbe_vHnx16GZFh_7n*Yk@t~{96W*cJ6+uc%e zEauy1U==@3tCP&`_OYC%7bK%-ab_|lR z&cSdxclY)$*j=8>>ZrDdedOc0!|~i<+OLjb7CUkCX;vStF@1I5<)0pn@$$4^3PqmF z>c1h`K4!aTlr{N*o&0;DPZ*QVOX zZ1?fd+FvHF#xY&!elpYS{n>q7^b7TOs?|qbOkW-N_{E(uK3?}rp~!Pt{THO$$87iU zYrkA?c`mD;)|me6KJI$$QO+r!w=F}pJ@o*(5Yb#i5$)XR52g}1O6fxUG5%OgyDgLH zz3isT#dP_Uhm`3G{1G}9)1xet^)aTGiRonZ@FxBadPCtkkr2&5O~!IJ4X?n}!+AJVZv-sBb>ErG z-IUyPbE>K;M%B9I*p^A!Zc=(5g{odkU^@>_{wIxr^fzi5x`1nnwwqL7t1)+NH|g`` zZZaFUo0PJ`P3He>H)-k$H|4ywo!7)LQZG%4*~o|6O=`B)m}l)U>1s5&V24R$F4$pG z{R+VQ)e{40oH%WYlz>-?{kPvdF_6AMkGDTDka}OQ^$SI>LdqEZ@z=YF^{-(4yKd@D zwW7C4O6ZpX=TT4bSZiXP{gf*Wp5R4CA0=b+Tvp@a0d^ycB}x`!(hwz;h?4uRcT1F9 z`Sfp7>0KNmO0Ghb^t?gGK~*#ku0s0-H{dQ{oy0*cKX&-o4e%TSVS%7OC?z~m1yArC z7SyRgxYDYrm71%#2BFbttKrZ{Tq&V30)HShN>|2)M*3Q1ww8?`Gzx4r92$3^Ni;N` zT?xPljU6W_PwkQtfS2pgNL(dT?Odhx_lVwpDP#2KY5m(-AE9wb^wMQUpuYk*j}#i% zaVQA+YCI9|x!z^gjHVA#cvX0$%gm-@LWz#U6ljfBOH=W>$rDM(A(^zyd7`$abiCl@ zBSH&$%A8K8)wtO*f}i`o)-ZA_h^{qo@&1QZZpvK}@6ZX{MM$DBjl~3@Nh7jGNL~yLR zZQc;t_G>qpkIfrGe}~SITs=Go+YnP`PdeMoJKO8`hCC6kHLAu;?IMis*M^Z>M)Yd~ zDRb3oH{}MZBRGb0A7AYzM+84HdK+W^3CHKsRu;N%bQ6Ph3fMa^4uGw@QNTWqKc1d9 zgmTtk&=^^cfU!LC*lt%FS2+(mK1K zb0nYP98nlJ-(&ka#WCz)1+$b>TL-Js;1$UAwl7#;TR{dw3@PmosjKmaN^=1Pu}=~mqO z!S2&)-Ygoh)=kN^sPrx^^@hW=hO3vZ#pZ0%+sQ7i7lRXD_cz3jPvDf%HU1t z_l+GUU3aUS%y)K}H1Re!4gO?@NjKi+rlfyAGlbIDE8TmboBHe!dj2*xbi}Qm8gD3U z-;(WUYpCt6XS%6kg>qD>V&-e>v-Zwt%zWMD#YU6zZg*4e;u-!LqOZFkZ0fl}ANAVc zrsRV4spMEZX<5V@rf<6-loo7|Q2Lg?2cNmoO(}KKb+eRwPv<+9Pu_Sm;|_WJWq~T* zzMXH~xH*Qg(?~Vu%u%XTW8Z7Nnc(8F>wOb9eTeBn_UttppEqgYMmOb_Yi6Up#-Ybj z>8_1#%3DmvUIV_NydeJk^YbPV?gQWer+bwr_*vzn&7)elw1nPb*4w)gPQG1M3vaW@ zKi`SFDs^0`GV5ce%ki5~--`Oh^bMoBVUtY8H{9}#O>RmKZb&6ZkiKQChqS`CtkCZ+ zo(;~<`VA^X-vYrQJFD)J>}=kk62;2SI!KV6nH!Y^Da6_N_+65nZ$SmwSu846E+yYB zxisl+?p$SO-A2{>$LJjlu=H-XO4BAWVD)h)41fWig9`dczeB;W`Zxp?FhI^d+z01t z{vE1|&(Q_)wfG*%*Om2>uW!~%zSfKGJq8iyYvR2ylsGV*sL`o{D&3_@Tnv6gM1!ZM z6TJ?-q}l02O=1Efb45B)ulw9I_w!?2H$>`cYRzUW z2$lqB7EA|LZMScw&}nMcg1I)C#oPV^B*9 z!>4zupn%A1NF#c0i<^?3N+T-1Qw7xnU5Ez%m`3#T7B>w^O6SGsk%;?$;m%RxMvFVO z8=YsW5w~$??eDZZuYcL3AMcNIr|SW`J8N)cx%2r4#GS=5S9MatPnJ9L9@Oq^5OK4V zP=n9d>lZKI4K-u$D<<8uHO`%H zZMC~|;6p;S9Gwdv5_i_gTs2AwKUwbl%R}0o%_2@eOJRYU<<6g=#_p`&6c?RCw~0IH zt~hs2-}e89A#d30 zEt}zwctd!)0?XxE{;%;!Evr0BXL~QN_J$*Ku#i?QyLRuqyM?}Bc#gMnVWBr1p`?WA ze^w7Foc)LHWE?}&Dc*=TROQ3M(N{`I2?fVs=duE~do(2_%#$|0b9x@J@1WZ~dKQy? zQbPKEg&7OTBVoP_DNIQT#nM;axkuC2n6bJq=P~s)Y8=K@A$@&&G<}U4XN{}inED#y zc2QD7Q2N?6^C-qO#_iJM3LZmW*c|cs%V+s3m(BJr@|H$?0skCNRj|_MFP|9*1o^3z zr2>Qli9YK>)&nT*K3QWuk3xNacp{BjUr|36oPYPRJb|L0Y3bl$E~}5c0{k@Z6i>u^ zkuOqVbyokX>Qr&hcq2DVG#<|#9eCJHxs`!Z4@OEf{@a>l8u5smau)_dRh|gcs+-d2 zu}9pLS4PJ8k86^#jwfS0)*6&te0M52mU%rPnuetO?h!XRssjE<1x?GWNv6EtVlU9M zOi35ws3K4uqO+lVHx8?Oes%Obj>6tjb@cIXL0Q+k`_cYA3i`)Vg0iOb+M-A2?#?Up zRe7iJFwPI)?<)d+FO6?Xqho35sq&V^G&YW*+v+NB$X6QEyvs2+pXlf3vSLvr9K9KI zkAUW(cWwV^u4w!~TRAOENeTJg6#pOw4BC2pG}MK9!xf%U)OXviG-_QxfS;^tIHtJf z_T9vo4sz?kElBf*=S=aHd&3bk?>tW^T;Zvl3t_bvhL z8vafmm5NbJj4E37c-AT$t#2P2dV*p~R8boMK^jY=^&J{u#a>ZGZD5ScO~%#H`VI}S zV!!ByJ{!OzM|nk=oH^4cjxzHu3i%>l3uD~|JJ#zAW~=Lrg-@r_@eTMC z0?~E636Rs^raV6xYL{2G7p~(A_6|ClQ(a}5Z;t6^rRruScQY5=ln|}tZkD1OepW;s zcVK(AH|&jAR`WO72eC$3U&GcnH@GQr>^P#I1i>KD1-0G8)RrI_5#uFZ`e?fa(#GHk zU90S`W&1B%c-Qj&M+bPLPsM3l#W6P5E1T=t<^jv*`p#^|W~jDTdxzZ@cPhJgvfboI z^%J{yvajXc*E`iDCgnDn)FiRA2^*AuKaD88K9!$gZ@{H{_US~EALUE;cAYlYUlqd| z8cS0Qru!A9`x(=hkGd(h%oFht-Or%XAJZW3SGZ!kQmMvwR9%+c;GOm{_mul7J%65) zN|YFEGO1MnOczB=J`yo;l}(sw69zakI_%nQb(y}&-gPhOx|izu(I%7X#A=I_=o(p` z_^M6VXcI;{?|PKgWkXEYy`}5ks_So>Omd3CDk;%5C?v7_8&P4gO^8Pl<0IJS@X=P6 z1$Ws;-AB6aqq-jThDl9gb+{;^Yw%Ozxi%r$gx8?ssKev=7xxMBkf3w@OG2KY1)x|= zsLb>kc$Rn+kq`Ve-ijn2pSCC=vMlI5JRb6tn$<#ccg;L^? z2i(d|9Pz?QG+inSq|`=K7rItA)l%-lTVq?&7G|f9oMnSoKPti z0x)!Z$69m!Vb4M@YbC~Mg(IGbx6r#ZLMOi7)`d#yDQ984^H>OX;JSr1;$5dS7Dl{L zm3XhQ$|Uc?K*-C_f3lr;$FUM7XmXXp8SgY!m_2#Q#KMVeAl_pv2UM2Edy1uSHeArI zgT&2{C$;CmbLOzDd;78}mt(TgxJUa6b1a4A_7w`Nf|WCUYV0ZPtIYP6dzS{em(=z( zcnzjKnAX0|OrPJYRnps6!92_gdi`3hXUA%jD+6K6T(9=@keF~x?+%1f*Y)W@BkH@1 z4m74*uIILI2O4uMjeZ?yXbb&2kjMD;gbtMK&K=O6&eTvSph9$Dd*UfxPZ@h_P@J^P zTj{GhA3F|bw3Eavof4=nsq|h@9f){YDL$E5X^zidZdZ!WXQdSMlzL}{3O(gh{bg(` zKBucgl?9$qgaH+`14!frA@2p%-q14EiN_;4tS~DyE#xU@wRl9LHrKz{A6VjNm3TCZ z!jmIQB|CoA4jPtE@zu-E3t zm0nippbOBnC*<|8PW&*%NTDwxM&e1-6N!X)N}g{AB!q$x;&_BnF;2Ox5|5EpcmyyI zj}B7g5M=EE6M}^}p4(@gOU>;do*D{GtSa%9PsUPUX@qs+VNVT(CV9$0SS*f*3~|Wg zFRefzqmOvhQ$wMt{xW+H@z|$^LgxqORF_s1>a`;5#1CO=C^V}&60DBcO~s$1riMbu z8lR_fas~EP)sW)PRZ*>};Zje~%l*Zlv!;eZvpxQDFLse%ucj}@#wIV*k3lypW1;}O5x8R zNI~8SR)@*_diGkrnim;dC^~7YWlJ)vkYgR_7K@8>dzWWVB#LqI0c~ zW$fr~Guy5Wxl^jm{M@A-bg^c#O6WgbF!S;Dd|@$0#wws8j*oaP_Q#BgV|0(Zq1rj{ ztP*-Lp}ihUJ^tyQ8t)YELQi#NL~WTEHzyj|i;4P=N^a9P`k9Jzy*HFM)9WWAi@$e} z`vT%LHr(y1stFlGE$!^GaHRb-LA$VOAbpJB)VjBWJ}h0;hK!MxddHopJXS5Fms2^P zo^Pj@SY_3SjPaI!$K6y_S4MoQf%G!j$gUzfZ+9wXaoSA5(*#*wntIFbwk`~NBQcHV za+g0?jW3kO7pcaaz~Q_(flvfrB#1uVIlo9aI{JkisVE}jBwkvzyqHSarBy+q884+$ zmY+_B?fB5+uVKbOy4f(YeMA{AbEDt1n`$wwRBJNsjy8i4aB!o1JUh1i5Y}X@o$!&K5e&ci6%qkObM-9 z!8}C!Uv3*nZ5pVCWZWKY6P<8x6p?L#BaM8*#Tb}(X!K$DZ35&cq4)8NZ42Aom)70Hmtx|nyPMw%B25}0FTaJty-uzQ#`6c( z>>!IjU<^1H8KsiLMHD<4dOjX-?V$Uw6e(ewO=)sxR3_J;7t7I>^t6zqDwT61SoshuO+c zP5M|W4@zm7<(q%HRyWmB?&2}k#qFP(G~^yN(s5Fvi=F7=_n(?{id2r4QX5fS=vv)W zOSy}Es*8_5HK|fs*Gh>leuplSJ~JsIl~+lrji@ekt!}EN+{Izl#i-9r+9|E~NQo|< zKo=W6GwB(rd{IhmM0KHSbyF?nE(Y%8yQE!OO!`S$r%Py{izm@VxW%NdQkg8JHln)F zwYsU6au;W+E)KMqG(}p^lM-F*LKi&`m^4!=3#HUXR2RBdH`P+^!lSx4^MFZfq;xC=UN?E%wDo`QQ-Xc?Q#rw*9(;7m;VfN3c;M3p~1VA7|SvRf&~Wvg13^tUVjIX%>One)l`PsQT3bljuH`_8vS&l=`_zKSR_JpiyoM zNYiFJpd}WdB>=Se3GIy~-#2vE&oeE-)*v}T-pJU|bS03!`h>g|aV10tpKw!h{(bT~ z+fr0r{G6a~u7kiw>It-k&?WYI^JeAs z)p{_$hAb&*p!ROqR7bfFJ_J(BQj~pxb z;m&oug8A1U@EuHA#RpZ5ZgR+~O4V#`baxQg)&+(IBe>lTXGa$+xOedTwg(&Cl#7%9 zEZMBt!F@jRye15FOnCypI>y4z*ugL1at@3gO^{Wq+5Hj<7f6^Hln-@RrejR-3UKVB3p?v-!Alw;+^ev0lzt|BZYxhq!ZZwpJ z-`XLqO|XJtEx*T~_L7FQHUa(;H?CFd_v8YgD4|<;d*_Cikb*NlH>vhPl`FU64bzIx zO?n8Tc3o9C)+LBElKe;Qh~A7MdXo{oW+8ghj_6H=$N}ou&x#c6jn?U)?x5~Ypf-WT9)Spp&kS;ZRDIO>kvD3iT@R);uJ|?bPxPF zsg*f+Mb4M+xvJ2z&Httnplm$SXyXyK@r!j%>ds4Ec56>_^2TfpASS0@$d01HQ>-N)ZX6w7Y z@v1VPa|)5;=hwAqUW?z~iKCC!J1I8hd3 z8f~>$#Uw5E!xpN=25E9jnC|$(NsVD$+7e+sf1{HUD|}w8bGSXyRK;d=YHb$rFr4}+{54U_3>7GLmXSZn%*vlk+}5KiN!^l=L`UUL(s zQ$C+3pys51w1j`QY;vj-Ckn9eGVQF!qg%W|cOFeU>+LzMiDIi?h@(Vrp*vsohxIJc z`86(73;Fn<@`{omZEkV>i>>KfWLGajfyUala5Ns+j1W_7^%BhJr57lJ9$?J});a0) z>i1ND+rF<-bbx2s5u@u+KDHjk%SKZJXFiC`(?_mS%rhlLyDsOKYH3<4+;J?egRcSs z2Tf~*fNtPo3qDlE=p&Ve6r0@&bN{op>0-0FSlTvB?<<$aX;yynw4fDQL50P;fO%&y zZ(SoV?m?EYHi_S9u}hfsitn66r>|J6wAdqQh&Hdb!c^;BtJtetY&(j@#=oSUEpxh0 zTcPpY@IAi89K#w-t8n~ z%x;4&-UH@4cNYZe~vD=`<^-k*iK5`DA)R(&rN_kc3 zvm2#;-EENbfRl`tdkorp$Vo>09)tQFcB)I#k+)Us+PK=n?g@*TRjhFWrbjhzyGTzx^(9g%5WUSg_(BR`v>iqd0gQgyL60twyUsD#{8cD?d zT*jnP(>hSDknRR)!n6)#`vZP}_o{?+KS=Q2vItXoFFMLp-up1hRNjkfVG>0TYSYf@ ziVLJm!Xxt|Nqu}x_tUvT#97(@YK5CGc2}*`SdSXvuEZ9ma@VabP310XWh!@F*2*My zSN!YBILlpmtxUWeg;4eq+RqS(P~OwZRH6JT+Ek(J5M!!P_FSz(I6_h=E}?|y{UYih zM8Wfy#hA+TkF++G=R2HcD$ieg8ocrG8SUueHA-l4R3Ez3g87%@=8Z5*BjUtTUH$_p-_+82DJPajSATi|_1vIp93&}f+<+S2 z{PY6q8fTLI!%r_D>b&mL3uthh4oA{PRVrIjl!`WM^Ae^4lu+!Q? zI$qXV@}_!T1Ck8vxuQ?8r06>jKz>1+c9hcAR3p6RDiAJcuNqSHls4^Xf@IH-)DkkU zO*^`wtx26LXYs)#mjMgQ^0Y@IV9y)%yYLXvuyaJB>mUcy*wBo`Y!^zqOD2Y zc~Sho=nqrdnLNV^(kM`0X=hSw-J3k!85?}1HQnCcR432zD)p=FO`_P86-@shqWzVo z{}1irjI%McT=4n%G*Vh$P*U7|^J03B&(9~<*(TZ3KR=(y=>7TmRDQNe#*oj?r=A_) z@S$VRrOFj?Tx1LuIK5-frRg0^iaDoa6xFPVBfkD)4$-q?6y=_SzQ?8Nr4$Z!>v(lcLvN9YrIA zs=440tcDo%S4UCKd2CwC)At&d-qnrz_t@~=Bz7~6th@H9Du$XEZncv%M(D?IBGFI<3DE0!A zsO1-X4U40;k@M(YgVHb1V$(%z#6H7f^8a9IYwR;<%mpSHj(rCGz+!vuGb|4J(c&Dn z&!B!6YO#G;Z0DkV22H-uq}bfI;;3_ApFuBN2v>%U>rM6?$vzJ)ns(|cl8ER^TlZ3; zD+j+HN9!*%sXOnYxe_CA`vf&?(jZj*WCA>J>psIOUuDTLX6`fS?F6mraPU*-x%&)? z=x9=G6;xfk&!DayPoiqb{w7gW3$EK0s_2b;jKYoB_%x`aR`fYQ3V7QcR}BN9pQL8j^LdDn)QKw z25stMlKm*GKcPb=*@Nz)B2R(RK49>kIIVm3?ob=GnP}!4|>`5&9`mWkT>d1$wT@k(5{f1SjmsQwE*>BL-mNE~jk)U(NeuIv2u|E3^ zi#>j?uG8@DH^}T}l5z8XgRbdjQs-Ou8?>yONwG`bj-$>K_8atNHw?C@H&^Pbk`&&Z z4ez4%Ur`zro}Xx*=m%`#kq3ji`ucjU2IRbNvvv0oz0c43auT&$-?t&mn4LJt_P%8ZoyZw}b=0LG^9Dd$7xz2_*@KmBnvDxo%lc{A_j7Wk`r?1$js;u6xQn?5JhD+TF zo|u)Fbfe05RLfZj+qPZOja&vA6`t!Y5z<kW!?YM(s9b`!Pypx&^!Di3Mz8v9YF(XLEn2`9J)EjXv<3W- zt||>p>wUK4dA8%rbl8EWRU@hyPz_D1ONL3tiv0#%m?>>+IDVjwjl&PLvG+5jjm3YU z3_}}ZFZ>1;G&aY-O=81_{TqgHUA=_+B3;*g|CYM0zC`MpgdeEudHg_KhcA)3YNWJP zSNERc#C-gK6JP9!y28DPF){pEqV`{}qoIC$ErKtcuknM)!#zz(_K@wh2sJc%@Cf8J z^LYkYTF=i^Z@E+{ zQXi^Fy;39*Bh3Mh@*k)wtO3FF0bx&ebxk!*YWz*r_#4-_`9G@0-$HBrEu_ZZxkmS8 zC-y)!Ols?N9d*BlS~oG$rshr)`KjlBdZ`g|VkDk=zu$}RRD)zwRJl=|D32d`Pv<1w zmKodIq?m{U2IY#^?}yjB9x$j!ZqT zM<$GkrC$9_N-S`Xr>9xbd_Z}G_9EvjYRnnz^;HBt<@6d8egmNxhyTrIeBA((5^?&U zg0}(U_&)_d9$>1u22Kdy8qxT;CLHIx{j`;PoZ=71B_3ZBdI;t=P%j>S1|CKm_+x;y zlL-TLJE{Cg_29Xh=h=b6v&Z785uOE_Cp}Ae-pkT*5`oX%~L5n&ugBF zD@4w6i>Fq2R%o7snkW5AEhlBAs_QMybJvw3=VS1Mw;T)#eaZ^PTP?-kHnhd8j(mfcoIVwoXrkQyLXM}~}zt5xIXX=6e7qqh?>5Zq@&f{kE48xq{m zXLT&{gbajNO2p=_jHATzpgVvgJ$V_0_Hxtve2__rKHATq-(ZsxgR~;%V^8UfN%c(||n&uwmUh(fC$gW4W&p{LT;r7HKCdF2+j-$j7k@bY%e8r2Fu!2=pz2aR8=ayH}Z4yA3{QPo3LNg*>6GNX?jFs$5Q7}dD&ph4y^E#y%l&yX~Uh*BYh{n<+t z+rj?CqddRlv}2z5GulzLsF%@!2$WJ$rcPP0v8w$g(Jy)NXHl7g+) zM$~!6L4zW$g)}^bX&a|1?I0=Gc0w8+!gK{2yLyQja>OQ!`iF%7h@@DH?Wmr%ArN)K zf0P}Ihbr6KsEQ6rii)DK?1+adS6tiVp-O=3op;cnUZ1G|9fwM*4;r-eT093kXwWhI z*mlsMgb}a>RrESjRgo5*Qg%!%m>rIS+b6Q|kaXcjl`(C1PlSHY=P|#$B=b;&-0X9vd>p(VlYUr zvpoqnA`W;0v{J5U8ze;>F2@#mjDnh2D?~IL84=OTbJweYgI_hhD#^jOKGfJyBRQkc z%VY2iDdBTfYB1+OPPXLW8y%`=uV|+<-Xtlsx*DwmJ$nQzk6x(Bdrro-6Kwo!yHey| zuO(dbUrY!vIxZ1XrKL>n2BjXDl`_@sl`;z?g)*SBGC!~=SWzVfOIZ|z*GtY_$YF&` zIw(<H(eD{~cU|N4{_6nZ%ELw~PJJ3Cb9> z_yDq+GqEC}%yaE6PX2@W{9B3pK5<9{Jt}5*8<| z6EB-S`)#raY`K^^Ded$zjNSc2yh6J$-&BWRVwBjPk2@>t@XN?@%&W?i{RKCdmjzDo z+M1T`Pt>*aAfiic33&A8F3sc@^kM`#Quwvr)^arLrElBqbZ&u3-Q7f&V(2OW$P@4$ zK#8~18~z-%~)nF%F8vo%=Ny6nT?Lod-7<^zWO{V6JU2sMnXOcovG^ z+hCCYCX^bx{3H>D7@{8?sZi$NhBwpoy87L1&M#C)|ft1gMeiS(z{zp0SF_ri4)PNnCH6q@E)t-bDAZ@S;)^FH|Tns}$=ky1{F^FTc6MU2+QJ z#pw7Rp~f$4mhlU1uXVT67p2Phg{;xNK9gX)LN5X-yCi2Fa@hEVwhz18>7cKP@v0aM zT+HGwEn@=}c(N?qKzB)2^Im_|=4G3qX1?DnGvBw(O19JbGG*rbtXHaEnW<0-5F7Qr z?Zsp}J>%D-{QD9xFRkQqU;9mp^?w-$3s-T@nKxq=4qIjJ{eY7@VSnZD<&yO2dz zqs}ibD=YV8qa*)$WVNXYsi7v{V|~od$;~=KnzhNzI#QbTJrPrT*y-@i%H(_azWcg> zGFhS9fY{`FB4+on)9ipr$tuz|#X-qDve@p4z}SL2*ZWz{PXP|;LkwceO}L_pffryj zO=YmB+@z#(erfnY&Y+lg8Vp*pNsSF>W4_(cU{G4nB;$C4K~LbvnTHH|D~N#v%yq)t zK{L0i5a!YN0p>XsnmOSsCHWl9yazmxoIS=QW}Y-AbZAj;ME`jJwBviFhX&wfD*z4- zfWE>wIRFt7fR`iAblB;$F)9ErvjZlMRRK^aVH_?ZB&hXxle#N!(aRBd$$A)aI6yB) zBslCed%SLwsyxM*Avkn=wYrILuutNq_++vb3@{mFA;77qBgJNzq$?zXC zXxOdr8H!g)@l;)WHh56new!2z;s=VqjUOl;^FLj@PKu}L;=}$YwQt1_)Nb5v5*IJW z4-|j<_Rt{Y1w8K2+3sM_6Y!P)c`S4csxm@jQQxfoUvHb`v{TF-Di-zJA&Y?WNYH&i z?CW~li%vT&yrc12e1Q3D?=UGgZP0qy}5<+*qR6 zYOr|=#?jAQw0$M6_ut?Jg(Vx7wyC=XI1cuRmw$|woo8GvFh82}&MX;N$r{NSaFk#X!!jFYsPm*^bG z8E_YzqA!8v-ojwNvazS=q1w92o}pH@)mEPB!r%5~mz^HI%fu&hh}xp|GwwF2d$CuL z3rHEJ$fJ?LhPQp!Wv4lJ<94>JEJ*E8`0Kk(itPnk@{7GC1#~ttCryAoQB7yZN%rv9 zG7bH1sRTB{ zJ?_zu61(Dw|ImBzuwt)4{>^dfAp>S`*i|(B9#icqT7J(-O=?mx=Bv6k`cI=N`9vL2 z>ru-P+0S%>hjRE8fC_!4nY9U1gjGsvo5|ZRFC<-MR2)saOhO0&7I#l@ch}%7?(XjH z8Xzq0?(P~qI4th&?(VL4-|zl_IkV@qOm{t1HPe>X!5lT7Uecbwt`ptwbq?%VR8m|F z^rLXl87wt#;nqRWnKus%9(?K^=4=@)lWl(^jO5tEl3=4D6;*k3i#y(A^ihtFtq>-| zn3I5exeoC>)xi<>KyxYa{Gt3H%}Vv{r6K7L=(xT8n~%VhGEc)h-;tc~oH~nPVY$@N zoVgj{lxT_TE9pq3`4q+9uV$5xw^KYxRGO+jA=2If$EPX|tWI(4d#EYb0)%D261hm5Z^<)YwEn~A~*fV?PQNw)o zY!!!khg$X^jxd6tEWe)^nwAPuX<%$YEY1r!tDe=lRNfMGWqO zeXwwvHEqVW&KN;pgVEa0YM&roCx3wQ)eqJleWPF-2!|q5cC%oWSddEQn7<%PGx2g( z!7p5`rb{ysb{hG&QGji|TL!1{MXNb!ok6RaeHHR=Jk1dGVqG%b5Y=vd7#YoptS@cG zIwEed&4pm`ug6IvmHc~e(xkFivuwHcn(`ft#$9re`NohctLm1a0RcIc81}0XM#m&I zz5#};dH9yNo<^h)jr>gKRIrE049U7KhWHSYIg#u^;k6YD*Ey^HSh0`d230NxFU8G1SYOK_qZbxItn%tK_-hd^*; zU)3?$s0}FG3fDS*v!4={Q5%2vcBr~irltF*mQ?6zgwU=wFomoG)ivg)3Pu>mOV{if zM621I&zAO`h~7R_pd;FhFS?d9qIyQ(+ch{RZfibtczLv^TM6Bz)r*Oy>I26F32nRV?ifdpp!Tk4WyGJ)j2PxG|@akv-o*XnmfIS z#^uP%p|)vaUo?;%L1;XULlFlmxxn1NjNKS@-Vc@DYAw#`*Py6nBaHY2YNTK`)(Ex_ z$bAb1cy1sMnq^BMZlpjpBKi$u8qWNqV7~i1F7`VCz6bkx8)eZxTdnb< zX-_#~Con4kJ@wCK+nWr>72Dy~gB)t`m7v_mdt@7IZksX&a30IdVUf2%z`hOP&htem zDY=F$D$e4UhLEp?VDxLPVrNrtyu9+hgliFbu}<7%d)p$xB|7O>UeR-21`HS}sS?pA zcRk;0l@4ztj<^`R<>Zz(j*_SANL{^2XZ9=~T%mv6r6C+~bSv|vG3IA!?6ZG=gAm^e z5D;H>3<~fECXwzQrBxMO z%2(t?5`j$cFUzHnBSgos)(>lm&a4LZ&*tAwmH&}N8HSki%L*UQB0c@YApO`t*t2`% zqC-elPup&vj`bw#E~uMt%$3lva#7f5u%V=Wa&0@|xW=wm3@(Y_J#*wySg?g=MV%Kl zQ#I(u^EdH(6;R?>GN3y4Q)|V9+b|d2<8a*L`0%T|HV#&?dG*Sj`$#VTU{L$eR=*3v z=7_P~Gh(Cnl6?2ui)121?+a-tXX{15al4r)>^#3izpFBVq>Cs4s248(_~}0BWal z>u_Iov7@VVXeaYaDtgaoBrl2^9G7|Ka^eJfQWbxTulH-rQO==I}CSrX-#ptdf=ZKF9$>&|aVJ$GTuUNOVq< zj2m@?>wD^Ch%lgGFJ65rWowH7RPVcf4vW~$C3F+C+i-6VvWCgC&KwREs|?MTwN7{s zB2hogZ{VzK_UN#!__67L#fs~sqz)}L!C84Ubx$xbX}${U25^5wPN?OYs0aD@N=v_Y zc$8#Xe^^$`6(hQwaf0X{ZN>!t!XPS%cPy6KL^>|%gsSyA;{C3Iq@MAX`*=tk$2q%; zuawHSS4bmHKk&w%G`f2#qe)xmztX68aRiRkqh#7++7O5h?9XFdy9BL6L$5|SN4f+$ zk1al2Lm^(1Ja>c6S3Ici16sp>i&sbG^Z3L2qt5qEt(KDap(E8O^{Be+RSppMzkYUI z=9nWjn)<|p;JH|kvhZ!O)Uw<&`kJEsy#fq2T+ytuUF^>jXpdwv>aqgZ^lzT=3vjAU631&L|yMan&qn(3AstCCO=U60Q|)SDxs>U z*_&KvhX%?{E07DutNU$+D>@UHbbVi&CP25xcJk1MW6>gPR-259)g4;dgxRNBnqQ8m zlSX9AJWzLoCX<#Wc@&w2V-qIhV+6o-(^#HxLqjG?mX!M8shxg=6`Pcr96*|;98Qj9 zDdR|lbwD9;azsH@prv`{t6d-FCzN5w|5K9;_M`8ARb-PhuRQK)z(qn;7|n26R(QQf z{-}UdbWDWpWWqxHVsoGh^6P2*_Uq}{u+c?V`|0c1c64T(P~gL_H<&fNWK?H6j{%j3 zV_mM{yE3=VQqPC<)mAUwQm=<}lx7pc=YsP!yR!An5^^FMVtcBV2jJ<+MpU3JpXe=N zwF$k5F5h+AEx+EeRW|Eior|~c(gnC#y#c1qBmS;wKLbZ$;tU7d(PK|pCS}jedKNer z*-e5S4={dgU9JSvDptijTTP3z$hgp-GhK@8tSt%)C;qkRGoNKfe&xJj-=b2=^zb@U zk}priDlcMzc4h25D1TeFN-0x(!lFn{LaQ|T;D1cGzi9cc?U~G9_|{q#>Swjo$&<~T zSl%Cc?L-!Yq6YrnOzk@V0eqn4{Ziw6&c>_!Kv!mCZLn6IQRuRP>R*~~mo)Dqg|^mI zdwyeTvDSwNNp}8E^Fd{jZ@%z5ebBi<)vruZK%*i#41 za?`+M(}2Cku#x@J{;O#fi>Vb95(m?z8N2-Y%z83GuUd{TZ?J&t{4`pZ%8<{P{#37- z{!Dh^U0m?P#t=?4JJzIF8%2kh%DN4a$1K=%skCo~9B097iR$Rc&p3pzh!(1>3O-Un z7@oZ#7aH*I+QKHJhrb)l$YN#g5Bs5PoEUxo4CA?~&Q=V!RA7#GE5Hi6WXQFEKg|QR3`}wk!g#5UU576_c z$9aHUX%5n6pN42o zchjvD0n}yhKcj+f*v6ZCWUacsY`q-RUV5l4mL`ACB&Pb)`ont!!<8B`7<>iBaBXqR z8mvG|)yZWv?)Z*r-eH>sqh+z~ z*4S1`HjNm(*5Y?F0;q&Hf5Hk=Gv<=o`G<1L5`W3SK0qbY`+Gxyh! zTBKn-vo{)Ehm$|Bw&_r7{O}_K_sislTMY^S7JgcPd`iH9OjxC8POlcs6Mh&)mRh0v zro2YO;B^H2x79(~WScBHy)M_vOb0~^*-3)$!?NQ&Sjd-)r`hfY^G4ch?Snh5eaG1e z@p1zg(6YV<&<>8BSbakc`3b3Bq(OLinX5Ev3gVJ*Wsb}na#apA*Rnvt{&B9n`LPpp zk7os`NbgRJ8!)|K__wk8w6(WAhfQQ%DmTT}j3RB=CVtL-$o<^HdVO z)v@*8*}&W2lnJ61ZZ^E^QEM&2C$(+R%k>=maiiN@Q>v_H!@gpfF8{b5=66rHZ(ad? zCeVAvFB%p;4?SoVPFU!-eQ9~czpc@TX_L2Zn(Q@-|Mu-Ttp*Viw`Dp7^r;5{4q1Lj z?*7CmER(FYQ3Rd&p8vrOZkFQXRr%K+d7*?_z4#QO>)puaLQO+kkJ*HHed0jSKAYnk zkuU7c@1BB5Tb<2w*m$~#-AANsMSYo&R1@KU?kJ6GEx?M2RBmbAg?DS-K+#m=GF(on ztk)Lsxy^9D(CewMGs?r6Xo9rFq#Ey3^`N)n2TB+ zukTa%Ar#?B_jf%f=qYG|eI_T?^;%OXSv=1HlwRd!>3*|ds5m~GCDKPEe*N<&k$BHN zRnlQJiJs?QHU&e`7*(-6Fs-h+qV%W)&)qV{0B&_}m)Dg9Po*AZ_}8Y;EXYUl*S*aE zo#3Ual-XF1~o|+=fS(xV#^j-i#^ht=gBJT#l2^EHWryas^;}kqD%Id^M5IC zk7ux~&Z0}x<9kuL9{ElF0+}`<>y=(@F=*Sy7XQ6Px(;htD;~hx)z7p)#yaO`&Ic}d zOLdBZy>1+yK-p(Q>nzQ4})HiMSgdaO$Mgn8MO6wPTZ#q+yh;`C^!4&_9U`?~f$ zW67b@5UFdB@&3@Bcs9T{I40FPVro5|p%P?hBqcg6N@|Avi;d4RnDrQv@+#PjVUA);ps<%^?fOA?n9DbQ1tz<|a}AJSMIv6 zs>h4Q{kamuQ86-{S%x7d0=3nNf_KKZb+JQ(rKbX?g55=fS z(UBV2U^)Aa(d1fh{p?nBJsZN^t0~ld%|ENCn*EzBzj@0n{15b|s#6k3U+YVPj8Jsj z5n2>r=~Nln4H$F{CP?mVKpT49I@d}Z%cYjpa4&J+iC@w=mL00S^D`y&`uuG;mXGGt z*vvBR>1~Fe68EidaKDX}kYf#z@{s$1vfeB{<~4j9U5I2@``AqstQT&J|^sJlsqQSdy9Q>4tQ zV+G`wOFSmq@_7GCC-g7NsxONhaROBB&HZE#LYe~p+{UYB)pVCMBD3@}iZRzAwe(ym z1Jbh=%cmFjYARQY#l|#d6x!4k9O3+O*RBg}YnObj3^L}xxUaH#%bQ2PYeBRw>3o4b z`2}41(c|Z*iLqK~RWjRG->RULr=nESY9)7MI}#&iXSJjf>GH=N4@1X5<<@MyvA4Fa zq2O37ba)9_)e?4Q+;;V5xqu^R-CI5H7*CX%?24OvUrD7p{n*9%cd~-`;K|{9(K0y( z;12x`5j|0hS!ujs**X6-8>^uxQj@)F%5-QPcYnO@t7?|?C7YDyjE7yw^rz(ZDPxLD z3mNCJYiKW+Fpy{1Ff3a6W6|t8naR1*6axe8?Ji8a5$`DHtWvK*K+a)NKovC=_UZjY z=^)V=>^)uiCG^wEjef){yqGC>X?^#(gPLc5xhR}OS$(GTto}puh!pR2Qv#j8oP_cOB?B!*N ziq<_A{tT(iv2961ri3I>@>W*OuDY?hWb6}eU!iLs;Rvkiel$J2CU*ui@55%q1S&?2)GxDYoNJUvU7sY;BKxa-}9e!*mfN?!_3ZQL;+_4mWO-o zFFFJDj6T8lM2Tx&5~_Mdq8ak%*C&a#)#A~h?vizWn%=IhN+ZY6RHm?$%6Dw+JLTFJE4#tVb zdSuJ4N?vP!;Sk{s@Y2cN>Zo=qKxegu<#n9L#aU&HVqg-KR#SG$P3gPo-!_=|Pi1{# zY2+?#&SRe7tS)1yU@`}qh?;2g@5>Fp{FCb*tCSm7IK9V6aQ6huB}ZR9D(e(yCN#`C zx}FXlnS7SxTE9^JsKR$OZQsuG`b2eIIW9cQ$H?J zkQ*=0xx7QB5gTi4vp!vb`9eXM7e4@S6!yVK77lfy#{`hKZ^W5dL-hFOV*#Zb>dt|M zriw15$qA)HSmP(SkrX~}PT0T0+pt8kLhcFSBC3zS^PVP=X$=elffCjp9(e2Ut>(cs zCE26SUNc2`l=#89he!T7flKcXYSyx*t!LGXo<=OLzjT)EY=(I`t-ec}a8VrHfLA?y z++9PyO-OGoG}3NhyM;FW;=3`Y#$yO@@Kwhfx`yWBsSq_bh-bwN0&5B;F&s)538}Z$ zU4p)%^#o+>f#(4saN*SKHuk>mKiXT)Ysx==SM*p6`h>1DN9g+b6WLhb+@HvYoXuZM z=9v7mMv@HIJ>u>$BKnJq>rEB2dfPY@y)}Y5A&6$*)UYwv*8P8b@uKzgUv~7_5*=h4 zkM6(LC~%KpDa+ZVV6*c>;+%`e`qzHZIV>ZU_2U@T)jo}a0l13SDDZ-t)yC`?|4UKE zOakik--1RzHj}O|vI1GprdyxUN4}@G`J2?Vdb7^ZTWfk_o4P#rC+d3a|Ir{|(T*x^ zbY~sGH>k|ws*zRenyn!ppUut63qy6&uPLslWz725qe$GrT|-n#JXFXGSQs;IDz;gK&8o7#Af;25|VdT5#B6Z65Ifso>7?jj~JPjl9-%F$I8Xf)w7tAG-;(8!-oEa1onn` zb@it)w2MP!zhd27FrG2{wHP~pn7~mh2Zlcrp_yeFN&IqheROe|W&_#p`;W}vo1coB zB@gzV?$_{P@#2(2jZQW)H}R)CDbrXDcCswRD|?NyPa^qQA^EcTd^>Z( zYGJ$$*RQC8j*|J$*;FjEH#Jh$ej2(*!Y$fk2f2GND=j-GpIO}pR%a-YPK5WK&QaZd zn_tdBbarP@VdGvE2a9%LBvLwAZTVX{n&}&chjXHx7`{)-YJrGf7Z1phTqZgn(aul} z4qr&PDicLK`P0tkNV)tu<`3)OPE59MY9)aTPu7>f;eO< za&`;vi@s)COn9-WAy*RQJ}|~i`Ccv$W?!~mbEwCj5?dKj>s8$1;f%u6iDqAZUKp6N zVB@SA*3pds)CYXbl>}`>S`&~Z$KRp(OgBz}bVH$Tnyx{AZ#LMdrU(Frm4z9;n{7Pn zeI3PRNPMQ?+IsY407t zDI%Y##QE=7uxjWiWCkqf^9(K1*AFtsuRB;eN0h#^ep89#FQ0U`qdDdl%Extr*9W*@ zA-kafyvL82?OCXJG7`*UslmX9-@Tc9p81OH;RTEaXk|MR)d{OIaRJYG0FeSL?;o-6 zUj>jieUL|nX=8Dt193dFu6|~HZ#-IxJpP03&j(Y=*Q&rJG3DkvpD5;Ann0C=J}2sb z7CO-~twEG(Jo;2Yv$s8PlkHO2Dj@VjzD5#mG!Y&8sa%e-8S0ht@O6=t-hE&|{#*7y zm_W(v5^lqt&?+U0p)M?uk`w1fgO3OlEKUB0!&cUV8vk`&$1a*AG66BV>{AZ2K zgsn1FA!O6S3NPpa^2m2wxh^fvb<1m|7FUp)pbmV+6te|xRM z$50%d20hQ}z#w~#%oudNpwNz2srK@Krm^IiI#wCl**x7o*ABS_6qwD zvse*TtkHpEuP-jRn?|PCfq{E(A%tdPy^sF_nad~mu8S(xdm_LQ`ZDyvzwip(gOz~( z+HNhf+FjNi9Z=s*N+`**1LL{8hWF#Mj9*4V1~C=sE$C|rH_@y4v(_b4S>wkSdLFu6 zYL>y+ZD$0Bfrv|qWVMk zQVM@UEQWn%Sd1%>MlwLxZ^*qil2;JBi2Xyt+^#KDVDlrB*G0+f1=ucykjQ;~#FF)8 z*$7NqlWL0PxhA;R)lq0-WP7#7%sVD3Utd9d_@jqLB6HQB7)Aj+#rb|j>U$ZYt@L)v zIW7ow#aO$;Nnx@j&O$@9jgzjjxs^}kJ}uqoAIV`}Y%2nErT?iwWFuTIh3L<9PP?GbQcif6*{?g{2OA(pRSuX-(V ztyS=6psR|C%}}3jQXBdjKl#ZqsAF!D z3pZ}DTOB(di|yZe1kQ7&w?Z}%eeO+9>HVIkor*6_P7Fp9WCbyZKD%ztZdbBbteeeY z+YBICE5Z8s}xc*G&~1l7z>X7?)00 zDk_>kvZJ^hwSOHTSG+wI184k@2r&HFJh~0*lDEBht}NOBGC9T&rqwPc!B7 z-?mB1e&Zs?(J7A=24O>o#~+F=3Nl601M~g}Tb{FjZV>)}R{{v|)!{oX9`a-sB%!+l9beM)Rpssd)3< zk>M4WxV*gNZgy7-RGar<(w(S6;Ov=Id<0M`o)TVwP%}*=+8Z)tK#@c~Rj!wg&gTw9 z#R&g{3d{v;Sj*_fiRk$t%ouv3h^XX^(v<8ae$U$wG*XO=(VZ)J-^dX*NGZXZw(>>` z<7c){o#xe2G=JxY>!*{=E3=c{{`SG_+hsA(fl`cs>Z^n3Svw;}FPrx{-GTXKo3sU1 zV6z`GO^yq)fu+mjas}- zcNqpuUkPvvGS7RyUEkHfCDgT!mdN|}t%W_>C;Qh!y6s1T4-TN2CoB)nH7g5x{kf;|v9*Oxu$>e|6MTsg#YBJy9W@zd3Y%QN;+o!w*$! zJeHs=3+qLhiWLFSKH(>IDS6eCbp|_VBy}-lp6J7h3rShv5!*l&bTce007;9sVRox4 z(Bwp6JL%1a#7W;j@wEI}W><_;D=${3lz~=_I;|2WL;R|K?&i(QGWjF4Uu(F;S z5p-`I#gr?A(cd!<7A#4yDoz@vKT32ugK_YcW%NiOdE!hX&&F;@$rC;4w$%wOvbK_8 z{?$fs?VWDS+}jZ<#Nm(<9Q?q%ehZJIG-?HU=aylV?FXoL$hZHc3>{8j1$;}>Wq@P@ zJ)LvrEdjR9{~tUnm>#r}=1-9g6J}X7|Lsj)mD`{W=uk(sTBl?-t>tbvhv$3lArgp- zsw8Ls0b5qpVdb-Haj1Rmproo;DXwg_3hp%|^!+hU<0c`G`Mr~Vp?7^vUtE6MHwJP4 z@$-~LBTU-(aUaa`eanLI%C+ELU?BVGL-1RUw|$I{{Rh%AOqe84cO&KG2n%n*bLrKe zm_|!6#ZNu`gRp)e-EML{RRfo0}H*cBfbf-z5w5xD}i^C(F0tm0^`Dhk}Jxh zEOSxcp;-|+)t0TVkXiTWCRf~q$(gjNY1pc+MKQ?|VYTX0`?Yg%r4TAlCt&`UrH>#C zLuuk+o^u|y>2a=ul5$Y>r~oaQ`z$Y9hk!eIMke*Z%{Y#n082U6aDwHLaV4RgTc(H%&uOo z)-H^z@VkHo5f_GsYHNunO})>k(wPxqQ}lsr`8`wgia5dKn8;1DPe!|V6H?#EnUSy2 z%cQ_RAM>1*;2@QkN#rwOUnk|H3i&d~wcRkDIZ^g~pb7n8YM0jKYXLlWACp*RW0gjEL`a#SHydDL-qD`r8veU zPyvH-^Ve^bpW?IEXvi1By~ox?-Z5*y_pUELKC8#AmG!QbUi5WQM(;6Z+q`Yl?@>8eMoTj7tB--bqKER#jL=R3s0d3K`eR|9%LZm z*X&&Qz&)hTH3$RqiIKV#XwTfX!m+%5(uwP-Nief1z{is3*0p}e8%7Ky|8Cd>h1!dU z6e4L8BvWT)f!{0Mjkv~du=Wl_eo0i>O?0mqobt*=SuG-NjwHc$kQcSr`ie=!jC7nr zMNJloEw}+375jm?kho!OqV1M>hh|iBc_jl3c2kMeAq^6M+mxbB%cMw6`+nlUAXHW{ z?h1=H?71mb(e{Kij35&y&z6kYLt{5VxLdM)FER51D^P%8X`xkL56HEwBA;GnQ=bkC zvdbul*`ISwlqe#%{5kuIJ>2FPQv98v_^5fWqq?osb8~{)SHLM7Z#HMUcybMa+ZV3f z!?0l#&7q&5+KM4quq{rVp};}iZlA67PxhS5j5`g5mZR+!euaRl2KjZ{nZvdEb$ zfPWb&X2xXA7X1D3CaiZycY~pipv6=A4wg6LE6=#2hoNZjJ=EpQ-FIzjK`}+7m%F{>GZ5r7Tf4Ymh z_Y8zf)xJyux-v(n7_YJo$#VF2E?q5*4_-S=_lRWp zCqFOhijzqC7^_F`cKU~y6+WM!TTa(uevu}TpYp68G1cg$5vx)3Y?$~ZemEcVL5ce= z&8vR&E8Igj$(4A5S!!zgWx4y7>ua-JT&5}$i}#vT%Efd?(T0d4x9_jo3y!lB2g3(r zU@j?^2%S8E{Esmcbd3gTq8~fteaf`5#GR}-ys}}0j|!xG)L~;WtXU!4 zIcL=GmRo*M@rajJ9jO!t)fn#>X?izwoLm9~DrW?80U90qTCQLGSZ_B-m(t0C1ghwMnjs?7A016Lw~8sT^Y}{<+aKep z)9%l*`mel7Jw-e{(c{GVyNWw{^T;UM%P zDW+HcZ*?Dxv0F5hc;U%u=IjR@!Pq5Q8{gO4C?bHejCM-Jwv$JHR# z%sqyhf0Tc_w004aW+FmPqWY&a)58swqWZUH-sLVqGf?bU3fA;yPjI|DHFlQtYKhoe zc_QN{I|$RfvjJl6HI!-Uc%?vjbkXsu+VIL%c4!0U-*7#EYFmf!-XKFJP9o1BsI zoQ2veBr}jNO>s=6wp1wSwy7&JX2b78-d0Lv3LwYAjwO<6d;Vbz69^+UD}eXewbP?` zRH6}HgI;%tVx>uYcabET8&)kZsoF0=jCRh2Du}Uh>2;4XBJ}C`jE%K)c%@nNMtGFB zi0jJWGfsGc4IRBuUQx|iu9pxln@uxTqN)gcvw*TVq5MY(9idv6_BJc7M?tMe;qur= zAxSO$D7Zh<3Gy0ETkhpkRcR+GLSlWWjF^YQ0%?yPO02C#y~rkbSGaZ+cr3Cgr%4y= z(=$MZGhdhfH}bVln`WDNv7e$DB?|FA>zc%feLz2k33Bg!c^&@|xcUjJQG_ow0ckSW zpCkzGH!mDl39@;ukSz5VPr;w@ZNIXqck|MJBT^zu6ao6C`&5!G zGN#S)-Oer129*Ig&H~_X&@4xvL1$X|#A;msbC0%MZhON(ykH%$TTa%Bj}P>KU{(0B1UB1#qKE0aml{ z@*!dr7Ed~YsNlE{Wk6hT+(&dEBXrgy8&EXOVID4s23@+)4aZi6F>)5bn1`U2AV|d6 zP#%zaivsosuqYlHf$}k&C#gY5)Q1IgfMja(X8gGe~EVS11DNu{cv7=8XY@ zX;LINnDHSEZ)5UU5OAbCaA^b0a>xT(K_4x+z!A#~4a29RstnfvL3kOl1Up}M9zS~1qn4n?17mcEkpK!$yeR}n~cG0*rv4S z?qWFQMpG1aMLZZWnV#p2JInU$|RrD;cX(CN&4K5{kTSq9ID-KDJ2 z4$d%D6N%(AL*ZYGXTB66p=1b7Fm-6ylec$0Dg-Gh9g6l>!@5oi_3OdAP8;?Qd`)N8 zkl_qIk#m`ng6w(434x0?C1<3rfp_($vuEN}IOO47`cJ-^P2)vC4sS>jvSYS=V5njk z1KKf-BSVguiLgUH&BN_)f|rHhMSzYoa^39Jf7AK-_f<3`DM^3jgvy=C^gu)_O-7bb zIkp+3Sj+ys02xj2BU3lM=Ex&LcWHgpm1(zy^2j4n_fdV8L-9@X`z_!(<7zK}VIBhA^qMJb%qqyNF3a zWveGuF*B+gniPHgIk|HGLEIMU(BqR(6xA9|D9UBV*B=yXeI*nm@#KuSeS@M8j4j~` z)G~&w(FzbAs*h9PUK=py$Op7!D`<<)#sHBR9T^=9CIbP%REIg#AR`EoDTCxF&8JBK z8;X;n(aaS}jERIs*h{c?oYUsqU|R?c>;USxOOwRpm9Gn$&2ieX*C12=ywr)aiqz!qP7S8-a%Qoo=d^JYzf)C~ zY0FL%(5c6!ptI+o)lLGu6fW&JSgc#|wD;jL6B9kZ>{KQt)iBlfjfG9q*{UX-EO3Th z7&bI(D3}MBVj+GVixPrr1;xgf;Y6D4=5a-sGD{YkVYh=RBlnq}qZGKu%x3dwj7=e* z)_@VrM_giR%#a6$2lzm^OBAGp!D@j5Hi2s~hXpfWNEa3Y{2;8QYwGUHF?%dgYy$A2 zN)fDP9yL3Z&RxKfRh|^IWAv64q-YKfntRRQv>OKu}=- zf=JyI1As?2!gEIP=sVaKl0`Kj9DOur0|%mY1|p6c z5Lsht(-ee=BLG6~;@Glk5ICANYj?Az^hm(DBK{H6CeezLG zA0DVq&B5AG+y#Sdn{ntq-6iqx{k$0^{x}nUN`IbY$9NYEqdsKD+_UCJiLCZ@(w>}y z*+NnN7qwY4&`S7B*vbDy&AX zF`E}>xsion+K1k)^>+&}B9?gsS&rz$QX{l)+4Ex~6pskR+!!VEamAdl3un9{_>B_; zFIbj`DC7B!ozp^b@&7}VF*HGa+}0cf4;bK_0CJxm`<4KDO|bpHfYMtkupPuWxB!Ow zFbZeP06Y-i02%pHV~l5Kyk&OghTsSy-A7WOa17QX8qf)(PZuCgAVo4A$5leKeVp|< z3E~8bW>i5RDvW{0*y}@+(zzGd<0}6F$+sdW-j#8+Fb62W%*%&>kxIWj#3YdEem)GuH_I5 zVgyno#c}8%q33JTEZFV*oVmpSNzVlO7~b?`IYI&@GfT_l4kuw-Izi${2XLVZK^03z zbq?@>QM)iFoSbv_A59Ur>J;R8iWTalolio z2?J};flh$ujEra6)_}+a*=IxS4lkI+GcPX! z-P1o;N)U$5*u649RI=aLFqr#`_T64G1D;0s7^nEH zr0F=YlbA-ObN2v5s*{2=*d2K}@#}`oK*9KRgU9p$`Z5FeZa;ZDQ|k7Cnx+7YTYm5t z=$Rv7P&_0aqp|s`^~o!Zo0D=$`UJ~y79iS55i!vMP~lRP)*RuKsR`#d@y^^-E;I2? z-(-D`xU%j(y5-t=_-Z!!t)B~niFN?pN6HhA-@0*}e_x#iu$1~=&A_EoIfq=q1Q6V^ z><~fo9AWiWzBu|60mX6Luuk*zaLgc{VFM=_UN+w-f(T-m{1|}{t2y(|3v}_cPXrdMZ2pT@ZpQ?~>_9~z!H(y^ z;AH!7EhMK2sYHCxEeayBbSTt7aH37MSYQ#6jdGedfbB=hnP|%R4z$PR8|Q57EMv&b zGG2ugJZ8+RY){VD*DSPEkDfN>4$_BFVewU}ff(|2;>7|p?3Hi!J{I(81I^)^%4rks zzc-yVyB>=^r)+XhGaq{NtCvWP6kyTCWC?|%Z*tk*saa|^i6}}_>U9NsFxmL%|CXjq z2E@Sb9YEdUHziAJVOj2Hv)yn(1^qktHFk=%-9(t!%`&Mqh*~fh+Dr?@9BXzyXvaq#zZ-FGb#Fmtno5`?;<%Nj>OGT3d3OLJLv!vUD-Z*f`83DWVU!-_e?C1LV)Zwe zc^@Qajf$o)K_3c?nT^cOkcf2wP*A1-SFrg6NAWD?3O!3Iw`=ZkcgK9Y(Uh+mFZQsTY7n{rcYlvAx+2&n;hb8+5y$d zlfW13XLMEz0dOf?OG(xiGekc>{U`hRf&a;VCN6fCz@L+`9O3^|9~g|Y&mt|An~fuj zzinv?)0La=eUFt*YurGxT(P1APs}}*!C)grQ_wvJglkmCA9xy> zZWOr}xa8n|E)?re?7}~6EPF9dk_l9)i%mZbyIaTL?#%TXR{Mjrs-p=m* zkn1qUw4Xffl`fA?+L@vqw{mC~+a+n|3uFTrtI7<|p(k`MzgAIz16G+>E?-7F+w6>+ zM1C{WfKaIz3JriNt_LcS!U{d@Zy@9QjhI6u596rTu|hQVl4yHj zJa7pcCzNnoC!XQc-8Z3^Cqzo5?+Aw(b3ft?8dIl4b~pcaPu;lV(~UZy=-xa1 zm|StvPC%!_U;4sM<+3U$Li!Tj|8sNIU@Tkr4^erNr9}zb$lFh4@J9{k zqg%uF1E+}f6^XS1dq1xrJ##jA&S32kKV?MN<5^0 zK|bOBPUo9>$o;*g5x>frpy!zN*wdw?YDqdmC(oGxPKSZu-R;#gZt=kV@*8G$Xfc~k zEsOF_y82E!^2h2H{jqLW@!s0)$`)rDB5%|o`6<(zGiOx;r)9R}Z!K-8({Y+&Md{?Y zDhCB?0@lvZ*GX@5X4Db{vg>fk&%1nn2o<6KcKCVr6!C;^XoQ{oPWX8$+xrWj4KNzE z)S9jF$7gGW7u5+LPU8r#uk!Mom87q@+~c8D zD|{``0SOjNn})w1Lb5^;7lX&B=V4O(58X@bCjD%aFbj=R>e-#;$VdTsk@Lj9Y9;J{ z8y6+D@FZ^)@x5O+taQ--54S)_zqOOYMCPtj=ewib+nQIp$m8<_aCjlbL>B-3;)R~8eE7J7Uy9;P zxn|Z}KrxZy{y{M(#Y9&A{c`0zT^lyG4ELTfk&{INuBFXX*pgtHX%rJ#^-m@6f$~@R zQhwwP%;fDOUN%R=mAB&C7y($GDosAH975)gzn|V?trHt zA>b);=XuE^B2IBoDA$3Bc)&Zx9rRr38E+&v9)E1>Ve6#MykGYR4iB!#qZGLIuO$xg zj13Vp*=Fm6!u+*_j()n=cGvM!9~-RnD)$!ouJs0s%PN97o{~bG+)TDEp*nRc^^}*p zi##G41>C`kfQP!`t-`<7a||DbenK5MHn}2?2x>O1qEorINL6+!;f*Ii!?*ZIoT1MF z4%+kqxE=Ab-PphKXNagFp0R2kOtyd9PBjKA?|E@1svc%*t>G4LOWSOT-3sXRx7@Mx z@wG0Bx#~adDJ4RU_1!V8cmJn7u1cr4@HEzue3dWX)4#%(&m+9ks;bv+J;Fy4Q9E1L zZUxj1RYo7jp!`o{Cp#>ubxowVXX))(dg_Q%-y{F2=E;s^hb6aiPpI~1v;4DJeo6D? zs|&CeRcndFTixB88A2r_*Vs6^+_0iFhE_JeleyCF3O5p;_(TL zxqOSA{L+l@u5yXMAV6m!R`=MqJ# zMu`u=7!SRAF8%L%7ulzSqTayUuunOoUQ)PZAewIUWn1kOEw0Lt6jXd^#u&fVPPg9R zBKzH_%b2>=P9NUz7gH_OZhW4xje{kY>vG^Q9h1s>rH+l~SXbM+tKsu%jGyn1bWwM9 zFI^3H|2k6NcQP4^7!I;sjkr+sM?24=?V|M_NiowI#N?6r(GT?MLJLIS4U$6dk!;n>t#%3?P?b)Q6jTpppBuK?Y2YXqb=i!FopK6# zl0aF;EIFj)s{oa0qsm~^=us}>fT?qKo-6`Zll7bB{mMbA0#KLSzHI;>2=V{jX1fTQ`jN zTggq36x7d|iYDAoa&MDVQ`sFy3Y+Z?%vJl9m0GS?a$M=8T(YUDOE$4fN{TF(Y+{!j zK!(+%6;o0%)=kPvvjd(&?>M4O?3A04YdK2gy;7_lrAkubP}<4ssz-}mlsK9W^RjA+ z*F}i|`kp}!Ko0%N;3)v9zMr=UYc<5f};ID%FZj zQHpU#T_g5xk`#_S3%5nwQGb_Q7b%4_l{>1P#)`U{%Etd()~umUHBmj-X~U~qhB{!5cEB8Vz)k*8 z2h3pytVA9+5``;oZaT`%VHcboa8aXMRNeyt?Up&pEs3Q#4YoJE%jcU#mb)hM}kys_c1^g4z!+vS8BvLa=eX!!4O+a)mSF zuI$qw`UkFe8A2W=DP&&G`hZ#~xicjN^-`wdO1eyPYa|7=3sX^cyX2lHjX_hnd3C8k z^U@#vI>~acx;emYSdRA=_0`^lzhw983H0A7V=bv!g=(6in4XXRtwP1_REIO9#3>f6 zmHmZYf4Q}!78AMhQ?=SX;GNcFBj<_BlO9!$+P~5--uh%#nLHBv+-XIp-fl}EDm z)JuGLXwuPgK3$5Nty8VLDdTdyMLcV?eS~#Kp2}k)AGVNZ4THE)gsdE{;#o%XY9ZVF zQ&bTm^trzwG%79Z}hpfF4+;_Se2_BE?!%u?@0yLPsT$hDZ)>opPvhs|nOjrZp%L4TLQ~mPsL965> zJ0Ej?Ls40Bd9mB?Nv`nvf*BWEusj&3$PXsmn(*h}<5KMswj|tOI&WkFm;5EazasDN zu$P}gV8|-6T0(9{?R+E9s6fL1ZZwiTW4!r6vN`#K+p}7<;V-Y<)}jqj3u~-(=XsNd zjrV){mj%Lnb|Zg4kXn9z&~6PP@!zU%UD{?EM-JNQ$qIeh?V0sN98u@U20JB;30cuS z$+&?IZwac|ss%<6(I}hTLXW~&a@!ae$!C2>;j6xeW-e_U}Gjq#?{+4YCfM&IGS?T{Sil}kHhVXyS$i+?=Ov`YXS8j`?U4xxE zh-b4U1(hFt|JGoqid$V|v^->|ckrX_Av<-s%|)F%9kNsLZMY`u_5MGJA1`w|t?1>} zDHo}uW%Kwe(|Pdn)Z26e$;0RGsVff)`G{`xvfEq~?K)(qTG5b13N*!occbKxof@Fm z*h6+||3BGO6Ms*z=8<|%%=3tjp@7uo%9cOi=TY*rVlk8H!wz;PCr5k0#L-3EI6 z>@Gx|JIwAvZ~o6kofGi9{&tr<$&YG7BZ%l+xE)XO2jA`@qiA*)^4|_`G|vA|EZleHf8+d|{>92O88F9UM9d;JdFePDT9GBPW9ec*Xsgm@eP-ROC~ z*o+ zxZ*As$@ucEZB$en`sOa(puc5DUZWl%4QA)q>lqP;jVa+y} zzG{n|w%-j8p)=1E^6QdyA=&Q^xJymG_(lqHQFMzo6eTE?hPQ4*Ed-@eFt!b~6qHU|sSULf>Lx zNiL$(Kag%$ERIO@2R!BY7V*U>G!Hx!^(QkgmiGU9^SA#GZ*Kw}RgwLV--qNCM)5rjve2nsmCG?hYg_7&qKdqT-GiM_flCA}T66adg}U z$EcvV$DL8s$T+U({Lkmst=HXwgfQR#`Ed@ZuByA$y|->Huj;+1+2sh5Ob`Db%->En z<$1E@SS4R*2Q%`Qg$jrap3cEcW0aXvs{WHpKZyEM1svXplL9%n{FqBGu@!9L`aslI zXXa1zdMEo$PoO^3W&XF9IrCD}Q=5Nw`WXcabFB%rOpm#$KD|B=@l=`le2T&hr=P#j z61n+bTJ%GRXu9qjW4JdYiI0z^m(m<@J>}ek9F&}gN7^(!&v4S$mtpTmiAyy7c*9AV zm*ePgxSDACG{Z^7muo+t{@0>@L|LOW`1FBk4yw7_MOmW&KK<_pIp_{#>my(=_nANU zrMHmBAtS0ocEA-lLhPk;amAwW3Kyj|qZ8En0$!T;#a(^r+$;DTItqo&NdY?lpFj7d zHK?(tKR$@k`Zx$po{6A8?eRgh4OJ9$47*FjA zEpv4wn9VdsTKY7h&y>_FT{MyvYC@rDM_-BAKYPP0Pi@zA*g}h5(^snL#%c!pI)gB0(0hot6Y>HCc{8ji-j~zG;z(Y z9_U(>JHOT~*Q=cgLkBu22PFA=hgwV7vF>W?<52tT@ExqUW?tn|tE^YA!u(Ii(!De0 zm6m4LwzDhSvzhIR#6{LjYo#AJa-2ed56T$?D1-ip-fSC*b( z#x@bH-AW6@ns~?U0CuGV!|@8XCm7T8TGi=#4^gv;&F?2;TZHU3`dIB6UOEYf8oy21 z<4|Lr*G+>vPD!&=(b>nbALkc=uFo#kdENQhxn6!+n3F%(jF?d}#u}MkqV|E z2sbelG6UX8zJMp(NJg;*o>`&xloH5S1_P1$I&+>c5FI;)jA~JOwjo0>_c3tqEXykc` zCPL3|!&^C|OvGl1EIlV;a!2-@1D#YN0^;~r&YT0CG~gN+<(zt;lZvl#k^S4sq0}NE ze5PxVcPQPr(nUE(c!$z!E3qI4OozbWC>O)*(lCcKYnZeHl`i<=73hp_7CL8GFhv5x zhrR%_OvBvCFeAM~DI_qn5D{m3htl(aDf14c%xe)5tu#X4Wc-@`C zx;q8B^Iz*C+&bdJUn{TGqmCT-!iw!@QTw1yMFPq%#ZYZ8KhR0-A}0<@r8FIK82JS( zDk;Eg08S}@pCH9kB}MgVSP=tPS5AqmjKiHN#S0__?&%s=SC++9#^IhR#Wj)w_Y94z zE4^`*3fI2;Kqpa(vguiX|KbH3wF=xONkL3qm|%@bsc)`zQ40Fg0s(H46y$j$4ZSMuI(Wz4yA_8~&8khX)!xlH>=EaH z&)Dm<6P$C+U;1_tIu`9F`Gb|UOi@#6PoQ`nQ#=n8=UWud>xts2VPDj=s5Jke+)c^1 zjHxXHwZ`jkaD-?X`uf`-9SD%Ij47)f&}H27QwvfYlog=M`Ci-It1yENsiGUW=zSEi z!FKLayi)$HQfRb^eYP7#*4J6`h5n;(l$`e&Ea-g(Bt7m17v=c^MECKg%fcJ9VpX29 zy#@4uG45aoQ8sVU{>8ZZk$&B3oR_&^ty#AI7|(jWV!fVO-(&GwuV`k4JYIRfbmt8& z%2tCGJ+EqUZHk^Sc9snwO4+b{1f>Y+G)bY6rx1!hSU!Rdz7g9l4<6{G(NbL?DZu^? zu(uC%(l`suCDr341sH!c9bl(fU=yUeNK%0Dm(Brpo&`2Vs;5c{u$MH`I{;=)G!Puw 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

cSRSUfhIZy}>W03ScbA1b82oX#AR!fW| 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⪙V++$;bEbol+QhJZ_?^zX z1ESbFSq~yg&tnXuUw*&)mm+k(Dsdi1-RaG>IKKlBVGkm;cmp5AJp}HY!CZ1#|E=z- zJQvn9k`o-hmOZV3siLcJZOR+Q^<6eQ4$O6T7Xc&MI5(!rlKdYB&)@UIbn^fxTyPFN zj!5M~&fSHDva{_XksG+&Ip*ao>&0@mK~HUR@WV8M?UPSKnn*a5*hSF$ga~sve}d+o z5i4m55CrGVg~l<^lGP^|52(|xY>IYGaM6FIVvzv!`k9M#R7VIs8}t|s8U zG_}Phv;?Y0z(A7+BH;Rz2AaD5lMO;k1$y17ZSCaN9kf@Gtw)OuZX;p_I&HY1A&S2V z=^y2m1fZTeNhUjjh6W!3jCauf4sm6O#(dePiqR?|DjtsgHHCR6Q0K*kq(dOKA}DBN zi(_+Ul0~l1^=_r7-bE)&9D#|g1H@uOx2CY34s#?%dttlj(ph9!9=ea)?^@Y6(2)JF zpyGCfq5R1OFIM?PSqOjS^OYH0wR`kGQ;W{x5-kMQludS^tRisK1}@Xb1zxBbe_cjS zoQuLDW4j-yr?%8fnM-OkTV}ea07V-htYYBZKdK?S8p$wuVP(zamNX7IX?qO=uB~rA zeI_ElJB{RER^h76?iUqp%PM(VZ^VIKZxTDn^y$LTk(g&=E(!sL!;LOnJ6e4X1|)ok zKaAyoOIaZ#_IH=EKR(^+N-6kArjTd;nFdL(YW9_b2dEr;~T$ z>PTq4r03G&BWT?SDC*;!4+uT8ILaAr+5n8$H0d29D1dM7gK0Ct8Op4+fjLnYl_I!$ zNgfX?;(53T;kcK7tdX{6!ENi6!<4E`0M>IBI9Kyy9MXEvF22~!qUM+OY6|o zAKj?R{Y)8h;JIA``a(GcXP`=PjYI$fc@-2XIc{+O)cZJY4!D)LaVac#t)!NO#^+@; zZ5f}88TrRSOTbb1Tt-&4zU)TEe?7l*Le5N%wlak_AUrtF#w0^4R3sO30-;=6$hXS5 zB>nP&Bjf+XmADlGs1#Nxdl*1)L4fK>hkM7eOzAwPqB|gjS?-@lpY}s6kz5GACoC8}*_FwmK*v&{<_M5Hj&!X#{$3hV z(he&*Dp`W3+zrPL*2N!-hmO54$SjqM;NX{n`N#4gYHEk$9t}JNweZ zI4rA`D3TL}85g;&oA0Sfh_La*^-r1s2bBB5$WeZGv#BJ+4W{4fBVj)<6*B;cP!nRp zT`S?P(q}?q0Dz?>a>j`dNzyYzZg?2LP!{M z_XqUI*pfvBl|mA5he3flOEX8#C#&S>G-Ak4Bg_?NeuZXN&{&NkcO9C}Dt~Qc!nEJQ zK&dSZzaWmx0dRm(-dy=01;Bx9S$1P$xK-u%P4k2|1U7ezCnKsjSYkCV#)h27+{Qp{tE^f ztjsh37-%detxv`=<7Dr{+L%DK5Y)2&62z~qeXJ~s{owMI*WM6Ne!tJ@bqTpvU2_Yt z61b9vk0B!{<--- z+jiFM_wRPh3HY#{6--_x-0Yh`rf3VxRgL+$+&Y=r-)~|!g0=9UaF7+BdU497>rICv zV?Lj6+%FdztIPmv2*3M0=G;}+Yn@uMd6g8OO7qe0a207K-#aJtvWK4m2#9*o#Q`87 zRrIQ_HN&nDPM4gE{|Ji8wJGWBKl*Q|R(K(@4Cp^mBO$FGD|Ytrq#V>0tj?G=z0@ub zIy*2Z|F`z%Im(YwoeeU|fQq-O+kZFZUKL(6P>~b2xf8^#bNi^^Wf$k@ko|}t)Zkm0N%c}JfsymB&g2y=oeq>geyv{Vct0CwXQWs8ndPp~P~WaT1aDqXG_sV$zqnaHa(cCT z`YHgn1*8uE>)q7E=WqWz0&38}2o#uT;%h+n|A7r9wfltSKG;BoJMiW_F%9)U{5O+D zG^%@>dQ|#n&d~{PMPtS#ZWp}M@S134Xv{P8Icl8Jv42uGHv2Omm9U9+bM8G;73G4H zL>}UxCjCcO#1wrc39?Z8tqjW5rSM4_-?*fk#H)3ZEA@T<`)sVKQveD}{evWZNzhIv zJ)gLxxP=)A0P|H~^!Bihyl24Hf@W*i_532n+)&+UvBHp5H8mSal@svze?*J%*%ndx zt>7}PxqI{f%4zxIPZWqA8KSdKg$i*j;SC5mE1~}QRnZT(8r<4-0#haIM8RgHY^xe@Q-G$ zm7vFJRMarBQ(_PM`{`kRz>Tu8Siqk`u6qmfV!3+WX7WyFp+v%=ZP>JHY46Ga2@zHm zDM?{87fC3BQ%1P2e<5KvzG%z(0s2ceKTP6SzMeKVd$#mU$o=Ld(Lp+}K^?USz0MIE zQD~M{ne$vE9myW~sQ@srArI=u_$QQq4*uIWLWi445Z8LS(7 zdv)qf4HVfEAE0qpk8bhAAZ7i@EhTgUp6 zru?Qyx%_BJ>?oV*Fan}nhXM&$#JTHxHE@2pVK3KM*dxvms2Nb5%66-f`1E?a0tL#r zZBAdT|IU_jyHkA$<@VbZhL6UQ-;hvqJ|y?b=Nq?<{YbBZ$ll{_XF4`C$UVHD_0Yt% zJ8Ru2jbPzQWFPlYSBL7K*hONZ0Q=;hOwe-Mw?@=NBSFq2BKsfA==^`oOAMiQVgO%xbrJJg=4!h|H$g3wUn>l1|O z;hgrBX1ELf!_hDM=?!dSb?l_YY-3J_mAA?9mVy5QO6tu(KncT4pEB&nm}HLJ5?*LG zUSiHrcUKAE_+1=qA`B8-90(KBXdd91t2%i&WGPD)8maxKR)vdhsKHKGNo}yCM~oKU z+XT`3D2A1h!h3wzU$|-;o9U<3l=H5&?)H1y$OP(0>7)S}OyiWLNW3OBjPaX{d-|6ok6CB2A+PxG%P&{ zc-v*Yj%6N>`Mj}irPpn_3rs(EpS<(hTr{}4@x-NO9&0WqabiyzjH`{WH%b<=E;Ttz z@>Q6IC?nAs<&Pw5z8oW>6|+|8t>lp3#y9U&Y=D_~EN$q&D->S!bwM`;u}|S?Vwh(^ za(*A;*#j-0%$1%m{?K#lf2<8&AJTALi85SLWb66sFl=@1;FF8u+%ri0xsaq#8e0K z={Xm6+fhDNr7>GbxK%NleiL(`0tRsVop%oZC?!3 z5sBk(MRxUfASGTN(La|2q-CU(N5OUA3KU74ny>Gq+r%fYgdyj$I(RViI&Vo=CDm%s z<#GH1E%SS-{hn-)lGwyo-C}5jt$r$OA2vg7^pd<~eQJx=xcSU>Zzpv8fz`Rk4@doW zbiGC8f-RC)@2^bNBclGrp}jUj};(Occ%M|#rDe1R-`}Xo}bm3O@#vn=#aLZ ze06o3j+OuT2hN70?nB^-j#uK7g8KMrsqOaT!$_w+m_VF(bszWmV3nql`F^b6r zQdMV1j*|saaL}q^toJr5biw{=x+BCA6jP-ye1%tCPD})Gf~YYL#x+CYFlvI1yD6zE z1e678ni-wS8{>X4`WsGNrw9Hk>4r-e&s)0{6@6IeHj3N@J;L~Kv}v963J>cFGL$Dj z4rPUbqYxEe+{gOUTezFDfYd9q_XLBcWW@aw97r^qXgC3 z6{OY0{jn%s>C+_MlQ6AX+0&9}9o`3WZ!*Ws?VSRiK%`x1H?kWx7cOZ9g{jj1;UT41 zEvtEF2nXZRfEnpr3NkyOj2&qT@6upN&FFct!F)tZp7YRipPVIi==Rb39YhY2g$eHo zvcYV-wl*2007=Rp?-9{nmH{Qj!E{0&&QExhb28W1rNk^=Ze%t>R?_Fh5Iv(N)=znl zbqjl5lBxrz*DDtu*_o`lCjKDgZPuRuA~G)MS>pJDn6Cz0_LHnb({;CJm+C@LAcAP8 zhi1cJ#bUALsqc3$ovP>XPcJp9v71ti4vKYfVq8!3T^FXFj5)Q>!dKw7@P%x>SAWec z92qZP_sossFYtC{-}N@C58N1^_>Ic=q&_i`#=0MW5!(>K$N2+jXdvV{N$g3_S0y>= zf_6<)r%>I;@K5)gg3#5q44Syd{chvovDJ&+{cr{c_$oPnNj?0jle-~P+J+#GsfW27 zuv@~DFnwEM1WDAsVq|<@5)cnh%U|dm4He&Aa8^E%JH{l>eL93GWWh1Z@8k3{JE0_VMM`U1 z`L^&Z?O&K&{rJ62yG%c(l1r{BnuaQbca(RI(YPUyJ+ATpWw%>lSK%59ma^quJWJz9 zqh!NHr(TbDp&Vm>g^er$l8%i&9h7g1)puzcKioL1n|8o^v_sMef(P;osb~!P!Y*%0hsjhDAB( z8{GBObMvfog=(J9&Sf{4Wo`}jS@1RBHxNBN-dlyrOUT_q2@Ub|q0z zSq23=-K|1U;rWNhX}+WK)H>pus}dWrkqM5%IEY6nt->t`wxMI51=cxk_pMMJ@h8L9 z)W@NgZ~YVNNowkA84|2TVxlg)*x7bUk`Sz1RO)p>`iNpG%)hCsFQu-Qjx~Cg)G-XQ z-IbS=tIDI97wg9mR9*WM6Jkj<4Hj#jlmxtOu$T#B7~(;bZuw zFen3SYhnbH86GDEbUuPK1@WP$LDO~2M|4NWZXuk4L+9T<_(ZYWPc`|Cnc1K7`N->; zE9zU-R-D{zZGo#@czt5@IYy}F2`q=d#C)Am=y=t81+QG421qMUmCUl z9N03_EeuJVC?Eov1NIGvKA$iVl!BCErtp=!gr;_$M?Ac|*$Z5aWhbIPBJX7=ytkH- z)W*-}kZ0o}yA?1mi^-d-=u_NCHh;)isijdmTOV)vbxu<})Pf`lVqu(DXcQ^*AAwSL z9(}2X$w(ck@ra^*;~sMXM|*_!rEca*cV5~(FlG8bTO2VyaJXpZ_A}MsGFcvdwUh!6 zWx*?>$|Z&^c!u@#b8uBF8>Icdhwf3_5Vw@D5^i5cPd>-AEx9whp%o!dTOR8Udt10) z1Yo)c&aeNSLoMTFH>s~U{4Bw>T8_-KEr=)-d>wcecT{ylG0RigSu@B#Gx+aJue z{I8rTP)-Ji#^AIzsrjfqP?7Y&-wEXUM>1rB#Ou|Hd>YU5B(UAP+TO zr&@J|qxx~n;8rH^kokf>_83&*6?k6Cm-bct;%n@q94v)%EX&Km_fOSruS#j4UO;4g zL71mWo=BEHpJrr|FFx~SD%Ze0&}F+4x5s}#G+XKHI{@%pyDYf!!Lfo7q$4l(-5p>J z_z9ZYXFhj=HJ1e?J-sVucm|lsH;$sdyA~$t8Xj?yH0^5esVr?!f?8IggsSYlAapAn z&R79^061Kt~)7W#6cz?CfEHGSKj z-Bxb(2j>%caCB>UUn(OZm7Ku?sSiI+>W%Nx3~xPMOqCGtvwxidjR3{SIB}%bfu9ZB zuz=YEsc>2%ZD~w8V7)~ttKj$g!9S+iJXmA41sF%1oUf6-H<9MhIf z9+F8{G5V^go3#HmRo;}cuot!ds#rLoyE^6Kl`f~Kg<^=F|HixixWvcnX(`2n{f|O|NSuIKhju;RjOY2&0J{2%?CBDEev3= zb4gf+)bYIPS&k0&$i{L;wCqCyw> zSO;`6z--+=%{i4uVaaN04eim)p>=wULqBh~;f#8~@d`S~`~4BB*adRynGJm$7)h4T zCk^)~>#Al47De_D+Trobjt<|KB>QLR$=H^^dtEow#VwVN+QD$ere9ZVTiJ$CTbr2B z(9qoBv$()&_(Ab!1%|4b+~XV^d7v9=>vR=gFQyPDHG|j;$VN`4wkAAIr-_3k^91AB zxDp^Qgxx5dibp~PgI|FQ=p0n%TL;O#W$epno&%WMp-NuF9DCYu{msg+@SoeXqIv`+ z^S;i(6*UV$+%j?MHG$F`M;aAJu3q`ZLx;&WTZa*R>PW5Xu$1@kQLGZ;zknj=!~BjT+boG+ylO+0q%&2u8-av+`Id zUThOO)p}+>4$Tvm)dgvO)e}4L`x;u^8dA~cgPZnfKE348bkA2^*M>kCa^gJEKI|qX zeH1?e^0lcGHTq$780Azgb7Yr<^EhZ8dX`Z!4YNEY7DZ!P`!3FQPc#8ZAndpE!~i84 zw;`Q#t`!aA^^XydTNiftlaG1s4;sdwQ|6(!w2d5oqVV#XN9`kn>6)0#L?VXn`(J29 z@|9nc2VA$&BLTB`iysj8{&~b=rHPS_+ya zk%H$Lk#RDMdcbE)ag1sEdZaC2csU}K32BQvs*Pu7thtR*1W)p32fRzLuGl^2 zj(9@$O!yDj`*8)_9-{!+`*|a#sY1-Bujp0J%oiN-0U`*W=&H+*lr&;X!+GwgV!~?` zb3gQjcDxysP~y3UjiB)Mk(5&6Ee`Qqd5$RHwsgA<%Z_VTgMYfXnb`UuSdS3butisA zaJMX`2EAG}E4O)ej;5Fye_jMv$$MNDt%vEAe1zd#+oGo<2tOhmbx4|Q^J;&Y=#o*X?{L`5RZR z)#pC!H}{@EL^BgsL98(GERczcQ89=I$V3#6Wj-Ji|AbZRwUCSR4U0tqfg+y`5)kB| zRk||W5QLkf3YP+u3GoPO1hNZCA1YUP4ag|t&EriPK|MX-pCuxlHQMxK@GyHIwKBqy zF+1n7VxCs_yu=B`;88(qsf{Rq!;#&Xkl+ivk-}QgKlb#VzaEUi02PXF3fLjJhPoO!L2SCLIqVQv)v}bC| zq#Vx*B^(U20i(z&q6aj$DvY6vM&xzE{>&7dcQ^0LVl#j(-yhiWN3Fb|ASx3v=MIGG zrliNLhL(}~I+br1P($)6YiLzNPYhF}c>7^FaC9m2f$SZ5kB$kQ{f4mQi-5-7XcbhrBTjLo{sYRz=_SkK=q@E*!ES=SD%#M`Q3j8|0&xqp z!2POcf{#;Z%%54DMfk{vsgsjt8L}%L3nqRosor3$ZKn^#fj{+bXd|q~AFPnY#MnTe z5X`dKJf~^5NEDb{fo#caQjuR*@GXdKQX>-gHbUxDrtzmB6(U`dk47A# zf8Kzbl@<-?TRM7fKfB9sno`PiK-NPwJ0P1d#T!HBO7Y^~x#eY4s6Dd->ZCkQZ(v5V zgPwY$@e)dDC66%7Tvyo$2K7`%rIO+7O}FCoV=hj`N=?{FjAuS!{(b!+Qj#xi_j51V z>~GeLYATLA09abD@l10y5uNo06x`_{M(|4R^r8PlEX+HMa;H;v>O(U^WG~NaMJhz< z{LiIn9FZ2$d;1x63KD8+A-{X{(WVZ<&1!RA_^3;waMjykZ-fi;LZlbd{CotFAgOfD z&?nJKFebmM3nI(vgan~W1-Iku!74b>lk28z8|0k4^ln?MgSqu*5@UaG94h=Qa74YO zk-@V9xp)8;iC>+njs&3F0fmE~yES%8oij?4C*H|=W6To~Oy3YT{7b$3j(cg3 zpcB0JO*pi#I(8DE-XatD-%(sL^vAaTMio3uMx&k7xHnw0I;s{L5V44pw)q7QLr_XQ#GR&1BIYw8I| z9)_5l68D{Q-I%cc!h)wdCQ}b45v&Yu&#l97hyL8R!j*`W2ka$WBJp0;2Sj2;Tv9K4 z=&w#xGwjSS5IU`dLCDlyA(h`$<)8c^;9_$MH{#Lzx+ZwpA^;_P5hl z_jsfzkHQ3m535JUbK{?5%6_j^^AcXujL&Xu>D{DI_9J=5io<&lTp?x1@NRzC`g9P;$FeT~~gJ?URTu8r)_P`GV4oSL_t#EE#@hsXzX(!bE)A6RmLoXzNZLJa`4wa6b8=CU%UTqXGsi*2 zM-D#?-;0t6Bsq^mxb}-qB#-UB3rHT^@%njSD)Z5@e%1fyc(PN$PyCSM}4FTiNwL> z(pHVR&>90OB3)i+?@#;}Y(Cv*H~eod4zQ-`Fe*5pHccmc$YK__1CE8>f!eppVSjk0 zW}+!v-5QW%uG)Z^ZDsgo*2_9+P?t#9Y0ChmmLHmc;ANxs-aCgYN*w^#;MJv|zEfBF z)Nfl@(4DA%z~C(`;hI+dOwsHZ=f4+MVR$MBR+pELWO(@g_Ku%>5)zXE5>iM1p{klO zSi@PxYe6X^0Ve5Dn^5t?CjM*T*JT1H!>FcUYWrMCcTOJjv|Cp8Apz_w+ENyG<%PxJ zUjC9RG7VzEk)5Ui=h45t%Um3gEiM?9_KSAYFGQ4!j`*7RrO!NtZruX>sT5@YQo5n{ z>%%d*#imI48e~cCt$L`s`dN_qhz6%bIY=@GTfwu#;~_|7o=?bB4cvA$v^C$6eTNiH z-uHU?Ml97$Cw_JvPAYov0Q1scP>QWa)@e5Ebn4wY3;_=BGaKTH)E}md7BFoGJM;=k z5YBCxogj1!h!|MDs0wbGditF?^cUlhwWdVm>VJ|sS>HIvaJ-N4h>(3 zAGv-sE66jQML%LL&?OtKW-r$v8$J2lVN-{6oE{s9MP=SLC_Vj06!8BXUJ%2M3WsVUyJ8$Ew8;W$~fg^?xl7{ zU*vJ^v9j080h(AcIbtczGb4obFj;q)kntX{JB*iS`7GU4m{9Fw*Kr1;vkANtr0X`d z+{nohUDxoRZ{?k~5km~Re&gWDD&-Z7e2ib4`Sz3e83WZ{qBVM8A%2{o<|wj}KLB_V zaQeodp>TcK6EI6-q!S8(!wJF+Qi%gNTUvr;+!u>VlM{Ww%zLk z?FZO{c>S&iDS~&b?WgYy?}vf8^z~l$6z=9P(fr|K3-t|qkYg%AT85uY|I#q(l7L6S zxDAfFBpiW%T0U>qAB;_R!{!QHC*>0-C2h2Yz)EziK zD3C;`Dw`@0egu^&@I28#_#JD)Lfiuk8B8{1;E+G(?Hw`ZJ>rU$^cHg+YeF}?Ia)&Z z=fCXV$S^$ue^X+5g#ISPyhi~X7Z(INckX5c-M;2e33&Q{It#IGbpnr75H5Kx&BUVx=Seap%`PcV1%<5 z{(wipYAlNfy@o@1J*EeBhh{p_Aw>@Bsu3|g^v;V>{9+mYqi~Te;-{d?&=Bo2vO!h; zgb@j8Jo#gecTPk)8==~OWwYzVyeWie2taAOX%m=eHTFf0LXo09gxThq{MXZhi9s=X z2J0@voE)kWu7nWcJ}?&j0!xuQzUxbVYS*+AX|S7l;d)SGjw*LZdk}p-k_SwJe#mdY zz%@M*}$s<#j@} z1Hp}@y8vk7aqF4=r%C({0~O;D?Ehq(8;|mVhTm)|tei1sVbod?@Phz(ga72Yp!ZNm zSH!pd(*-DrpyDojpzM|cs9;H#B4R5X1Q1|6Vr?Ee-Urr*z>z*ibkmn2q$+2z*0;|y zU8Jw#r~|r26h6!W^9oc{ksrW|J|Z#9B7aP|g$=aa@#CN6qge@IR&ggpD#ks_|CE7J zd(RK`QT$(nsrPo&WVo(P{S3FeIS^kt;x+_LoLH zin(X}O?4{#n)tVYL$e2H?%XwiEP`!RP1A0Z?G?Y_iLG@!?jZqYT2R(Y6n=|pP7YSd zyce*#zWR_^D!sCrfmr}1Wflb>M$|Lmo1*|G1{Yvrv?XQx)Wr&k+_}!ou87lG(x}zB zdoOgm_vmNuCnZ&QSa?=KP6|jCSrN;nERtGe8j8?(^ZoRco8B~jM~`kHriZomun!yA zAZBoW{Lh@^Y`$+hf0f%Cpu}rN)?rp&j_g6?XZvU}B2fVJupjMWJ1 zUL_ppi)Q+z3=VV}&VNXEL1Vt4vYgX{NCdocw>61FcTp+<@hE1s{kg5Gc`Uh7wLN1gO?6 z@|nJRVDKButuP>h?bj!%z(frx6RPBV;gPcZnzjG``|FsBaUUhzq=;rdNDt5!sDxXr z@QAIlNmO!v_Y)w6!koLT#tNtm^{ zXEy!Y=*f@-i#*4(s3YS_pOJ``Eu}To=+JdIADP-Rn|@((kfbbwVK=~3<*1an7U6Nc zSIas!f@&AnWTg1btY3&3q?lXg(7VwSdYC=W78tu(TE+)TssPhkBQ&|N!=Z}#4Y1Zd zX1jwr=y%Q}-cvTReZ&*2x&WWC!JFF)>eUJFQhWXuUXeJuGQqgIOAu&}2gMxQ$juCL zEPhzDuW-#HS7;}j99S+-*B1(K`I_eLTTKyT6!EwnQWAT5em7y0LSj#r)`D0XB~Wlk zc4)PeBEu72sQ1Uyw&gVD;$Qg1{T=%>_fo|d9p|-z>;HU+m!g|sL*v(Lnf_ft_rQM8Mv-fYEpSg%+<2rrN*G`y5oN-jn2;N?Z|Jh#+OL6hW3PDs892n^*+%On-f8N2`AvS?owOw|7_CswW8$YISMi;c&Hdv9} z^=g%ey^2-%1JvSSK*bkBhrVTVz;`oH**GE8;{#*!1vr`Ut+qm0T@`b|pPEJvPwG?P zi7z1%Zy7&YLkO2VYEJ9h+<;0>a=a#XN$s1D37FUx%I0}y19P5bmhOmJ{nf}+Wbuwp zc1p$7Ape=i!>hz-*bd*5t_x`r5?|*{P5e4q$Qtzk{b6yGjqv0e%s)AXD6Y&HK zT`@I-m$g!yDk^7ypV_<@m$!l8e(>!G-9$1Ex9jw%kf%-suJJxDzEn3b<8v_iF`CgL z^$9Y~YIkE##f28yVuhX1lGes$fOFzB@urJZx$AnBVbJSHu(F-r^`xC9TeDdSXP2Ml zbEi!2=#}Y=z51v&%|ltF zMRD>z@4;Iu*%(|6YOc4sJs6ne(cLk-wGvjIskQ!obYR0dBd6EYnMjR_?D(BND}MI$ zfk*ffviV*qpX`rnnN)<((i|bhbG(B8i;}Oodw60reVJ^9KVj5@QW$V*ZI<7V=J2c4 z3>7U_pgLLN zTeqM(Mmomp!|Nzpp(mvbz*Uq{5-!D`B(d{#cj1v~_$C1n4kv_fmKw(ysa6h(Cz^=d zjVhY}Q$u_61#v-ffowhcD!-JzaPlJ6H70JTpbI!p*Z%`xzOGKN5z6^N$-28oI^%3-+K#rKI#pt?KOsl%UpYdqf3U#*}#p6J#}$6(Xo?4(x0`W4| z@qDa+zwV>hpKbL$Z_URfQ1U8ClIZ8Yt}D)Z*(gu5S6J}l>=TKxL@uh0R{5V?wt#(0g%pEC;K_a)oj>2uiV;<$^0sdE(81G zoeigc0H*$tc|1EMQb|=rAbQx?wZ`@hpEVxs&)rQF5%!G1fc(J$?X@seO~WweAa86vpSbYG)^qQ|?-92UwKbRjV# zF+vorg4bDdQCn(N_s^r*L`YaHS>c(pP-56J9vq&c!Gv5dY1rKvRJF zD*c12qqFxRdj2-E@eGba z=Qt*x(kk;i|2aZ6nAsk?XG+XfiAKv$Y4R6K(abn>F}{Pdl=pE8*riTr8a}m$-qFt* z&E-_RSTl`RGaeHer`g%RX%{^CbI3a4Hh{5Tq5+a4zAVBoQPy8WGJDwD6wFeG$fw& z%24S&?}yCH0Q!ZUCn}k>j zZ=ddmg*H)M(7I-REcu}eOHK%yljplvK`Do7S%5=$O6eKTm*$1e&32h#z5i+_Th6>I z*UGFmiaVQ%c2;bf#FsFL4y+r8fqw0d{~{gu;P(!Lula#~5D+(z^x`}|D>hpf0J=i5 zhD^$`>JsXPV76iPp_xE7xl9#h?5p=0$j^_|6uyQGS%?7f^4O@C8VGrqOWi* zWIj^wi^o6*(>kH*`c(gsCjVZePV2&AntY>dl1wRNxZzucS(Wbnk_eQ>FWW!pyrP9b z#l7z9OG#$qfDj1tU?9XXEhCX{5g6jWnCl@)F_-d_-DDAG|00VLy~u{iBJx#a(Y7?> zCHHXB|Gu-~vdcUervM5mQ@n(4P`8&)akb0mU1e)g$j+jODO?TE6(#&JC;8T3QYU*J zmtvsbhM+sNhi)@p7!zpQXMSl`}YhB6Z`&6v+a-th%MbJ%>75Lw$qlk6i)YS+$FsC3+`GkAl^mY)7GnBy@- zUE*3w_}JUx`a86Q6wnh8OuJ$!$bAjdSJg7v%VMcxT8r;VMBr=Ce?z|FPd8OabNIhu z;!FN^2S2M(H-t)8mH{6oK+~bRXMHlA`t5Q}?9tBk_@xW`%fBu)pOf$eW(E+{cYC5T zei%Qf;thX7@-L*LtyDSO?)7eU)16rO8^`zP^6?BVXV`x*e^>a`O!$#2^{cwJ@kcIf zzbY6FNsF^j7|HQ|*(rtukkyU1z`o6b@_7qMt@YkL(%EKmf6?G<$`}JNxg)=pkSb@n zqe89lgu!rivU&X3d*kLkdBcZ+X8hZP!HEF=@qTY0U`WuMY3=3^x_#>RuHh=JEas74r7J4AV%+Yy+cRvaPCY#+z(1(8=i7PbJ^`L52w;raVCWDJ3RL3UL!*m*#^tsyhcQ(^QH$6W=NiKVWRtEJN5;$O{%eFD ztON5YbW+dS!-~uUp7T7NU)YmF6?}Bd8r{>*2z%4mhV#a9(l_md0$-74p+tXn!TV86 z`5e^qNqf6RU!IzKq;ZD*vG)5BETQ825fOXFVbt8g7Nn;7lFg`VWZP?dn5DdJ)(;s!!ceVh=Z)e|JWvHsSU>#=xr+J1?qxgb z7TQVp@Josd4rS@2_mJDrnQ)D!&bQ?2MtsJCY$zG4^dC%ydhIB}z|MZbU$4~cDee9(`|irLoq zv*!}-At|dDAsJ>W)#n;b*FbMRr=0)SB|>~9&9yl|`$_MLWDWBw%Lq5Fuz1(-{+RW6 zKxh2J4iiNJD@k>?l~N3}+8PbybIGf;!O+u1uqS`lM?T44QsB5>9>wf4Hb))^etpbS zu7ulC^8;xTlu=++`?3Ve5ZH8}wKU4&#Jcyh6gBuIXiTTPU5<~{TYiodI@5$DR=}E$ zo2k6ksw)-e?iS5tC~k#d`^In~BGU`!Rwxc)$Ee$L zBNoYK=-YQamae7SdzoU2jpOQw<9Ul6H#O`V`Js-BV;$G{bp5ErLe!-ZNkg}G=r^p+ zpu3}gIps&MZ0kz_y1nZ9Xu)Vp%D(T3J@@!tv{_9#lYdt(?fUrR z9Oc6d0fW)F`Y)G)?AEJ0STo*!pC~pT3H$qulWB>|4T`6r+|=MroVhY0Nkv;Y9DA{@ z1Dam<(j%v=Nq_8RG@z-<^_q5c?4JN77l~98Wg>AhBoCt_OgO-sNi>5*uuZ?Lehl7y zBi#KFri~_DjIEGNSql>1R*KCRC*CK1rw}&zy*5w=9ZV2W8=8ZR#fd)laNDWs`s2F~)nAKYhYeB19+IpWX{FP>QRe%D`ql4`Aia{D zsqGZgp;o+Gl^M}GxoevBIE_Nca+tKX@87d0mfL|;)UZ)d?6;h-1x(6PuO&>M@ZnVP zRsqjZi%6DR*LH+##+eji2N4spuO7&u>uy5HxkMoE_&y4{-)^Wzq9$!dL_fH4YP3G- zhxcwAUO<7KP{Pl1YM%TJu6^-9Ptf6C=zf=EtWGVk{48HM+j+jKnpXGj`Otct?9b&* zf3O3KT)maw1&=cISJd?8+t)@9E$bb7c4~*#eX@~WgUsa(ob=tpkTxJYQ+?YkS-Tm!>40TaSkw)61&q)=!E$uTIJP12-6* zvcZK{2wro{)fV6Iv~t};an0T9=G;e$zkRhrFw&N6`j*41|6239bAsCCBAiN5ahms`@n8svH3r2h=vn4lz+?ehU2(yZQh-iL-}HgNk1BlLxk@>#~v4LX213rNsD>n_TO>+hV6|cGQ7vu?C(|s^DYyT zO;jXx3(mLYo%8k|-Q@rSy9bMe$wvu0S)N27%;w&x=NySniN>wuBIY8Ab>D^l>lx-t z5*elZWT)=^`i)tWGvs03PBHpZmu0&Ef*6%F~pCt8l{)XZE{O&TB z4R)B{sq*!%_LU-as{9WGGi_JG9RV@bvG%$wb|SlzQroD}jp)6ZwGp1ir~OXBD1Pk%3O1WZ+I%lZx@8fK0> z5Cu<4lK_I|+HSj}QgQ!=U~&IYpi)t6DC$Bbu2VIMcc!}K+k-uJ`OtLSJMVU&5ViXf zTK`%Swaxd{e?p>^jD=Wdb+Ucd#SR7Mmn*z5P=tkI4>J_SkRQ7ClZ|{xTNBaF`5I}b zGaNj5pFS6!B5=tDNR-TEe;Q>+yQ%U3`MgJQ$Lc-wnF`&uA-N$rf>$@xWSBVos2{Z9 zG*;gW!u9y7ujU;ZWoCVEk9Gf^&;ctXJn4yG8^c2~FS5Nin>v(?(spPI&fn(+x|~J5 z!w$FGT*A4Oe(@_#RJ*Eom^IFcfgMaU9E$%6yg&#rn+3|Wzl6>hnGiaTG3C9yJ26;8 zxC7Z-84SAz8xkq$MQ;@*auJ+*I96T!b`Dt*zwd50G)V8$8RqAzr#PYK4%B?@$YBDgb z&u?_gwA8e#ss(h8$|XmMkH{6}5hsEY)aDeQ@<8B;lv5Rg58Vj!_yH8+AnWJcu!VsEZ z+!s8^lJYKV8*olWVd6gJDfW?xYxXL}qRc)ojfs7DNv250n4znH2)Nw`_lsJRo9ak= zrln!sl!L`f;0XB)=+Kf?mk8Y4LA~WV!!q@{SsAcwN@)qL4E35iHDBpFi!nonHHa*(G(*b8)kLX%LZ4j; zyCgqw9qJ&y%+EJJh=I72vRSmbuYReyTf))v3&V+w>d2sUo;xJPKDuCb0I~n*nk`SG zWF{X&{7^Z+H6x-ihYUeooneK$k0%eC?i_>R%kAui49F>kd7@P#W#vQb1~;6RaVRUC zG?Ar!Vu$2V+vQUC88-8is||t^vdvtoTCP{{+MK$n#n5LkfXMQ^ zHFC19@Cgj7*SUEFMV7dK=>Z#da@EQ*0EuJjR}x{Pr1QMsdR==NvZ8gnZ8jPgOWN;)?#O1pTU zflVYM`>?7`Wpy$!olXA>epTI!z?6OivewWFJlY-IAGT}Ddl(WDrta&r(;%@;JotwB zIT4~FcOyKXap4p%K4lpnzp1L{bFHe#Uy;YDtAZWLH$!J8&*+lK3tMv+UW&9nstYGv z{px(17@_-zA^UG1rkP596%E(^L4RZB(w~Y66-u#=$k*OHpy7|X$D=4#QUx`YvQ?+S zt2_u@l66S2bcXHcb=;qfNVMFan8*rzV`?DfI11fB_9rZWQ2-~F!VKJ=af&E_Rh8h= z88&=rN+?)wTyyke4khr$j5Ddhy)IXGRp{!JynW&Bobmz^%xR^_wH@6f3}7@Rw`SBQ zGdz}GfVqQDgx~-Px;mflSHVO0GTwkU2&KbB5snVSACBC#BmSLQhXBEhmASbuSS z=9@lYcXSJiGqLgs2KtYMrj(Bg*xc8M8*TTf~ND^JRH9qvo+oawv*eer7Bk36vbJp6N4 zY>qBO23Q>V%{0{1-p&(RzoK>xQZ!3yEqSD`TjVc&AM*I=6Z4%_IFF-(G02vi6oW&Lh$6;wzLo*$l7(}jT z%C*t2678EZf-(~AW2EnW;?An6<9OrYG*aFL&GNmXAJwcq5Rk!csd6=m`RqMzKH*xCp?6yk&mzN~2c;Gs z=}E1tnag5xzBsbN$fyyf?pT2m2yZG(ipBTy+d+|xYtl=OlJ*+tEm)foHw^&%*+-=sm5Up)b zUYce&#uCKM>MMJsvmTIbuk4^l_X|R`47HwwfrmQm`5+t)d8TtnoHDPZh~*qamf|A} zW2SOw(-uKKoA4^tbj|hZkBjV&`O>2h5(!hA_QZsbWuh%VCHZ46lmsTeo8ufR*lzX* z(9qU)kUw#ks04ixCnU|^C@v{E8&o^wRG-Wpq>_YdRzs1x{oR450_vxYE4|5eCbHF+ zqf@@Rs?4_j{EU3THII)_O0318&{MxjfP~&CzU|^M_@MWH9dhWny+_aQKQ`yJU;1zK zIZI%1DwaGoB-UH^N~55?^mpJ>LiDAB-0pS?L~Bj0En-Z4Nv-(I!W&LibmoTddAzi)Bz!~<`)A}9}dyC4Cfz?&c0~esWK=p7X?)AVxRayx- zWK=@dv6YKx^_0YVeZ*fzL-~ZbS$-LE-uJf(IQ}Q_z1sH6CQ1H#L-A7jD9*aeDo-N3 zNMhWk8cO)A3+%@YZmWQXh?QqUT2-{xT>ak9Lg<`G?GdU(0r@o>IB~`cyB=f>YRSt28CqVjOBUQNMw@6>L*t<

_zJ`pZV-tyIBWn`jL>NOIo2^^ZsDFklq*?MMwf9 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

Q1HBGbJNrd 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%0A&Ps88_>0l6SxSZq=ZUrM zRMX)ObiSBkt5aEnZ(;hRR38SleFOq>Ojow(y%5KZ=NgaE?% ziEwL+U&A&s<(a>dzC$LI+-PylE-d*auJ3X(+C%bHX2LgC!yZLT9m_zs(nhTVK4hTr zQ^;u`bd$kAPA7c}xZcJ?@B_%$!x!1k3bjk_cG*$_j@3$U$ix$e>|No{rw3=@e$T2l zi3+CvkC=PwMT4c{WS}H4>{JzpmvWBs<*Nh{lX!PP(1K z<_K%dSdIlijHxE70S?Pre+!UAO>j?X`VSHqG-2r@^2(*=o}H;<3@Y_SX1KP3E$o`d z&8eyL#{~bOz~ItS<-+`AOY($j2mphG(%t>gL~N85jMHt4>|4t^0#s3mB1_c zuuZRae~FTO^O>*9*90lwtke`6-%FndQKl4rADbyVcHK2V^Hpn%cHQU~`Yc z&3@eXsDey({j`xRo638aCaNrA-KCG1a}CM;O-jS?#aFDt@Zw#)i9^!bXRxn zs@mPnw>@SXiC(L~ULlv1=t~HRrnsAja$2=@jj*2yl&W{<&@;NJC5AOHVl^wE-w^|^ialVpYAA#EqQsLjPa1{r8{>~gYXAl;+ zu&?iG+bXliC1+x2do|xy;PDgakC!En(x(Qr3l~FfYCJ-47juH(tg2Th(uMe0sDl^xrFgm&>xUd{8Cm57spb1G|Zcs;6RGpp}l6{kL0O=3~-2 zVFBU$2>GD4SoMJ0`5xM`Cq1=$Bry-AzIoi!@>u$06~_NrHm+TRLGbWvj@ZtENXV`W z-2#1Hx?FW>{g%n|_%f*Z5rIt-NL5Vy7X8JCBE`okpMyWvcj7e;wscxMsL)o@a&xWqO1R~ZcM*AJePk7YjON< zdaJf4l{*Y#T|T)exph2cIN9ec1a?r4 zQ+F@D6{xe`bh|Zh8MSBn$3|l-seBKtDjQ279-q)S^X%*SQ!~XnKE}s`q0}v7^Q+Hhs4*eOAV$_EnR=#P%+B zlB=E-A0@ZX8C8w6(vJUvZz?v9azi^~5$kBhee)I>{x|Kijhs4}JI{E^yUw6VlL@gWtF?r~86 zPsoIWCb4(lzx6_@Ojo?mo%i&YvMMctIqo60Tz00l<}7e>}SSW z?}v`YiqIXgd1!-jJl_glx5IC?UNMU@EbsmLjTkOuy*cLM_!qZ1!!bd<&iUm^oMq2| zqm#w73;pPm#d{b>X7DYKfZY|X=}B$YZS7w6%TdXs=Pg4cbed{iZIV4|$h$88od2GA zbvW9O<;Z`I=ry%&oRm=6>MBFfFA0bIsMjZMgr6K;NVz!K1~s)zyae~u&x>Ow(Yl7g zHD8yZB6m3DOQ}Dr{!vf2c328!Nx2=Vzs{1|oTyIW6*yl##=*CL+2GI|DR_W1MQ##P z2!3{?jdtLHOEWWBuBN26m%#U$YRgu3Yegk$K})_4cBDg7zRw5Gy*50bsdr{dca>wQ z!hAI?f4b|hLW^6kaaFZjW;|V*qrZ$GBZ*33n{ViOEG>vdSNG@xEO|nej~c=n{wbBn z^!E5h5H~=70y3tsREDDuI?Y>r74ki#OsM@>Y_u*Z#KH*jHs+^4h7$DAqIM!<|CO12 zg!%unJRx?D7UzRXDbXe6UM^Z6M|`An$FAzj`F3-cvc2(d~D10epZ;qC_tvSC)`!dy?JdB$U~#E zSPYXZw*;Jlq0EyEH@M@f2a&i|E3Km9T>8w2nB($uC_!!g)!zS#bL!d$8-J9=Myrqi=Xofe`>uzl>X~wjnOXq*sMdCcBg%g8;ZvR)S{>y`-DUN_ zmHlI>a^;bp<@6$hH^V4_dH{z=O)L$3@02tS9NO)O2qC^n|Vv~97tisIer0tTZ@0~_*}F6 z_3hxlCS5WlA%k~*rGgig*&%^3iJI?<$+$}k^~mOa5+fzj^gOz*Xm!3TN>_5DbsKUxmUL%{}l>3HK#ArPafquuzit)`5rpG(~zx-56 zuH?EOv->pXUuu4!CU75#8he-hza}B|KDtsc&r7PNTgLwTcqf5um^g-raQxwhBvv`! z@%jV@c<+xXKO!HE`eZx7tIk?$@+GIsH&Z=kEv0VP<5^Z zf^tABvG$xVPo>u!>!&v13SE^3crsDC;-gLp=CBD)H-}0q5L|R3_V<*m6E> z6YAs5+wmTze`>#+FYh}ZlrN8cY(MINZ!R~~sM6#j>wDD$g1b`YhJx9muL;($Q$wf_ zX^qB9DSlS{+tr~@!Dep(Li3*bdXe@XeN<6qd5jFA?F7b`rmcNXNtP7Cm%>cx`GD-9 zo9@#;KGXuzMZ$;t-#{woq=iC<$F%f3KyZI0?=J&FSLJ8@GB;WAb9r50Qs-Ng0Cq^* z*)1B{guLL_pGsly%Ddfp(wd8RmdzFeT*_kZ@Hbyz>{y~Z@Nh2lzn_`I__5gl%W;tc z93(Mf)$rfMKGbo<$ABjLrMLCIwxAkix1H!5gV5a7vleRx5LXiGgd@c~7^*uFv!>`d zNl;f#2??O-Neegs_4mlHe0wITZqwKKWkr6H+EB~(6_(g7aykc`udhG93i-;QnjVzc z_kXq67~G-X8fsXU{+q7?LGAv71nkB?SfR7Nu9gT;hhG;aOSzDVegb-?W6ha^g zOIyqgOUvx5`WEm`W{}Bn6$$*HZq(c7AiL1a4tFNIte z+>}AgsG1(=?q0K}Z1qQ)#`H!WKL7M#O4SqMQ@#A~*#4u2Rng=7Km(ZtzQw?C{ksE* zp=cgEcWtfbV^ugz(sm*~5T~XEEsZ+2U6;iuG=VDA z^PVI`i@0NlewkhpjPM5+N@O>-I*yT!Kky9Voh4s!FG4qsb+%#hC-Vm+kwTV=5JJ{A zj-!b|rm;P~uJv7xUwP!dN{N${JjOt{ooAv%jBzXUf^t~TJCg96II`&TmFWRVHAAf# z>yzm}+kp$+E1|bu@5#60jLUlb| zG}0+or$V}zhtYOIAg<{1l}(P`EWj^qj}N|?_;_SC0s!2MM+ZfCA|T7Hrqg^Im%AqK zHF(P4A%@jg50v6nQ59j?g|jIvBo6NvFfKg#7eAG*oc{dIzMM(L4qDgf@pYw(3mM>v zWEo1%hUtP}g(<2SyN0yWe)+m)$1LbobZNk6&gdqO;?Km$^;RK+LF@!31YF1aEFgd zSTko9;pz;9B^8h-kH%Q<1p&6C`zH`9IUZ%CW$9(6_g~Gw@OSy9Ogc*>qTX5`j(#5z z%##YYa<=p=tw8bQUA(?191C0es~7n)+bVjow#*}&xtz-vTgIAY=0tRGwf@LkeDB#K zZKqgd#IcIwR(b)?hv6@yz4zGy(sRc&vP18q;`QS1NjqLdat80_pu`KpGW$oToz#!{ z(JHF(Cu&oSw-M%4wu#GD@j;4x9{P2u{-fLBPA;RSV%1~t=j*T~x0&(p-l6&RYiNd} zX7#&ySh(Lgk*v{fbpn&gLADoKips@MT4$m872*oCR!`6#IHGr+L4S`Z7H=4b83*He13Gg)cN2PZbjNAP1kDqnpwn5l=*^Po$>`>z4_ zWak9NdsAK@kDwE94xG7eQU~Euw)qTNaY?%5v8M4{(oL3o0oTLo5kWpkhvgu~AGiJw zk*n;iccpP<(ob#iTp6`ixIZcExA_0FI> zD2GryZ{7kgF&}OtnaCX;u}JXt`+LNniGo5GJtSSNX*=Cq-qc}Swj|FJWJm#JVg2za zoesbMjf!G%YY9FEARJ;^t+C&0FnM zc>)5VOz4jRXkN70o;+LRYk2GK$NwIFNJFfDLRqvQomQLj!dNJ=DCIa|NJj+pL4H?M zmbSLpw za_-yOeu)xOuhnlZ(Q|^+=Be#(zBE}K7$+J$&!I@4hwmKk1^i1@J;F(zgX)e;yB`Eo zTiq^LkqFowf{?CiBA*yYw7!R zAHX22!%`!~J*e6oBSU)A$l%+q8w=`jLm$&8FEy~9K^*MMLF<~*R%?um$;{P? zX5h;j&tRzhYWrU*_nd_bd&RPA?Xuh4S~L0eM~E7S7OS8z}5Nms1P^~Xf7Mk(5iOc!~!lmIu9+WJ*W zbhmm8+LuW8EQpf)Z;K8#C*>x7>x=ZH&V0Kf%r35ayXBud`*457)Yco4KPt2aj-M2U zO+l5F26}Lt_wbh*Q7}iI>a6#Mlr9wE^sWz+nq*gwOJ9UEsN}VSG+GcX4e9&}tWg9S ziRnUg?_?sD0G4N~v-Je;st*n{FDwUj8v8|+WUNkUSh{c_rEcmiNy~*_c9Z&(m*sE%4Wsf;c4T#(kZdyF>Q8>SABc2CFgW6V%tk$Zg7?(7 zm;?@c$I6A)X?KFKeE+6AUm6=yz4tIe#0|Lt?Bu71C3K^+%JX-H3koq&21FApOH2+O z_S+~a4bJai;+gJNXYi8iN1fp)>y*GMSv9|wA$ww2D)|k(p>-1k!L*%O z;TUuw0mF!%?fgHHd5yDrd9XHY}AbD&b z_wZobD&o8A(g8?79+J)Q{O$eXd9L$M67Q<-#_O|2p0?ra({

gHE<$f@)IO33-B8 zD%52nAbBdM@ex0eQf3d!y0zE?E#aN4Emlw*!;#^!xN?Kq^c>K;O2QisQ~Bsg3lea; z$;?>eX0&?$dhl8U!BxGp`@m6UIH8=JyB7hnl1k4W1an6pF)5}=kBWY35$P)ZBTa`- zur9nfsS1iR+_v`ly5YZ>);(JGOG~YvLui334W+1K7#)1yTH7%vzL%DF4&tIWm!b++ z;f}GJl{I+3vz-{o)GnQaqAm$Lr}&h)8CiOcvtz^zq^-=)$xruKXWwc`Onw3eaXJAE zGo9fwgED6)jCd+}4uU2S1kJrEqNChNJ0Vz;(jm!ZA+mP;kJb@|YrDZT) z{E?L_SPngH)4erkQ@QB3MJ%@?Ffws6%P%*uui^tl8>Ag}rQI-78-f_Qw4Txd*1w^$ z+DIo**>jb5KHqvd7fMmA^$Kknza0np(GLCV8FWCl6kqCw%dIC+tThX*o9K5U|0U&t zB-f4%AeF9?=_@k_EeYZ?P~7Pz@Qk$~AbP+XMu4y~???b|G!>U|7S4Q2u>bc)wu2P7 z=+pmo`wP(Rw5oqS^gddMu5TAM}UYtVVI}Ol0bPc--$UIYEDtYWO&opgLDp zbh_^%LGnDT#6s^^)6`#mKT`oaDU^X)YH06<;P0 z*xP+qo8I>KHNsLI78F(p#R1r$7rh9RCmxzc;lj-I-&83F zxz-JM$ftb=AL99b*4I`%mOKvTmFa zK{>i#9iHgeuJi-)8>8p!9t)AkDpqb2TO?xYZvJdY39JXo_q@Kw>-E-)(uz>3_)aM+kz#_0S$l%JpQtM}xrO zg`|XFZhgvwdVSh7Q9dViUY7&W#DmOozGUV3H@_JL&#c)vO#4)7*lxw%(5!!=Hy=V!AtS0E$xx361kbh*f7)!(R zVhI!F6P-8*4jM(r8Yn)_%sLI${Aaw+&|pb%D=Nucs+x7T0>L6-AjZzI5OQ>sljA;MV4MyOGp2|2~ik@;>C!Y`qg>i1hOCb9#B z`8=Jij33_r5yw(dkj?%49LzWMQzANEG8%J<1l*{yT~h9I0+$;`iS)55t=h&MB9l8w z6LEtB=1DKFLQLIZztJpAgEU!^rM0ctyW9(?jHHz1GJ1N0=x!+oiG{=*z` z&T6@@YyEkACcD@)5?*9$tI#xCB#}i}J}n_j{!-kk>M;bezfNXw!@pDFX#3n=Y13B% zU?$IT1GwsuFOu`nJr^K!3@Cp`1Ow2ijc1qM9L4ACG2qip7U5DTLgRON!=``ZyVBSy zqRKZq_`p+3T2mgVXrrFS{usnbay8Nt<_?KmgeZNgW|`Y#y#2KT_>J-FDrq68OC&)p zbM@ng)~vxrb-CkXGj4OQ)OqT(gsks7E_W#>iHaJH9<${pmbv^$tuR`ER<(_OVcnbO zYZzE%I%KI-i-a#hf7D*UBRmZ^^lfl0b>(t_9d`S2s|#5j=^jFR#K?^^WSY&}*n zKY&B>qAgO^%Rs*(P2*R+JZYKT_uu+Pjx}Nj1w$)3c(Pe~FNs-Ob~-tjPvUW`dJQaAq^t>1z5aBH{0(HXpK!<~4@S ze1!u)=b&~U2JPt&Gi;%+B_L<1waOfPLP)LH$9MJSg?VZCCx96Fv8ytA>n`7SuC)U` zn8)?&gg=))oJ8Yiz_ER|NUXu)49i~mJQNy9vH!6ii{V)O+JqF&YdE-9s)9U-;2zz1(4%JQt07TT+C zAyo)$a>blu8*pYmmVQeZkQ0g>wN;S?o)W;*Pr6WbMxpK9KT~n|k-Khf;bnAcPVRX!-(l?>NvhaJNHW1xVJ49z43FMMPc@^XAr?yXA>pBXD&eCg;ItQH_8xqnt_6Cbz$P@BN%D;|8D8Mzcj-`FXE#i z&a@G?5G|)iCty9lkf3*Yo98z?7MzBFZ){-o635+Ul+lOrW%Y?GZ3J;Hba~@MhZE^d zzCRNAsUXe=_y=^U2d*RxG^@pa==A>$_WN{S5-04vnVYvSN z?vsRoADE5@#!rC%S4ja-3Gh|@2pcjGYdB|Cpb~*(AZs>I;B&^%_r#9s<{wZ-zz<@x zBuXj2z#Gn2UsQPJh-_*UVVOn@)x(%z7(-`$DX2Ct3LRa|Ptq^NxqQjzK?D~6Na3iI zVPLM=%bHI}E|uXzR?(&jzMQ;BF1_Ucf`tB?IrV$2E{xfWP9N}_OCQuk>)iu52?;0} zh()pI2Q$hQxqfl(SO}EUx02*C$6(IH5SJcM;&*c%A277TbV1S$yaaJ4M1DFWa%riM zzV5%4d$H>Zm%&!cYdrlOlPQB)9hVc&lRkuqYW_FNBGw83Q$N}5yC2d*h#Ns6&7MI@ z^xu@Azaq~hhJyn(h4nyiWU1xrZHwZ6EXu6o-O;A&0T|28hPawA?}$3eN>f)IgK;9p z)A}sf2*fJ@FNbtpQ4B_v_SI_bpCC+GB0c!b)M5w37IvK`xa9;Og%qnvGi?j;EepEk z!Rj}Z)69IpWSUL{bCbq}>PIZZ1g;^emPMI%sl&uRL#Thm7Y)PLJIQdc9k+=VO(v>m z+=`W1V-K2DC?^v$(C`-xbk~clvWUq@=oU;a5g?%_NZw$fAJv8i7z?#ybI);nZw0`= z_}BB)fv*?;Yl$DSUDp>|s*{5J7C#V;Yx3SYgsYsE!#b%=+LyS@F=amE(o)eCXtU}Z4o{t zyEo&k-HAQrm$F~12UgVzdj5&{iT1_|1oNb z;yD@cbcmS3U$ou~$?rSLK9~NBrv!hDT!InF`Pw4-P5a<`$JXSRSJeW$O!Ds)qdVk+ zBE;Q5`{1WEgfVj4C!SLs!F~|kxj=)IVU8Blyr_;v>P`L-3o5R?5u$QF%%yE>#6M+S zP65>6TpbGnpD^{-!A)^r*t4>jVG`17; zClY~VW2Qyt=Be!*gjFt$6(Ppe<&=J6F{*cPuyTX0^5Qydwhlou^=)`xYy+{uod%HE zbq5=fFy8{B5FI@Xr;8f+3wh|~l>+>0!Q{z2R|s)wM|RdZ0qg_6s3Cj#M|>&{v0Qlw z;tl1d1NrX*0*!b?Y3ZJRZSSmc3c+&r5uLqro+g*Ob?>PV>6cum&^wu5#D(SRA2IHK z*v5nX>DGF@jcqrwA+}N_ z9uQDw>?o$9!QQ>Vqldpn%oWr2ZZ%ep8n=#m&G6>8a=`V~ikq~rq7npfJbZAgl6pg^ zWi_k~LHvg*g2}d)*Y!mk9)MSHB|*}X7c`iq76gEuGx-$KI{V1DPaxb{HZ|+g)A73V zVOymxqF&Stm&xS?_RYwu(5`OW&az+Bdrod-K%j zi`=YM1%IJdHRCEl{u@1Agyd`L@V}&gFwGWGdaXkpQ<_t}doS7^A?(k@j<^f}&weBN z(QNbR#O1RG_~ZNSv&=Aq&r@KXvIAZOT&;I`E5I4Wha&h?f}1QU(tN*CJBAv~ zROx|w7}EaB*8O{oUgN;3SWO!Ka~pu9Kc~Etzrl^rla-5|^AoL1gb>Ls35uUB{Ib%J zB6LGk%OtW^92v&67GwLs>TyJqs_V&>bdk#z_F=~MX$Px_uw56wniHN%^R7HF4&WU# zzzHP|ul8KwCA22B2^(@O;sl~rs0ev>sjm?6Fzcej9vB+zki&Iwsk$YqH6!rQ$)cF( z_QhDo2u&7oRYv8~)|I0Aa3=C8Y71@nXYPPln{sucl~cEayOX)A9+;@n)K@nt&k1Oh zOK|tFjrAbsPgz?&d2Ug+uU0v5+2d!a!IE6bd82Pbob(^z#T@C6_z?H+4^x91pKnI{ z!<*55L6LyE`BeO`LSrJrMyT=MbC4;DX=??e_Ibb0EO(y-I<=jiS};<6-w(DbU)+hd zUr%*WhOb?8)6|4^XMA)yQE2~HTMDEu=@Tl7m8P%ix!~NI+7}F8SA_3m_zc`mMz?Rt zWq_=)NWV3Pmwp2I^hp%r&Wu}vKFj8^VxX4bJMQtor2foT`!0&VY#PgIPP3(x{)H`1Fs2_>@nN~mJd6DGKoxU!)Nk4-r6}Fa3D*t?V5)kkwIH|A zQ(F*)fXh!gk_w6-ZVDMbWibjpKGke)qn=}}=3#$+qqp?ygb6s|z~7mq5y=7PvXt2j z&%LWDy)Z9W53@UUmb|4AZc2xKbUlPyPe zGg$euP@&sf$>=I)py4K|QFlj(zU5b8@mTk`-u;L_qd;xQ+9EkK_E^W{HGl0#l6DN5 zk%x5Kf~Mv%BzFz-HQuag=aeE5pqTsm#xKG?*+U{kM>r6{Iy0%tmin z`nJQmY&t>z1>7gXAWY3F->q{8>oAH#AOC;C)SfAKORr;6=umJr3{0(^+SnH zgr$%x{~T2TDkBI8;$R_{b2Fv=#}feGJAGiBqxt|vR<|S(z-UdG2JFXmZVc@Sq)Ma{ z{XpHiXjoeje0lOrdeTI+1yVw~&Oeu9DM0^3<*)pi%~(y21BwJZJQZ|kknzmmStiCt z!>gujDkXPAWv=YR)GPc+ZFygG81W-{J?VWa z84~q%FRBkc-`!6<#0R3 z$whTm4ift1O`23i&|DhwFG9srPjTz>s=(W5r28UU>&y(*Av2V9LGs^NmM*039AbOs%JULu_fZqXuRb$= z=pB}3Fp`>|G@BXAofJrW-c$AxZW-<&8mrpTD}4SC@z?@{vf{#ej9(ROpMM2Cx@@Me z{OR+RwEY|QSnBivy7fn4tbxW(PJ42}L1Oc+2->Fd7bU}sZUBn+&tq53l|SID$6m{2 ze)XWhdM$(kdKgc|O6MZwI%yXKwyk5$_p!~yq`Og8KNXU40VgGfb``v;-6NkRv3-#I zdVy_2onQk?cuU_T=BH9>G!1uTH0!ImmKSXa2ey!8Z4!IQypV?*c#fQJsdMCSp7df4rbIVdBPx*~=Wv9rjk|ExJ-G?1={g*%8rT2GU(z9j*vVvZK$m z>+b~uOq_Ah;1r$oe@7-mr)t@yofF_hGC%q6#1#9}>hq_(o_uw=q{|pNwsKx$ zYETfDu1#-ro1wHg2NWmly;VW!^ zsH-@5dvK^H8W6q4^=lOeU-d?*L52N$T~)S&jw#TOMW}p@{gd|zK%5;tiLd`cx8F^bakPR@Y{eQ>K* zEN#p=JgpbWiSDQk`?0Qpq^ICY{A_QMN&6wCjLuW81+P3?o)1*a*5FTf z#A!Bw7yR@Pg!@zVSof;(OLxsma=pdS%a3h!uNqO>_p>Z30d@8x&rAsP2=pobZ(pO(jUC(XtMm{6iKUQD zHK4u0-xPvXIZc-CcllNmEhKQw-!$ZWs}CGIdJ_sZyGmK6JdxW~0oY#O3CZZ@VNb(( z%s})rrPhpT`)JoS8u~+HO5$!(7vYu-LTKevXdXxE0A)@elM`USdG)8JS15`5HOHj` z<8)c5{F3?CpwglPds)@UL6!p~%vItnTu$Fvr==EYm=w?E3&J$$A0sq9)KbpiwqqnM zCB|!CuOJ%3Y)}}bg)Xj^DTs2&H31vg+f^jT)MhkP{aD*NikXEG-5mS`Z!DQsP%D2} zgxq;|sW5T+;aC-@2U3jD$%!e^f90@p{-(SoIHRDnnilcLI}@3>W+PNDt#yaPrONPM zl{OWyVS`ZA!3_yIJGrHxx2ZfMo=qBCKoD>5-|jTqSK%$^c+C1sP#W?9XXkeCLi+nZYJQb^wBo~T+1U!P@WFO+Fh4QLHP3QU-lZbe^EK|&VrZR2 za}Sc3z4H646Km-_-MXxUUiNfAj?}$aNG4qpdGXWY$iX;UAY@9{I`>oPo|li|Q+_a( zM1&F7gaQhAa0}sgnvmFOd6dgA90?TK5a4x6SKuMK*wMT0R%^Ac^|EkMW;rP0LVa@F zQTul1_NEhXt9$2+OP1W6jLEvx!WeAcF>ZEQ{aO|f+TxvPQfNP&^ie0mBhYf<{Y)86 zB*`V3^(eSlSBnu(3+MB zloC|VL$*Uz(b+#Ncw*|Hsfvue4WyrpTohMN;znFR%6Bdnk)UXG2u12X-)K4`F~Qtw z*0D1!++%8Qk(Z?0lgAzy3tWi7nW#W~D^!&5B~u|1-15NVOe@!UO3}QNb5qZ1T zljU5i8x!!XA6%o?CWHHe^@I&jLcHoq75;{iWGR>@+qPyTTJWa(74H}w7H*5N2^85k z*nmjf}VRx7mNBlL`>q8gwVnjU{opROv-B$XW!F;Y0_J{0%klQ7dna1Kzh-W?Nr1QMOpyF0NnYPt)_>$>lBf-+k2gKd$PqyjLq{1I>5q}nrif0kJ>Xk4Sb#xvU!o3XRk7Co9S#nqx+s$>l9*S`J%_UUTP zxW}^|)l#d(Oxsy*S#0__tWL)!oLSE`70B~*!B>`7%2NIFx}g?P{{A*vFYFWT*6%kR z&K{*0Ye7u-j#n2-`7A399}JyI(83?_^y8*Yr*XBMn)__BV^>Pj<;{)-d|m5Mc)2xx zzO$;sv6HE<_o(>|yth9l|I6=sLFKjTAp5&d65;WF=gCb*Q)n%GbHhW-j0} z!t1_L10(w}Vc^sTmUf-AL^+X+`Kf0GOrQnJMph|UiOPdX`VCm>1ldfppu4tXEm|-Yj2@~Y#T|<}+#(et4*K_(0N&Z%o8o`bZ>RdCZLYpkJ z4@d@+MKr{GDR}J$4ep)_@BajU)Mae3B*da&nhVj8mW& z_)~~No4aM!j0o)_9`j~9!26?uSN|K!`O(zN{>2S1@jDJx=I{2Cu6H7{OUPci%Drr{ z@=E=o4wQmB6b*Z9g-pgJ#~;}I6%eT}UTMtyVBjZ)2)oX&#JAM;2Dl}5rxTYyWq)Aj z-O5HCjd`L`gbpm_z&(GT=QJ9L`$Rtuxt!+SiT6(Ot_SaFJ1jlU3IwjdWITvBIEP6Y z!LT0xLXNcC-EW_FfA&S*6<5rk>+MTy!q4L#9*1F_ptYNc#yP!B3$Ar;74O2IhSC;( zpcy$}TEm7qJ9fhn!K<3G(=;Hku?0q@rW&2#H6wcl4_h+gWy5C&|61O!8X3iKMN>IO z{pKb<2*sPp)^%cX!rc-MyqZOuPBYqqo92K>am0X7@Ql&AGFZQskg84EZ@KK#{%*YmDcWM3d!vkjxx9qzs&Qtc@ z8#&C(!|7|mQV(l|vC0lS(j9nGHza}opeLFHMut6=jD(;c;PRTG7uDx7iI`PA%9{=R1(`|@={0a2I zIh+DR-bjUMzSn(e>vz$k!Rxx1teW3sUYw)158U;ErchCU8?gM~;jl$W&4^?0`>M)h z1tv%q|MJ402IkMsv7t0!4xyBkkval1 z0n9{rvEBF-N`$dG0_iW#509nl<|6p0X-f`urhO=mK8(05giiNVun0dR=GQ?WiosQ@^ zK%v^kS`Vb)$_RAtBjY>F#)ma`C-r@n;)-etK_s|DV>Z0oJ$`b01;ihk-uAHd?C`91 zIm!n&-GI@dWC!})bGiDi2ps4PxLU9X475h>0 z3%Em!6(bKkrM#6~dETWe1{18nlh7ttDum9tjK)d>qS5MwAr ztUC}Bd@&noj{YNrqpQw1x>~riK=#E0mbIl_mADxYqHc&$$s&K>Z+H!i#tT6~Kxbpf z*DSCsXx|rC@kxSRY(4up*j-HkjFL^}^O0?w*}~#l=6yQsZadGG+w=~palYVj42Ufo zmA4{>^piQ};|lpnZiOPgRZpnYGs4x?%ExJamHuGK;DmyGQ*m(?w!iPwVyiNkhr0f9 zUJ7!hWs0G4V6vqBwz2uIkwBj(JPjI$n#CUjuZxer`_wfn)I`IkK^{UjrK%Gzo*uBC z(z|cfXNc6q$Oye2O=V+qr0s!cZq*E;GPOeX3d;5DT>liL_n!#7tQ6s;-?TZCK|aX3 z4ggFD6VNNOE`kZI->J=U1rD^Lc5-0ST#-(RXH*J3bz2Pi0TNcQyOv6dJxCMl5`ewS_>+n(0I59tKlKot_`^nTj0t4t%HkAoRUYJZ zdj3BnrbDY~S!ln^aJ|fLgy;qBbvOelJC?|n={etDB36;~drU*4QY=yb?X>kGKg|K+ zKw-(VV@%7IZJ(Wq$Yc{lRfrP)GbbiNnA=b)FBYEF#R-R<3y=Mb0`?Ei=c=mU-A@p8 z6;57%I7GVu^1U=-R8yPm`$un$O|g+`>18o-!TysrxF$x?&HHgi*GT4}hFSNhd&PH< zu$&(k4EfGC#SW^p1I#D0-=%XN+=}n8Sw{C=T zfo~9?x-6O%?%EGNnL-hvboQCUI5U1-CzXBx8mZ3w4M>HqQ=CjQQ>JdFwGyUs$vuEp zRAL>o)4yWDG%?8U#5@r>1xi(*^C56;>&z|r`jQrVFNWS5id zeB7#*iUSexUiE_czT!rti*i*f7=iw~6fvGP%l&#^R}_q~?NiIJBh-zokyN=;fk|ya z4vuM~#_h)&tHv*{Vb@d;!Dq{)%SE?^G9G-E{hYiVZ<~G4vXs4lFpMmly$blF5)}qH zPT%E{qxuWAHN=XVzA=|M&)+^^SH=8jCnlxSMU>~1$dNY^i0HWR=sfX4OK}vpC1%ms zc1P)wG072T8MeuDPLy!#*t%A!n!CA~!fEA0@G_#}_&eboN**Hhis@eX*J*wJ7C6~a zWd?ef8tJSa^i--DFfqz&c$ije1~ai-i;P{bM0@Ym_f*>Q6h(Mu3B}XVffNI?v;8F$ zc#;;c5K0}82i_^3UJ$Zn0aQnDiekNGNVzz$=)+kYtJzgGZGT=$83wpZSHIs)>&v+Z zr(ov?DQ}EGGniji_?yip4(qpEQ(g}>bR@kK5FMCICZb&umJHkNqXOF^gZQ{gFVUWO z^4UiR^rp27aIKW8P}j&+OpO~|up+%B`~O-c#o^SdBdQH0pe6!x34D=8X6qHuAit;S;90KqeLG9jwac4C(2f zmnc__6EXfIhg}c-@7N%h_4#kLI+yUr@>YH6bzD+5QOSRE!a7?|M#%@ZB~h@J<}$vH zkNT+#e_qI%0cC7~>nxkNZ7ROGoJ8|9`Meh}6U(F@5F9-B^(VyGA}#Gh$mipVID^nr zH~CGVmBsOlJk6|F1sY}iC6AN^!?|1xbK8#9CPz%RMeKNqj?`!vXJlphn%Ev6&W+JK zxq0r8H2++b1?zI@ChrS2_V7;LAzuxDm$||kI_{*pV3O%4H7>Y0ci&$z`*Ng$q#;29 zGZu}YRTGT^KpaNK-$6MjP53?Jr1+QXA0ZaAiE1!;wmd@#s4nCp$iLjFh(+rSp1 z?qX9UAi-3V(g~#|LdHfa`)=Q3##-qDxI!hN+d;-Bv5y$^vx-Q;iI{yZxT(1yp&3Qh zZWPQfmZa{qrI*i=meC*{aq(4UVJu(TVX;pRZwA+6^ddWqX2R?XFVL(GZx~=%q4&n6 z>kLf#lt1KIW<*(_QaFdg59>KgY9R4Z070i0jTS z#3{pWXSHTFtJ{f8 z^dS#wLHE4*c%V;=Jc%@WUUf%-QG`)ntmuLW8*V{~8#VBs+<6lF1Wt3HYSMEjJ+lbFBzWNZM(s>wVX7Qe?_ zpYSU&5}{ixaVS#;M;{Nt zltzUUoqQBQdoFO4dEdHY7;IYjM<8-~km(mEs2OkO)o8mgfgd$eOH3Uu1IdnP8hVd8 z{Z7o{l@s!bS=l<+70FsL(wbP;d41mhgpZAlhLwBO@YrD;&qw;!UE<2|sJwM}5G|i) zy5e3T3h|O-x{4(S&K|hoLVq9v zd(S%V82v+w1yy(ikD*suU|akL&%e=WYXK+cQ`@)=zE~M+8&lFFoZ7wjK1J0x*#5|r`n@|Aex?unE3301UL1>C4(Ougl_C{by_1#BLj7r-yd5pvDgOpXo2 zzgy5rDiHs%a!IWD&ntZ&xII+Xz@QR)GWa%bfKTwNpA(&Mfu~wR*kECBISIVo2`jjb zm}PAwyHVcO8KD#K1_om+sNf%1AO^d*6#K8^GjzBWe@j&b%q$8<`6>33+8P*4u%t(8 z7=H1ixnzZHH&IPG(FCmFLCYZ45>j@eW$;o<8O|E}c;)fGGaa32HZ(xk{{D=tFmpwo z1-mCacq8BsNc;+cf6=yAxh_@C!hWn&4~gUlmYT*t>Vz$LhM7}HBZ!uADG%6EaLKor zbW{v*732SjxiTG*JPoML1mH-y&qdChDSgt}l)Uo^*@9_dp#QVphjP%^I7QTWbpJQg zYEYJ-7MO?Iqt}i`kclE`MTq^NafS2g2nIK;uwMisreP(m420zPkdUWhWz>pVF8m4Y zfmBrH1_A}!PK`n~Wu47WQFuHE#T#f+DWt9kn2+aC<5_vu^u3D$g~K5hGwBI1yMx_; zenSd`Qa;6y$CRc_BMQu-rQfEGExzx{Dg6BVo%-ESl)N3mF3BanbCR=Uop%Uo9luKD z>(pU0ThN={i0(WI)lP2F8W3t3vE%zSQf9veij9T}$HRKUs|nB>!o<$zm=$lBGB*3e zPh2wsQz~IWi=KcXKHYiL-q9D{aoiY?4OPE@p!63okQ@l%AWl~^x*avPOm$@p1&{Y9 zQ2kY+vE`8-2BXDXk=(3p%%%^^8N%(Dvupf}W2*H0-jzG(YL9ZsXpQ6X&I&8J5hWy# zO`h4b%%rVt*_8i(8^Imrmp`Cy=*H|Ckk`d{|F^0y{sz zq_3N}yXco_78NHvmitya5XJ?Hd>p?4}AH)jdi83oNxS5s-q=mEjHWI(J=p zv|uGfFRnoBA0AOO6zM`1{tt(!JNSl^76=`zfZ%RA1#Q6n3*rtH=tlPoW;yj+G7EM$ zguIhuw|{Kk*?%4IE<8uum&yE{gTrRZ7I{_&@b|R*#V;@7k`K)QEZJ`#1;Les%-FH$ zOB+R6nNB-S^B0JWLngJf#$gC17RI>nNqti$Uzn-K>ic5tn@2W-=0cEjP6^ zuhx;XnO)3t2+wfh$%#JF;TZD=r8`+>Ru4!LT+!?aL(>arChXGSbSNq%XiYz%{J^*d zcRPNxc^9Z6oj8=T_#+IvF{w~=JDdg$KzK>;?_&$XGUhBI-C&Y3P_Eed4{b|(b*!cJ zl&Cb=bAv;H(qE8~ZF(k9?>T=%idy=toO1P2s2X}=+n2srK?)ZrQgIPTPymLx%tr~m zQSbiZQ~{M8WTNI{ei4(Qw8z4U*d59d7`)t6frz$Cm{sR~A_2b&PBwDI|I{o_eYAom zg2re9i{u65m1w3rH;K%UYe$0o7wYLEw;{|Jn05>B5vG4G2>1!$wbcNnva~rky-n=WfDf@U zd;@tI2Z(ja-SA5e;}Sv&4l>;ZS#Ryf11|8}C5p$P>d%bP1^&S!fTqC`q7FK+>0kap z6L=W^y2G;E(&yj4K|yOEn>tw$$x&&54;0pX6UgF$D%5OMkQcoeOTNf>O zf71f`rWeQJK!~S^sv*WOn6^u^ak)p+uaeCKJdV%S9XAADx**c=A>sOCAaRrB8_FSY zlN}ofnwy@;N>ZmG)1`DjT9EzF8U&Kt#P&fR5KKCwL|w*~gdkkN-=ub=WiY7xt*Dvy zW(PJ6tG&=HAbo6}g?sS7L3-ixb=E03_ZTWEI!ARlX4ke5t#Av5!j0h3P7YK*!&}bn2P53fy=KY;|-bY zZp;3z&u5IwtZB*$!Gyi*1;TN;gX3g@Vv@8Z1yuxHuH$)z-J_^=oP6yYZ`ZKIWbA^_ z8b+2j_z)HX9$=U(7j=V4mxGOI_N0Q#u%s-kd51X7k1$U_nKaJYv{Wdbau_dkWlJU6 zG9Hjh;(xbGQFBMoA(&X1D4NhO6am{)W?OHtD}^T`7ZdV>zTPs4*d6E-zO*HYr5?-Z zM8_cVkV`RX*>UNBK}3w03lU!WvXTG+dB=c#=xYCL^{l~ zNWv|vFwfh}uY+!>avj>!2js<7zZ}K|HUG2^QAGR@84^GAQ7oQ@OU961{o&I6x7DLb8$8l^p)Q~=Q{*W__9 z9J4t}sMx{@i8e9_M^((aEC9E=KJ<42YZ2l42%)BB+UEe*sA$tLOFaYrVTc4Sk(YB0 zN%V{&GjEVyT(dJFV?4VIOWl3~nPRYlTd{v&1rj+HL%nxO6t2hz07m!|sx9&vtAR|? zQEaL*&}G>4Go<mvxe#ogJ_%^y?FP{$kJ3TNV*WDO_u zp4v8vV9go>vVnuIfMz;l*!72%{PHM)NqhtHFpxhUlC28sci3$ExC5^+!C{6o8JcC3 z`;W?49}+dVB?lb>I|UE79;H5l`0>~(4vCWalX`v1HzHReu%U}3^5ifr%QP~M2wqi< zB?8TuZV`dW97Ns*oKuDHq3$B4oc*Lubz(FS3QU(Oo%>dBRD2ga_SrP|Df zLdtBwXB#V}`93N=sZ+0uKG=gj)qcG7R9i^O1X<8cv!bwnqbM|Q)J(C$D!>>bS4Xe@ zKPT}ewbJW@DOzqFL7%O*M=cFQMc*hKR?sQ{(Ibkz1YEQ(Oqm%}AA;sep3Xe}Zy#ZT z6(O@;?@t`qG-p@|el7QUj=`;ix+!C3f%yupA)v$Wo}P>Dko83TpG-cHZu4@#_-6&R zhcW}s0tvM4V#B3XNg8>nLFH)v{zBDrSL_-t$6fPo+N`S=1P&BLs%OikH zBZt4#5*0TboVKySJ_YC-xZ_v@tTosi;_V>S5VUJTEkxo`WYYztGwoT*ORAfQiTf=Q zJG*>EpZ+lMRC{5VopIN9op?f)0pTa6cGb1Ru9GNQn7*)Rx7UVX1PlL>%gqpXvJ{*n z^8CLlpd*pscKll*y`J30*+@E62qtA_ih<-ocTB_cmeR3=k018lsiWhGot|kUJhaKM zQaxr1+pcW$8(Ws8xbV4N05GmeWvLbr;0Vi_E^KpB3va5Jkl$|UANuISuFQh_qK0D3 ziuan+-%6*W50Nz;N71o`r$8UcDKTJ!B_NKlw>wMJkm-w|=&*1=LH|1D!GduiULyxN zx4*c5nlrnSj-z;t8H^Rjfh97>^mDB`~Z337SZ$tNx-E9_uVX z@T}eLWn_!HQ&3(3ED`u)TcCtpUQb6Id1OVABrmc6j620V!z{u-~&VUd@PIDpz5wnn=njHGufMi z)LB^eJ!NqVLt+_rg}lR$DC7RvD9jljlmc6m;mr;ht;;hG2J45wkc!<*FM`Q*1;M;u!|-+A8OvV# zKVpjiM@iIbzdV|~&>*u>x*8)v#TJ?&+}`xX)#fo`-Rcdt?7rE<@dSK^cjbr zI2{aoA!6R1|3d1#MC+{zhYcPak4I*ht3l+?H;kZ4?~R(PAY*^~3!hKIxAW^;&aqlI z@|BMHt?BcbWuwB^8%C0?|DIdn;w#?qWcB-`KDtFZ@Ey-oHG}QUHGY3{{-Jbi{pqkh zAjbEW%l*!tiu*D5jQVl=Yr}QpN3XIFWco^|Xb!~o4%17|%iVkHF-plD)W08r9~tnT z?Z4jxMCx4lWMg!M>E{qDe`))-pLBuSGyCh2PkwtP$|s1`H`ZbbZdbMu4;LZk^PkdZ zfVYmFvXaL;xnPR_;b2n}WHBmVMM>4#q*gRTt5x&C!0%^!il#AEvl&R(kR10K@4CVYl+?x(x5DZ>9@eR(}z$Us>=B%1PY>tH$ zp%iU0GY2o4<{qaCl@2pS1?2Gm5~CP4=}CK_dI{mO%#GcFmRu z>Mo^yG3YDl7K5B{j=Z)B#tCxIbSQVWJ;#=2%m|oxHSHVx2Hlivinfnjz0Yvm`-)sq@K!JtoVzKJI5C|op`Elq}siunb#Nl*4wGD{yPK%cTd8sHg z>(;Rj&)5Kt1glP{N|0TwDeC!8ud#$Dz{W>5wOy?6Qi1sL|7EC6Xtanm7DM3+a<$Gr z>FXdlf!`R!{i$TBMWJ(UES*v@g{6J7=KacbD2*XiZ3k_{H4Ba}p<|yryD8Sb!0EUk zoSPkZP;pqfT)bJVK!z`)V2Z#`fFUzLuJ=LDK9%!f0Qo;kgxdgO#H@j!w=@g`DV_Nr`1y-rPEf!fI)G!4Y2GveVsHluS40 z!Y4-*u$@Mh|Cu>GL~m1 zoI}1mBsZZaRF*z_s`%@N_HhBR^xv-XzLO@!lAYxOUuUY4%|F5x?nrbWBiisysUKar zQ*^j9z7nEMG)d3n>G8W)A|$pHKp)Z0P}k!Birl7=H~ieLl4fM)MHm+~Rf#VBDnu_$ zD;#1fM3@iu0IU4LmQ0?rNsgAGr17zY=n^WHrprutMUA_hBJO`qAf(*7Sz#6RV1MG0 zc%|EFgD9jR+q_@WwlP5Oy2B+REa5_3XB3KRQ52w)7N!vXPY@DU7FLR`NCdf(-~2O^ zQy;wiYxr}4*Fa^1B!d})92)Ey@>Jk`{io^3p-KForOozKwOm+*iak~3c`%@;2)m~Z zAXEob(eYgc(%?>~yCQT$rq!SV1-ehasnD`wV;I1IEfHIlE1sX+`iKG*&(^5SD>?A=V{Y>_;nh-&K|gqmDjl*aI|WP`VU|Tczdvu;<9&P!azdcqK|=}MH&k$9=Iak<7^?nWuPHWX zzt1tNeI)SzE_&N`_8puJ*c!pK95UlKvd3l}$@ZW^C(*SW!m3ZpTLn}DVzEba*rN}B z9G*P#doTrV76vA!6Jpdp&qp4QW1SPnc{>EIa{8;UH$k#WIP_4Brvv1{tacL8o*Q!F zT8OOJ+BCUJ-N};Ak6#0gS(LYq#{q0_(xtYf3)0|R!6B*$Sd@(WSVN4OIsx@^nQPuPuFpq?0p)l3#mWJ zUP#+3!YSX;thX8LbdeHyZhOCK^jfD4wwoTtr|7_6ImFP^g=Fi}Oy%(>`V^EraYaUD zLe>%*hsft78y*kZY1nQ@F3sy^GHSaty=ps)>%rbJ zl`i&=X?+2#!rU?S%&1e$!B>{nl7oBz(&4oR<5Hn>{BYnjz39gn%J*c`QCt@-imz>h zLP(vo%Rg$SUP-kOR2?fz9=&E2TA)5yc&Z zFRn&GXlm76*gurnn#o`;_+x?6$*@$yn$QM>V{JKoD0)p-)=}J+FK}AJL&Ye!0!zxxWie+>!L-q~?@ufCjcciu|jJT#_eG}Yv(3_g#s&`!Bp zQaPwKY^#mdpf?{p{N$I^SF>4>=H^!M)a|U&%|||c5}6w$T`$tB zD30bngq1?rlj>ic%Fw>}tgj<}D5JQyGmDOuTbS1y(BR8(@==V>?Ij_QC0BLDC!5VnJS>BrNYMleR_!WvJ&xAluV3_G=s8^~^2eWp-#B9J#G3h|S`vxf*_~#0stRvlnMxpzgOsKdQmf zmRr{(eaa8IEk1z`=B94tRm79c~MMyWVe2BnRMwNIzUft{_)U(q;(SFxYKi${*Bhcy8J90 za!K0(oEZ|yr0*O1JbNKIg8C-V4}JDUzl`8a8=!TJZzdxEGccL!&JO~}NMW{{+1m!Mfcs*eNQ?PZMIGC&nzTo_Jr!LRCE;*Cboo=j_kPqy&q+zX&9mo zqf8l@thK>Cga*ACN+QE3gFc{rC?*wFhvvJf<8`qmWNj?229(?Uu2g`BG*^i@hp<3zIgLA3ZQu79!y9)__6k(SS*-3DNqsxhWpSECO;c<5e6rv zrF9Yoh*)S8aZ&o{P|5OQ$R0yH>7na_6E9z3e36W9+$||$*JhV zC*w4w1=7jCN03O7!rI6F6%sT&G+jU>TaEj!E*p|Ch(roY_!L3Dr2hZQF3oj1ypjjv zNS7}E%nxe^{w#ij*utJTvH=fb26zyU_N1R7nd;svSupSu>ek>RFLwF$jy>$9&5e4B z3m`=vK&R9Kehct0wJqcBpv?KEurq#&3GyFK0%)U}uGOk;!zAe6WPjZ<^8ozZZEl6} zTTC`r*;bXWzkU40I?m85LZ+Cdvyl^QWNt9KrqTsG4kE#cXADN8hO)-u6T%o^G84e8 zIl2s-Ea4u)Kxh0fdJ<~O4TOrk7M>9z?AnSDQ?sLGtBVV=5v!Hb7e|nk6=AXOB3RZx zrEBditFFnt$Q0o2CpXI!D6$Dli1c&N-rZocrImLE1Fm7E@Jiz=2J`=XA_KW ziTBeq$C_8pMA>lS+cA)68KuY%e#4p7o*TURsYnMBh-Kq>Mksx)g};-)Qb9K3 zZV zz5VDoRG>^&o|D6|RRl2&p7KJDQoFuEcauWSNWE9Nw@vn|h|Gu}Hwbgwx^kO}ixgiz z0{xJn;FPalO7T5Wj(_M;{-)p?x+WyU;9wxq`bs3}1H4Smoop#YqJs8PMLxaTH1~kM zihfQY(n_qeB^zDfeNA%#P1=zot{fS4_|CC1F&AOiaX?Dw60xJ7a#LQnTtHDN#_a3y z5HSNa8>{8@M2a8fGIO~DK@goo2uu|1L)T0YCFWYU%POj`IEt&J>V9MR$hI;pLd+~+ zc()#k_JwJo&Cqrm;Tx5l`J>Mc{tEc-LcIP5P3&N3f`>wr4jYeG{YvK?4Tm-w%)gzL z%TOe|$RUD1HOapu(OFgK7uTe&6m1v&5;Ms$WLJ-bUf3RrQ`qSQs}i+>`>lRrn0JBc zVx+c(FZ{^5wtaHtWrBpJi8Y~_0I6;6r}bvD(Ry-(3i=byXQwSsX7HE67^eaH36eYY z6y#3o%aJA7Hm{eqaS|6*rGTG8&MRWU7qQ+dm<>;pv?4kv@~#mHm^NULEH3!9k$&P= ztS%ZnJy?zQewqS%W00pXb`O87(~i8R;x|Hw#YIIl84?#`fgUxkYS@=n$$OaKlw{`$ zQt+g5A47=vFiJPwV_l8*P4-J3_HChUEQr=2^-6}gh+g`;t-88IC7m7CqvR%zKKQZ<9D$(Jc28=PCA5Tu-E#o3>Oxjl)B2Gx15;FC^omx!{Q~Y7F`o+bW*6CK`vZ~`5qC+|8Tnz zAqQsYKZJW9?#|}BMr2D*lp?w6Kg>9}3pKZN!m9%6eSN?7n#5RJr!aA9Q)82K%+vdX zV~PF93|z~;e8rXJzNK9%z)-hfZaBgc!)vYBJJms^$h`67)<4v=IyKz2J7J6UC5GVd za1v#|pda61cc<9&w?9YpcKlt}z4g+m^z*Trjkf5Q{oR|BX=hW>n_~=}=*BP054PPr zMAu3sw=S7ix$i$2p$VUP`7%QGJF$`4&@HLCS*sZ~g7C<3zKWyDW)oHrRq?hdA76T2 z-^E&&17DQXPQS&E33x`r%ogC2bt1a0?*4p|?0*2!a4!_cxG_PVVeMcklc-IYQ|4rc zo?0|&lbnGWzCl_?svO?ovl4*st^Uhviv**9C`_m*=e;8W1 zYsI@FeedvHb1Jep1?|MEO!b@jm{Kg0+3KR2v!d{IUqf9+HdHNRz4mN$8AJy_Vh#7~ z)O)5P-|OhT@pth8cYp6h(!$!fj;1=^GQ5? z?z6=q`L#$<7U@T(c1vQ!(Z@0>%xlO#%a72Dqo!mq^fFX@(UiD|(Ct#Z5Al5q(I+nM z!D{e1t-zEKaTCBX_b5~CAi_}IJeV3i09DcnPx*z4@i zPw%QqyU4h%d6c`CQ4Nwg_O6vsnV^v&jK<)Mpq)lh*IxDV`*@0fKUN>G zD&cb^yrige0qU8t^Y4JR9n#K(A2&~rd1pp*lQ=UUed6p=^;xaWuRKmW9+OBY)?YiG zyAtGgvl$D<5oBs2;dv51#OMpN)JjhE4HpBUDo+*FyVzG&cx3)oKpF8A(d@0KW5$6M z39-pSRz{=LR}`Mxn+jg-opk=~i?w%A#U*hyp?WPnt?dg=|Mn6;vES9vchuIauPpB@ zRwwVa-Q>0P6VAT3Z-L8iEK@m;y4o@hEhu92%q&cAQ3i8YBVd4Ohs%R~<@GI9$6ZwU zOiLY`Bv_KGZIr%GtdgKF;G}o5iGkiPo73n!0q;)JO5&a;GacdO zfeIxLn>F$3@ry*d@{7iD@%2h?t2KRMNnfpzs*|6Gy>v!faDDbTx=a5mR%4!fAw->y z7GC8UEf&a4T@H$i%sZ6gcaO|>S#PeOwKSUP*3f#bgm+WlgS&vbJ|0B9P)0`E6evHD zsYSi|jDfKvDPAQIzaE+irg&s0yiEz)d3U3Nj^8{+1<$3cY|4Q|K8}{8*^%PP@QLi1 zEpaOay}Q=7;HqqdYMe;c>T;RYlVY^ETi~~>*AMwuGOZqGplZkyE0Ss;cA1=dfmCOO+X9x#K(taY>g`Uib|N-94mtrYW*;V{4(qmiZz(yHw5@ zf_ZNQZ!uWVJZ(=SWno`z8oq5O({z^^AzaOFur)?XadUIlGW9q*S6#)}G|Frbojo(h zqd;t7Fk3<#l=F*1mq1-cc}+tEI?Jb^%#vYjQ$p9{c-0SbadQ^`?=k0Sn?_%_UDVGd z8Mt7XL8L9n4%UR3zO-PwIpF-*RVB?B!058WTnz8OhB#K0cfvZK*7J74^04YeVOq+N z?9@s_Di({Ek+B8Z(5_V(!pFQTEfy4NZDrb58~*c+B;JBz`slQHejl*TwHfIoECy{H z|1$PffSd$xPXDg3#I4?i4dofyq$gtauYlp-F%onOv(Bi{D7WjI8YvP#7AjNz+ogO8 z&Ej9Yp&%N2zIY8>daugL#5dH;px7nlem}PC${IkVdBg(hXd{154Mc^x*7Er2ejt#$ z@f#iq{K4sthZ!82Ts{BxOj59!dd*(lZT?FnwuS;RzL{~zW|AY%X+|T&QUx;)=kH9P zme*hUk7M{3fq%F(AKNNg%tRfW!24t;gE#V1QZq`wUPKAzxe53fwl+)ztpQZSumU7rvOwf5jd&FAX!1Y%8KnV1Kr7g~u^I7bei zU_?kF{S9t}dLqHx2-Xmxqf&Sk?EI&!N2w-(+@u^A67;bYXnL)Zn6j@tLd9%%f7ub= z1qW_6SntTY1CA8T)s8+hxc!XV3v5CGu}-tY3Zw2@15w3UxUH|-H8F1XnXumzajh5q zfR2sDWN~Q%$Eh^aVMSCA+!B&&|R95J9uT z?3$RF12XKbrs$3Tkj6V6mF9)W-lB2~XTs@9E}v|5vm14n+V2~l7s#d>)ha_v0nZi6|8p4 z1)9$yBEQ4Oi1ea$7;UxfhTpf-evN%{XX9B75lFpB*)636IHXEN(6PgG@uYZH>Q}W} z@BFpf&U|pA=Ze8CfHzMpKE|F>634X?qVgPRrxB&77J|u<3>5>3W|J_x2V?&CHK(UX z*oLaO#ExbyqZ@xp02<9beW0IbfA_Kw+aiLxh{k0zq^Kt%Nz!yJW&o4yro+vxfy7g! zeVLV*-Xodb+n=Q4@PB9u^tMw*LAL)>k$EqrWobX61ka@BvRyx{#ctE%G31}pNE1<-6*{k93*V*k4L+dd&`-JkYD zb%xeLSUv8J-c`FemK%wJ6YJJo1W!2%6x&Lf z58Y@rTF)s8SBhw3!nki7R?3N&gm;=<5zB`m2f@?#uVPUVEl~tqCLI>U@rbn>$DAVNsoB& zN)wf=;MlRi{|p|jGe0IgBTzJ=@fFfnH8bK#9zc#dXU5h&4xItpHa0p-N|Eeh0jo#6iHu^?EUwKTgB84woD=c4Xr% zVM@8{{EJ-jim|XlYoL%Z<~$!J%yoN{;&A~Wh`F5R6KIsGNlP|k0 zR#3Iw!Kh0*Ng!dfLvpu@dM_i3>)6mdvc9=G@dflBvlAkOVQ6?uz-5E9pW4q02lD`y zqS@35Z+n9T@JSe&YFpTr3z7jQdQ>8M2FVCU#ocUQjeM&PLn?P)zDb=G4RUF!(Uvdn zV}=&7XI^DIZz`uis{3tgwzAq|O9d$CQHkqy(qdvsf#1!=S#k)f-1QA@P*BTEbk_cl zQW>pcIjE*drg?p4vgw zF_jtW6C+EE{(yVEzV_bqXP)~spnsr|<@FsNQf2U`Q+q;>;XA$=#V;LnI#Og?1%ao< zt!B|CVvUX3iGKXSL=cqG`#{;1X8XzW^*fh|P>0FkZdi!(XMZpss_0?}y69#II$CWc znkfA{g9nhh@w9r^49eeFgi>h}G0E^4x4G?(7quxj8&4a{U~Dc++lza_KI)q*1?PKmVMyc?@!N1XQFc*|1*t#t3jv%*Fh*MJd!1wD^z`Y;H1BN zy56}%GivmoIrBwVtHw^B@&m~e-Pf17K7e(3C6_dF2Qq=*X}sB8Of+E9`VhG~IkEy3 zT@{CJAp4neiSP6e$sZMw0R&lzR#ZyVgpf%kb*pt%>+(~=&Z?6r`BxoZ1A;H$ zksK<n`ZZreC^ zzfPTFctDeklhW!v1V!DHo7>#635v2dYAtM+LYZ)_VsKG)+3qNpI??G2G zfIv;?!QMiPx^>t)$dIdpK8HX=&qgd`^bOtUoVXZKHqzYl(}F$+BOA{_n}^bkL1)Fo zhS^*MM_G?E=)4793Y$vN+%c9;YEsNq=TLfwqG?Z>Xar7Yo5D?Tof-^ntW_}?@3o5W z(ckfER7>@*@uac&O6kp&-!)gdrP?t%j--jUI)mj3!LQ<8$kD|8-G;o_KG>|+ZRmJy zEseb;h;ufqG~&b>-O7@4{9LWKQH+>u)cBEZD`9B@!UtbSHo|>mBlCIc$c^%-Kq6)j ze{RZ;-mP#ek+{duV{%d58kcf1w+#w{Yb<^cfp4cLfa!2u*tJOmqTo7{CeqOvTF3wI z)@Upb$m26Q)=X`YEkeuFn1|Oxxs`L#Ns*O%sIpp5AzZGbM8U%uisv(AKfrp~>jM2# zX8TJiBjt{$Roz|Wv9Fd-QdWnrIW973?}3y zR|!Id!P{cK`U4*^DNtsWbFJyO>y37HeSU!UAqU!4i#<{wKN8f&5lbI`9U_Y%;~CVj zor38}VD@kRGa86}PjHS)#OzdCT!&K+pQE_LM--h%%w$_eh5a0*KOlmfR0~j3*g0GL ziEaBSnFlRtXFzmR$V0I%D+hvCBeOne~y4>~C+F8#Nn-G6F$IVnMUhc!Wq{-Ry%W7u$p=&xu@LXx|8d@J*p*V)yOoBP5(L$9;LB+jct~)edeS9Q7qq+httjU(O&AX71jOE zt2K+4xFv|*bJP)?XJ|epcqmi;dC{C;&z*`n&wdYUA7jJ+3$h*9$bMP8PsUb`B4OmN zm)fCl1Bavh*F}I+ly$ju>mz>N)oK53v+CFVbX!NyE?Gt{7E2$zANgt{+?7_#jY`RtG9~M%TsxX< zSF0+*YPzg)_LYDNgY(3+?&5wz3#_CJcL_{BZfIzo_L$VekE*=BW$L78*Jo z*T!_v=44HY2-1O-J9cm*SA_u6m-=Db9Za@sdEN>s*sf#A4%!E>w3ccIpYc%1GPjAX zB-~PnocW~4i!KElDfiWf<)O~jTGTsE4bP))6=R6=LirE*+Q|Jw-FaYkm?QmnQ=vUG z_U|5Lj7J~1Df>Te47}=2J+i@mRTS`G@ffe!gol&&Cq&^14*8ZU#C_l)RaJqR&Sxn} zso0^GDu(#-&^2Fy(93f>v;9^3)`FakFb>uFHRkgx77)J4DgI|%h|>74?wNXHW4Nw5 zQ*%8!E-J)fE=`VQn49WTcWu?mRvgXKQVsRfyCyt%GxitsdK$M<*uXpkZ{x>Wt?2Bs%uL3^?O6S8PMeq9tN!;|=pnnE*g`DyAJUk=_4(`NY2Y-f z<#8i3furIdp+l$aAmhW-rBA7krj}2>SR2W#@AGD(EIoVxW?J!214(wM8tGHRbCz>M8XVbUL9_Wp$R)rQ9ZfY zUD5~MJ(Ihmim794@+cAZKewA^NmE>#-ZrUgQpvay`MZsRRr&Q4EjDDbqN-F1L@iWB z|E%Sqd$syyBD)AWTN-TVD9jAomlgMTK&GvAIT~*>5Ij>p0*ETit*vA17f0S@$gzF- zc;&CahkeDIMgy52IC0`@diTm5tjoV>1<<^3b1%lB+0+)EBZ6eZ2+@`ps{_ozE%1A^ z<1pmrzE_~HSlcT z6;!{;p)O3-J^71ejxk$1zKX`1k^APJ#sL))WDY!DMNw03QDrf9bk8k#h-Td>wz;{* zJ$a?P-3sCK+h4mFuLrZh&g9OwLmGM#y7ioJaHstVAc}+n7fVOcc5|{UDTXvNZNB@a z{3LuUTIg5kU3H0ET_8O-`kJ?cH0imEWwdv|!AyO;L0SZx&;1u9Q#MC0_WAEYd{5;T z)jqC3yQHU7yvN*`+Ro#>6PX$usHJr&CD&7X{}v#29)3xZu4wDn?Fxg940v1vTE0?Y zEY&@SeA4?X01vkq(04lR%tec6?eWk4)DLn-tuoz_#VA|rkF3*b;AsOWyhMU7lc%tl z8DaLuS@8LZ2(m3@Hw5*~OLK;@X!j#zlRj{qvWZFeK{G)6I!OV+zW-)xcR9UWZr=_? zpw9xF$=Lg4V1A79BXlKfw*G#{?Og7vbl)Y(1g~R(uKkZD0>&gD~A^d|K z@8OnNu=QhmD|}nV0!PkIe;rNha=E>e^~T3CD0{3F^V1$ZsVZQP_E;M$}QYzRe&A|AA53@c*$N!@Wi3Y6+LE$?8jFxI-0aUd#Td8 z^6gID@?%-*<*|w3d8vxcCez@zkGE z^v*b~vm+twI`dxS*DxGkaYFtcc(4~2#;7FJG<${y&-kLzo|Nrnw6^`v*C)Mmz5O!l zynE`~{55ral*nxCVM(|}qaUwuG^dRtRB@9Occ!%`Bl~!sSE5Vw!k{|sHk12$02X}3 z*46bux1>hy8u03ZC#|PXG>yNiEPzH>NftxL6DEPLI`l%eso%dSfJHbjUz}+N$S^mM?z$z4?bQzK6!9YJS~2QvC~b&uj>K56y>cde6o> z(l>o!M+gCZoej<4I+)9;d0Eu)_3&HuFj0lmP_pCv51(GLrH#ki3~|Dw+pqD>>?lak z-zx6DpN#mKSo~#Q0Ix>STIu}YkQszi$*ufF2{9nmFIz4VJm~~J{r80a)s93Kocg%b zF@BdO0%DZhtQZ}(%nZ$K3Fo57JL~aq?^9QE{RV$H(&f|N;uq+KDMGD7OYKe)NYaLiNXNUIwg6TZ?>dzF2hq9pQ)5JuNrvlDN3n z6vzF>0M@lxl`PeqBpPr#YpL$ClVkMdOZOjgXB8=$FIF_%u-ZBWt8(vpmB3;9Yz7tz zuq4X73m6SSX-;EFhL8dhQRIv?^+C*8s~bc@Qt>YzOP%os>$O?9^XV9=izBgyxYkf( z{T5>l(O0jlYB>tu*d5NXXrg(bR$sIe!y{w+MPX?02aBJG-9)8ygLO=5*n5a*-VJ|q zf$ZVu#!BuN2l5*CKmOSZPJTY^egfb;()d7ej$(0WzyXugNDS#EqwPNLre^TuC6Xjv@1gNL$b@WsOD{JrK#0$ zCgxPO$bS;#vGs+)Q&i@nW3l*_6XWz~r`&ghsfMe8G3UELSkX!hJ$P&+CUP_=i>+xS zdu+k!odT#ZQ(hMw5W5^`LI!N%fYO>N)yd}^JYs!_nLIVaqeVQ}$tLd`Zt9#$Csw-~Vhxyz zxQ`9n;DOUYVqYFA65jhojSquYz1l-E)_(mVO#1xK7g9IENP9bR*Hj9xaaH*`5M89m z&Hz@S`S@w4g7#Y}Rg?5ik8p$JSjurTF?wgk(b{zz=J_$}A_dwP%gCErNtO9>Ux>)T zj_`Ehv$*$N!o4v5oz&)x(*4x@dWz9c$47-w*L8V_Vc<5EF1oG3(hN3`vXN-m48WrIv92&peUa|t zm>tD6_MD1)tKk=4X>9T7=vIoHteP70izqtKc}y$4y|bm(#j-udD>}s{M)&|1R%L;~ zyl@Jl(?D1;a~4@ftduFWd3?;eEPQocOgU5+HJMh(TpnhZrfF6nRfm+RXY#R}S3dGz zH61;L)CMoe@aE1@Vu_=&%aZA3Hi{-jN8<@^1kwlX?s~9= zd7lAX><>3!%btt_XN)}RamHH)SEL2t?EW7~R{_>$&$V$YGTg>+cef$K-Q5ZUMsXPK zHl(;S9E!_u?{J2@yNsd3-3EW(@4v1-X__ZJ@ss2}Cppe&t-TB!w2Ytc|5Es;$`p`) zUa`SD)4||jivNdfm}@C*P&2MzX<2bsZcDj-WdL zaGax$sMMG1KPvl9*gM0QU*9(TD&83@y=js8Pil{qIXa%9Gxgu%`0dJ`tl#%2HIuW` zFs<~KGi$NC-1x1hnoxBYcu`}kTdU1;9lrk1P;EB7JMbP9G0#wJX=_t@%D#v(x1AM` zC#)ApJ{KAw@sZzC+3Q)EQ0DELC5wwn`B-xr-iK<^!{+p8$r}4cGORjRm^GbBj^#6a z(p8l1*oLg!0l3eXB`fp%yxf-x_66+Ys={%499gZC!g;!lriL*QAF&j*+#3xjH9rS@ z(+n2zi0^{}_LvlmfiRV&w_aj{7|MT?cd#4%I4^QF&MlWD6H<83?0-11RxsYAZ=E41 zyr7Lm_Px5tm(r_vmfYS^@Q$esmvcUib3X> zb{D8OKg1|_7nc+er+F?k7gpikYj~@7eakVR@uspB==vkXW*p!7Ri2zCPWu`<-R?yl zVM&2mE8{4T)=8}iSipELTEC!)LjrDV7^MlEJHrNk0F7R=WYPY*Gv3S{H!%+Vn*pDz zjv3Ed&ar^UPdBWxiI`cJdL+YH(b}F0FQhe)RjDlD9*&9|P}ItME920?bRa+Un3@0s zuM)__x567ahVR(dC|C%lylo3AFFvZrRYj=%YWR&fqkdt4HdDD2P-~!G3|Opb&_ou{ z+i%K8$B{;FsLfyx(VpUJxwq$NQ9BqOimTMJK@PkQLAz)YM90~VAw6Awt)=C;quJwzSG#m=>W6*Cct2g87jjz~k ziCxS1C1aE>#wQ$Q>>NyfvI?YYJpe^(jnWyPx!c{~so_GAxoMMRz$9Oj{x>h7x%c+- zr2VX4PJ#Zv%Gqrtd9MR12aHA*q<=C$DjaGK?S_sxAu8uo3k3=Rr=C~i7%DhRI(qX2 zYm!z`^d6E^702ReoGH>oHg;T&sh#>`Z~f#2$zUe{zs` z8mCstJMR9FkRj~&Wm3L$mD=<4qKYe}h zE7fIr=TbCKXWm$(my&klZagXJvc3MkyY1+(^=o;Q1!8+JkCs4oNG$uZ)O3x zuXAqZBD*e3lfyXR-VXCDszLrOc6AJL7tN=+-|D;mZZZbri|}OCwM#cjI6r@~Cxes^ z@n`cm&01f{57_+iY>tQ1$i5h=AKU1Qu17&q-%hZZqrMI28Y$t^_{|1VXT58uT`Y!$ zQ=6W%T`9n%Gw7_G3oD2-*hl0G#oe@azZk~+jV26d>@*m%tMa~kGGY`bXER;HbnlBG ziw?hmhBr}Ist&`$JDTN`-ffk%F|^fTk@ytZwX*mhgr@cEJ`fdODKv$l>Mhh2$@cY2 z8wS!TQ9fClpN)vpSe3qYAPfA$UyVLJ++nr@Gva= zy3tB(^+{b8zmQ?_3?z1E{gQhm76ALYj)! zjdUP>0kV$ZbF;X=?3#WVwJcu3V3)SW5QZAkGJ{K0U)n-&6=Qco=%TgAuPeKnAK(vk zHB~Qp7)BYF6YK}+-R6Q%|139i&CGQuM}-9yz({mX@edUwO&lq~OIH)8z&@|viwRrB zpZ@Z6t(YcduYEfoh+~%s3|qAJr#wPoSTEs25qDkNd{GP_-FnEGnTi~snEh$MW|*K? zoA1AryRBs}sbP8R3sd@+v-5pVI@+WXk#@Wb1J)(bF>2nkD41B4s`6{uv)z8K7qy?k zFSD4B)6-+*`8J$RZ2Pe;@P|`<=|}Evr+ZS%@i*G@m%{7O_U0PikqqI>TMCn6g`H+D zbE;r?L=?KTjVlgiUcueb%p7@OsmqHwB>2dbt>Qx45{NUsQDeo?_(tFY~>9ZP}t72Upq% z%gXrLBodJZ9!?{sKm1@wTJ~7zMd9&Su9O)`RQNC>MP=^yfCEJszQ3-ar*pNee=KEL z*g&k)Fi7JP8WEsM9lP7^kiZyE96qk#X*vR6S;I43+|=--MU`Dy8vP>YFWmr~#~aec zioCU^faoI`=0~Yxus+D}v?Q~X*L^?bGsvVKwVRmLss##?<~i6eP@YfkczqiZ+@oSN z$|9w=yLgA4dZ#m=Cs#)Aqb_?InLEG@syCOmP-oyWB>AEdVt0#hB5GI=d|}Wug;2UH zCtpoXfGNt-ZEdm{UI!8JVK;KYCoE^{{fdO+)YqLX`-li7H@|0*5Q0eV6pmu1i%{`C zInxb(s*>{uHjJv^$GzHQkgZ`Sxmxc>CD-!5R$xk41Srbx z-mtFapY!pv37bx5QeGG;SM^b(y0R_ak;O3KlIRdYP?`e{p`5T5~O ztk(sbq8_Kg;^@c_L{@3!#tGD#t|w6I&2(;?FSx(3!?RxXhv0gg$2B5RRlPAtJy zQ(?eH8P|56#*9qFdvdW9Aq2oL|U? z`dlJRpnhZ?f&1Wt!Ccu70wnZ_&0MvGzfk9G6cu+g?gqqF-Ad7g8XcL z{OxlfXV@8x*ZD!Gl%~MWij@nH&Y2AQaHk3lrIfiY|Kh1$kdn;r+0*#a_y9q2c=0(N zBGhIoo<}MYkOIwfdwnM>KmTwYou}%I%F%ARzSc4!yMI)FyLXk5pYDTZ?C4jGkvuI2 z<(p4U=E!L&1<8gMrzC4{1l0u%rI8-tcw!6M=;fy_bE^NOxODCrm)XJXW8oaq)A%9R zkcLrSn5#!PV?B0e$O{fL+}2}5Vn&oGcsqEIM7-|RzgE1l8Vs`_omlP z|NGCoZt07bwgE2SwHY)>tE6g4{VLm9{L4_jB>Gz$7Ggw2+TD?SI=Em zZSCHDjY&?-l%gb3{%PxEFn5>eQd z#_stOYmPpOB?Or;8X@hxE+<@tGTcVc$QW@>6>Cg*@+>ClHbX*yf0(zuK(vJr-cdp3 z!v$aY6)26}JGQF3Ui+TGTW#<~GK6s{CXjQWnKFADjWqd>O1!DwrXpTJajuB!Y4z};p9;iUlJDx6C}XO-Q(433qO(_2WrI_3J&t18wqGdlbMy}Q81U=CGG zvUhfz#1Um8_9i`2aaX6tW)rlXc+>%kAY2(JjkiYGHL*mIH!7P|8fo<0fKIqJ*%EMh zI0~woK@?Z|+#08o+8C`YjmgM|W7pwu@1*T+%q#7OXm=2CG;-0%O|I#d=Flg7T(YV6 zHEnz}UQ1f{Q{7A7UPDBgH{z>k$!(FmDppGoBn9QQ*=4PC&S$O>aPocsDf};bZ9#y@ z7|!2$!#du74|1Lt|KOfqHHBb@F8oJ)f(Xkmx*L2ht zC%?ZJ((b$<2!0i&qhxhUVVe5BuIR>l9p=l!i{p*Y zfmF81v0vChq0{-^lh5GRSg#+5ySaNs^C)k~`7_;u&IiIBBEIT*A(J-N{O-mo>rPFS z-C!1V-Nx`P3(^QHsr%_qPG+2zd5-aju3|qRk26Ohh3S^(S@mH}pkRj6=l2;?=l&jo z%VL=it76KTPIkffc!!!wWfh;|q4aL5SYMMBCDn?oDk>bw5*t+zuDDZzHO$_S8=Du; zEx^^yBkGfWY@XirWqd4T zsc`9h8>L{V0Q;#rimE^v#OJ8Vu%7T8S0-;2_+=QI2}SUqPf)==yQu0;uQ?g*3^%#O zIme@??}J7*WzI5g5@VbYgAChz4cD5tcpsB$!npUeNb>B#5wd{$g{?VoJlj;X7V|;zx9a`o|m@Yu!n1+u$I!brI9$v9Let#h#zYq5Ub1 zs%Fc7lK+&O@^w*pUHLq9eHE(30lr1=Q@`e}IcU?Cmt4fzI`E?kKNS24BKZ@iitVrX zyH{p?Et}dFIu-UGU(|DGcfMDP&+<#*TAIJ`-xD=o^g2zV@!KzRG~wG4@bGc=9j6#u z^W4xyTTX!JdJ#TkV!AJxB7cNT#p`!a&RTi`~C6=Saurhn_Fzj@3!05p#jS3l}g|I5HDh#kXCG=&xK9ps>!w& z;2oLc{-?ltmm$N{DD_Gq;J20jpxU(b$-1|bAH3&GsF*9xZ) zV)r5POLs4Kw8PBni1)yhGL=V1YmQ@w8RoIeXQ>%y2bOTZ{HhhoDa-!)mSBCc^Om1n zSN|)o#>THW5^`{BXk2CNuamT2AkaC%UH7j^0tsU!gt!LUBz`FfKE) z&{P&M=-3HV*mAP-Rxxo&AlhY~Wuy5-nO8mSY)!0}^ij9VbDCDoj0jr&*+s;|x)hwO z`=3*#x-yxB*AOVHo@YL?E-X2rx&z(Dez)T);#a`@4zt>L zfhm)TPoW*#OIHtC)o-6ZgsDg@*G|mgN+J;%MNz->zXgVs_sr~knZ)ew;%eOcZoyK_ zL}^bo9-(o7QeWQkR zk@9`j7l21EX}>1DapG#^s9$HcjcmB7@L}K%qU5Pra2!w=VF0}!@y;U2%KYbFuV=uj z82f1lUJv(e0tfYW&bJEPy60s2NjOL4d29TOv~P&7^(k&Bu@hkY?9)XO!ccOywD2KR zcIlOudUU5BOw5Yg`GB{$e{u}x2HAE*i;9E{Y;4OmOZQU5J1^Vi$sS4KI?K}HUA(97 z_7*s-`yo;o!!Moa=BfUmjilFi;>U znw_=PKES2865r5JFA$8d;zQtyXH=b=h&2sl9_kBMP%f~OsMI=8t~}kw#pK`1i7YIA zk0x!p;w+>SHlI2dR#-Zjc^f8wpew&5bGi?X?jrE;jm|W8+L+ytijJii{EZZUMEANT$wGH6q56tXmn z;bU=&Ve&(V((Yc4Dk^cN9BumBL*@Eh&`YSA#uiYRd+D4U5}) z6YrN+sh1F>F~}#l;Abb?T4jWW1-049)Vw~w|29q~Ud!r$sBXP;<`?nbviRX$=KEw& z5b+26Nxx^X=YBLtZWZJ%uj;T1WGkZ3fPS=0xf{(e!bkQi_{ir-ue5)%t_qiC^sFG9 z($uQ2wBEwRA-u)x>pHEX`i+V0^m1*jkVdC9BgyB#zed+-q6`0XCT5W=_0DUFWLf8^ zM;m);$De2}nZ>#|*7eR5Zw%(eQMBBp!@sgJuUV7oPVPd|+Er5#boK=_M}K!^J7kkB z0aD{Z)*>=1-8DR|;19>HEvM@P5|?K?lCPJZV`>OUrWlVCc-EYP&s?DonLKPdn*oNQ z5w}Nh8eRcV-2$qg#VTi7l0}to&c6lW&rscr#IUAs7|oL&V_uNa;>#3;@ZBEJi@B2AM?JRVT{PJdQih_s5G+>qt94Hjh8_NrAxC}Icc zw@qvW9?;o%${@G;q3acP*K-bLCmPDj`5Yimd0YP=G83Cy)gXkwQ>{DBkm{#IZ`CWy zekw89!XsSgK+r2>L14=c(nj(|!Lx7HK$3e`9t}5U9ApF^sAZYhEV3~_wI|}og5g9A zUj-wQzH~(ZpBJ)d#7+?MDJ!5d#U29$JU0;MSCk`GQe`^&&cqKd!LcqPxbbcGo)PgR zLfzm_;!jp+KH%6XF`F2$kcRH3|GBzHg2*W#)7EYotG5k%swG-0a_=Q*eg`-ltIPTE zlX%)PC`Qt6OEXmrLs=U^K!-A;Ms*P*-!{`EUv^AprLm5$(~skpeI``8{3jaA9D9Z| zwtmx|SuciKEOOd71{7xVL#eGDzFKMf=|%Nk74>G#PG z=SpvF4_bPoVai_ThBp_veGp!S(@E^d#^SBuWCE+5yPZs}PkV?bZs1FJm`&vQ`(Iu7 zr%9x`eSvWX;esN1-PqkTYiCYXe9khCduq_;GAfOG`)Q6zGrLgC=hvlzZ>MZ$V_-%| zI8b$oKGY5rlAHFu5IIn-?MH5A>HhaOFL=*>leK(Vu)ZunKV)X+pT3MlArF~ODVPJ} zY4ndo+t;y`z}j}DyHhdYj~Z&oZ+G;*oJJZ)FSw<=*yb40mq~;} zX9imyd?5_i`;x^Z2OAtuN~_`G(uVSpE%yhxMH&)GOR@2On@0z{1e?!sbUgGLPwT&CdeoVzG`Weo1bZEHCHeK8ToyxBG6J@#p{G;T?KmuJb*rTsFH=qa>O{aOA~x-uitd?4>1xFrrBwKJ#wd7U zzI8YFf=g8T;X)NCwEm3(p!24h-!J&;lN<1UFE2X;M=6gEnJii19^luJo2U#C3wjqH z`((l>Yno}3MfMuu5)dV@Fi-WIX{C~>8a2pAm6D0{r;_duPLOIF#TCzt) zR5L6G;|Pil^5x%qB8Rjh?d}kv%-nf>=V%#EiR(~0J94LvilJX>Q5bi^L%~5+TFNXG zhxIbA8Cl&CJ!VS#e+Rpe;8)V=xY3$uH63IVX%&52e-oZRA5~3~Uy|j`L~$eIj>k4^gSy$wyBB zq`}Uk(Tiu0Ot%%j0CEd)(&DwYh}jJclR?H!1y@p#3`nKv@=~bZLe1lImw_e3^O{~( zUskzUxq)@I&~s-fe66?K#qE>7u3fkfCripF`t1AP+j=_GcCR6vdLv%RojN@Jky}KY z{aypLC3+VWX}JZ-kMUs?!bYGKRhS*tXRQ&r&~+tGES!JRKtpXvIILtJbQ)qcj*!yW ziuhqM0HlQtuu{fq2&1ux@kZ-4)SqfpFb)RnoW|coZ@z1;?T@NOXKjlu8G%uri^L%P ziLTcm9yY3`G4fXqvIGhDo6eItmz7YrKB9cI^P@H@C)N=NRodrZnF>?V^WdcSr8RPC z#Yvl#xI3$fCR&%ZrZ2ZTgEYL?;qjtWc4vZ(h8gWoo)HTEFZtfx7_a6>3L_ZE=hESr zXSb7RFtggpgdg=sFuIE8)nx%^cZEEBJAZdOK!s)+nHVgY&~~MLC;5u=7^3x4={=bW z`PT|B=r#vS|0jAkFC7T;OekkS`3cKyJ*YQ>7tHaGcYWfx1SgHZWRsBH>f7jF7a+Odjg(OY7jeG=;Hb7yF%2T<*rw(T^>hU;ZMMx zT9oU<$#{uYnIBO%m4-O7vxVNOopn??xTO2YCPXxfS}k=u`p#2X&c_<9n||Z5s_g# z*fZ#`wov{_TWwxp+F(Z5%4SnQmTRt0&mjB~?;>ihB6u4h+(5@7wD=vzAl%M9w4{b4 zce_H!zL`rz(>5Q3_0;1BD<7B6U2(F1GlDx+Qh>nzeK)*t>VP;ot5f%;faU|TFB`e` z+p2!L*rw`?u;#N)%tKb4lxCefd%0DS9wm!a9eK4?5fMvmn34cyK?A-H4{%d~@5NcF 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 {g0T%nW32(I%k;Wc+)Qk3#S-~ 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ℜup^O>$meVwDU6a;!!}pkT=#184{ePt;z$tHS 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

W+ooqlDh4QzV5$wM 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

{q%uxcePj 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 R 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 !*F_yLAxw&otJl*N-&dQCQ=R} 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 E2b$zsPyhe` literal 0 HcmV?d00001 diff --git a/renovate.json b/renovate.json new file mode 100644 index 0000000..5db72dd --- /dev/null +++ b/renovate.json @@ -0,0 +1,6 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": [ + "config:recommended" + ] +} diff --git a/scripts/ssh-testbed-setup.sh b/scripts/ssh-testbed-setup.sh new file mode 100755 index 0000000..ed4d328 --- /dev/null +++ b/scripts/ssh-testbed-setup.sh @@ -0,0 +1,73 @@ +#!/bin/sh +set -eu + +root_dir=$(cd "$(dirname "$0")/.." && pwd) +work_dir="$root_dir/.pretty-test" +key_path="$work_dir/id_ed25519" + +need_cmd() { + if ! command -v "$1" >/dev/null 2>&1; then + echo "missing required tool: $1" >&2 + exit 1 + fi +} + +need_cmd ssh-keygen +need_cmd ssh-keyscan + +mkdir -p "$work_dir" + +if [ ! -f "$key_path" ]; then + ssh-keygen -t ed25519 -N "" -f "$key_path" +fi + +if [ -n "${PRETTY_AUTHORIZED_KEY:-}" ]; then + printf "%s\n" "$PRETTY_AUTHORIZED_KEY" > "$work_dir/authorized_keys" +else + cp "$key_path.pub" "$work_dir/authorized_keys" +fi +chmod 600 "$key_path" "$work_dir/authorized_keys" + +if [ ! -f "$work_dir/password.txt" ]; then + if command -v openssl >/dev/null 2>&1; then + password=$(openssl rand -base64 18) + elif command -v python3 >/dev/null 2>&1; then + password=$(python3 - <<'PY' +import secrets, string +alphabet = string.ascii_letters + string.digits +print(''.join(secrets.choice(alphabet) for _ in range(24))) +PY +) + else + echo "missing openssl or python3 for password generation" >&2 + exit 1 + fi + printf "%s\n" "$password" > "$work_dir/password.txt" + chmod 600 "$work_dir/password.txt" +fi + +password=$(cat "$work_dir/password.txt") +cat > "$work_dir/sshd.env" < "$work_dir/known_hosts" +ssh-keyscan -p 2221 -H localhost 2>/dev/null >> "$work_dir/known_hosts" || true +ssh-keyscan -p 2222 -H localhost 2>/dev/null >> "$work_dir/known_hosts" || true +ssh-keyscan -p 2223 -H localhost 2>/dev/null >> "$work_dir/known_hosts" || true + +cat > "$work_dir/pretty.yaml" <&2 +fi diff --git a/shell/shell.go b/shell/shell.go deleted file mode 100644 index add289b..0000000 --- a/shell/shell.go +++ /dev/null @@ -1,104 +0,0 @@ -package shell - -import ( - "fmt" - "io" - "strings" - "sync/atomic" - - "github.com/chzyer/readline" - "github.com/ncode/pretty/sshConn" - "github.com/spf13/viper" -) - -func usage(w io.Writer) { - io.WriteString(w, "commands:\n") - io.WriteString(w, completer.Tree(" ")) -} - -var completer = readline.NewPrefixCompleter( - readline.PcItem(":bye"), - readline.PcItem(":help"), - readline.PcItem(":status"), - readline.PcItem(":list"), -) - -func filterInput(r rune) (rune, bool) { - switch r { - // block CtrlZ feature - case readline.CharCtrlZ: - return r, false - } - return r, true -} - -func Spawn(hostList *sshConn.HostList) { - command := make(chan string) - sent := make(chan bool) - go sshConn.Broker(hostList, command, sent) - prompt := "pretty(0)>> " - - rl, err := readline.NewEx(&readline.Config{ - Prompt: prompt, - HistoryFile: viper.GetString("history_file"), - AutoComplete: completer, - InterruptPrompt: "^C", - EOFPrompt: "exit", - HistorySearchFold: true, - FuncFilterInputRune: filterInput, - }) - if err != nil { - panic(err) - } - defer rl.Close() - - for { - line, err := rl.Readline() - if err == readline.ErrInterrupt { - if len(line) == 0 { - break - } else { - continue - } - } else if err == io.EOF { - break - } - - connected, waiting := hostList.State() - if waiting > 0 { - prompt = fmt.Sprintf("pretty(%d)/(%d)>> ", waiting, connected) - } else { - prompt = fmt.Sprintf("pretty(%d)>> ", connected) - } - rl.SetPrompt(prompt) - - line = strings.TrimSpace(line) - switch { - case line == ":help": - usage(rl.Stderr()) - case line == ":bye": - goto exit - case line == "exit": - goto exit - case line == ":list": - for _, host := range hostList.Hosts() { - var state bool - if atomic.LoadInt32(&host.IsConnected) == 1 { - state = true - } - fmt.Printf("%v: Connected(%v)\n", host.Hostname, state) - } - case line == ":status": - fmt.Printf("Connected hosts (%d)\n", connected) - fmt.Printf("Failed hosts (%d)\n", hostList.Len()-connected) - case line == "": - default: - if connected > 0 { - command <- line - <-sent - } - fmt.Printf(prompt) - } - } -exit: -} diff --git a/sshConn/message.go b/sshConn/message.go deleted file mode 100644 index 40c80e5..0000000 --- a/sshConn/message.go +++ /dev/null @@ -1,77 +0,0 @@ -package sshConn - -import ( - "fmt" - "os" - "strings" - "sync/atomic" - "golang.org/x/crypto/ssh" -) - -type ProxyWriter struct { - file *os.File - host *Host -} - -func NewProxyWriter(file *os.File, host *Host) *ProxyWriter { - return &ProxyWriter{ - file: file, - host: host, - } -} - -func (w *ProxyWriter) Write(output []byte) (int, error) { - for pos, l := range strings.Split(strings.TrimSuffix(string(output), "\n"), "\n") { - if pos == 0 { - fmt.Printf("\r") - } - w.host.Color.Printf("%s: %s\n", w.host.Hostname, l) - } - return len(output), nil -} - -func worker(host *Host, input <-chan string) { - connection, err := Connection(host.Hostname) - if err != nil { - fmt.Printf("error connection to host %s: %v\n", host.Hostname, err) - return - } else { - atomic.StoreInt32(&host.IsConnected, 1) - } - stdin, session, err := Session(connection, host) - if err != nil { - fmt.Printf("unable to open session: %v\n", err) - atomic.StoreInt32(&host.IsConnected, 0) - return - } - - for command := range input { - atomic.StoreInt32(&host.IsWaiting, 1) - // TODO: This is unfortunately not supported by OpenSSH yet. - // ref: https://github.com/golang/go/issues/16597 - // ref: https://bugzilla.mindrot.org/show_bug.cgi?id=1424 - // I will need to look for a less classy solution :( - if command == "ˆC" { - session.Signal(ssh.SIGINT) - } else { - fmt.Fprint(stdin, fmt.Sprintf("%s\n", command)) - } - atomic.StoreInt32(&host.IsWaiting, 0) - } -} - -func Broker(hostList *HostList, input <-chan string, sent chan <- bool) { - for _, host := range hostList.Hosts() { - host.Channel = make(chan string) - go worker(host, host.Channel) - } - - for cmd := range input { - for _, host := range hostList.Hosts() { - if atomic.LoadInt32(&host.IsConnected) == 1 { - host.Channel <- cmd - sent <- true - } - } - } -} diff --git a/sshConn/ssh.go b/sshConn/ssh.go deleted file mode 100644 index 36d7665..0000000 --- a/sshConn/ssh.go +++ /dev/null @@ -1,122 +0,0 @@ -package sshConn - -import ( - "fmt" - "io" - "io/ioutil" - "log" - "net" - "os" - "sync" - "sync/atomic" - "time" - - "github.com/fatih/color" - "github.com/spf13/viper" - "golang.org/x/crypto/ssh" - "golang.org/x/crypto/ssh/agent" -) - -func NewHostList() *HostList { - hl := HostList{} - hl.hosts = make([]*Host, 0) - return &hl -} - -type HostList struct { - mu sync.Mutex - hosts []*Host -} - -func (h *HostList) AddHost(host *Host) { - h.mu.Lock() - h.hosts = append(h.hosts, host) - h.mu.Unlock() -} - -func (h *HostList) Hosts() []*Host { - return h.hosts -} - -func (h *HostList) Len() int { - return len(h.hosts) -} - -func (h *HostList) State() (connected int, waiting int) { - for _, host := range h.hosts { - if atomic.LoadInt32(&host.IsConnected) == 1 { - connected++ - if atomic.LoadInt32(&host.IsWaiting) == 1 { - waiting++ - } - } - } - return connected, waiting -} - -type Host struct { - Color *color.Color - Hostname string - IsConnected int32 - Channel chan string - ControlC chan os.Signal - IsWaiting int32 -} - -func Agent() ssh.AuthMethod { - if Agent, err := net.Dial("unix", os.Getenv("SSH_AUTH_SOCK")); err == nil { - return ssh.PublicKeysCallback(agent.NewClient(Agent).Signers) - } - return nil -} - -func PublicKeyFile(privateKey string) ssh.AuthMethod { - key, err := ioutil.ReadFile(privateKey) - if err != nil { - log.Fatalf("unable to read private key: %v", err) - } - - signer, err := ssh.ParsePrivateKey(key) - if err != nil { - log.Fatalf("unable to parse private key: %v", err) - } - return ssh.PublicKeys(signer) -} - -func Connection(hostname string) (connection *ssh.Client, err error) { - sshConfig := &ssh.ClientConfig{ - User: viper.GetString("username"), - Auth: []ssh.AuthMethod{ - Agent(), - }, - Timeout: 10 * time.Second, - } - - connection, err = ssh.Dial("tcp", fmt.Sprintf("%s:22", hostname), sshConfig) - if err != nil { - return nil, fmt.Errorf("failed to dial: %s", err) - } - - return connection, err -} - -func Session(connection *ssh.Client, host *Host) (stdin io.WriteCloser, session *ssh.Session, err error) { - session, err = connection.NewSession() - if err != nil { - return stdin, session, err - } - - session.Stdout = NewProxyWriter(os.Stdout, host) - session.Stderr = NewProxyWriter(os.Stderr, host) - stdin, err = session.StdinPipe() - if err != nil { - return stdin, session, err - } - - err = session.Shell() - if err != nil { - return stdin, session, err - } - - return stdin, session, err -} diff --git a/vendor/github.com/chzyer/readline/CHANGELOG.md b/vendor/github.com/chzyer/readline/CHANGELOG.md deleted file mode 100644 index 5c1811a..0000000 --- a/vendor/github.com/chzyer/readline/CHANGELOG.md +++ /dev/null @@ -1,58 +0,0 @@ -# ChangeLog - -### 1.4 - 2016-07-25 - -* [#60][60] Support dynamic autocompletion -* Fix ANSI parser on Windows -* Fix wrong column width in complete mode on Windows -* Remove dependent package "golang.org/x/crypto/ssh/terminal" - -### 1.3 - 2016-05-09 - -* [#38][38] add SetChildren for prefix completer interface -* [#42][42] improve multiple lines compatibility -* [#43][43] remove sub-package(runes) for gopkg compatiblity -* [#46][46] Auto complete with space prefixed line -* [#48][48] support suspend process (ctrl+Z) -* [#49][49] fix bug that check equals with previous command -* [#53][53] Fix bug which causes integer divide by zero panicking when input buffer is empty - -### 1.2 - 2016-03-05 - -* Add a demo for checking password strength [example/readline-pass-strength](https://github.com/chzyer/readline/blob/master/example/readline-pass-strength/readline-pass-strength.go), , written by [@sahib](https://github.com/sahib) -* [#23][23], support stdin remapping -* [#27][27], add a `UniqueEditLine` to `Config`, which will erase the editing line after user submited it, usually use in IM. -* Add a demo for multiline [example/readline-multiline](https://github.com/chzyer/readline/blob/master/example/readline-multiline/readline-multiline.go) which can submit one SQL by multiple lines. -* Supports performs even stdin/stdout is not a tty. -* Add a new simple apis for single instance, check by [here](https://github.com/chzyer/readline/blob/master/std.go). It need to save history manually if using this api. -* [#28][28], fixes the history is not working as expected. -* [#33][33], vim mode now support `c`, `d`, `x (delete character)`, `r (replace character)` - -### 1.1 - 2015-11-20 - -* [#12][12] Add support for key ``/``/`` -* Only enter raw mode as needed (calling `Readline()`), program will receive signal(e.g. Ctrl+C) if not interact with `readline`. -* Bugs fixed for `PrefixCompleter` -* Press `Ctrl+D` in empty line will cause `io.EOF` in error, Press `Ctrl+C` in anytime will cause `ErrInterrupt` instead of `io.EOF`, this will privodes a shell-like user experience. -* Customable Interrupt/EOF prompt in `Config` -* [#17][17] Change atomic package to use 32bit function to let it runnable on arm 32bit devices -* Provides a new password user experience(`readline.ReadPasswordEx()`). - -### 1.0 - 2015-10-14 - -* Initial public release. - -[12]: https://github.com/chzyer/readline/pull/12 -[17]: https://github.com/chzyer/readline/pull/17 -[23]: https://github.com/chzyer/readline/pull/23 -[27]: https://github.com/chzyer/readline/pull/27 -[28]: https://github.com/chzyer/readline/pull/28 -[33]: https://github.com/chzyer/readline/pull/33 -[38]: https://github.com/chzyer/readline/pull/38 -[42]: https://github.com/chzyer/readline/pull/42 -[43]: https://github.com/chzyer/readline/pull/43 -[46]: https://github.com/chzyer/readline/pull/46 -[48]: https://github.com/chzyer/readline/pull/48 -[49]: https://github.com/chzyer/readline/pull/49 -[53]: https://github.com/chzyer/readline/pull/53 -[60]: https://github.com/chzyer/readline/pull/60 diff --git a/vendor/github.com/chzyer/readline/LICENSE b/vendor/github.com/chzyer/readline/LICENSE deleted file mode 100644 index c9afab3..0000000 --- a/vendor/github.com/chzyer/readline/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015 Chzyer - -Permission 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: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE 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. - diff --git a/vendor/github.com/chzyer/readline/README.md b/vendor/github.com/chzyer/readline/README.md deleted file mode 100644 index fab974b..0000000 --- a/vendor/github.com/chzyer/readline/README.md +++ /dev/null @@ -1,114 +0,0 @@ -[![Build Status](https://travis-ci.org/chzyer/readline.svg?branch=master)](https://travis-ci.org/chzyer/readline) -[![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg)](LICENSE.md) -[![Version](https://img.shields.io/github/tag/chzyer/readline.svg)](https://github.com/chzyer/readline/releases) -[![GoDoc](https://godoc.org/github.com/chzyer/readline?status.svg)](https://godoc.org/github.com/chzyer/readline) -[![OpenCollective](https://opencollective.com/readline/badge/backers.svg)](#backers) -[![OpenCollective](https://opencollective.com/readline/badge/sponsors.svg)](#sponsors) - -

- - - -

- -A powerful readline library in `Linux` `macOS` `Windows` `Solaris` - -## Guide - -* [Demo](example/readline-demo/readline-demo.go) -* [Shortcut](doc/shortcut.md) - -## Repos using readline - -[![cockroachdb](https://img.shields.io/github/stars/cockroachdb/cockroach.svg?label=cockroachdb/cockroach)](https://github.com/cockroachdb/cockroach) -[![robertkrimen/otto](https://img.shields.io/github/stars/robertkrimen/otto.svg?label=robertkrimen/otto)](https://github.com/robertkrimen/otto) -[![empire](https://img.shields.io/github/stars/remind101/empire.svg?label=remind101/empire)](https://github.com/remind101/empire) -[![mehrdadrad/mylg](https://img.shields.io/github/stars/mehrdadrad/mylg.svg?label=mehrdadrad/mylg)](https://github.com/mehrdadrad/mylg) -[![knq/usql](https://img.shields.io/github/stars/knq/usql.svg?label=knq/usql)](https://github.com/knq/usql) -[![youtube/doorman](https://img.shields.io/github/stars/youtube/doorman.svg?label=youtube/doorman)](https://github.com/youtube/doorman) -[![bom-d-van/harp](https://img.shields.io/github/stars/bom-d-van/harp.svg?label=bom-d-van/harp)](https://github.com/bom-d-van/harp) -[![abiosoft/ishell](https://img.shields.io/github/stars/abiosoft/ishell.svg?label=abiosoft/ishell)](https://github.com/abiosoft/ishell) -[![Netflix/hal-9001](https://img.shields.io/github/stars/Netflix/hal-9001.svg?label=Netflix/hal-9001)](https://github.com/Netflix/hal-9001) -[![docker/go-p9p](https://img.shields.io/github/stars/docker/go-p9p.svg?label=docker/go-p9p)](https://github.com/docker/go-p9p) - - -## Feedback - -If you have any questions, please submit a github issue and any pull requests is welcomed :) - -* [https://twitter.com/chzyer](https://twitter.com/chzyer) -* [http://weibo.com/2145262190](http://weibo.com/2145262190) - - -## Backers - -Love Readline? Help me keep it alive by donating funds to cover project expenses!
-[[Become a backer](https://opencollective.com/readline#backer)] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -## Sponsors - -Become a sponsor and get your logo here on our Github page. [[Become a sponsor](https://opencollective.com/readline#sponsor)] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/vendor/github.com/chzyer/readline/ansi_windows.go b/vendor/github.com/chzyer/readline/ansi_windows.go deleted file mode 100644 index da106b5..0000000 --- a/vendor/github.com/chzyer/readline/ansi_windows.go +++ /dev/null @@ -1,246 +0,0 @@ -// +build windows - -package readline - -import ( - "bufio" - "io" - "strconv" - "strings" - "sync" - "unicode/utf8" - "unsafe" -) - -const ( - _ = uint16(0) - COLOR_FBLUE = 0x0001 - COLOR_FGREEN = 0x0002 - COLOR_FRED = 0x0004 - COLOR_FINTENSITY = 0x0008 - - COLOR_BBLUE = 0x0010 - COLOR_BGREEN = 0x0020 - COLOR_BRED = 0x0040 - COLOR_BINTENSITY = 0x0080 - - COMMON_LVB_UNDERSCORE = 0x8000 -) - -var ColorTableFg = []word{ - 0, // 30: Black - COLOR_FRED, // 31: Red - COLOR_FGREEN, // 32: Green - COLOR_FRED | COLOR_FGREEN, // 33: Yellow - COLOR_FBLUE, // 34: Blue - COLOR_FRED | COLOR_FBLUE, // 35: Magenta - COLOR_FGREEN | COLOR_FBLUE, // 36: Cyan - COLOR_FRED | COLOR_FBLUE | COLOR_FGREEN, // 37: White -} - -var ColorTableBg = []word{ - 0, // 40: Black - COLOR_BRED, // 41: Red - COLOR_BGREEN, // 42: Green - COLOR_BRED | COLOR_BGREEN, // 43: Yellow - COLOR_BBLUE, // 44: Blue - COLOR_BRED | COLOR_BBLUE, // 45: Magenta - COLOR_BGREEN | COLOR_BBLUE, // 46: Cyan - COLOR_BRED | COLOR_BBLUE | COLOR_BGREEN, // 47: White -} - -type ANSIWriter struct { - target io.Writer - wg sync.WaitGroup - ctx *ANSIWriterCtx - sync.Mutex -} - -func NewANSIWriter(w io.Writer) *ANSIWriter { - a := &ANSIWriter{ - target: w, - ctx: NewANSIWriterCtx(w), - } - return a -} - -func (a *ANSIWriter) Close() error { - a.wg.Wait() - return nil -} - -type ANSIWriterCtx struct { - isEsc bool - isEscSeq bool - arg []string - target *bufio.Writer - wantFlush bool -} - -func NewANSIWriterCtx(target io.Writer) *ANSIWriterCtx { - return &ANSIWriterCtx{ - target: bufio.NewWriter(target), - } -} - -func (a *ANSIWriterCtx) Flush() { - a.target.Flush() -} - -func (a *ANSIWriterCtx) process(r rune) bool { - if a.wantFlush { - if r == 0 || r == CharEsc { - a.wantFlush = false - a.target.Flush() - } - } - if a.isEscSeq { - a.isEscSeq = a.ioloopEscSeq(a.target, r, &a.arg) - return true - } - - switch r { - case CharEsc: - a.isEsc = true - case '[': - if a.isEsc { - a.arg = nil - a.isEscSeq = true - a.isEsc = false - break - } - fallthrough - default: - a.target.WriteRune(r) - a.wantFlush = true - } - return true -} - -func (a *ANSIWriterCtx) ioloopEscSeq(w *bufio.Writer, r rune, argptr *[]string) bool { - arg := *argptr - var err error - - if r >= 'A' && r <= 'D' { - count := short(GetInt(arg, 1)) - info, err := GetConsoleScreenBufferInfo() - if err != nil { - return false - } - switch r { - case 'A': // up - info.dwCursorPosition.y -= count - case 'B': // down - info.dwCursorPosition.y += count - case 'C': // right - info.dwCursorPosition.x += count - case 'D': // left - info.dwCursorPosition.x -= count - } - SetConsoleCursorPosition(&info.dwCursorPosition) - return false - } - - switch r { - case 'J': - killLines() - case 'K': - eraseLine() - case 'm': - color := word(0) - for _, item := range arg { - var c int - c, err = strconv.Atoi(item) - if err != nil { - w.WriteString("[" + strings.Join(arg, ";") + "m") - break - } - if c >= 30 && c < 40 { - color ^= COLOR_FINTENSITY - color |= ColorTableFg[c-30] - } else if c >= 40 && c < 50 { - color ^= COLOR_BINTENSITY - color |= ColorTableBg[c-40] - } else if c == 4 { - color |= COMMON_LVB_UNDERSCORE | ColorTableFg[7] - } else { // unknown code treat as reset - color = ColorTableFg[7] - } - } - if err != nil { - break - } - kernel.SetConsoleTextAttribute(stdout, uintptr(color)) - case '\007': // set title - case ';': - if len(arg) == 0 || arg[len(arg)-1] != "" { - arg = append(arg, "") - *argptr = arg - } - return true - default: - if len(arg) == 0 { - arg = append(arg, "") - } - arg[len(arg)-1] += string(r) - *argptr = arg - return true - } - *argptr = nil - return false -} - -func (a *ANSIWriter) Write(b []byte) (int, error) { - a.Lock() - defer a.Unlock() - - off := 0 - for len(b) > off { - r, size := utf8.DecodeRune(b[off:]) - if size == 0 { - return off, io.ErrShortWrite - } - off += size - a.ctx.process(r) - } - a.ctx.Flush() - return off, nil -} - -func killLines() error { - sbi, err := GetConsoleScreenBufferInfo() - if err != nil { - return err - } - - size := (sbi.dwCursorPosition.y - sbi.dwSize.y) * sbi.dwSize.x - size += sbi.dwCursorPosition.x - - var written int - kernel.FillConsoleOutputAttribute(stdout, uintptr(ColorTableFg[7]), - uintptr(size), - sbi.dwCursorPosition.ptr(), - uintptr(unsafe.Pointer(&written)), - ) - return kernel.FillConsoleOutputCharacterW(stdout, uintptr(' '), - uintptr(size), - sbi.dwCursorPosition.ptr(), - uintptr(unsafe.Pointer(&written)), - ) -} - -func eraseLine() error { - sbi, err := GetConsoleScreenBufferInfo() - if err != nil { - return err - } - - size := sbi.dwSize.x - sbi.dwCursorPosition.x = 0 - var written int - return kernel.FillConsoleOutputCharacterW(stdout, uintptr(' '), - uintptr(size), - sbi.dwCursorPosition.ptr(), - uintptr(unsafe.Pointer(&written)), - ) -} diff --git a/vendor/github.com/chzyer/readline/complete.go b/vendor/github.com/chzyer/readline/complete.go deleted file mode 100644 index 349fc3d..0000000 --- a/vendor/github.com/chzyer/readline/complete.go +++ /dev/null @@ -1,283 +0,0 @@ -package readline - -import ( - "bufio" - "bytes" - "fmt" - "io" -) - -type AutoCompleter interface { - // Readline will pass the whole line and current offset to it - // Completer need to pass all the candidates, and how long they shared the same characters in line - // Example: - // [go, git, git-shell, grep] - // Do("g", 1) => ["o", "it", "it-shell", "rep"], 1 - // Do("gi", 2) => ["t", "t-shell"], 2 - // Do("git", 3) => ["", "-shell"], 3 - Do(line []rune, pos int) (newLine [][]rune, length int) -} - -type TabCompleter struct{} - -func (t *TabCompleter) Do([]rune, int) ([][]rune, int) { - return [][]rune{[]rune("\t")}, 0 -} - -type opCompleter struct { - w io.Writer - op *Operation - width int - - inCompleteMode bool - inSelectMode bool - candidate [][]rune - candidateSource []rune - candidateOff int - candidateChoise int - candidateColNum int -} - -func newOpCompleter(w io.Writer, op *Operation, width int) *opCompleter { - return &opCompleter{ - w: w, - op: op, - width: width, - } -} - -func (o *opCompleter) doSelect() { - if len(o.candidate) == 1 { - o.op.buf.WriteRunes(o.candidate[0]) - o.ExitCompleteMode(false) - return - } - o.nextCandidate(1) - o.CompleteRefresh() -} - -func (o *opCompleter) nextCandidate(i int) { - o.candidateChoise += i - o.candidateChoise = o.candidateChoise % len(o.candidate) - if o.candidateChoise < 0 { - o.candidateChoise = len(o.candidate) + o.candidateChoise - } -} - -func (o *opCompleter) OnComplete() bool { - if o.width == 0 { - return false - } - if o.IsInCompleteSelectMode() { - o.doSelect() - return true - } - - buf := o.op.buf - rs := buf.Runes() - - if o.IsInCompleteMode() && o.candidateSource != nil && runes.Equal(rs, o.candidateSource) { - o.EnterCompleteSelectMode() - o.doSelect() - return true - } - - o.ExitCompleteSelectMode() - o.candidateSource = rs - newLines, offset := o.op.cfg.AutoComplete.Do(rs, buf.idx) - if len(newLines) == 0 { - o.ExitCompleteMode(false) - return true - } - - // only Aggregate candidates in non-complete mode - if !o.IsInCompleteMode() { - if len(newLines) == 1 { - buf.WriteRunes(newLines[0]) - o.ExitCompleteMode(false) - return true - } - - same, size := runes.Aggregate(newLines) - if size > 0 { - buf.WriteRunes(same) - o.ExitCompleteMode(false) - return true - } - } - - o.EnterCompleteMode(offset, newLines) - return true -} - -func (o *opCompleter) IsInCompleteSelectMode() bool { - return o.inSelectMode -} - -func (o *opCompleter) IsInCompleteMode() bool { - return o.inCompleteMode -} - -func (o *opCompleter) HandleCompleteSelect(r rune) bool { - next := true - switch r { - case CharEnter, CharCtrlJ: - next = false - o.op.buf.WriteRunes(o.op.candidate[o.op.candidateChoise]) - o.ExitCompleteMode(false) - case CharLineStart: - num := o.candidateChoise % o.candidateColNum - o.nextCandidate(-num) - case CharLineEnd: - num := o.candidateColNum - o.candidateChoise%o.candidateColNum - 1 - o.candidateChoise += num - if o.candidateChoise >= len(o.candidate) { - o.candidateChoise = len(o.candidate) - 1 - } - case CharBackspace: - o.ExitCompleteSelectMode() - next = false - case CharTab, CharForward: - o.doSelect() - case CharBell, CharInterrupt: - o.ExitCompleteMode(true) - next = false - case CharNext: - tmpChoise := o.candidateChoise + o.candidateColNum - if tmpChoise >= o.getMatrixSize() { - tmpChoise -= o.getMatrixSize() - } else if tmpChoise >= len(o.candidate) { - tmpChoise += o.candidateColNum - tmpChoise -= o.getMatrixSize() - } - o.candidateChoise = tmpChoise - case CharBackward: - o.nextCandidate(-1) - case CharPrev: - tmpChoise := o.candidateChoise - o.candidateColNum - if tmpChoise < 0 { - tmpChoise += o.getMatrixSize() - if tmpChoise >= len(o.candidate) { - tmpChoise -= o.candidateColNum - } - } - o.candidateChoise = tmpChoise - default: - next = false - o.ExitCompleteSelectMode() - } - if next { - o.CompleteRefresh() - return true - } - return false -} - -func (o *opCompleter) getMatrixSize() int { - line := len(o.candidate) / o.candidateColNum - if len(o.candidate)%o.candidateColNum != 0 { - line++ - } - return line * o.candidateColNum -} - -func (o *opCompleter) OnWidthChange(newWidth int) { - o.width = newWidth -} - -func (o *opCompleter) CompleteRefresh() { - if !o.inCompleteMode { - return - } - lineCnt := o.op.buf.CursorLineCount() - colWidth := 0 - for _, c := range o.candidate { - w := runes.WidthAll(c) - if w > colWidth { - colWidth = w - } - } - colWidth += o.candidateOff + 1 - same := o.op.buf.RuneSlice(-o.candidateOff) - - // -1 to avoid reach the end of line - width := o.width - 1 - colNum := width / colWidth - colWidth += (width - (colWidth * colNum)) / colNum - - o.candidateColNum = colNum - buf := bufio.NewWriter(o.w) - buf.Write(bytes.Repeat([]byte("\n"), lineCnt)) - - colIdx := 0 - lines := 1 - buf.WriteString("\033[J") - for idx, c := range o.candidate { - inSelect := idx == o.candidateChoise && o.IsInCompleteSelectMode() - if inSelect { - buf.WriteString("\033[30;47m") - } - buf.WriteString(string(same)) - buf.WriteString(string(c)) - buf.Write(bytes.Repeat([]byte(" "), colWidth-len(c)-len(same))) - - if inSelect { - buf.WriteString("\033[0m") - } - - colIdx++ - if colIdx == colNum { - buf.WriteString("\n") - lines++ - colIdx = 0 - } - } - - // move back - fmt.Fprintf(buf, "\033[%dA\r", lineCnt-1+lines) - fmt.Fprintf(buf, "\033[%dC", o.op.buf.idx+o.op.buf.PromptLen()) - buf.Flush() -} - -func (o *opCompleter) aggCandidate(candidate [][]rune) int { - offset := 0 - for i := 0; i < len(candidate[0]); i++ { - for j := 0; j < len(candidate)-1; j++ { - if i > len(candidate[j]) { - goto aggregate - } - if candidate[j][i] != candidate[j+1][i] { - goto aggregate - } - } - offset = i - } -aggregate: - return offset -} - -func (o *opCompleter) EnterCompleteSelectMode() { - o.inSelectMode = true - o.candidateChoise = -1 - o.CompleteRefresh() -} - -func (o *opCompleter) EnterCompleteMode(offset int, candidate [][]rune) { - o.inCompleteMode = true - o.candidate = candidate - o.candidateOff = offset - o.CompleteRefresh() -} - -func (o *opCompleter) ExitCompleteSelectMode() { - o.inSelectMode = false - o.candidate = nil - o.candidateChoise = -1 - o.candidateOff = -1 - o.candidateSource = nil -} - -func (o *opCompleter) ExitCompleteMode(revent bool) { - o.inCompleteMode = false - o.ExitCompleteSelectMode() -} diff --git a/vendor/github.com/chzyer/readline/complete_helper.go b/vendor/github.com/chzyer/readline/complete_helper.go deleted file mode 100644 index 58d7248..0000000 --- a/vendor/github.com/chzyer/readline/complete_helper.go +++ /dev/null @@ -1,165 +0,0 @@ -package readline - -import ( - "bytes" - "strings" -) - -// Caller type for dynamic completion -type DynamicCompleteFunc func(string) []string - -type PrefixCompleterInterface interface { - Print(prefix string, level int, buf *bytes.Buffer) - Do(line []rune, pos int) (newLine [][]rune, length int) - GetName() []rune - GetChildren() []PrefixCompleterInterface - SetChildren(children []PrefixCompleterInterface) -} - -type DynamicPrefixCompleterInterface interface { - PrefixCompleterInterface - IsDynamic() bool - GetDynamicNames(line []rune) [][]rune -} - -type PrefixCompleter struct { - Name []rune - Dynamic bool - Callback DynamicCompleteFunc - Children []PrefixCompleterInterface -} - -func (p *PrefixCompleter) Tree(prefix string) string { - buf := bytes.NewBuffer(nil) - p.Print(prefix, 0, buf) - return buf.String() -} - -func Print(p PrefixCompleterInterface, prefix string, level int, buf *bytes.Buffer) { - if strings.TrimSpace(string(p.GetName())) != "" { - buf.WriteString(prefix) - if level > 0 { - buf.WriteString("├") - buf.WriteString(strings.Repeat("─", (level*4)-2)) - buf.WriteString(" ") - } - buf.WriteString(string(p.GetName()) + "\n") - level++ - } - for _, ch := range p.GetChildren() { - ch.Print(prefix, level, buf) - } -} - -func (p *PrefixCompleter) Print(prefix string, level int, buf *bytes.Buffer) { - Print(p, prefix, level, buf) -} - -func (p *PrefixCompleter) IsDynamic() bool { - return p.Dynamic -} - -func (p *PrefixCompleter) GetName() []rune { - return p.Name -} - -func (p *PrefixCompleter) GetDynamicNames(line []rune) [][]rune { - var names = [][]rune{} - for _, name := range p.Callback(string(line)) { - names = append(names, []rune(name+" ")) - } - return names -} - -func (p *PrefixCompleter) GetChildren() []PrefixCompleterInterface { - return p.Children -} - -func (p *PrefixCompleter) SetChildren(children []PrefixCompleterInterface) { - p.Children = children -} - -func NewPrefixCompleter(pc ...PrefixCompleterInterface) *PrefixCompleter { - return PcItem("", pc...) -} - -func PcItem(name string, pc ...PrefixCompleterInterface) *PrefixCompleter { - name += " " - return &PrefixCompleter{ - Name: []rune(name), - Dynamic: false, - Children: pc, - } -} - -func PcItemDynamic(callback DynamicCompleteFunc, pc ...PrefixCompleterInterface) *PrefixCompleter { - return &PrefixCompleter{ - Callback: callback, - Dynamic: true, - Children: pc, - } -} - -func (p *PrefixCompleter) Do(line []rune, pos int) (newLine [][]rune, offset int) { - return doInternal(p, line, pos, line) -} - -func Do(p PrefixCompleterInterface, line []rune, pos int) (newLine [][]rune, offset int) { - return doInternal(p, line, pos, line) -} - -func doInternal(p PrefixCompleterInterface, line []rune, pos int, origLine []rune) (newLine [][]rune, offset int) { - line = runes.TrimSpaceLeft(line[:pos]) - goNext := false - var lineCompleter PrefixCompleterInterface - for _, child := range p.GetChildren() { - childNames := make([][]rune, 1) - - childDynamic, ok := child.(DynamicPrefixCompleterInterface) - if ok && childDynamic.IsDynamic() { - childNames = childDynamic.GetDynamicNames(origLine) - } else { - childNames[0] = child.GetName() - } - - for _, childName := range childNames { - if len(line) >= len(childName) { - if runes.HasPrefix(line, childName) { - if len(line) == len(childName) { - newLine = append(newLine, []rune{' '}) - } else { - newLine = append(newLine, childName) - } - offset = len(childName) - lineCompleter = child - goNext = true - } - } else { - if runes.HasPrefix(childName, line) { - newLine = append(newLine, childName[len(line):]) - offset = len(line) - lineCompleter = child - } - } - } - } - - if len(newLine) != 1 { - return - } - - tmpLine := make([]rune, 0, len(line)) - for i := offset; i < len(line); i++ { - if line[i] == ' ' { - continue - } - - tmpLine = append(tmpLine, line[i:]...) - return doInternal(lineCompleter, tmpLine, len(tmpLine), origLine) - } - - if goNext { - return doInternal(lineCompleter, nil, 0, origLine) - } - return -} diff --git a/vendor/github.com/chzyer/readline/complete_segment.go b/vendor/github.com/chzyer/readline/complete_segment.go deleted file mode 100644 index 5ceadd8..0000000 --- a/vendor/github.com/chzyer/readline/complete_segment.go +++ /dev/null @@ -1,82 +0,0 @@ -package readline - -type SegmentCompleter interface { - // a - // |- a1 - // |--- a11 - // |- a2 - // b - // input: - // DoTree([], 0) [a, b] - // DoTree([a], 1) [a] - // DoTree([a, ], 0) [a1, a2] - // DoTree([a, a], 1) [a1, a2] - // DoTree([a, a1], 2) [a1] - // DoTree([a, a1, ], 0) [a11] - // DoTree([a, a1, a], 1) [a11] - DoSegment([][]rune, int) [][]rune -} - -type dumpSegmentCompleter struct { - f func([][]rune, int) [][]rune -} - -func (d *dumpSegmentCompleter) DoSegment(segment [][]rune, n int) [][]rune { - return d.f(segment, n) -} - -func SegmentFunc(f func([][]rune, int) [][]rune) AutoCompleter { - return &SegmentComplete{&dumpSegmentCompleter{f}} -} - -func SegmentAutoComplete(completer SegmentCompleter) *SegmentComplete { - return &SegmentComplete{ - SegmentCompleter: completer, - } -} - -type SegmentComplete struct { - SegmentCompleter -} - -func RetSegment(segments [][]rune, cands [][]rune, idx int) ([][]rune, int) { - ret := make([][]rune, 0, len(cands)) - lastSegment := segments[len(segments)-1] - for _, cand := range cands { - if !runes.HasPrefix(cand, lastSegment) { - continue - } - ret = append(ret, cand[len(lastSegment):]) - } - return ret, idx -} - -func SplitSegment(line []rune, pos int) ([][]rune, int) { - segs := [][]rune{} - lastIdx := -1 - line = line[:pos] - pos = 0 - for idx, l := range line { - if l == ' ' { - pos = 0 - segs = append(segs, line[lastIdx+1:idx]) - lastIdx = idx - } else { - pos++ - } - } - segs = append(segs, line[lastIdx+1:]) - return segs, pos -} - -func (c *SegmentComplete) Do(line []rune, pos int) (newLine [][]rune, offset int) { - - segment, idx := SplitSegment(line, pos) - - cands := c.DoSegment(segment, idx) - newLine, offset = RetSegment(segment, cands, idx) - for idx := range newLine { - newLine[idx] = append(newLine[idx], ' ') - } - return newLine, offset -} diff --git a/vendor/github.com/chzyer/readline/history.go b/vendor/github.com/chzyer/readline/history.go deleted file mode 100644 index b154aed..0000000 --- a/vendor/github.com/chzyer/readline/history.go +++ /dev/null @@ -1,312 +0,0 @@ -package readline - -import ( - "bufio" - "container/list" - "fmt" - "os" - "strings" - "sync" -) - -type hisItem struct { - Source []rune - Version int64 - Tmp []rune -} - -func (h *hisItem) Clean() { - h.Source = nil - h.Tmp = nil -} - -type opHistory struct { - cfg *Config - history *list.List - historyVer int64 - current *list.Element - fd *os.File - fdLock sync.Mutex -} - -func newOpHistory(cfg *Config) (o *opHistory) { - o = &opHistory{ - cfg: cfg, - history: list.New(), - } - return o -} - -func (o *opHistory) Reset() { - o.history = list.New() - o.current = nil -} - -func (o *opHistory) IsHistoryClosed() bool { - o.fdLock.Lock() - defer o.fdLock.Unlock() - return o.fd.Fd() == ^(uintptr(0)) -} - -func (o *opHistory) Init() { - if o.IsHistoryClosed() { - o.initHistory() - } -} - -func (o *opHistory) initHistory() { - if o.cfg.HistoryFile != "" { - o.historyUpdatePath(o.cfg.HistoryFile) - } -} - -// only called by newOpHistory -func (o *opHistory) historyUpdatePath(path string) { - o.fdLock.Lock() - defer o.fdLock.Unlock() - f, err := os.OpenFile(path, os.O_APPEND|os.O_CREATE|os.O_RDWR, 0666) - if err != nil { - return - } - o.fd = f - r := bufio.NewReader(o.fd) - total := 0 - for ; ; total++ { - line, err := r.ReadString('\n') - if err != nil { - break - } - // ignore the empty line - line = strings.TrimSpace(line) - if len(line) == 0 { - continue - } - o.Push([]rune(line)) - o.Compact() - } - if total > o.cfg.HistoryLimit { - o.rewriteLocked() - } - o.historyVer++ - o.Push(nil) - return -} - -func (o *opHistory) Compact() { - for o.history.Len() > o.cfg.HistoryLimit && o.history.Len() > 0 { - o.history.Remove(o.history.Front()) - } -} - -func (o *opHistory) Rewrite() { - o.fdLock.Lock() - defer o.fdLock.Unlock() - o.rewriteLocked() -} - -func (o *opHistory) rewriteLocked() { - if o.cfg.HistoryFile == "" { - return - } - - tmpFile := o.cfg.HistoryFile + ".tmp" - fd, err := os.OpenFile(tmpFile, os.O_CREATE|os.O_WRONLY|os.O_TRUNC|os.O_APPEND, 0666) - if err != nil { - return - } - - buf := bufio.NewWriter(fd) - for elem := o.history.Front(); elem != nil; elem = elem.Next() { - buf.WriteString(string(elem.Value.(*hisItem).Source)) - } - buf.Flush() - - // replace history file - if err = os.Rename(tmpFile, o.cfg.HistoryFile); err != nil { - fd.Close() - return - } - - if o.fd != nil { - o.fd.Close() - } - // fd is write only, just satisfy what we need. - o.fd = fd -} - -func (o *opHistory) Close() { - o.fdLock.Lock() - defer o.fdLock.Unlock() - if o.fd != nil { - o.fd.Close() - } -} - -func (o *opHistory) FindBck(isNewSearch bool, rs []rune, start int) (int, *list.Element) { - for elem := o.current; elem != nil; elem = elem.Prev() { - item := o.showItem(elem.Value) - if isNewSearch { - start += len(rs) - } - if elem == o.current { - if len(item) >= start { - item = item[:start] - } - } - idx := runes.IndexAllBckEx(item, rs, o.cfg.HistorySearchFold) - if idx < 0 { - continue - } - return idx, elem - } - return -1, nil -} - -func (o *opHistory) FindFwd(isNewSearch bool, rs []rune, start int) (int, *list.Element) { - for elem := o.current; elem != nil; elem = elem.Next() { - item := o.showItem(elem.Value) - if isNewSearch { - start -= len(rs) - if start < 0 { - start = 0 - } - } - if elem == o.current { - if len(item)-1 >= start { - item = item[start:] - } else { - continue - } - } - idx := runes.IndexAllEx(item, rs, o.cfg.HistorySearchFold) - if idx < 0 { - continue - } - if elem == o.current { - idx += start - } - return idx, elem - } - return -1, nil -} - -func (o *opHistory) showItem(obj interface{}) []rune { - item := obj.(*hisItem) - if item.Version == o.historyVer { - return item.Tmp - } - return item.Source -} - -func (o *opHistory) Prev() []rune { - if o.current == nil { - return nil - } - current := o.current.Prev() - if current == nil { - return nil - } - o.current = current - return runes.Copy(o.showItem(current.Value)) -} - -func (o *opHistory) Next() ([]rune, bool) { - if o.current == nil { - return nil, false - } - current := o.current.Next() - if current == nil { - return nil, false - } - - o.current = current - return runes.Copy(o.showItem(current.Value)), true -} - -func (o *opHistory) debug() { - Debug("-------") - for item := o.history.Front(); item != nil; item = item.Next() { - Debug(fmt.Sprintf("%+v", item.Value)) - } -} - -// save history -func (o *opHistory) New(current []rune) (err error) { - current = runes.Copy(current) - - // if just use last command without modify - // just clean lastest history - if back := o.history.Back(); back != nil { - prev := back.Prev() - if prev != nil { - if runes.Equal(current, prev.Value.(*hisItem).Source) { - o.current = o.history.Back() - o.current.Value.(*hisItem).Clean() - o.historyVer++ - return nil - } - } - } - - if len(current) == 0 { - o.current = o.history.Back() - if o.current != nil { - o.current.Value.(*hisItem).Clean() - o.historyVer++ - return nil - } - } - - if o.current != o.history.Back() { - // move history item to current command - currentItem := o.current.Value.(*hisItem) - // set current to last item - o.current = o.history.Back() - - current = runes.Copy(currentItem.Tmp) - } - - // err only can be a IO error, just report - err = o.Update(current, true) - - // push a new one to commit current command - o.historyVer++ - o.Push(nil) - return -} - -func (o *opHistory) Revert() { - o.historyVer++ - o.current = o.history.Back() -} - -func (o *opHistory) Update(s []rune, commit bool) (err error) { - o.fdLock.Lock() - defer o.fdLock.Unlock() - s = runes.Copy(s) - if o.current == nil { - o.Push(s) - o.Compact() - return - } - r := o.current.Value.(*hisItem) - r.Version = o.historyVer - if commit { - r.Source = s - if o.fd != nil { - // just report the error - _, err = o.fd.Write([]byte(string(r.Source) + "\n")) - } - } else { - r.Tmp = append(r.Tmp[:0], s...) - } - o.current.Value = r - o.Compact() - return -} - -func (o *opHistory) Push(s []rune) { - s = runes.Copy(s) - elem := o.history.PushBack(&hisItem{Source: s}) - o.current = elem -} diff --git a/vendor/github.com/chzyer/readline/operation.go b/vendor/github.com/chzyer/readline/operation.go deleted file mode 100644 index 2c93561..0000000 --- a/vendor/github.com/chzyer/readline/operation.go +++ /dev/null @@ -1,504 +0,0 @@ -package readline - -import ( - "errors" - "io" -) - -var ( - ErrInterrupt = errors.New("Interrupt") -) - -type InterruptError struct { - Line []rune -} - -func (*InterruptError) Error() string { - return "Interrupted" -} - -type Operation struct { - cfg *Config - t *Terminal - buf *RuneBuffer - outchan chan []rune - errchan chan error - w io.Writer - - history *opHistory - *opSearch - *opCompleter - *opPassword - *opVim -} - -func (o *Operation) SetBuffer(what string) { - o.buf.Set([]rune(what)) -} - -type wrapWriter struct { - r *Operation - t *Terminal - target io.Writer -} - -func (w *wrapWriter) Write(b []byte) (int, error) { - if !w.t.IsReading() { - return w.target.Write(b) - } - - var ( - n int - err error - ) - w.r.buf.Refresh(func() { - n, err = w.target.Write(b) - }) - - if w.r.IsSearchMode() { - w.r.SearchRefresh(-1) - } - if w.r.IsInCompleteMode() { - w.r.CompleteRefresh() - } - return n, err -} - -func NewOperation(t *Terminal, cfg *Config) *Operation { - width := cfg.FuncGetWidth() - op := &Operation{ - t: t, - buf: NewRuneBuffer(t, cfg.Prompt, cfg, width), - outchan: make(chan []rune), - errchan: make(chan error), - } - op.w = op.buf.w - op.SetConfig(cfg) - op.opVim = newVimMode(op) - op.opCompleter = newOpCompleter(op.buf.w, op, width) - op.opPassword = newOpPassword(op) - op.cfg.FuncOnWidthChanged(func() { - newWidth := cfg.FuncGetWidth() - op.opCompleter.OnWidthChange(newWidth) - op.opSearch.OnWidthChange(newWidth) - op.buf.OnWidthChange(newWidth) - }) - go op.ioloop() - return op -} - -func (o *Operation) SetPrompt(s string) { - o.buf.SetPrompt(s) -} - -func (o *Operation) SetMaskRune(r rune) { - o.buf.SetMask(r) -} - -func (o *Operation) ioloop() { - for { - keepInSearchMode := false - keepInCompleteMode := false - r := o.t.ReadRune() - if o.cfg.FuncFilterInputRune != nil { - var process bool - r, process = o.cfg.FuncFilterInputRune(r) - if !process { - o.buf.Refresh(nil) // to refresh the line - continue // ignore this rune - } - } - - if r == 0 { // io.EOF - if o.buf.Len() == 0 { - o.buf.Clean() - select { - case o.errchan <- io.EOF: - } - break - } else { - // if stdin got io.EOF and there is something left in buffer, - // let's flush them by sending CharEnter. - // And we will got io.EOF int next loop. - r = CharEnter - } - } - isUpdateHistory := true - - if o.IsInCompleteSelectMode() { - keepInCompleteMode = o.HandleCompleteSelect(r) - if keepInCompleteMode { - continue - } - - o.buf.Refresh(nil) - switch r { - case CharEnter, CharCtrlJ: - o.history.Update(o.buf.Runes(), false) - fallthrough - case CharInterrupt: - o.t.KickRead() - fallthrough - case CharBell: - continue - } - } - - if o.IsEnableVimMode() { - r = o.HandleVim(r, o.t.ReadRune) - if r == 0 { - continue - } - } - - switch r { - case CharBell: - if o.IsSearchMode() { - o.ExitSearchMode(true) - o.buf.Refresh(nil) - } - if o.IsInCompleteMode() { - o.ExitCompleteMode(true) - o.buf.Refresh(nil) - } - case CharTab: - if o.cfg.AutoComplete == nil { - o.t.Bell() - break - } - if o.OnComplete() { - keepInCompleteMode = true - } else { - o.t.Bell() - break - } - - case CharBckSearch: - if !o.SearchMode(S_DIR_BCK) { - o.t.Bell() - break - } - keepInSearchMode = true - case CharCtrlU: - o.buf.KillFront() - case CharFwdSearch: - if !o.SearchMode(S_DIR_FWD) { - o.t.Bell() - break - } - keepInSearchMode = true - case CharKill: - o.buf.Kill() - keepInCompleteMode = true - case MetaForward: - o.buf.MoveToNextWord() - case CharTranspose: - o.buf.Transpose() - case MetaBackward: - o.buf.MoveToPrevWord() - case MetaDelete: - o.buf.DeleteWord() - case CharLineStart: - o.buf.MoveToLineStart() - case CharLineEnd: - o.buf.MoveToLineEnd() - case CharBackspace, CharCtrlH: - if o.IsSearchMode() { - o.SearchBackspace() - keepInSearchMode = true - break - } - - if o.buf.Len() == 0 { - o.t.Bell() - break - } - o.buf.Backspace() - if o.IsInCompleteMode() { - o.OnComplete() - } - case CharCtrlZ: - o.buf.Clean() - o.t.SleepToResume() - o.Refresh() - case CharCtrlL: - ClearScreen(o.w) - o.Refresh() - case MetaBackspace, CharCtrlW: - o.buf.BackEscapeWord() - case CharEnter, CharCtrlJ: - if o.IsSearchMode() { - o.ExitSearchMode(false) - } - o.buf.MoveToLineEnd() - var data []rune - if !o.cfg.UniqueEditLine { - o.buf.WriteRune('\n') - data = o.buf.Reset() - data = data[:len(data)-1] // trim \n - } else { - o.buf.Clean() - data = o.buf.Reset() - } - o.outchan <- data - if !o.cfg.DisableAutoSaveHistory { - // ignore IO error - _ = o.history.New(data) - } else { - isUpdateHistory = false - } - case CharBackward: - o.buf.MoveBackward() - case CharForward: - o.buf.MoveForward() - case CharPrev: - buf := o.history.Prev() - if buf != nil { - o.buf.Set(buf) - } else { - o.t.Bell() - } - case CharNext: - buf, ok := o.history.Next() - if ok { - o.buf.Set(buf) - } else { - o.t.Bell() - } - case CharDelete: - if o.buf.Len() > 0 || !o.IsNormalMode() { - o.t.KickRead() - if !o.buf.Delete() { - o.t.Bell() - } - break - } - - // treat as EOF - if !o.cfg.UniqueEditLine { - o.buf.WriteString(o.cfg.EOFPrompt + "\n") - } - o.buf.Reset() - isUpdateHistory = false - o.history.Revert() - o.errchan <- io.EOF - if o.cfg.UniqueEditLine { - o.buf.Clean() - } - case CharInterrupt: - if o.IsSearchMode() { - o.t.KickRead() - o.ExitSearchMode(true) - break - } - if o.IsInCompleteMode() { - o.t.KickRead() - o.ExitCompleteMode(true) - o.buf.Refresh(nil) - break - } - o.buf.MoveToLineEnd() - o.buf.Refresh(nil) - hint := o.cfg.InterruptPrompt + "\n" - if !o.cfg.UniqueEditLine { - o.buf.WriteString(hint) - } - remain := o.buf.Reset() - if !o.cfg.UniqueEditLine { - remain = remain[:len(remain)-len([]rune(hint))] - } - isUpdateHistory = false - o.history.Revert() - o.errchan <- &InterruptError{remain} - default: - if o.IsSearchMode() { - o.SearchChar(r) - keepInSearchMode = true - break - } - o.buf.WriteRune(r) - if o.IsInCompleteMode() { - o.OnComplete() - keepInCompleteMode = true - } - } - - if o.cfg.Listener != nil { - newLine, newPos, ok := o.cfg.Listener.OnChange(o.buf.Runes(), o.buf.Pos(), r) - if ok { - o.buf.SetWithIdx(newPos, newLine) - } - } - - if !keepInSearchMode && o.IsSearchMode() { - o.ExitSearchMode(false) - o.buf.Refresh(nil) - } else if o.IsInCompleteMode() { - if !keepInCompleteMode { - o.ExitCompleteMode(false) - o.Refresh() - } else { - o.buf.Refresh(nil) - o.CompleteRefresh() - } - } - if isUpdateHistory && !o.IsSearchMode() { - // it will cause null history - o.history.Update(o.buf.Runes(), false) - } - } -} - -func (o *Operation) Stderr() io.Writer { - return &wrapWriter{target: o.cfg.Stderr, r: o, t: o.t} -} - -func (o *Operation) Stdout() io.Writer { - return &wrapWriter{target: o.cfg.Stdout, r: o, t: o.t} -} - -func (o *Operation) String() (string, error) { - r, err := o.Runes() - return string(r), err -} - -func (o *Operation) Runes() ([]rune, error) { - o.t.EnterRawMode() - defer o.t.ExitRawMode() - - if o.cfg.Listener != nil { - o.cfg.Listener.OnChange(nil, 0, 0) - } - - o.buf.Refresh(nil) // print prompt - o.t.KickRead() - select { - case r := <-o.outchan: - return r, nil - case err := <-o.errchan: - if e, ok := err.(*InterruptError); ok { - return e.Line, ErrInterrupt - } - return nil, err - } -} - -func (o *Operation) PasswordEx(prompt string, l Listener) ([]byte, error) { - cfg := o.GenPasswordConfig() - cfg.Prompt = prompt - cfg.Listener = l - return o.PasswordWithConfig(cfg) -} - -func (o *Operation) GenPasswordConfig() *Config { - return o.opPassword.PasswordConfig() -} - -func (o *Operation) PasswordWithConfig(cfg *Config) ([]byte, error) { - if err := o.opPassword.EnterPasswordMode(cfg); err != nil { - return nil, err - } - defer o.opPassword.ExitPasswordMode() - return o.Slice() -} - -func (o *Operation) Password(prompt string) ([]byte, error) { - return o.PasswordEx(prompt, nil) -} - -func (o *Operation) SetTitle(t string) { - o.w.Write([]byte("\033[2;" + t + "\007")) -} - -func (o *Operation) Slice() ([]byte, error) { - r, err := o.Runes() - if err != nil { - return nil, err - } - return []byte(string(r)), nil -} - -func (o *Operation) Close() { - o.history.Close() -} - -func (o *Operation) SetHistoryPath(path string) { - if o.history != nil { - o.history.Close() - } - o.cfg.HistoryFile = path - o.history = newOpHistory(o.cfg) -} - -func (o *Operation) IsNormalMode() bool { - return !o.IsInCompleteMode() && !o.IsSearchMode() -} - -func (op *Operation) SetConfig(cfg *Config) (*Config, error) { - if op.cfg == cfg { - return op.cfg, nil - } - if err := cfg.Init(); err != nil { - return op.cfg, err - } - old := op.cfg - op.cfg = cfg - op.SetPrompt(cfg.Prompt) - op.SetMaskRune(cfg.MaskRune) - op.buf.SetConfig(cfg) - width := op.cfg.FuncGetWidth() - - if cfg.opHistory == nil { - op.SetHistoryPath(cfg.HistoryFile) - cfg.opHistory = op.history - cfg.opSearch = newOpSearch(op.buf.w, op.buf, op.history, cfg, width) - } - op.history = cfg.opHistory - - // SetHistoryPath will close opHistory which already exists - // so if we use it next time, we need to reopen it by `InitHistory()` - op.history.Init() - - if op.cfg.AutoComplete != nil { - op.opCompleter = newOpCompleter(op.buf.w, op, width) - } - - op.opSearch = cfg.opSearch - return old, nil -} - -func (o *Operation) ResetHistory() { - o.history.Reset() -} - -// if err is not nil, it just mean it fail to write to file -// other things goes fine. -func (o *Operation) SaveHistory(content string) error { - return o.history.New([]rune(content)) -} - -func (o *Operation) Refresh() { - if o.t.IsReading() { - o.buf.Refresh(nil) - } -} - -func (o *Operation) Clean() { - o.buf.Clean() -} - -func FuncListener(f func(line []rune, pos int, key rune) (newLine []rune, newPos int, ok bool)) Listener { - return &DumpListener{f: f} -} - -type DumpListener struct { - f func(line []rune, pos int, key rune) (newLine []rune, newPos int, ok bool) -} - -func (d *DumpListener) OnChange(line []rune, pos int, key rune) (newLine []rune, newPos int, ok bool) { - return d.f(line, pos, key) -} - -type Listener interface { - OnChange(line []rune, pos int, key rune) (newLine []rune, newPos int, ok bool) -} diff --git a/vendor/github.com/chzyer/readline/password.go b/vendor/github.com/chzyer/readline/password.go deleted file mode 100644 index 4b07379..0000000 --- a/vendor/github.com/chzyer/readline/password.go +++ /dev/null @@ -1,32 +0,0 @@ -package readline - -type opPassword struct { - o *Operation - backupCfg *Config -} - -func newOpPassword(o *Operation) *opPassword { - return &opPassword{o: o} -} - -func (o *opPassword) ExitPasswordMode() { - o.o.SetConfig(o.backupCfg) - o.backupCfg = nil -} - -func (o *opPassword) EnterPasswordMode(cfg *Config) (err error) { - o.backupCfg, err = o.o.SetConfig(cfg) - return -} - -func (o *opPassword) PasswordConfig() *Config { - return &Config{ - EnableMask: true, - InterruptPrompt: "\n", - EOFPrompt: "\n", - HistoryLimit: -1, - - Stdout: o.o.cfg.Stdout, - Stderr: o.o.cfg.Stderr, - } -} diff --git a/vendor/github.com/chzyer/readline/rawreader_windows.go b/vendor/github.com/chzyer/readline/rawreader_windows.go deleted file mode 100644 index 073ef15..0000000 --- a/vendor/github.com/chzyer/readline/rawreader_windows.go +++ /dev/null @@ -1,125 +0,0 @@ -// +build windows - -package readline - -import "unsafe" - -const ( - VK_CANCEL = 0x03 - VK_BACK = 0x08 - VK_TAB = 0x09 - VK_RETURN = 0x0D - VK_SHIFT = 0x10 - VK_CONTROL = 0x11 - VK_MENU = 0x12 - VK_ESCAPE = 0x1B - VK_LEFT = 0x25 - VK_UP = 0x26 - VK_RIGHT = 0x27 - VK_DOWN = 0x28 - VK_DELETE = 0x2E - VK_LSHIFT = 0xA0 - VK_RSHIFT = 0xA1 - VK_LCONTROL = 0xA2 - VK_RCONTROL = 0xA3 -) - -// RawReader translate input record to ANSI escape sequence. -// To provides same behavior as unix terminal. -type RawReader struct { - ctrlKey bool - altKey bool -} - -func NewRawReader() *RawReader { - r := new(RawReader) - return r -} - -// only process one action in one read -func (r *RawReader) Read(buf []byte) (int, error) { - ir := new(_INPUT_RECORD) - var read int - var err error -next: - err = kernel.ReadConsoleInputW(stdin, - uintptr(unsafe.Pointer(ir)), - 1, - uintptr(unsafe.Pointer(&read)), - ) - if err != nil { - return 0, err - } - if ir.EventType != EVENT_KEY { - goto next - } - ker := (*_KEY_EVENT_RECORD)(unsafe.Pointer(&ir.Event[0])) - if ker.bKeyDown == 0 { // keyup - if r.ctrlKey || r.altKey { - switch ker.wVirtualKeyCode { - case VK_RCONTROL, VK_LCONTROL: - r.ctrlKey = false - case VK_MENU: //alt - r.altKey = false - } - } - goto next - } - - if ker.unicodeChar == 0 { - var target rune - switch ker.wVirtualKeyCode { - case VK_RCONTROL, VK_LCONTROL: - r.ctrlKey = true - case VK_MENU: //alt - r.altKey = true - case VK_LEFT: - target = CharBackward - case VK_RIGHT: - target = CharForward - case VK_UP: - target = CharPrev - case VK_DOWN: - target = CharNext - } - if target != 0 { - return r.write(buf, target) - } - goto next - } - char := rune(ker.unicodeChar) - if r.ctrlKey { - switch char { - case 'A': - char = CharLineStart - case 'E': - char = CharLineEnd - case 'R': - char = CharBckSearch - case 'S': - char = CharFwdSearch - } - } else if r.altKey { - switch char { - case VK_BACK: - char = CharBackspace - } - return r.writeEsc(buf, char) - } - return r.write(buf, char) -} - -func (r *RawReader) writeEsc(b []byte, char rune) (int, error) { - b[0] = '\033' - n := copy(b[1:], []byte(string(char))) - return n + 1, nil -} - -func (r *RawReader) write(b []byte, char rune) (int, error) { - n := copy(b, []byte(string(char))) - return n, nil -} - -func (r *RawReader) Close() error { - return nil -} diff --git a/vendor/github.com/chzyer/readline/readline.go b/vendor/github.com/chzyer/readline/readline.go deleted file mode 100644 index b0242f7..0000000 --- a/vendor/github.com/chzyer/readline/readline.go +++ /dev/null @@ -1,288 +0,0 @@ -// Readline is a pure go implementation for GNU-Readline kind library. -// -// example: -// rl, err := readline.New("> ") -// if err != nil { -// panic(err) -// } -// defer rl.Close() -// -// for { -// line, err := rl.Readline() -// if err != nil { // io.EOF -// break -// } -// println(line) -// } -// -package readline - -import "io" - -type Instance struct { - Config *Config - Terminal *Terminal - Operation *Operation -} - -type Config struct { - // prompt supports ANSI escape sequence, so we can color some characters even in windows - Prompt string - - // readline will persist historys to file where HistoryFile specified - HistoryFile string - // specify the max length of historys, it's 500 by default, set it to -1 to disable history - HistoryLimit int - DisableAutoSaveHistory bool - // enable case-insensitive history searching - HistorySearchFold bool - - // AutoCompleter will called once user press TAB - AutoComplete AutoCompleter - - // Any key press will pass to Listener - // NOTE: Listener will be triggered by (nil, 0, 0) immediately - Listener Listener - - // If VimMode is true, readline will in vim.insert mode by default - VimMode bool - - InterruptPrompt string - EOFPrompt string - - FuncGetWidth func() int - - Stdin io.Reader - Stdout io.Writer - Stderr io.Writer - - EnableMask bool - MaskRune rune - - // erase the editing line after user submited it - // it use in IM usually. - UniqueEditLine bool - - // filter input runes (may be used to disable CtrlZ or for translating some keys to different actions) - // -> output = new (translated) rune and true/false if continue with processing this one - FuncFilterInputRune func(rune) (rune, bool) - - // force use interactive even stdout is not a tty - FuncIsTerminal func() bool - FuncMakeRaw func() error - FuncExitRaw func() error - FuncOnWidthChanged func(func()) - ForceUseInteractive bool - - // private fields - inited bool - opHistory *opHistory - opSearch *opSearch -} - -func (c *Config) useInteractive() bool { - if c.ForceUseInteractive { - return true - } - return c.FuncIsTerminal() -} - -func (c *Config) Init() error { - if c.inited { - return nil - } - c.inited = true - if c.Stdin == nil { - c.Stdin = NewCancelableStdin(Stdin) - } - if c.Stdout == nil { - c.Stdout = Stdout - } - if c.Stderr == nil { - c.Stderr = Stderr - } - if c.HistoryLimit == 0 { - c.HistoryLimit = 500 - } - - if c.InterruptPrompt == "" { - c.InterruptPrompt = "^C" - } else if c.InterruptPrompt == "\n" { - c.InterruptPrompt = "" - } - if c.EOFPrompt == "" { - c.EOFPrompt = "^D" - } else if c.EOFPrompt == "\n" { - c.EOFPrompt = "" - } - - if c.AutoComplete == nil { - c.AutoComplete = &TabCompleter{} - } - if c.FuncGetWidth == nil { - c.FuncGetWidth = GetScreenWidth - } - if c.FuncIsTerminal == nil { - c.FuncIsTerminal = DefaultIsTerminal - } - rm := new(RawMode) - if c.FuncMakeRaw == nil { - c.FuncMakeRaw = rm.Enter - } - if c.FuncExitRaw == nil { - c.FuncExitRaw = rm.Exit - } - if c.FuncOnWidthChanged == nil { - c.FuncOnWidthChanged = DefaultOnWidthChanged - } - - return nil -} - -func (c Config) Clone() *Config { - c.opHistory = nil - c.opSearch = nil - return &c -} - -func (c *Config) SetListener(f func(line []rune, pos int, key rune) (newLine []rune, newPos int, ok bool)) { - c.Listener = FuncListener(f) -} - -func NewEx(cfg *Config) (*Instance, error) { - t, err := NewTerminal(cfg) - if err != nil { - return nil, err - } - rl := t.Readline() - return &Instance{ - Config: cfg, - Terminal: t, - Operation: rl, - }, nil -} - -func New(prompt string) (*Instance, error) { - return NewEx(&Config{Prompt: prompt}) -} - -func (i *Instance) ResetHistory() { - i.Operation.ResetHistory() -} - -func (i *Instance) SetPrompt(s string) { - i.Operation.SetPrompt(s) -} - -func (i *Instance) SetMaskRune(r rune) { - i.Operation.SetMaskRune(r) -} - -// change history persistence in runtime -func (i *Instance) SetHistoryPath(p string) { - i.Operation.SetHistoryPath(p) -} - -// readline will refresh automatic when write through Stdout() -func (i *Instance) Stdout() io.Writer { - return i.Operation.Stdout() -} - -// readline will refresh automatic when write through Stdout() -func (i *Instance) Stderr() io.Writer { - return i.Operation.Stderr() -} - -// switch VimMode in runtime -func (i *Instance) SetVimMode(on bool) { - i.Operation.SetVimMode(on) -} - -func (i *Instance) IsVimMode() bool { - return i.Operation.IsEnableVimMode() -} - -func (i *Instance) GenPasswordConfig() *Config { - return i.Operation.GenPasswordConfig() -} - -// we can generate a config by `i.GenPasswordConfig()` -func (i *Instance) ReadPasswordWithConfig(cfg *Config) ([]byte, error) { - return i.Operation.PasswordWithConfig(cfg) -} - -func (i *Instance) ReadPasswordEx(prompt string, l Listener) ([]byte, error) { - return i.Operation.PasswordEx(prompt, l) -} - -func (i *Instance) ReadPassword(prompt string) ([]byte, error) { - return i.Operation.Password(prompt) -} - -type Result struct { - Line string - Error error -} - -func (l *Result) CanContinue() bool { - return len(l.Line) != 0 && l.Error == ErrInterrupt -} - -func (l *Result) CanBreak() bool { - return !l.CanContinue() && l.Error != nil -} - -func (i *Instance) Line() *Result { - ret, err := i.Readline() - return &Result{ret, err} -} - -// err is one of (nil, io.EOF, readline.ErrInterrupt) -func (i *Instance) Readline() (string, error) { - return i.Operation.String() -} - -func (i *Instance) ReadlineWithDefault(what string) (string, error) { - i.Operation.SetBuffer(what) - return i.Operation.String() -} - -func (i *Instance) SaveHistory(content string) error { - return i.Operation.SaveHistory(content) -} - -// same as readline -func (i *Instance) ReadSlice() ([]byte, error) { - return i.Operation.Slice() -} - -// we must make sure that call Close() before process exit. -func (i *Instance) Close() error { - if err := i.Terminal.Close(); err != nil { - return err - } - i.Operation.Close() - return nil -} -func (i *Instance) Clean() { - i.Operation.Clean() -} - -func (i *Instance) Write(b []byte) (int, error) { - return i.Stdout().Write(b) -} - -func (i *Instance) SetConfig(cfg *Config) *Config { - if i.Config == cfg { - return cfg - } - old := i.Config - i.Config = cfg - i.Operation.SetConfig(cfg) - i.Terminal.SetConfig(cfg) - return old -} - -func (i *Instance) Refresh() { - i.Operation.Refresh() -} diff --git a/vendor/github.com/chzyer/readline/remote.go b/vendor/github.com/chzyer/readline/remote.go deleted file mode 100644 index db77ae8..0000000 --- a/vendor/github.com/chzyer/readline/remote.go +++ /dev/null @@ -1,474 +0,0 @@ -package readline - -import ( - "bufio" - "bytes" - "encoding/binary" - "fmt" - "io" - "net" - "os" - "sync" - "sync/atomic" -) - -type MsgType int16 - -const ( - T_DATA = MsgType(iota) - T_WIDTH - T_WIDTH_REPORT - T_ISTTY_REPORT - T_RAW - T_ERAW // exit raw - T_EOF -) - -type RemoteSvr struct { - eof int32 - closed int32 - width int32 - reciveChan chan struct{} - writeChan chan *writeCtx - conn net.Conn - isTerminal bool - funcWidthChan func() - stopChan chan struct{} - - dataBufM sync.Mutex - dataBuf bytes.Buffer -} - -type writeReply struct { - n int - err error -} - -type writeCtx struct { - msg *Message - reply chan *writeReply -} - -func newWriteCtx(msg *Message) *writeCtx { - return &writeCtx{ - msg: msg, - reply: make(chan *writeReply), - } -} - -func NewRemoteSvr(conn net.Conn) (*RemoteSvr, error) { - rs := &RemoteSvr{ - width: -1, - conn: conn, - writeChan: make(chan *writeCtx), - reciveChan: make(chan struct{}), - stopChan: make(chan struct{}), - } - buf := bufio.NewReader(rs.conn) - - if err := rs.init(buf); err != nil { - return nil, err - } - - go rs.readLoop(buf) - go rs.writeLoop() - return rs, nil -} - -func (r *RemoteSvr) init(buf *bufio.Reader) error { - m, err := ReadMessage(buf) - if err != nil { - return err - } - // receive isTerminal - if m.Type != T_ISTTY_REPORT { - return fmt.Errorf("unexpected init message") - } - r.GotIsTerminal(m.Data) - - // receive width - m, err = ReadMessage(buf) - if err != nil { - return err - } - if m.Type != T_WIDTH_REPORT { - return fmt.Errorf("unexpected init message") - } - r.GotReportWidth(m.Data) - - return nil -} - -func (r *RemoteSvr) HandleConfig(cfg *Config) { - cfg.Stderr = r - cfg.Stdout = r - cfg.Stdin = r - cfg.FuncExitRaw = r.ExitRawMode - cfg.FuncIsTerminal = r.IsTerminal - cfg.FuncMakeRaw = r.EnterRawMode - cfg.FuncExitRaw = r.ExitRawMode - cfg.FuncGetWidth = r.GetWidth - cfg.FuncOnWidthChanged = func(f func()) { - r.funcWidthChan = f - } -} - -func (r *RemoteSvr) IsTerminal() bool { - return r.isTerminal -} - -func (r *RemoteSvr) checkEOF() error { - if atomic.LoadInt32(&r.eof) == 1 { - return io.EOF - } - return nil -} - -func (r *RemoteSvr) Read(b []byte) (int, error) { - r.dataBufM.Lock() - n, err := r.dataBuf.Read(b) - r.dataBufM.Unlock() - if n == 0 { - if err := r.checkEOF(); err != nil { - return 0, err - } - } - - if n == 0 && err == io.EOF { - <-r.reciveChan - r.dataBufM.Lock() - n, err = r.dataBuf.Read(b) - r.dataBufM.Unlock() - } - if n == 0 { - if err := r.checkEOF(); err != nil { - return 0, err - } - } - - return n, err -} - -func (r *RemoteSvr) writeMsg(m *Message) error { - ctx := newWriteCtx(m) - r.writeChan <- ctx - reply := <-ctx.reply - return reply.err -} - -func (r *RemoteSvr) Write(b []byte) (int, error) { - ctx := newWriteCtx(NewMessage(T_DATA, b)) - r.writeChan <- ctx - reply := <-ctx.reply - return reply.n, reply.err -} - -func (r *RemoteSvr) EnterRawMode() error { - return r.writeMsg(NewMessage(T_RAW, nil)) -} - -func (r *RemoteSvr) ExitRawMode() error { - return r.writeMsg(NewMessage(T_ERAW, nil)) -} - -func (r *RemoteSvr) writeLoop() { - defer r.Close() - -loop: - for { - select { - case ctx, ok := <-r.writeChan: - if !ok { - break - } - n, err := ctx.msg.WriteTo(r.conn) - ctx.reply <- &writeReply{n, err} - case <-r.stopChan: - break loop - } - } -} - -func (r *RemoteSvr) Close() { - if atomic.CompareAndSwapInt32(&r.closed, 0, 1) { - close(r.stopChan) - r.conn.Close() - } -} - -func (r *RemoteSvr) readLoop(buf *bufio.Reader) { - defer r.Close() - for { - m, err := ReadMessage(buf) - if err != nil { - break - } - switch m.Type { - case T_EOF: - atomic.StoreInt32(&r.eof, 1) - select { - case r.reciveChan <- struct{}{}: - default: - } - case T_DATA: - r.dataBufM.Lock() - r.dataBuf.Write(m.Data) - r.dataBufM.Unlock() - select { - case r.reciveChan <- struct{}{}: - default: - } - case T_WIDTH_REPORT: - r.GotReportWidth(m.Data) - case T_ISTTY_REPORT: - r.GotIsTerminal(m.Data) - } - } -} - -func (r *RemoteSvr) GotIsTerminal(data []byte) { - if binary.BigEndian.Uint16(data) == 0 { - r.isTerminal = false - } else { - r.isTerminal = true - } -} - -func (r *RemoteSvr) GotReportWidth(data []byte) { - atomic.StoreInt32(&r.width, int32(binary.BigEndian.Uint16(data))) - if r.funcWidthChan != nil { - r.funcWidthChan() - } -} - -func (r *RemoteSvr) GetWidth() int { - return int(atomic.LoadInt32(&r.width)) -} - -// ----------------------------------------------------------------------------- - -type Message struct { - Type MsgType - Data []byte -} - -func ReadMessage(r io.Reader) (*Message, error) { - m := new(Message) - var length int32 - if err := binary.Read(r, binary.BigEndian, &length); err != nil { - return nil, err - } - if err := binary.Read(r, binary.BigEndian, &m.Type); err != nil { - return nil, err - } - m.Data = make([]byte, int(length)-2) - if _, err := io.ReadFull(r, m.Data); err != nil { - return nil, err - } - return m, nil -} - -func NewMessage(t MsgType, data []byte) *Message { - return &Message{t, data} -} - -func (m *Message) WriteTo(w io.Writer) (int, error) { - buf := bytes.NewBuffer(make([]byte, 0, len(m.Data)+2+4)) - binary.Write(buf, binary.BigEndian, int32(len(m.Data)+2)) - binary.Write(buf, binary.BigEndian, m.Type) - buf.Write(m.Data) - n, err := buf.WriteTo(w) - return int(n), err -} - -// ----------------------------------------------------------------------------- - -type RemoteCli struct { - conn net.Conn - raw RawMode - receiveChan chan struct{} - inited int32 - isTerminal *bool - - data bytes.Buffer - dataM sync.Mutex -} - -func NewRemoteCli(conn net.Conn) (*RemoteCli, error) { - r := &RemoteCli{ - conn: conn, - receiveChan: make(chan struct{}), - } - return r, nil -} - -func (r *RemoteCli) MarkIsTerminal(is bool) { - r.isTerminal = &is -} - -func (r *RemoteCli) init() error { - if !atomic.CompareAndSwapInt32(&r.inited, 0, 1) { - return nil - } - - if err := r.reportIsTerminal(); err != nil { - return err - } - - if err := r.reportWidth(); err != nil { - return err - } - - // register sig for width changed - DefaultOnWidthChanged(func() { - r.reportWidth() - }) - return nil -} - -func (r *RemoteCli) writeMsg(m *Message) error { - r.dataM.Lock() - _, err := m.WriteTo(r.conn) - r.dataM.Unlock() - return err -} - -func (r *RemoteCli) Write(b []byte) (int, error) { - m := NewMessage(T_DATA, b) - r.dataM.Lock() - _, err := m.WriteTo(r.conn) - r.dataM.Unlock() - return len(b), err -} - -func (r *RemoteCli) reportWidth() error { - screenWidth := GetScreenWidth() - data := make([]byte, 2) - binary.BigEndian.PutUint16(data, uint16(screenWidth)) - msg := NewMessage(T_WIDTH_REPORT, data) - - if err := r.writeMsg(msg); err != nil { - return err - } - return nil -} - -func (r *RemoteCli) reportIsTerminal() error { - var isTerminal bool - if r.isTerminal != nil { - isTerminal = *r.isTerminal - } else { - isTerminal = DefaultIsTerminal() - } - data := make([]byte, 2) - if isTerminal { - binary.BigEndian.PutUint16(data, 1) - } else { - binary.BigEndian.PutUint16(data, 0) - } - msg := NewMessage(T_ISTTY_REPORT, data) - if err := r.writeMsg(msg); err != nil { - return err - } - return nil -} - -func (r *RemoteCli) readLoop() { - buf := bufio.NewReader(r.conn) - for { - msg, err := ReadMessage(buf) - if err != nil { - break - } - switch msg.Type { - case T_ERAW: - r.raw.Exit() - case T_RAW: - r.raw.Enter() - case T_DATA: - os.Stdout.Write(msg.Data) - } - } -} - -func (r *RemoteCli) ServeBy(source io.Reader) error { - if err := r.init(); err != nil { - return err - } - - go func() { - defer r.Close() - for { - n, _ := io.Copy(r, source) - if n == 0 { - break - } - } - }() - defer r.raw.Exit() - r.readLoop() - return nil -} - -func (r *RemoteCli) Close() { - r.writeMsg(NewMessage(T_EOF, nil)) -} - -func (r *RemoteCli) Serve() error { - return r.ServeBy(os.Stdin) -} - -func ListenRemote(n, addr string, cfg *Config, h func(*Instance), onListen ...func(net.Listener) error) error { - ln, err := net.Listen(n, addr) - if err != nil { - return err - } - if len(onListen) > 0 { - if err := onListen[0](ln); err != nil { - return err - } - } - for { - conn, err := ln.Accept() - if err != nil { - break - } - go func() { - defer conn.Close() - rl, err := HandleConn(*cfg, conn) - if err != nil { - return - } - h(rl) - }() - } - return nil -} - -func HandleConn(cfg Config, conn net.Conn) (*Instance, error) { - r, err := NewRemoteSvr(conn) - if err != nil { - return nil, err - } - r.HandleConfig(&cfg) - - rl, err := NewEx(&cfg) - if err != nil { - return nil, err - } - return rl, nil -} - -func DialRemote(n, addr string) error { - conn, err := net.Dial(n, addr) - if err != nil { - return err - } - defer conn.Close() - - cli, err := NewRemoteCli(conn) - if err != nil { - return err - } - return cli.Serve() -} diff --git a/vendor/github.com/chzyer/readline/runebuf.go b/vendor/github.com/chzyer/readline/runebuf.go deleted file mode 100644 index 1b2a5d0..0000000 --- a/vendor/github.com/chzyer/readline/runebuf.go +++ /dev/null @@ -1,572 +0,0 @@ -package readline - -import ( - "bufio" - "bytes" - "io" - "strings" - "sync" -) - -type runeBufferBck struct { - buf []rune - idx int -} - -type RuneBuffer struct { - buf []rune - idx int - prompt []rune - w io.Writer - - hadClean bool - interactive bool - cfg *Config - - width int - - bck *runeBufferBck - - offset string - - sync.Mutex -} - -func (r *RuneBuffer) OnWidthChange(newWidth int) { - r.Lock() - r.width = newWidth - r.Unlock() -} - -func (r *RuneBuffer) Backup() { - r.Lock() - r.bck = &runeBufferBck{r.buf, r.idx} - r.Unlock() -} - -func (r *RuneBuffer) Restore() { - r.Refresh(func() { - if r.bck == nil { - return - } - r.buf = r.bck.buf - r.idx = r.bck.idx - }) -} - -func NewRuneBuffer(w io.Writer, prompt string, cfg *Config, width int) *RuneBuffer { - rb := &RuneBuffer{ - w: w, - interactive: cfg.useInteractive(), - cfg: cfg, - width: width, - } - rb.SetPrompt(prompt) - return rb -} - -func (r *RuneBuffer) SetConfig(cfg *Config) { - r.Lock() - r.cfg = cfg - r.interactive = cfg.useInteractive() - r.Unlock() -} - -func (r *RuneBuffer) SetMask(m rune) { - r.Lock() - r.cfg.MaskRune = m - r.Unlock() -} - -func (r *RuneBuffer) CurrentWidth(x int) int { - r.Lock() - defer r.Unlock() - return runes.WidthAll(r.buf[:x]) -} - -func (r *RuneBuffer) PromptLen() int { - r.Lock() - width := r.promptLen() - r.Unlock() - return width -} - -func (r *RuneBuffer) promptLen() int { - return runes.WidthAll(runes.ColorFilter(r.prompt)) -} - -func (r *RuneBuffer) RuneSlice(i int) []rune { - r.Lock() - defer r.Unlock() - - if i > 0 { - rs := make([]rune, i) - copy(rs, r.buf[r.idx:r.idx+i]) - return rs - } - rs := make([]rune, -i) - copy(rs, r.buf[r.idx+i:r.idx]) - return rs -} - -func (r *RuneBuffer) Runes() []rune { - r.Lock() - newr := make([]rune, len(r.buf)) - copy(newr, r.buf) - r.Unlock() - return newr -} - -func (r *RuneBuffer) Pos() int { - r.Lock() - defer r.Unlock() - return r.idx -} - -func (r *RuneBuffer) Len() int { - r.Lock() - defer r.Unlock() - return len(r.buf) -} - -func (r *RuneBuffer) MoveToLineStart() { - r.Refresh(func() { - if r.idx == 0 { - return - } - r.idx = 0 - }) -} - -func (r *RuneBuffer) MoveBackward() { - r.Refresh(func() { - if r.idx == 0 { - return - } - r.idx-- - }) -} - -func (r *RuneBuffer) WriteString(s string) { - r.WriteRunes([]rune(s)) -} - -func (r *RuneBuffer) WriteRune(s rune) { - r.WriteRunes([]rune{s}) -} - -func (r *RuneBuffer) WriteRunes(s []rune) { - r.Refresh(func() { - tail := append(s, r.buf[r.idx:]...) - r.buf = append(r.buf[:r.idx], tail...) - r.idx += len(s) - }) -} - -func (r *RuneBuffer) MoveForward() { - r.Refresh(func() { - if r.idx == len(r.buf) { - return - } - r.idx++ - }) -} - -func (r *RuneBuffer) IsCursorInEnd() bool { - r.Lock() - defer r.Unlock() - return r.idx == len(r.buf) -} - -func (r *RuneBuffer) Replace(ch rune) { - r.Refresh(func() { - r.buf[r.idx] = ch - }) -} - -func (r *RuneBuffer) Erase() { - r.Refresh(func() { - r.idx = 0 - r.buf = r.buf[:0] - }) -} - -func (r *RuneBuffer) Delete() (success bool) { - r.Refresh(func() { - if r.idx == len(r.buf) { - return - } - r.buf = append(r.buf[:r.idx], r.buf[r.idx+1:]...) - success = true - }) - return -} - -func (r *RuneBuffer) DeleteWord() { - if r.idx == len(r.buf) { - return - } - init := r.idx - for init < len(r.buf) && IsWordBreak(r.buf[init]) { - init++ - } - for i := init + 1; i < len(r.buf); i++ { - if !IsWordBreak(r.buf[i]) && IsWordBreak(r.buf[i-1]) { - r.Refresh(func() { - r.buf = append(r.buf[:r.idx], r.buf[i-1:]...) - }) - return - } - } - r.Kill() -} - -func (r *RuneBuffer) MoveToPrevWord() (success bool) { - r.Refresh(func() { - if r.idx == 0 { - return - } - - for i := r.idx - 1; i > 0; i-- { - if !IsWordBreak(r.buf[i]) && IsWordBreak(r.buf[i-1]) { - r.idx = i - success = true - return - } - } - r.idx = 0 - success = true - }) - return -} - -func (r *RuneBuffer) KillFront() { - r.Refresh(func() { - if r.idx == 0 { - return - } - - length := len(r.buf) - r.idx - copy(r.buf[:length], r.buf[r.idx:]) - r.idx = 0 - r.buf = r.buf[:length] - }) -} - -func (r *RuneBuffer) Kill() { - r.Refresh(func() { - r.buf = r.buf[:r.idx] - }) -} - -func (r *RuneBuffer) Transpose() { - r.Refresh(func() { - if len(r.buf) == 1 { - r.idx++ - } - - if len(r.buf) < 2 { - return - } - - if r.idx == 0 { - r.idx = 1 - } else if r.idx >= len(r.buf) { - r.idx = len(r.buf) - 1 - } - r.buf[r.idx], r.buf[r.idx-1] = r.buf[r.idx-1], r.buf[r.idx] - r.idx++ - }) -} - -func (r *RuneBuffer) MoveToNextWord() { - r.Refresh(func() { - for i := r.idx + 1; i < len(r.buf); i++ { - if !IsWordBreak(r.buf[i]) && IsWordBreak(r.buf[i-1]) { - r.idx = i - return - } - } - - r.idx = len(r.buf) - }) -} - -func (r *RuneBuffer) MoveToEndWord() { - r.Refresh(func() { - // already at the end, so do nothing - if r.idx == len(r.buf) { - return - } - // if we are at the end of a word already, go to next - if !IsWordBreak(r.buf[r.idx]) && IsWordBreak(r.buf[r.idx+1]) { - r.idx++ - } - - // keep going until at the end of a word - for i := r.idx + 1; i < len(r.buf); i++ { - if IsWordBreak(r.buf[i]) && !IsWordBreak(r.buf[i-1]) { - r.idx = i - 1 - return - } - } - r.idx = len(r.buf) - }) -} - -func (r *RuneBuffer) BackEscapeWord() { - r.Refresh(func() { - if r.idx == 0 { - return - } - for i := r.idx - 1; i > 0; i-- { - if !IsWordBreak(r.buf[i]) && IsWordBreak(r.buf[i-1]) { - r.buf = append(r.buf[:i], r.buf[r.idx:]...) - r.idx = i - return - } - } - - r.buf = r.buf[:0] - r.idx = 0 - }) -} - -func (r *RuneBuffer) Backspace() { - r.Refresh(func() { - if r.idx == 0 { - return - } - - r.idx-- - r.buf = append(r.buf[:r.idx], r.buf[r.idx+1:]...) - }) -} - -func (r *RuneBuffer) MoveToLineEnd() { - r.Refresh(func() { - if r.idx == len(r.buf) { - return - } - - r.idx = len(r.buf) - }) -} - -func (r *RuneBuffer) LineCount(width int) int { - if width == -1 { - width = r.width - } - return LineCount(width, - runes.WidthAll(r.buf)+r.PromptLen()) -} - -func (r *RuneBuffer) MoveTo(ch rune, prevChar, reverse bool) (success bool) { - r.Refresh(func() { - if reverse { - for i := r.idx - 1; i >= 0; i-- { - if r.buf[i] == ch { - r.idx = i - if prevChar { - r.idx++ - } - success = true - return - } - } - return - } - for i := r.idx + 1; i < len(r.buf); i++ { - if r.buf[i] == ch { - r.idx = i - if prevChar { - r.idx-- - } - success = true - return - } - } - }) - return -} - -func (r *RuneBuffer) isInLineEdge() bool { - if isWindows { - return false - } - sp := r.getSplitByLine(r.buf) - return len(sp[len(sp)-1]) == 0 -} - -func (r *RuneBuffer) getSplitByLine(rs []rune) []string { - return SplitByLine(r.promptLen(), r.width, rs) -} - -func (r *RuneBuffer) IdxLine(width int) int { - r.Lock() - defer r.Unlock() - return r.idxLine(width) -} - -func (r *RuneBuffer) idxLine(width int) int { - if width == 0 { - return 0 - } - sp := r.getSplitByLine(r.buf[:r.idx]) - return len(sp) - 1 -} - -func (r *RuneBuffer) CursorLineCount() int { - return r.LineCount(r.width) - r.IdxLine(r.width) -} - -func (r *RuneBuffer) Refresh(f func()) { - r.Lock() - defer r.Unlock() - - if !r.interactive { - if f != nil { - f() - } - return - } - - r.clean() - if f != nil { - f() - } - r.print() -} - -func (r *RuneBuffer) SetOffset(offset string) { - r.Lock() - r.offset = offset - r.Unlock() -} - -func (r *RuneBuffer) print() { - r.w.Write(r.output()) - r.hadClean = false -} - -func (r *RuneBuffer) output() []byte { - buf := bytes.NewBuffer(nil) - buf.WriteString(string(r.prompt)) - if r.cfg.EnableMask && len(r.buf) > 0 { - buf.Write([]byte(strings.Repeat(string(r.cfg.MaskRune), len(r.buf)-1))) - if r.buf[len(r.buf)-1] == '\n' { - buf.Write([]byte{'\n'}) - } else { - buf.Write([]byte(string(r.cfg.MaskRune))) - } - if len(r.buf) > r.idx { - buf.Write(runes.Backspace(r.buf[r.idx:])) - } - - } else { - for idx := range r.buf { - if r.buf[idx] == '\t' { - buf.WriteString(strings.Repeat(" ", TabWidth)) - } else { - buf.WriteRune(r.buf[idx]) - } - } - if r.isInLineEdge() { - buf.Write([]byte(" \b")) - } - } - - if len(r.buf) > r.idx { - buf.Write(runes.Backspace(r.buf[r.idx:])) - } - return buf.Bytes() -} - -func (r *RuneBuffer) Reset() []rune { - ret := runes.Copy(r.buf) - r.buf = r.buf[:0] - r.idx = 0 - return ret -} - -func (r *RuneBuffer) calWidth(m int) int { - if m > 0 { - return runes.WidthAll(r.buf[r.idx : r.idx+m]) - } - return runes.WidthAll(r.buf[r.idx+m : r.idx]) -} - -func (r *RuneBuffer) SetStyle(start, end int, style string) { - if end < start { - panic("end < start") - } - - // goto start - move := start - r.idx - if move > 0 { - r.w.Write([]byte(string(r.buf[r.idx : r.idx+move]))) - } else { - r.w.Write(bytes.Repeat([]byte("\b"), r.calWidth(move))) - } - r.w.Write([]byte("\033[" + style + "m")) - r.w.Write([]byte(string(r.buf[start:end]))) - r.w.Write([]byte("\033[0m")) - // TODO: move back -} - -func (r *RuneBuffer) SetWithIdx(idx int, buf []rune) { - r.Refresh(func() { - r.buf = buf - r.idx = idx - }) -} - -func (r *RuneBuffer) Set(buf []rune) { - r.SetWithIdx(len(buf), buf) -} - -func (r *RuneBuffer) SetPrompt(prompt string) { - r.Lock() - r.prompt = []rune(prompt) - r.Unlock() -} - -func (r *RuneBuffer) cleanOutput(w io.Writer, idxLine int) { - buf := bufio.NewWriter(w) - - if r.width == 0 { - buf.WriteString(strings.Repeat("\r\b", len(r.buf)+r.promptLen())) - buf.Write([]byte("\033[J")) - } else { - buf.Write([]byte("\033[J")) // just like ^k :) - if idxLine == 0 { - buf.WriteString("\033[2K") - buf.WriteString("\r") - } else { - for i := 0; i < idxLine; i++ { - io.WriteString(buf, "\033[2K\r\033[A") - } - io.WriteString(buf, "\033[2K\r") - } - } - buf.Flush() - return -} - -func (r *RuneBuffer) Clean() { - r.Lock() - r.clean() - r.Unlock() -} - -func (r *RuneBuffer) clean() { - r.cleanWithIdxLine(r.idxLine(r.width)) -} - -func (r *RuneBuffer) cleanWithIdxLine(idxLine int) { - if r.hadClean || !r.interactive { - return - } - r.hadClean = true - r.cleanOutput(r.w, idxLine) -} diff --git a/vendor/github.com/chzyer/readline/runes.go b/vendor/github.com/chzyer/readline/runes.go deleted file mode 100644 index a669bc4..0000000 --- a/vendor/github.com/chzyer/readline/runes.go +++ /dev/null @@ -1,223 +0,0 @@ -package readline - -import ( - "bytes" - "unicode" - "unicode/utf8" -) - -var runes = Runes{} -var TabWidth = 4 - -type Runes struct{} - -func (Runes) EqualRune(a, b rune, fold bool) bool { - if a == b { - return true - } - if !fold { - return false - } - if a > b { - a, b = b, a - } - if b < utf8.RuneSelf && 'A' <= a && a <= 'Z' { - if b == a+'a'-'A' { - return true - } - } - return false -} - -func (r Runes) EqualRuneFold(a, b rune) bool { - return r.EqualRune(a, b, true) -} - -func (r Runes) EqualFold(a, b []rune) bool { - if len(a) != len(b) { - return false - } - for i := 0; i < len(a); i++ { - if r.EqualRuneFold(a[i], b[i]) { - continue - } - return false - } - - return true -} - -func (Runes) Equal(a, b []rune) bool { - if len(a) != len(b) { - return false - } - for i := 0; i < len(a); i++ { - if a[i] != b[i] { - return false - } - } - return true -} - -func (rs Runes) IndexAllBckEx(r, sub []rune, fold bool) int { - for i := len(r) - len(sub); i >= 0; i-- { - found := true - for j := 0; j < len(sub); j++ { - if !rs.EqualRune(r[i+j], sub[j], fold) { - found = false - break - } - } - if found { - return i - } - } - return -1 -} - -// Search in runes from end to front -func (rs Runes) IndexAllBck(r, sub []rune) int { - return rs.IndexAllBckEx(r, sub, false) -} - -// Search in runes from front to end -func (rs Runes) IndexAll(r, sub []rune) int { - return rs.IndexAllEx(r, sub, false) -} - -func (rs Runes) IndexAllEx(r, sub []rune, fold bool) int { - for i := 0; i < len(r); i++ { - found := true - if len(r[i:]) < len(sub) { - return -1 - } - for j := 0; j < len(sub); j++ { - if !rs.EqualRune(r[i+j], sub[j], fold) { - found = false - break - } - } - if found { - return i - } - } - return -1 -} - -func (Runes) Index(r rune, rs []rune) int { - for i := 0; i < len(rs); i++ { - if rs[i] == r { - return i - } - } - return -1 -} - -func (Runes) ColorFilter(r []rune) []rune { - newr := make([]rune, 0, len(r)) - for pos := 0; pos < len(r); pos++ { - if r[pos] == '\033' && r[pos+1] == '[' { - idx := runes.Index('m', r[pos+2:]) - if idx == -1 { - continue - } - pos += idx + 2 - continue - } - newr = append(newr, r[pos]) - } - return newr -} - -var zeroWidth = []*unicode.RangeTable{ - unicode.Mn, - unicode.Me, - unicode.Cc, - unicode.Cf, -} - -var doubleWidth = []*unicode.RangeTable{ - unicode.Han, - unicode.Hangul, - unicode.Hiragana, - unicode.Katakana, -} - -func (Runes) Width(r rune) int { - if r == '\t' { - return TabWidth - } - if unicode.IsOneOf(zeroWidth, r) { - return 0 - } - if unicode.IsOneOf(doubleWidth, r) { - return 2 - } - return 1 -} - -func (Runes) WidthAll(r []rune) (length int) { - for i := 0; i < len(r); i++ { - length += runes.Width(r[i]) - } - return -} - -func (Runes) Backspace(r []rune) []byte { - return bytes.Repeat([]byte{'\b'}, runes.WidthAll(r)) -} - -func (Runes) Copy(r []rune) []rune { - n := make([]rune, len(r)) - copy(n, r) - return n -} - -func (Runes) HasPrefixFold(r, prefix []rune) bool { - if len(r) < len(prefix) { - return false - } - return runes.EqualFold(r[:len(prefix)], prefix) -} - -func (Runes) HasPrefix(r, prefix []rune) bool { - if len(r) < len(prefix) { - return false - } - return runes.Equal(r[:len(prefix)], prefix) -} - -func (Runes) Aggregate(candicate [][]rune) (same []rune, size int) { - for i := 0; i < len(candicate[0]); i++ { - for j := 0; j < len(candicate)-1; j++ { - if i >= len(candicate[j]) || i >= len(candicate[j+1]) { - goto aggregate - } - if candicate[j][i] != candicate[j+1][i] { - goto aggregate - } - } - size = i + 1 - } -aggregate: - if size > 0 { - same = runes.Copy(candicate[0][:size]) - for i := 0; i < len(candicate); i++ { - n := runes.Copy(candicate[i]) - copy(n, n[size:]) - candicate[i] = n[:len(n)-size] - } - } - return -} - -func (Runes) TrimSpaceLeft(in []rune) []rune { - firstIndex := len(in) - for i, r := range in { - if unicode.IsSpace(r) == false { - firstIndex = i - break - } - } - return in[firstIndex:] -} diff --git a/vendor/github.com/chzyer/readline/search.go b/vendor/github.com/chzyer/readline/search.go deleted file mode 100644 index 52e8ff0..0000000 --- a/vendor/github.com/chzyer/readline/search.go +++ /dev/null @@ -1,164 +0,0 @@ -package readline - -import ( - "bytes" - "container/list" - "fmt" - "io" -) - -const ( - S_STATE_FOUND = iota - S_STATE_FAILING -) - -const ( - S_DIR_BCK = iota - S_DIR_FWD -) - -type opSearch struct { - inMode bool - state int - dir int - source *list.Element - w io.Writer - buf *RuneBuffer - data []rune - history *opHistory - cfg *Config - markStart int - markEnd int - width int -} - -func newOpSearch(w io.Writer, buf *RuneBuffer, history *opHistory, cfg *Config, width int) *opSearch { - return &opSearch{ - w: w, - buf: buf, - cfg: cfg, - history: history, - width: width, - } -} - -func (o *opSearch) OnWidthChange(newWidth int) { - o.width = newWidth -} - -func (o *opSearch) IsSearchMode() bool { - return o.inMode -} - -func (o *opSearch) SearchBackspace() { - if len(o.data) > 0 { - o.data = o.data[:len(o.data)-1] - o.search(true) - } -} - -func (o *opSearch) findHistoryBy(isNewSearch bool) (int, *list.Element) { - if o.dir == S_DIR_BCK { - return o.history.FindBck(isNewSearch, o.data, o.buf.idx) - } - return o.history.FindFwd(isNewSearch, o.data, o.buf.idx) -} - -func (o *opSearch) search(isChange bool) bool { - if len(o.data) == 0 { - o.state = S_STATE_FOUND - o.SearchRefresh(-1) - return true - } - idx, elem := o.findHistoryBy(isChange) - if elem == nil { - o.SearchRefresh(-2) - return false - } - o.history.current = elem - - item := o.history.showItem(o.history.current.Value) - start, end := 0, 0 - if o.dir == S_DIR_BCK { - start, end = idx, idx+len(o.data) - } else { - start, end = idx, idx+len(o.data) - idx += len(o.data) - } - o.buf.SetWithIdx(idx, item) - o.markStart, o.markEnd = start, end - o.SearchRefresh(idx) - return true -} - -func (o *opSearch) SearchChar(r rune) { - o.data = append(o.data, r) - o.search(true) -} - -func (o *opSearch) SearchMode(dir int) bool { - if o.width == 0 { - return false - } - alreadyInMode := o.inMode - o.inMode = true - o.dir = dir - o.source = o.history.current - if alreadyInMode { - o.search(false) - } else { - o.SearchRefresh(-1) - } - return true -} - -func (o *opSearch) ExitSearchMode(revert bool) { - if revert { - o.history.current = o.source - o.buf.Set(o.history.showItem(o.history.current.Value)) - } - o.markStart, o.markEnd = 0, 0 - o.state = S_STATE_FOUND - o.inMode = false - o.source = nil - o.data = nil -} - -func (o *opSearch) SearchRefresh(x int) { - if x == -2 { - o.state = S_STATE_FAILING - } else if x >= 0 { - o.state = S_STATE_FOUND - } - if x < 0 { - x = o.buf.idx - } - x = o.buf.CurrentWidth(x) - x += o.buf.PromptLen() - x = x % o.width - - if o.markStart > 0 { - o.buf.SetStyle(o.markStart, o.markEnd, "4") - } - - lineCnt := o.buf.CursorLineCount() - buf := bytes.NewBuffer(nil) - buf.Write(bytes.Repeat([]byte("\n"), lineCnt)) - buf.WriteString("\033[J") - if o.state == S_STATE_FAILING { - buf.WriteString("failing ") - } - if o.dir == S_DIR_BCK { - buf.WriteString("bck") - } else if o.dir == S_DIR_FWD { - buf.WriteString("fwd") - } - buf.WriteString("-i-search: ") - buf.WriteString(string(o.data)) // keyword - buf.WriteString("\033[4m \033[0m") // _ - fmt.Fprintf(buf, "\r\033[%dA", lineCnt) // move prev - if x > 0 { - fmt.Fprintf(buf, "\033[%dC", x) // move forward - } - o.w.Write(buf.Bytes()) -} diff --git a/vendor/github.com/chzyer/readline/std.go b/vendor/github.com/chzyer/readline/std.go deleted file mode 100644 index e0c55ee..0000000 --- a/vendor/github.com/chzyer/readline/std.go +++ /dev/null @@ -1,133 +0,0 @@ -package readline - -import ( - "io" - "os" - "sync" - "sync/atomic" -) - -var ( - Stdin io.ReadCloser = os.Stdin - Stdout io.WriteCloser = os.Stdout - Stderr io.WriteCloser = os.Stderr -) - -var ( - std *Instance - stdOnce sync.Once -) - -// global instance will not submit history automatic -func getInstance() *Instance { - stdOnce.Do(func() { - std, _ = NewEx(&Config{ - DisableAutoSaveHistory: true, - }) - }) - return std -} - -// let readline load history from filepath -// and try to persist history into disk -// set fp to "" to prevent readline persisting history to disk -// so the `AddHistory` will return nil error forever. -func SetHistoryPath(fp string) { - ins := getInstance() - cfg := ins.Config.Clone() - cfg.HistoryFile = fp - ins.SetConfig(cfg) -} - -// set auto completer to global instance -func SetAutoComplete(completer AutoCompleter) { - ins := getInstance() - cfg := ins.Config.Clone() - cfg.AutoComplete = completer - ins.SetConfig(cfg) -} - -// add history to global instance manually -// raise error only if `SetHistoryPath` is set with a non-empty path -func AddHistory(content string) error { - ins := getInstance() - return ins.SaveHistory(content) -} - -func Password(prompt string) ([]byte, error) { - ins := getInstance() - return ins.ReadPassword(prompt) -} - -// readline with global configs -func Line(prompt string) (string, error) { - ins := getInstance() - ins.SetPrompt(prompt) - return ins.Readline() -} - -type CancelableStdin struct { - r io.Reader - mutex sync.Mutex - stop chan struct{} - closed int32 - notify chan struct{} - data []byte - read int - err error -} - -func NewCancelableStdin(r io.Reader) *CancelableStdin { - c := &CancelableStdin{ - r: r, - notify: make(chan struct{}), - stop: make(chan struct{}), - } - go c.ioloop() - return c -} - -func (c *CancelableStdin) ioloop() { -loop: - for { - select { - case <-c.notify: - c.read, c.err = c.r.Read(c.data) - select { - case c.notify <- struct{}{}: - case <-c.stop: - break loop - } - case <-c.stop: - break loop - } - } -} - -func (c *CancelableStdin) Read(b []byte) (n int, err error) { - c.mutex.Lock() - defer c.mutex.Unlock() - if atomic.LoadInt32(&c.closed) == 1 { - return 0, io.EOF - } - - c.data = b - select { - case c.notify <- struct{}{}: - case <-c.stop: - return 0, io.EOF - } - select { - case <-c.notify: - return c.read, c.err - case <-c.stop: - return 0, io.EOF - } -} - -func (c *CancelableStdin) Close() error { - if atomic.CompareAndSwapInt32(&c.closed, 0, 1) { - close(c.stop) - } - return nil -} diff --git a/vendor/github.com/chzyer/readline/std_windows.go b/vendor/github.com/chzyer/readline/std_windows.go deleted file mode 100644 index b10f91b..0000000 --- a/vendor/github.com/chzyer/readline/std_windows.go +++ /dev/null @@ -1,9 +0,0 @@ -// +build windows - -package readline - -func init() { - Stdin = NewRawReader() - Stdout = NewANSIWriter(Stdout) - Stderr = NewANSIWriter(Stderr) -} diff --git a/vendor/github.com/chzyer/readline/term.go b/vendor/github.com/chzyer/readline/term.go deleted file mode 100644 index 133993c..0000000 --- a/vendor/github.com/chzyer/readline/term.go +++ /dev/null @@ -1,123 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build darwin dragonfly freebsd linux,!appengine netbsd openbsd solaris - -// Package terminal provides support functions for dealing with terminals, as -// commonly found on UNIX systems. -// -// Putting a terminal into raw mode is the most common requirement: -// -// oldState, err := terminal.MakeRaw(0) -// if err != nil { -// panic(err) -// } -// defer terminal.Restore(0, oldState) -package readline - -import ( - "io" - "syscall" -) - -// State contains the state of a terminal. -type State struct { - termios Termios -} - -// IsTerminal returns true if the given file descriptor is a terminal. -func IsTerminal(fd int) bool { - _, err := getTermios(fd) - return err == nil -} - -// MakeRaw put the terminal connected to the given file descriptor into raw -// mode and returns the previous state of the terminal so that it can be -// restored. -func MakeRaw(fd int) (*State, error) { - var oldState State - - if termios, err := getTermios(fd); err != nil { - return nil, err - } else { - oldState.termios = *termios - } - - newState := oldState.termios - // This attempts to replicate the behaviour documented for cfmakeraw in - // the termios(3) manpage. - newState.Iflag &^= syscall.IGNBRK | syscall.BRKINT | syscall.PARMRK | syscall.ISTRIP | syscall.INLCR | syscall.IGNCR | syscall.ICRNL | syscall.IXON - // newState.Oflag &^= syscall.OPOST - newState.Lflag &^= syscall.ECHO | syscall.ECHONL | syscall.ICANON | syscall.ISIG | syscall.IEXTEN - newState.Cflag &^= syscall.CSIZE | syscall.PARENB - newState.Cflag |= syscall.CS8 - - newState.Cc[syscall.VMIN] = 1 - newState.Cc[syscall.VTIME] = 0 - - return &oldState, setTermios(fd, &newState) -} - -// GetState returns the current state of a terminal which may be useful to -// restore the terminal after a signal. -func GetState(fd int) (*State, error) { - termios, err := getTermios(fd) - if err != nil { - return nil, err - } - - return &State{termios: *termios}, nil -} - -// Restore restores the terminal connected to the given file descriptor to a -// previous state. -func restoreTerm(fd int, state *State) error { - return setTermios(fd, &state.termios) -} - -// ReadPassword reads a line of input from a terminal without local echo. This -// is commonly used for inputting passwords and other sensitive data. The slice -// returned does not include the \n. -func ReadPassword(fd int) ([]byte, error) { - oldState, err := getTermios(fd) - if err != nil { - return nil, err - } - - newState := oldState - newState.Lflag &^= syscall.ECHO - newState.Lflag |= syscall.ICANON | syscall.ISIG - newState.Iflag |= syscall.ICRNL - if err := setTermios(fd, newState); err != nil { - return nil, err - } - - defer func() { - setTermios(fd, oldState) - }() - - var buf [16]byte - var ret []byte - for { - n, err := syscall.Read(fd, buf[:]) - if err != nil { - return nil, err - } - if n == 0 { - if len(ret) == 0 { - return nil, io.EOF - } - break - } - if buf[n-1] == '\n' { - n-- - } - ret = append(ret, buf[:n]...) - if n < len(buf) { - break - } - } - - return ret, nil -} diff --git a/vendor/github.com/chzyer/readline/term_bsd.go b/vendor/github.com/chzyer/readline/term_bsd.go deleted file mode 100644 index 68b56ea..0000000 --- a/vendor/github.com/chzyer/readline/term_bsd.go +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build darwin dragonfly freebsd netbsd openbsd - -package readline - -import ( - "syscall" - "unsafe" -) - -func getTermios(fd int) (*Termios, error) { - termios := new(Termios) - _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), syscall.TIOCGETA, uintptr(unsafe.Pointer(termios)), 0, 0, 0) - if err != 0 { - return nil, err - } - return termios, nil -} - -func setTermios(fd int, termios *Termios) error { - _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), syscall.TIOCSETA, uintptr(unsafe.Pointer(termios)), 0, 0, 0) - if err != 0 { - return err - } - return nil -} diff --git a/vendor/github.com/chzyer/readline/term_linux.go b/vendor/github.com/chzyer/readline/term_linux.go deleted file mode 100644 index e3392b4..0000000 --- a/vendor/github.com/chzyer/readline/term_linux.go +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package readline - -import ( - "syscall" - "unsafe" -) - -// These constants are declared here, rather than importing -// them from the syscall package as some syscall packages, even -// on linux, for example gccgo, do not declare them. -const ioctlReadTermios = 0x5401 // syscall.TCGETS -const ioctlWriteTermios = 0x5402 // syscall.TCSETS - -func getTermios(fd int) (*Termios, error) { - termios := new(Termios) - _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlReadTermios, uintptr(unsafe.Pointer(termios)), 0, 0, 0) - if err != 0 { - return nil, err - } - return termios, nil -} - -func setTermios(fd int, termios *Termios) error { - _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlWriteTermios, uintptr(unsafe.Pointer(termios)), 0, 0, 0) - if err != 0 { - return err - } - return nil -} diff --git a/vendor/github.com/chzyer/readline/term_solaris.go b/vendor/github.com/chzyer/readline/term_solaris.go deleted file mode 100644 index 4c27273..0000000 --- a/vendor/github.com/chzyer/readline/term_solaris.go +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build solaris - -package readline - -import "golang.org/x/sys/unix" - -// GetSize returns the dimensions of the given terminal. -func GetSize(fd int) (int, int, error) { - ws, err := unix.IoctlGetWinsize(fd, unix.TIOCGWINSZ) - if err != nil { - return 0, 0, err - } - return int(ws.Col), int(ws.Row), nil -} - -type Termios unix.Termios - -func getTermios(fd int) (*Termios, error) { - termios, err := unix.IoctlGetTermios(fd, unix.TCGETS) - if err != nil { - return nil, err - } - return (*Termios)(termios), nil -} - -func setTermios(fd int, termios *Termios) error { - return unix.IoctlSetTermios(fd, unix.TCSETSF, (*unix.Termios)(termios)) -} diff --git a/vendor/github.com/chzyer/readline/term_unix.go b/vendor/github.com/chzyer/readline/term_unix.go deleted file mode 100644 index d3ea242..0000000 --- a/vendor/github.com/chzyer/readline/term_unix.go +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build darwin dragonfly freebsd linux,!appengine netbsd openbsd - -package readline - -import ( - "syscall" - "unsafe" -) - -type Termios syscall.Termios - -// GetSize returns the dimensions of the given terminal. -func GetSize(fd int) (int, int, error) { - var dimensions [4]uint16 - _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), uintptr(syscall.TIOCGWINSZ), uintptr(unsafe.Pointer(&dimensions)), 0, 0, 0) - if err != 0 { - return 0, 0, err - } - return int(dimensions[1]), int(dimensions[0]), nil -} diff --git a/vendor/github.com/chzyer/readline/term_windows.go b/vendor/github.com/chzyer/readline/term_windows.go deleted file mode 100644 index 1290e00..0000000 --- a/vendor/github.com/chzyer/readline/term_windows.go +++ /dev/null @@ -1,171 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -// Package terminal provides support functions for dealing with terminals, as -// commonly found on UNIX systems. -// -// Putting a terminal into raw mode is the most common requirement: -// -// oldState, err := terminal.MakeRaw(0) -// if err != nil { -// panic(err) -// } -// defer terminal.Restore(0, oldState) -package readline - -import ( - "io" - "syscall" - "unsafe" -) - -const ( - enableLineInput = 2 - enableEchoInput = 4 - enableProcessedInput = 1 - enableWindowInput = 8 - enableMouseInput = 16 - enableInsertMode = 32 - enableQuickEditMode = 64 - enableExtendedFlags = 128 - enableAutoPosition = 256 - enableProcessedOutput = 1 - enableWrapAtEolOutput = 2 -) - -var kernel32 = syscall.NewLazyDLL("kernel32.dll") - -var ( - procGetConsoleMode = kernel32.NewProc("GetConsoleMode") - procSetConsoleMode = kernel32.NewProc("SetConsoleMode") - procGetConsoleScreenBufferInfo = kernel32.NewProc("GetConsoleScreenBufferInfo") -) - -type ( - coord struct { - x short - y short - } - smallRect struct { - left short - top short - right short - bottom short - } - consoleScreenBufferInfo struct { - size coord - cursorPosition coord - attributes word - window smallRect - maximumWindowSize coord - } -) - -type State struct { - mode uint32 -} - -// IsTerminal returns true if the given file descriptor is a terminal. -func IsTerminal(fd int) bool { - var st uint32 - r, _, e := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(fd), uintptr(unsafe.Pointer(&st)), 0) - return r != 0 && e == 0 -} - -// MakeRaw put the terminal connected to the given file descriptor into raw -// mode and returns the previous state of the terminal so that it can be -// restored. -func MakeRaw(fd int) (*State, error) { - var st uint32 - _, _, e := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(fd), uintptr(unsafe.Pointer(&st)), 0) - if e != 0 { - return nil, error(e) - } - raw := st &^ (enableEchoInput | enableProcessedInput | enableLineInput | enableProcessedOutput) - _, _, e = syscall.Syscall(procSetConsoleMode.Addr(), 2, uintptr(fd), uintptr(raw), 0) - if e != 0 { - return nil, error(e) - } - return &State{st}, nil -} - -// GetState returns the current state of a terminal which may be useful to -// restore the terminal after a signal. -func GetState(fd int) (*State, error) { - var st uint32 - _, _, e := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(fd), uintptr(unsafe.Pointer(&st)), 0) - if e != 0 { - return nil, error(e) - } - return &State{st}, nil -} - -// Restore restores the terminal connected to the given file descriptor to a -// previous state. -func restoreTerm(fd int, state *State) error { - _, _, err := syscall.Syscall(procSetConsoleMode.Addr(), 2, uintptr(fd), uintptr(state.mode), 0) - return err -} - -// GetSize returns the dimensions of the given terminal. -func GetSize(fd int) (width, height int, err error) { - var info consoleScreenBufferInfo - _, _, e := syscall.Syscall(procGetConsoleScreenBufferInfo.Addr(), 2, uintptr(fd), uintptr(unsafe.Pointer(&info)), 0) - if e != 0 { - return 0, 0, error(e) - } - return int(info.size.x), int(info.size.y), nil -} - -// ReadPassword reads a line of input from a terminal without local echo. This -// is commonly used for inputting passwords and other sensitive data. The slice -// returned does not include the \n. -func ReadPassword(fd int) ([]byte, error) { - var st uint32 - _, _, e := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(fd), uintptr(unsafe.Pointer(&st)), 0) - if e != 0 { - return nil, error(e) - } - old := st - - st &^= (enableEchoInput) - st |= (enableProcessedInput | enableLineInput | enableProcessedOutput) - _, _, e = syscall.Syscall(procSetConsoleMode.Addr(), 2, uintptr(fd), uintptr(st), 0) - if e != 0 { - return nil, error(e) - } - - defer func() { - syscall.Syscall(procSetConsoleMode.Addr(), 2, uintptr(fd), uintptr(old), 0) - }() - - var buf [16]byte - var ret []byte - for { - n, err := syscall.Read(syscall.Handle(fd), buf[:]) - if err != nil { - return nil, err - } - if n == 0 { - if len(ret) == 0 { - return nil, io.EOF - } - break - } - if buf[n-1] == '\n' { - n-- - } - if n > 0 && buf[n-1] == '\r' { - n-- - } - ret = append(ret, buf[:n]...) - if n < len(buf) { - break - } - } - - return ret, nil -} diff --git a/vendor/github.com/chzyer/readline/terminal.go b/vendor/github.com/chzyer/readline/terminal.go deleted file mode 100644 index 8014712..0000000 --- a/vendor/github.com/chzyer/readline/terminal.go +++ /dev/null @@ -1,232 +0,0 @@ -package readline - -import ( - "bufio" - "fmt" - "io" - "strings" - "sync" - "sync/atomic" -) - -type Terminal struct { - m sync.Mutex - cfg *Config - outchan chan rune - closed int32 - stopChan chan struct{} - kickChan chan struct{} - wg sync.WaitGroup - isReading int32 - sleeping int32 - - sizeChan chan string -} - -func NewTerminal(cfg *Config) (*Terminal, error) { - if err := cfg.Init(); err != nil { - return nil, err - } - t := &Terminal{ - cfg: cfg, - kickChan: make(chan struct{}, 1), - outchan: make(chan rune), - stopChan: make(chan struct{}, 1), - sizeChan: make(chan string, 1), - } - - go t.ioloop() - return t, nil -} - -// SleepToResume will sleep myself, and return only if I'm resumed. -func (t *Terminal) SleepToResume() { - if !atomic.CompareAndSwapInt32(&t.sleeping, 0, 1) { - return - } - defer atomic.StoreInt32(&t.sleeping, 0) - - t.ExitRawMode() - ch := WaitForResume() - SuspendMe() - <-ch - t.EnterRawMode() -} - -func (t *Terminal) EnterRawMode() (err error) { - return t.cfg.FuncMakeRaw() -} - -func (t *Terminal) ExitRawMode() (err error) { - return t.cfg.FuncExitRaw() -} - -func (t *Terminal) Write(b []byte) (int, error) { - return t.cfg.Stdout.Write(b) -} - -type termSize struct { - left int - top int -} - -func (t *Terminal) GetOffset(f func(offset string)) { - go func() { - f(<-t.sizeChan) - }() - t.Write([]byte("\033[6n")) -} - -func (t *Terminal) Print(s string) { - fmt.Fprintf(t.cfg.Stdout, "%s", s) -} - -func (t *Terminal) PrintRune(r rune) { - fmt.Fprintf(t.cfg.Stdout, "%c", r) -} - -func (t *Terminal) Readline() *Operation { - return NewOperation(t, t.cfg) -} - -// return rune(0) if meet EOF -func (t *Terminal) ReadRune() rune { - ch, ok := <-t.outchan - if !ok { - return rune(0) - } - return ch -} - -func (t *Terminal) IsReading() bool { - return atomic.LoadInt32(&t.isReading) == 1 -} - -func (t *Terminal) KickRead() { - select { - case t.kickChan <- struct{}{}: - default: - } -} - -func (t *Terminal) ioloop() { - t.wg.Add(1) - defer func() { - t.wg.Done() - close(t.outchan) - }() - - var ( - isEscape bool - isEscapeEx bool - expectNextChar bool - ) - - buf := bufio.NewReader(t.getStdin()) - for { - if !expectNextChar { - atomic.StoreInt32(&t.isReading, 0) - select { - case <-t.kickChan: - atomic.StoreInt32(&t.isReading, 1) - case <-t.stopChan: - return - } - } - expectNextChar = false - r, _, err := buf.ReadRune() - if err != nil { - if strings.Contains(err.Error(), "interrupted system call") { - expectNextChar = true - continue - } - break - } - - if isEscape { - isEscape = false - if r == CharEscapeEx { - expectNextChar = true - isEscapeEx = true - continue - } - r = escapeKey(r, buf) - } else if isEscapeEx { - isEscapeEx = false - if key := readEscKey(r, buf); key != nil { - r = escapeExKey(key) - // offset - if key.typ == 'R' { - if _, _, ok := key.Get2(); ok { - select { - case t.sizeChan <- key.attr: - default: - } - } - expectNextChar = true - continue - } - } - if r == 0 { - expectNextChar = true - continue - } - } - - expectNextChar = true - switch r { - case CharEsc: - if t.cfg.VimMode { - t.outchan <- r - break - } - isEscape = true - case CharInterrupt, CharEnter, CharCtrlJ, CharDelete: - expectNextChar = false - fallthrough - default: - t.outchan <- r - } - } - -} - -func (t *Terminal) Bell() { - fmt.Fprintf(t, "%c", CharBell) -} - -func (t *Terminal) Close() error { - if atomic.SwapInt32(&t.closed, 1) != 0 { - return nil - } - if closer, ok := t.cfg.Stdin.(io.Closer); ok { - closer.Close() - } - close(t.stopChan) - t.wg.Wait() - return t.ExitRawMode() -} - -func (t *Terminal) GetConfig() *Config { - t.m.Lock() - cfg := *t.cfg - t.m.Unlock() - return &cfg -} - -func (t *Terminal) getStdin() io.Reader { - t.m.Lock() - r := t.cfg.Stdin - t.m.Unlock() - return r -} - -func (t *Terminal) SetConfig(c *Config) error { - if err := c.Init(); err != nil { - return err - } - t.m.Lock() - t.cfg = c - t.m.Unlock() - return nil -} diff --git a/vendor/github.com/chzyer/readline/utils.go b/vendor/github.com/chzyer/readline/utils.go deleted file mode 100644 index 670736b..0000000 --- a/vendor/github.com/chzyer/readline/utils.go +++ /dev/null @@ -1,276 +0,0 @@ -package readline - -import ( - "bufio" - "bytes" - "container/list" - "fmt" - "os" - "strconv" - "strings" - "sync" - "time" - "unicode" -) - -var ( - isWindows = false -) - -const ( - CharLineStart = 1 - CharBackward = 2 - CharInterrupt = 3 - CharDelete = 4 - CharLineEnd = 5 - CharForward = 6 - CharBell = 7 - CharCtrlH = 8 - CharTab = 9 - CharCtrlJ = 10 - CharKill = 11 - CharCtrlL = 12 - CharEnter = 13 - CharNext = 14 - CharPrev = 16 - CharBckSearch = 18 - CharFwdSearch = 19 - CharTranspose = 20 - CharCtrlU = 21 - CharCtrlW = 23 - CharCtrlZ = 26 - CharEsc = 27 - CharEscapeEx = 91 - CharBackspace = 127 -) - -const ( - MetaBackward rune = -iota - 1 - MetaForward - MetaDelete - MetaBackspace - MetaTranspose -) - -// WaitForResume need to call before current process got suspend. -// It will run a ticker until a long duration is occurs, -// which means this process is resumed. -func WaitForResume() chan struct{} { - ch := make(chan struct{}) - var wg sync.WaitGroup - wg.Add(1) - go func() { - ticker := time.NewTicker(10 * time.Millisecond) - t := time.Now() - wg.Done() - for { - now := <-ticker.C - if now.Sub(t) > 100*time.Millisecond { - break - } - t = now - } - ticker.Stop() - ch <- struct{}{} - }() - wg.Wait() - return ch -} - -func Restore(fd int, state *State) error { - err := restoreTerm(fd, state) - if err != nil { - // errno 0 means everything is ok :) - if err.Error() == "errno 0" { - return nil - } else { - return err - } - } - return nil -} - -func IsPrintable(key rune) bool { - isInSurrogateArea := key >= 0xd800 && key <= 0xdbff - return key >= 32 && !isInSurrogateArea -} - -// translate Esc[X -func escapeExKey(key *escapeKeyPair) rune { - var r rune - switch key.typ { - case 'D': - r = CharBackward - case 'C': - r = CharForward - case 'A': - r = CharPrev - case 'B': - r = CharNext - case 'H': - r = CharLineStart - case 'F': - r = CharLineEnd - case '~': - if key.attr == "3" { - r = CharDelete - } - default: - } - return r -} - -type escapeKeyPair struct { - attr string - typ rune -} - -func (e *escapeKeyPair) Get2() (int, int, bool) { - sp := strings.Split(e.attr, ";") - if len(sp) < 2 { - return -1, -1, false - } - s1, err := strconv.Atoi(sp[0]) - if err != nil { - return -1, -1, false - } - s2, err := strconv.Atoi(sp[1]) - if err != nil { - return -1, -1, false - } - return s1, s2, true -} - -func readEscKey(r rune, reader *bufio.Reader) *escapeKeyPair { - p := escapeKeyPair{} - buf := bytes.NewBuffer(nil) - for { - if r == ';' { - } else if unicode.IsNumber(r) { - } else { - p.typ = r - break - } - buf.WriteRune(r) - r, _, _ = reader.ReadRune() - } - p.attr = buf.String() - return &p -} - -// translate EscX to Meta+X -func escapeKey(r rune, reader *bufio.Reader) rune { - switch r { - case 'b': - r = MetaBackward - case 'f': - r = MetaForward - case 'd': - r = MetaDelete - case CharTranspose: - r = MetaTranspose - case CharBackspace: - r = MetaBackspace - case 'O': - d, _, _ := reader.ReadRune() - switch d { - case 'H': - r = CharLineStart - case 'F': - r = CharLineEnd - default: - reader.UnreadRune() - } - case CharEsc: - - } - return r -} - -func SplitByLine(start, screenWidth int, rs []rune) []string { - var ret []string - buf := bytes.NewBuffer(nil) - currentWidth := start - for _, r := range rs { - w := runes.Width(r) - currentWidth += w - buf.WriteRune(r) - if currentWidth >= screenWidth { - ret = append(ret, buf.String()) - buf.Reset() - currentWidth = 0 - } - } - ret = append(ret, buf.String()) - return ret -} - -// calculate how many lines for N character -func LineCount(screenWidth, w int) int { - r := w / screenWidth - if w%screenWidth != 0 { - r++ - } - return r -} - -func IsWordBreak(i rune) bool { - switch { - case i >= 'a' && i <= 'z': - case i >= 'A' && i <= 'Z': - case i >= '0' && i <= '9': - default: - return true - } - return false -} - -func GetInt(s []string, def int) int { - if len(s) == 0 { - return def - } - c, err := strconv.Atoi(s[0]) - if err != nil { - return def - } - return c -} - -type RawMode struct { - state *State -} - -func (r *RawMode) Enter() (err error) { - r.state, err = MakeRaw(GetStdin()) - return err -} - -func (r *RawMode) Exit() error { - if r.state == nil { - return nil - } - return Restore(GetStdin(), r.state) -} - -// ----------------------------------------------------------------------------- - -func sleep(n int) { - Debug(n) - time.Sleep(2000 * time.Millisecond) -} - -// print a linked list to Debug() -func debugList(l *list.List) { - idx := 0 - for e := l.Front(); e != nil; e = e.Next() { - Debug(idx, fmt.Sprintf("%+v", e.Value)) - idx++ - } -} - -// append log info to another file -func Debug(o ...interface{}) { - f, _ := os.OpenFile("debug.tmp", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666) - fmt.Fprintln(f, o...) - f.Close() -} diff --git a/vendor/github.com/chzyer/readline/utils_unix.go b/vendor/github.com/chzyer/readline/utils_unix.go deleted file mode 100644 index f88dac9..0000000 --- a/vendor/github.com/chzyer/readline/utils_unix.go +++ /dev/null @@ -1,83 +0,0 @@ -// +build darwin dragonfly freebsd linux,!appengine netbsd openbsd solaris - -package readline - -import ( - "io" - "os" - "os/signal" - "sync" - "syscall" -) - -type winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -// SuspendMe use to send suspend signal to myself, when we in the raw mode. -// For OSX it need to send to parent's pid -// For Linux it need to send to myself -func SuspendMe() { - p, _ := os.FindProcess(os.Getppid()) - p.Signal(syscall.SIGTSTP) - p, _ = os.FindProcess(os.Getpid()) - p.Signal(syscall.SIGTSTP) -} - -// get width of the terminal -func getWidth(stdoutFd int) int { - cols, _, err := GetSize(stdoutFd) - if err != nil { - return -1 - } - return cols -} - -func GetScreenWidth() int { - w := getWidth(syscall.Stdout) - if w < 0 { - w = getWidth(syscall.Stderr) - } - return w -} - -// ClearScreen clears the console screen -func ClearScreen(w io.Writer) (int, error) { - return w.Write([]byte("\033[H")) -} - -func DefaultIsTerminal() bool { - return IsTerminal(syscall.Stdin) && (IsTerminal(syscall.Stdout) || IsTerminal(syscall.Stderr)) -} - -func GetStdin() int { - return syscall.Stdin -} - -// ----------------------------------------------------------------------------- - -var ( - widthChange sync.Once - widthChangeCallback func() -) - -func DefaultOnWidthChanged(f func()) { - widthChangeCallback = f - widthChange.Do(func() { - ch := make(chan os.Signal, 1) - signal.Notify(ch, syscall.SIGWINCH) - - go func() { - for { - _, ok := <-ch - if !ok { - break - } - widthChangeCallback() - } - }() - }) -} diff --git a/vendor/github.com/chzyer/readline/utils_windows.go b/vendor/github.com/chzyer/readline/utils_windows.go deleted file mode 100644 index 5bfa55d..0000000 --- a/vendor/github.com/chzyer/readline/utils_windows.go +++ /dev/null @@ -1,41 +0,0 @@ -// +build windows - -package readline - -import ( - "io" - "syscall" -) - -func SuspendMe() { -} - -func GetStdin() int { - return int(syscall.Stdin) -} - -func init() { - isWindows = true -} - -// get width of the terminal -func GetScreenWidth() int { - info, _ := GetConsoleScreenBufferInfo() - if info == nil { - return -1 - } - return int(info.dwSize.x) -} - -// ClearScreen clears the console screen -func ClearScreen(_ io.Writer) error { - return SetConsoleCursorPosition(&_COORD{0, 0}) -} - -func DefaultIsTerminal() bool { - return true -} - -func DefaultOnWidthChanged(func()) { - -} diff --git a/vendor/github.com/chzyer/readline/vim.go b/vendor/github.com/chzyer/readline/vim.go deleted file mode 100644 index 641b22b..0000000 --- a/vendor/github.com/chzyer/readline/vim.go +++ /dev/null @@ -1,174 +0,0 @@ -package readline - -const ( - VIM_NORMAL = iota - VIM_INSERT - VIM_VISUAL -) - -type opVim struct { - cfg *Config - op *Operation - vimMode int -} - -func newVimMode(op *Operation) *opVim { - ov := &opVim{ - cfg: op.cfg, - op: op, - } - ov.SetVimMode(ov.cfg.VimMode) - return ov -} - -func (o *opVim) SetVimMode(on bool) { - if o.cfg.VimMode && !on { // turn off - o.ExitVimMode() - } - o.cfg.VimMode = on - o.vimMode = VIM_INSERT -} - -func (o *opVim) ExitVimMode() { - o.vimMode = VIM_INSERT -} - -func (o *opVim) IsEnableVimMode() bool { - return o.cfg.VimMode -} - -func (o *opVim) handleVimNormalMovement(r rune, readNext func() rune) (t rune, handled bool) { - rb := o.op.buf - handled = true - switch r { - case 'h': - t = CharBackward - case 'j': - t = CharNext - case 'k': - t = CharPrev - case 'l': - t = CharForward - case '0', '^': - rb.MoveToLineStart() - case '$': - rb.MoveToLineEnd() - case 'x': - rb.Delete() - if rb.IsCursorInEnd() { - rb.MoveBackward() - } - case 'r': - rb.Replace(readNext()) - case 'd': - next := readNext() - switch next { - case 'd': - rb.Erase() - case 'w': - rb.DeleteWord() - case 'h': - rb.Backspace() - case 'l': - rb.Delete() - } - case 'b', 'B': - rb.MoveToPrevWord() - case 'w', 'W': - rb.MoveToNextWord() - case 'e', 'E': - rb.MoveToEndWord() - case 'f', 'F', 't', 'T': - next := readNext() - prevChar := r == 't' || r == 'T' - reverse := r == 'F' || r == 'T' - switch next { - case CharEsc: - default: - rb.MoveTo(next, prevChar, reverse) - } - default: - return r, false - } - return t, true -} - -func (o *opVim) handleVimNormalEnterInsert(r rune, readNext func() rune) (t rune, handled bool) { - rb := o.op.buf - handled = true - switch r { - case 'i': - case 'I': - rb.MoveToLineStart() - case 'a': - rb.MoveForward() - case 'A': - rb.MoveToLineEnd() - case 's': - rb.Delete() - case 'S': - rb.Erase() - case 'c': - next := readNext() - switch next { - case 'c': - rb.Erase() - case 'w': - rb.DeleteWord() - case 'h': - rb.Backspace() - case 'l': - rb.Delete() - } - default: - return r, false - } - - o.EnterVimInsertMode() - return -} - -func (o *opVim) HandleVimNormal(r rune, readNext func() rune) (t rune) { - switch r { - case CharEnter, CharInterrupt: - o.ExitVimMode() - return r - } - - if r, handled := o.handleVimNormalMovement(r, readNext); handled { - return r - } - - if r, handled := o.handleVimNormalEnterInsert(r, readNext); handled { - return r - } - - // invalid operation - o.op.t.Bell() - return 0 -} - -func (o *opVim) EnterVimInsertMode() { - o.vimMode = VIM_INSERT -} - -func (o *opVim) ExitVimInsertMode() { - o.vimMode = VIM_NORMAL -} - -func (o *opVim) HandleVim(r rune, readNext func() rune) rune { - if o.vimMode == VIM_NORMAL { - return o.HandleVimNormal(r, readNext) - } - if r == CharEsc { - o.ExitVimInsertMode() - return 0 - } - - switch o.vimMode { - case VIM_INSERT: - return r - case VIM_VISUAL: - } - return r -} diff --git a/vendor/github.com/chzyer/readline/windows_api.go b/vendor/github.com/chzyer/readline/windows_api.go deleted file mode 100644 index 63f4f7b..0000000 --- a/vendor/github.com/chzyer/readline/windows_api.go +++ /dev/null @@ -1,152 +0,0 @@ -// +build windows - -package readline - -import ( - "reflect" - "syscall" - "unsafe" -) - -var ( - kernel = NewKernel() - stdout = uintptr(syscall.Stdout) - stdin = uintptr(syscall.Stdin) -) - -type Kernel struct { - SetConsoleCursorPosition, - SetConsoleTextAttribute, - FillConsoleOutputCharacterW, - FillConsoleOutputAttribute, - ReadConsoleInputW, - GetConsoleScreenBufferInfo, - GetConsoleCursorInfo, - GetStdHandle CallFunc -} - -type short int16 -type word uint16 -type dword uint32 -type wchar uint16 - -type _COORD struct { - x short - y short -} - -func (c *_COORD) ptr() uintptr { - return uintptr(*(*int32)(unsafe.Pointer(c))) -} - -const ( - EVENT_KEY = 0x0001 - EVENT_MOUSE = 0x0002 - EVENT_WINDOW_BUFFER_SIZE = 0x0004 - EVENT_MENU = 0x0008 - EVENT_FOCUS = 0x0010 -) - -type _KEY_EVENT_RECORD struct { - bKeyDown int32 - wRepeatCount word - wVirtualKeyCode word - wVirtualScanCode word - unicodeChar wchar - dwControlKeyState dword -} - -// KEY_EVENT_RECORD KeyEvent; -// MOUSE_EVENT_RECORD MouseEvent; -// WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent; -// MENU_EVENT_RECORD MenuEvent; -// FOCUS_EVENT_RECORD FocusEvent; -type _INPUT_RECORD struct { - EventType word - Padding uint16 - Event [16]byte -} - -type _CONSOLE_SCREEN_BUFFER_INFO struct { - dwSize _COORD - dwCursorPosition _COORD - wAttributes word - srWindow _SMALL_RECT - dwMaximumWindowSize _COORD -} - -type _SMALL_RECT struct { - left short - top short - right short - bottom short -} - -type _CONSOLE_CURSOR_INFO struct { - dwSize dword - bVisible bool -} - -type CallFunc func(u ...uintptr) error - -func NewKernel() *Kernel { - k := &Kernel{} - kernel32 := syscall.NewLazyDLL("kernel32.dll") - v := reflect.ValueOf(k).Elem() - t := v.Type() - for i := 0; i < t.NumField(); i++ { - name := t.Field(i).Name - f := kernel32.NewProc(name) - v.Field(i).Set(reflect.ValueOf(k.Wrap(f))) - } - return k -} - -func (k *Kernel) Wrap(p *syscall.LazyProc) CallFunc { - return func(args ...uintptr) error { - var r0 uintptr - var e1 syscall.Errno - size := uintptr(len(args)) - if len(args) <= 3 { - buf := make([]uintptr, 3) - copy(buf, args) - r0, _, e1 = syscall.Syscall(p.Addr(), size, - buf[0], buf[1], buf[2]) - } else { - buf := make([]uintptr, 6) - copy(buf, args) - r0, _, e1 = syscall.Syscall6(p.Addr(), size, - buf[0], buf[1], buf[2], buf[3], buf[4], buf[5], - ) - } - - if int(r0) == 0 { - if e1 != 0 { - return error(e1) - } else { - return syscall.EINVAL - } - } - return nil - } - -} - -func GetConsoleScreenBufferInfo() (*_CONSOLE_SCREEN_BUFFER_INFO, error) { - t := new(_CONSOLE_SCREEN_BUFFER_INFO) - err := kernel.GetConsoleScreenBufferInfo( - stdout, - uintptr(unsafe.Pointer(t)), - ) - return t, err -} - -func GetConsoleCursorInfo() (*_CONSOLE_CURSOR_INFO, error) { - t := new(_CONSOLE_CURSOR_INFO) - err := kernel.GetConsoleCursorInfo(stdout, uintptr(unsafe.Pointer(t))) - return t, err -} - -func SetConsoleCursorPosition(c *_COORD) error { - return kernel.SetConsoleCursorPosition(stdout, c.ptr()) -} diff --git a/vendor/github.com/fatih/color/LICENSE.md b/vendor/github.com/fatih/color/LICENSE.md deleted file mode 100644 index 25fdaf6..0000000 --- a/vendor/github.com/fatih/color/LICENSE.md +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013 Fatih Arslan - -Permission 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: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE 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. diff --git a/vendor/github.com/fatih/color/README.md b/vendor/github.com/fatih/color/README.md deleted file mode 100644 index af28ce1..0000000 --- a/vendor/github.com/fatih/color/README.md +++ /dev/null @@ -1,177 +0,0 @@ -# Color [![GoDoc](https://godoc.org/github.com/fatih/color?status.svg)](https://godoc.org/github.com/fatih/color) [![Build Status](https://img.shields.io/travis/fatih/color.svg?style=flat-square)](https://travis-ci.org/fatih/color) - - - -Color lets you use colorized outputs in terms of [ANSI Escape -Codes](http://en.wikipedia.org/wiki/ANSI_escape_code#Colors) in Go (Golang). It -has support for Windows too! The API can be used in several ways, pick one that -suits you. - - -![Color](https://i.imgur.com/c1JI0lA.png) - - -## Install - -```bash -go get github.com/fatih/color -``` - -Note that the `vendor` folder is here for stability. Remove the folder if you -already have the dependencies in your GOPATH. - -## Examples - -### Standard colors - -```go -// Print with default helper functions -color.Cyan("Prints text in cyan.") - -// A newline will be appended automatically -color.Blue("Prints %s in blue.", "text") - -// These are using the default foreground colors -color.Red("We have red") -color.Magenta("And many others ..") - -``` - -### Mix and reuse colors - -```go -// Create a new color object -c := color.New(color.FgCyan).Add(color.Underline) -c.Println("Prints cyan text with an underline.") - -// Or just add them to New() -d := color.New(color.FgCyan, color.Bold) -d.Printf("This prints bold cyan %s\n", "too!.") - -// Mix up foreground and background colors, create new mixes! -red := color.New(color.FgRed) - -boldRed := red.Add(color.Bold) -boldRed.Println("This will print text in bold red.") - -whiteBackground := red.Add(color.BgWhite) -whiteBackground.Println("Red text with white background.") -``` - -### Use your own output (io.Writer) - -```go -// Use your own io.Writer output -color.New(color.FgBlue).Fprintln(myWriter, "blue color!") - -blue := color.New(color.FgBlue) -blue.Fprint(writer, "This will print text in blue.") -``` - -### Custom print functions (PrintFunc) - -```go -// Create a custom print function for convenience -red := color.New(color.FgRed).PrintfFunc() -red("Warning") -red("Error: %s", err) - -// Mix up multiple attributes -notice := color.New(color.Bold, color.FgGreen).PrintlnFunc() -notice("Don't forget this...") -``` - -### Custom fprint functions (FprintFunc) - -```go -blue := color.New(FgBlue).FprintfFunc() -blue(myWriter, "important notice: %s", stars) - -// Mix up with multiple attributes -success := color.New(color.Bold, color.FgGreen).FprintlnFunc() -success(myWriter, "Don't forget this...") -``` - -### Insert into noncolor strings (SprintFunc) - -```go -// Create SprintXxx functions to mix strings with other non-colorized strings: -yellow := color.New(color.FgYellow).SprintFunc() -red := color.New(color.FgRed).SprintFunc() -fmt.Printf("This is a %s and this is %s.\n", yellow("warning"), red("error")) - -info := color.New(color.FgWhite, color.BgGreen).SprintFunc() -fmt.Printf("This %s rocks!\n", info("package")) - -// Use helper functions -fmt.Println("This", color.RedString("warning"), "should be not neglected.") -fmt.Printf("%v %v\n", color.GreenString("Info:"), "an important message.") - -// Windows supported too! Just don't forget to change the output to color.Output -fmt.Fprintf(color.Output, "Windows support: %s", color.GreenString("PASS")) -``` - -### Plug into existing code - -```go -// Use handy standard colors -color.Set(color.FgYellow) - -fmt.Println("Existing text will now be in yellow") -fmt.Printf("This one %s\n", "too") - -color.Unset() // Don't forget to unset - -// You can mix up parameters -color.Set(color.FgMagenta, color.Bold) -defer color.Unset() // Use it in your function - -fmt.Println("All text will now be bold magenta.") -``` - -### Disable color - -There might be a case where you want to disable color output (for example to -pipe the standard output of your app to somewhere else). `Color` has support to -disable colors both globally and for single color definition. For example -suppose you have a CLI app and a `--no-color` bool flag. You can easily disable -the color output with: - -```go - -var flagNoColor = flag.Bool("no-color", false, "Disable color output") - -if *flagNoColor { - color.NoColor = true // disables colorized output -} -``` - -It also has support for single color definitions (local). You can -disable/enable color output on the fly: - -```go -c := color.New(color.FgCyan) -c.Println("Prints cyan text") - -c.DisableColor() -c.Println("This is printed without any color") - -c.EnableColor() -c.Println("This prints again cyan...") -``` - -## Todo - -* Save/Return previous values -* Evaluate fmt.Formatter interface - - -## Credits - - * [Fatih Arslan](https://github.com/fatih) - * Windows support via @mattn: [colorable](https://github.com/mattn/go-colorable) - -## License - -The MIT License (MIT) - see [`LICENSE.md`](https://github.com/fatih/color/blob/master/LICENSE.md) for more details - diff --git a/vendor/github.com/fatih/color/color.go b/vendor/github.com/fatih/color/color.go deleted file mode 100644 index b1f591d..0000000 --- a/vendor/github.com/fatih/color/color.go +++ /dev/null @@ -1,600 +0,0 @@ -package color - -import ( - "fmt" - "io" - "os" - "strconv" - "strings" - "sync" - - "github.com/mattn/go-colorable" - "github.com/mattn/go-isatty" -) - -var ( - // NoColor defines if the output is colorized or not. It's dynamically set to - // false or true based on the stdout's file descriptor referring to a terminal - // or not. This is a global option and affects all colors. For more control - // over each color block use the methods DisableColor() individually. - NoColor = os.Getenv("TERM") == "dumb" || - (!isatty.IsTerminal(os.Stdout.Fd()) && !isatty.IsCygwinTerminal(os.Stdout.Fd())) - - // Output defines the standard output of the print functions. By default - // os.Stdout is used. - Output = colorable.NewColorableStdout() - - // colorsCache is used to reduce the count of created Color objects and - // allows to reuse already created objects with required Attribute. - colorsCache = make(map[Attribute]*Color) - colorsCacheMu sync.Mutex // protects colorsCache -) - -// Color defines a custom color object which is defined by SGR parameters. -type Color struct { - params []Attribute - noColor *bool -} - -// Attribute defines a single SGR Code -type Attribute int - -const escape = "\x1b" - -// Base attributes -const ( - Reset Attribute = iota - Bold - Faint - Italic - Underline - BlinkSlow - BlinkRapid - ReverseVideo - Concealed - CrossedOut -) - -// Foreground text colors -const ( - FgBlack Attribute = iota + 30 - FgRed - FgGreen - FgYellow - FgBlue - FgMagenta - FgCyan - FgWhite -) - -// Foreground Hi-Intensity text colors -const ( - FgHiBlack Attribute = iota + 90 - FgHiRed - FgHiGreen - FgHiYellow - FgHiBlue - FgHiMagenta - FgHiCyan - FgHiWhite -) - -// Background text colors -const ( - BgBlack Attribute = iota + 40 - BgRed - BgGreen - BgYellow - BgBlue - BgMagenta - BgCyan - BgWhite -) - -// Background Hi-Intensity text colors -const ( - BgHiBlack Attribute = iota + 100 - BgHiRed - BgHiGreen - BgHiYellow - BgHiBlue - BgHiMagenta - BgHiCyan - BgHiWhite -) - -// New returns a newly created color object. -func New(value ...Attribute) *Color { - c := &Color{params: make([]Attribute, 0)} - c.Add(value...) - return c -} - -// Set sets the given parameters immediately. It will change the color of -// output with the given SGR parameters until color.Unset() is called. -func Set(p ...Attribute) *Color { - c := New(p...) - c.Set() - return c -} - -// Unset resets all escape attributes and clears the output. Usually should -// be called after Set(). -func Unset() { - if NoColor { - return - } - - fmt.Fprintf(Output, "%s[%dm", escape, Reset) -} - -// Set sets the SGR sequence. -func (c *Color) Set() *Color { - if c.isNoColorSet() { - return c - } - - fmt.Fprintf(Output, c.format()) - return c -} - -func (c *Color) unset() { - if c.isNoColorSet() { - return - } - - Unset() -} - -func (c *Color) setWriter(w io.Writer) *Color { - if c.isNoColorSet() { - return c - } - - fmt.Fprintf(w, c.format()) - return c -} - -func (c *Color) unsetWriter(w io.Writer) { - if c.isNoColorSet() { - return - } - - if NoColor { - return - } - - fmt.Fprintf(w, "%s[%dm", escape, Reset) -} - -// Add is used to chain SGR parameters. Use as many as parameters to combine -// and create custom color objects. Example: Add(color.FgRed, color.Underline). -func (c *Color) Add(value ...Attribute) *Color { - c.params = append(c.params, value...) - return c -} - -func (c *Color) prepend(value Attribute) { - c.params = append(c.params, 0) - copy(c.params[1:], c.params[0:]) - c.params[0] = value -} - -// Fprint formats using the default formats for its operands and writes to w. -// Spaces are added between operands when neither is a string. -// It returns the number of bytes written and any write error encountered. -// On Windows, users should wrap w with colorable.NewColorable() if w is of -// type *os.File. -func (c *Color) Fprint(w io.Writer, a ...interface{}) (n int, err error) { - c.setWriter(w) - defer c.unsetWriter(w) - - return fmt.Fprint(w, a...) -} - -// Print formats using the default formats for its operands and writes to -// standard output. Spaces are added between operands when neither is a -// string. It returns the number of bytes written and any write error -// encountered. This is the standard fmt.Print() method wrapped with the given -// color. -func (c *Color) Print(a ...interface{}) (n int, err error) { - c.Set() - defer c.unset() - - return fmt.Fprint(Output, a...) -} - -// Fprintf formats according to a format specifier and writes to w. -// It returns the number of bytes written and any write error encountered. -// On Windows, users should wrap w with colorable.NewColorable() if w is of -// type *os.File. -func (c *Color) Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error) { - c.setWriter(w) - defer c.unsetWriter(w) - - return fmt.Fprintf(w, format, a...) -} - -// Printf formats according to a format specifier and writes to standard output. -// It returns the number of bytes written and any write error encountered. -// This is the standard fmt.Printf() method wrapped with the given color. -func (c *Color) Printf(format string, a ...interface{}) (n int, err error) { - c.Set() - defer c.unset() - - return fmt.Fprintf(Output, format, a...) -} - -// Fprintln formats using the default formats for its operands and writes to w. -// Spaces are always added between operands and a newline is appended. -// On Windows, users should wrap w with colorable.NewColorable() if w is of -// type *os.File. -func (c *Color) Fprintln(w io.Writer, a ...interface{}) (n int, err error) { - c.setWriter(w) - defer c.unsetWriter(w) - - return fmt.Fprintln(w, a...) -} - -// Println formats using the default formats for its operands and writes to -// standard output. Spaces are always added between operands and a newline is -// appended. It returns the number of bytes written and any write error -// encountered. This is the standard fmt.Print() method wrapped with the given -// color. -func (c *Color) Println(a ...interface{}) (n int, err error) { - c.Set() - defer c.unset() - - return fmt.Fprintln(Output, a...) -} - -// Sprint is just like Print, but returns a string instead of printing it. -func (c *Color) Sprint(a ...interface{}) string { - return c.wrap(fmt.Sprint(a...)) -} - -// Sprintln is just like Println, but returns a string instead of printing it. -func (c *Color) Sprintln(a ...interface{}) string { - return c.wrap(fmt.Sprintln(a...)) -} - -// Sprintf is just like Printf, but returns a string instead of printing it. -func (c *Color) Sprintf(format string, a ...interface{}) string { - return c.wrap(fmt.Sprintf(format, a...)) -} - -// FprintFunc returns a new function that prints the passed arguments as -// colorized with color.Fprint(). -func (c *Color) FprintFunc() func(w io.Writer, a ...interface{}) { - return func(w io.Writer, a ...interface{}) { - c.Fprint(w, a...) - } -} - -// PrintFunc returns a new function that prints the passed arguments as -// colorized with color.Print(). -func (c *Color) PrintFunc() func(a ...interface{}) { - return func(a ...interface{}) { - c.Print(a...) - } -} - -// FprintfFunc returns a new function that prints the passed arguments as -// colorized with color.Fprintf(). -func (c *Color) FprintfFunc() func(w io.Writer, format string, a ...interface{}) { - return func(w io.Writer, format string, a ...interface{}) { - c.Fprintf(w, format, a...) - } -} - -// PrintfFunc returns a new function that prints the passed arguments as -// colorized with color.Printf(). -func (c *Color) PrintfFunc() func(format string, a ...interface{}) { - return func(format string, a ...interface{}) { - c.Printf(format, a...) - } -} - -// FprintlnFunc returns a new function that prints the passed arguments as -// colorized with color.Fprintln(). -func (c *Color) FprintlnFunc() func(w io.Writer, a ...interface{}) { - return func(w io.Writer, a ...interface{}) { - c.Fprintln(w, a...) - } -} - -// PrintlnFunc returns a new function that prints the passed arguments as -// colorized with color.Println(). -func (c *Color) PrintlnFunc() func(a ...interface{}) { - return func(a ...interface{}) { - c.Println(a...) - } -} - -// SprintFunc returns a new function that returns colorized strings for the -// given arguments with fmt.Sprint(). Useful to put into or mix into other -// string. Windows users should use this in conjunction with color.Output, example: -// -// put := New(FgYellow).SprintFunc() -// fmt.Fprintf(color.Output, "This is a %s", put("warning")) -func (c *Color) SprintFunc() func(a ...interface{}) string { - return func(a ...interface{}) string { - return c.wrap(fmt.Sprint(a...)) - } -} - -// SprintfFunc returns a new function that returns colorized strings for the -// given arguments with fmt.Sprintf(). Useful to put into or mix into other -// string. Windows users should use this in conjunction with color.Output. -func (c *Color) SprintfFunc() func(format string, a ...interface{}) string { - return func(format string, a ...interface{}) string { - return c.wrap(fmt.Sprintf(format, a...)) - } -} - -// SprintlnFunc returns a new function that returns colorized strings for the -// given arguments with fmt.Sprintln(). Useful to put into or mix into other -// string. Windows users should use this in conjunction with color.Output. -func (c *Color) SprintlnFunc() func(a ...interface{}) string { - return func(a ...interface{}) string { - return c.wrap(fmt.Sprintln(a...)) - } -} - -// sequence returns a formatted SGR sequence to be plugged into a "\x1b[...m" -// an example output might be: "1;36" -> bold cyan -func (c *Color) sequence() string { - format := make([]string, len(c.params)) - for i, v := range c.params { - format[i] = strconv.Itoa(int(v)) - } - - return strings.Join(format, ";") -} - -// wrap wraps the s string with the colors attributes. The string is ready to -// be printed. -func (c *Color) wrap(s string) string { - if c.isNoColorSet() { - return s - } - - return c.format() + s + c.unformat() -} - -func (c *Color) format() string { - return fmt.Sprintf("%s[%sm", escape, c.sequence()) -} - -func (c *Color) unformat() string { - return fmt.Sprintf("%s[%dm", escape, Reset) -} - -// DisableColor disables the color output. Useful to not change any existing -// code and still being able to output. Can be used for flags like -// "--no-color". To enable back use EnableColor() method. -func (c *Color) DisableColor() { - c.noColor = boolPtr(true) -} - -// EnableColor enables the color output. Use it in conjunction with -// DisableColor(). Otherwise this method has no side effects. -func (c *Color) EnableColor() { - c.noColor = boolPtr(false) -} - -func (c *Color) isNoColorSet() bool { - // check first if we have user setted action - if c.noColor != nil { - return *c.noColor - } - - // if not return the global option, which is disabled by default - return NoColor -} - -// Equals returns a boolean value indicating whether two colors are equal. -func (c *Color) Equals(c2 *Color) bool { - if len(c.params) != len(c2.params) { - return false - } - - for _, attr := range c.params { - if !c2.attrExists(attr) { - return false - } - } - - return true -} - -func (c *Color) attrExists(a Attribute) bool { - for _, attr := range c.params { - if attr == a { - return true - } - } - - return false -} - -func boolPtr(v bool) *bool { - return &v -} - -func getCachedColor(p Attribute) *Color { - colorsCacheMu.Lock() - defer colorsCacheMu.Unlock() - - c, ok := colorsCache[p] - if !ok { - c = New(p) - colorsCache[p] = c - } - - return c -} - -func colorPrint(format string, p Attribute, a ...interface{}) { - c := getCachedColor(p) - - if !strings.HasSuffix(format, "\n") { - format += "\n" - } - - if len(a) == 0 { - c.Print(format) - } else { - c.Printf(format, a...) - } -} - -func colorString(format string, p Attribute, a ...interface{}) string { - c := getCachedColor(p) - - if len(a) == 0 { - return c.SprintFunc()(format) - } - - return c.SprintfFunc()(format, a...) -} - -// Black is a convenient helper function to print with black foreground. A -// newline is appended to format by default. -func Black(format string, a ...interface{}) { colorPrint(format, FgBlack, a...) } - -// Red is a convenient helper function to print with red foreground. A -// newline is appended to format by default. -func Red(format string, a ...interface{}) { colorPrint(format, FgRed, a...) } - -// Green is a convenient helper function to print with green foreground. A -// newline is appended to format by default. -func Green(format string, a ...interface{}) { colorPrint(format, FgGreen, a...) } - -// Yellow is a convenient helper function to print with yellow foreground. -// A newline is appended to format by default. -func Yellow(format string, a ...interface{}) { colorPrint(format, FgYellow, a...) } - -// Blue is a convenient helper function to print with blue foreground. A -// newline is appended to format by default. -func Blue(format string, a ...interface{}) { colorPrint(format, FgBlue, a...) } - -// Magenta is a convenient helper function to print with magenta foreground. -// A newline is appended to format by default. -func Magenta(format string, a ...interface{}) { colorPrint(format, FgMagenta, a...) } - -// Cyan is a convenient helper function to print with cyan foreground. A -// newline is appended to format by default. -func Cyan(format string, a ...interface{}) { colorPrint(format, FgCyan, a...) } - -// White is a convenient helper function to print with white foreground. A -// newline is appended to format by default. -func White(format string, a ...interface{}) { colorPrint(format, FgWhite, a...) } - -// BlackString is a convenient helper function to return a string with black -// foreground. -func BlackString(format string, a ...interface{}) string { return colorString(format, FgBlack, a...) } - -// RedString is a convenient helper function to return a string with red -// foreground. -func RedString(format string, a ...interface{}) string { return colorString(format, FgRed, a...) } - -// GreenString is a convenient helper function to return a string with green -// foreground. -func GreenString(format string, a ...interface{}) string { return colorString(format, FgGreen, a...) } - -// YellowString is a convenient helper function to return a string with yellow -// foreground. -func YellowString(format string, a ...interface{}) string { return colorString(format, FgYellow, a...) } - -// BlueString is a convenient helper function to return a string with blue -// foreground. -func BlueString(format string, a ...interface{}) string { return colorString(format, FgBlue, a...) } - -// MagentaString is a convenient helper function to return a string with magenta -// foreground. -func MagentaString(format string, a ...interface{}) string { - return colorString(format, FgMagenta, a...) -} - -// CyanString is a convenient helper function to return a string with cyan -// foreground. -func CyanString(format string, a ...interface{}) string { return colorString(format, FgCyan, a...) } - -// WhiteString is a convenient helper function to return a string with white -// foreground. -func WhiteString(format string, a ...interface{}) string { return colorString(format, FgWhite, a...) } - -// HiBlack is a convenient helper function to print with hi-intensity black foreground. A -// newline is appended to format by default. -func HiBlack(format string, a ...interface{}) { colorPrint(format, FgHiBlack, a...) } - -// HiRed is a convenient helper function to print with hi-intensity red foreground. A -// newline is appended to format by default. -func HiRed(format string, a ...interface{}) { colorPrint(format, FgHiRed, a...) } - -// HiGreen is a convenient helper function to print with hi-intensity green foreground. A -// newline is appended to format by default. -func HiGreen(format string, a ...interface{}) { colorPrint(format, FgHiGreen, a...) } - -// HiYellow is a convenient helper function to print with hi-intensity yellow foreground. -// A newline is appended to format by default. -func HiYellow(format string, a ...interface{}) { colorPrint(format, FgHiYellow, a...) } - -// HiBlue is a convenient helper function to print with hi-intensity blue foreground. A -// newline is appended to format by default. -func HiBlue(format string, a ...interface{}) { colorPrint(format, FgHiBlue, a...) } - -// HiMagenta is a convenient helper function to print with hi-intensity magenta foreground. -// A newline is appended to format by default. -func HiMagenta(format string, a ...interface{}) { colorPrint(format, FgHiMagenta, a...) } - -// HiCyan is a convenient helper function to print with hi-intensity cyan foreground. A -// newline is appended to format by default. -func HiCyan(format string, a ...interface{}) { colorPrint(format, FgHiCyan, a...) } - -// HiWhite is a convenient helper function to print with hi-intensity white foreground. A -// newline is appended to format by default. -func HiWhite(format string, a ...interface{}) { colorPrint(format, FgHiWhite, a...) } - -// HiBlackString is a convenient helper function to return a string with hi-intensity black -// foreground. -func HiBlackString(format string, a ...interface{}) string { - return colorString(format, FgHiBlack, a...) -} - -// HiRedString is a convenient helper function to return a string with hi-intensity red -// foreground. -func HiRedString(format string, a ...interface{}) string { return colorString(format, FgHiRed, a...) } - -// HiGreenString is a convenient helper function to return a string with hi-intensity green -// foreground. -func HiGreenString(format string, a ...interface{}) string { - return colorString(format, FgHiGreen, a...) -} - -// HiYellowString is a convenient helper function to return a string with hi-intensity yellow -// foreground. -func HiYellowString(format string, a ...interface{}) string { - return colorString(format, FgHiYellow, a...) -} - -// HiBlueString is a convenient helper function to return a string with hi-intensity blue -// foreground. -func HiBlueString(format string, a ...interface{}) string { return colorString(format, FgHiBlue, a...) } - -// HiMagentaString is a convenient helper function to return a string with hi-intensity magenta -// foreground. -func HiMagentaString(format string, a ...interface{}) string { - return colorString(format, FgHiMagenta, a...) -} - -// HiCyanString is a convenient helper function to return a string with hi-intensity cyan -// foreground. -func HiCyanString(format string, a ...interface{}) string { return colorString(format, FgHiCyan, a...) } - -// HiWhiteString is a convenient helper function to return a string with hi-intensity white -// foreground. -func HiWhiteString(format string, a ...interface{}) string { - return colorString(format, FgHiWhite, a...) -} diff --git a/vendor/github.com/fatih/color/doc.go b/vendor/github.com/fatih/color/doc.go deleted file mode 100644 index cf1e965..0000000 --- a/vendor/github.com/fatih/color/doc.go +++ /dev/null @@ -1,133 +0,0 @@ -/* -Package color is an ANSI color package to output colorized or SGR defined -output to the standard output. The API can be used in several way, pick one -that suits you. - -Use simple and default helper functions with predefined foreground colors: - - color.Cyan("Prints text in cyan.") - - // a newline will be appended automatically - color.Blue("Prints %s in blue.", "text") - - // More default foreground colors.. - color.Red("We have red") - color.Yellow("Yellow color too!") - color.Magenta("And many others ..") - - // Hi-intensity colors - color.HiGreen("Bright green color.") - color.HiBlack("Bright black means gray..") - color.HiWhite("Shiny white color!") - -However there are times where custom color mixes are required. Below are some -examples to create custom color objects and use the print functions of each -separate color object. - - // Create a new color object - c := color.New(color.FgCyan).Add(color.Underline) - c.Println("Prints cyan text with an underline.") - - // Or just add them to New() - d := color.New(color.FgCyan, color.Bold) - d.Printf("This prints bold cyan %s\n", "too!.") - - - // Mix up foreground and background colors, create new mixes! - red := color.New(color.FgRed) - - boldRed := red.Add(color.Bold) - boldRed.Println("This will print text in bold red.") - - whiteBackground := red.Add(color.BgWhite) - whiteBackground.Println("Red text with White background.") - - // Use your own io.Writer output - color.New(color.FgBlue).Fprintln(myWriter, "blue color!") - - blue := color.New(color.FgBlue) - blue.Fprint(myWriter, "This will print text in blue.") - -You can create PrintXxx functions to simplify even more: - - // Create a custom print function for convenient - red := color.New(color.FgRed).PrintfFunc() - red("warning") - red("error: %s", err) - - // Mix up multiple attributes - notice := color.New(color.Bold, color.FgGreen).PrintlnFunc() - notice("don't forget this...") - -You can also FprintXxx functions to pass your own io.Writer: - - blue := color.New(FgBlue).FprintfFunc() - blue(myWriter, "important notice: %s", stars) - - // Mix up with multiple attributes - success := color.New(color.Bold, color.FgGreen).FprintlnFunc() - success(myWriter, don't forget this...") - - -Or create SprintXxx functions to mix strings with other non-colorized strings: - - yellow := New(FgYellow).SprintFunc() - red := New(FgRed).SprintFunc() - - fmt.Printf("this is a %s and this is %s.\n", yellow("warning"), red("error")) - - info := New(FgWhite, BgGreen).SprintFunc() - fmt.Printf("this %s rocks!\n", info("package")) - -Windows support is enabled by default. All Print functions work as intended. -However only for color.SprintXXX functions, user should use fmt.FprintXXX and -set the output to color.Output: - - fmt.Fprintf(color.Output, "Windows support: %s", color.GreenString("PASS")) - - info := New(FgWhite, BgGreen).SprintFunc() - fmt.Fprintf(color.Output, "this %s rocks!\n", info("package")) - -Using with existing code is possible. Just use the Set() method to set the -standard output to the given parameters. That way a rewrite of an existing -code is not required. - - // Use handy standard colors. - color.Set(color.FgYellow) - - fmt.Println("Existing text will be now in Yellow") - fmt.Printf("This one %s\n", "too") - - color.Unset() // don't forget to unset - - // You can mix up parameters - color.Set(color.FgMagenta, color.Bold) - defer color.Unset() // use it in your function - - fmt.Println("All text will be now bold magenta.") - -There might be a case where you want to disable color output (for example to -pipe the standard output of your app to somewhere else). `Color` has support to -disable colors both globally and for single color definition. For example -suppose you have a CLI app and a `--no-color` bool flag. You can easily disable -the color output with: - - var flagNoColor = flag.Bool("no-color", false, "Disable color output") - - if *flagNoColor { - color.NoColor = true // disables colorized output - } - -It also has support for single color definitions (local). You can -disable/enable color output on the fly: - - c := color.New(color.FgCyan) - c.Println("Prints cyan text") - - c.DisableColor() - c.Println("This is printed without any color") - - c.EnableColor() - c.Println("This prints again cyan...") -*/ -package color diff --git a/vendor/github.com/fsnotify/fsnotify/AUTHORS b/vendor/github.com/fsnotify/fsnotify/AUTHORS deleted file mode 100644 index 0a5bf8f..0000000 --- a/vendor/github.com/fsnotify/fsnotify/AUTHORS +++ /dev/null @@ -1,46 +0,0 @@ -# Names should be added to this file as -# Name or Organization -# The email address is not required for organizations. - -# You can update this list using the following command: -# -# $ git shortlog -se | awk '{print $2 " " $3 " " $4}' - -# Please keep the list sorted. - -Adrien Bustany -Amit Krishnan -Bjørn Erik Pedersen -Bruno Bigras -Caleb Spare -Case Nelson -Chris Howey -Christoffer Buchholz -Daniel Wagner-Hall -Dave Cheney -Evan Phoenix -Francisco Souza -Hari haran -John C Barstow -Kelvin Fo -Ken-ichirou MATSUZAWA -Matt Layher -Nathan Youngman -Patrick -Paul Hammond -Pawel Knap -Pieter Droogendijk -Pursuit92 -Riku Voipio -Rob Figueiredo -Slawek Ligus -Soge Zhang -Tiffany Jernigan -Tilak Sharma -Travis Cline -Tudor Golubenco -Yukang -bronze1man -debrando -henrikedwards -铁哥 diff --git a/vendor/github.com/fsnotify/fsnotify/CHANGELOG.md b/vendor/github.com/fsnotify/fsnotify/CHANGELOG.md deleted file mode 100644 index 8c732c1..0000000 --- a/vendor/github.com/fsnotify/fsnotify/CHANGELOG.md +++ /dev/null @@ -1,307 +0,0 @@ -# Changelog - -## v1.4.2 / 2016-10-10 - -* Linux: use InotifyInit1 with IN_CLOEXEC to stop leaking a file descriptor to a child process when using fork/exec [#178](https://github.com/fsnotify/fsnotify/pull/178) (thanks @pattyshack) - -## v1.4.1 / 2016-10-04 - -* Fix flaky inotify stress test on Linux [#177](https://github.com/fsnotify/fsnotify/pull/177) (thanks @pattyshack) - -## v1.4.0 / 2016-10-01 - -* add a String() method to Event.Op [#165](https://github.com/fsnotify/fsnotify/pull/165) (thanks @oozie) - -## v1.3.1 / 2016-06-28 - -* Windows: fix for double backslash when watching the root of a drive [#151](https://github.com/fsnotify/fsnotify/issues/151) (thanks @brunoqc) - -## v1.3.0 / 2016-04-19 - -* Support linux/arm64 by [patching](https://go-review.googlesource.com/#/c/21971/) x/sys/unix and switching to to it from syscall (thanks @suihkulokki) [#135](https://github.com/fsnotify/fsnotify/pull/135) - -## v1.2.10 / 2016-03-02 - -* Fix golint errors in windows.go [#121](https://github.com/fsnotify/fsnotify/pull/121) (thanks @tiffanyfj) - -## v1.2.9 / 2016-01-13 - -kqueue: Fix logic for CREATE after REMOVE [#111](https://github.com/fsnotify/fsnotify/pull/111) (thanks @bep) - -## v1.2.8 / 2015-12-17 - -* kqueue: fix race condition in Close [#105](https://github.com/fsnotify/fsnotify/pull/105) (thanks @djui for reporting the issue and @ppknap for writing a failing test) -* inotify: fix race in test -* enable race detection for continuous integration (Linux, Mac, Windows) - -## v1.2.5 / 2015-10-17 - -* inotify: use epoll_create1 for arm64 support (requires Linux 2.6.27 or later) [#100](https://github.com/fsnotify/fsnotify/pull/100) (thanks @suihkulokki) -* inotify: fix path leaks [#73](https://github.com/fsnotify/fsnotify/pull/73) (thanks @chamaken) -* kqueue: watch for rename events on subdirectories [#83](https://github.com/fsnotify/fsnotify/pull/83) (thanks @guotie) -* kqueue: avoid infinite loops from symlinks cycles [#101](https://github.com/fsnotify/fsnotify/pull/101) (thanks @illicitonion) - -## v1.2.1 / 2015-10-14 - -* kqueue: don't watch named pipes [#98](https://github.com/fsnotify/fsnotify/pull/98) (thanks @evanphx) - -## v1.2.0 / 2015-02-08 - -* inotify: use epoll to wake up readEvents [#66](https://github.com/fsnotify/fsnotify/pull/66) (thanks @PieterD) -* inotify: closing watcher should now always shut down goroutine [#63](https://github.com/fsnotify/fsnotify/pull/63) (thanks @PieterD) -* kqueue: close kqueue after removing watches, fixes [#59](https://github.com/fsnotify/fsnotify/issues/59) - -## v1.1.1 / 2015-02-05 - -* inotify: Retry read on EINTR [#61](https://github.com/fsnotify/fsnotify/issues/61) (thanks @PieterD) - -## v1.1.0 / 2014-12-12 - -* kqueue: rework internals [#43](https://github.com/fsnotify/fsnotify/pull/43) - * add low-level functions - * only need to store flags on directories - * less mutexes [#13](https://github.com/fsnotify/fsnotify/issues/13) - * done can be an unbuffered channel - * remove calls to os.NewSyscallError -* More efficient string concatenation for Event.String() [#52](https://github.com/fsnotify/fsnotify/pull/52) (thanks @mdlayher) -* kqueue: fix regression in rework causing subdirectories to be watched [#48](https://github.com/fsnotify/fsnotify/issues/48) -* kqueue: cleanup internal watch before sending remove event [#51](https://github.com/fsnotify/fsnotify/issues/51) - -## v1.0.4 / 2014-09-07 - -* kqueue: add dragonfly to the build tags. -* Rename source code files, rearrange code so exported APIs are at the top. -* Add done channel to example code. [#37](https://github.com/fsnotify/fsnotify/pull/37) (thanks @chenyukang) - -## v1.0.3 / 2014-08-19 - -* [Fix] Windows MOVED_TO now translates to Create like on BSD and Linux. [#36](https://github.com/fsnotify/fsnotify/issues/36) - -## v1.0.2 / 2014-08-17 - -* [Fix] Missing create events on macOS. [#14](https://github.com/fsnotify/fsnotify/issues/14) (thanks @zhsso) -* [Fix] Make ./path and path equivalent. (thanks @zhsso) - -## v1.0.0 / 2014-08-15 - -* [API] Remove AddWatch on Windows, use Add. -* Improve documentation for exported identifiers. [#30](https://github.com/fsnotify/fsnotify/issues/30) -* Minor updates based on feedback from golint. - -## dev / 2014-07-09 - -* Moved to [github.com/fsnotify/fsnotify](https://github.com/fsnotify/fsnotify). -* Use os.NewSyscallError instead of returning errno (thanks @hariharan-uno) - -## dev / 2014-07-04 - -* kqueue: fix incorrect mutex used in Close() -* Update example to demonstrate usage of Op. - -## dev / 2014-06-28 - -* [API] Don't set the Write Op for attribute notifications [#4](https://github.com/fsnotify/fsnotify/issues/4) -* Fix for String() method on Event (thanks Alex Brainman) -* Don't build on Plan 9 or Solaris (thanks @4ad) - -## dev / 2014-06-21 - -* Events channel of type Event rather than *Event. -* [internal] use syscall constants directly for inotify and kqueue. -* [internal] kqueue: rename events to kevents and fileEvent to event. - -## dev / 2014-06-19 - -* Go 1.3+ required on Windows (uses syscall.ERROR_MORE_DATA internally). -* [internal] remove cookie from Event struct (unused). -* [internal] Event struct has the same definition across every OS. -* [internal] remove internal watch and removeWatch methods. - -## dev / 2014-06-12 - -* [API] Renamed Watch() to Add() and RemoveWatch() to Remove(). -* [API] Pluralized channel names: Events and Errors. -* [API] Renamed FileEvent struct to Event. -* [API] Op constants replace methods like IsCreate(). - -## dev / 2014-06-12 - -* Fix data race on kevent buffer (thanks @tilaks) [#98](https://github.com/howeyc/fsnotify/pull/98) - -## dev / 2014-05-23 - -* [API] Remove current implementation of WatchFlags. - * current implementation doesn't take advantage of OS for efficiency - * provides little benefit over filtering events as they are received, but has extra bookkeeping and mutexes - * no tests for the current implementation - * not fully implemented on Windows [#93](https://github.com/howeyc/fsnotify/issues/93#issuecomment-39285195) - -## v0.9.3 / 2014-12-31 - -* kqueue: cleanup internal watch before sending remove event [#51](https://github.com/fsnotify/fsnotify/issues/51) - -## v0.9.2 / 2014-08-17 - -* [Backport] Fix missing create events on macOS. [#14](https://github.com/fsnotify/fsnotify/issues/14) (thanks @zhsso) - -## v0.9.1 / 2014-06-12 - -* Fix data race on kevent buffer (thanks @tilaks) [#98](https://github.com/howeyc/fsnotify/pull/98) - -## v0.9.0 / 2014-01-17 - -* IsAttrib() for events that only concern a file's metadata [#79][] (thanks @abustany) -* [Fix] kqueue: fix deadlock [#77][] (thanks @cespare) -* [NOTICE] Development has moved to `code.google.com/p/go.exp/fsnotify` in preparation for inclusion in the Go standard library. - -## v0.8.12 / 2013-11-13 - -* [API] Remove FD_SET and friends from Linux adapter - -## v0.8.11 / 2013-11-02 - -* [Doc] Add Changelog [#72][] (thanks @nathany) -* [Doc] Spotlight and double modify events on macOS [#62][] (reported by @paulhammond) - -## v0.8.10 / 2013-10-19 - -* [Fix] kqueue: remove file watches when parent directory is removed [#71][] (reported by @mdwhatcott) -* [Fix] kqueue: race between Close and readEvents [#70][] (reported by @bernerdschaefer) -* [Doc] specify OS-specific limits in README (thanks @debrando) - -## v0.8.9 / 2013-09-08 - -* [Doc] Contributing (thanks @nathany) -* [Doc] update package path in example code [#63][] (thanks @paulhammond) -* [Doc] GoCI badge in README (Linux only) [#60][] -* [Doc] Cross-platform testing with Vagrant [#59][] (thanks @nathany) - -## v0.8.8 / 2013-06-17 - -* [Fix] Windows: handle `ERROR_MORE_DATA` on Windows [#49][] (thanks @jbowtie) - -## v0.8.7 / 2013-06-03 - -* [API] Make syscall flags internal -* [Fix] inotify: ignore event changes -* [Fix] race in symlink test [#45][] (reported by @srid) -* [Fix] tests on Windows -* lower case error messages - -## v0.8.6 / 2013-05-23 - -* kqueue: Use EVT_ONLY flag on Darwin -* [Doc] Update README with full example - -## v0.8.5 / 2013-05-09 - -* [Fix] inotify: allow monitoring of "broken" symlinks (thanks @tsg) - -## v0.8.4 / 2013-04-07 - -* [Fix] kqueue: watch all file events [#40][] (thanks @ChrisBuchholz) - -## v0.8.3 / 2013-03-13 - -* [Fix] inoitfy/kqueue memory leak [#36][] (reported by @nbkolchin) -* [Fix] kqueue: use fsnFlags for watching a directory [#33][] (reported by @nbkolchin) - -## v0.8.2 / 2013-02-07 - -* [Doc] add Authors -* [Fix] fix data races for map access [#29][] (thanks @fsouza) - -## v0.8.1 / 2013-01-09 - -* [Fix] Windows path separators -* [Doc] BSD License - -## v0.8.0 / 2012-11-09 - -* kqueue: directory watching improvements (thanks @vmirage) -* inotify: add `IN_MOVED_TO` [#25][] (requested by @cpisto) -* [Fix] kqueue: deleting watched directory [#24][] (reported by @jakerr) - -## v0.7.4 / 2012-10-09 - -* [Fix] inotify: fixes from https://codereview.appspot.com/5418045/ (ugorji) -* [Fix] kqueue: preserve watch flags when watching for delete [#21][] (reported by @robfig) -* [Fix] kqueue: watch the directory even if it isn't a new watch (thanks @robfig) -* [Fix] kqueue: modify after recreation of file - -## v0.7.3 / 2012-09-27 - -* [Fix] kqueue: watch with an existing folder inside the watched folder (thanks @vmirage) -* [Fix] kqueue: no longer get duplicate CREATE events - -## v0.7.2 / 2012-09-01 - -* kqueue: events for created directories - -## v0.7.1 / 2012-07-14 - -* [Fix] for renaming files - -## v0.7.0 / 2012-07-02 - -* [Feature] FSNotify flags -* [Fix] inotify: Added file name back to event path - -## v0.6.0 / 2012-06-06 - -* kqueue: watch files after directory created (thanks @tmc) - -## v0.5.1 / 2012-05-22 - -* [Fix] inotify: remove all watches before Close() - -## v0.5.0 / 2012-05-03 - -* [API] kqueue: return errors during watch instead of sending over channel -* kqueue: match symlink behavior on Linux -* inotify: add `DELETE_SELF` (requested by @taralx) -* [Fix] kqueue: handle EINTR (reported by @robfig) -* [Doc] Godoc example [#1][] (thanks @davecheney) - -## v0.4.0 / 2012-03-30 - -* Go 1 released: build with go tool -* [Feature] Windows support using winfsnotify -* Windows does not have attribute change notifications -* Roll attribute notifications into IsModify - -## v0.3.0 / 2012-02-19 - -* kqueue: add files when watch directory - -## v0.2.0 / 2011-12-30 - -* update to latest Go weekly code - -## v0.1.0 / 2011-10-19 - -* kqueue: add watch on file creation to match inotify -* kqueue: create file event -* inotify: ignore `IN_IGNORED` events -* event String() -* linux: common FileEvent functions -* initial commit - -[#79]: https://github.com/howeyc/fsnotify/pull/79 -[#77]: https://github.com/howeyc/fsnotify/pull/77 -[#72]: https://github.com/howeyc/fsnotify/issues/72 -[#71]: https://github.com/howeyc/fsnotify/issues/71 -[#70]: https://github.com/howeyc/fsnotify/issues/70 -[#63]: https://github.com/howeyc/fsnotify/issues/63 -[#62]: https://github.com/howeyc/fsnotify/issues/62 -[#60]: https://github.com/howeyc/fsnotify/issues/60 -[#59]: https://github.com/howeyc/fsnotify/issues/59 -[#49]: https://github.com/howeyc/fsnotify/issues/49 -[#45]: https://github.com/howeyc/fsnotify/issues/45 -[#40]: https://github.com/howeyc/fsnotify/issues/40 -[#36]: https://github.com/howeyc/fsnotify/issues/36 -[#33]: https://github.com/howeyc/fsnotify/issues/33 -[#29]: https://github.com/howeyc/fsnotify/issues/29 -[#25]: https://github.com/howeyc/fsnotify/issues/25 -[#24]: https://github.com/howeyc/fsnotify/issues/24 -[#21]: https://github.com/howeyc/fsnotify/issues/21 diff --git a/vendor/github.com/fsnotify/fsnotify/CONTRIBUTING.md b/vendor/github.com/fsnotify/fsnotify/CONTRIBUTING.md deleted file mode 100644 index 828a60b..0000000 --- a/vendor/github.com/fsnotify/fsnotify/CONTRIBUTING.md +++ /dev/null @@ -1,77 +0,0 @@ -# Contributing - -## Issues - -* Request features and report bugs using the [GitHub Issue Tracker](https://github.com/fsnotify/fsnotify/issues). -* Please indicate the platform you are using fsnotify on. -* A code example to reproduce the problem is appreciated. - -## Pull Requests - -### Contributor License Agreement - -fsnotify is derived from code in the [golang.org/x/exp](https://godoc.org/golang.org/x/exp) package and it may be included [in the standard library](https://github.com/fsnotify/fsnotify/issues/1) in the future. Therefore fsnotify carries the same [LICENSE](https://github.com/fsnotify/fsnotify/blob/master/LICENSE) as Go. Contributors retain their copyright, so you need to fill out a short form before we can accept your contribution: [Google Individual Contributor License Agreement](https://developers.google.com/open-source/cla/individual). - -Please indicate that you have signed the CLA in your pull request. - -### How fsnotify is Developed - -* Development is done on feature branches. -* Tests are run on BSD, Linux, macOS and Windows. -* Pull requests are reviewed and [applied to master][am] using [hub][]. - * Maintainers may modify or squash commits rather than asking contributors to. -* To issue a new release, the maintainers will: - * Update the CHANGELOG - * Tag a version, which will become available through gopkg.in. - -### How to Fork - -For smooth sailing, always use the original import path. Installing with `go get` makes this easy. - -1. Install from GitHub (`go get -u github.com/fsnotify/fsnotify`) -2. Create your feature branch (`git checkout -b my-new-feature`) -3. Ensure everything works and the tests pass (see below) -4. Commit your changes (`git commit -am 'Add some feature'`) - -Contribute upstream: - -1. Fork fsnotify on GitHub -2. Add your remote (`git remote add fork git@github.com:mycompany/repo.git`) -3. Push to the branch (`git push fork my-new-feature`) -4. Create a new Pull Request on GitHub - -This workflow is [thoroughly explained by Katrina Owen](https://splice.com/blog/contributing-open-source-git-repositories-go/). - -### Testing - -fsnotify uses build tags to compile different code on Linux, BSD, macOS, and Windows. - -Before doing a pull request, please do your best to test your changes on multiple platforms, and list which platforms you were able/unable to test on. - -To aid in cross-platform testing there is a Vagrantfile for Linux and BSD. - -* Install [Vagrant](http://www.vagrantup.com/) and [VirtualBox](https://www.virtualbox.org/) -* Setup [Vagrant Gopher](https://github.com/nathany/vagrant-gopher) in your `src` folder. -* Run `vagrant up` from the project folder. You can also setup just one box with `vagrant up linux` or `vagrant up bsd` (note: the BSD box doesn't support Windows hosts at this time, and NFS may prompt for your host OS password) -* Once setup, you can run the test suite on a given OS with a single command `vagrant ssh linux -c 'cd fsnotify/fsnotify; go test'`. -* When you're done, you will want to halt or destroy the Vagrant boxes. - -Notice: fsnotify file system events won't trigger in shared folders. The tests get around this limitation by using the /tmp directory. - -Right now there is no equivalent solution for Windows and macOS, but there are Windows VMs [freely available from Microsoft](http://www.modern.ie/en-us/virtualization-tools#downloads). - -### Maintainers - -Help maintaining fsnotify is welcome. To be a maintainer: - -* Submit a pull request and sign the CLA as above. -* You must be able to run the test suite on Mac, Windows, Linux and BSD. - -To keep master clean, the fsnotify project uses the "apply mail" workflow outlined in Nathaniel Talbott's post ["Merge pull request" Considered Harmful][am]. This requires installing [hub][]. - -All code changes should be internal pull requests. - -Releases are tagged using [Semantic Versioning](http://semver.org/). - -[hub]: https://github.com/github/hub -[am]: http://blog.spreedly.com/2014/06/24/merge-pull-request-considered-harmful/#.VGa5yZPF_Zs diff --git a/vendor/github.com/fsnotify/fsnotify/LICENSE b/vendor/github.com/fsnotify/fsnotify/LICENSE deleted file mode 100644 index f21e540..0000000 --- a/vendor/github.com/fsnotify/fsnotify/LICENSE +++ /dev/null @@ -1,28 +0,0 @@ -Copyright (c) 2012 The Go Authors. All rights reserved. -Copyright (c) 2012 fsnotify Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/fsnotify/fsnotify/README.md b/vendor/github.com/fsnotify/fsnotify/README.md deleted file mode 100644 index 3993207..0000000 --- a/vendor/github.com/fsnotify/fsnotify/README.md +++ /dev/null @@ -1,79 +0,0 @@ -# File system notifications for Go - -[![GoDoc](https://godoc.org/github.com/fsnotify/fsnotify?status.svg)](https://godoc.org/github.com/fsnotify/fsnotify) [![Go Report Card](https://goreportcard.com/badge/github.com/fsnotify/fsnotify)](https://goreportcard.com/report/github.com/fsnotify/fsnotify) - -fsnotify utilizes [golang.org/x/sys](https://godoc.org/golang.org/x/sys) rather than `syscall` from the standard library. Ensure you have the latest version installed by running: - -```console -go get -u golang.org/x/sys/... -``` - -Cross platform: Windows, Linux, BSD and macOS. - -|Adapter |OS |Status | -|----------|----------|----------| -|inotify |Linux 2.6.27 or later, Android\*|Supported [![Build Status](https://travis-ci.org/fsnotify/fsnotify.svg?branch=master)](https://travis-ci.org/fsnotify/fsnotify)| -|kqueue |BSD, macOS, iOS\*|Supported [![Build Status](https://travis-ci.org/fsnotify/fsnotify.svg?branch=master)](https://travis-ci.org/fsnotify/fsnotify)| -|ReadDirectoryChangesW|Windows|Supported [![Build status](https://ci.appveyor.com/api/projects/status/ivwjubaih4r0udeh/branch/master?svg=true)](https://ci.appveyor.com/project/NathanYoungman/fsnotify/branch/master)| -|FSEvents |macOS |[Planned](https://github.com/fsnotify/fsnotify/issues/11)| -|FEN |Solaris 11 |[In Progress](https://github.com/fsnotify/fsnotify/issues/12)| -|fanotify |Linux 2.6.37+ | | -|USN Journals |Windows |[Maybe](https://github.com/fsnotify/fsnotify/issues/53)| -|Polling |*All* |[Maybe](https://github.com/fsnotify/fsnotify/issues/9)| - -\* Android and iOS are untested. - -Please see [the documentation](https://godoc.org/github.com/fsnotify/fsnotify) and consult the [FAQ](#faq) for usage information. - -## API stability - -fsnotify is a fork of [howeyc/fsnotify](https://godoc.org/github.com/howeyc/fsnotify) with a new API as of v1.0. The API is based on [this design document](http://goo.gl/MrYxyA). - -All [releases](https://github.com/fsnotify/fsnotify/releases) are tagged based on [Semantic Versioning](http://semver.org/). Further API changes are [planned](https://github.com/fsnotify/fsnotify/milestones), and will be tagged with a new major revision number. - -Go 1.6 supports dependencies located in the `vendor/` folder. Unless you are creating a library, it is recommended that you copy fsnotify into `vendor/github.com/fsnotify/fsnotify` within your project, and likewise for `golang.org/x/sys`. - -## Contributing - -Please refer to [CONTRIBUTING][] before opening an issue or pull request. - -## Example - -See [example_test.go](https://github.com/fsnotify/fsnotify/blob/master/example_test.go). - -## FAQ - -**When a file is moved to another directory is it still being watched?** - -No (it shouldn't be, unless you are watching where it was moved to). - -**When I watch a directory, are all subdirectories watched as well?** - -No, you must add watches for any directory you want to watch (a recursive watcher is on the roadmap [#18][]). - -**Do I have to watch the Error and Event channels in a separate goroutine?** - -As of now, yes. Looking into making this single-thread friendly (see [howeyc #7][#7]) - -**Why am I receiving multiple events for the same file on OS X?** - -Spotlight indexing on OS X can result in multiple events (see [howeyc #62][#62]). A temporary workaround is to add your folder(s) to the *Spotlight Privacy settings* until we have a native FSEvents implementation (see [#11][]). - -**How many files can be watched at once?** - -There are OS-specific limits as to how many watches can be created: -* Linux: /proc/sys/fs/inotify/max_user_watches contains the limit, reaching this limit results in a "no space left on device" error. -* BSD / OSX: sysctl variables "kern.maxfiles" and "kern.maxfilesperproc", reaching these limits results in a "too many open files" error. - -[#62]: https://github.com/howeyc/fsnotify/issues/62 -[#18]: https://github.com/fsnotify/fsnotify/issues/18 -[#11]: https://github.com/fsnotify/fsnotify/issues/11 -[#7]: https://github.com/howeyc/fsnotify/issues/7 - -[contributing]: https://github.com/fsnotify/fsnotify/blob/master/CONTRIBUTING.md - -## Related Projects - -* [notify](https://github.com/rjeczalik/notify) -* [fsevents](https://github.com/fsnotify/fsevents) - diff --git a/vendor/github.com/fsnotify/fsnotify/fen.go b/vendor/github.com/fsnotify/fsnotify/fen.go deleted file mode 100644 index ced39cb..0000000 --- a/vendor/github.com/fsnotify/fsnotify/fen.go +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build solaris - -package fsnotify - -import ( - "errors" -) - -// Watcher watches a set of files, delivering events to a channel. -type Watcher struct { - Events chan Event - Errors chan error -} - -// NewWatcher establishes a new watcher with the underlying OS and begins waiting for events. -func NewWatcher() (*Watcher, error) { - return nil, errors.New("FEN based watcher not yet supported for fsnotify\n") -} - -// Close removes all watches and closes the events channel. -func (w *Watcher) Close() error { - return nil -} - -// Add starts watching the named file or directory (non-recursively). -func (w *Watcher) Add(name string) error { - return nil -} - -// Remove stops watching the the named file or directory (non-recursively). -func (w *Watcher) Remove(name string) error { - return nil -} diff --git a/vendor/github.com/fsnotify/fsnotify/fsnotify.go b/vendor/github.com/fsnotify/fsnotify/fsnotify.go deleted file mode 100644 index 190bf0d..0000000 --- a/vendor/github.com/fsnotify/fsnotify/fsnotify.go +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !plan9 - -// Package fsnotify provides a platform-independent interface for file system notifications. -package fsnotify - -import ( - "bytes" - "errors" - "fmt" -) - -// Event represents a single file system notification. -type Event struct { - Name string // Relative path to the file or directory. - Op Op // File operation that triggered the event. -} - -// Op describes a set of file operations. -type Op uint32 - -// These are the generalized file operations that can trigger a notification. -const ( - Create Op = 1 << iota - Write - Remove - Rename - Chmod -) - -func (op Op) String() string { - // Use a buffer for efficient string concatenation - var buffer bytes.Buffer - - if op&Create == Create { - buffer.WriteString("|CREATE") - } - if op&Remove == Remove { - buffer.WriteString("|REMOVE") - } - if op&Write == Write { - buffer.WriteString("|WRITE") - } - if op&Rename == Rename { - buffer.WriteString("|RENAME") - } - if op&Chmod == Chmod { - buffer.WriteString("|CHMOD") - } - if buffer.Len() == 0 { - return "" - } - return buffer.String()[1:] // Strip leading pipe -} - -// String returns a string representation of the event in the form -// "file: REMOVE|WRITE|..." -func (e Event) String() string { - return fmt.Sprintf("%q: %s", e.Name, e.Op.String()) -} - -// Common errors that can be reported by a watcher -var ErrEventOverflow = errors.New("fsnotify queue overflow") diff --git a/vendor/github.com/fsnotify/fsnotify/inotify.go b/vendor/github.com/fsnotify/fsnotify/inotify.go deleted file mode 100644 index d9fd1b8..0000000 --- a/vendor/github.com/fsnotify/fsnotify/inotify.go +++ /dev/null @@ -1,337 +0,0 @@ -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build linux - -package fsnotify - -import ( - "errors" - "fmt" - "io" - "os" - "path/filepath" - "strings" - "sync" - "unsafe" - - "golang.org/x/sys/unix" -) - -// Watcher watches a set of files, delivering events to a channel. -type Watcher struct { - Events chan Event - Errors chan error - mu sync.Mutex // Map access - fd int - poller *fdPoller - watches map[string]*watch // Map of inotify watches (key: path) - paths map[int]string // Map of watched paths (key: watch descriptor) - done chan struct{} // Channel for sending a "quit message" to the reader goroutine - doneResp chan struct{} // Channel to respond to Close -} - -// NewWatcher establishes a new watcher with the underlying OS and begins waiting for events. -func NewWatcher() (*Watcher, error) { - // Create inotify fd - fd, errno := unix.InotifyInit1(unix.IN_CLOEXEC) - if fd == -1 { - return nil, errno - } - // Create epoll - poller, err := newFdPoller(fd) - if err != nil { - unix.Close(fd) - return nil, err - } - w := &Watcher{ - fd: fd, - poller: poller, - watches: make(map[string]*watch), - paths: make(map[int]string), - Events: make(chan Event), - Errors: make(chan error), - done: make(chan struct{}), - doneResp: make(chan struct{}), - } - - go w.readEvents() - return w, nil -} - -func (w *Watcher) isClosed() bool { - select { - case <-w.done: - return true - default: - return false - } -} - -// Close removes all watches and closes the events channel. -func (w *Watcher) Close() error { - if w.isClosed() { - return nil - } - - // Send 'close' signal to goroutine, and set the Watcher to closed. - close(w.done) - - // Wake up goroutine - w.poller.wake() - - // Wait for goroutine to close - <-w.doneResp - - return nil -} - -// Add starts watching the named file or directory (non-recursively). -func (w *Watcher) Add(name string) error { - name = filepath.Clean(name) - if w.isClosed() { - return errors.New("inotify instance already closed") - } - - const agnosticEvents = unix.IN_MOVED_TO | unix.IN_MOVED_FROM | - unix.IN_CREATE | unix.IN_ATTRIB | unix.IN_MODIFY | - unix.IN_MOVE_SELF | unix.IN_DELETE | unix.IN_DELETE_SELF - - var flags uint32 = agnosticEvents - - w.mu.Lock() - defer w.mu.Unlock() - watchEntry := w.watches[name] - if watchEntry != nil { - flags |= watchEntry.flags | unix.IN_MASK_ADD - } - wd, errno := unix.InotifyAddWatch(w.fd, name, flags) - if wd == -1 { - return errno - } - - if watchEntry == nil { - w.watches[name] = &watch{wd: uint32(wd), flags: flags} - w.paths[wd] = name - } else { - watchEntry.wd = uint32(wd) - watchEntry.flags = flags - } - - return nil -} - -// Remove stops watching the named file or directory (non-recursively). -func (w *Watcher) Remove(name string) error { - name = filepath.Clean(name) - - // Fetch the watch. - w.mu.Lock() - defer w.mu.Unlock() - watch, ok := w.watches[name] - - // Remove it from inotify. - if !ok { - return fmt.Errorf("can't remove non-existent inotify watch for: %s", name) - } - - // We successfully removed the watch if InotifyRmWatch doesn't return an - // error, we need to clean up our internal state to ensure it matches - // inotify's kernel state. - delete(w.paths, int(watch.wd)) - delete(w.watches, name) - - // inotify_rm_watch will return EINVAL if the file has been deleted; - // the inotify will already have been removed. - // watches and pathes are deleted in ignoreLinux() implicitly and asynchronously - // by calling inotify_rm_watch() below. e.g. readEvents() goroutine receives IN_IGNORE - // so that EINVAL means that the wd is being rm_watch()ed or its file removed - // by another thread and we have not received IN_IGNORE event. - success, errno := unix.InotifyRmWatch(w.fd, watch.wd) - if success == -1 { - // TODO: Perhaps it's not helpful to return an error here in every case. - // the only two possible errors are: - // EBADF, which happens when w.fd is not a valid file descriptor of any kind. - // EINVAL, which is when fd is not an inotify descriptor or wd is not a valid watch descriptor. - // Watch descriptors are invalidated when they are removed explicitly or implicitly; - // explicitly by inotify_rm_watch, implicitly when the file they are watching is deleted. - return errno - } - - return nil -} - -type watch struct { - wd uint32 // Watch descriptor (as returned by the inotify_add_watch() syscall) - flags uint32 // inotify flags of this watch (see inotify(7) for the list of valid flags) -} - -// readEvents reads from the inotify file descriptor, converts the -// received events into Event objects and sends them via the Events channel -func (w *Watcher) readEvents() { - var ( - buf [unix.SizeofInotifyEvent * 4096]byte // Buffer for a maximum of 4096 raw events - n int // Number of bytes read with read() - errno error // Syscall errno - ok bool // For poller.wait - ) - - defer close(w.doneResp) - defer close(w.Errors) - defer close(w.Events) - defer unix.Close(w.fd) - defer w.poller.close() - - for { - // See if we have been closed. - if w.isClosed() { - return - } - - ok, errno = w.poller.wait() - if errno != nil { - select { - case w.Errors <- errno: - case <-w.done: - return - } - continue - } - - if !ok { - continue - } - - n, errno = unix.Read(w.fd, buf[:]) - // If a signal interrupted execution, see if we've been asked to close, and try again. - // http://man7.org/linux/man-pages/man7/signal.7.html : - // "Before Linux 3.8, reads from an inotify(7) file descriptor were not restartable" - if errno == unix.EINTR { - continue - } - - // unix.Read might have been woken up by Close. If so, we're done. - if w.isClosed() { - return - } - - if n < unix.SizeofInotifyEvent { - var err error - if n == 0 { - // If EOF is received. This should really never happen. - err = io.EOF - } else if n < 0 { - // If an error occurred while reading. - err = errno - } else { - // Read was too short. - err = errors.New("notify: short read in readEvents()") - } - select { - case w.Errors <- err: - case <-w.done: - return - } - continue - } - - var offset uint32 - // We don't know how many events we just read into the buffer - // While the offset points to at least one whole event... - for offset <= uint32(n-unix.SizeofInotifyEvent) { - // Point "raw" to the event in the buffer - raw := (*unix.InotifyEvent)(unsafe.Pointer(&buf[offset])) - - mask := uint32(raw.Mask) - nameLen := uint32(raw.Len) - - if mask&unix.IN_Q_OVERFLOW != 0 { - select { - case w.Errors <- ErrEventOverflow: - case <-w.done: - return - } - } - - // If the event happened to the watched directory or the watched file, the kernel - // doesn't append the filename to the event, but we would like to always fill the - // the "Name" field with a valid filename. We retrieve the path of the watch from - // the "paths" map. - w.mu.Lock() - name, ok := w.paths[int(raw.Wd)] - // IN_DELETE_SELF occurs when the file/directory being watched is removed. - // This is a sign to clean up the maps, otherwise we are no longer in sync - // with the inotify kernel state which has already deleted the watch - // automatically. - if ok && mask&unix.IN_DELETE_SELF == unix.IN_DELETE_SELF { - delete(w.paths, int(raw.Wd)) - delete(w.watches, name) - } - w.mu.Unlock() - - if nameLen > 0 { - // Point "bytes" at the first byte of the filename - bytes := (*[unix.PathMax]byte)(unsafe.Pointer(&buf[offset+unix.SizeofInotifyEvent])) - // The filename is padded with NULL bytes. TrimRight() gets rid of those. - name += "/" + strings.TrimRight(string(bytes[0:nameLen]), "\000") - } - - event := newEvent(name, mask) - - // Send the events that are not ignored on the events channel - if !event.ignoreLinux(mask) { - select { - case w.Events <- event: - case <-w.done: - return - } - } - - // Move to the next event in the buffer - offset += unix.SizeofInotifyEvent + nameLen - } - } -} - -// Certain types of events can be "ignored" and not sent over the Events -// channel. Such as events marked ignore by the kernel, or MODIFY events -// against files that do not exist. -func (e *Event) ignoreLinux(mask uint32) bool { - // Ignore anything the inotify API says to ignore - if mask&unix.IN_IGNORED == unix.IN_IGNORED { - return true - } - - // If the event is not a DELETE or RENAME, the file must exist. - // Otherwise the event is ignored. - // *Note*: this was put in place because it was seen that a MODIFY - // event was sent after the DELETE. This ignores that MODIFY and - // assumes a DELETE will come or has come if the file doesn't exist. - if !(e.Op&Remove == Remove || e.Op&Rename == Rename) { - _, statErr := os.Lstat(e.Name) - return os.IsNotExist(statErr) - } - return false -} - -// newEvent returns an platform-independent Event based on an inotify mask. -func newEvent(name string, mask uint32) Event { - e := Event{Name: name} - if mask&unix.IN_CREATE == unix.IN_CREATE || mask&unix.IN_MOVED_TO == unix.IN_MOVED_TO { - e.Op |= Create - } - if mask&unix.IN_DELETE_SELF == unix.IN_DELETE_SELF || mask&unix.IN_DELETE == unix.IN_DELETE { - e.Op |= Remove - } - if mask&unix.IN_MODIFY == unix.IN_MODIFY { - e.Op |= Write - } - if mask&unix.IN_MOVE_SELF == unix.IN_MOVE_SELF || mask&unix.IN_MOVED_FROM == unix.IN_MOVED_FROM { - e.Op |= Rename - } - if mask&unix.IN_ATTRIB == unix.IN_ATTRIB { - e.Op |= Chmod - } - return e -} diff --git a/vendor/github.com/fsnotify/fsnotify/inotify_poller.go b/vendor/github.com/fsnotify/fsnotify/inotify_poller.go deleted file mode 100644 index cc7db4b..0000000 --- a/vendor/github.com/fsnotify/fsnotify/inotify_poller.go +++ /dev/null @@ -1,187 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build linux - -package fsnotify - -import ( - "errors" - - "golang.org/x/sys/unix" -) - -type fdPoller struct { - fd int // File descriptor (as returned by the inotify_init() syscall) - epfd int // Epoll file descriptor - pipe [2]int // Pipe for waking up -} - -func emptyPoller(fd int) *fdPoller { - poller := new(fdPoller) - poller.fd = fd - poller.epfd = -1 - poller.pipe[0] = -1 - poller.pipe[1] = -1 - return poller -} - -// Create a new inotify poller. -// This creates an inotify handler, and an epoll handler. -func newFdPoller(fd int) (*fdPoller, error) { - var errno error - poller := emptyPoller(fd) - defer func() { - if errno != nil { - poller.close() - } - }() - poller.fd = fd - - // Create epoll fd - poller.epfd, errno = unix.EpollCreate1(0) - if poller.epfd == -1 { - return nil, errno - } - // Create pipe; pipe[0] is the read end, pipe[1] the write end. - errno = unix.Pipe2(poller.pipe[:], unix.O_NONBLOCK) - if errno != nil { - return nil, errno - } - - // Register inotify fd with epoll - event := unix.EpollEvent{ - Fd: int32(poller.fd), - Events: unix.EPOLLIN, - } - errno = unix.EpollCtl(poller.epfd, unix.EPOLL_CTL_ADD, poller.fd, &event) - if errno != nil { - return nil, errno - } - - // Register pipe fd with epoll - event = unix.EpollEvent{ - Fd: int32(poller.pipe[0]), - Events: unix.EPOLLIN, - } - errno = unix.EpollCtl(poller.epfd, unix.EPOLL_CTL_ADD, poller.pipe[0], &event) - if errno != nil { - return nil, errno - } - - return poller, nil -} - -// Wait using epoll. -// Returns true if something is ready to be read, -// false if there is not. -func (poller *fdPoller) wait() (bool, error) { - // 3 possible events per fd, and 2 fds, makes a maximum of 6 events. - // I don't know whether epoll_wait returns the number of events returned, - // or the total number of events ready. - // I decided to catch both by making the buffer one larger than the maximum. - events := make([]unix.EpollEvent, 7) - for { - n, errno := unix.EpollWait(poller.epfd, events, -1) - if n == -1 { - if errno == unix.EINTR { - continue - } - return false, errno - } - if n == 0 { - // If there are no events, try again. - continue - } - if n > 6 { - // This should never happen. More events were returned than should be possible. - return false, errors.New("epoll_wait returned more events than I know what to do with") - } - ready := events[:n] - epollhup := false - epollerr := false - epollin := false - for _, event := range ready { - if event.Fd == int32(poller.fd) { - if event.Events&unix.EPOLLHUP != 0 { - // This should not happen, but if it does, treat it as a wakeup. - epollhup = true - } - if event.Events&unix.EPOLLERR != 0 { - // If an error is waiting on the file descriptor, we should pretend - // something is ready to read, and let unix.Read pick up the error. - epollerr = true - } - if event.Events&unix.EPOLLIN != 0 { - // There is data to read. - epollin = true - } - } - if event.Fd == int32(poller.pipe[0]) { - if event.Events&unix.EPOLLHUP != 0 { - // Write pipe descriptor was closed, by us. This means we're closing down the - // watcher, and we should wake up. - } - if event.Events&unix.EPOLLERR != 0 { - // If an error is waiting on the pipe file descriptor. - // This is an absolute mystery, and should never ever happen. - return false, errors.New("Error on the pipe descriptor.") - } - if event.Events&unix.EPOLLIN != 0 { - // This is a regular wakeup, so we have to clear the buffer. - err := poller.clearWake() - if err != nil { - return false, err - } - } - } - } - - if epollhup || epollerr || epollin { - return true, nil - } - return false, nil - } -} - -// Close the write end of the poller. -func (poller *fdPoller) wake() error { - buf := make([]byte, 1) - n, errno := unix.Write(poller.pipe[1], buf) - if n == -1 { - if errno == unix.EAGAIN { - // Buffer is full, poller will wake. - return nil - } - return errno - } - return nil -} - -func (poller *fdPoller) clearWake() error { - // You have to be woken up a LOT in order to get to 100! - buf := make([]byte, 100) - n, errno := unix.Read(poller.pipe[0], buf) - if n == -1 { - if errno == unix.EAGAIN { - // Buffer is empty, someone else cleared our wake. - return nil - } - return errno - } - return nil -} - -// Close all poller file descriptors, but not the one passed to it. -func (poller *fdPoller) close() { - if poller.pipe[1] != -1 { - unix.Close(poller.pipe[1]) - } - if poller.pipe[0] != -1 { - unix.Close(poller.pipe[0]) - } - if poller.epfd != -1 { - unix.Close(poller.epfd) - } -} diff --git a/vendor/github.com/fsnotify/fsnotify/kqueue.go b/vendor/github.com/fsnotify/fsnotify/kqueue.go deleted file mode 100644 index c2b4acb..0000000 --- a/vendor/github.com/fsnotify/fsnotify/kqueue.go +++ /dev/null @@ -1,503 +0,0 @@ -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build freebsd openbsd netbsd dragonfly darwin - -package fsnotify - -import ( - "errors" - "fmt" - "io/ioutil" - "os" - "path/filepath" - "sync" - "time" - - "golang.org/x/sys/unix" -) - -// Watcher watches a set of files, delivering events to a channel. -type Watcher struct { - Events chan Event - Errors chan error - done chan bool // Channel for sending a "quit message" to the reader goroutine - - kq int // File descriptor (as returned by the kqueue() syscall). - - mu sync.Mutex // Protects access to watcher data - watches map[string]int // Map of watched file descriptors (key: path). - externalWatches map[string]bool // Map of watches added by user of the library. - dirFlags map[string]uint32 // Map of watched directories to fflags used in kqueue. - paths map[int]pathInfo // Map file descriptors to path names for processing kqueue events. - fileExists map[string]bool // Keep track of if we know this file exists (to stop duplicate create events). - isClosed bool // Set to true when Close() is first called -} - -type pathInfo struct { - name string - isDir bool -} - -// NewWatcher establishes a new watcher with the underlying OS and begins waiting for events. -func NewWatcher() (*Watcher, error) { - kq, err := kqueue() - if err != nil { - return nil, err - } - - w := &Watcher{ - kq: kq, - watches: make(map[string]int), - dirFlags: make(map[string]uint32), - paths: make(map[int]pathInfo), - fileExists: make(map[string]bool), - externalWatches: make(map[string]bool), - Events: make(chan Event), - Errors: make(chan error), - done: make(chan bool), - } - - go w.readEvents() - return w, nil -} - -// Close removes all watches and closes the events channel. -func (w *Watcher) Close() error { - w.mu.Lock() - if w.isClosed { - w.mu.Unlock() - return nil - } - w.isClosed = true - w.mu.Unlock() - - // copy paths to remove while locked - w.mu.Lock() - var pathsToRemove = make([]string, 0, len(w.watches)) - for name := range w.watches { - pathsToRemove = append(pathsToRemove, name) - } - w.mu.Unlock() - // unlock before calling Remove, which also locks - - var err error - for _, name := range pathsToRemove { - if e := w.Remove(name); e != nil && err == nil { - err = e - } - } - - // Send "quit" message to the reader goroutine: - w.done <- true - - return nil -} - -// Add starts watching the named file or directory (non-recursively). -func (w *Watcher) Add(name string) error { - w.mu.Lock() - w.externalWatches[name] = true - w.mu.Unlock() - _, err := w.addWatch(name, noteAllEvents) - return err -} - -// Remove stops watching the the named file or directory (non-recursively). -func (w *Watcher) Remove(name string) error { - name = filepath.Clean(name) - w.mu.Lock() - watchfd, ok := w.watches[name] - w.mu.Unlock() - if !ok { - return fmt.Errorf("can't remove non-existent kevent watch for: %s", name) - } - - const registerRemove = unix.EV_DELETE - if err := register(w.kq, []int{watchfd}, registerRemove, 0); err != nil { - return err - } - - unix.Close(watchfd) - - w.mu.Lock() - isDir := w.paths[watchfd].isDir - delete(w.watches, name) - delete(w.paths, watchfd) - delete(w.dirFlags, name) - w.mu.Unlock() - - // Find all watched paths that are in this directory that are not external. - if isDir { - var pathsToRemove []string - w.mu.Lock() - for _, path := range w.paths { - wdir, _ := filepath.Split(path.name) - if filepath.Clean(wdir) == name { - if !w.externalWatches[path.name] { - pathsToRemove = append(pathsToRemove, path.name) - } - } - } - w.mu.Unlock() - for _, name := range pathsToRemove { - // Since these are internal, not much sense in propagating error - // to the user, as that will just confuse them with an error about - // a path they did not explicitly watch themselves. - w.Remove(name) - } - } - - return nil -} - -// Watch all events (except NOTE_EXTEND, NOTE_LINK, NOTE_REVOKE) -const noteAllEvents = unix.NOTE_DELETE | unix.NOTE_WRITE | unix.NOTE_ATTRIB | unix.NOTE_RENAME - -// keventWaitTime to block on each read from kevent -var keventWaitTime = durationToTimespec(100 * time.Millisecond) - -// addWatch adds name to the watched file set. -// The flags are interpreted as described in kevent(2). -// Returns the real path to the file which was added, if any, which may be different from the one passed in the case of symlinks. -func (w *Watcher) addWatch(name string, flags uint32) (string, error) { - var isDir bool - // Make ./name and name equivalent - name = filepath.Clean(name) - - w.mu.Lock() - if w.isClosed { - w.mu.Unlock() - return "", errors.New("kevent instance already closed") - } - watchfd, alreadyWatching := w.watches[name] - // We already have a watch, but we can still override flags. - if alreadyWatching { - isDir = w.paths[watchfd].isDir - } - w.mu.Unlock() - - if !alreadyWatching { - fi, err := os.Lstat(name) - if err != nil { - return "", err - } - - // Don't watch sockets. - if fi.Mode()&os.ModeSocket == os.ModeSocket { - return "", nil - } - - // Don't watch named pipes. - if fi.Mode()&os.ModeNamedPipe == os.ModeNamedPipe { - return "", nil - } - - // Follow Symlinks - // Unfortunately, Linux can add bogus symlinks to watch list without - // issue, and Windows can't do symlinks period (AFAIK). To maintain - // consistency, we will act like everything is fine. There will simply - // be no file events for broken symlinks. - // Hence the returns of nil on errors. - if fi.Mode()&os.ModeSymlink == os.ModeSymlink { - name, err = filepath.EvalSymlinks(name) - if err != nil { - return "", nil - } - - w.mu.Lock() - _, alreadyWatching = w.watches[name] - w.mu.Unlock() - - if alreadyWatching { - return name, nil - } - - fi, err = os.Lstat(name) - if err != nil { - return "", nil - } - } - - watchfd, err = unix.Open(name, openMode, 0700) - if watchfd == -1 { - return "", err - } - - isDir = fi.IsDir() - } - - const registerAdd = unix.EV_ADD | unix.EV_CLEAR | unix.EV_ENABLE - if err := register(w.kq, []int{watchfd}, registerAdd, flags); err != nil { - unix.Close(watchfd) - return "", err - } - - if !alreadyWatching { - w.mu.Lock() - w.watches[name] = watchfd - w.paths[watchfd] = pathInfo{name: name, isDir: isDir} - w.mu.Unlock() - } - - if isDir { - // Watch the directory if it has not been watched before, - // or if it was watched before, but perhaps only a NOTE_DELETE (watchDirectoryFiles) - w.mu.Lock() - - watchDir := (flags&unix.NOTE_WRITE) == unix.NOTE_WRITE && - (!alreadyWatching || (w.dirFlags[name]&unix.NOTE_WRITE) != unix.NOTE_WRITE) - // Store flags so this watch can be updated later - w.dirFlags[name] = flags - w.mu.Unlock() - - if watchDir { - if err := w.watchDirectoryFiles(name); err != nil { - return "", err - } - } - } - return name, nil -} - -// readEvents reads from kqueue and converts the received kevents into -// Event values that it sends down the Events channel. -func (w *Watcher) readEvents() { - eventBuffer := make([]unix.Kevent_t, 10) - - for { - // See if there is a message on the "done" channel - select { - case <-w.done: - err := unix.Close(w.kq) - if err != nil { - w.Errors <- err - } - close(w.Events) - close(w.Errors) - return - default: - } - - // Get new events - kevents, err := read(w.kq, eventBuffer, &keventWaitTime) - // EINTR is okay, the syscall was interrupted before timeout expired. - if err != nil && err != unix.EINTR { - w.Errors <- err - continue - } - - // Flush the events we received to the Events channel - for len(kevents) > 0 { - kevent := &kevents[0] - watchfd := int(kevent.Ident) - mask := uint32(kevent.Fflags) - w.mu.Lock() - path := w.paths[watchfd] - w.mu.Unlock() - event := newEvent(path.name, mask) - - if path.isDir && !(event.Op&Remove == Remove) { - // Double check to make sure the directory exists. This can happen when - // we do a rm -fr on a recursively watched folders and we receive a - // modification event first but the folder has been deleted and later - // receive the delete event - if _, err := os.Lstat(event.Name); os.IsNotExist(err) { - // mark is as delete event - event.Op |= Remove - } - } - - if event.Op&Rename == Rename || event.Op&Remove == Remove { - w.Remove(event.Name) - w.mu.Lock() - delete(w.fileExists, event.Name) - w.mu.Unlock() - } - - if path.isDir && event.Op&Write == Write && !(event.Op&Remove == Remove) { - w.sendDirectoryChangeEvents(event.Name) - } else { - // Send the event on the Events channel - w.Events <- event - } - - if event.Op&Remove == Remove { - // Look for a file that may have overwritten this. - // For example, mv f1 f2 will delete f2, then create f2. - if path.isDir { - fileDir := filepath.Clean(event.Name) - w.mu.Lock() - _, found := w.watches[fileDir] - w.mu.Unlock() - if found { - // make sure the directory exists before we watch for changes. When we - // do a recursive watch and perform rm -fr, the parent directory might - // have gone missing, ignore the missing directory and let the - // upcoming delete event remove the watch from the parent directory. - if _, err := os.Lstat(fileDir); err == nil { - w.sendDirectoryChangeEvents(fileDir) - } - } - } else { - filePath := filepath.Clean(event.Name) - if fileInfo, err := os.Lstat(filePath); err == nil { - w.sendFileCreatedEventIfNew(filePath, fileInfo) - } - } - } - - // Move to next event - kevents = kevents[1:] - } - } -} - -// newEvent returns an platform-independent Event based on kqueue Fflags. -func newEvent(name string, mask uint32) Event { - e := Event{Name: name} - if mask&unix.NOTE_DELETE == unix.NOTE_DELETE { - e.Op |= Remove - } - if mask&unix.NOTE_WRITE == unix.NOTE_WRITE { - e.Op |= Write - } - if mask&unix.NOTE_RENAME == unix.NOTE_RENAME { - e.Op |= Rename - } - if mask&unix.NOTE_ATTRIB == unix.NOTE_ATTRIB { - e.Op |= Chmod - } - return e -} - -func newCreateEvent(name string) Event { - return Event{Name: name, Op: Create} -} - -// watchDirectoryFiles to mimic inotify when adding a watch on a directory -func (w *Watcher) watchDirectoryFiles(dirPath string) error { - // Get all files - files, err := ioutil.ReadDir(dirPath) - if err != nil { - return err - } - - for _, fileInfo := range files { - filePath := filepath.Join(dirPath, fileInfo.Name()) - filePath, err = w.internalWatch(filePath, fileInfo) - if err != nil { - return err - } - - w.mu.Lock() - w.fileExists[filePath] = true - w.mu.Unlock() - } - - return nil -} - -// sendDirectoryEvents searches the directory for newly created files -// and sends them over the event channel. This functionality is to have -// the BSD version of fsnotify match Linux inotify which provides a -// create event for files created in a watched directory. -func (w *Watcher) sendDirectoryChangeEvents(dirPath string) { - // Get all files - files, err := ioutil.ReadDir(dirPath) - if err != nil { - w.Errors <- err - } - - // Search for new files - for _, fileInfo := range files { - filePath := filepath.Join(dirPath, fileInfo.Name()) - err := w.sendFileCreatedEventIfNew(filePath, fileInfo) - - if err != nil { - return - } - } -} - -// sendFileCreatedEvent sends a create event if the file isn't already being tracked. -func (w *Watcher) sendFileCreatedEventIfNew(filePath string, fileInfo os.FileInfo) (err error) { - w.mu.Lock() - _, doesExist := w.fileExists[filePath] - w.mu.Unlock() - if !doesExist { - // Send create event - w.Events <- newCreateEvent(filePath) - } - - // like watchDirectoryFiles (but without doing another ReadDir) - filePath, err = w.internalWatch(filePath, fileInfo) - if err != nil { - return err - } - - w.mu.Lock() - w.fileExists[filePath] = true - w.mu.Unlock() - - return nil -} - -func (w *Watcher) internalWatch(name string, fileInfo os.FileInfo) (string, error) { - if fileInfo.IsDir() { - // mimic Linux providing delete events for subdirectories - // but preserve the flags used if currently watching subdirectory - w.mu.Lock() - flags := w.dirFlags[name] - w.mu.Unlock() - - flags |= unix.NOTE_DELETE | unix.NOTE_RENAME - return w.addWatch(name, flags) - } - - // watch file to mimic Linux inotify - return w.addWatch(name, noteAllEvents) -} - -// kqueue creates a new kernel event queue and returns a descriptor. -func kqueue() (kq int, err error) { - kq, err = unix.Kqueue() - if kq == -1 { - return kq, err - } - return kq, nil -} - -// register events with the queue -func register(kq int, fds []int, flags int, fflags uint32) error { - changes := make([]unix.Kevent_t, len(fds)) - - for i, fd := range fds { - // SetKevent converts int to the platform-specific types: - unix.SetKevent(&changes[i], fd, unix.EVFILT_VNODE, flags) - changes[i].Fflags = fflags - } - - // register the events - success, err := unix.Kevent(kq, changes, nil, nil) - if success == -1 { - return err - } - return nil -} - -// read retrieves pending events, or waits until an event occurs. -// A timeout of nil blocks indefinitely, while 0 polls the queue. -func read(kq int, events []unix.Kevent_t, timeout *unix.Timespec) ([]unix.Kevent_t, error) { - n, err := unix.Kevent(kq, nil, events, timeout) - if err != nil { - return nil, err - } - return events[0:n], nil -} - -// durationToTimespec prepares a timeout value -func durationToTimespec(d time.Duration) unix.Timespec { - return unix.NsecToTimespec(d.Nanoseconds()) -} diff --git a/vendor/github.com/fsnotify/fsnotify/open_mode_bsd.go b/vendor/github.com/fsnotify/fsnotify/open_mode_bsd.go deleted file mode 100644 index 7d8de14..0000000 --- a/vendor/github.com/fsnotify/fsnotify/open_mode_bsd.go +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build freebsd openbsd netbsd dragonfly - -package fsnotify - -import "golang.org/x/sys/unix" - -const openMode = unix.O_NONBLOCK | unix.O_RDONLY diff --git a/vendor/github.com/fsnotify/fsnotify/open_mode_darwin.go b/vendor/github.com/fsnotify/fsnotify/open_mode_darwin.go deleted file mode 100644 index 9139e17..0000000 --- a/vendor/github.com/fsnotify/fsnotify/open_mode_darwin.go +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build darwin - -package fsnotify - -import "golang.org/x/sys/unix" - -// note: this constant is not defined on BSD -const openMode = unix.O_EVTONLY diff --git a/vendor/github.com/fsnotify/fsnotify/windows.go b/vendor/github.com/fsnotify/fsnotify/windows.go deleted file mode 100644 index 09436f3..0000000 --- a/vendor/github.com/fsnotify/fsnotify/windows.go +++ /dev/null @@ -1,561 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package fsnotify - -import ( - "errors" - "fmt" - "os" - "path/filepath" - "runtime" - "sync" - "syscall" - "unsafe" -) - -// Watcher watches a set of files, delivering events to a channel. -type Watcher struct { - Events chan Event - Errors chan error - isClosed bool // Set to true when Close() is first called - mu sync.Mutex // Map access - port syscall.Handle // Handle to completion port - watches watchMap // Map of watches (key: i-number) - input chan *input // Inputs to the reader are sent on this channel - quit chan chan<- error -} - -// NewWatcher establishes a new watcher with the underlying OS and begins waiting for events. -func NewWatcher() (*Watcher, error) { - port, e := syscall.CreateIoCompletionPort(syscall.InvalidHandle, 0, 0, 0) - if e != nil { - return nil, os.NewSyscallError("CreateIoCompletionPort", e) - } - w := &Watcher{ - port: port, - watches: make(watchMap), - input: make(chan *input, 1), - Events: make(chan Event, 50), - Errors: make(chan error), - quit: make(chan chan<- error, 1), - } - go w.readEvents() - return w, nil -} - -// Close removes all watches and closes the events channel. -func (w *Watcher) Close() error { - if w.isClosed { - return nil - } - w.isClosed = true - - // Send "quit" message to the reader goroutine - ch := make(chan error) - w.quit <- ch - if err := w.wakeupReader(); err != nil { - return err - } - return <-ch -} - -// Add starts watching the named file or directory (non-recursively). -func (w *Watcher) Add(name string) error { - if w.isClosed { - return errors.New("watcher already closed") - } - in := &input{ - op: opAddWatch, - path: filepath.Clean(name), - flags: sysFSALLEVENTS, - reply: make(chan error), - } - w.input <- in - if err := w.wakeupReader(); err != nil { - return err - } - return <-in.reply -} - -// Remove stops watching the the named file or directory (non-recursively). -func (w *Watcher) Remove(name string) error { - in := &input{ - op: opRemoveWatch, - path: filepath.Clean(name), - reply: make(chan error), - } - w.input <- in - if err := w.wakeupReader(); err != nil { - return err - } - return <-in.reply -} - -const ( - // Options for AddWatch - sysFSONESHOT = 0x80000000 - sysFSONLYDIR = 0x1000000 - - // Events - sysFSACCESS = 0x1 - sysFSALLEVENTS = 0xfff - sysFSATTRIB = 0x4 - sysFSCLOSE = 0x18 - sysFSCREATE = 0x100 - sysFSDELETE = 0x200 - sysFSDELETESELF = 0x400 - sysFSMODIFY = 0x2 - sysFSMOVE = 0xc0 - sysFSMOVEDFROM = 0x40 - sysFSMOVEDTO = 0x80 - sysFSMOVESELF = 0x800 - - // Special events - sysFSIGNORED = 0x8000 - sysFSQOVERFLOW = 0x4000 -) - -func newEvent(name string, mask uint32) Event { - e := Event{Name: name} - if mask&sysFSCREATE == sysFSCREATE || mask&sysFSMOVEDTO == sysFSMOVEDTO { - e.Op |= Create - } - if mask&sysFSDELETE == sysFSDELETE || mask&sysFSDELETESELF == sysFSDELETESELF { - e.Op |= Remove - } - if mask&sysFSMODIFY == sysFSMODIFY { - e.Op |= Write - } - if mask&sysFSMOVE == sysFSMOVE || mask&sysFSMOVESELF == sysFSMOVESELF || mask&sysFSMOVEDFROM == sysFSMOVEDFROM { - e.Op |= Rename - } - if mask&sysFSATTRIB == sysFSATTRIB { - e.Op |= Chmod - } - return e -} - -const ( - opAddWatch = iota - opRemoveWatch -) - -const ( - provisional uint64 = 1 << (32 + iota) -) - -type input struct { - op int - path string - flags uint32 - reply chan error -} - -type inode struct { - handle syscall.Handle - volume uint32 - index uint64 -} - -type watch struct { - ov syscall.Overlapped - ino *inode // i-number - path string // Directory path - mask uint64 // Directory itself is being watched with these notify flags - names map[string]uint64 // Map of names being watched and their notify flags - rename string // Remembers the old name while renaming a file - buf [4096]byte -} - -type indexMap map[uint64]*watch -type watchMap map[uint32]indexMap - -func (w *Watcher) wakeupReader() error { - e := syscall.PostQueuedCompletionStatus(w.port, 0, 0, nil) - if e != nil { - return os.NewSyscallError("PostQueuedCompletionStatus", e) - } - return nil -} - -func getDir(pathname string) (dir string, err error) { - attr, e := syscall.GetFileAttributes(syscall.StringToUTF16Ptr(pathname)) - if e != nil { - return "", os.NewSyscallError("GetFileAttributes", e) - } - if attr&syscall.FILE_ATTRIBUTE_DIRECTORY != 0 { - dir = pathname - } else { - dir, _ = filepath.Split(pathname) - dir = filepath.Clean(dir) - } - return -} - -func getIno(path string) (ino *inode, err error) { - h, e := syscall.CreateFile(syscall.StringToUTF16Ptr(path), - syscall.FILE_LIST_DIRECTORY, - syscall.FILE_SHARE_READ|syscall.FILE_SHARE_WRITE|syscall.FILE_SHARE_DELETE, - nil, syscall.OPEN_EXISTING, - syscall.FILE_FLAG_BACKUP_SEMANTICS|syscall.FILE_FLAG_OVERLAPPED, 0) - if e != nil { - return nil, os.NewSyscallError("CreateFile", e) - } - var fi syscall.ByHandleFileInformation - if e = syscall.GetFileInformationByHandle(h, &fi); e != nil { - syscall.CloseHandle(h) - return nil, os.NewSyscallError("GetFileInformationByHandle", e) - } - ino = &inode{ - handle: h, - volume: fi.VolumeSerialNumber, - index: uint64(fi.FileIndexHigh)<<32 | uint64(fi.FileIndexLow), - } - return ino, nil -} - -// Must run within the I/O thread. -func (m watchMap) get(ino *inode) *watch { - if i := m[ino.volume]; i != nil { - return i[ino.index] - } - return nil -} - -// Must run within the I/O thread. -func (m watchMap) set(ino *inode, watch *watch) { - i := m[ino.volume] - if i == nil { - i = make(indexMap) - m[ino.volume] = i - } - i[ino.index] = watch -} - -// Must run within the I/O thread. -func (w *Watcher) addWatch(pathname string, flags uint64) error { - dir, err := getDir(pathname) - if err != nil { - return err - } - if flags&sysFSONLYDIR != 0 && pathname != dir { - return nil - } - ino, err := getIno(dir) - if err != nil { - return err - } - w.mu.Lock() - watchEntry := w.watches.get(ino) - w.mu.Unlock() - if watchEntry == nil { - if _, e := syscall.CreateIoCompletionPort(ino.handle, w.port, 0, 0); e != nil { - syscall.CloseHandle(ino.handle) - return os.NewSyscallError("CreateIoCompletionPort", e) - } - watchEntry = &watch{ - ino: ino, - path: dir, - names: make(map[string]uint64), - } - w.mu.Lock() - w.watches.set(ino, watchEntry) - w.mu.Unlock() - flags |= provisional - } else { - syscall.CloseHandle(ino.handle) - } - if pathname == dir { - watchEntry.mask |= flags - } else { - watchEntry.names[filepath.Base(pathname)] |= flags - } - if err = w.startRead(watchEntry); err != nil { - return err - } - if pathname == dir { - watchEntry.mask &= ^provisional - } else { - watchEntry.names[filepath.Base(pathname)] &= ^provisional - } - return nil -} - -// Must run within the I/O thread. -func (w *Watcher) remWatch(pathname string) error { - dir, err := getDir(pathname) - if err != nil { - return err - } - ino, err := getIno(dir) - if err != nil { - return err - } - w.mu.Lock() - watch := w.watches.get(ino) - w.mu.Unlock() - if watch == nil { - return fmt.Errorf("can't remove non-existent watch for: %s", pathname) - } - if pathname == dir { - w.sendEvent(watch.path, watch.mask&sysFSIGNORED) - watch.mask = 0 - } else { - name := filepath.Base(pathname) - w.sendEvent(filepath.Join(watch.path, name), watch.names[name]&sysFSIGNORED) - delete(watch.names, name) - } - return w.startRead(watch) -} - -// Must run within the I/O thread. -func (w *Watcher) deleteWatch(watch *watch) { - for name, mask := range watch.names { - if mask&provisional == 0 { - w.sendEvent(filepath.Join(watch.path, name), mask&sysFSIGNORED) - } - delete(watch.names, name) - } - if watch.mask != 0 { - if watch.mask&provisional == 0 { - w.sendEvent(watch.path, watch.mask&sysFSIGNORED) - } - watch.mask = 0 - } -} - -// Must run within the I/O thread. -func (w *Watcher) startRead(watch *watch) error { - if e := syscall.CancelIo(watch.ino.handle); e != nil { - w.Errors <- os.NewSyscallError("CancelIo", e) - w.deleteWatch(watch) - } - mask := toWindowsFlags(watch.mask) - for _, m := range watch.names { - mask |= toWindowsFlags(m) - } - if mask == 0 { - if e := syscall.CloseHandle(watch.ino.handle); e != nil { - w.Errors <- os.NewSyscallError("CloseHandle", e) - } - w.mu.Lock() - delete(w.watches[watch.ino.volume], watch.ino.index) - w.mu.Unlock() - return nil - } - e := syscall.ReadDirectoryChanges(watch.ino.handle, &watch.buf[0], - uint32(unsafe.Sizeof(watch.buf)), false, mask, nil, &watch.ov, 0) - if e != nil { - err := os.NewSyscallError("ReadDirectoryChanges", e) - if e == syscall.ERROR_ACCESS_DENIED && watch.mask&provisional == 0 { - // Watched directory was probably removed - if w.sendEvent(watch.path, watch.mask&sysFSDELETESELF) { - if watch.mask&sysFSONESHOT != 0 { - watch.mask = 0 - } - } - err = nil - } - w.deleteWatch(watch) - w.startRead(watch) - return err - } - return nil -} - -// readEvents reads from the I/O completion port, converts the -// received events into Event objects and sends them via the Events channel. -// Entry point to the I/O thread. -func (w *Watcher) readEvents() { - var ( - n, key uint32 - ov *syscall.Overlapped - ) - runtime.LockOSThread() - - for { - e := syscall.GetQueuedCompletionStatus(w.port, &n, &key, &ov, syscall.INFINITE) - watch := (*watch)(unsafe.Pointer(ov)) - - if watch == nil { - select { - case ch := <-w.quit: - w.mu.Lock() - var indexes []indexMap - for _, index := range w.watches { - indexes = append(indexes, index) - } - w.mu.Unlock() - for _, index := range indexes { - for _, watch := range index { - w.deleteWatch(watch) - w.startRead(watch) - } - } - var err error - if e := syscall.CloseHandle(w.port); e != nil { - err = os.NewSyscallError("CloseHandle", e) - } - close(w.Events) - close(w.Errors) - ch <- err - return - case in := <-w.input: - switch in.op { - case opAddWatch: - in.reply <- w.addWatch(in.path, uint64(in.flags)) - case opRemoveWatch: - in.reply <- w.remWatch(in.path) - } - default: - } - continue - } - - switch e { - case syscall.ERROR_MORE_DATA: - if watch == nil { - w.Errors <- errors.New("ERROR_MORE_DATA has unexpectedly null lpOverlapped buffer") - } else { - // The i/o succeeded but the buffer is full. - // In theory we should be building up a full packet. - // In practice we can get away with just carrying on. - n = uint32(unsafe.Sizeof(watch.buf)) - } - case syscall.ERROR_ACCESS_DENIED: - // Watched directory was probably removed - w.sendEvent(watch.path, watch.mask&sysFSDELETESELF) - w.deleteWatch(watch) - w.startRead(watch) - continue - case syscall.ERROR_OPERATION_ABORTED: - // CancelIo was called on this handle - continue - default: - w.Errors <- os.NewSyscallError("GetQueuedCompletionPort", e) - continue - case nil: - } - - var offset uint32 - for { - if n == 0 { - w.Events <- newEvent("", sysFSQOVERFLOW) - w.Errors <- errors.New("short read in readEvents()") - break - } - - // Point "raw" to the event in the buffer - raw := (*syscall.FileNotifyInformation)(unsafe.Pointer(&watch.buf[offset])) - buf := (*[syscall.MAX_PATH]uint16)(unsafe.Pointer(&raw.FileName)) - name := syscall.UTF16ToString(buf[:raw.FileNameLength/2]) - fullname := filepath.Join(watch.path, name) - - var mask uint64 - switch raw.Action { - case syscall.FILE_ACTION_REMOVED: - mask = sysFSDELETESELF - case syscall.FILE_ACTION_MODIFIED: - mask = sysFSMODIFY - case syscall.FILE_ACTION_RENAMED_OLD_NAME: - watch.rename = name - case syscall.FILE_ACTION_RENAMED_NEW_NAME: - if watch.names[watch.rename] != 0 { - watch.names[name] |= watch.names[watch.rename] - delete(watch.names, watch.rename) - mask = sysFSMOVESELF - } - } - - sendNameEvent := func() { - if w.sendEvent(fullname, watch.names[name]&mask) { - if watch.names[name]&sysFSONESHOT != 0 { - delete(watch.names, name) - } - } - } - if raw.Action != syscall.FILE_ACTION_RENAMED_NEW_NAME { - sendNameEvent() - } - if raw.Action == syscall.FILE_ACTION_REMOVED { - w.sendEvent(fullname, watch.names[name]&sysFSIGNORED) - delete(watch.names, name) - } - if w.sendEvent(fullname, watch.mask&toFSnotifyFlags(raw.Action)) { - if watch.mask&sysFSONESHOT != 0 { - watch.mask = 0 - } - } - if raw.Action == syscall.FILE_ACTION_RENAMED_NEW_NAME { - fullname = filepath.Join(watch.path, watch.rename) - sendNameEvent() - } - - // Move to the next event in the buffer - if raw.NextEntryOffset == 0 { - break - } - offset += raw.NextEntryOffset - - // Error! - if offset >= n { - w.Errors <- errors.New("Windows system assumed buffer larger than it is, events have likely been missed.") - break - } - } - - if err := w.startRead(watch); err != nil { - w.Errors <- err - } - } -} - -func (w *Watcher) sendEvent(name string, mask uint64) bool { - if mask == 0 { - return false - } - event := newEvent(name, uint32(mask)) - select { - case ch := <-w.quit: - w.quit <- ch - case w.Events <- event: - } - return true -} - -func toWindowsFlags(mask uint64) uint32 { - var m uint32 - if mask&sysFSACCESS != 0 { - m |= syscall.FILE_NOTIFY_CHANGE_LAST_ACCESS - } - if mask&sysFSMODIFY != 0 { - m |= syscall.FILE_NOTIFY_CHANGE_LAST_WRITE - } - if mask&sysFSATTRIB != 0 { - m |= syscall.FILE_NOTIFY_CHANGE_ATTRIBUTES - } - if mask&(sysFSMOVE|sysFSCREATE|sysFSDELETE) != 0 { - m |= syscall.FILE_NOTIFY_CHANGE_FILE_NAME | syscall.FILE_NOTIFY_CHANGE_DIR_NAME - } - return m -} - -func toFSnotifyFlags(action uint32) uint64 { - switch action { - case syscall.FILE_ACTION_ADDED: - return sysFSCREATE - case syscall.FILE_ACTION_REMOVED: - return sysFSDELETE - case syscall.FILE_ACTION_MODIFIED: - return sysFSMODIFY - case syscall.FILE_ACTION_RENAMED_OLD_NAME: - return sysFSMOVEDFROM - case syscall.FILE_ACTION_RENAMED_NEW_NAME: - return sysFSMOVEDTO - } - return 0 -} diff --git a/vendor/github.com/hashicorp/hcl/LICENSE b/vendor/github.com/hashicorp/hcl/LICENSE deleted file mode 100644 index c33dcc7..0000000 --- a/vendor/github.com/hashicorp/hcl/LICENSE +++ /dev/null @@ -1,354 +0,0 @@ -Mozilla Public License, version 2.0 - -1. Definitions - -1.1. “Contributor” - - means each individual or legal entity that creates, contributes to the - creation of, or owns Covered Software. - -1.2. “Contributor Version” - - means the combination of the Contributions of others (if any) used by a - Contributor and that particular Contributor’s Contribution. - -1.3. “Contribution” - - means Covered Software of a particular Contributor. - -1.4. “Covered Software” - - means Source Code Form to which the initial Contributor has attached the - notice in Exhibit A, the Executable Form of such Source Code Form, and - Modifications of such Source Code Form, in each case including portions - thereof. - -1.5. “Incompatible With Secondary Licenses” - means - - a. that the initial Contributor has attached the notice described in - Exhibit B to the Covered Software; or - - b. that the Covered Software was made available under the terms of version - 1.1 or earlier of the License, but not also under the terms of a - Secondary License. - -1.6. “Executable Form” - - means any form of the work other than Source Code Form. - -1.7. “Larger Work” - - means a work that combines Covered Software with other material, in a separate - file or files, that is not Covered Software. - -1.8. “License” - - means this document. - -1.9. “Licensable” - - means having the right to grant, to the maximum extent possible, whether at the - time of the initial grant or subsequently, any and all of the rights conveyed by - this License. - -1.10. “Modifications” - - means any of the following: - - a. any file in Source Code Form that results from an addition to, deletion - from, or modification of the contents of Covered Software; or - - b. any new file in Source Code Form that contains any Covered Software. - -1.11. “Patent Claims” of a Contributor - - means any patent claim(s), including without limitation, method, process, - and apparatus claims, in any patent Licensable by such Contributor that - would be infringed, but for the grant of the License, by the making, - using, selling, offering for sale, having made, import, or transfer of - either its Contributions or its Contributor Version. - -1.12. “Secondary License” - - means either the GNU General Public License, Version 2.0, the GNU Lesser - General Public License, Version 2.1, the GNU Affero General Public - License, Version 3.0, or any later versions of those licenses. - -1.13. “Source Code Form” - - means the form of the work preferred for making modifications. - -1.14. “You” (or “Your”) - - means an individual or a legal entity exercising rights under this - License. For legal entities, “You” includes any entity that controls, is - controlled by, or is under common control with You. For purposes of this - definition, “control” means (a) the power, direct or indirect, to cause - the direction or management of such entity, whether by contract or - otherwise, or (b) ownership of more than fifty percent (50%) of the - outstanding shares or beneficial ownership of such entity. - - -2. License Grants and Conditions - -2.1. Grants - - Each Contributor hereby grants You a world-wide, royalty-free, - non-exclusive license: - - a. under intellectual property rights (other than patent or trademark) - Licensable by such Contributor to use, reproduce, make available, - modify, display, perform, distribute, and otherwise exploit its - Contributions, either on an unmodified basis, with Modifications, or as - part of a Larger Work; and - - b. under Patent Claims of such Contributor to make, use, sell, offer for - sale, have made, import, and otherwise transfer either its Contributions - or its Contributor Version. - -2.2. Effective Date - - The licenses granted in Section 2.1 with respect to any Contribution become - effective for each Contribution on the date the Contributor first distributes - such Contribution. - -2.3. Limitations on Grant Scope - - The licenses granted in this Section 2 are the only rights granted under this - License. No additional rights or licenses will be implied from the distribution - or licensing of Covered Software under this License. Notwithstanding Section - 2.1(b) above, no patent license is granted by a Contributor: - - a. for any code that a Contributor has removed from Covered Software; or - - b. for infringements caused by: (i) Your and any other third party’s - modifications of Covered Software, or (ii) the combination of its - Contributions with other software (except as part of its Contributor - Version); or - - c. under Patent Claims infringed by Covered Software in the absence of its - Contributions. - - This License does not grant any rights in the trademarks, service marks, or - logos of any Contributor (except as may be necessary to comply with the - notice requirements in Section 3.4). - -2.4. Subsequent Licenses - - No Contributor makes additional grants as a result of Your choice to - distribute the Covered Software under a subsequent version of this License - (see Section 10.2) or under the terms of a Secondary License (if permitted - under the terms of Section 3.3). - -2.5. Representation - - Each Contributor represents that the Contributor believes its Contributions - are its original creation(s) or it has sufficient rights to grant the - rights to its Contributions conveyed by this License. - -2.6. Fair Use - - This License is not intended to limit any rights You have under applicable - copyright doctrines of fair use, fair dealing, or other equivalents. - -2.7. Conditions - - Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in - Section 2.1. - - -3. Responsibilities - -3.1. Distribution of Source Form - - All distribution of Covered Software in Source Code Form, including any - Modifications that You create or to which You contribute, must be under the - terms of this License. You must inform recipients that the Source Code Form - of the Covered Software is governed by the terms of this License, and how - they can obtain a copy of this License. You may not attempt to alter or - restrict the recipients’ rights in the Source Code Form. - -3.2. Distribution of Executable Form - - If You distribute Covered Software in Executable Form then: - - a. such Covered Software must also be made available in Source Code Form, - as described in Section 3.1, and You must inform recipients of the - Executable Form how they can obtain a copy of such Source Code Form by - reasonable means in a timely manner, at a charge no more than the cost - of distribution to the recipient; and - - b. You may distribute such Executable Form under the terms of this License, - or sublicense it under different terms, provided that the license for - the Executable Form does not attempt to limit or alter the recipients’ - rights in the Source Code Form under this License. - -3.3. Distribution of a Larger Work - - You may create and distribute a Larger Work under terms of Your choice, - provided that You also comply with the requirements of this License for the - Covered Software. If the Larger Work is a combination of Covered Software - with a work governed by one or more Secondary Licenses, and the Covered - Software is not Incompatible With Secondary Licenses, this License permits - You to additionally distribute such Covered Software under the terms of - such Secondary License(s), so that the recipient of the Larger Work may, at - their option, further distribute the Covered Software under the terms of - either this License or such Secondary License(s). - -3.4. Notices - - You may not remove or alter the substance of any license notices (including - copyright notices, patent notices, disclaimers of warranty, or limitations - of liability) contained within the Source Code Form of the Covered - Software, except that You may alter any license notices to the extent - required to remedy known factual inaccuracies. - -3.5. Application of Additional Terms - - You may choose to offer, and to charge a fee for, warranty, support, - indemnity or liability obligations to one or more recipients of Covered - Software. However, You may do so only on Your own behalf, and not on behalf - of any Contributor. You must make it absolutely clear that any such - warranty, support, indemnity, or liability obligation is offered by You - alone, and You hereby agree to indemnify every Contributor for any - liability incurred by such Contributor as a result of warranty, support, - indemnity or liability terms You offer. You may include additional - disclaimers of warranty and limitations of liability specific to any - jurisdiction. - -4. Inability to Comply Due to Statute or Regulation - - If it is impossible for You to comply with any of the terms of this License - with respect to some or all of the Covered Software due to statute, judicial - order, or regulation then You must: (a) comply with the terms of this License - to the maximum extent possible; and (b) describe the limitations and the code - they affect. Such description must be placed in a text file included with all - distributions of the Covered Software under this License. Except to the - extent prohibited by statute or regulation, such description must be - sufficiently detailed for a recipient of ordinary skill to be able to - understand it. - -5. Termination - -5.1. The rights granted under this License will terminate automatically if You - fail to comply with any of its terms. However, if You become compliant, - then the rights granted under this License from a particular Contributor - are reinstated (a) provisionally, unless and until such Contributor - explicitly and finally terminates Your grants, and (b) on an ongoing basis, - if such Contributor fails to notify You of the non-compliance by some - reasonable means prior to 60 days after You have come back into compliance. - Moreover, Your grants from a particular Contributor are reinstated on an - ongoing basis if such Contributor notifies You of the non-compliance by - some reasonable means, this is the first time You have received notice of - non-compliance with this License from such Contributor, and You become - compliant prior to 30 days after Your receipt of the notice. - -5.2. If You initiate litigation against any entity by asserting a patent - infringement claim (excluding declaratory judgment actions, counter-claims, - and cross-claims) alleging that a Contributor Version directly or - indirectly infringes any patent, then the rights granted to You by any and - all Contributors for the Covered Software under Section 2.1 of this License - shall terminate. - -5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user - license agreements (excluding distributors and resellers) which have been - validly granted by You or Your distributors under this License prior to - termination shall survive termination. - -6. Disclaimer of Warranty - - Covered Software is provided under this License on an “as is” basis, without - warranty of any kind, either expressed, implied, or statutory, including, - without limitation, warranties that the Covered Software is free of defects, - merchantable, fit for a particular purpose or non-infringing. The entire - risk as to the quality and performance of the Covered Software is with You. - Should any Covered Software prove defective in any respect, You (not any - Contributor) assume the cost of any necessary servicing, repair, or - correction. This disclaimer of warranty constitutes an essential part of this - License. No use of any Covered Software is authorized under this License - except under this disclaimer. - -7. Limitation of Liability - - Under no circumstances and under no legal theory, whether tort (including - negligence), contract, or otherwise, shall any Contributor, or anyone who - distributes Covered Software as permitted above, be liable to You for any - direct, indirect, special, incidental, or consequential damages of any - character including, without limitation, damages for lost profits, loss of - goodwill, work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses, even if such party shall have been - informed of the possibility of such damages. This limitation of liability - shall not apply to liability for death or personal injury resulting from such - party’s negligence to the extent applicable law prohibits such limitation. - Some jurisdictions do not allow the exclusion or limitation of incidental or - consequential damages, so this exclusion and limitation may not apply to You. - -8. Litigation - - Any litigation relating to this License may be brought only in the courts of - a jurisdiction where the defendant maintains its principal place of business - and such litigation shall be governed by laws of that jurisdiction, without - reference to its conflict-of-law provisions. Nothing in this Section shall - prevent a party’s ability to bring cross-claims or counter-claims. - -9. Miscellaneous - - This License represents the complete agreement concerning the subject matter - hereof. If any provision of this License is held to be unenforceable, such - provision shall be reformed only to the extent necessary to make it - enforceable. Any law or regulation which provides that the language of a - contract shall be construed against the drafter shall not be used to construe - this License against a Contributor. - - -10. Versions of the License - -10.1. New Versions - - Mozilla Foundation is the license steward. Except as provided in Section - 10.3, no one other than the license steward has the right to modify or - publish new versions of this License. Each version will be given a - distinguishing version number. - -10.2. Effect of New Versions - - You may distribute the Covered Software under the terms of the version of - the License under which You originally received the Covered Software, or - under the terms of any subsequent version published by the license - steward. - -10.3. Modified Versions - - If you create software not governed by this License, and you want to - create a new license for such software, you may create and use a modified - version of this License if you rename the license and remove any - references to the name of the license steward (except to note that such - modified license differs from this License). - -10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses - If You choose to distribute Source Code Form that is Incompatible With - Secondary Licenses under the terms of this version of the License, the - notice described in Exhibit B of this License must be attached. - -Exhibit A - Source Code Form License Notice - - This Source Code Form is subject to the - terms of the Mozilla Public License, v. - 2.0. If a copy of the MPL was not - distributed with this file, You can - obtain one at - http://mozilla.org/MPL/2.0/. - -If it is not possible or desirable to put the notice in a particular file, then -You may include the notice in a location (such as a LICENSE file in a relevant -directory) where a recipient would be likely to look for such a notice. - -You may add additional accurate notices of copyright ownership. - -Exhibit B - “Incompatible With Secondary Licenses” Notice - - This Source Code Form is “Incompatible - With Secondary Licenses”, as defined by - the Mozilla Public License, v. 2.0. - diff --git a/vendor/github.com/hashicorp/hcl/Makefile b/vendor/github.com/hashicorp/hcl/Makefile deleted file mode 100644 index 84fd743..0000000 --- a/vendor/github.com/hashicorp/hcl/Makefile +++ /dev/null @@ -1,18 +0,0 @@ -TEST?=./... - -default: test - -fmt: generate - go fmt ./... - -test: generate - go get -t ./... - go test $(TEST) $(TESTARGS) - -generate: - go generate ./... - -updatedeps: - go get -u golang.org/x/tools/cmd/stringer - -.PHONY: default generate test updatedeps diff --git a/vendor/github.com/hashicorp/hcl/README.md b/vendor/github.com/hashicorp/hcl/README.md deleted file mode 100644 index c822332..0000000 --- a/vendor/github.com/hashicorp/hcl/README.md +++ /dev/null @@ -1,125 +0,0 @@ -# HCL - -[![GoDoc](https://godoc.org/github.com/hashicorp/hcl?status.png)](https://godoc.org/github.com/hashicorp/hcl) [![Build Status](https://travis-ci.org/hashicorp/hcl.svg?branch=master)](https://travis-ci.org/hashicorp/hcl) - -HCL (HashiCorp Configuration Language) is a configuration language built -by HashiCorp. The goal of HCL is to build a structured configuration language -that is both human and machine friendly for use with command-line tools, but -specifically targeted towards DevOps tools, servers, etc. - -HCL is also fully JSON compatible. That is, JSON can be used as completely -valid input to a system expecting HCL. This helps makes systems -interoperable with other systems. - -HCL is heavily inspired by -[libucl](https://github.com/vstakhov/libucl), -nginx configuration, and others similar. - -## Why? - -A common question when viewing HCL is to ask the question: why not -JSON, YAML, etc.? - -Prior to HCL, the tools we built at [HashiCorp](http://www.hashicorp.com) -used a variety of configuration languages from full programming languages -such as Ruby to complete data structure languages such as JSON. What we -learned is that some people wanted human-friendly configuration languages -and some people wanted machine-friendly languages. - -JSON fits a nice balance in this, but is fairly verbose and most -importantly doesn't support comments. With YAML, we found that beginners -had a really hard time determining what the actual structure was, and -ended up guessing more often than not whether to use a hyphen, colon, etc. -in order to represent some configuration key. - -Full programming languages such as Ruby enable complex behavior -a configuration language shouldn't usually allow, and also forces -people to learn some set of Ruby. - -Because of this, we decided to create our own configuration language -that is JSON-compatible. Our configuration language (HCL) is designed -to be written and modified by humans. The API for HCL allows JSON -as an input so that it is also machine-friendly (machines can generate -JSON instead of trying to generate HCL). - -Our goal with HCL is not to alienate other configuration languages. -It is instead to provide HCL as a specialized language for our tools, -and JSON as the interoperability layer. - -## Syntax - -For a complete grammar, please see the parser itself. A high-level overview -of the syntax and grammar is listed here. - - * Single line comments start with `#` or `//` - - * Multi-line comments are wrapped in `/*` and `*/`. Nested block comments - are not allowed. A multi-line comment (also known as a block comment) - terminates at the first `*/` found. - - * Values are assigned with the syntax `key = value` (whitespace doesn't - matter). The value can be any primitive: a string, number, boolean, - object, or list. - - * Strings are double-quoted and can contain any UTF-8 characters. - Example: `"Hello, World"` - - * Multi-line strings start with `<- - echo %Path% - - go version - - go env - - go get -t ./... - -build_script: -- cmd: go test -v ./... diff --git a/vendor/github.com/hashicorp/hcl/decoder.go b/vendor/github.com/hashicorp/hcl/decoder.go deleted file mode 100644 index 6e75ece..0000000 --- a/vendor/github.com/hashicorp/hcl/decoder.go +++ /dev/null @@ -1,724 +0,0 @@ -package hcl - -import ( - "errors" - "fmt" - "reflect" - "sort" - "strconv" - "strings" - - "github.com/hashicorp/hcl/hcl/ast" - "github.com/hashicorp/hcl/hcl/parser" - "github.com/hashicorp/hcl/hcl/token" -) - -// This is the tag to use with structures to have settings for HCL -const tagName = "hcl" - -var ( - // nodeType holds a reference to the type of ast.Node - nodeType reflect.Type = findNodeType() -) - -// Unmarshal accepts a byte slice as input and writes the -// data to the value pointed to by v. -func Unmarshal(bs []byte, v interface{}) error { - root, err := parse(bs) - if err != nil { - return err - } - - return DecodeObject(v, root) -} - -// Decode reads the given input and decodes it into the structure -// given by `out`. -func Decode(out interface{}, in string) error { - obj, err := Parse(in) - if err != nil { - return err - } - - return DecodeObject(out, obj) -} - -// DecodeObject is a lower-level version of Decode. It decodes a -// raw Object into the given output. -func DecodeObject(out interface{}, n ast.Node) error { - val := reflect.ValueOf(out) - if val.Kind() != reflect.Ptr { - return errors.New("result must be a pointer") - } - - // If we have the file, we really decode the root node - if f, ok := n.(*ast.File); ok { - n = f.Node - } - - var d decoder - return d.decode("root", n, val.Elem()) -} - -type decoder struct { - stack []reflect.Kind -} - -func (d *decoder) decode(name string, node ast.Node, result reflect.Value) error { - k := result - - // If we have an interface with a valid value, we use that - // for the check. - if result.Kind() == reflect.Interface { - elem := result.Elem() - if elem.IsValid() { - k = elem - } - } - - // Push current onto stack unless it is an interface. - if k.Kind() != reflect.Interface { - d.stack = append(d.stack, k.Kind()) - - // Schedule a pop - defer func() { - d.stack = d.stack[:len(d.stack)-1] - }() - } - - switch k.Kind() { - case reflect.Bool: - return d.decodeBool(name, node, result) - case reflect.Float32, reflect.Float64: - return d.decodeFloat(name, node, result) - case reflect.Int, reflect.Int32, reflect.Int64: - return d.decodeInt(name, node, result) - case reflect.Interface: - // When we see an interface, we make our own thing - return d.decodeInterface(name, node, result) - case reflect.Map: - return d.decodeMap(name, node, result) - case reflect.Ptr: - return d.decodePtr(name, node, result) - case reflect.Slice: - return d.decodeSlice(name, node, result) - case reflect.String: - return d.decodeString(name, node, result) - case reflect.Struct: - return d.decodeStruct(name, node, result) - default: - return &parser.PosError{ - Pos: node.Pos(), - Err: fmt.Errorf("%s: unknown kind to decode into: %s", name, k.Kind()), - } - } -} - -func (d *decoder) decodeBool(name string, node ast.Node, result reflect.Value) error { - switch n := node.(type) { - case *ast.LiteralType: - if n.Token.Type == token.BOOL { - v, err := strconv.ParseBool(n.Token.Text) - if err != nil { - return err - } - - result.Set(reflect.ValueOf(v)) - return nil - } - } - - return &parser.PosError{ - Pos: node.Pos(), - Err: fmt.Errorf("%s: unknown type %T", name, node), - } -} - -func (d *decoder) decodeFloat(name string, node ast.Node, result reflect.Value) error { - switch n := node.(type) { - case *ast.LiteralType: - if n.Token.Type == token.FLOAT { - v, err := strconv.ParseFloat(n.Token.Text, 64) - if err != nil { - return err - } - - result.Set(reflect.ValueOf(v).Convert(result.Type())) - return nil - } - } - - return &parser.PosError{ - Pos: node.Pos(), - Err: fmt.Errorf("%s: unknown type %T", name, node), - } -} - -func (d *decoder) decodeInt(name string, node ast.Node, result reflect.Value) error { - switch n := node.(type) { - case *ast.LiteralType: - switch n.Token.Type { - case token.NUMBER: - v, err := strconv.ParseInt(n.Token.Text, 0, 0) - if err != nil { - return err - } - - if result.Kind() == reflect.Interface { - result.Set(reflect.ValueOf(int(v))) - } else { - result.SetInt(v) - } - return nil - case token.STRING: - v, err := strconv.ParseInt(n.Token.Value().(string), 0, 0) - if err != nil { - return err - } - - if result.Kind() == reflect.Interface { - result.Set(reflect.ValueOf(int(v))) - } else { - result.SetInt(v) - } - return nil - } - } - - return &parser.PosError{ - Pos: node.Pos(), - Err: fmt.Errorf("%s: unknown type %T", name, node), - } -} - -func (d *decoder) decodeInterface(name string, node ast.Node, result reflect.Value) error { - // When we see an ast.Node, we retain the value to enable deferred decoding. - // Very useful in situations where we want to preserve ast.Node information - // like Pos - if result.Type() == nodeType && result.CanSet() { - result.Set(reflect.ValueOf(node)) - return nil - } - - var set reflect.Value - redecode := true - - // For testing types, ObjectType should just be treated as a list. We - // set this to a temporary var because we want to pass in the real node. - testNode := node - if ot, ok := node.(*ast.ObjectType); ok { - testNode = ot.List - } - - switch n := testNode.(type) { - case *ast.ObjectList: - // If we're at the root or we're directly within a slice, then we - // decode objects into map[string]interface{}, otherwise we decode - // them into lists. - if len(d.stack) == 0 || d.stack[len(d.stack)-1] == reflect.Slice { - var temp map[string]interface{} - tempVal := reflect.ValueOf(temp) - result := reflect.MakeMap( - reflect.MapOf( - reflect.TypeOf(""), - tempVal.Type().Elem())) - - set = result - } else { - var temp []map[string]interface{} - tempVal := reflect.ValueOf(temp) - result := reflect.MakeSlice( - reflect.SliceOf(tempVal.Type().Elem()), 0, len(n.Items)) - set = result - } - case *ast.ObjectType: - // If we're at the root or we're directly within a slice, then we - // decode objects into map[string]interface{}, otherwise we decode - // them into lists. - if len(d.stack) == 0 || d.stack[len(d.stack)-1] == reflect.Slice { - var temp map[string]interface{} - tempVal := reflect.ValueOf(temp) - result := reflect.MakeMap( - reflect.MapOf( - reflect.TypeOf(""), - tempVal.Type().Elem())) - - set = result - } else { - var temp []map[string]interface{} - tempVal := reflect.ValueOf(temp) - result := reflect.MakeSlice( - reflect.SliceOf(tempVal.Type().Elem()), 0, 1) - set = result - } - case *ast.ListType: - var temp []interface{} - tempVal := reflect.ValueOf(temp) - result := reflect.MakeSlice( - reflect.SliceOf(tempVal.Type().Elem()), 0, 0) - set = result - case *ast.LiteralType: - switch n.Token.Type { - case token.BOOL: - var result bool - set = reflect.Indirect(reflect.New(reflect.TypeOf(result))) - case token.FLOAT: - var result float64 - set = reflect.Indirect(reflect.New(reflect.TypeOf(result))) - case token.NUMBER: - var result int - set = reflect.Indirect(reflect.New(reflect.TypeOf(result))) - case token.STRING, token.HEREDOC: - set = reflect.Indirect(reflect.New(reflect.TypeOf(""))) - default: - return &parser.PosError{ - Pos: node.Pos(), - Err: fmt.Errorf("%s: cannot decode into interface: %T", name, node), - } - } - default: - return fmt.Errorf( - "%s: cannot decode into interface: %T", - name, node) - } - - // Set the result to what its supposed to be, then reset - // result so we don't reflect into this method anymore. - result.Set(set) - - if redecode { - // Revisit the node so that we can use the newly instantiated - // thing and populate it. - if err := d.decode(name, node, result); err != nil { - return err - } - } - - return nil -} - -func (d *decoder) decodeMap(name string, node ast.Node, result reflect.Value) error { - if item, ok := node.(*ast.ObjectItem); ok { - node = &ast.ObjectList{Items: []*ast.ObjectItem{item}} - } - - if ot, ok := node.(*ast.ObjectType); ok { - node = ot.List - } - - n, ok := node.(*ast.ObjectList) - if !ok { - return &parser.PosError{ - Pos: node.Pos(), - Err: fmt.Errorf("%s: not an object type for map (%T)", name, node), - } - } - - // If we have an interface, then we can address the interface, - // but not the slice itself, so get the element but set the interface - set := result - if result.Kind() == reflect.Interface { - result = result.Elem() - } - - resultType := result.Type() - resultElemType := resultType.Elem() - resultKeyType := resultType.Key() - if resultKeyType.Kind() != reflect.String { - return &parser.PosError{ - Pos: node.Pos(), - Err: fmt.Errorf("%s: map must have string keys", name), - } - } - - // Make a map if it is nil - resultMap := result - if result.IsNil() { - resultMap = reflect.MakeMap( - reflect.MapOf(resultKeyType, resultElemType)) - } - - // Go through each element and decode it. - done := make(map[string]struct{}) - for _, item := range n.Items { - if item.Val == nil { - continue - } - - // github.com/hashicorp/terraform/issue/5740 - if len(item.Keys) == 0 { - return &parser.PosError{ - Pos: node.Pos(), - Err: fmt.Errorf("%s: map must have string keys", name), - } - } - - // Get the key we're dealing with, which is the first item - keyStr := item.Keys[0].Token.Value().(string) - - // If we've already processed this key, then ignore it - if _, ok := done[keyStr]; ok { - continue - } - - // Determine the value. If we have more than one key, then we - // get the objectlist of only these keys. - itemVal := item.Val - if len(item.Keys) > 1 { - itemVal = n.Filter(keyStr) - done[keyStr] = struct{}{} - } - - // Make the field name - fieldName := fmt.Sprintf("%s.%s", name, keyStr) - - // Get the key/value as reflection values - key := reflect.ValueOf(keyStr) - val := reflect.Indirect(reflect.New(resultElemType)) - - // If we have a pre-existing value in the map, use that - oldVal := resultMap.MapIndex(key) - if oldVal.IsValid() { - val.Set(oldVal) - } - - // Decode! - if err := d.decode(fieldName, itemVal, val); err != nil { - return err - } - - // Set the value on the map - resultMap.SetMapIndex(key, val) - } - - // Set the final map if we can - set.Set(resultMap) - return nil -} - -func (d *decoder) decodePtr(name string, node ast.Node, result reflect.Value) error { - // Create an element of the concrete (non pointer) type and decode - // into that. Then set the value of the pointer to this type. - resultType := result.Type() - resultElemType := resultType.Elem() - val := reflect.New(resultElemType) - if err := d.decode(name, node, reflect.Indirect(val)); err != nil { - return err - } - - result.Set(val) - return nil -} - -func (d *decoder) decodeSlice(name string, node ast.Node, result reflect.Value) error { - // If we have an interface, then we can address the interface, - // but not the slice itself, so get the element but set the interface - set := result - if result.Kind() == reflect.Interface { - result = result.Elem() - } - // Create the slice if it isn't nil - resultType := result.Type() - resultElemType := resultType.Elem() - if result.IsNil() { - resultSliceType := reflect.SliceOf(resultElemType) - result = reflect.MakeSlice( - resultSliceType, 0, 0) - } - - // Figure out the items we'll be copying into the slice - var items []ast.Node - switch n := node.(type) { - case *ast.ObjectList: - items = make([]ast.Node, len(n.Items)) - for i, item := range n.Items { - items[i] = item - } - case *ast.ObjectType: - items = []ast.Node{n} - case *ast.ListType: - items = n.List - default: - return &parser.PosError{ - Pos: node.Pos(), - Err: fmt.Errorf("unknown slice type: %T", node), - } - } - - for i, item := range items { - fieldName := fmt.Sprintf("%s[%d]", name, i) - - // Decode - val := reflect.Indirect(reflect.New(resultElemType)) - - // if item is an object that was decoded from ambiguous JSON and - // flattened, make sure it's expanded if it needs to decode into a - // defined structure. - item := expandObject(item, val) - - if err := d.decode(fieldName, item, val); err != nil { - return err - } - - // Append it onto the slice - result = reflect.Append(result, val) - } - - set.Set(result) - return nil -} - -// expandObject detects if an ambiguous JSON object was flattened to a List which -// should be decoded into a struct, and expands the ast to properly deocode. -func expandObject(node ast.Node, result reflect.Value) ast.Node { - item, ok := node.(*ast.ObjectItem) - if !ok { - return node - } - - elemType := result.Type() - - // our target type must be a struct - switch elemType.Kind() { - case reflect.Ptr: - switch elemType.Elem().Kind() { - case reflect.Struct: - //OK - default: - return node - } - case reflect.Struct: - //OK - default: - return node - } - - // A list value will have a key and field name. If it had more fields, - // it wouldn't have been flattened. - if len(item.Keys) != 2 { - return node - } - - keyToken := item.Keys[0].Token - item.Keys = item.Keys[1:] - - // we need to un-flatten the ast enough to decode - newNode := &ast.ObjectItem{ - Keys: []*ast.ObjectKey{ - &ast.ObjectKey{ - Token: keyToken, - }, - }, - Val: &ast.ObjectType{ - List: &ast.ObjectList{ - Items: []*ast.ObjectItem{item}, - }, - }, - } - - return newNode -} - -func (d *decoder) decodeString(name string, node ast.Node, result reflect.Value) error { - switch n := node.(type) { - case *ast.LiteralType: - switch n.Token.Type { - case token.NUMBER: - result.Set(reflect.ValueOf(n.Token.Text).Convert(result.Type())) - return nil - case token.STRING, token.HEREDOC: - result.Set(reflect.ValueOf(n.Token.Value()).Convert(result.Type())) - return nil - } - } - - return &parser.PosError{ - Pos: node.Pos(), - Err: fmt.Errorf("%s: unknown type for string %T", name, node), - } -} - -func (d *decoder) decodeStruct(name string, node ast.Node, result reflect.Value) error { - var item *ast.ObjectItem - if it, ok := node.(*ast.ObjectItem); ok { - item = it - node = it.Val - } - - if ot, ok := node.(*ast.ObjectType); ok { - node = ot.List - } - - // Handle the special case where the object itself is a literal. Previously - // the yacc parser would always ensure top-level elements were arrays. The new - // parser does not make the same guarantees, thus we need to convert any - // top-level literal elements into a list. - if _, ok := node.(*ast.LiteralType); ok && item != nil { - node = &ast.ObjectList{Items: []*ast.ObjectItem{item}} - } - - list, ok := node.(*ast.ObjectList) - if !ok { - return &parser.PosError{ - Pos: node.Pos(), - Err: fmt.Errorf("%s: not an object type for struct (%T)", name, node), - } - } - - // This slice will keep track of all the structs we'll be decoding. - // There can be more than one struct if there are embedded structs - // that are squashed. - structs := make([]reflect.Value, 1, 5) - structs[0] = result - - // Compile the list of all the fields that we're going to be decoding - // from all the structs. - fields := make(map[*reflect.StructField]reflect.Value) - for len(structs) > 0 { - structVal := structs[0] - structs = structs[1:] - - structType := structVal.Type() - for i := 0; i < structType.NumField(); i++ { - fieldType := structType.Field(i) - tagParts := strings.Split(fieldType.Tag.Get(tagName), ",") - - // Ignore fields with tag name "-" - if tagParts[0] == "-" { - continue - } - - if fieldType.Anonymous { - fieldKind := fieldType.Type.Kind() - if fieldKind != reflect.Struct { - return &parser.PosError{ - Pos: node.Pos(), - Err: fmt.Errorf("%s: unsupported type to struct: %s", - fieldType.Name, fieldKind), - } - } - - // We have an embedded field. We "squash" the fields down - // if specified in the tag. - squash := false - for _, tag := range tagParts[1:] { - if tag == "squash" { - squash = true - break - } - } - - if squash { - structs = append( - structs, result.FieldByName(fieldType.Name)) - continue - } - } - - // Normal struct field, store it away - fields[&fieldType] = structVal.Field(i) - } - } - - usedKeys := make(map[string]struct{}) - decodedFields := make([]string, 0, len(fields)) - decodedFieldsVal := make([]reflect.Value, 0) - unusedKeysVal := make([]reflect.Value, 0) - for fieldType, field := range fields { - if !field.IsValid() { - // This should never happen - panic("field is not valid") - } - - // If we can't set the field, then it is unexported or something, - // and we just continue onwards. - if !field.CanSet() { - continue - } - - fieldName := fieldType.Name - - tagValue := fieldType.Tag.Get(tagName) - tagParts := strings.SplitN(tagValue, ",", 2) - if len(tagParts) >= 2 { - switch tagParts[1] { - case "decodedFields": - decodedFieldsVal = append(decodedFieldsVal, field) - continue - case "key": - if item == nil { - return &parser.PosError{ - Pos: node.Pos(), - Err: fmt.Errorf("%s: %s asked for 'key', impossible", - name, fieldName), - } - } - - field.SetString(item.Keys[0].Token.Value().(string)) - continue - case "unusedKeys": - unusedKeysVal = append(unusedKeysVal, field) - continue - } - } - - if tagParts[0] != "" { - fieldName = tagParts[0] - } - - // Determine the element we'll use to decode. If it is a single - // match (only object with the field), then we decode it exactly. - // If it is a prefix match, then we decode the matches. - filter := list.Filter(fieldName) - - prefixMatches := filter.Children() - matches := filter.Elem() - if len(matches.Items) == 0 && len(prefixMatches.Items) == 0 { - continue - } - - // Track the used key - usedKeys[fieldName] = struct{}{} - - // Create the field name and decode. We range over the elements - // because we actually want the value. - fieldName = fmt.Sprintf("%s.%s", name, fieldName) - if len(prefixMatches.Items) > 0 { - if err := d.decode(fieldName, prefixMatches, field); err != nil { - return err - } - } - for _, match := range matches.Items { - var decodeNode ast.Node = match.Val - if ot, ok := decodeNode.(*ast.ObjectType); ok { - decodeNode = &ast.ObjectList{Items: ot.List.Items} - } - - if err := d.decode(fieldName, decodeNode, field); err != nil { - return err - } - } - - decodedFields = append(decodedFields, fieldType.Name) - } - - if len(decodedFieldsVal) > 0 { - // Sort it so that it is deterministic - sort.Strings(decodedFields) - - for _, v := range decodedFieldsVal { - v.Set(reflect.ValueOf(decodedFields)) - } - } - - return nil -} - -// findNodeType returns the type of ast.Node -func findNodeType() reflect.Type { - var nodeContainer struct { - Node ast.Node - } - value := reflect.ValueOf(nodeContainer).FieldByName("Node") - return value.Type() -} diff --git a/vendor/github.com/hashicorp/hcl/hcl.go b/vendor/github.com/hashicorp/hcl/hcl.go deleted file mode 100644 index 575a20b..0000000 --- a/vendor/github.com/hashicorp/hcl/hcl.go +++ /dev/null @@ -1,11 +0,0 @@ -// Package hcl decodes HCL into usable Go structures. -// -// hcl input can come in either pure HCL format or JSON format. -// It can be parsed into an AST, and then decoded into a structure, -// or it can be decoded directly from a string into a structure. -// -// If you choose to parse HCL into a raw AST, the benefit is that you -// can write custom visitor implementations to implement custom -// semantic checks. By default, HCL does not perform any semantic -// checks. -package hcl diff --git a/vendor/github.com/hashicorp/hcl/hcl/ast/ast.go b/vendor/github.com/hashicorp/hcl/hcl/ast/ast.go deleted file mode 100644 index 6e5ef65..0000000 --- a/vendor/github.com/hashicorp/hcl/hcl/ast/ast.go +++ /dev/null @@ -1,219 +0,0 @@ -// Package ast declares the types used to represent syntax trees for HCL -// (HashiCorp Configuration Language) -package ast - -import ( - "fmt" - "strings" - - "github.com/hashicorp/hcl/hcl/token" -) - -// Node is an element in the abstract syntax tree. -type Node interface { - node() - Pos() token.Pos -} - -func (File) node() {} -func (ObjectList) node() {} -func (ObjectKey) node() {} -func (ObjectItem) node() {} -func (Comment) node() {} -func (CommentGroup) node() {} -func (ObjectType) node() {} -func (LiteralType) node() {} -func (ListType) node() {} - -// File represents a single HCL file -type File struct { - Node Node // usually a *ObjectList - Comments []*CommentGroup // list of all comments in the source -} - -func (f *File) Pos() token.Pos { - return f.Node.Pos() -} - -// ObjectList represents a list of ObjectItems. An HCL file itself is an -// ObjectList. -type ObjectList struct { - Items []*ObjectItem -} - -func (o *ObjectList) Add(item *ObjectItem) { - o.Items = append(o.Items, item) -} - -// Filter filters out the objects with the given key list as a prefix. -// -// The returned list of objects contain ObjectItems where the keys have -// this prefix already stripped off. This might result in objects with -// zero-length key lists if they have no children. -// -// If no matches are found, an empty ObjectList (non-nil) is returned. -func (o *ObjectList) Filter(keys ...string) *ObjectList { - var result ObjectList - for _, item := range o.Items { - // If there aren't enough keys, then ignore this - if len(item.Keys) < len(keys) { - continue - } - - match := true - for i, key := range item.Keys[:len(keys)] { - key := key.Token.Value().(string) - if key != keys[i] && !strings.EqualFold(key, keys[i]) { - match = false - break - } - } - if !match { - continue - } - - // Strip off the prefix from the children - newItem := *item - newItem.Keys = newItem.Keys[len(keys):] - result.Add(&newItem) - } - - return &result -} - -// Children returns further nested objects (key length > 0) within this -// ObjectList. This should be used with Filter to get at child items. -func (o *ObjectList) Children() *ObjectList { - var result ObjectList - for _, item := range o.Items { - if len(item.Keys) > 0 { - result.Add(item) - } - } - - return &result -} - -// Elem returns items in the list that are direct element assignments -// (key length == 0). This should be used with Filter to get at elements. -func (o *ObjectList) Elem() *ObjectList { - var result ObjectList - for _, item := range o.Items { - if len(item.Keys) == 0 { - result.Add(item) - } - } - - return &result -} - -func (o *ObjectList) Pos() token.Pos { - // always returns the uninitiliazed position - return o.Items[0].Pos() -} - -// ObjectItem represents a HCL Object Item. An item is represented with a key -// (or keys). It can be an assignment or an object (both normal and nested) -type ObjectItem struct { - // keys is only one length long if it's of type assignment. If it's a - // nested object it can be larger than one. In that case "assign" is - // invalid as there is no assignments for a nested object. - Keys []*ObjectKey - - // assign contains the position of "=", if any - Assign token.Pos - - // val is the item itself. It can be an object,list, number, bool or a - // string. If key length is larger than one, val can be only of type - // Object. - Val Node - - LeadComment *CommentGroup // associated lead comment - LineComment *CommentGroup // associated line comment -} - -func (o *ObjectItem) Pos() token.Pos { - // I'm not entirely sure what causes this, but removing this causes - // a test failure. We should investigate at some point. - if len(o.Keys) == 0 { - return token.Pos{} - } - - return o.Keys[0].Pos() -} - -// ObjectKeys are either an identifier or of type string. -type ObjectKey struct { - Token token.Token -} - -func (o *ObjectKey) Pos() token.Pos { - return o.Token.Pos -} - -// LiteralType represents a literal of basic type. Valid types are: -// token.NUMBER, token.FLOAT, token.BOOL and token.STRING -type LiteralType struct { - Token token.Token - - // comment types, only used when in a list - LeadComment *CommentGroup - LineComment *CommentGroup -} - -func (l *LiteralType) Pos() token.Pos { - return l.Token.Pos -} - -// ListStatement represents a HCL List type -type ListType struct { - Lbrack token.Pos // position of "[" - Rbrack token.Pos // position of "]" - List []Node // the elements in lexical order -} - -func (l *ListType) Pos() token.Pos { - return l.Lbrack -} - -func (l *ListType) Add(node Node) { - l.List = append(l.List, node) -} - -// ObjectType represents a HCL Object Type -type ObjectType struct { - Lbrace token.Pos // position of "{" - Rbrace token.Pos // position of "}" - List *ObjectList // the nodes in lexical order -} - -func (o *ObjectType) Pos() token.Pos { - return o.Lbrace -} - -// Comment node represents a single //, # style or /*- style commment -type Comment struct { - Start token.Pos // position of / or # - Text string -} - -func (c *Comment) Pos() token.Pos { - return c.Start -} - -// CommentGroup node represents a sequence of comments with no other tokens and -// no empty lines between. -type CommentGroup struct { - List []*Comment // len(List) > 0 -} - -func (c *CommentGroup) Pos() token.Pos { - return c.List[0].Pos() -} - -//------------------------------------------------------------------- -// GoStringer -//------------------------------------------------------------------- - -func (o *ObjectKey) GoString() string { return fmt.Sprintf("*%#v", *o) } -func (o *ObjectList) GoString() string { return fmt.Sprintf("*%#v", *o) } diff --git a/vendor/github.com/hashicorp/hcl/hcl/ast/walk.go b/vendor/github.com/hashicorp/hcl/hcl/ast/walk.go deleted file mode 100644 index ba07ad4..0000000 --- a/vendor/github.com/hashicorp/hcl/hcl/ast/walk.go +++ /dev/null @@ -1,52 +0,0 @@ -package ast - -import "fmt" - -// WalkFunc describes a function to be called for each node during a Walk. The -// returned node can be used to rewrite the AST. Walking stops the returned -// bool is false. -type WalkFunc func(Node) (Node, bool) - -// Walk traverses an AST in depth-first order: It starts by calling fn(node); -// node must not be nil. If fn returns true, Walk invokes fn recursively for -// each of the non-nil children of node, followed by a call of fn(nil). The -// returned node of fn can be used to rewrite the passed node to fn. -func Walk(node Node, fn WalkFunc) Node { - rewritten, ok := fn(node) - if !ok { - return rewritten - } - - switch n := node.(type) { - case *File: - n.Node = Walk(n.Node, fn) - case *ObjectList: - for i, item := range n.Items { - n.Items[i] = Walk(item, fn).(*ObjectItem) - } - case *ObjectKey: - // nothing to do - case *ObjectItem: - for i, k := range n.Keys { - n.Keys[i] = Walk(k, fn).(*ObjectKey) - } - - if n.Val != nil { - n.Val = Walk(n.Val, fn) - } - case *LiteralType: - // nothing to do - case *ListType: - for i, l := range n.List { - n.List[i] = Walk(l, fn) - } - case *ObjectType: - n.List = Walk(n.List, fn).(*ObjectList) - default: - // should we panic here? - fmt.Printf("unknown type: %T\n", n) - } - - fn(nil) - return rewritten -} diff --git a/vendor/github.com/hashicorp/hcl/hcl/parser/error.go b/vendor/github.com/hashicorp/hcl/hcl/parser/error.go deleted file mode 100644 index 5c99381..0000000 --- a/vendor/github.com/hashicorp/hcl/hcl/parser/error.go +++ /dev/null @@ -1,17 +0,0 @@ -package parser - -import ( - "fmt" - - "github.com/hashicorp/hcl/hcl/token" -) - -// PosError is a parse error that contains a position. -type PosError struct { - Pos token.Pos - Err error -} - -func (e *PosError) Error() string { - return fmt.Sprintf("At %s: %s", e.Pos, e.Err) -} diff --git a/vendor/github.com/hashicorp/hcl/hcl/parser/parser.go b/vendor/github.com/hashicorp/hcl/hcl/parser/parser.go deleted file mode 100644 index 098e1bc..0000000 --- a/vendor/github.com/hashicorp/hcl/hcl/parser/parser.go +++ /dev/null @@ -1,526 +0,0 @@ -// Package parser implements a parser for HCL (HashiCorp Configuration -// Language) -package parser - -import ( - "bytes" - "errors" - "fmt" - "strings" - - "github.com/hashicorp/hcl/hcl/ast" - "github.com/hashicorp/hcl/hcl/scanner" - "github.com/hashicorp/hcl/hcl/token" -) - -type Parser struct { - sc *scanner.Scanner - - // Last read token - tok token.Token - commaPrev token.Token - - comments []*ast.CommentGroup - leadComment *ast.CommentGroup // last lead comment - lineComment *ast.CommentGroup // last line comment - - enableTrace bool - indent int - n int // buffer size (max = 1) -} - -func newParser(src []byte) *Parser { - return &Parser{ - sc: scanner.New(src), - } -} - -// Parse returns the fully parsed source and returns the abstract syntax tree. -func Parse(src []byte) (*ast.File, error) { - // normalize all line endings - // since the scanner and output only work with "\n" line endings, we may - // end up with dangling "\r" characters in the parsed data. - src = bytes.Replace(src, []byte("\r\n"), []byte("\n"), -1) - - p := newParser(src) - return p.Parse() -} - -var errEofToken = errors.New("EOF token found") - -// Parse returns the fully parsed source and returns the abstract syntax tree. -func (p *Parser) Parse() (*ast.File, error) { - f := &ast.File{} - var err, scerr error - p.sc.Error = func(pos token.Pos, msg string) { - scerr = &PosError{Pos: pos, Err: errors.New(msg)} - } - - f.Node, err = p.objectList(false) - if scerr != nil { - return nil, scerr - } - if err != nil { - return nil, err - } - - f.Comments = p.comments - return f, nil -} - -// objectList parses a list of items within an object (generally k/v pairs). -// The parameter" obj" tells this whether to we are within an object (braces: -// '{', '}') or just at the top level. If we're within an object, we end -// at an RBRACE. -func (p *Parser) objectList(obj bool) (*ast.ObjectList, error) { - defer un(trace(p, "ParseObjectList")) - node := &ast.ObjectList{} - - for { - if obj { - tok := p.scan() - p.unscan() - if tok.Type == token.RBRACE { - break - } - } - - n, err := p.objectItem() - if err == errEofToken { - break // we are finished - } - - // we don't return a nil node, because might want to use already - // collected items. - if err != nil { - return node, err - } - - node.Add(n) - - // object lists can be optionally comma-delimited e.g. when a list of maps - // is being expressed, so a comma is allowed here - it's simply consumed - tok := p.scan() - if tok.Type != token.COMMA { - p.unscan() - } - } - return node, nil -} - -func (p *Parser) consumeComment() (comment *ast.Comment, endline int) { - endline = p.tok.Pos.Line - - // count the endline if it's multiline comment, ie starting with /* - if len(p.tok.Text) > 1 && p.tok.Text[1] == '*' { - // don't use range here - no need to decode Unicode code points - for i := 0; i < len(p.tok.Text); i++ { - if p.tok.Text[i] == '\n' { - endline++ - } - } - } - - comment = &ast.Comment{Start: p.tok.Pos, Text: p.tok.Text} - p.tok = p.sc.Scan() - return -} - -func (p *Parser) consumeCommentGroup(n int) (comments *ast.CommentGroup, endline int) { - var list []*ast.Comment - endline = p.tok.Pos.Line - - for p.tok.Type == token.COMMENT && p.tok.Pos.Line <= endline+n { - var comment *ast.Comment - comment, endline = p.consumeComment() - list = append(list, comment) - } - - // add comment group to the comments list - comments = &ast.CommentGroup{List: list} - p.comments = append(p.comments, comments) - - return -} - -// objectItem parses a single object item -func (p *Parser) objectItem() (*ast.ObjectItem, error) { - defer un(trace(p, "ParseObjectItem")) - - keys, err := p.objectKey() - if len(keys) > 0 && err == errEofToken { - // We ignore eof token here since it is an error if we didn't - // receive a value (but we did receive a key) for the item. - err = nil - } - if len(keys) > 0 && err != nil && p.tok.Type == token.RBRACE { - // This is a strange boolean statement, but what it means is: - // We have keys with no value, and we're likely in an object - // (since RBrace ends an object). For this, we set err to nil so - // we continue and get the error below of having the wrong value - // type. - err = nil - - // Reset the token type so we don't think it completed fine. See - // objectType which uses p.tok.Type to check if we're done with - // the object. - p.tok.Type = token.EOF - } - if err != nil { - return nil, err - } - - o := &ast.ObjectItem{ - Keys: keys, - } - - if p.leadComment != nil { - o.LeadComment = p.leadComment - p.leadComment = nil - } - - switch p.tok.Type { - case token.ASSIGN: - o.Assign = p.tok.Pos - o.Val, err = p.object() - if err != nil { - return nil, err - } - case token.LBRACE: - o.Val, err = p.objectType() - if err != nil { - return nil, err - } - default: - keyStr := make([]string, 0, len(keys)) - for _, k := range keys { - keyStr = append(keyStr, k.Token.Text) - } - - return nil, &PosError{ - Pos: p.tok.Pos, - Err: fmt.Errorf( - "key '%s' expected start of object ('{') or assignment ('=')", - strings.Join(keyStr, " ")), - } - } - - // do a look-ahead for line comment - p.scan() - if len(keys) > 0 && o.Val.Pos().Line == keys[0].Pos().Line && p.lineComment != nil { - o.LineComment = p.lineComment - p.lineComment = nil - } - p.unscan() - return o, nil -} - -// objectKey parses an object key and returns a ObjectKey AST -func (p *Parser) objectKey() ([]*ast.ObjectKey, error) { - keyCount := 0 - keys := make([]*ast.ObjectKey, 0) - - for { - tok := p.scan() - switch tok.Type { - case token.EOF: - // It is very important to also return the keys here as well as - // the error. This is because we need to be able to tell if we - // did parse keys prior to finding the EOF, or if we just found - // a bare EOF. - return keys, errEofToken - case token.ASSIGN: - // assignment or object only, but not nested objects. this is not - // allowed: `foo bar = {}` - if keyCount > 1 { - return nil, &PosError{ - Pos: p.tok.Pos, - Err: fmt.Errorf("nested object expected: LBRACE got: %s", p.tok.Type), - } - } - - if keyCount == 0 { - return nil, &PosError{ - Pos: p.tok.Pos, - Err: errors.New("no object keys found!"), - } - } - - return keys, nil - case token.LBRACE: - var err error - - // If we have no keys, then it is a syntax error. i.e. {{}} is not - // allowed. - if len(keys) == 0 { - err = &PosError{ - Pos: p.tok.Pos, - Err: fmt.Errorf("expected: IDENT | STRING got: %s", p.tok.Type), - } - } - - // object - return keys, err - case token.IDENT, token.STRING: - keyCount++ - keys = append(keys, &ast.ObjectKey{Token: p.tok}) - case token.ILLEGAL: - return keys, &PosError{ - Pos: p.tok.Pos, - Err: fmt.Errorf("illegal character"), - } - default: - return keys, &PosError{ - Pos: p.tok.Pos, - Err: fmt.Errorf("expected: IDENT | STRING | ASSIGN | LBRACE got: %s", p.tok.Type), - } - } - } -} - -// object parses any type of object, such as number, bool, string, object or -// list. -func (p *Parser) object() (ast.Node, error) { - defer un(trace(p, "ParseType")) - tok := p.scan() - - switch tok.Type { - case token.NUMBER, token.FLOAT, token.BOOL, token.STRING, token.HEREDOC: - return p.literalType() - case token.LBRACE: - return p.objectType() - case token.LBRACK: - return p.listType() - case token.COMMENT: - // implement comment - case token.EOF: - return nil, errEofToken - } - - return nil, &PosError{ - Pos: tok.Pos, - Err: fmt.Errorf("Unknown token: %+v", tok), - } -} - -// objectType parses an object type and returns a ObjectType AST -func (p *Parser) objectType() (*ast.ObjectType, error) { - defer un(trace(p, "ParseObjectType")) - - // we assume that the currently scanned token is a LBRACE - o := &ast.ObjectType{ - Lbrace: p.tok.Pos, - } - - l, err := p.objectList(true) - - // if we hit RBRACE, we are good to go (means we parsed all Items), if it's - // not a RBRACE, it's an syntax error and we just return it. - if err != nil && p.tok.Type != token.RBRACE { - return nil, err - } - - // No error, scan and expect the ending to be a brace - if tok := p.scan(); tok.Type != token.RBRACE { - return nil, &PosError{ - Pos: tok.Pos, - Err: fmt.Errorf("object expected closing RBRACE got: %s", tok.Type), - } - } - - o.List = l - o.Rbrace = p.tok.Pos // advanced via parseObjectList - return o, nil -} - -// listType parses a list type and returns a ListType AST -func (p *Parser) listType() (*ast.ListType, error) { - defer un(trace(p, "ParseListType")) - - // we assume that the currently scanned token is a LBRACK - l := &ast.ListType{ - Lbrack: p.tok.Pos, - } - - needComma := false - for { - tok := p.scan() - if needComma { - switch tok.Type { - case token.COMMA, token.RBRACK: - default: - return nil, &PosError{ - Pos: tok.Pos, - Err: fmt.Errorf( - "error parsing list, expected comma or list end, got: %s", - tok.Type), - } - } - } - switch tok.Type { - case token.BOOL, token.NUMBER, token.FLOAT, token.STRING, token.HEREDOC: - node, err := p.literalType() - if err != nil { - return nil, err - } - - // If there is a lead comment, apply it - if p.leadComment != nil { - node.LeadComment = p.leadComment - p.leadComment = nil - } - - l.Add(node) - needComma = true - case token.COMMA: - // get next list item or we are at the end - // do a look-ahead for line comment - p.scan() - if p.lineComment != nil && len(l.List) > 0 { - lit, ok := l.List[len(l.List)-1].(*ast.LiteralType) - if ok { - lit.LineComment = p.lineComment - l.List[len(l.List)-1] = lit - p.lineComment = nil - } - } - p.unscan() - - needComma = false - continue - case token.LBRACE: - // Looks like a nested object, so parse it out - node, err := p.objectType() - if err != nil { - return nil, &PosError{ - Pos: tok.Pos, - Err: fmt.Errorf( - "error while trying to parse object within list: %s", err), - } - } - l.Add(node) - needComma = true - case token.LBRACK: - node, err := p.listType() - if err != nil { - return nil, &PosError{ - Pos: tok.Pos, - Err: fmt.Errorf( - "error while trying to parse list within list: %s", err), - } - } - l.Add(node) - case token.RBRACK: - // finished - l.Rbrack = p.tok.Pos - return l, nil - default: - return nil, &PosError{ - Pos: tok.Pos, - Err: fmt.Errorf("unexpected token while parsing list: %s", tok.Type), - } - } - } -} - -// literalType parses a literal type and returns a LiteralType AST -func (p *Parser) literalType() (*ast.LiteralType, error) { - defer un(trace(p, "ParseLiteral")) - - return &ast.LiteralType{ - Token: p.tok, - }, nil -} - -// scan returns the next token from the underlying scanner. If a token has -// been unscanned then read that instead. In the process, it collects any -// comment groups encountered, and remembers the last lead and line comments. -func (p *Parser) scan() token.Token { - // If we have a token on the buffer, then return it. - if p.n != 0 { - p.n = 0 - return p.tok - } - - // Otherwise read the next token from the scanner and Save it to the buffer - // in case we unscan later. - prev := p.tok - p.tok = p.sc.Scan() - - if p.tok.Type == token.COMMENT { - var comment *ast.CommentGroup - var endline int - - // fmt.Printf("p.tok.Pos.Line = %+v prev: %d endline %d \n", - // p.tok.Pos.Line, prev.Pos.Line, endline) - if p.tok.Pos.Line == prev.Pos.Line { - // The comment is on same line as the previous token; it - // cannot be a lead comment but may be a line comment. - comment, endline = p.consumeCommentGroup(0) - if p.tok.Pos.Line != endline { - // The next token is on a different line, thus - // the last comment group is a line comment. - p.lineComment = comment - } - } - - // consume successor comments, if any - endline = -1 - for p.tok.Type == token.COMMENT { - comment, endline = p.consumeCommentGroup(1) - } - - if endline+1 == p.tok.Pos.Line && p.tok.Type != token.RBRACE { - switch p.tok.Type { - case token.RBRACE, token.RBRACK: - // Do not count for these cases - default: - // The next token is following on the line immediately after the - // comment group, thus the last comment group is a lead comment. - p.leadComment = comment - } - } - - } - - return p.tok -} - -// unscan pushes the previously read token back onto the buffer. -func (p *Parser) unscan() { - p.n = 1 -} - -// ---------------------------------------------------------------------------- -// Parsing support - -func (p *Parser) printTrace(a ...interface{}) { - if !p.enableTrace { - return - } - - const dots = ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . " - const n = len(dots) - fmt.Printf("%5d:%3d: ", p.tok.Pos.Line, p.tok.Pos.Column) - - i := 2 * p.indent - for i > n { - fmt.Print(dots) - i -= n - } - // i <= n - fmt.Print(dots[0:i]) - fmt.Println(a...) -} - -func trace(p *Parser, msg string) *Parser { - p.printTrace(msg, "(") - p.indent++ - return p -} - -// Usage pattern: defer un(trace(p, "...")) -func un(p *Parser) { - p.indent-- - p.printTrace(")") -} diff --git a/vendor/github.com/hashicorp/hcl/hcl/scanner/scanner.go b/vendor/github.com/hashicorp/hcl/hcl/scanner/scanner.go deleted file mode 100644 index 6966236..0000000 --- a/vendor/github.com/hashicorp/hcl/hcl/scanner/scanner.go +++ /dev/null @@ -1,651 +0,0 @@ -// Package scanner implements a scanner for HCL (HashiCorp Configuration -// Language) source text. -package scanner - -import ( - "bytes" - "fmt" - "os" - "regexp" - "unicode" - "unicode/utf8" - - "github.com/hashicorp/hcl/hcl/token" -) - -// eof represents a marker rune for the end of the reader. -const eof = rune(0) - -// Scanner defines a lexical scanner -type Scanner struct { - buf *bytes.Buffer // Source buffer for advancing and scanning - src []byte // Source buffer for immutable access - - // Source Position - srcPos token.Pos // current position - prevPos token.Pos // previous position, used for peek() method - - lastCharLen int // length of last character in bytes - lastLineLen int // length of last line in characters (for correct column reporting) - - tokStart int // token text start position - tokEnd int // token text end position - - // Error is called for each error encountered. If no Error - // function is set, the error is reported to os.Stderr. - Error func(pos token.Pos, msg string) - - // ErrorCount is incremented by one for each error encountered. - ErrorCount int - - // tokPos is the start position of most recently scanned token; set by - // Scan. The Filename field is always left untouched by the Scanner. If - // an error is reported (via Error) and Position is invalid, the scanner is - // not inside a token. - tokPos token.Pos -} - -// New creates and initializes a new instance of Scanner using src as -// its source content. -func New(src []byte) *Scanner { - // even though we accept a src, we read from a io.Reader compatible type - // (*bytes.Buffer). So in the future we might easily change it to streaming - // read. - b := bytes.NewBuffer(src) - s := &Scanner{ - buf: b, - src: src, - } - - // srcPosition always starts with 1 - s.srcPos.Line = 1 - return s -} - -// next reads the next rune from the bufferred reader. Returns the rune(0) if -// an error occurs (or io.EOF is returned). -func (s *Scanner) next() rune { - ch, size, err := s.buf.ReadRune() - if err != nil { - // advance for error reporting - s.srcPos.Column++ - s.srcPos.Offset += size - s.lastCharLen = size - return eof - } - - if ch == utf8.RuneError && size == 1 { - s.srcPos.Column++ - s.srcPos.Offset += size - s.lastCharLen = size - s.err("illegal UTF-8 encoding") - return ch - } - - // remember last position - s.prevPos = s.srcPos - - s.srcPos.Column++ - s.lastCharLen = size - s.srcPos.Offset += size - - if ch == '\n' { - s.srcPos.Line++ - s.lastLineLen = s.srcPos.Column - s.srcPos.Column = 0 - } - - // If we see a null character with data left, then that is an error - if ch == '\x00' && s.buf.Len() > 0 { - s.err("unexpected null character (0x00)") - return eof - } - - // debug - // fmt.Printf("ch: %q, offset:column: %d:%d\n", ch, s.srcPos.Offset, s.srcPos.Column) - return ch -} - -// unread unreads the previous read Rune and updates the source position -func (s *Scanner) unread() { - if err := s.buf.UnreadRune(); err != nil { - panic(err) // this is user fault, we should catch it - } - s.srcPos = s.prevPos // put back last position -} - -// peek returns the next rune without advancing the reader. -func (s *Scanner) peek() rune { - peek, _, err := s.buf.ReadRune() - if err != nil { - return eof - } - - s.buf.UnreadRune() - return peek -} - -// Scan scans the next token and returns the token. -func (s *Scanner) Scan() token.Token { - ch := s.next() - - // skip white space - for isWhitespace(ch) { - ch = s.next() - } - - var tok token.Type - - // token text markings - s.tokStart = s.srcPos.Offset - s.lastCharLen - - // token position, initial next() is moving the offset by one(size of rune - // actually), though we are interested with the starting point - s.tokPos.Offset = s.srcPos.Offset - s.lastCharLen - if s.srcPos.Column > 0 { - // common case: last character was not a '\n' - s.tokPos.Line = s.srcPos.Line - s.tokPos.Column = s.srcPos.Column - } else { - // last character was a '\n' - // (we cannot be at the beginning of the source - // since we have called next() at least once) - s.tokPos.Line = s.srcPos.Line - 1 - s.tokPos.Column = s.lastLineLen - } - - switch { - case isLetter(ch): - tok = token.IDENT - lit := s.scanIdentifier() - if lit == "true" || lit == "false" { - tok = token.BOOL - } - case isDecimal(ch): - tok = s.scanNumber(ch) - default: - switch ch { - case eof: - tok = token.EOF - case '"': - tok = token.STRING - s.scanString() - case '#', '/': - tok = token.COMMENT - s.scanComment(ch) - case '.': - tok = token.PERIOD - ch = s.peek() - if isDecimal(ch) { - tok = token.FLOAT - ch = s.scanMantissa(ch) - ch = s.scanExponent(ch) - } - case '<': - tok = token.HEREDOC - s.scanHeredoc() - case '[': - tok = token.LBRACK - case ']': - tok = token.RBRACK - case '{': - tok = token.LBRACE - case '}': - tok = token.RBRACE - case ',': - tok = token.COMMA - case '=': - tok = token.ASSIGN - case '+': - tok = token.ADD - case '-': - if isDecimal(s.peek()) { - ch := s.next() - tok = s.scanNumber(ch) - } else { - tok = token.SUB - } - default: - s.err("illegal char") - } - } - - // finish token ending - s.tokEnd = s.srcPos.Offset - - // create token literal - var tokenText string - if s.tokStart >= 0 { - tokenText = string(s.src[s.tokStart:s.tokEnd]) - } - s.tokStart = s.tokEnd // ensure idempotency of tokenText() call - - return token.Token{ - Type: tok, - Pos: s.tokPos, - Text: tokenText, - } -} - -func (s *Scanner) scanComment(ch rune) { - // single line comments - if ch == '#' || (ch == '/' && s.peek() != '*') { - if ch == '/' && s.peek() != '/' { - s.err("expected '/' for comment") - return - } - - ch = s.next() - for ch != '\n' && ch >= 0 && ch != eof { - ch = s.next() - } - if ch != eof && ch >= 0 { - s.unread() - } - return - } - - // be sure we get the character after /* This allows us to find comment's - // that are not erminated - if ch == '/' { - s.next() - ch = s.next() // read character after "/*" - } - - // look for /* - style comments - for { - if ch < 0 || ch == eof { - s.err("comment not terminated") - break - } - - ch0 := ch - ch = s.next() - if ch0 == '*' && ch == '/' { - break - } - } -} - -// scanNumber scans a HCL number definition starting with the given rune -func (s *Scanner) scanNumber(ch rune) token.Type { - if ch == '0' { - // check for hexadecimal, octal or float - ch = s.next() - if ch == 'x' || ch == 'X' { - // hexadecimal - ch = s.next() - found := false - for isHexadecimal(ch) { - ch = s.next() - found = true - } - - if !found { - s.err("illegal hexadecimal number") - } - - if ch != eof { - s.unread() - } - - return token.NUMBER - } - - // now it's either something like: 0421(octal) or 0.1231(float) - illegalOctal := false - for isDecimal(ch) { - ch = s.next() - if ch == '8' || ch == '9' { - // this is just a possibility. For example 0159 is illegal, but - // 0159.23 is valid. So we mark a possible illegal octal. If - // the next character is not a period, we'll print the error. - illegalOctal = true - } - } - - if ch == 'e' || ch == 'E' { - ch = s.scanExponent(ch) - return token.FLOAT - } - - if ch == '.' { - ch = s.scanFraction(ch) - - if ch == 'e' || ch == 'E' { - ch = s.next() - ch = s.scanExponent(ch) - } - return token.FLOAT - } - - if illegalOctal { - s.err("illegal octal number") - } - - if ch != eof { - s.unread() - } - return token.NUMBER - } - - s.scanMantissa(ch) - ch = s.next() // seek forward - if ch == 'e' || ch == 'E' { - ch = s.scanExponent(ch) - return token.FLOAT - } - - if ch == '.' { - ch = s.scanFraction(ch) - if ch == 'e' || ch == 'E' { - ch = s.next() - ch = s.scanExponent(ch) - } - return token.FLOAT - } - - if ch != eof { - s.unread() - } - return token.NUMBER -} - -// scanMantissa scans the mantissa begining from the rune. It returns the next -// non decimal rune. It's used to determine wheter it's a fraction or exponent. -func (s *Scanner) scanMantissa(ch rune) rune { - scanned := false - for isDecimal(ch) { - ch = s.next() - scanned = true - } - - if scanned && ch != eof { - s.unread() - } - return ch -} - -// scanFraction scans the fraction after the '.' rune -func (s *Scanner) scanFraction(ch rune) rune { - if ch == '.' { - ch = s.peek() // we peek just to see if we can move forward - ch = s.scanMantissa(ch) - } - return ch -} - -// scanExponent scans the remaining parts of an exponent after the 'e' or 'E' -// rune. -func (s *Scanner) scanExponent(ch rune) rune { - if ch == 'e' || ch == 'E' { - ch = s.next() - if ch == '-' || ch == '+' { - ch = s.next() - } - ch = s.scanMantissa(ch) - } - return ch -} - -// scanHeredoc scans a heredoc string -func (s *Scanner) scanHeredoc() { - // Scan the second '<' in example: '<= len(identBytes) && identRegexp.Match(s.src[lineStart:s.srcPos.Offset-s.lastCharLen]) { - break - } - - // Not an anchor match, record the start of a new line - lineStart = s.srcPos.Offset - } - - if ch == eof { - s.err("heredoc not terminated") - return - } - } - - return -} - -// scanString scans a quoted string -func (s *Scanner) scanString() { - braces := 0 - for { - // '"' opening already consumed - // read character after quote - ch := s.next() - - if (ch == '\n' && braces == 0) || ch < 0 || ch == eof { - s.err("literal not terminated") - return - } - - if ch == '"' && braces == 0 { - break - } - - // If we're going into a ${} then we can ignore quotes for awhile - if braces == 0 && ch == '$' && s.peek() == '{' { - braces++ - s.next() - } else if braces > 0 && ch == '{' { - braces++ - } - if braces > 0 && ch == '}' { - braces-- - } - - if ch == '\\' { - s.scanEscape() - } - } - - return -} - -// scanEscape scans an escape sequence -func (s *Scanner) scanEscape() rune { - // http://en.cppreference.com/w/cpp/language/escape - ch := s.next() // read character after '/' - switch ch { - case 'a', 'b', 'f', 'n', 'r', 't', 'v', '\\', '"': - // nothing to do - case '0', '1', '2', '3', '4', '5', '6', '7': - // octal notation - ch = s.scanDigits(ch, 8, 3) - case 'x': - // hexademical notation - ch = s.scanDigits(s.next(), 16, 2) - case 'u': - // universal character name - ch = s.scanDigits(s.next(), 16, 4) - case 'U': - // universal character name - ch = s.scanDigits(s.next(), 16, 8) - default: - s.err("illegal char escape") - } - return ch -} - -// scanDigits scans a rune with the given base for n times. For example an -// octal notation \184 would yield in scanDigits(ch, 8, 3) -func (s *Scanner) scanDigits(ch rune, base, n int) rune { - start := n - for n > 0 && digitVal(ch) < base { - ch = s.next() - if ch == eof { - // If we see an EOF, we halt any more scanning of digits - // immediately. - break - } - - n-- - } - if n > 0 { - s.err("illegal char escape") - } - - if n != start { - // we scanned all digits, put the last non digit char back, - // only if we read anything at all - s.unread() - } - - return ch -} - -// scanIdentifier scans an identifier and returns the literal string -func (s *Scanner) scanIdentifier() string { - offs := s.srcPos.Offset - s.lastCharLen - ch := s.next() - for isLetter(ch) || isDigit(ch) || ch == '-' || ch == '.' { - ch = s.next() - } - - if ch != eof { - s.unread() // we got identifier, put back latest char - } - - return string(s.src[offs:s.srcPos.Offset]) -} - -// recentPosition returns the position of the character immediately after the -// character or token returned by the last call to Scan. -func (s *Scanner) recentPosition() (pos token.Pos) { - pos.Offset = s.srcPos.Offset - s.lastCharLen - switch { - case s.srcPos.Column > 0: - // common case: last character was not a '\n' - pos.Line = s.srcPos.Line - pos.Column = s.srcPos.Column - case s.lastLineLen > 0: - // last character was a '\n' - // (we cannot be at the beginning of the source - // since we have called next() at least once) - pos.Line = s.srcPos.Line - 1 - pos.Column = s.lastLineLen - default: - // at the beginning of the source - pos.Line = 1 - pos.Column = 1 - } - return -} - -// err prints the error of any scanning to s.Error function. If the function is -// not defined, by default it prints them to os.Stderr -func (s *Scanner) err(msg string) { - s.ErrorCount++ - pos := s.recentPosition() - - if s.Error != nil { - s.Error(pos, msg) - return - } - - fmt.Fprintf(os.Stderr, "%s: %s\n", pos, msg) -} - -// isHexadecimal returns true if the given rune is a letter -func isLetter(ch rune) bool { - return 'a' <= ch && ch <= 'z' || 'A' <= ch && ch <= 'Z' || ch == '_' || ch >= 0x80 && unicode.IsLetter(ch) -} - -// isDigit returns true if the given rune is a decimal digit -func isDigit(ch rune) bool { - return '0' <= ch && ch <= '9' || ch >= 0x80 && unicode.IsDigit(ch) -} - -// isDecimal returns true if the given rune is a decimal number -func isDecimal(ch rune) bool { - return '0' <= ch && ch <= '9' -} - -// isHexadecimal returns true if the given rune is an hexadecimal number -func isHexadecimal(ch rune) bool { - return '0' <= ch && ch <= '9' || 'a' <= ch && ch <= 'f' || 'A' <= ch && ch <= 'F' -} - -// isWhitespace returns true if the rune is a space, tab, newline or carriage return -func isWhitespace(ch rune) bool { - return ch == ' ' || ch == '\t' || ch == '\n' || ch == '\r' -} - -// digitVal returns the integer value of a given octal,decimal or hexadecimal rune -func digitVal(ch rune) int { - switch { - case '0' <= ch && ch <= '9': - return int(ch - '0') - case 'a' <= ch && ch <= 'f': - return int(ch - 'a' + 10) - case 'A' <= ch && ch <= 'F': - return int(ch - 'A' + 10) - } - return 16 // larger than any legal digit val -} diff --git a/vendor/github.com/hashicorp/hcl/hcl/strconv/quote.go b/vendor/github.com/hashicorp/hcl/hcl/strconv/quote.go deleted file mode 100644 index 5f981ea..0000000 --- a/vendor/github.com/hashicorp/hcl/hcl/strconv/quote.go +++ /dev/null @@ -1,241 +0,0 @@ -package strconv - -import ( - "errors" - "unicode/utf8" -) - -// ErrSyntax indicates that a value does not have the right syntax for the target type. -var ErrSyntax = errors.New("invalid syntax") - -// Unquote interprets s as a single-quoted, double-quoted, -// or backquoted Go string literal, returning the string value -// that s quotes. (If s is single-quoted, it would be a Go -// character literal; Unquote returns the corresponding -// one-character string.) -func Unquote(s string) (t string, err error) { - n := len(s) - if n < 2 { - return "", ErrSyntax - } - quote := s[0] - if quote != s[n-1] { - return "", ErrSyntax - } - s = s[1 : n-1] - - if quote != '"' { - return "", ErrSyntax - } - if !contains(s, '$') && !contains(s, '{') && contains(s, '\n') { - return "", ErrSyntax - } - - // Is it trivial? Avoid allocation. - if !contains(s, '\\') && !contains(s, quote) && !contains(s, '$') { - switch quote { - case '"': - return s, nil - case '\'': - r, size := utf8.DecodeRuneInString(s) - if size == len(s) && (r != utf8.RuneError || size != 1) { - return s, nil - } - } - } - - var runeTmp [utf8.UTFMax]byte - buf := make([]byte, 0, 3*len(s)/2) // Try to avoid more allocations. - for len(s) > 0 { - // If we're starting a '${}' then let it through un-unquoted. - // Specifically: we don't unquote any characters within the `${}` - // section. - if s[0] == '$' && len(s) > 1 && s[1] == '{' { - buf = append(buf, '$', '{') - s = s[2:] - - // Continue reading until we find the closing brace, copying as-is - braces := 1 - for len(s) > 0 && braces > 0 { - r, size := utf8.DecodeRuneInString(s) - if r == utf8.RuneError { - return "", ErrSyntax - } - - s = s[size:] - - n := utf8.EncodeRune(runeTmp[:], r) - buf = append(buf, runeTmp[:n]...) - - switch r { - case '{': - braces++ - case '}': - braces-- - } - } - if braces != 0 { - return "", ErrSyntax - } - if len(s) == 0 { - // If there's no string left, we're done! - break - } else { - // If there's more left, we need to pop back up to the top of the loop - // in case there's another interpolation in this string. - continue - } - } - - if s[0] == '\n' { - return "", ErrSyntax - } - - c, multibyte, ss, err := unquoteChar(s, quote) - if err != nil { - return "", err - } - s = ss - if c < utf8.RuneSelf || !multibyte { - buf = append(buf, byte(c)) - } else { - n := utf8.EncodeRune(runeTmp[:], c) - buf = append(buf, runeTmp[:n]...) - } - if quote == '\'' && len(s) != 0 { - // single-quoted must be single character - return "", ErrSyntax - } - } - return string(buf), nil -} - -// contains reports whether the string contains the byte c. -func contains(s string, c byte) bool { - for i := 0; i < len(s); i++ { - if s[i] == c { - return true - } - } - return false -} - -func unhex(b byte) (v rune, ok bool) { - c := rune(b) - switch { - case '0' <= c && c <= '9': - return c - '0', true - case 'a' <= c && c <= 'f': - return c - 'a' + 10, true - case 'A' <= c && c <= 'F': - return c - 'A' + 10, true - } - return -} - -func unquoteChar(s string, quote byte) (value rune, multibyte bool, tail string, err error) { - // easy cases - switch c := s[0]; { - case c == quote && (quote == '\'' || quote == '"'): - err = ErrSyntax - return - case c >= utf8.RuneSelf: - r, size := utf8.DecodeRuneInString(s) - return r, true, s[size:], nil - case c != '\\': - return rune(s[0]), false, s[1:], nil - } - - // hard case: c is backslash - if len(s) <= 1 { - err = ErrSyntax - return - } - c := s[1] - s = s[2:] - - switch c { - case 'a': - value = '\a' - case 'b': - value = '\b' - case 'f': - value = '\f' - case 'n': - value = '\n' - case 'r': - value = '\r' - case 't': - value = '\t' - case 'v': - value = '\v' - case 'x', 'u', 'U': - n := 0 - switch c { - case 'x': - n = 2 - case 'u': - n = 4 - case 'U': - n = 8 - } - var v rune - if len(s) < n { - err = ErrSyntax - return - } - for j := 0; j < n; j++ { - x, ok := unhex(s[j]) - if !ok { - err = ErrSyntax - return - } - v = v<<4 | x - } - s = s[n:] - if c == 'x' { - // single-byte string, possibly not UTF-8 - value = v - break - } - if v > utf8.MaxRune { - err = ErrSyntax - return - } - value = v - multibyte = true - case '0', '1', '2', '3', '4', '5', '6', '7': - v := rune(c) - '0' - if len(s) < 2 { - err = ErrSyntax - return - } - for j := 0; j < 2; j++ { // one digit already; two more - x := rune(s[j]) - '0' - if x < 0 || x > 7 { - err = ErrSyntax - return - } - v = (v << 3) | x - } - s = s[2:] - if v > 255 { - err = ErrSyntax - return - } - value = v - case '\\': - value = '\\' - case '\'', '"': - if c != quote { - err = ErrSyntax - return - } - value = rune(c) - default: - err = ErrSyntax - return - } - tail = s - return -} diff --git a/vendor/github.com/hashicorp/hcl/hcl/token/position.go b/vendor/github.com/hashicorp/hcl/hcl/token/position.go deleted file mode 100644 index 59c1bb7..0000000 --- a/vendor/github.com/hashicorp/hcl/hcl/token/position.go +++ /dev/null @@ -1,46 +0,0 @@ -package token - -import "fmt" - -// Pos describes an arbitrary source position -// including the file, line, and column location. -// A Position is valid if the line number is > 0. -type Pos struct { - Filename string // filename, if any - Offset int // offset, starting at 0 - Line int // line number, starting at 1 - Column int // column number, starting at 1 (character count) -} - -// IsValid returns true if the position is valid. -func (p *Pos) IsValid() bool { return p.Line > 0 } - -// String returns a string in one of several forms: -// -// file:line:column valid position with file name -// line:column valid position without file name -// file invalid position with file name -// - invalid position without file name -func (p Pos) String() string { - s := p.Filename - if p.IsValid() { - if s != "" { - s += ":" - } - s += fmt.Sprintf("%d:%d", p.Line, p.Column) - } - if s == "" { - s = "-" - } - return s -} - -// Before reports whether the position p is before u. -func (p Pos) Before(u Pos) bool { - return u.Offset > p.Offset || u.Line > p.Line -} - -// After reports whether the position p is after u. -func (p Pos) After(u Pos) bool { - return u.Offset < p.Offset || u.Line < p.Line -} diff --git a/vendor/github.com/hashicorp/hcl/hcl/token/token.go b/vendor/github.com/hashicorp/hcl/hcl/token/token.go deleted file mode 100644 index e37c066..0000000 --- a/vendor/github.com/hashicorp/hcl/hcl/token/token.go +++ /dev/null @@ -1,219 +0,0 @@ -// Package token defines constants representing the lexical tokens for HCL -// (HashiCorp Configuration Language) -package token - -import ( - "fmt" - "strconv" - "strings" - - hclstrconv "github.com/hashicorp/hcl/hcl/strconv" -) - -// Token defines a single HCL token which can be obtained via the Scanner -type Token struct { - Type Type - Pos Pos - Text string - JSON bool -} - -// Type is the set of lexical tokens of the HCL (HashiCorp Configuration Language) -type Type int - -const ( - // Special tokens - ILLEGAL Type = iota - EOF - COMMENT - - identifier_beg - IDENT // literals - literal_beg - NUMBER // 12345 - FLOAT // 123.45 - BOOL // true,false - STRING // "abc" - HEREDOC // < 0 { - // Pop the current item - n := len(frontier) - item := frontier[n-1] - frontier = frontier[:n-1] - - switch v := item.Val.(type) { - case *ast.ObjectType: - items, frontier = flattenObjectType(v, item, items, frontier) - case *ast.ListType: - items, frontier = flattenListType(v, item, items, frontier) - default: - items = append(items, item) - } - } - - // Reverse the list since the frontier model runs things backwards - for i := len(items)/2 - 1; i >= 0; i-- { - opp := len(items) - 1 - i - items[i], items[opp] = items[opp], items[i] - } - - // Done! Set the original items - list.Items = items - return n, true - }) -} - -func flattenListType( - ot *ast.ListType, - item *ast.ObjectItem, - items []*ast.ObjectItem, - frontier []*ast.ObjectItem) ([]*ast.ObjectItem, []*ast.ObjectItem) { - // If the list is empty, keep the original list - if len(ot.List) == 0 { - items = append(items, item) - return items, frontier - } - - // All the elements of this object must also be objects! - for _, subitem := range ot.List { - if _, ok := subitem.(*ast.ObjectType); !ok { - items = append(items, item) - return items, frontier - } - } - - // Great! We have a match go through all the items and flatten - for _, elem := range ot.List { - // Add it to the frontier so that we can recurse - frontier = append(frontier, &ast.ObjectItem{ - Keys: item.Keys, - Assign: item.Assign, - Val: elem, - LeadComment: item.LeadComment, - LineComment: item.LineComment, - }) - } - - return items, frontier -} - -func flattenObjectType( - ot *ast.ObjectType, - item *ast.ObjectItem, - items []*ast.ObjectItem, - frontier []*ast.ObjectItem) ([]*ast.ObjectItem, []*ast.ObjectItem) { - // If the list has no items we do not have to flatten anything - if ot.List.Items == nil { - items = append(items, item) - return items, frontier - } - - // All the elements of this object must also be objects! - for _, subitem := range ot.List.Items { - if _, ok := subitem.Val.(*ast.ObjectType); !ok { - items = append(items, item) - return items, frontier - } - } - - // Great! We have a match go through all the items and flatten - for _, subitem := range ot.List.Items { - // Copy the new key - keys := make([]*ast.ObjectKey, len(item.Keys)+len(subitem.Keys)) - copy(keys, item.Keys) - copy(keys[len(item.Keys):], subitem.Keys) - - // Add it to the frontier so that we can recurse - frontier = append(frontier, &ast.ObjectItem{ - Keys: keys, - Assign: item.Assign, - Val: subitem.Val, - LeadComment: item.LeadComment, - LineComment: item.LineComment, - }) - } - - return items, frontier -} diff --git a/vendor/github.com/hashicorp/hcl/json/parser/parser.go b/vendor/github.com/hashicorp/hcl/json/parser/parser.go deleted file mode 100644 index 125a5f0..0000000 --- a/vendor/github.com/hashicorp/hcl/json/parser/parser.go +++ /dev/null @@ -1,313 +0,0 @@ -package parser - -import ( - "errors" - "fmt" - - "github.com/hashicorp/hcl/hcl/ast" - hcltoken "github.com/hashicorp/hcl/hcl/token" - "github.com/hashicorp/hcl/json/scanner" - "github.com/hashicorp/hcl/json/token" -) - -type Parser struct { - sc *scanner.Scanner - - // Last read token - tok token.Token - commaPrev token.Token - - enableTrace bool - indent int - n int // buffer size (max = 1) -} - -func newParser(src []byte) *Parser { - return &Parser{ - sc: scanner.New(src), - } -} - -// Parse returns the fully parsed source and returns the abstract syntax tree. -func Parse(src []byte) (*ast.File, error) { - p := newParser(src) - return p.Parse() -} - -var errEofToken = errors.New("EOF token found") - -// Parse returns the fully parsed source and returns the abstract syntax tree. -func (p *Parser) Parse() (*ast.File, error) { - f := &ast.File{} - var err, scerr error - p.sc.Error = func(pos token.Pos, msg string) { - scerr = fmt.Errorf("%s: %s", pos, msg) - } - - // The root must be an object in JSON - object, err := p.object() - if scerr != nil { - return nil, scerr - } - if err != nil { - return nil, err - } - - // We make our final node an object list so it is more HCL compatible - f.Node = object.List - - // Flatten it, which finds patterns and turns them into more HCL-like - // AST trees. - flattenObjects(f.Node) - - return f, nil -} - -func (p *Parser) objectList() (*ast.ObjectList, error) { - defer un(trace(p, "ParseObjectList")) - node := &ast.ObjectList{} - - for { - n, err := p.objectItem() - if err == errEofToken { - break // we are finished - } - - // we don't return a nil node, because might want to use already - // collected items. - if err != nil { - return node, err - } - - node.Add(n) - - // Check for a followup comma. If it isn't a comma, then we're done - if tok := p.scan(); tok.Type != token.COMMA { - break - } - } - - return node, nil -} - -// objectItem parses a single object item -func (p *Parser) objectItem() (*ast.ObjectItem, error) { - defer un(trace(p, "ParseObjectItem")) - - keys, err := p.objectKey() - if err != nil { - return nil, err - } - - o := &ast.ObjectItem{ - Keys: keys, - } - - switch p.tok.Type { - case token.COLON: - pos := p.tok.Pos - o.Assign = hcltoken.Pos{ - Filename: pos.Filename, - Offset: pos.Offset, - Line: pos.Line, - Column: pos.Column, - } - - o.Val, err = p.objectValue() - if err != nil { - return nil, err - } - } - - return o, nil -} - -// objectKey parses an object key and returns a ObjectKey AST -func (p *Parser) objectKey() ([]*ast.ObjectKey, error) { - keyCount := 0 - keys := make([]*ast.ObjectKey, 0) - - for { - tok := p.scan() - switch tok.Type { - case token.EOF: - return nil, errEofToken - case token.STRING: - keyCount++ - keys = append(keys, &ast.ObjectKey{ - Token: p.tok.HCLToken(), - }) - case token.COLON: - // If we have a zero keycount it means that we never got - // an object key, i.e. `{ :`. This is a syntax error. - if keyCount == 0 { - return nil, fmt.Errorf("expected: STRING got: %s", p.tok.Type) - } - - // Done - return keys, nil - case token.ILLEGAL: - return nil, errors.New("illegal") - default: - return nil, fmt.Errorf("expected: STRING got: %s", p.tok.Type) - } - } -} - -// object parses any type of object, such as number, bool, string, object or -// list. -func (p *Parser) objectValue() (ast.Node, error) { - defer un(trace(p, "ParseObjectValue")) - tok := p.scan() - - switch tok.Type { - case token.NUMBER, token.FLOAT, token.BOOL, token.NULL, token.STRING: - return p.literalType() - case token.LBRACE: - return p.objectType() - case token.LBRACK: - return p.listType() - case token.EOF: - return nil, errEofToken - } - - return nil, fmt.Errorf("Expected object value, got unknown token: %+v", tok) -} - -// object parses any type of object, such as number, bool, string, object or -// list. -func (p *Parser) object() (*ast.ObjectType, error) { - defer un(trace(p, "ParseType")) - tok := p.scan() - - switch tok.Type { - case token.LBRACE: - return p.objectType() - case token.EOF: - return nil, errEofToken - } - - return nil, fmt.Errorf("Expected object, got unknown token: %+v", tok) -} - -// objectType parses an object type and returns a ObjectType AST -func (p *Parser) objectType() (*ast.ObjectType, error) { - defer un(trace(p, "ParseObjectType")) - - // we assume that the currently scanned token is a LBRACE - o := &ast.ObjectType{} - - l, err := p.objectList() - - // if we hit RBRACE, we are good to go (means we parsed all Items), if it's - // not a RBRACE, it's an syntax error and we just return it. - if err != nil && p.tok.Type != token.RBRACE { - return nil, err - } - - o.List = l - return o, nil -} - -// listType parses a list type and returns a ListType AST -func (p *Parser) listType() (*ast.ListType, error) { - defer un(trace(p, "ParseListType")) - - // we assume that the currently scanned token is a LBRACK - l := &ast.ListType{} - - for { - tok := p.scan() - switch tok.Type { - case token.NUMBER, token.FLOAT, token.STRING: - node, err := p.literalType() - if err != nil { - return nil, err - } - - l.Add(node) - case token.COMMA: - continue - case token.LBRACE: - node, err := p.objectType() - if err != nil { - return nil, err - } - - l.Add(node) - case token.BOOL: - // TODO(arslan) should we support? not supported by HCL yet - case token.LBRACK: - // TODO(arslan) should we support nested lists? Even though it's - // written in README of HCL, it's not a part of the grammar - // (not defined in parse.y) - case token.RBRACK: - // finished - return l, nil - default: - return nil, fmt.Errorf("unexpected token while parsing list: %s", tok.Type) - } - - } -} - -// literalType parses a literal type and returns a LiteralType AST -func (p *Parser) literalType() (*ast.LiteralType, error) { - defer un(trace(p, "ParseLiteral")) - - return &ast.LiteralType{ - Token: p.tok.HCLToken(), - }, nil -} - -// scan returns the next token from the underlying scanner. If a token has -// been unscanned then read that instead. -func (p *Parser) scan() token.Token { - // If we have a token on the buffer, then return it. - if p.n != 0 { - p.n = 0 - return p.tok - } - - p.tok = p.sc.Scan() - return p.tok -} - -// unscan pushes the previously read token back onto the buffer. -func (p *Parser) unscan() { - p.n = 1 -} - -// ---------------------------------------------------------------------------- -// Parsing support - -func (p *Parser) printTrace(a ...interface{}) { - if !p.enableTrace { - return - } - - const dots = ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . " - const n = len(dots) - fmt.Printf("%5d:%3d: ", p.tok.Pos.Line, p.tok.Pos.Column) - - i := 2 * p.indent - for i > n { - fmt.Print(dots) - i -= n - } - // i <= n - fmt.Print(dots[0:i]) - fmt.Println(a...) -} - -func trace(p *Parser, msg string) *Parser { - p.printTrace(msg, "(") - p.indent++ - return p -} - -// Usage pattern: defer un(trace(p, "...")) -func un(p *Parser) { - p.indent-- - p.printTrace(")") -} diff --git a/vendor/github.com/hashicorp/hcl/json/scanner/scanner.go b/vendor/github.com/hashicorp/hcl/json/scanner/scanner.go deleted file mode 100644 index dd5c72b..0000000 --- a/vendor/github.com/hashicorp/hcl/json/scanner/scanner.go +++ /dev/null @@ -1,451 +0,0 @@ -package scanner - -import ( - "bytes" - "fmt" - "os" - "unicode" - "unicode/utf8" - - "github.com/hashicorp/hcl/json/token" -) - -// eof represents a marker rune for the end of the reader. -const eof = rune(0) - -// Scanner defines a lexical scanner -type Scanner struct { - buf *bytes.Buffer // Source buffer for advancing and scanning - src []byte // Source buffer for immutable access - - // Source Position - srcPos token.Pos // current position - prevPos token.Pos // previous position, used for peek() method - - lastCharLen int // length of last character in bytes - lastLineLen int // length of last line in characters (for correct column reporting) - - tokStart int // token text start position - tokEnd int // token text end position - - // Error is called for each error encountered. If no Error - // function is set, the error is reported to os.Stderr. - Error func(pos token.Pos, msg string) - - // ErrorCount is incremented by one for each error encountered. - ErrorCount int - - // tokPos is the start position of most recently scanned token; set by - // Scan. The Filename field is always left untouched by the Scanner. If - // an error is reported (via Error) and Position is invalid, the scanner is - // not inside a token. - tokPos token.Pos -} - -// New creates and initializes a new instance of Scanner using src as -// its source content. -func New(src []byte) *Scanner { - // even though we accept a src, we read from a io.Reader compatible type - // (*bytes.Buffer). So in the future we might easily change it to streaming - // read. - b := bytes.NewBuffer(src) - s := &Scanner{ - buf: b, - src: src, - } - - // srcPosition always starts with 1 - s.srcPos.Line = 1 - return s -} - -// next reads the next rune from the bufferred reader. Returns the rune(0) if -// an error occurs (or io.EOF is returned). -func (s *Scanner) next() rune { - ch, size, err := s.buf.ReadRune() - if err != nil { - // advance for error reporting - s.srcPos.Column++ - s.srcPos.Offset += size - s.lastCharLen = size - return eof - } - - if ch == utf8.RuneError && size == 1 { - s.srcPos.Column++ - s.srcPos.Offset += size - s.lastCharLen = size - s.err("illegal UTF-8 encoding") - return ch - } - - // remember last position - s.prevPos = s.srcPos - - s.srcPos.Column++ - s.lastCharLen = size - s.srcPos.Offset += size - - if ch == '\n' { - s.srcPos.Line++ - s.lastLineLen = s.srcPos.Column - s.srcPos.Column = 0 - } - - // debug - // fmt.Printf("ch: %q, offset:column: %d:%d\n", ch, s.srcPos.Offset, s.srcPos.Column) - return ch -} - -// unread unreads the previous read Rune and updates the source position -func (s *Scanner) unread() { - if err := s.buf.UnreadRune(); err != nil { - panic(err) // this is user fault, we should catch it - } - s.srcPos = s.prevPos // put back last position -} - -// peek returns the next rune without advancing the reader. -func (s *Scanner) peek() rune { - peek, _, err := s.buf.ReadRune() - if err != nil { - return eof - } - - s.buf.UnreadRune() - return peek -} - -// Scan scans the next token and returns the token. -func (s *Scanner) Scan() token.Token { - ch := s.next() - - // skip white space - for isWhitespace(ch) { - ch = s.next() - } - - var tok token.Type - - // token text markings - s.tokStart = s.srcPos.Offset - s.lastCharLen - - // token position, initial next() is moving the offset by one(size of rune - // actually), though we are interested with the starting point - s.tokPos.Offset = s.srcPos.Offset - s.lastCharLen - if s.srcPos.Column > 0 { - // common case: last character was not a '\n' - s.tokPos.Line = s.srcPos.Line - s.tokPos.Column = s.srcPos.Column - } else { - // last character was a '\n' - // (we cannot be at the beginning of the source - // since we have called next() at least once) - s.tokPos.Line = s.srcPos.Line - 1 - s.tokPos.Column = s.lastLineLen - } - - switch { - case isLetter(ch): - lit := s.scanIdentifier() - if lit == "true" || lit == "false" { - tok = token.BOOL - } else if lit == "null" { - tok = token.NULL - } else { - s.err("illegal char") - } - case isDecimal(ch): - tok = s.scanNumber(ch) - default: - switch ch { - case eof: - tok = token.EOF - case '"': - tok = token.STRING - s.scanString() - case '.': - tok = token.PERIOD - ch = s.peek() - if isDecimal(ch) { - tok = token.FLOAT - ch = s.scanMantissa(ch) - ch = s.scanExponent(ch) - } - case '[': - tok = token.LBRACK - case ']': - tok = token.RBRACK - case '{': - tok = token.LBRACE - case '}': - tok = token.RBRACE - case ',': - tok = token.COMMA - case ':': - tok = token.COLON - case '-': - if isDecimal(s.peek()) { - ch := s.next() - tok = s.scanNumber(ch) - } else { - s.err("illegal char") - } - default: - s.err("illegal char: " + string(ch)) - } - } - - // finish token ending - s.tokEnd = s.srcPos.Offset - - // create token literal - var tokenText string - if s.tokStart >= 0 { - tokenText = string(s.src[s.tokStart:s.tokEnd]) - } - s.tokStart = s.tokEnd // ensure idempotency of tokenText() call - - return token.Token{ - Type: tok, - Pos: s.tokPos, - Text: tokenText, - } -} - -// scanNumber scans a HCL number definition starting with the given rune -func (s *Scanner) scanNumber(ch rune) token.Type { - zero := ch == '0' - pos := s.srcPos - - s.scanMantissa(ch) - ch = s.next() // seek forward - if ch == 'e' || ch == 'E' { - ch = s.scanExponent(ch) - return token.FLOAT - } - - if ch == '.' { - ch = s.scanFraction(ch) - if ch == 'e' || ch == 'E' { - ch = s.next() - ch = s.scanExponent(ch) - } - return token.FLOAT - } - - if ch != eof { - s.unread() - } - - // If we have a larger number and this is zero, error - if zero && pos != s.srcPos { - s.err("numbers cannot start with 0") - } - - return token.NUMBER -} - -// scanMantissa scans the mantissa begining from the rune. It returns the next -// non decimal rune. It's used to determine wheter it's a fraction or exponent. -func (s *Scanner) scanMantissa(ch rune) rune { - scanned := false - for isDecimal(ch) { - ch = s.next() - scanned = true - } - - if scanned && ch != eof { - s.unread() - } - return ch -} - -// scanFraction scans the fraction after the '.' rune -func (s *Scanner) scanFraction(ch rune) rune { - if ch == '.' { - ch = s.peek() // we peek just to see if we can move forward - ch = s.scanMantissa(ch) - } - return ch -} - -// scanExponent scans the remaining parts of an exponent after the 'e' or 'E' -// rune. -func (s *Scanner) scanExponent(ch rune) rune { - if ch == 'e' || ch == 'E' { - ch = s.next() - if ch == '-' || ch == '+' { - ch = s.next() - } - ch = s.scanMantissa(ch) - } - return ch -} - -// scanString scans a quoted string -func (s *Scanner) scanString() { - braces := 0 - for { - // '"' opening already consumed - // read character after quote - ch := s.next() - - if ch == '\n' || ch < 0 || ch == eof { - s.err("literal not terminated") - return - } - - if ch == '"' { - break - } - - // If we're going into a ${} then we can ignore quotes for awhile - if braces == 0 && ch == '$' && s.peek() == '{' { - braces++ - s.next() - } else if braces > 0 && ch == '{' { - braces++ - } - if braces > 0 && ch == '}' { - braces-- - } - - if ch == '\\' { - s.scanEscape() - } - } - - return -} - -// scanEscape scans an escape sequence -func (s *Scanner) scanEscape() rune { - // http://en.cppreference.com/w/cpp/language/escape - ch := s.next() // read character after '/' - switch ch { - case 'a', 'b', 'f', 'n', 'r', 't', 'v', '\\', '"': - // nothing to do - case '0', '1', '2', '3', '4', '5', '6', '7': - // octal notation - ch = s.scanDigits(ch, 8, 3) - case 'x': - // hexademical notation - ch = s.scanDigits(s.next(), 16, 2) - case 'u': - // universal character name - ch = s.scanDigits(s.next(), 16, 4) - case 'U': - // universal character name - ch = s.scanDigits(s.next(), 16, 8) - default: - s.err("illegal char escape") - } - return ch -} - -// scanDigits scans a rune with the given base for n times. For example an -// octal notation \184 would yield in scanDigits(ch, 8, 3) -func (s *Scanner) scanDigits(ch rune, base, n int) rune { - for n > 0 && digitVal(ch) < base { - ch = s.next() - n-- - } - if n > 0 { - s.err("illegal char escape") - } - - // we scanned all digits, put the last non digit char back - s.unread() - return ch -} - -// scanIdentifier scans an identifier and returns the literal string -func (s *Scanner) scanIdentifier() string { - offs := s.srcPos.Offset - s.lastCharLen - ch := s.next() - for isLetter(ch) || isDigit(ch) || ch == '-' { - ch = s.next() - } - - if ch != eof { - s.unread() // we got identifier, put back latest char - } - - return string(s.src[offs:s.srcPos.Offset]) -} - -// recentPosition returns the position of the character immediately after the -// character or token returned by the last call to Scan. -func (s *Scanner) recentPosition() (pos token.Pos) { - pos.Offset = s.srcPos.Offset - s.lastCharLen - switch { - case s.srcPos.Column > 0: - // common case: last character was not a '\n' - pos.Line = s.srcPos.Line - pos.Column = s.srcPos.Column - case s.lastLineLen > 0: - // last character was a '\n' - // (we cannot be at the beginning of the source - // since we have called next() at least once) - pos.Line = s.srcPos.Line - 1 - pos.Column = s.lastLineLen - default: - // at the beginning of the source - pos.Line = 1 - pos.Column = 1 - } - return -} - -// err prints the error of any scanning to s.Error function. If the function is -// not defined, by default it prints them to os.Stderr -func (s *Scanner) err(msg string) { - s.ErrorCount++ - pos := s.recentPosition() - - if s.Error != nil { - s.Error(pos, msg) - return - } - - fmt.Fprintf(os.Stderr, "%s: %s\n", pos, msg) -} - -// isHexadecimal returns true if the given rune is a letter -func isLetter(ch rune) bool { - return 'a' <= ch && ch <= 'z' || 'A' <= ch && ch <= 'Z' || ch == '_' || ch >= 0x80 && unicode.IsLetter(ch) -} - -// isHexadecimal returns true if the given rune is a decimal digit -func isDigit(ch rune) bool { - return '0' <= ch && ch <= '9' || ch >= 0x80 && unicode.IsDigit(ch) -} - -// isHexadecimal returns true if the given rune is a decimal number -func isDecimal(ch rune) bool { - return '0' <= ch && ch <= '9' -} - -// isHexadecimal returns true if the given rune is an hexadecimal number -func isHexadecimal(ch rune) bool { - return '0' <= ch && ch <= '9' || 'a' <= ch && ch <= 'f' || 'A' <= ch && ch <= 'F' -} - -// isWhitespace returns true if the rune is a space, tab, newline or carriage return -func isWhitespace(ch rune) bool { - return ch == ' ' || ch == '\t' || ch == '\n' || ch == '\r' -} - -// digitVal returns the integer value of a given octal,decimal or hexadecimal rune -func digitVal(ch rune) int { - switch { - case '0' <= ch && ch <= '9': - return int(ch - '0') - case 'a' <= ch && ch <= 'f': - return int(ch - 'a' + 10) - case 'A' <= ch && ch <= 'F': - return int(ch - 'A' + 10) - } - return 16 // larger than any legal digit val -} diff --git a/vendor/github.com/hashicorp/hcl/json/token/position.go b/vendor/github.com/hashicorp/hcl/json/token/position.go deleted file mode 100644 index 59c1bb7..0000000 --- a/vendor/github.com/hashicorp/hcl/json/token/position.go +++ /dev/null @@ -1,46 +0,0 @@ -package token - -import "fmt" - -// Pos describes an arbitrary source position -// including the file, line, and column location. -// A Position is valid if the line number is > 0. -type Pos struct { - Filename string // filename, if any - Offset int // offset, starting at 0 - Line int // line number, starting at 1 - Column int // column number, starting at 1 (character count) -} - -// IsValid returns true if the position is valid. -func (p *Pos) IsValid() bool { return p.Line > 0 } - -// String returns a string in one of several forms: -// -// file:line:column valid position with file name -// line:column valid position without file name -// file invalid position with file name -// - invalid position without file name -func (p Pos) String() string { - s := p.Filename - if p.IsValid() { - if s != "" { - s += ":" - } - s += fmt.Sprintf("%d:%d", p.Line, p.Column) - } - if s == "" { - s = "-" - } - return s -} - -// Before reports whether the position p is before u. -func (p Pos) Before(u Pos) bool { - return u.Offset > p.Offset || u.Line > p.Line -} - -// After reports whether the position p is after u. -func (p Pos) After(u Pos) bool { - return u.Offset < p.Offset || u.Line < p.Line -} diff --git a/vendor/github.com/hashicorp/hcl/json/token/token.go b/vendor/github.com/hashicorp/hcl/json/token/token.go deleted file mode 100644 index 95a0c3e..0000000 --- a/vendor/github.com/hashicorp/hcl/json/token/token.go +++ /dev/null @@ -1,118 +0,0 @@ -package token - -import ( - "fmt" - "strconv" - - hcltoken "github.com/hashicorp/hcl/hcl/token" -) - -// Token defines a single HCL token which can be obtained via the Scanner -type Token struct { - Type Type - Pos Pos - Text string -} - -// Type is the set of lexical tokens of the HCL (HashiCorp Configuration Language) -type Type int - -const ( - // Special tokens - ILLEGAL Type = iota - EOF - - identifier_beg - literal_beg - NUMBER // 12345 - FLOAT // 123.45 - BOOL // true,false - STRING // "abc" - NULL // null - literal_end - identifier_end - - operator_beg - LBRACK // [ - LBRACE // { - COMMA // , - PERIOD // . - COLON // : - - RBRACK // ] - RBRACE // } - - operator_end -) - -var tokens = [...]string{ - ILLEGAL: "ILLEGAL", - - EOF: "EOF", - - NUMBER: "NUMBER", - FLOAT: "FLOAT", - BOOL: "BOOL", - STRING: "STRING", - NULL: "NULL", - - LBRACK: "LBRACK", - LBRACE: "LBRACE", - COMMA: "COMMA", - PERIOD: "PERIOD", - COLON: "COLON", - - RBRACK: "RBRACK", - RBRACE: "RBRACE", -} - -// String returns the string corresponding to the token tok. -func (t Type) String() string { - s := "" - if 0 <= t && t < Type(len(tokens)) { - s = tokens[t] - } - if s == "" { - s = "token(" + strconv.Itoa(int(t)) + ")" - } - return s -} - -// IsIdentifier returns true for tokens corresponding to identifiers and basic -// type literals; it returns false otherwise. -func (t Type) IsIdentifier() bool { return identifier_beg < t && t < identifier_end } - -// IsLiteral returns true for tokens corresponding to basic type literals; it -// returns false otherwise. -func (t Type) IsLiteral() bool { return literal_beg < t && t < literal_end } - -// IsOperator returns true for tokens corresponding to operators and -// delimiters; it returns false otherwise. -func (t Type) IsOperator() bool { return operator_beg < t && t < operator_end } - -// String returns the token's literal text. Note that this is only -// applicable for certain token types, such as token.IDENT, -// token.STRING, etc.. -func (t Token) String() string { - return fmt.Sprintf("%s %s %s", t.Pos.String(), t.Type.String(), t.Text) -} - -// HCLToken converts this token to an HCL token. -// -// The token type must be a literal type or this will panic. -func (t Token) HCLToken() hcltoken.Token { - switch t.Type { - case BOOL: - return hcltoken.Token{Type: hcltoken.BOOL, Text: t.Text} - case FLOAT: - return hcltoken.Token{Type: hcltoken.FLOAT, Text: t.Text} - case NULL: - return hcltoken.Token{Type: hcltoken.STRING, Text: ""} - case NUMBER: - return hcltoken.Token{Type: hcltoken.NUMBER, Text: t.Text} - case STRING: - return hcltoken.Token{Type: hcltoken.STRING, Text: t.Text, JSON: true} - default: - panic(fmt.Sprintf("unimplemented HCLToken for type: %s", t.Type)) - } -} diff --git a/vendor/github.com/hashicorp/hcl/lex.go b/vendor/github.com/hashicorp/hcl/lex.go deleted file mode 100644 index d9993c2..0000000 --- a/vendor/github.com/hashicorp/hcl/lex.go +++ /dev/null @@ -1,38 +0,0 @@ -package hcl - -import ( - "unicode" - "unicode/utf8" -) - -type lexModeValue byte - -const ( - lexModeUnknown lexModeValue = iota - lexModeHcl - lexModeJson -) - -// lexMode returns whether we're going to be parsing in JSON -// mode or HCL mode. -func lexMode(v []byte) lexModeValue { - var ( - r rune - w int - offset int - ) - - for { - r, w = utf8.DecodeRune(v[offset:]) - offset += w - if unicode.IsSpace(r) { - continue - } - if r == '{' { - return lexModeJson - } - break - } - - return lexModeHcl -} diff --git a/vendor/github.com/hashicorp/hcl/parse.go b/vendor/github.com/hashicorp/hcl/parse.go deleted file mode 100644 index 1fca53c..0000000 --- a/vendor/github.com/hashicorp/hcl/parse.go +++ /dev/null @@ -1,39 +0,0 @@ -package hcl - -import ( - "fmt" - - "github.com/hashicorp/hcl/hcl/ast" - hclParser "github.com/hashicorp/hcl/hcl/parser" - jsonParser "github.com/hashicorp/hcl/json/parser" -) - -// ParseBytes accepts as input byte slice and returns ast tree. -// -// Input can be either JSON or HCL -func ParseBytes(in []byte) (*ast.File, error) { - return parse(in) -} - -// ParseString accepts input as a string and returns ast tree. -func ParseString(input string) (*ast.File, error) { - return parse([]byte(input)) -} - -func parse(in []byte) (*ast.File, error) { - switch lexMode(in) { - case lexModeHcl: - return hclParser.Parse(in) - case lexModeJson: - return jsonParser.Parse(in) - } - - return nil, fmt.Errorf("unknown config format") -} - -// Parse parses the given input and returns the root object. -// -// The input format can be either HCL or JSON. -func Parse(input string) (*ast.File, error) { - return parse([]byte(input)) -} diff --git a/vendor/github.com/magiconair/properties/CHANGELOG.md b/vendor/github.com/magiconair/properties/CHANGELOG.md deleted file mode 100644 index 4905fec..0000000 --- a/vendor/github.com/magiconair/properties/CHANGELOG.md +++ /dev/null @@ -1,96 +0,0 @@ -## Changelog - -### [1.7.3](https://github.com/magiconair/properties/tags/v1.7.3) - 10 Jul 2017 - - * [Issue #17](https://github.com/magiconair/properties/issues/17): Add [SetValue()](http://godoc.org/github.com/magiconair/properties#Properties.SetValue) method to set values generically - * [Issue #22](https://github.com/magiconair/properties/issues/22): Add [LoadMap()](http://godoc.org/github.com/magiconair/properties#LoadMap) function to load properties from a string map - -### [1.7.2](https://github.com/magiconair/properties/tags/v1.7.2) - 20 Mar 2017 - - * [Issue #15](https://github.com/magiconair/properties/issues/15): Drop gocheck dependency - * [PR #21](https://github.com/magiconair/properties/pull/21): Add [Map()](http://godoc.org/github.com/magiconair/properties#Properties.Map) and [FilterFunc()](http://godoc.org/github.com/magiconair/properties#Properties.FilterFunc) - -### [1.7.1](https://github.com/magiconair/properties/tags/v1.7.1) - 13 Jan 2017 - - * [PR #16](https://github.com/magiconair/properties/pull/16): Keep gofmt happy - * [PR #18](https://github.com/magiconair/properties/pull/18): Fix Delete() function - -### [1.7.0](https://github.com/magiconair/properties/tags/v1.7.0) - 20 Mar 2016 - - * [Issue #10](https://github.com/magiconair/properties/issues/10): Add [LoadURL,LoadURLs,MustLoadURL,MustLoadURLs](http://godoc.org/github.com/magiconair/properties#LoadURL) method to load properties from a URL. - * [Issue #11](https://github.com/magiconair/properties/issues/11): Add [LoadString,MustLoadString](http://godoc.org/github.com/magiconair/properties#LoadString) method to load properties from an UTF8 string. - * [PR #8](https://github.com/magiconair/properties/pull/8): Add [MustFlag](http://godoc.org/github.com/magiconair/properties#Properties.MustFlag) method to provide overrides via command line flags. (@pascaldekloe) - -### [1.6.0](https://github.com/magiconair/properties/tags/v1.6.0) - 11 Dec 2015 - - * Add [Decode](http://godoc.org/github.com/magiconair/properties#Properties.Decode) method to populate struct from properties via tags. - -### [1.5.6](https://github.com/magiconair/properties/tags/v1.5.6) - 18 Oct 2015 - - * Vendored in gopkg.in/check.v1 - -### [1.5.5](https://github.com/magiconair/properties/tags/v1.5.5) - 31 Jul 2015 - - * [PR #6](https://github.com/magiconair/properties/pull/6): Add [Delete](http://godoc.org/github.com/magiconair/properties#Properties.Delete) method to remove keys including comments. (@gerbenjacobs) - -### [1.5.4](https://github.com/magiconair/properties/tags/v1.5.4) - 23 Jun 2015 - - * [Issue #5](https://github.com/magiconair/properties/issues/5): Allow disabling of property expansion [DisableExpansion](http://godoc.org/github.com/magiconair/properties#Properties.DisableExpansion). When property expansion is disabled Properties become a simple key/value store and don't check for circular references. - -### [1.5.3](https://github.com/magiconair/properties/tags/v1.5.3) - 02 Jun 2015 - - * [Issue #4](https://github.com/magiconair/properties/issues/4): Maintain key order in [Filter()](http://godoc.org/github.com/magiconair/properties#Properties.Filter), [FilterPrefix()](http://godoc.org/github.com/magiconair/properties#Properties.FilterPrefix) and [FilterRegexp()](http://godoc.org/github.com/magiconair/properties#Properties.FilterRegexp) - -### [1.5.2](https://github.com/magiconair/properties/tags/v1.5.2) - 10 Apr 2015 - - * [Issue #3](https://github.com/magiconair/properties/issues/3): Don't print comments in [WriteComment()](http://godoc.org/github.com/magiconair/properties#Properties.WriteComment) if they are all empty - * Add clickable links to README - -### [1.5.1](https://github.com/magiconair/properties/tags/v1.5.1) - 08 Dec 2014 - - * Added [GetParsedDuration()](http://godoc.org/github.com/magiconair/properties#Properties.GetParsedDuration) and [MustGetParsedDuration()](http://godoc.org/github.com/magiconair/properties#Properties.MustGetParsedDuration) for values specified compatible with - [time.ParseDuration()](http://golang.org/pkg/time/#ParseDuration). - -### [1.5.0](https://github.com/magiconair/properties/tags/v1.5.0) - 18 Nov 2014 - - * Added support for single and multi-line comments (reading, writing and updating) - * The order of keys is now preserved - * Calling [Set()](http://godoc.org/github.com/magiconair/properties#Properties.Set) with an empty key now silently ignores the call and does not create a new entry - * Added a [MustSet()](http://godoc.org/github.com/magiconair/properties#Properties.MustSet) method - * Migrated test library from launchpad.net/gocheck to [gopkg.in/check.v1](http://gopkg.in/check.v1) - -### [1.4.2](https://github.com/magiconair/properties/tags/v1.4.2) - 15 Nov 2014 - - * [Issue #2](https://github.com/magiconair/properties/issues/2): Fixed goroutine leak in parser which created two lexers but cleaned up only one - -### [1.4.1](https://github.com/magiconair/properties/tags/v1.4.1) - 13 Nov 2014 - - * [Issue #1](https://github.com/magiconair/properties/issues/1): Fixed bug in Keys() method which returned an empty string - -### [1.4.0](https://github.com/magiconair/properties/tags/v1.4.0) - 23 Sep 2014 - - * Added [Keys()](http://godoc.org/github.com/magiconair/properties#Properties.Keys) to get the keys - * Added [Filter()](http://godoc.org/github.com/magiconair/properties#Properties.Filter), [FilterRegexp()](http://godoc.org/github.com/magiconair/properties#Properties.FilterRegexp) and [FilterPrefix()](http://godoc.org/github.com/magiconair/properties#Properties.FilterPrefix) to get a subset of the properties - -### [1.3.0](https://github.com/magiconair/properties/tags/v1.3.0) - 18 Mar 2014 - -* Added support for time.Duration -* Made MustXXX() failure beha[ior configurable (log.Fatal, panic](https://github.com/magiconair/properties/tags/vior configurable (log.Fatal, panic) - custom) -* Changed default of MustXXX() failure from panic to log.Fatal - -### [1.2.0](https://github.com/magiconair/properties/tags/v1.2.0) - 05 Mar 2014 - -* Added MustGet... functions -* Added support for int and uint with range checks on 32 bit platforms - -### [1.1.0](https://github.com/magiconair/properties/tags/v1.1.0) - 20 Jan 2014 - -* Renamed from goproperties to properties -* Added support for expansion of environment vars in - filenames and value expressions -* Fixed bug where value expressions were not at the - start of the string - -### [1.0.0](https://github.com/magiconair/properties/tags/v1.0.0) - 7 Jan 2014 - -* Initial release diff --git a/vendor/github.com/magiconair/properties/LICENSE b/vendor/github.com/magiconair/properties/LICENSE deleted file mode 100644 index 7eab43b..0000000 --- a/vendor/github.com/magiconair/properties/LICENSE +++ /dev/null @@ -1,25 +0,0 @@ -goproperties - properties file decoder for Go - -Copyright (c) 2013-2014 - Frank Schroeder - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/magiconair/properties/README.md b/vendor/github.com/magiconair/properties/README.md deleted file mode 100644 index eb3b8c4..0000000 --- a/vendor/github.com/magiconair/properties/README.md +++ /dev/null @@ -1,100 +0,0 @@ -Overview [![Build Status](https://travis-ci.org/magiconair/properties.svg?branch=master)](https://travis-ci.org/magiconair/properties) -======== - -#### Current version: 1.7.3 - -properties is a Go library for reading and writing properties files. - -It supports reading from multiple files or URLs and Spring style recursive -property expansion of expressions like `${key}` to their corresponding value. -Value expressions can refer to other keys like in `${key}` or to environment -variables like in `${USER}`. Filenames can also contain environment variables -like in `/home/${USER}/myapp.properties`. - -Properties can be decoded into structs, maps, arrays and values through -struct tags. - -Comments and the order of keys are preserved. Comments can be modified -and can be written to the output. - -The properties library supports both ISO-8859-1 and UTF-8 encoded data. - -Starting from version 1.3.0 the behavior of the MustXXX() functions is -configurable by providing a custom `ErrorHandler` function. The default has -changed from `panic` to `log.Fatal` but this is configurable and custom -error handling functions can be provided. See the package documentation for -details. - -Read the full documentation on [GoDoc](https://godoc.org/github.com/magiconair/properties) [![GoDoc](https://godoc.org/github.com/magiconair/properties?status.png)](https://godoc.org/github.com/magiconair/properties) - -Getting Started ---------------- - -```go -import ( - "flag" - "github.com/magiconair/properties" -) - -func main() { - // init from a file - p := properties.MustLoadFile("${HOME}/config.properties", properties.UTF8) - - // or multiple files - p = properties.MustLoadFiles([]string{ - "${HOME}/config.properties", - "${HOME}/config-${USER}.properties", - }, properties.UTF8, true) - - // or from a map - p = properties.LoadMap(map[string]string{"key": "value", "abc": "def"}) - - // or from a string - p = properties.MustLoadString("key=value\nabc=def") - - // or from a URL - p = properties.MustLoadURL("http://host/path") - - // or from multiple URLs - p = properties.MustLoadURL([]string{ - "http://host/config", - "http://host/config-${USER}", - }, true) - - // or from flags - p.MustFlag(flag.CommandLine) - - // get values through getters - host := p.MustGetString("host") - port := p.GetInt("port", 8080) - - // or through Decode - type Config struct { - Host string `properties:"host"` - Port int `properties:"port,default=9000"` - Accept []string `properties:"accept,default=image/png;image;gif"` - Timeout time.Duration `properties:"timeout,default=5s"` - } - var cfg Config - if err := p.Decode(&cfg); err != nil { - log.Fatal(err) - } -} - -``` - -Installation and Upgrade ------------------------- - -``` -$ go get -u github.com/magiconair/properties -``` - -License -------- - -2 clause BSD license. See [LICENSE](https://github.com/magiconair/properties/blob/master/LICENSE) file for details. - -ToDo ----- -* Dump contents with passwords and secrets obscured diff --git a/vendor/github.com/magiconair/properties/decode.go b/vendor/github.com/magiconair/properties/decode.go deleted file mode 100644 index 0a961bb..0000000 --- a/vendor/github.com/magiconair/properties/decode.go +++ /dev/null @@ -1,289 +0,0 @@ -// Copyright 2017 Frank Schroeder. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package properties - -import ( - "fmt" - "reflect" - "strconv" - "strings" - "time" -) - -// Decode assigns property values to exported fields of a struct. -// -// Decode traverses v recursively and returns an error if a value cannot be -// converted to the field type or a required value is missing for a field. -// -// The following type dependent decodings are used: -// -// String, boolean, numeric fields have the value of the property key assigned. -// The property key name is the name of the field. A different key and a default -// value can be set in the field's tag. Fields without default value are -// required. If the value cannot be converted to the field type an error is -// returned. -// -// time.Duration fields have the result of time.ParseDuration() assigned. -// -// time.Time fields have the vaule of time.Parse() assigned. The default layout -// is time.RFC3339 but can be set in the field's tag. -// -// Arrays and slices of string, boolean, numeric, time.Duration and time.Time -// fields have the value interpreted as a comma separated list of values. The -// individual values are trimmed of whitespace and empty values are ignored. A -// default value can be provided as a semicolon separated list in the field's -// tag. -// -// Struct fields are decoded recursively using the field name plus "." as -// prefix. The prefix (without dot) can be overridden in the field's tag. -// Default values are not supported in the field's tag. Specify them on the -// fields of the inner struct instead. -// -// Map fields must have a key of type string and are decoded recursively by -// using the field's name plus ".' as prefix and the next element of the key -// name as map key. The prefix (without dot) can be overridden in the field's -// tag. Default values are not supported. -// -// Examples: -// -// // Field is ignored. -// Field int `properties:"-"` -// -// // Field is assigned value of 'Field'. -// Field int -// -// // Field is assigned value of 'myName'. -// Field int `properties:"myName"` -// -// // Field is assigned value of key 'myName' and has a default -// // value 15 if the key does not exist. -// Field int `properties:"myName,default=15"` -// -// // Field is assigned value of key 'Field' and has a default -// // value 15 if the key does not exist. -// Field int `properties:",default=15"` -// -// // Field is assigned value of key 'date' and the date -// // is in format 2006-01-02 -// Field time.Time `properties:"date,layout=2006-01-02"` -// -// // Field is assigned the non-empty and whitespace trimmed -// // values of key 'Field' split by commas. -// Field []string -// -// // Field is assigned the non-empty and whitespace trimmed -// // values of key 'Field' split by commas and has a default -// // value ["a", "b", "c"] if the key does not exist. -// Field []string `properties:",default=a;b;c"` -// -// // Field is decoded recursively with "Field." as key prefix. -// Field SomeStruct -// -// // Field is decoded recursively with "myName." as key prefix. -// Field SomeStruct `properties:"myName"` -// -// // Field is decoded recursively with "Field." as key prefix -// // and the next dotted element of the key as map key. -// Field map[string]string -// -// // Field is decoded recursively with "myName." as key prefix -// // and the next dotted element of the key as map key. -// Field map[string]string `properties:"myName"` -func (p *Properties) Decode(x interface{}) error { - t, v := reflect.TypeOf(x), reflect.ValueOf(x) - if t.Kind() != reflect.Ptr || v.Elem().Type().Kind() != reflect.Struct { - return fmt.Errorf("not a pointer to struct: %s", t) - } - if err := dec(p, "", nil, nil, v); err != nil { - return err - } - return nil -} - -func dec(p *Properties, key string, def *string, opts map[string]string, v reflect.Value) error { - t := v.Type() - - // value returns the property value for key or the default if provided. - value := func() (string, error) { - if val, ok := p.Get(key); ok { - return val, nil - } - if def != nil { - return *def, nil - } - return "", fmt.Errorf("missing required key %s", key) - } - - // conv converts a string to a value of the given type. - conv := func(s string, t reflect.Type) (val reflect.Value, err error) { - var v interface{} - - switch { - case isDuration(t): - v, err = time.ParseDuration(s) - - case isTime(t): - layout := opts["layout"] - if layout == "" { - layout = time.RFC3339 - } - v, err = time.Parse(layout, s) - - case isBool(t): - v, err = boolVal(s), nil - - case isString(t): - v, err = s, nil - - case isFloat(t): - v, err = strconv.ParseFloat(s, 64) - - case isInt(t): - v, err = strconv.ParseInt(s, 10, 64) - - case isUint(t): - v, err = strconv.ParseUint(s, 10, 64) - - default: - return reflect.Zero(t), fmt.Errorf("unsupported type %s", t) - } - if err != nil { - return reflect.Zero(t), err - } - return reflect.ValueOf(v).Convert(t), nil - } - - // keydef returns the property key and the default value based on the - // name of the struct field and the options in the tag. - keydef := func(f reflect.StructField) (string, *string, map[string]string) { - _key, _opts := parseTag(f.Tag.Get("properties")) - - var _def *string - if d, ok := _opts["default"]; ok { - _def = &d - } - if _key != "" { - return _key, _def, _opts - } - return f.Name, _def, _opts - } - - switch { - case isDuration(t) || isTime(t) || isBool(t) || isString(t) || isFloat(t) || isInt(t) || isUint(t): - s, err := value() - if err != nil { - return err - } - val, err := conv(s, t) - if err != nil { - return err - } - v.Set(val) - - case isPtr(t): - return dec(p, key, def, opts, v.Elem()) - - case isStruct(t): - for i := 0; i < v.NumField(); i++ { - fv := v.Field(i) - fk, def, opts := keydef(t.Field(i)) - if !fv.CanSet() { - return fmt.Errorf("cannot set %s", t.Field(i).Name) - } - if fk == "-" { - continue - } - if key != "" { - fk = key + "." + fk - } - if err := dec(p, fk, def, opts, fv); err != nil { - return err - } - } - return nil - - case isArray(t): - val, err := value() - if err != nil { - return err - } - vals := split(val, ";") - a := reflect.MakeSlice(t, 0, len(vals)) - for _, s := range vals { - val, err := conv(s, t.Elem()) - if err != nil { - return err - } - a = reflect.Append(a, val) - } - v.Set(a) - - case isMap(t): - valT := t.Elem() - m := reflect.MakeMap(t) - for postfix := range p.FilterStripPrefix(key + ".").m { - pp := strings.SplitN(postfix, ".", 2) - mk, mv := pp[0], reflect.New(valT) - if err := dec(p, key+"."+mk, nil, nil, mv); err != nil { - return err - } - m.SetMapIndex(reflect.ValueOf(mk), mv.Elem()) - } - v.Set(m) - - default: - return fmt.Errorf("unsupported type %s", t) - } - return nil -} - -// split splits a string on sep, trims whitespace of elements -// and omits empty elements -func split(s string, sep string) []string { - var a []string - for _, v := range strings.Split(s, sep) { - if v = strings.TrimSpace(v); v != "" { - a = append(a, v) - } - } - return a -} - -// parseTag parses a "key,k=v,k=v,..." -func parseTag(tag string) (key string, opts map[string]string) { - opts = map[string]string{} - for i, s := range strings.Split(tag, ",") { - if i == 0 { - key = s - continue - } - - pp := strings.SplitN(s, "=", 2) - if len(pp) == 1 { - opts[pp[0]] = "" - } else { - opts[pp[0]] = pp[1] - } - } - return key, opts -} - -func isArray(t reflect.Type) bool { return t.Kind() == reflect.Array || t.Kind() == reflect.Slice } -func isBool(t reflect.Type) bool { return t.Kind() == reflect.Bool } -func isDuration(t reflect.Type) bool { return t == reflect.TypeOf(time.Second) } -func isMap(t reflect.Type) bool { return t.Kind() == reflect.Map } -func isPtr(t reflect.Type) bool { return t.Kind() == reflect.Ptr } -func isString(t reflect.Type) bool { return t.Kind() == reflect.String } -func isStruct(t reflect.Type) bool { return t.Kind() == reflect.Struct } -func isTime(t reflect.Type) bool { return t == reflect.TypeOf(time.Time{}) } -func isFloat(t reflect.Type) bool { - return t.Kind() == reflect.Float32 || t.Kind() == reflect.Float64 -} -func isInt(t reflect.Type) bool { - return t.Kind() == reflect.Int || t.Kind() == reflect.Int8 || t.Kind() == reflect.Int16 || t.Kind() == reflect.Int32 || t.Kind() == reflect.Int64 -} -func isUint(t reflect.Type) bool { - return t.Kind() == reflect.Uint || t.Kind() == reflect.Uint8 || t.Kind() == reflect.Uint16 || t.Kind() == reflect.Uint32 || t.Kind() == reflect.Uint64 -} diff --git a/vendor/github.com/magiconair/properties/doc.go b/vendor/github.com/magiconair/properties/doc.go deleted file mode 100644 index 36c8368..0000000 --- a/vendor/github.com/magiconair/properties/doc.go +++ /dev/null @@ -1,156 +0,0 @@ -// Copyright 2017 Frank Schroeder. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package properties provides functions for reading and writing -// ISO-8859-1 and UTF-8 encoded .properties files and has -// support for recursive property expansion. -// -// Java properties files are ISO-8859-1 encoded and use Unicode -// literals for characters outside the ISO character set. Unicode -// literals can be used in UTF-8 encoded properties files but -// aren't necessary. -// -// To load a single properties file use MustLoadFile(): -// -// p := properties.MustLoadFile(filename, properties.UTF8) -// -// To load multiple properties files use MustLoadFiles() -// which loads the files in the given order and merges the -// result. Missing properties files can be ignored if the -// 'ignoreMissing' flag is set to true. -// -// Filenames can contain environment variables which are expanded -// before loading. -// -// f1 := "/etc/myapp/myapp.conf" -// f2 := "/home/${USER}/myapp.conf" -// p := MustLoadFiles([]string{f1, f2}, properties.UTF8, true) -// -// All of the different key/value delimiters ' ', ':' and '=' are -// supported as well as the comment characters '!' and '#' and -// multi-line values. -// -// ! this is a comment -// # and so is this -// -// # the following expressions are equal -// key value -// key=value -// key:value -// key = value -// key : value -// key = val\ -// ue -// -// Properties stores all comments preceding a key and provides -// GetComments() and SetComments() methods to retrieve and -// update them. The convenience functions GetComment() and -// SetComment() allow access to the last comment. The -// WriteComment() method writes properties files including -// the comments and with the keys in the original order. -// This can be used for sanitizing properties files. -// -// Property expansion is recursive and circular references -// and malformed expressions are not allowed and cause an -// error. Expansion of environment variables is supported. -// -// # standard property -// key = value -// -// # property expansion: key2 = value -// key2 = ${key} -// -// # recursive expansion: key3 = value -// key3 = ${key2} -// -// # circular reference (error) -// key = ${key} -// -// # malformed expression (error) -// key = ${ke -// -// # refers to the users' home dir -// home = ${HOME} -// -// # local key takes precendence over env var: u = foo -// USER = foo -// u = ${USER} -// -// The default property expansion format is ${key} but can be -// changed by setting different pre- and postfix values on the -// Properties object. -// -// p := properties.NewProperties() -// p.Prefix = "#[" -// p.Postfix = "]#" -// -// Properties provides convenience functions for getting typed -// values with default values if the key does not exist or the -// type conversion failed. -// -// # Returns true if the value is either "1", "on", "yes" or "true" -// # Returns false for every other value and the default value if -// # the key does not exist. -// v = p.GetBool("key", false) -// -// # Returns the value if the key exists and the format conversion -// # was successful. Otherwise, the default value is returned. -// v = p.GetInt64("key", 999) -// v = p.GetUint64("key", 999) -// v = p.GetFloat64("key", 123.0) -// v = p.GetString("key", "def") -// v = p.GetDuration("key", 999) -// -// As an alterantive properties may be applied with the standard -// library's flag implementation at any time. -// -// # Standard configuration -// v = flag.Int("key", 999, "help message") -// flag.Parse() -// -// # Merge p into the flag set -// p.MustFlag(flag.CommandLine) -// -// Properties provides several MustXXX() convenience functions -// which will terminate the app if an error occurs. The behavior -// of the failure is configurable and the default is to call -// log.Fatal(err). To have the MustXXX() functions panic instead -// of logging the error set a different ErrorHandler before -// you use the Properties package. -// -// properties.ErrorHandler = properties.PanicHandler -// -// # Will panic instead of logging an error -// p := properties.MustLoadFile("config.properties") -// -// You can also provide your own ErrorHandler function. The only requirement -// is that the error handler function must exit after handling the error. -// -// properties.ErrorHandler = func(err error) { -// fmt.Println(err) -// os.Exit(1) -// } -// -// # Will write to stdout and then exit -// p := properties.MustLoadFile("config.properties") -// -// Properties can also be loaded into a struct via the `Decode` -// method, e.g. -// -// type S struct { -// A string `properties:"a,default=foo"` -// D time.Duration `properties:"timeout,default=5s"` -// E time.Time `properties:"expires,layout=2006-01-02,default=2015-01-01"` -// } -// -// See `Decode()` method for the full documentation. -// -// The following documents provide a description of the properties -// file format. -// -// http://en.wikipedia.org/wiki/.properties -// -// http://docs.oracle.com/javase/7/docs/api/java/util/Properties.html#load%28java.io.Reader%29 -// -package properties diff --git a/vendor/github.com/magiconair/properties/integrate.go b/vendor/github.com/magiconair/properties/integrate.go deleted file mode 100644 index 0d775e0..0000000 --- a/vendor/github.com/magiconair/properties/integrate.go +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright 2017 Frank Schroeder. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package properties - -import "flag" - -// MustFlag sets flags that are skipped by dst.Parse when p contains -// the respective key for flag.Flag.Name. -// -// It's use is recommended with command line arguments as in: -// flag.Parse() -// p.MustFlag(flag.CommandLine) -func (p *Properties) MustFlag(dst *flag.FlagSet) { - m := make(map[string]*flag.Flag) - dst.VisitAll(func(f *flag.Flag) { - m[f.Name] = f - }) - dst.Visit(func(f *flag.Flag) { - delete(m, f.Name) // overridden - }) - - for name, f := range m { - v, ok := p.Get(name) - if !ok { - continue - } - - if err := f.Value.Set(v); err != nil { - ErrorHandler(err) - } - } -} diff --git a/vendor/github.com/magiconair/properties/lex.go b/vendor/github.com/magiconair/properties/lex.go deleted file mode 100644 index a3cba03..0000000 --- a/vendor/github.com/magiconair/properties/lex.go +++ /dev/null @@ -1,408 +0,0 @@ -// Copyright 2017 Frank Schroeder. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. -// -// Parts of the lexer are from the template/text/parser package -// For these parts the following applies: -// -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file of the go 1.2 -// distribution. - -package properties - -import ( - "fmt" - "strconv" - "strings" - "unicode/utf8" -) - -// item represents a token or text string returned from the scanner. -type item struct { - typ itemType // The type of this item. - pos int // The starting position, in bytes, of this item in the input string. - val string // The value of this item. -} - -func (i item) String() string { - switch { - case i.typ == itemEOF: - return "EOF" - case i.typ == itemError: - return i.val - case len(i.val) > 10: - return fmt.Sprintf("%.10q...", i.val) - } - return fmt.Sprintf("%q", i.val) -} - -// itemType identifies the type of lex items. -type itemType int - -const ( - itemError itemType = iota // error occurred; value is text of error - itemEOF - itemKey // a key - itemValue // a value - itemComment // a comment -) - -// defines a constant for EOF -const eof = -1 - -// permitted whitespace characters space, FF and TAB -const whitespace = " \f\t" - -// stateFn represents the state of the scanner as a function that returns the next state. -type stateFn func(*lexer) stateFn - -// lexer holds the state of the scanner. -type lexer struct { - input string // the string being scanned - state stateFn // the next lexing function to enter - pos int // current position in the input - start int // start position of this item - width int // width of last rune read from input - lastPos int // position of most recent item returned by nextItem - runes []rune // scanned runes for this item - items chan item // channel of scanned items -} - -// next returns the next rune in the input. -func (l *lexer) next() rune { - if l.pos >= len(l.input) { - l.width = 0 - return eof - } - r, w := utf8.DecodeRuneInString(l.input[l.pos:]) - l.width = w - l.pos += l.width - return r -} - -// peek returns but does not consume the next rune in the input. -func (l *lexer) peek() rune { - r := l.next() - l.backup() - return r -} - -// backup steps back one rune. Can only be called once per call of next. -func (l *lexer) backup() { - l.pos -= l.width -} - -// emit passes an item back to the client. -func (l *lexer) emit(t itemType) { - i := item{t, l.start, string(l.runes)} - l.items <- i - l.start = l.pos - l.runes = l.runes[:0] -} - -// ignore skips over the pending input before this point. -func (l *lexer) ignore() { - l.start = l.pos -} - -// appends the rune to the current value -func (l *lexer) appendRune(r rune) { - l.runes = append(l.runes, r) -} - -// accept consumes the next rune if it's from the valid set. -func (l *lexer) accept(valid string) bool { - if strings.ContainsRune(valid, l.next()) { - return true - } - l.backup() - return false -} - -// acceptRun consumes a run of runes from the valid set. -func (l *lexer) acceptRun(valid string) { - for strings.ContainsRune(valid, l.next()) { - } - l.backup() -} - -// acceptRunUntil consumes a run of runes up to a terminator. -func (l *lexer) acceptRunUntil(term rune) { - for term != l.next() { - } - l.backup() -} - -// hasText returns true if the current parsed text is not empty. -func (l *lexer) isNotEmpty() bool { - return l.pos > l.start -} - -// lineNumber reports which line we're on, based on the position of -// the previous item returned by nextItem. Doing it this way -// means we don't have to worry about peek double counting. -func (l *lexer) lineNumber() int { - return 1 + strings.Count(l.input[:l.lastPos], "\n") -} - -// errorf returns an error token and terminates the scan by passing -// back a nil pointer that will be the next state, terminating l.nextItem. -func (l *lexer) errorf(format string, args ...interface{}) stateFn { - l.items <- item{itemError, l.start, fmt.Sprintf(format, args...)} - return nil -} - -// nextItem returns the next item from the input. -func (l *lexer) nextItem() item { - i := <-l.items - l.lastPos = i.pos - return i -} - -// lex creates a new scanner for the input string. -func lex(input string) *lexer { - l := &lexer{ - input: input, - items: make(chan item), - runes: make([]rune, 0, 32), - } - go l.run() - return l -} - -// run runs the state machine for the lexer. -func (l *lexer) run() { - for l.state = lexBeforeKey(l); l.state != nil; { - l.state = l.state(l) - } -} - -// state functions - -// lexBeforeKey scans until a key begins. -func lexBeforeKey(l *lexer) stateFn { - switch r := l.next(); { - case isEOF(r): - l.emit(itemEOF) - return nil - - case isEOL(r): - l.ignore() - return lexBeforeKey - - case isComment(r): - return lexComment - - case isWhitespace(r): - l.acceptRun(whitespace) - l.ignore() - return lexKey - - default: - l.backup() - return lexKey - } -} - -// lexComment scans a comment line. The comment character has already been scanned. -func lexComment(l *lexer) stateFn { - l.acceptRun(whitespace) - l.ignore() - for { - switch r := l.next(); { - case isEOF(r): - l.ignore() - l.emit(itemEOF) - return nil - case isEOL(r): - l.emit(itemComment) - return lexBeforeKey - default: - l.appendRune(r) - } - } -} - -// lexKey scans the key up to a delimiter -func lexKey(l *lexer) stateFn { - var r rune - -Loop: - for { - switch r = l.next(); { - - case isEscape(r): - err := l.scanEscapeSequence() - if err != nil { - return l.errorf(err.Error()) - } - - case isEndOfKey(r): - l.backup() - break Loop - - case isEOF(r): - break Loop - - default: - l.appendRune(r) - } - } - - if len(l.runes) > 0 { - l.emit(itemKey) - } - - if isEOF(r) { - l.emit(itemEOF) - return nil - } - - return lexBeforeValue -} - -// lexBeforeValue scans the delimiter between key and value. -// Leading and trailing whitespace is ignored. -// We expect to be just after the key. -func lexBeforeValue(l *lexer) stateFn { - l.acceptRun(whitespace) - l.accept(":=") - l.acceptRun(whitespace) - l.ignore() - return lexValue -} - -// lexValue scans text until the end of the line. We expect to be just after the delimiter. -func lexValue(l *lexer) stateFn { - for { - switch r := l.next(); { - case isEscape(r): - if isEOL(l.peek()) { - l.next() - l.acceptRun(whitespace) - } else { - err := l.scanEscapeSequence() - if err != nil { - return l.errorf(err.Error()) - } - } - - case isEOL(r): - l.emit(itemValue) - l.ignore() - return lexBeforeKey - - case isEOF(r): - l.emit(itemValue) - l.emit(itemEOF) - return nil - - default: - l.appendRune(r) - } - } -} - -// scanEscapeSequence scans either one of the escaped characters -// or a unicode literal. We expect to be after the escape character. -func (l *lexer) scanEscapeSequence() error { - switch r := l.next(); { - - case isEscapedCharacter(r): - l.appendRune(decodeEscapedCharacter(r)) - return nil - - case atUnicodeLiteral(r): - return l.scanUnicodeLiteral() - - case isEOF(r): - return fmt.Errorf("premature EOF") - - // silently drop the escape character and append the rune as is - default: - l.appendRune(r) - return nil - } -} - -// scans a unicode literal in the form \uXXXX. We expect to be after the \u. -func (l *lexer) scanUnicodeLiteral() error { - // scan the digits - d := make([]rune, 4) - for i := 0; i < 4; i++ { - d[i] = l.next() - if d[i] == eof || !strings.ContainsRune("0123456789abcdefABCDEF", d[i]) { - return fmt.Errorf("invalid unicode literal") - } - } - - // decode the digits into a rune - r, err := strconv.ParseInt(string(d), 16, 0) - if err != nil { - return err - } - - l.appendRune(rune(r)) - return nil -} - -// decodeEscapedCharacter returns the unescaped rune. We expect to be after the escape character. -func decodeEscapedCharacter(r rune) rune { - switch r { - case 'f': - return '\f' - case 'n': - return '\n' - case 'r': - return '\r' - case 't': - return '\t' - default: - return r - } -} - -// atUnicodeLiteral reports whether we are at a unicode literal. -// The escape character has already been consumed. -func atUnicodeLiteral(r rune) bool { - return r == 'u' -} - -// isComment reports whether we are at the start of a comment. -func isComment(r rune) bool { - return r == '#' || r == '!' -} - -// isEndOfKey reports whether the rune terminates the current key. -func isEndOfKey(r rune) bool { - return strings.ContainsRune(" \f\t\r\n:=", r) -} - -// isEOF reports whether we are at EOF. -func isEOF(r rune) bool { - return r == eof -} - -// isEOL reports whether we are at a new line character. -func isEOL(r rune) bool { - return r == '\n' || r == '\r' -} - -// isEscape reports whether the rune is the escape character which -// prefixes unicode literals and other escaped characters. -func isEscape(r rune) bool { - return r == '\\' -} - -// isEscapedCharacter reports whether we are at one of the characters that need escaping. -// The escape character has already been consumed. -func isEscapedCharacter(r rune) bool { - return strings.ContainsRune(" :=fnrt", r) -} - -// isWhitespace reports whether the rune is a whitespace character. -func isWhitespace(r rune) bool { - return strings.ContainsRune(whitespace, r) -} diff --git a/vendor/github.com/magiconair/properties/load.go b/vendor/github.com/magiconair/properties/load.go deleted file mode 100644 index 278cc2e..0000000 --- a/vendor/github.com/magiconair/properties/load.go +++ /dev/null @@ -1,241 +0,0 @@ -// Copyright 2017 Frank Schroeder. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package properties - -import ( - "fmt" - "io/ioutil" - "net/http" - "os" - "strings" -) - -// Encoding specifies encoding of the input data. -type Encoding uint - -const ( - // UTF8 interprets the input data as UTF-8. - UTF8 Encoding = 1 << iota - - // ISO_8859_1 interprets the input data as ISO-8859-1. - ISO_8859_1 -) - -// Load reads a buffer into a Properties struct. -func Load(buf []byte, enc Encoding) (*Properties, error) { - return loadBuf(buf, enc) -} - -// LoadString reads an UTF8 string into a properties struct. -func LoadString(s string) (*Properties, error) { - return loadBuf([]byte(s), UTF8) -} - -// LoadMap creates a new Properties struct from a string map. -func LoadMap(m map[string]string) *Properties { - p := NewProperties() - for k, v := range m { - p.Set(k, v) - } - return p -} - -// LoadFile reads a file into a Properties struct. -func LoadFile(filename string, enc Encoding) (*Properties, error) { - return loadAll([]string{filename}, enc, false) -} - -// LoadFiles reads multiple files in the given order into -// a Properties struct. If 'ignoreMissing' is true then -// non-existent files will not be reported as error. -func LoadFiles(filenames []string, enc Encoding, ignoreMissing bool) (*Properties, error) { - return loadAll(filenames, enc, ignoreMissing) -} - -// LoadURL reads the content of the URL into a Properties struct. -// -// The encoding is determined via the Content-Type header which -// should be set to 'text/plain'. If the 'charset' parameter is -// missing, 'iso-8859-1' or 'latin1' the encoding is set to -// ISO-8859-1. If the 'charset' parameter is set to 'utf-8' the -// encoding is set to UTF-8. A missing content type header is -// interpreted as 'text/plain; charset=utf-8'. -func LoadURL(url string) (*Properties, error) { - return loadAll([]string{url}, UTF8, false) -} - -// LoadURLs reads the content of multiple URLs in the given order into a -// Properties struct. If 'ignoreMissing' is true then a 404 status code will -// not be reported as error. See LoadURL for the Content-Type header -// and the encoding. -func LoadURLs(urls []string, ignoreMissing bool) (*Properties, error) { - return loadAll(urls, UTF8, ignoreMissing) -} - -// LoadAll reads the content of multiple URLs or files in the given order into a -// Properties struct. If 'ignoreMissing' is true then a 404 status code or missing file will -// not be reported as error. Encoding sets the encoding for files. For the URLs please see -// LoadURL for the Content-Type header and the encoding. -func LoadAll(names []string, enc Encoding, ignoreMissing bool) (*Properties, error) { - return loadAll(names, enc, ignoreMissing) -} - -// MustLoadString reads an UTF8 string into a Properties struct and -// panics on error. -func MustLoadString(s string) *Properties { - return must(LoadString(s)) -} - -// MustLoadFile reads a file into a Properties struct and -// panics on error. -func MustLoadFile(filename string, enc Encoding) *Properties { - return must(LoadFile(filename, enc)) -} - -// MustLoadFiles reads multiple files in the given order into -// a Properties struct and panics on error. If 'ignoreMissing' -// is true then non-existent files will not be reported as error. -func MustLoadFiles(filenames []string, enc Encoding, ignoreMissing bool) *Properties { - return must(LoadFiles(filenames, enc, ignoreMissing)) -} - -// MustLoadURL reads the content of a URL into a Properties struct and -// panics on error. -func MustLoadURL(url string) *Properties { - return must(LoadURL(url)) -} - -// MustLoadURLs reads the content of multiple URLs in the given order into a -// Properties struct and panics on error. If 'ignoreMissing' is true then a 404 -// status code will not be reported as error. -func MustLoadURLs(urls []string, ignoreMissing bool) *Properties { - return must(LoadURLs(urls, ignoreMissing)) -} - -// MustLoadAll reads the content of multiple URLs or files in the given order into a -// Properties struct. If 'ignoreMissing' is true then a 404 status code or missing file will -// not be reported as error. Encoding sets the encoding for files. For the URLs please see -// LoadURL for the Content-Type header and the encoding. It panics on error. -func MustLoadAll(names []string, enc Encoding, ignoreMissing bool) *Properties { - return must(LoadAll(names, enc, ignoreMissing)) -} - -func loadBuf(buf []byte, enc Encoding) (*Properties, error) { - p, err := parse(convert(buf, enc)) - if err != nil { - return nil, err - } - return p, p.check() -} - -func loadAll(names []string, enc Encoding, ignoreMissing bool) (*Properties, error) { - result := NewProperties() - for _, name := range names { - n, err := expandName(name) - if err != nil { - return nil, err - } - var p *Properties - if strings.HasPrefix(n, "http://") || strings.HasPrefix(n, "https://") { - p, err = loadURL(n, ignoreMissing) - } else { - p, err = loadFile(n, enc, ignoreMissing) - } - if err != nil { - return nil, err - } - result.Merge(p) - - } - return result, result.check() -} - -func loadFile(filename string, enc Encoding, ignoreMissing bool) (*Properties, error) { - data, err := ioutil.ReadFile(filename) - if err != nil { - if ignoreMissing && os.IsNotExist(err) { - LogPrintf("properties: %s not found. skipping", filename) - return NewProperties(), nil - } - return nil, err - } - p, err := parse(convert(data, enc)) - if err != nil { - return nil, err - } - return p, nil -} - -func loadURL(url string, ignoreMissing bool) (*Properties, error) { - resp, err := http.Get(url) - if err != nil { - return nil, fmt.Errorf("properties: error fetching %q. %s", url, err) - } - if resp.StatusCode == 404 && ignoreMissing { - LogPrintf("properties: %s returned %d. skipping", url, resp.StatusCode) - return NewProperties(), nil - } - if resp.StatusCode != 200 { - return nil, fmt.Errorf("properties: %s returned %d", url, resp.StatusCode) - } - body, err := ioutil.ReadAll(resp.Body) - if err != nil { - return nil, fmt.Errorf("properties: %s error reading response. %s", url, err) - } - if err = resp.Body.Close(); err != nil { - return nil, fmt.Errorf("properties: %s error reading response. %s", url, err) - } - - ct := resp.Header.Get("Content-Type") - var enc Encoding - switch strings.ToLower(ct) { - case "text/plain", "text/plain; charset=iso-8859-1", "text/plain; charset=latin1": - enc = ISO_8859_1 - case "", "text/plain; charset=utf-8": - enc = UTF8 - default: - return nil, fmt.Errorf("properties: invalid content type %s", ct) - } - - p, err := parse(convert(body, enc)) - if err != nil { - return nil, err - } - return p, nil -} - -func must(p *Properties, err error) *Properties { - if err != nil { - ErrorHandler(err) - } - return p -} - -// expandName expands ${ENV_VAR} expressions in a name. -// If the environment variable does not exist then it will be replaced -// with an empty string. Malformed expressions like "${ENV_VAR" will -// be reported as error. -func expandName(name string) (string, error) { - return expand(name, make(map[string]bool), "${", "}", make(map[string]string)) -} - -// Interprets a byte buffer either as an ISO-8859-1 or UTF-8 encoded string. -// For ISO-8859-1 we can convert each byte straight into a rune since the -// first 256 unicode code points cover ISO-8859-1. -func convert(buf []byte, enc Encoding) string { - switch enc { - case UTF8: - return string(buf) - case ISO_8859_1: - runes := make([]rune, len(buf)) - for i, b := range buf { - runes[i] = rune(b) - } - return string(runes) - default: - ErrorHandler(fmt.Errorf("unsupported encoding %v", enc)) - } - panic("ErrorHandler should exit") -} diff --git a/vendor/github.com/magiconair/properties/parser.go b/vendor/github.com/magiconair/properties/parser.go deleted file mode 100644 index 90f555c..0000000 --- a/vendor/github.com/magiconair/properties/parser.go +++ /dev/null @@ -1,95 +0,0 @@ -// Copyright 2017 Frank Schroeder. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package properties - -import ( - "fmt" - "runtime" -) - -type parser struct { - lex *lexer -} - -func parse(input string) (properties *Properties, err error) { - p := &parser{lex: lex(input)} - defer p.recover(&err) - - properties = NewProperties() - key := "" - comments := []string{} - - for { - token := p.expectOneOf(itemComment, itemKey, itemEOF) - switch token.typ { - case itemEOF: - goto done - case itemComment: - comments = append(comments, token.val) - continue - case itemKey: - key = token.val - if _, ok := properties.m[key]; !ok { - properties.k = append(properties.k, key) - } - } - - token = p.expectOneOf(itemValue, itemEOF) - if len(comments) > 0 { - properties.c[key] = comments - comments = []string{} - } - switch token.typ { - case itemEOF: - properties.m[key] = "" - goto done - case itemValue: - properties.m[key] = token.val - } - } - -done: - return properties, nil -} - -func (p *parser) errorf(format string, args ...interface{}) { - format = fmt.Sprintf("properties: Line %d: %s", p.lex.lineNumber(), format) - panic(fmt.Errorf(format, args...)) -} - -func (p *parser) expect(expected itemType) (token item) { - token = p.lex.nextItem() - if token.typ != expected { - p.unexpected(token) - } - return token -} - -func (p *parser) expectOneOf(expected ...itemType) (token item) { - token = p.lex.nextItem() - for _, v := range expected { - if token.typ == v { - return token - } - } - p.unexpected(token) - panic("unexpected token") -} - -func (p *parser) unexpected(token item) { - p.errorf(token.String()) -} - -// recover is the handler that turns panics into returns from the top level of Parse. -func (p *parser) recover(errp *error) { - e := recover() - if e != nil { - if _, ok := e.(runtime.Error); ok { - panic(e) - } - *errp = e.(error) - } - return -} diff --git a/vendor/github.com/magiconair/properties/properties.go b/vendor/github.com/magiconair/properties/properties.go deleted file mode 100644 index 4f3d5a4..0000000 --- a/vendor/github.com/magiconair/properties/properties.go +++ /dev/null @@ -1,808 +0,0 @@ -// Copyright 2017 Frank Schroeder. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package properties - -// BUG(frank): Set() does not check for invalid unicode literals since this is currently handled by the lexer. -// BUG(frank): Write() does not allow to configure the newline character. Therefore, on Windows LF is used. - -import ( - "fmt" - "io" - "log" - "os" - "regexp" - "strconv" - "strings" - "time" - "unicode/utf8" -) - -// ErrorHandlerFunc defines the type of function which handles failures -// of the MustXXX() functions. An error handler function must exit -// the application after handling the error. -type ErrorHandlerFunc func(error) - -// ErrorHandler is the function which handles failures of the MustXXX() -// functions. The default is LogFatalHandler. -var ErrorHandler ErrorHandlerFunc = LogFatalHandler - -// LogHandlerFunc defines the function prototype for logging errors. -type LogHandlerFunc func(fmt string, args ...interface{}) - -// LogPrintf defines a log handler which uses log.Printf. -var LogPrintf LogHandlerFunc = log.Printf - -// LogFatalHandler handles the error by logging a fatal error and exiting. -func LogFatalHandler(err error) { - log.Fatal(err) -} - -// PanicHandler handles the error by panicking. -func PanicHandler(err error) { - panic(err) -} - -// ----------------------------------------------------------------------------- - -// A Properties contains the key/value pairs from the properties input. -// All values are stored in unexpanded form and are expanded at runtime -type Properties struct { - // Pre-/Postfix for property expansion. - Prefix string - Postfix string - - // DisableExpansion controls the expansion of properties on Get() - // and the check for circular references on Set(). When set to - // true Properties behaves like a simple key/value store and does - // not check for circular references on Get() or on Set(). - DisableExpansion bool - - // Stores the key/value pairs - m map[string]string - - // Stores the comments per key. - c map[string][]string - - // Stores the keys in order of appearance. - k []string -} - -// NewProperties creates a new Properties struct with the default -// configuration for "${key}" expressions. -func NewProperties() *Properties { - return &Properties{ - Prefix: "${", - Postfix: "}", - m: map[string]string{}, - c: map[string][]string{}, - k: []string{}, - } -} - -// Get returns the expanded value for the given key if exists. -// Otherwise, ok is false. -func (p *Properties) Get(key string) (value string, ok bool) { - v, ok := p.m[key] - if p.DisableExpansion { - return v, ok - } - if !ok { - return "", false - } - - expanded, err := p.expand(v) - - // we guarantee that the expanded value is free of - // circular references and malformed expressions - // so we panic if we still get an error here. - if err != nil { - ErrorHandler(fmt.Errorf("%s in %q", err, key+" = "+v)) - } - - return expanded, true -} - -// MustGet returns the expanded value for the given key if exists. -// Otherwise, it panics. -func (p *Properties) MustGet(key string) string { - if v, ok := p.Get(key); ok { - return v - } - ErrorHandler(invalidKeyError(key)) - panic("ErrorHandler should exit") -} - -// ---------------------------------------------------------------------------- - -// ClearComments removes the comments for all keys. -func (p *Properties) ClearComments() { - p.c = map[string][]string{} -} - -// ---------------------------------------------------------------------------- - -// GetComment returns the last comment before the given key or an empty string. -func (p *Properties) GetComment(key string) string { - comments, ok := p.c[key] - if !ok || len(comments) == 0 { - return "" - } - return comments[len(comments)-1] -} - -// ---------------------------------------------------------------------------- - -// GetComments returns all comments that appeared before the given key or nil. -func (p *Properties) GetComments(key string) []string { - if comments, ok := p.c[key]; ok { - return comments - } - return nil -} - -// ---------------------------------------------------------------------------- - -// SetComment sets the comment for the key. -func (p *Properties) SetComment(key, comment string) { - p.c[key] = []string{comment} -} - -// ---------------------------------------------------------------------------- - -// SetComments sets the comments for the key. If the comments are nil then -// all comments for this key are deleted. -func (p *Properties) SetComments(key string, comments []string) { - if comments == nil { - delete(p.c, key) - return - } - p.c[key] = comments -} - -// ---------------------------------------------------------------------------- - -// GetBool checks if the expanded value is one of '1', 'yes', -// 'true' or 'on' if the key exists. The comparison is case-insensitive. -// If the key does not exist the default value is returned. -func (p *Properties) GetBool(key string, def bool) bool { - v, err := p.getBool(key) - if err != nil { - return def - } - return v -} - -// MustGetBool checks if the expanded value is one of '1', 'yes', -// 'true' or 'on' if the key exists. The comparison is case-insensitive. -// If the key does not exist the function panics. -func (p *Properties) MustGetBool(key string) bool { - v, err := p.getBool(key) - if err != nil { - ErrorHandler(err) - } - return v -} - -func (p *Properties) getBool(key string) (value bool, err error) { - if v, ok := p.Get(key); ok { - return boolVal(v), nil - } - return false, invalidKeyError(key) -} - -func boolVal(v string) bool { - v = strings.ToLower(v) - return v == "1" || v == "true" || v == "yes" || v == "on" -} - -// ---------------------------------------------------------------------------- - -// GetDuration parses the expanded value as an time.Duration (in ns) if the -// key exists. If key does not exist or the value cannot be parsed the default -// value is returned. In almost all cases you want to use GetParsedDuration(). -func (p *Properties) GetDuration(key string, def time.Duration) time.Duration { - v, err := p.getInt64(key) - if err != nil { - return def - } - return time.Duration(v) -} - -// MustGetDuration parses the expanded value as an time.Duration (in ns) if -// the key exists. If key does not exist or the value cannot be parsed the -// function panics. In almost all cases you want to use MustGetParsedDuration(). -func (p *Properties) MustGetDuration(key string) time.Duration { - v, err := p.getInt64(key) - if err != nil { - ErrorHandler(err) - } - return time.Duration(v) -} - -// ---------------------------------------------------------------------------- - -// GetParsedDuration parses the expanded value with time.ParseDuration() if the key exists. -// If key does not exist or the value cannot be parsed the default -// value is returned. -func (p *Properties) GetParsedDuration(key string, def time.Duration) time.Duration { - s, ok := p.Get(key) - if !ok { - return def - } - v, err := time.ParseDuration(s) - if err != nil { - return def - } - return v -} - -// MustGetParsedDuration parses the expanded value with time.ParseDuration() if the key exists. -// If key does not exist or the value cannot be parsed the function panics. -func (p *Properties) MustGetParsedDuration(key string) time.Duration { - s, ok := p.Get(key) - if !ok { - ErrorHandler(invalidKeyError(key)) - } - v, err := time.ParseDuration(s) - if err != nil { - ErrorHandler(err) - } - return v -} - -// ---------------------------------------------------------------------------- - -// GetFloat64 parses the expanded value as a float64 if the key exists. -// If key does not exist or the value cannot be parsed the default -// value is returned. -func (p *Properties) GetFloat64(key string, def float64) float64 { - v, err := p.getFloat64(key) - if err != nil { - return def - } - return v -} - -// MustGetFloat64 parses the expanded value as a float64 if the key exists. -// If key does not exist or the value cannot be parsed the function panics. -func (p *Properties) MustGetFloat64(key string) float64 { - v, err := p.getFloat64(key) - if err != nil { - ErrorHandler(err) - } - return v -} - -func (p *Properties) getFloat64(key string) (value float64, err error) { - if v, ok := p.Get(key); ok { - value, err = strconv.ParseFloat(v, 64) - if err != nil { - return 0, err - } - return value, nil - } - return 0, invalidKeyError(key) -} - -// ---------------------------------------------------------------------------- - -// GetInt parses the expanded value as an int if the key exists. -// If key does not exist or the value cannot be parsed the default -// value is returned. If the value does not fit into an int the -// function panics with an out of range error. -func (p *Properties) GetInt(key string, def int) int { - v, err := p.getInt64(key) - if err != nil { - return def - } - return intRangeCheck(key, v) -} - -// MustGetInt parses the expanded value as an int if the key exists. -// If key does not exist or the value cannot be parsed the function panics. -// If the value does not fit into an int the function panics with -// an out of range error. -func (p *Properties) MustGetInt(key string) int { - v, err := p.getInt64(key) - if err != nil { - ErrorHandler(err) - } - return intRangeCheck(key, v) -} - -// ---------------------------------------------------------------------------- - -// GetInt64 parses the expanded value as an int64 if the key exists. -// If key does not exist or the value cannot be parsed the default -// value is returned. -func (p *Properties) GetInt64(key string, def int64) int64 { - v, err := p.getInt64(key) - if err != nil { - return def - } - return v -} - -// MustGetInt64 parses the expanded value as an int if the key exists. -// If key does not exist or the value cannot be parsed the function panics. -func (p *Properties) MustGetInt64(key string) int64 { - v, err := p.getInt64(key) - if err != nil { - ErrorHandler(err) - } - return v -} - -func (p *Properties) getInt64(key string) (value int64, err error) { - if v, ok := p.Get(key); ok { - value, err = strconv.ParseInt(v, 10, 64) - if err != nil { - return 0, err - } - return value, nil - } - return 0, invalidKeyError(key) -} - -// ---------------------------------------------------------------------------- - -// GetUint parses the expanded value as an uint if the key exists. -// If key does not exist or the value cannot be parsed the default -// value is returned. If the value does not fit into an int the -// function panics with an out of range error. -func (p *Properties) GetUint(key string, def uint) uint { - v, err := p.getUint64(key) - if err != nil { - return def - } - return uintRangeCheck(key, v) -} - -// MustGetUint parses the expanded value as an int if the key exists. -// If key does not exist or the value cannot be parsed the function panics. -// If the value does not fit into an int the function panics with -// an out of range error. -func (p *Properties) MustGetUint(key string) uint { - v, err := p.getUint64(key) - if err != nil { - ErrorHandler(err) - } - return uintRangeCheck(key, v) -} - -// ---------------------------------------------------------------------------- - -// GetUint64 parses the expanded value as an uint64 if the key exists. -// If key does not exist or the value cannot be parsed the default -// value is returned. -func (p *Properties) GetUint64(key string, def uint64) uint64 { - v, err := p.getUint64(key) - if err != nil { - return def - } - return v -} - -// MustGetUint64 parses the expanded value as an int if the key exists. -// If key does not exist or the value cannot be parsed the function panics. -func (p *Properties) MustGetUint64(key string) uint64 { - v, err := p.getUint64(key) - if err != nil { - ErrorHandler(err) - } - return v -} - -func (p *Properties) getUint64(key string) (value uint64, err error) { - if v, ok := p.Get(key); ok { - value, err = strconv.ParseUint(v, 10, 64) - if err != nil { - return 0, err - } - return value, nil - } - return 0, invalidKeyError(key) -} - -// ---------------------------------------------------------------------------- - -// GetString returns the expanded value for the given key if exists or -// the default value otherwise. -func (p *Properties) GetString(key, def string) string { - if v, ok := p.Get(key); ok { - return v - } - return def -} - -// MustGetString returns the expanded value for the given key if exists or -// panics otherwise. -func (p *Properties) MustGetString(key string) string { - if v, ok := p.Get(key); ok { - return v - } - ErrorHandler(invalidKeyError(key)) - panic("ErrorHandler should exit") -} - -// ---------------------------------------------------------------------------- - -// Filter returns a new properties object which contains all properties -// for which the key matches the pattern. -func (p *Properties) Filter(pattern string) (*Properties, error) { - re, err := regexp.Compile(pattern) - if err != nil { - return nil, err - } - - return p.FilterRegexp(re), nil -} - -// FilterRegexp returns a new properties object which contains all properties -// for which the key matches the regular expression. -func (p *Properties) FilterRegexp(re *regexp.Regexp) *Properties { - pp := NewProperties() - for _, k := range p.k { - if re.MatchString(k) { - // TODO(fs): we are ignoring the error which flags a circular reference. - // TODO(fs): since we are just copying a subset of keys this cannot happen (fingers crossed) - pp.Set(k, p.m[k]) - } - } - return pp -} - -// FilterPrefix returns a new properties object with a subset of all keys -// with the given prefix. -func (p *Properties) FilterPrefix(prefix string) *Properties { - pp := NewProperties() - for _, k := range p.k { - if strings.HasPrefix(k, prefix) { - // TODO(fs): we are ignoring the error which flags a circular reference. - // TODO(fs): since we are just copying a subset of keys this cannot happen (fingers crossed) - pp.Set(k, p.m[k]) - } - } - return pp -} - -// FilterStripPrefix returns a new properties object with a subset of all keys -// with the given prefix and the prefix removed from the keys. -func (p *Properties) FilterStripPrefix(prefix string) *Properties { - pp := NewProperties() - n := len(prefix) - for _, k := range p.k { - if len(k) > len(prefix) && strings.HasPrefix(k, prefix) { - // TODO(fs): we are ignoring the error which flags a circular reference. - // TODO(fs): since we are modifying keys I am not entirely sure whether we can create a circular reference - // TODO(fs): this function should probably return an error but the signature is fixed - pp.Set(k[n:], p.m[k]) - } - } - return pp -} - -// Len returns the number of keys. -func (p *Properties) Len() int { - return len(p.m) -} - -// Keys returns all keys in the same order as in the input. -func (p *Properties) Keys() []string { - keys := make([]string, len(p.k)) - copy(keys, p.k) - return keys -} - -// Set sets the property key to the corresponding value. -// If a value for key existed before then ok is true and prev -// contains the previous value. If the value contains a -// circular reference or a malformed expression then -// an error is returned. -// An empty key is silently ignored. -func (p *Properties) Set(key, value string) (prev string, ok bool, err error) { - if key == "" { - return "", false, nil - } - - // if expansion is disabled we allow circular references - if p.DisableExpansion { - prev, ok = p.Get(key) - p.m[key] = value - return prev, ok, nil - } - - // to check for a circular reference we temporarily need - // to set the new value. If there is an error then revert - // to the previous state. Only if all tests are successful - // then we add the key to the p.k list. - prev, ok = p.Get(key) - p.m[key] = value - - // now check for a circular reference - _, err = p.expand(value) - if err != nil { - - // revert to the previous state - if ok { - p.m[key] = prev - } else { - delete(p.m, key) - } - - return "", false, err - } - - if !ok { - p.k = append(p.k, key) - } - - return prev, ok, nil -} - -// SetValue sets property key to the default string value -// as defined by fmt.Sprintf("%v"). -func (p *Properties) SetValue(key string, value interface{}) error { - _, _, err := p.Set(key, fmt.Sprintf("%v", value)) - return err -} - -// MustSet sets the property key to the corresponding value. -// If a value for key existed before then ok is true and prev -// contains the previous value. An empty key is silently ignored. -func (p *Properties) MustSet(key, value string) (prev string, ok bool) { - prev, ok, err := p.Set(key, value) - if err != nil { - ErrorHandler(err) - } - return prev, ok -} - -// String returns a string of all expanded 'key = value' pairs. -func (p *Properties) String() string { - var s string - for _, key := range p.k { - value, _ := p.Get(key) - s = fmt.Sprintf("%s%s = %s\n", s, key, value) - } - return s -} - -// Write writes all unexpanded 'key = value' pairs to the given writer. -// Write returns the number of bytes written and any write error encountered. -func (p *Properties) Write(w io.Writer, enc Encoding) (n int, err error) { - return p.WriteComment(w, "", enc) -} - -// WriteComment writes all unexpanced 'key = value' pairs to the given writer. -// If prefix is not empty then comments are written with a blank line and the -// given prefix. The prefix should be either "# " or "! " to be compatible with -// the properties file format. Otherwise, the properties parser will not be -// able to read the file back in. It returns the number of bytes written and -// any write error encountered. -func (p *Properties) WriteComment(w io.Writer, prefix string, enc Encoding) (n int, err error) { - var x int - - for _, key := range p.k { - value := p.m[key] - - if prefix != "" { - if comments, ok := p.c[key]; ok { - // don't print comments if they are all empty - allEmpty := true - for _, c := range comments { - if c != "" { - allEmpty = false - break - } - } - - if !allEmpty { - // add a blank line between entries but not at the top - if len(comments) > 0 && n > 0 { - x, err = fmt.Fprintln(w) - if err != nil { - return - } - n += x - } - - for _, c := range comments { - x, err = fmt.Fprintf(w, "%s%s\n", prefix, encode(c, "", enc)) - if err != nil { - return - } - n += x - } - } - } - } - - x, err = fmt.Fprintf(w, "%s = %s\n", encode(key, " :", enc), encode(value, "", enc)) - if err != nil { - return - } - n += x - } - return -} - -// Map returns a copy of the properties as a map. -func (p *Properties) Map() map[string]string { - m := make(map[string]string) - for k, v := range p.m { - m[k] = v - } - return m -} - -// FilterFunc returns a copy of the properties which includes the values which passed all filters. -func (p *Properties) FilterFunc(filters ...func(k, v string) bool) *Properties { - pp := NewProperties() -outer: - for k, v := range p.m { - for _, f := range filters { - if !f(k, v) { - continue outer - } - pp.Set(k, v) - } - } - return pp -} - -// ---------------------------------------------------------------------------- - -// Delete removes the key and its comments. -func (p *Properties) Delete(key string) { - delete(p.m, key) - delete(p.c, key) - newKeys := []string{} - for _, k := range p.k { - if k != key { - newKeys = append(newKeys, k) - } - } - p.k = newKeys -} - -// Merge merges properties, comments and keys from other *Properties into p -func (p *Properties) Merge(other *Properties) { - for k, v := range other.m { - p.m[k] = v - } - for k, v := range other.c { - p.c[k] = v - } - -outer: - for _, otherKey := range other.k { - for _, key := range p.k { - if otherKey == key { - continue outer - } - } - p.k = append(p.k, otherKey) - } -} - -// ---------------------------------------------------------------------------- - -// check expands all values and returns an error if a circular reference or -// a malformed expression was found. -func (p *Properties) check() error { - for _, value := range p.m { - if _, err := p.expand(value); err != nil { - return err - } - } - return nil -} - -func (p *Properties) expand(input string) (string, error) { - // no pre/postfix -> nothing to expand - if p.Prefix == "" && p.Postfix == "" { - return input, nil - } - - return expand(input, make(map[string]bool), p.Prefix, p.Postfix, p.m) -} - -// expand recursively expands expressions of '(prefix)key(postfix)' to their corresponding values. -// The function keeps track of the keys that were already expanded and stops if it -// detects a circular reference or a malformed expression of the form '(prefix)key'. -func expand(s string, keys map[string]bool, prefix, postfix string, values map[string]string) (string, error) { - start := strings.Index(s, prefix) - if start == -1 { - return s, nil - } - - keyStart := start + len(prefix) - keyLen := strings.Index(s[keyStart:], postfix) - if keyLen == -1 { - return "", fmt.Errorf("malformed expression") - } - - end := keyStart + keyLen + len(postfix) - 1 - key := s[keyStart : keyStart+keyLen] - - // fmt.Printf("s:%q pp:%q start:%d end:%d keyStart:%d keyLen:%d key:%q\n", s, prefix + "..." + postfix, start, end, keyStart, keyLen, key) - - if _, ok := keys[key]; ok { - return "", fmt.Errorf("circular reference") - } - - val, ok := values[key] - if !ok { - val = os.Getenv(key) - } - - // remember that we've seen the key - keys[key] = true - - return expand(s[:start]+val+s[end+1:], keys, prefix, postfix, values) -} - -// encode encodes a UTF-8 string to ISO-8859-1 and escapes some characters. -func encode(s string, special string, enc Encoding) string { - switch enc { - case UTF8: - return encodeUtf8(s, special) - case ISO_8859_1: - return encodeIso(s, special) - default: - panic(fmt.Sprintf("unsupported encoding %v", enc)) - } -} - -func encodeUtf8(s string, special string) string { - v := "" - for pos := 0; pos < len(s); { - r, w := utf8.DecodeRuneInString(s[pos:]) - pos += w - v += escape(r, special) - } - return v -} - -func encodeIso(s string, special string) string { - var r rune - var w int - var v string - for pos := 0; pos < len(s); { - switch r, w = utf8.DecodeRuneInString(s[pos:]); { - case r < 1<<8: // single byte rune -> escape special chars only - v += escape(r, special) - case r < 1<<16: // two byte rune -> unicode literal - v += fmt.Sprintf("\\u%04x", r) - default: // more than two bytes per rune -> can't encode - v += "?" - } - pos += w - } - return v -} - -func escape(r rune, special string) string { - switch r { - case '\f': - return "\\f" - case '\n': - return "\\n" - case '\r': - return "\\r" - case '\t': - return "\\t" - default: - if strings.ContainsRune(special, r) { - return "\\" + string(r) - } - return string(r) - } -} - -func invalidKeyError(key string) error { - return fmt.Errorf("unknown property: %s", key) -} diff --git a/vendor/github.com/magiconair/properties/rangecheck.go b/vendor/github.com/magiconair/properties/rangecheck.go deleted file mode 100644 index 2e907d5..0000000 --- a/vendor/github.com/magiconair/properties/rangecheck.go +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2017 Frank Schroeder. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package properties - -import ( - "fmt" - "math" -) - -// make this a var to overwrite it in a test -var is32Bit = ^uint(0) == math.MaxUint32 - -// intRangeCheck checks if the value fits into the int type and -// panics if it does not. -func intRangeCheck(key string, v int64) int { - if is32Bit && (v < math.MinInt32 || v > math.MaxInt32) { - panic(fmt.Sprintf("Value %d for key %s out of range", v, key)) - } - return int(v) -} - -// uintRangeCheck checks if the value fits into the uint type and -// panics if it does not. -func uintRangeCheck(key string, v uint64) uint { - if is32Bit && v > math.MaxUint32 { - panic(fmt.Sprintf("Value %d for key %s out of range", v, key)) - } - return uint(v) -} diff --git a/vendor/github.com/mattn/go-colorable/LICENSE b/vendor/github.com/mattn/go-colorable/LICENSE deleted file mode 100644 index 91b5cef..0000000 --- a/vendor/github.com/mattn/go-colorable/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2016 Yasuhiro Matsumoto - -Permission 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: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE 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. diff --git a/vendor/github.com/mattn/go-colorable/colorable_others.go b/vendor/github.com/mattn/go-colorable/colorable_others.go deleted file mode 100644 index a7fe19a..0000000 --- a/vendor/github.com/mattn/go-colorable/colorable_others.go +++ /dev/null @@ -1,27 +0,0 @@ -// +build !windows - -package colorable - -import ( - "io" - "os" -) - -// NewColorable return new instance of Writer which handle escape sequence. -func NewColorable(file *os.File) io.Writer { - if file == nil { - panic("nil passed instead of *os.File to NewColorable()") - } - - return file -} - -// NewColorableStdout return new instance of Writer which handle escape sequence for stdout. -func NewColorableStdout() io.Writer { - return os.Stdout -} - -// NewColorableStderr return new instance of Writer which handle escape sequence for stderr. -func NewColorableStderr() io.Writer { - return os.Stderr -} diff --git a/vendor/github.com/mattn/go-colorable/colorable_windows.go b/vendor/github.com/mattn/go-colorable/colorable_windows.go deleted file mode 100644 index 628ad90..0000000 --- a/vendor/github.com/mattn/go-colorable/colorable_windows.go +++ /dev/null @@ -1,820 +0,0 @@ -package colorable - -import ( - "bytes" - "io" - "math" - "os" - "strconv" - "strings" - "syscall" - "unsafe" - - "github.com/mattn/go-isatty" -) - -const ( - foregroundBlue = 0x1 - foregroundGreen = 0x2 - foregroundRed = 0x4 - foregroundIntensity = 0x8 - foregroundMask = (foregroundRed | foregroundBlue | foregroundGreen | foregroundIntensity) - backgroundBlue = 0x10 - backgroundGreen = 0x20 - backgroundRed = 0x40 - backgroundIntensity = 0x80 - backgroundMask = (backgroundRed | backgroundBlue | backgroundGreen | backgroundIntensity) -) - -type wchar uint16 -type short int16 -type dword uint32 -type word uint16 - -type coord struct { - x short - y short -} - -type smallRect struct { - left short - top short - right short - bottom short -} - -type consoleScreenBufferInfo struct { - size coord - cursorPosition coord - attributes word - window smallRect - maximumWindowSize coord -} - -type consoleCursorInfo struct { - size dword - visible int32 -} - -var ( - kernel32 = syscall.NewLazyDLL("kernel32.dll") - procGetConsoleScreenBufferInfo = kernel32.NewProc("GetConsoleScreenBufferInfo") - procSetConsoleTextAttribute = kernel32.NewProc("SetConsoleTextAttribute") - procSetConsoleCursorPosition = kernel32.NewProc("SetConsoleCursorPosition") - procFillConsoleOutputCharacter = kernel32.NewProc("FillConsoleOutputCharacterW") - procFillConsoleOutputAttribute = kernel32.NewProc("FillConsoleOutputAttribute") - procGetConsoleCursorInfo = kernel32.NewProc("GetConsoleCursorInfo") - procSetConsoleCursorInfo = kernel32.NewProc("SetConsoleCursorInfo") -) - -type Writer struct { - out io.Writer - handle syscall.Handle - lastbuf bytes.Buffer - oldattr word - oldpos coord -} - -// NewColorable return new instance of Writer which handle escape sequence from File. -func NewColorable(file *os.File) io.Writer { - if file == nil { - panic("nil passed instead of *os.File to NewColorable()") - } - - if isatty.IsTerminal(file.Fd()) { - var csbi consoleScreenBufferInfo - handle := syscall.Handle(file.Fd()) - procGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi))) - return &Writer{out: file, handle: handle, oldattr: csbi.attributes, oldpos: coord{0, 0}} - } else { - return file - } -} - -// NewColorableStdout return new instance of Writer which handle escape sequence for stdout. -func NewColorableStdout() io.Writer { - return NewColorable(os.Stdout) -} - -// NewColorableStderr return new instance of Writer which handle escape sequence for stderr. -func NewColorableStderr() io.Writer { - return NewColorable(os.Stderr) -} - -var color256 = map[int]int{ - 0: 0x000000, - 1: 0x800000, - 2: 0x008000, - 3: 0x808000, - 4: 0x000080, - 5: 0x800080, - 6: 0x008080, - 7: 0xc0c0c0, - 8: 0x808080, - 9: 0xff0000, - 10: 0x00ff00, - 11: 0xffff00, - 12: 0x0000ff, - 13: 0xff00ff, - 14: 0x00ffff, - 15: 0xffffff, - 16: 0x000000, - 17: 0x00005f, - 18: 0x000087, - 19: 0x0000af, - 20: 0x0000d7, - 21: 0x0000ff, - 22: 0x005f00, - 23: 0x005f5f, - 24: 0x005f87, - 25: 0x005faf, - 26: 0x005fd7, - 27: 0x005fff, - 28: 0x008700, - 29: 0x00875f, - 30: 0x008787, - 31: 0x0087af, - 32: 0x0087d7, - 33: 0x0087ff, - 34: 0x00af00, - 35: 0x00af5f, - 36: 0x00af87, - 37: 0x00afaf, - 38: 0x00afd7, - 39: 0x00afff, - 40: 0x00d700, - 41: 0x00d75f, - 42: 0x00d787, - 43: 0x00d7af, - 44: 0x00d7d7, - 45: 0x00d7ff, - 46: 0x00ff00, - 47: 0x00ff5f, - 48: 0x00ff87, - 49: 0x00ffaf, - 50: 0x00ffd7, - 51: 0x00ffff, - 52: 0x5f0000, - 53: 0x5f005f, - 54: 0x5f0087, - 55: 0x5f00af, - 56: 0x5f00d7, - 57: 0x5f00ff, - 58: 0x5f5f00, - 59: 0x5f5f5f, - 60: 0x5f5f87, - 61: 0x5f5faf, - 62: 0x5f5fd7, - 63: 0x5f5fff, - 64: 0x5f8700, - 65: 0x5f875f, - 66: 0x5f8787, - 67: 0x5f87af, - 68: 0x5f87d7, - 69: 0x5f87ff, - 70: 0x5faf00, - 71: 0x5faf5f, - 72: 0x5faf87, - 73: 0x5fafaf, - 74: 0x5fafd7, - 75: 0x5fafff, - 76: 0x5fd700, - 77: 0x5fd75f, - 78: 0x5fd787, - 79: 0x5fd7af, - 80: 0x5fd7d7, - 81: 0x5fd7ff, - 82: 0x5fff00, - 83: 0x5fff5f, - 84: 0x5fff87, - 85: 0x5fffaf, - 86: 0x5fffd7, - 87: 0x5fffff, - 88: 0x870000, - 89: 0x87005f, - 90: 0x870087, - 91: 0x8700af, - 92: 0x8700d7, - 93: 0x8700ff, - 94: 0x875f00, - 95: 0x875f5f, - 96: 0x875f87, - 97: 0x875faf, - 98: 0x875fd7, - 99: 0x875fff, - 100: 0x878700, - 101: 0x87875f, - 102: 0x878787, - 103: 0x8787af, - 104: 0x8787d7, - 105: 0x8787ff, - 106: 0x87af00, - 107: 0x87af5f, - 108: 0x87af87, - 109: 0x87afaf, - 110: 0x87afd7, - 111: 0x87afff, - 112: 0x87d700, - 113: 0x87d75f, - 114: 0x87d787, - 115: 0x87d7af, - 116: 0x87d7d7, - 117: 0x87d7ff, - 118: 0x87ff00, - 119: 0x87ff5f, - 120: 0x87ff87, - 121: 0x87ffaf, - 122: 0x87ffd7, - 123: 0x87ffff, - 124: 0xaf0000, - 125: 0xaf005f, - 126: 0xaf0087, - 127: 0xaf00af, - 128: 0xaf00d7, - 129: 0xaf00ff, - 130: 0xaf5f00, - 131: 0xaf5f5f, - 132: 0xaf5f87, - 133: 0xaf5faf, - 134: 0xaf5fd7, - 135: 0xaf5fff, - 136: 0xaf8700, - 137: 0xaf875f, - 138: 0xaf8787, - 139: 0xaf87af, - 140: 0xaf87d7, - 141: 0xaf87ff, - 142: 0xafaf00, - 143: 0xafaf5f, - 144: 0xafaf87, - 145: 0xafafaf, - 146: 0xafafd7, - 147: 0xafafff, - 148: 0xafd700, - 149: 0xafd75f, - 150: 0xafd787, - 151: 0xafd7af, - 152: 0xafd7d7, - 153: 0xafd7ff, - 154: 0xafff00, - 155: 0xafff5f, - 156: 0xafff87, - 157: 0xafffaf, - 158: 0xafffd7, - 159: 0xafffff, - 160: 0xd70000, - 161: 0xd7005f, - 162: 0xd70087, - 163: 0xd700af, - 164: 0xd700d7, - 165: 0xd700ff, - 166: 0xd75f00, - 167: 0xd75f5f, - 168: 0xd75f87, - 169: 0xd75faf, - 170: 0xd75fd7, - 171: 0xd75fff, - 172: 0xd78700, - 173: 0xd7875f, - 174: 0xd78787, - 175: 0xd787af, - 176: 0xd787d7, - 177: 0xd787ff, - 178: 0xd7af00, - 179: 0xd7af5f, - 180: 0xd7af87, - 181: 0xd7afaf, - 182: 0xd7afd7, - 183: 0xd7afff, - 184: 0xd7d700, - 185: 0xd7d75f, - 186: 0xd7d787, - 187: 0xd7d7af, - 188: 0xd7d7d7, - 189: 0xd7d7ff, - 190: 0xd7ff00, - 191: 0xd7ff5f, - 192: 0xd7ff87, - 193: 0xd7ffaf, - 194: 0xd7ffd7, - 195: 0xd7ffff, - 196: 0xff0000, - 197: 0xff005f, - 198: 0xff0087, - 199: 0xff00af, - 200: 0xff00d7, - 201: 0xff00ff, - 202: 0xff5f00, - 203: 0xff5f5f, - 204: 0xff5f87, - 205: 0xff5faf, - 206: 0xff5fd7, - 207: 0xff5fff, - 208: 0xff8700, - 209: 0xff875f, - 210: 0xff8787, - 211: 0xff87af, - 212: 0xff87d7, - 213: 0xff87ff, - 214: 0xffaf00, - 215: 0xffaf5f, - 216: 0xffaf87, - 217: 0xffafaf, - 218: 0xffafd7, - 219: 0xffafff, - 220: 0xffd700, - 221: 0xffd75f, - 222: 0xffd787, - 223: 0xffd7af, - 224: 0xffd7d7, - 225: 0xffd7ff, - 226: 0xffff00, - 227: 0xffff5f, - 228: 0xffff87, - 229: 0xffffaf, - 230: 0xffffd7, - 231: 0xffffff, - 232: 0x080808, - 233: 0x121212, - 234: 0x1c1c1c, - 235: 0x262626, - 236: 0x303030, - 237: 0x3a3a3a, - 238: 0x444444, - 239: 0x4e4e4e, - 240: 0x585858, - 241: 0x626262, - 242: 0x6c6c6c, - 243: 0x767676, - 244: 0x808080, - 245: 0x8a8a8a, - 246: 0x949494, - 247: 0x9e9e9e, - 248: 0xa8a8a8, - 249: 0xb2b2b2, - 250: 0xbcbcbc, - 251: 0xc6c6c6, - 252: 0xd0d0d0, - 253: 0xdadada, - 254: 0xe4e4e4, - 255: 0xeeeeee, -} - -// Write write data on console -func (w *Writer) Write(data []byte) (n int, err error) { - var csbi consoleScreenBufferInfo - procGetConsoleScreenBufferInfo.Call(uintptr(w.handle), uintptr(unsafe.Pointer(&csbi))) - - er := bytes.NewReader(data) - var bw [1]byte -loop: - for { - r1, _, err := procGetConsoleScreenBufferInfo.Call(uintptr(w.handle), uintptr(unsafe.Pointer(&csbi))) - if r1 == 0 { - break loop - } - - c1, err := er.ReadByte() - if err != nil { - break loop - } - if c1 != 0x1b { - bw[0] = c1 - w.out.Write(bw[:]) - continue - } - c2, err := er.ReadByte() - if err != nil { - w.lastbuf.WriteByte(c1) - break loop - } - if c2 != 0x5b { - w.lastbuf.WriteByte(c1) - w.lastbuf.WriteByte(c2) - continue - } - - var buf bytes.Buffer - var m byte - for { - c, err := er.ReadByte() - if err != nil { - w.lastbuf.WriteByte(c1) - w.lastbuf.WriteByte(c2) - w.lastbuf.Write(buf.Bytes()) - break loop - } - if ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') || c == '@' { - m = c - break - } - buf.Write([]byte(string(c))) - } - - var csbi consoleScreenBufferInfo - switch m { - case 'A': - n, err = strconv.Atoi(buf.String()) - if err != nil { - continue - } - procGetConsoleScreenBufferInfo.Call(uintptr(w.handle), uintptr(unsafe.Pointer(&csbi))) - csbi.cursorPosition.y -= short(n) - procSetConsoleCursorPosition.Call(uintptr(w.handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition))) - case 'B': - n, err = strconv.Atoi(buf.String()) - if err != nil { - continue - } - procGetConsoleScreenBufferInfo.Call(uintptr(w.handle), uintptr(unsafe.Pointer(&csbi))) - csbi.cursorPosition.y += short(n) - procSetConsoleCursorPosition.Call(uintptr(w.handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition))) - case 'C': - n, err = strconv.Atoi(buf.String()) - if err != nil { - continue - } - procGetConsoleScreenBufferInfo.Call(uintptr(w.handle), uintptr(unsafe.Pointer(&csbi))) - csbi.cursorPosition.x -= short(n) - procSetConsoleCursorPosition.Call(uintptr(w.handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition))) - case 'D': - n, err = strconv.Atoi(buf.String()) - if err != nil { - continue - } - if n, err = strconv.Atoi(buf.String()); err == nil { - var csbi consoleScreenBufferInfo - procGetConsoleScreenBufferInfo.Call(uintptr(w.handle), uintptr(unsafe.Pointer(&csbi))) - csbi.cursorPosition.x += short(n) - procSetConsoleCursorPosition.Call(uintptr(w.handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition))) - } - case 'E': - n, err = strconv.Atoi(buf.String()) - if err != nil { - continue - } - procGetConsoleScreenBufferInfo.Call(uintptr(w.handle), uintptr(unsafe.Pointer(&csbi))) - csbi.cursorPosition.x = 0 - csbi.cursorPosition.y += short(n) - procSetConsoleCursorPosition.Call(uintptr(w.handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition))) - case 'F': - n, err = strconv.Atoi(buf.String()) - if err != nil { - continue - } - procGetConsoleScreenBufferInfo.Call(uintptr(w.handle), uintptr(unsafe.Pointer(&csbi))) - csbi.cursorPosition.x = 0 - csbi.cursorPosition.y -= short(n) - procSetConsoleCursorPosition.Call(uintptr(w.handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition))) - case 'G': - n, err = strconv.Atoi(buf.String()) - if err != nil { - continue - } - procGetConsoleScreenBufferInfo.Call(uintptr(w.handle), uintptr(unsafe.Pointer(&csbi))) - csbi.cursorPosition.x = short(n - 1) - procSetConsoleCursorPosition.Call(uintptr(w.handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition))) - case 'H': - token := strings.Split(buf.String(), ";") - if len(token) != 2 { - continue - } - n1, err := strconv.Atoi(token[0]) - if err != nil { - continue - } - n2, err := strconv.Atoi(token[1]) - if err != nil { - continue - } - csbi.cursorPosition.x = short(n2 - 1) - csbi.cursorPosition.y = short(n1 - 1) - procSetConsoleCursorPosition.Call(uintptr(w.handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition))) - case 'J': - n, err := strconv.Atoi(buf.String()) - if err != nil { - continue - } - procGetConsoleScreenBufferInfo.Call(uintptr(w.handle), uintptr(unsafe.Pointer(&csbi))) - var cursor coord - switch n { - case 0: - cursor = coord{x: csbi.cursorPosition.x, y: csbi.cursorPosition.y} - case 1: - cursor = coord{x: csbi.window.left, y: csbi.window.top} - case 2: - cursor = coord{x: csbi.window.left, y: csbi.window.top} - } - var count, written dword - count = dword(csbi.size.x - csbi.cursorPosition.x + (csbi.size.y-csbi.cursorPosition.y)*csbi.size.x) - procFillConsoleOutputCharacter.Call(uintptr(w.handle), uintptr(' '), uintptr(count), *(*uintptr)(unsafe.Pointer(&cursor)), uintptr(unsafe.Pointer(&written))) - procFillConsoleOutputAttribute.Call(uintptr(w.handle), uintptr(csbi.attributes), uintptr(count), *(*uintptr)(unsafe.Pointer(&cursor)), uintptr(unsafe.Pointer(&written))) - case 'K': - n, err := strconv.Atoi(buf.String()) - if err != nil { - continue - } - procGetConsoleScreenBufferInfo.Call(uintptr(w.handle), uintptr(unsafe.Pointer(&csbi))) - var cursor coord - switch n { - case 0: - cursor = coord{x: csbi.cursorPosition.x, y: csbi.cursorPosition.y} - case 1: - cursor = coord{x: csbi.window.left, y: csbi.window.top + csbi.cursorPosition.y} - case 2: - cursor = coord{x: csbi.window.left, y: csbi.window.top + csbi.cursorPosition.y} - } - var count, written dword - count = dword(csbi.size.x - csbi.cursorPosition.x) - procFillConsoleOutputCharacter.Call(uintptr(w.handle), uintptr(' '), uintptr(count), *(*uintptr)(unsafe.Pointer(&cursor)), uintptr(unsafe.Pointer(&written))) - procFillConsoleOutputAttribute.Call(uintptr(w.handle), uintptr(csbi.attributes), uintptr(count), *(*uintptr)(unsafe.Pointer(&cursor)), uintptr(unsafe.Pointer(&written))) - case 'm': - procGetConsoleScreenBufferInfo.Call(uintptr(w.handle), uintptr(unsafe.Pointer(&csbi))) - attr := csbi.attributes - cs := buf.String() - if cs == "" { - procSetConsoleTextAttribute.Call(uintptr(w.handle), uintptr(w.oldattr)) - continue - } - token := strings.Split(cs, ";") - for i := 0; i < len(token); i++ { - ns := token[i] - if n, err = strconv.Atoi(ns); err == nil { - switch { - case n == 0 || n == 100: - attr = w.oldattr - case 1 <= n && n <= 5: - attr |= foregroundIntensity - case n == 7: - attr = ((attr & foregroundMask) << 4) | ((attr & backgroundMask) >> 4) - case 22 == n || n == 25 || n == 25: - attr |= foregroundIntensity - case n == 27: - attr = ((attr & foregroundMask) << 4) | ((attr & backgroundMask) >> 4) - case 30 <= n && n <= 37: - attr &= backgroundMask - if (n-30)&1 != 0 { - attr |= foregroundRed - } - if (n-30)&2 != 0 { - attr |= foregroundGreen - } - if (n-30)&4 != 0 { - attr |= foregroundBlue - } - case n == 38: // set foreground color. - if i < len(token)-2 && (token[i+1] == "5" || token[i+1] == "05") { - if n256, err := strconv.Atoi(token[i+2]); err == nil { - if n256foreAttr == nil { - n256setup() - } - attr &= backgroundMask - attr |= n256foreAttr[n256] - i += 2 - } - } else { - attr = attr & (w.oldattr & backgroundMask) - } - case n == 39: // reset foreground color. - attr &= backgroundMask - attr |= w.oldattr & foregroundMask - case 40 <= n && n <= 47: - attr &= foregroundMask - if (n-40)&1 != 0 { - attr |= backgroundRed - } - if (n-40)&2 != 0 { - attr |= backgroundGreen - } - if (n-40)&4 != 0 { - attr |= backgroundBlue - } - case n == 48: // set background color. - if i < len(token)-2 && token[i+1] == "5" { - if n256, err := strconv.Atoi(token[i+2]); err == nil { - if n256backAttr == nil { - n256setup() - } - attr &= foregroundMask - attr |= n256backAttr[n256] - i += 2 - } - } else { - attr = attr & (w.oldattr & foregroundMask) - } - case n == 49: // reset foreground color. - attr &= foregroundMask - attr |= w.oldattr & backgroundMask - case 90 <= n && n <= 97: - attr = (attr & backgroundMask) - attr |= foregroundIntensity - if (n-90)&1 != 0 { - attr |= foregroundRed - } - if (n-90)&2 != 0 { - attr |= foregroundGreen - } - if (n-90)&4 != 0 { - attr |= foregroundBlue - } - case 100 <= n && n <= 107: - attr = (attr & foregroundMask) - attr |= backgroundIntensity - if (n-100)&1 != 0 { - attr |= backgroundRed - } - if (n-100)&2 != 0 { - attr |= backgroundGreen - } - if (n-100)&4 != 0 { - attr |= backgroundBlue - } - } - procSetConsoleTextAttribute.Call(uintptr(w.handle), uintptr(attr)) - } - } - case 'h': - cs := buf.String() - if cs == "?25" { - var ci consoleCursorInfo - procGetConsoleCursorInfo.Call(uintptr(w.handle), uintptr(unsafe.Pointer(&ci))) - ci.visible = 1 - procSetConsoleCursorInfo.Call(uintptr(w.handle), uintptr(unsafe.Pointer(&ci))) - } - case 'l': - cs := buf.String() - if cs == "?25" { - var ci consoleCursorInfo - procGetConsoleCursorInfo.Call(uintptr(w.handle), uintptr(unsafe.Pointer(&ci))) - ci.visible = 0 - procSetConsoleCursorInfo.Call(uintptr(w.handle), uintptr(unsafe.Pointer(&ci))) - } - case 's': - procGetConsoleScreenBufferInfo.Call(uintptr(w.handle), uintptr(unsafe.Pointer(&csbi))) - w.oldpos = csbi.cursorPosition - case 'u': - procSetConsoleCursorPosition.Call(uintptr(w.handle), *(*uintptr)(unsafe.Pointer(&w.oldpos))) - } - } - return len(data) - w.lastbuf.Len(), nil -} - -type consoleColor struct { - rgb int - red bool - green bool - blue bool - intensity bool -} - -func (c consoleColor) foregroundAttr() (attr word) { - if c.red { - attr |= foregroundRed - } - if c.green { - attr |= foregroundGreen - } - if c.blue { - attr |= foregroundBlue - } - if c.intensity { - attr |= foregroundIntensity - } - return -} - -func (c consoleColor) backgroundAttr() (attr word) { - if c.red { - attr |= backgroundRed - } - if c.green { - attr |= backgroundGreen - } - if c.blue { - attr |= backgroundBlue - } - if c.intensity { - attr |= backgroundIntensity - } - return -} - -var color16 = []consoleColor{ - consoleColor{0x000000, false, false, false, false}, - consoleColor{0x000080, false, false, true, false}, - consoleColor{0x008000, false, true, false, false}, - consoleColor{0x008080, false, true, true, false}, - consoleColor{0x800000, true, false, false, false}, - consoleColor{0x800080, true, false, true, false}, - consoleColor{0x808000, true, true, false, false}, - consoleColor{0xc0c0c0, true, true, true, false}, - consoleColor{0x808080, false, false, false, true}, - consoleColor{0x0000ff, false, false, true, true}, - consoleColor{0x00ff00, false, true, false, true}, - consoleColor{0x00ffff, false, true, true, true}, - consoleColor{0xff0000, true, false, false, true}, - consoleColor{0xff00ff, true, false, true, true}, - consoleColor{0xffff00, true, true, false, true}, - consoleColor{0xffffff, true, true, true, true}, -} - -type hsv struct { - h, s, v float32 -} - -func (a hsv) dist(b hsv) float32 { - dh := a.h - b.h - switch { - case dh > 0.5: - dh = 1 - dh - case dh < -0.5: - dh = -1 - dh - } - ds := a.s - b.s - dv := a.v - b.v - return float32(math.Sqrt(float64(dh*dh + ds*ds + dv*dv))) -} - -func toHSV(rgb int) hsv { - r, g, b := float32((rgb&0xFF0000)>>16)/256.0, - float32((rgb&0x00FF00)>>8)/256.0, - float32(rgb&0x0000FF)/256.0 - min, max := minmax3f(r, g, b) - h := max - min - if h > 0 { - if max == r { - h = (g - b) / h - if h < 0 { - h += 6 - } - } else if max == g { - h = 2 + (b-r)/h - } else { - h = 4 + (r-g)/h - } - } - h /= 6.0 - s := max - min - if max != 0 { - s /= max - } - v := max - return hsv{h: h, s: s, v: v} -} - -type hsvTable []hsv - -func toHSVTable(rgbTable []consoleColor) hsvTable { - t := make(hsvTable, len(rgbTable)) - for i, c := range rgbTable { - t[i] = toHSV(c.rgb) - } - return t -} - -func (t hsvTable) find(rgb int) consoleColor { - hsv := toHSV(rgb) - n := 7 - l := float32(5.0) - for i, p := range t { - d := hsv.dist(p) - if d < l { - l, n = d, i - } - } - return color16[n] -} - -func minmax3f(a, b, c float32) (min, max float32) { - if a < b { - if b < c { - return a, c - } else if a < c { - return a, b - } else { - return c, b - } - } else { - if a < c { - return b, c - } else if b < c { - return b, a - } else { - return c, a - } - } -} - -var n256foreAttr []word -var n256backAttr []word - -func n256setup() { - n256foreAttr = make([]word, 256) - n256backAttr = make([]word, 256) - t := toHSVTable(color16) - for i, rgb := range color256 { - c := t.find(rgb) - n256foreAttr[i] = c.foregroundAttr() - n256backAttr[i] = c.backgroundAttr() - } -} diff --git a/vendor/github.com/mattn/go-colorable/noncolorable.go b/vendor/github.com/mattn/go-colorable/noncolorable.go deleted file mode 100644 index ca588c7..0000000 --- a/vendor/github.com/mattn/go-colorable/noncolorable.go +++ /dev/null @@ -1,61 +0,0 @@ -package colorable - -import ( - "bytes" - "io" -) - -// NonColorable hold writer but remove escape sequence. -type NonColorable struct { - out io.Writer - lastbuf bytes.Buffer -} - -// NewNonColorable return new instance of Writer which remove escape sequence from Writer. -func NewNonColorable(w io.Writer) io.Writer { - return &NonColorable{out: w} -} - -// Write write data on console -func (w *NonColorable) Write(data []byte) (n int, err error) { - er := bytes.NewReader(data) - var bw [1]byte -loop: - for { - c1, err := er.ReadByte() - if err != nil { - break loop - } - if c1 != 0x1b { - bw[0] = c1 - w.out.Write(bw[:]) - continue - } - c2, err := er.ReadByte() - if err != nil { - w.lastbuf.WriteByte(c1) - break loop - } - if c2 != 0x5b { - w.lastbuf.WriteByte(c1) - w.lastbuf.WriteByte(c2) - continue - } - - var buf bytes.Buffer - for { - c, err := er.ReadByte() - if err != nil { - w.lastbuf.WriteByte(c1) - w.lastbuf.WriteByte(c2) - w.lastbuf.Write(buf.Bytes()) - break loop - } - if ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') || c == '@' { - break - } - buf.Write([]byte(string(c))) - } - } - return len(data) - w.lastbuf.Len(), nil -} diff --git a/vendor/github.com/mattn/go-isatty/LICENSE b/vendor/github.com/mattn/go-isatty/LICENSE deleted file mode 100644 index 65dc692..0000000 --- a/vendor/github.com/mattn/go-isatty/LICENSE +++ /dev/null @@ -1,9 +0,0 @@ -Copyright (c) Yasuhiro MATSUMOTO - -MIT License (Expat) - -Permission 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: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE 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. diff --git a/vendor/github.com/mattn/go-isatty/doc.go b/vendor/github.com/mattn/go-isatty/doc.go deleted file mode 100644 index 17d4f90..0000000 --- a/vendor/github.com/mattn/go-isatty/doc.go +++ /dev/null @@ -1,2 +0,0 @@ -// Package isatty implements interface to isatty -package isatty diff --git a/vendor/github.com/mattn/go-isatty/isatty_appengine.go b/vendor/github.com/mattn/go-isatty/isatty_appengine.go deleted file mode 100644 index 9584a98..0000000 --- a/vendor/github.com/mattn/go-isatty/isatty_appengine.go +++ /dev/null @@ -1,15 +0,0 @@ -// +build appengine - -package isatty - -// IsTerminal returns true if the file descriptor is terminal which -// is always false on on appengine classic which is a sandboxed PaaS. -func IsTerminal(fd uintptr) bool { - return false -} - -// IsCygwinTerminal() return true if the file descriptor is a cygwin or msys2 -// terminal. This is also always false on this environment. -func IsCygwinTerminal(fd uintptr) bool { - return false -} diff --git a/vendor/github.com/mattn/go-isatty/isatty_bsd.go b/vendor/github.com/mattn/go-isatty/isatty_bsd.go deleted file mode 100644 index 42f2514..0000000 --- a/vendor/github.com/mattn/go-isatty/isatty_bsd.go +++ /dev/null @@ -1,18 +0,0 @@ -// +build darwin freebsd openbsd netbsd dragonfly -// +build !appengine - -package isatty - -import ( - "syscall" - "unsafe" -) - -const ioctlReadTermios = syscall.TIOCGETA - -// IsTerminal return true if the file descriptor is terminal. -func IsTerminal(fd uintptr) bool { - var termios syscall.Termios - _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, fd, ioctlReadTermios, uintptr(unsafe.Pointer(&termios)), 0, 0, 0) - return err == 0 -} diff --git a/vendor/github.com/mattn/go-isatty/isatty_linux.go b/vendor/github.com/mattn/go-isatty/isatty_linux.go deleted file mode 100644 index 9d24bac..0000000 --- a/vendor/github.com/mattn/go-isatty/isatty_linux.go +++ /dev/null @@ -1,18 +0,0 @@ -// +build linux -// +build !appengine - -package isatty - -import ( - "syscall" - "unsafe" -) - -const ioctlReadTermios = syscall.TCGETS - -// IsTerminal return true if the file descriptor is terminal. -func IsTerminal(fd uintptr) bool { - var termios syscall.Termios - _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, fd, ioctlReadTermios, uintptr(unsafe.Pointer(&termios)), 0, 0, 0) - return err == 0 -} diff --git a/vendor/github.com/mattn/go-isatty/isatty_others.go b/vendor/github.com/mattn/go-isatty/isatty_others.go deleted file mode 100644 index ff4de3d..0000000 --- a/vendor/github.com/mattn/go-isatty/isatty_others.go +++ /dev/null @@ -1,10 +0,0 @@ -// +build !windows -// +build !appengine - -package isatty - -// IsCygwinTerminal() return true if the file descriptor is a cygwin or msys2 -// terminal. This is also always false on this environment. -func IsCygwinTerminal(fd uintptr) bool { - return false -} diff --git a/vendor/github.com/mattn/go-isatty/isatty_solaris.go b/vendor/github.com/mattn/go-isatty/isatty_solaris.go deleted file mode 100644 index 1f0c6bf..0000000 --- a/vendor/github.com/mattn/go-isatty/isatty_solaris.go +++ /dev/null @@ -1,16 +0,0 @@ -// +build solaris -// +build !appengine - -package isatty - -import ( - "golang.org/x/sys/unix" -) - -// IsTerminal returns true if the given file descriptor is a terminal. -// see: http://src.illumos.org/source/xref/illumos-gate/usr/src/lib/libbc/libc/gen/common/isatty.c -func IsTerminal(fd uintptr) bool { - var termio unix.Termio - err := unix.IoctlSetTermio(int(fd), unix.TCGETA, &termio) - return err == nil -} diff --git a/vendor/github.com/mattn/go-isatty/isatty_windows.go b/vendor/github.com/mattn/go-isatty/isatty_windows.go deleted file mode 100644 index af51cbc..0000000 --- a/vendor/github.com/mattn/go-isatty/isatty_windows.go +++ /dev/null @@ -1,94 +0,0 @@ -// +build windows -// +build !appengine - -package isatty - -import ( - "strings" - "syscall" - "unicode/utf16" - "unsafe" -) - -const ( - fileNameInfo uintptr = 2 - fileTypePipe = 3 -) - -var ( - kernel32 = syscall.NewLazyDLL("kernel32.dll") - procGetConsoleMode = kernel32.NewProc("GetConsoleMode") - procGetFileInformationByHandleEx = kernel32.NewProc("GetFileInformationByHandleEx") - procGetFileType = kernel32.NewProc("GetFileType") -) - -func init() { - // Check if GetFileInformationByHandleEx is available. - if procGetFileInformationByHandleEx.Find() != nil { - procGetFileInformationByHandleEx = nil - } -} - -// IsTerminal return true if the file descriptor is terminal. -func IsTerminal(fd uintptr) bool { - var st uint32 - r, _, e := syscall.Syscall(procGetConsoleMode.Addr(), 2, fd, uintptr(unsafe.Pointer(&st)), 0) - return r != 0 && e == 0 -} - -// Check pipe name is used for cygwin/msys2 pty. -// Cygwin/MSYS2 PTY has a name like: -// \{cygwin,msys}-XXXXXXXXXXXXXXXX-ptyN-{from,to}-master -func isCygwinPipeName(name string) bool { - token := strings.Split(name, "-") - if len(token) < 5 { - return false - } - - if token[0] != `\msys` && token[0] != `\cygwin` { - return false - } - - if token[1] == "" { - return false - } - - if !strings.HasPrefix(token[2], "pty") { - return false - } - - if token[3] != `from` && token[3] != `to` { - return false - } - - if token[4] != "master" { - return false - } - - return true -} - -// IsCygwinTerminal() return true if the file descriptor is a cygwin or msys2 -// terminal. -func IsCygwinTerminal(fd uintptr) bool { - if procGetFileInformationByHandleEx == nil { - return false - } - - // Cygwin/msys's pty is a pipe. - ft, _, e := syscall.Syscall(procGetFileType.Addr(), 1, fd, 0, 0) - if ft != fileTypePipe || e != 0 { - return false - } - - var buf [2 + syscall.MAX_PATH]uint16 - r, _, e := syscall.Syscall6(procGetFileInformationByHandleEx.Addr(), - 4, fd, fileNameInfo, uintptr(unsafe.Pointer(&buf)), - uintptr(len(buf)*2), 0, 0) - if r == 0 || e != 0 { - return false - } - - l := *(*uint32)(unsafe.Pointer(&buf)) - return isCygwinPipeName(string(utf16.Decode(buf[2 : 2+l/2]))) -} diff --git a/vendor/github.com/mitchellh/go-homedir/LICENSE b/vendor/github.com/mitchellh/go-homedir/LICENSE deleted file mode 100644 index f9c841a..0000000 --- a/vendor/github.com/mitchellh/go-homedir/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013 Mitchell Hashimoto - -Permission 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: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE 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. diff --git a/vendor/github.com/mitchellh/go-homedir/README.md b/vendor/github.com/mitchellh/go-homedir/README.md deleted file mode 100644 index d70706d..0000000 --- a/vendor/github.com/mitchellh/go-homedir/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# go-homedir - -This is a Go library for detecting the user's home directory without -the use of cgo, so the library can be used in cross-compilation environments. - -Usage is incredibly simple, just call `homedir.Dir()` to get the home directory -for a user, and `homedir.Expand()` to expand the `~` in a path to the home -directory. - -**Why not just use `os/user`?** The built-in `os/user` package requires -cgo on Darwin systems. This means that any Go code that uses that package -cannot cross compile. But 99% of the time the use for `os/user` is just to -retrieve the home directory, which we can do for the current user without -cgo. This library does that, enabling cross-compilation. diff --git a/vendor/github.com/mitchellh/go-homedir/homedir.go b/vendor/github.com/mitchellh/go-homedir/homedir.go deleted file mode 100644 index 47e1f9e..0000000 --- a/vendor/github.com/mitchellh/go-homedir/homedir.go +++ /dev/null @@ -1,137 +0,0 @@ -package homedir - -import ( - "bytes" - "errors" - "os" - "os/exec" - "path/filepath" - "runtime" - "strconv" - "strings" - "sync" -) - -// DisableCache will disable caching of the home directory. Caching is enabled -// by default. -var DisableCache bool - -var homedirCache string -var cacheLock sync.RWMutex - -// Dir returns the home directory for the executing user. -// -// This uses an OS-specific method for discovering the home directory. -// An error is returned if a home directory cannot be detected. -func Dir() (string, error) { - if !DisableCache { - cacheLock.RLock() - cached := homedirCache - cacheLock.RUnlock() - if cached != "" { - return cached, nil - } - } - - cacheLock.Lock() - defer cacheLock.Unlock() - - var result string - var err error - if runtime.GOOS == "windows" { - result, err = dirWindows() - } else { - // Unix-like system, so just assume Unix - result, err = dirUnix() - } - - if err != nil { - return "", err - } - homedirCache = result - return result, nil -} - -// Expand expands the path to include the home directory if the path -// is prefixed with `~`. If it isn't prefixed with `~`, the path is -// returned as-is. -func Expand(path string) (string, error) { - if len(path) == 0 { - return path, nil - } - - if path[0] != '~' { - return path, nil - } - - if len(path) > 1 && path[1] != '/' && path[1] != '\\' { - return "", errors.New("cannot expand user-specific home dir") - } - - dir, err := Dir() - if err != nil { - return "", err - } - - return filepath.Join(dir, path[1:]), nil -} - -func dirUnix() (string, error) { - // First prefer the HOME environmental variable - if home := os.Getenv("HOME"); home != "" { - return home, nil - } - - // If that fails, try getent - var stdout bytes.Buffer - cmd := exec.Command("getent", "passwd", strconv.Itoa(os.Getuid())) - cmd.Stdout = &stdout - if err := cmd.Run(); err != nil { - // If the error is ErrNotFound, we ignore it. Otherwise, return it. - if err != exec.ErrNotFound { - return "", err - } - } else { - if passwd := strings.TrimSpace(stdout.String()); passwd != "" { - // username:password:uid:gid:gecos:home:shell - passwdParts := strings.SplitN(passwd, ":", 7) - if len(passwdParts) > 5 { - return passwdParts[5], nil - } - } - } - - // If all else fails, try the shell - stdout.Reset() - cmd = exec.Command("sh", "-c", "cd && pwd") - cmd.Stdout = &stdout - if err := cmd.Run(); err != nil { - return "", err - } - - result := strings.TrimSpace(stdout.String()) - if result == "" { - return "", errors.New("blank output when reading home directory") - } - - return result, nil -} - -func dirWindows() (string, error) { - // First prefer the HOME environmental variable - if home := os.Getenv("HOME"); home != "" { - return home, nil - } - - drive := os.Getenv("HOMEDRIVE") - path := os.Getenv("HOMEPATH") - home := drive + path - if drive == "" || path == "" { - home = os.Getenv("USERPROFILE") - } - if home == "" { - return "", errors.New("HOMEDRIVE, HOMEPATH, and USERPROFILE are blank") - } - - return home, nil -} diff --git a/vendor/github.com/mitchellh/mapstructure/LICENSE b/vendor/github.com/mitchellh/mapstructure/LICENSE deleted file mode 100644 index f9c841a..0000000 --- a/vendor/github.com/mitchellh/mapstructure/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013 Mitchell Hashimoto - -Permission 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: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE 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. diff --git a/vendor/github.com/mitchellh/mapstructure/README.md b/vendor/github.com/mitchellh/mapstructure/README.md deleted file mode 100644 index 659d688..0000000 --- a/vendor/github.com/mitchellh/mapstructure/README.md +++ /dev/null @@ -1,46 +0,0 @@ -# mapstructure - -mapstructure is a Go library for decoding generic map values to structures -and vice versa, while providing helpful error handling. - -This library is most useful when decoding values from some data stream (JSON, -Gob, etc.) where you don't _quite_ know the structure of the underlying data -until you read a part of it. You can therefore read a `map[string]interface{}` -and use this library to decode it into the proper underlying native Go -structure. - -## Installation - -Standard `go get`: - -``` -$ go get github.com/mitchellh/mapstructure -``` - -## Usage & Example - -For usage and examples see the [Godoc](http://godoc.org/github.com/mitchellh/mapstructure). - -The `Decode` function has examples associated with it there. - -## But Why?! - -Go offers fantastic standard libraries for decoding formats such as JSON. -The standard method is to have a struct pre-created, and populate that struct -from the bytes of the encoded format. This is great, but the problem is if -you have configuration or an encoding that changes slightly depending on -specific fields. For example, consider this JSON: - -```json -{ - "type": "person", - "name": "Mitchell" -} -``` - -Perhaps we can't populate a specific structure without first reading -the "type" field from the JSON. We could always do two passes over the -decoding of the JSON (reading the "type" first, and the rest later). -However, it is much simpler to just decode this into a `map[string]interface{}` -structure, read the "type" key, then use something like this library -to decode it into the proper structure. diff --git a/vendor/github.com/mitchellh/mapstructure/decode_hooks.go b/vendor/github.com/mitchellh/mapstructure/decode_hooks.go deleted file mode 100644 index afcfd5e..0000000 --- a/vendor/github.com/mitchellh/mapstructure/decode_hooks.go +++ /dev/null @@ -1,152 +0,0 @@ -package mapstructure - -import ( - "errors" - "reflect" - "strconv" - "strings" - "time" -) - -// typedDecodeHook takes a raw DecodeHookFunc (an interface{}) and turns -// it into the proper DecodeHookFunc type, such as DecodeHookFuncType. -func typedDecodeHook(h DecodeHookFunc) DecodeHookFunc { - // Create variables here so we can reference them with the reflect pkg - var f1 DecodeHookFuncType - var f2 DecodeHookFuncKind - - // Fill in the variables into this interface and the rest is done - // automatically using the reflect package. - potential := []interface{}{f1, f2} - - v := reflect.ValueOf(h) - vt := v.Type() - for _, raw := range potential { - pt := reflect.ValueOf(raw).Type() - if vt.ConvertibleTo(pt) { - return v.Convert(pt).Interface() - } - } - - return nil -} - -// DecodeHookExec executes the given decode hook. This should be used -// since it'll naturally degrade to the older backwards compatible DecodeHookFunc -// that took reflect.Kind instead of reflect.Type. -func DecodeHookExec( - raw DecodeHookFunc, - from reflect.Type, to reflect.Type, - data interface{}) (interface{}, error) { - switch f := typedDecodeHook(raw).(type) { - case DecodeHookFuncType: - return f(from, to, data) - case DecodeHookFuncKind: - return f(from.Kind(), to.Kind(), data) - default: - return nil, errors.New("invalid decode hook signature") - } -} - -// ComposeDecodeHookFunc creates a single DecodeHookFunc that -// automatically composes multiple DecodeHookFuncs. -// -// The composed funcs are called in order, with the result of the -// previous transformation. -func ComposeDecodeHookFunc(fs ...DecodeHookFunc) DecodeHookFunc { - return func( - f reflect.Type, - t reflect.Type, - data interface{}) (interface{}, error) { - var err error - for _, f1 := range fs { - data, err = DecodeHookExec(f1, f, t, data) - if err != nil { - return nil, err - } - - // Modify the from kind to be correct with the new data - f = nil - if val := reflect.ValueOf(data); val.IsValid() { - f = val.Type() - } - } - - return data, nil - } -} - -// StringToSliceHookFunc returns a DecodeHookFunc that converts -// string to []string by splitting on the given sep. -func StringToSliceHookFunc(sep string) DecodeHookFunc { - return func( - f reflect.Kind, - t reflect.Kind, - data interface{}) (interface{}, error) { - if f != reflect.String || t != reflect.Slice { - return data, nil - } - - raw := data.(string) - if raw == "" { - return []string{}, nil - } - - return strings.Split(raw, sep), nil - } -} - -// StringToTimeDurationHookFunc returns a DecodeHookFunc that converts -// strings to time.Duration. -func StringToTimeDurationHookFunc() DecodeHookFunc { - return func( - f reflect.Type, - t reflect.Type, - data interface{}) (interface{}, error) { - if f.Kind() != reflect.String { - return data, nil - } - if t != reflect.TypeOf(time.Duration(5)) { - return data, nil - } - - // Convert it by parsing - return time.ParseDuration(data.(string)) - } -} - -// WeaklyTypedHook is a DecodeHookFunc which adds support for weak typing to -// the decoder. -// -// Note that this is significantly different from the WeaklyTypedInput option -// of the DecoderConfig. -func WeaklyTypedHook( - f reflect.Kind, - t reflect.Kind, - data interface{}) (interface{}, error) { - dataVal := reflect.ValueOf(data) - switch t { - case reflect.String: - switch f { - case reflect.Bool: - if dataVal.Bool() { - return "1", nil - } - return "0", nil - case reflect.Float32: - return strconv.FormatFloat(dataVal.Float(), 'f', -1, 64), nil - case reflect.Int: - return strconv.FormatInt(dataVal.Int(), 10), nil - case reflect.Slice: - dataType := dataVal.Type() - elemKind := dataType.Elem().Kind() - if elemKind == reflect.Uint8 { - return string(dataVal.Interface().([]uint8)), nil - } - case reflect.Uint: - return strconv.FormatUint(dataVal.Uint(), 10), nil - } - } - - return data, nil -} diff --git a/vendor/github.com/mitchellh/mapstructure/error.go b/vendor/github.com/mitchellh/mapstructure/error.go deleted file mode 100644 index 47a99e5..0000000 --- a/vendor/github.com/mitchellh/mapstructure/error.go +++ /dev/null @@ -1,50 +0,0 @@ -package mapstructure - -import ( - "errors" - "fmt" - "sort" - "strings" -) - -// Error implements the error interface and can represents multiple -// errors that occur in the course of a single decode. -type Error struct { - Errors []string -} - -func (e *Error) Error() string { - points := make([]string, len(e.Errors)) - for i, err := range e.Errors { - points[i] = fmt.Sprintf("* %s", err) - } - - sort.Strings(points) - return fmt.Sprintf( - "%d error(s) decoding:\n\n%s", - len(e.Errors), strings.Join(points, "\n")) -} - -// WrappedErrors implements the errwrap.Wrapper interface to make this -// return value more useful with the errwrap and go-multierror libraries. -func (e *Error) WrappedErrors() []error { - if e == nil { - return nil - } - - result := make([]error, len(e.Errors)) - for i, e := range e.Errors { - result[i] = errors.New(e) - } - - return result -} - -func appendErrors(errors []string, err error) []string { - switch e := err.(type) { - case *Error: - return append(errors, e.Errors...) - default: - return append(errors, e.Error()) - } -} diff --git a/vendor/github.com/mitchellh/mapstructure/mapstructure.go b/vendor/github.com/mitchellh/mapstructure/mapstructure.go deleted file mode 100644 index 6ec5c33..0000000 --- a/vendor/github.com/mitchellh/mapstructure/mapstructure.go +++ /dev/null @@ -1,828 +0,0 @@ -// Package mapstructure exposes functionality to convert an arbitrary -// map[string]interface{} into a native Go structure. -// -// The Go structure can be arbitrarily complex, containing slices, -// other structs, etc. and the decoder will properly decode nested -// maps and so on into the proper structures in the native Go struct. -// See the examples to see what the decoder is capable of. -package mapstructure - -import ( - "encoding/json" - "errors" - "fmt" - "reflect" - "sort" - "strconv" - "strings" -) - -// DecodeHookFunc is the callback function that can be used for -// data transformations. See "DecodeHook" in the DecoderConfig -// struct. -// -// The type should be DecodeHookFuncType or DecodeHookFuncKind. -// Either is accepted. Types are a superset of Kinds (Types can return -// Kinds) and are generally a richer thing to use, but Kinds are simpler -// if you only need those. -// -// The reason DecodeHookFunc is multi-typed is for backwards compatibility: -// we started with Kinds and then realized Types were the better solution, -// but have a promise to not break backwards compat so we now support -// both. -type DecodeHookFunc interface{} - -// DecodeHookFuncType is a DecodeHookFunc which has complete information about -// the source and target types. -type DecodeHookFuncType func(reflect.Type, reflect.Type, interface{}) (interface{}, error) - -// DecodeHookFuncKind is a DecodeHookFunc which knows only the Kinds of the -// source and target types. -type DecodeHookFuncKind func(reflect.Kind, reflect.Kind, interface{}) (interface{}, error) - -// DecoderConfig is the configuration that is used to create a new decoder -// and allows customization of various aspects of decoding. -type DecoderConfig struct { - // DecodeHook, if set, will be called before any decoding and any - // type conversion (if WeaklyTypedInput is on). This lets you modify - // the values before they're set down onto the resulting struct. - // - // If an error is returned, the entire decode will fail with that - // error. - DecodeHook DecodeHookFunc - - // If ErrorUnused is true, then it is an error for there to exist - // keys in the original map that were unused in the decoding process - // (extra keys). - ErrorUnused bool - - // ZeroFields, if set to true, will zero fields before writing them. - // For example, a map will be emptied before decoded values are put in - // it. If this is false, a map will be merged. - ZeroFields bool - - // If WeaklyTypedInput is true, the decoder will make the following - // "weak" conversions: - // - // - bools to string (true = "1", false = "0") - // - numbers to string (base 10) - // - bools to int/uint (true = 1, false = 0) - // - strings to int/uint (base implied by prefix) - // - int to bool (true if value != 0) - // - string to bool (accepts: 1, t, T, TRUE, true, True, 0, f, F, - // FALSE, false, False. Anything else is an error) - // - empty array = empty map and vice versa - // - negative numbers to overflowed uint values (base 10) - // - slice of maps to a merged map - // - single values are converted to slices if required. Each - // element is weakly decoded. For example: "4" can become []int{4} - // if the target type is an int slice. - // - WeaklyTypedInput bool - - // Metadata is the struct that will contain extra metadata about - // the decoding. If this is nil, then no metadata will be tracked. - Metadata *Metadata - - // Result is a pointer to the struct that will contain the decoded - // value. - Result interface{} - - // The tag name that mapstructure reads for field names. This - // defaults to "mapstructure" - TagName string -} - -// A Decoder takes a raw interface value and turns it into structured -// data, keeping track of rich error information along the way in case -// anything goes wrong. Unlike the basic top-level Decode method, you can -// more finely control how the Decoder behaves using the DecoderConfig -// structure. The top-level Decode method is just a convenience that sets -// up the most basic Decoder. -type Decoder struct { - config *DecoderConfig -} - -// Metadata contains information about decoding a structure that -// is tedious or difficult to get otherwise. -type Metadata struct { - // Keys are the keys of the structure which were successfully decoded - Keys []string - - // Unused is a slice of keys that were found in the raw value but - // weren't decoded since there was no matching field in the result interface - Unused []string -} - -// Decode takes a map and uses reflection to convert it into the -// given Go native structure. val must be a pointer to a struct. -func Decode(m interface{}, rawVal interface{}) error { - config := &DecoderConfig{ - Metadata: nil, - Result: rawVal, - } - - decoder, err := NewDecoder(config) - if err != nil { - return err - } - - return decoder.Decode(m) -} - -// WeakDecode is the same as Decode but is shorthand to enable -// WeaklyTypedInput. See DecoderConfig for more info. -func WeakDecode(input, output interface{}) error { - config := &DecoderConfig{ - Metadata: nil, - Result: output, - WeaklyTypedInput: true, - } - - decoder, err := NewDecoder(config) - if err != nil { - return err - } - - return decoder.Decode(input) -} - -// NewDecoder returns a new decoder for the given configuration. Once -// a decoder has been returned, the same configuration must not be used -// again. -func NewDecoder(config *DecoderConfig) (*Decoder, error) { - val := reflect.ValueOf(config.Result) - if val.Kind() != reflect.Ptr { - return nil, errors.New("result must be a pointer") - } - - val = val.Elem() - if !val.CanAddr() { - return nil, errors.New("result must be addressable (a pointer)") - } - - if config.Metadata != nil { - if config.Metadata.Keys == nil { - config.Metadata.Keys = make([]string, 0) - } - - if config.Metadata.Unused == nil { - config.Metadata.Unused = make([]string, 0) - } - } - - if config.TagName == "" { - config.TagName = "mapstructure" - } - - result := &Decoder{ - config: config, - } - - return result, nil -} - -// Decode decodes the given raw interface to the target pointer specified -// by the configuration. -func (d *Decoder) Decode(raw interface{}) error { - return d.decode("", raw, reflect.ValueOf(d.config.Result).Elem()) -} - -// Decodes an unknown data type into a specific reflection value. -func (d *Decoder) decode(name string, data interface{}, val reflect.Value) error { - if data == nil { - // If the data is nil, then we don't set anything. - return nil - } - - dataVal := reflect.ValueOf(data) - if !dataVal.IsValid() { - // If the data value is invalid, then we just set the value - // to be the zero value. - val.Set(reflect.Zero(val.Type())) - return nil - } - - if d.config.DecodeHook != nil { - // We have a DecodeHook, so let's pre-process the data. - var err error - data, err = DecodeHookExec( - d.config.DecodeHook, - dataVal.Type(), val.Type(), data) - if err != nil { - return fmt.Errorf("error decoding '%s': %s", name, err) - } - } - - var err error - dataKind := getKind(val) - switch dataKind { - case reflect.Bool: - err = d.decodeBool(name, data, val) - case reflect.Interface: - err = d.decodeBasic(name, data, val) - case reflect.String: - err = d.decodeString(name, data, val) - case reflect.Int: - err = d.decodeInt(name, data, val) - case reflect.Uint: - err = d.decodeUint(name, data, val) - case reflect.Float32: - err = d.decodeFloat(name, data, val) - case reflect.Struct: - err = d.decodeStruct(name, data, val) - case reflect.Map: - err = d.decodeMap(name, data, val) - case reflect.Ptr: - err = d.decodePtr(name, data, val) - case reflect.Slice: - err = d.decodeSlice(name, data, val) - case reflect.Func: - err = d.decodeFunc(name, data, val) - default: - // If we reached this point then we weren't able to decode it - return fmt.Errorf("%s: unsupported type: %s", name, dataKind) - } - - // If we reached here, then we successfully decoded SOMETHING, so - // mark the key as used if we're tracking metadata. - if d.config.Metadata != nil && name != "" { - d.config.Metadata.Keys = append(d.config.Metadata.Keys, name) - } - - return err -} - -// This decodes a basic type (bool, int, string, etc.) and sets the -// value to "data" of that type. -func (d *Decoder) decodeBasic(name string, data interface{}, val reflect.Value) error { - dataVal := reflect.ValueOf(data) - if !dataVal.IsValid() { - dataVal = reflect.Zero(val.Type()) - } - - dataValType := dataVal.Type() - if !dataValType.AssignableTo(val.Type()) { - return fmt.Errorf( - "'%s' expected type '%s', got '%s'", - name, val.Type(), dataValType) - } - - val.Set(dataVal) - return nil -} - -func (d *Decoder) decodeString(name string, data interface{}, val reflect.Value) error { - dataVal := reflect.ValueOf(data) - dataKind := getKind(dataVal) - - converted := true - switch { - case dataKind == reflect.String: - val.SetString(dataVal.String()) - case dataKind == reflect.Bool && d.config.WeaklyTypedInput: - if dataVal.Bool() { - val.SetString("1") - } else { - val.SetString("0") - } - case dataKind == reflect.Int && d.config.WeaklyTypedInput: - val.SetString(strconv.FormatInt(dataVal.Int(), 10)) - case dataKind == reflect.Uint && d.config.WeaklyTypedInput: - val.SetString(strconv.FormatUint(dataVal.Uint(), 10)) - case dataKind == reflect.Float32 && d.config.WeaklyTypedInput: - val.SetString(strconv.FormatFloat(dataVal.Float(), 'f', -1, 64)) - case dataKind == reflect.Slice && d.config.WeaklyTypedInput: - dataType := dataVal.Type() - elemKind := dataType.Elem().Kind() - switch { - case elemKind == reflect.Uint8: - val.SetString(string(dataVal.Interface().([]uint8))) - default: - converted = false - } - default: - converted = false - } - - if !converted { - return fmt.Errorf( - "'%s' expected type '%s', got unconvertible type '%s'", - name, val.Type(), dataVal.Type()) - } - - return nil -} - -func (d *Decoder) decodeInt(name string, data interface{}, val reflect.Value) error { - dataVal := reflect.ValueOf(data) - dataKind := getKind(dataVal) - dataType := dataVal.Type() - - switch { - case dataKind == reflect.Int: - val.SetInt(dataVal.Int()) - case dataKind == reflect.Uint: - val.SetInt(int64(dataVal.Uint())) - case dataKind == reflect.Float32: - val.SetInt(int64(dataVal.Float())) - case dataKind == reflect.Bool && d.config.WeaklyTypedInput: - if dataVal.Bool() { - val.SetInt(1) - } else { - val.SetInt(0) - } - case dataKind == reflect.String && d.config.WeaklyTypedInput: - i, err := strconv.ParseInt(dataVal.String(), 0, val.Type().Bits()) - if err == nil { - val.SetInt(i) - } else { - return fmt.Errorf("cannot parse '%s' as int: %s", name, err) - } - case dataType.PkgPath() == "encoding/json" && dataType.Name() == "Number": - jn := data.(json.Number) - i, err := jn.Int64() - if err != nil { - return fmt.Errorf( - "error decoding json.Number into %s: %s", name, err) - } - val.SetInt(i) - default: - return fmt.Errorf( - "'%s' expected type '%s', got unconvertible type '%s'", - name, val.Type(), dataVal.Type()) - } - - return nil -} - -func (d *Decoder) decodeUint(name string, data interface{}, val reflect.Value) error { - dataVal := reflect.ValueOf(data) - dataKind := getKind(dataVal) - - switch { - case dataKind == reflect.Int: - i := dataVal.Int() - if i < 0 && !d.config.WeaklyTypedInput { - return fmt.Errorf("cannot parse '%s', %d overflows uint", - name, i) - } - val.SetUint(uint64(i)) - case dataKind == reflect.Uint: - val.SetUint(dataVal.Uint()) - case dataKind == reflect.Float32: - f := dataVal.Float() - if f < 0 && !d.config.WeaklyTypedInput { - return fmt.Errorf("cannot parse '%s', %f overflows uint", - name, f) - } - val.SetUint(uint64(f)) - case dataKind == reflect.Bool && d.config.WeaklyTypedInput: - if dataVal.Bool() { - val.SetUint(1) - } else { - val.SetUint(0) - } - case dataKind == reflect.String && d.config.WeaklyTypedInput: - i, err := strconv.ParseUint(dataVal.String(), 0, val.Type().Bits()) - if err == nil { - val.SetUint(i) - } else { - return fmt.Errorf("cannot parse '%s' as uint: %s", name, err) - } - default: - return fmt.Errorf( - "'%s' expected type '%s', got unconvertible type '%s'", - name, val.Type(), dataVal.Type()) - } - - return nil -} - -func (d *Decoder) decodeBool(name string, data interface{}, val reflect.Value) error { - dataVal := reflect.ValueOf(data) - dataKind := getKind(dataVal) - - switch { - case dataKind == reflect.Bool: - val.SetBool(dataVal.Bool()) - case dataKind == reflect.Int && d.config.WeaklyTypedInput: - val.SetBool(dataVal.Int() != 0) - case dataKind == reflect.Uint && d.config.WeaklyTypedInput: - val.SetBool(dataVal.Uint() != 0) - case dataKind == reflect.Float32 && d.config.WeaklyTypedInput: - val.SetBool(dataVal.Float() != 0) - case dataKind == reflect.String && d.config.WeaklyTypedInput: - b, err := strconv.ParseBool(dataVal.String()) - if err == nil { - val.SetBool(b) - } else if dataVal.String() == "" { - val.SetBool(false) - } else { - return fmt.Errorf("cannot parse '%s' as bool: %s", name, err) - } - default: - return fmt.Errorf( - "'%s' expected type '%s', got unconvertible type '%s'", - name, val.Type(), dataVal.Type()) - } - - return nil -} - -func (d *Decoder) decodeFloat(name string, data interface{}, val reflect.Value) error { - dataVal := reflect.ValueOf(data) - dataKind := getKind(dataVal) - dataType := dataVal.Type() - - switch { - case dataKind == reflect.Int: - val.SetFloat(float64(dataVal.Int())) - case dataKind == reflect.Uint: - val.SetFloat(float64(dataVal.Uint())) - case dataKind == reflect.Float32: - val.SetFloat(dataVal.Float()) - case dataKind == reflect.Bool && d.config.WeaklyTypedInput: - if dataVal.Bool() { - val.SetFloat(1) - } else { - val.SetFloat(0) - } - case dataKind == reflect.String && d.config.WeaklyTypedInput: - f, err := strconv.ParseFloat(dataVal.String(), val.Type().Bits()) - if err == nil { - val.SetFloat(f) - } else { - return fmt.Errorf("cannot parse '%s' as float: %s", name, err) - } - case dataType.PkgPath() == "encoding/json" && dataType.Name() == "Number": - jn := data.(json.Number) - i, err := jn.Float64() - if err != nil { - return fmt.Errorf( - "error decoding json.Number into %s: %s", name, err) - } - val.SetFloat(i) - default: - return fmt.Errorf( - "'%s' expected type '%s', got unconvertible type '%s'", - name, val.Type(), dataVal.Type()) - } - - return nil -} - -func (d *Decoder) decodeMap(name string, data interface{}, val reflect.Value) error { - valType := val.Type() - valKeyType := valType.Key() - valElemType := valType.Elem() - - // By default we overwrite keys in the current map - valMap := val - - // If the map is nil or we're purposely zeroing fields, make a new map - if valMap.IsNil() || d.config.ZeroFields { - // Make a new map to hold our result - mapType := reflect.MapOf(valKeyType, valElemType) - valMap = reflect.MakeMap(mapType) - } - - // Check input type - dataVal := reflect.Indirect(reflect.ValueOf(data)) - if dataVal.Kind() != reflect.Map { - // In weak mode, we accept a slice of maps as an input... - if d.config.WeaklyTypedInput { - switch dataVal.Kind() { - case reflect.Array, reflect.Slice: - // Special case for BC reasons (covered by tests) - if dataVal.Len() == 0 { - val.Set(valMap) - return nil - } - - for i := 0; i < dataVal.Len(); i++ { - err := d.decode( - fmt.Sprintf("%s[%d]", name, i), - dataVal.Index(i).Interface(), val) - if err != nil { - return err - } - } - - return nil - } - } - - return fmt.Errorf("'%s' expected a map, got '%s'", name, dataVal.Kind()) - } - - // Accumulate errors - errors := make([]string, 0) - - for _, k := range dataVal.MapKeys() { - fieldName := fmt.Sprintf("%s[%s]", name, k) - - // First decode the key into the proper type - currentKey := reflect.Indirect(reflect.New(valKeyType)) - if err := d.decode(fieldName, k.Interface(), currentKey); err != nil { - errors = appendErrors(errors, err) - continue - } - - // Next decode the data into the proper type - v := dataVal.MapIndex(k).Interface() - currentVal := reflect.Indirect(reflect.New(valElemType)) - if err := d.decode(fieldName, v, currentVal); err != nil { - errors = appendErrors(errors, err) - continue - } - - valMap.SetMapIndex(currentKey, currentVal) - } - - // Set the built up map to the value - val.Set(valMap) - - // If we had errors, return those - if len(errors) > 0 { - return &Error{errors} - } - - return nil -} - -func (d *Decoder) decodePtr(name string, data interface{}, val reflect.Value) error { - // Create an element of the concrete (non pointer) type and decode - // into that. Then set the value of the pointer to this type. - valType := val.Type() - valElemType := valType.Elem() - - realVal := val - if realVal.IsNil() || d.config.ZeroFields { - realVal = reflect.New(valElemType) - } - - if err := d.decode(name, data, reflect.Indirect(realVal)); err != nil { - return err - } - - val.Set(realVal) - return nil -} - -func (d *Decoder) decodeFunc(name string, data interface{}, val reflect.Value) error { - // Create an element of the concrete (non pointer) type and decode - // into that. Then set the value of the pointer to this type. - dataVal := reflect.Indirect(reflect.ValueOf(data)) - if val.Type() != dataVal.Type() { - return fmt.Errorf( - "'%s' expected type '%s', got unconvertible type '%s'", - name, val.Type(), dataVal.Type()) - } - val.Set(dataVal) - return nil -} - -func (d *Decoder) decodeSlice(name string, data interface{}, val reflect.Value) error { - dataVal := reflect.Indirect(reflect.ValueOf(data)) - dataValKind := dataVal.Kind() - valType := val.Type() - valElemType := valType.Elem() - sliceType := reflect.SliceOf(valElemType) - - valSlice := val - if valSlice.IsNil() || d.config.ZeroFields { - // Check input type - if dataValKind != reflect.Array && dataValKind != reflect.Slice { - if d.config.WeaklyTypedInput { - switch { - // Empty maps turn into empty slices - case dataValKind == reflect.Map: - if dataVal.Len() == 0 { - val.Set(reflect.MakeSlice(sliceType, 0, 0)) - return nil - } - - // All other types we try to convert to the slice type - // and "lift" it into it. i.e. a string becomes a string slice. - default: - // Just re-try this function with data as a slice. - return d.decodeSlice(name, []interface{}{data}, val) - } - } - - return fmt.Errorf( - "'%s': source data must be an array or slice, got %s", name, dataValKind) - - } - - // Make a new slice to hold our result, same size as the original data. - valSlice = reflect.MakeSlice(sliceType, dataVal.Len(), dataVal.Len()) - } - - // Accumulate any errors - errors := make([]string, 0) - - for i := 0; i < dataVal.Len(); i++ { - currentData := dataVal.Index(i).Interface() - for valSlice.Len() <= i { - valSlice = reflect.Append(valSlice, reflect.Zero(valElemType)) - } - currentField := valSlice.Index(i) - - fieldName := fmt.Sprintf("%s[%d]", name, i) - if err := d.decode(fieldName, currentData, currentField); err != nil { - errors = appendErrors(errors, err) - } - } - - // Finally, set the value to the slice we built up - val.Set(valSlice) - - // If there were errors, we return those - if len(errors) > 0 { - return &Error{errors} - } - - return nil -} - -func (d *Decoder) decodeStruct(name string, data interface{}, val reflect.Value) error { - dataVal := reflect.Indirect(reflect.ValueOf(data)) - - // If the type of the value to write to and the data match directly, - // then we just set it directly instead of recursing into the structure. - if dataVal.Type() == val.Type() { - val.Set(dataVal) - return nil - } - - dataValKind := dataVal.Kind() - if dataValKind != reflect.Map { - return fmt.Errorf("'%s' expected a map, got '%s'", name, dataValKind) - } - - dataValType := dataVal.Type() - if kind := dataValType.Key().Kind(); kind != reflect.String && kind != reflect.Interface { - return fmt.Errorf( - "'%s' needs a map with string keys, has '%s' keys", - name, dataValType.Key().Kind()) - } - - dataValKeys := make(map[reflect.Value]struct{}) - dataValKeysUnused := make(map[interface{}]struct{}) - for _, dataValKey := range dataVal.MapKeys() { - dataValKeys[dataValKey] = struct{}{} - dataValKeysUnused[dataValKey.Interface()] = struct{}{} - } - - errors := make([]string, 0) - - // This slice will keep track of all the structs we'll be decoding. - // There can be more than one struct if there are embedded structs - // that are squashed. - structs := make([]reflect.Value, 1, 5) - structs[0] = val - - // Compile the list of all the fields that we're going to be decoding - // from all the structs. - fields := make(map[*reflect.StructField]reflect.Value) - for len(structs) > 0 { - structVal := structs[0] - structs = structs[1:] - - structType := structVal.Type() - - for i := 0; i < structType.NumField(); i++ { - fieldType := structType.Field(i) - fieldKind := fieldType.Type.Kind() - - // If "squash" is specified in the tag, we squash the field down. - squash := false - tagParts := strings.Split(fieldType.Tag.Get(d.config.TagName), ",") - for _, tag := range tagParts[1:] { - if tag == "squash" { - squash = true - break - } - } - - if squash { - if fieldKind != reflect.Struct { - errors = appendErrors(errors, - fmt.Errorf("%s: unsupported type for squash: %s", fieldType.Name, fieldKind)) - } else { - structs = append(structs, val.FieldByName(fieldType.Name)) - } - continue - } - - // Normal struct field, store it away - fields[&fieldType] = structVal.Field(i) - } - } - - for fieldType, field := range fields { - fieldName := fieldType.Name - - tagValue := fieldType.Tag.Get(d.config.TagName) - tagValue = strings.SplitN(tagValue, ",", 2)[0] - if tagValue != "" { - fieldName = tagValue - } - - rawMapKey := reflect.ValueOf(fieldName) - rawMapVal := dataVal.MapIndex(rawMapKey) - if !rawMapVal.IsValid() { - // Do a slower search by iterating over each key and - // doing case-insensitive search. - for dataValKey := range dataValKeys { - mK, ok := dataValKey.Interface().(string) - if !ok { - // Not a string key - continue - } - - if strings.EqualFold(mK, fieldName) { - rawMapKey = dataValKey - rawMapVal = dataVal.MapIndex(dataValKey) - break - } - } - - if !rawMapVal.IsValid() { - // There was no matching key in the map for the value in - // the struct. Just ignore. - continue - } - } - - // Delete the key we're using from the unused map so we stop tracking - delete(dataValKeysUnused, rawMapKey.Interface()) - - if !field.IsValid() { - // This should never happen - panic("field is not valid") - } - - // If we can't set the field, then it is unexported or something, - // and we just continue onwards. - if !field.CanSet() { - continue - } - - // If the name is empty string, then we're at the root, and we - // don't dot-join the fields. - if name != "" { - fieldName = fmt.Sprintf("%s.%s", name, fieldName) - } - - if err := d.decode(fieldName, rawMapVal.Interface(), field); err != nil { - errors = appendErrors(errors, err) - } - } - - if d.config.ErrorUnused && len(dataValKeysUnused) > 0 { - keys := make([]string, 0, len(dataValKeysUnused)) - for rawKey := range dataValKeysUnused { - keys = append(keys, rawKey.(string)) - } - sort.Strings(keys) - - err := fmt.Errorf("'%s' has invalid keys: %s", name, strings.Join(keys, ", ")) - errors = appendErrors(errors, err) - } - - if len(errors) > 0 { - return &Error{errors} - } - - // Add the unused keys to the list of unused keys if we're tracking metadata - if d.config.Metadata != nil { - for rawKey := range dataValKeysUnused { - key := rawKey.(string) - if name != "" { - key = fmt.Sprintf("%s.%s", name, key) - } - - d.config.Metadata.Unused = append(d.config.Metadata.Unused, key) - } - } - - return nil -} - -func getKind(val reflect.Value) reflect.Kind { - kind := val.Kind() - - switch { - case kind >= reflect.Int && kind <= reflect.Int64: - return reflect.Int - case kind >= reflect.Uint && kind <= reflect.Uint64: - return reflect.Uint - case kind >= reflect.Float32 && kind <= reflect.Float64: - return reflect.Float32 - default: - return kind - } -} diff --git a/vendor/github.com/pelletier/go-toml/LICENSE b/vendor/github.com/pelletier/go-toml/LICENSE deleted file mode 100644 index 583bdae..0000000 --- a/vendor/github.com/pelletier/go-toml/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013 - 2017 Thomas Pelletier, Eric Anderton - -Permission 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: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE 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. diff --git a/vendor/github.com/pelletier/go-toml/README.md b/vendor/github.com/pelletier/go-toml/README.md deleted file mode 100644 index 22da41a..0000000 --- a/vendor/github.com/pelletier/go-toml/README.md +++ /dev/null @@ -1,118 +0,0 @@ -# go-toml - -Go library for the [TOML](https://github.com/mojombo/toml) format. - -This library supports TOML version -[v0.4.0](https://github.com/toml-lang/toml/blob/master/versions/en/toml-v0.4.0.md) - -[![GoDoc](https://godoc.org/github.com/pelletier/go-toml?status.svg)](http://godoc.org/github.com/pelletier/go-toml) -[![license](https://img.shields.io/github/license/pelletier/go-toml.svg)](https://github.com/pelletier/go-toml/blob/master/LICENSE) -[![Build Status](https://travis-ci.org/pelletier/go-toml.svg?branch=master)](https://travis-ci.org/pelletier/go-toml) -[![Coverage Status](https://coveralls.io/repos/github/pelletier/go-toml/badge.svg?branch=master)](https://coveralls.io/github/pelletier/go-toml?branch=master) -[![Go Report Card](https://goreportcard.com/badge/github.com/pelletier/go-toml)](https://goreportcard.com/report/github.com/pelletier/go-toml) - -## Features - -Go-toml provides the following features for using data parsed from TOML documents: - -* Load TOML documents from files and string data -* Easily navigate TOML structure using Tree -* Mashaling and unmarshaling to and from data structures -* Line & column position data for all parsed elements -* [Query support similar to JSON-Path](query/) -* Syntax errors contain line and column numbers - -## Import - -```go -import "github.com/pelletier/go-toml" -``` - -## Usage example - -Read a TOML document: - -```go -config, _ := toml.LoadString(` -[postgres] -user = "pelletier" -password = "mypassword"`) -// retrieve data directly -user := config.Get("postgres.user").(string) - -// or using an intermediate object -postgresConfig := config.Get("postgres").(*toml.Tree) -password = postgresConfig.Get("password").(string) -``` - -Or use Unmarshal: - -```go -type Postgres struct { - User string - Password string -} -type Config struct { - Postgres Postgres -} - -doc := []byte(` -[postgres] -user = "pelletier" -password = "mypassword"`) - -config := Config{} -Unmarshal(doc, &config) -fmt.Println("user=", config.Postgres.User) -``` - -Or use a query: - -```go -// use a query to gather elements without walking the tree -results, _ := config.Query("$..[user,password]") -for ii, item := range results.Values() { - fmt.Println("Query result %d: %v", ii, item) -} -``` - -## Documentation - -The documentation and additional examples are available at -[godoc.org](http://godoc.org/github.com/pelletier/go-toml). - -## Tools - -Go-toml provides two handy command line tools: - -* `tomll`: Reads TOML files and lint them. - - ``` - go install github.com/pelletier/go-toml/cmd/tomll - tomll --help - ``` -* `tomljson`: Reads a TOML file and outputs its JSON representation. - - ``` - go install github.com/pelletier/go-toml/cmd/tomljson - tomljson --help - ``` - -## Contribute - -Feel free to report bugs and patches using GitHub's pull requests system on -[pelletier/go-toml](https://github.com/pelletier/go-toml). Any feedback would be -much appreciated! - -### Run tests - -You have to make sure two kind of tests run: - -1. The Go unit tests -2. The TOML examples base - -You can run both of them using `./test.sh`. - -## License - -The MIT License (MIT). Read [LICENSE](LICENSE). diff --git a/vendor/github.com/pelletier/go-toml/benchmark.json b/vendor/github.com/pelletier/go-toml/benchmark.json deleted file mode 100644 index 86f99c6..0000000 --- a/vendor/github.com/pelletier/go-toml/benchmark.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "array": { - "key1": [ - 1, - 2, - 3 - ], - "key2": [ - "red", - "yellow", - "green" - ], - "key3": [ - [ - 1, - 2 - ], - [ - 3, - 4, - 5 - ] - ], - "key4": [ - [ - 1, - 2 - ], - [ - "a", - "b", - "c" - ] - ], - "key5": [ - 1, - 2, - 3 - ], - "key6": [ - 1, - 2 - ] - }, - "boolean": { - "False": false, - "True": true - }, - "datetime": { - "key1": "1979-05-27T07:32:00Z", - "key2": "1979-05-27T00:32:00-07:00", - "key3": "1979-05-27T00:32:00.999999-07:00" - }, - "float": { - "both": { - "key": 6.626e-34 - }, - "exponent": { - "key1": 5e+22, - "key2": 1000000, - "key3": -0.02 - }, - "fractional": { - "key1": 1, - "key2": 3.1415, - "key3": -0.01 - }, - "underscores": { - "key1": 9224617.445991227, - "key2": 1e+100 - } - }, - "fruit": [{ - "name": "apple", - "physical": { - "color": "red", - "shape": "round" - }, - "variety": [{ - "name": "red delicious" - }, - { - "name": "granny smith" - } - ] - }, - { - "name": "banana", - "variety": [{ - "name": "plantain" - }] - } - ], - "integer": { - "key1": 99, - "key2": 42, - "key3": 0, - "key4": -17, - "underscores": { - "key1": 1000, - "key2": 5349221, - "key3": 12345 - } - }, - "products": [{ - "name": "Hammer", - "sku": 738594937 - }, - {}, - { - "color": "gray", - "name": "Nail", - "sku": 284758393 - } - ], - "string": { - "basic": { - "basic": "I'm a string. \"You can quote me\". Name\tJosé\nLocation\tSF." - }, - "literal": { - "multiline": { - "lines": "The first newline is\ntrimmed in raw strings.\n All other whitespace\n is preserved.\n", - "regex2": "I [dw]on't need \\d{2} apples" - }, - "quoted": "Tom \"Dubs\" Preston-Werner", - "regex": "\u003c\\i\\c*\\s*\u003e", - "winpath": "C:\\Users\\nodejs\\templates", - "winpath2": "\\\\ServerX\\admin$\\system32\\" - }, - "multiline": { - "continued": { - "key1": "The quick brown fox jumps over the lazy dog.", - "key2": "The quick brown fox jumps over the lazy dog.", - "key3": "The quick brown fox jumps over the lazy dog." - }, - "key1": "One\nTwo", - "key2": "One\nTwo", - "key3": "One\nTwo" - } - }, - "table": { - "inline": { - "name": { - "first": "Tom", - "last": "Preston-Werner" - }, - "point": { - "x": 1, - "y": 2 - } - }, - "key": "value", - "subtable": { - "key": "another value" - } - }, - "x": { - "y": { - "z": { - "w": {} - } - } - } -} diff --git a/vendor/github.com/pelletier/go-toml/benchmark.sh b/vendor/github.com/pelletier/go-toml/benchmark.sh deleted file mode 100755 index 8b8bb52..0000000 --- a/vendor/github.com/pelletier/go-toml/benchmark.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash - -set -e - -reference_ref=${1:-master} -reference_git=${2:-.} - -if ! `hash benchstat 2>/dev/null`; then - echo "Installing benchstat" - go get golang.org/x/perf/cmd/benchstat - go install golang.org/x/perf/cmd/benchstat -fi - -tempdir=`mktemp -d /tmp/go-toml-benchmark-XXXXXX` -ref_tempdir="${tempdir}/ref" -ref_benchmark="${ref_tempdir}/benchmark-`echo -n ${reference_ref}|tr -s '/' '-'`.txt" -local_benchmark="`pwd`/benchmark-local.txt" - -echo "=== ${reference_ref} (${ref_tempdir})" -git clone ${reference_git} ${ref_tempdir} >/dev/null 2>/dev/null -pushd ${ref_tempdir} >/dev/null -git checkout ${reference_ref} >/dev/null 2>/dev/null -go test -bench=. -benchmem | tee ${ref_benchmark} -popd >/dev/null - -echo "" -echo "=== local" -go test -bench=. -benchmem | tee ${local_benchmark} - -echo "" -echo "=== diff" -benchstat -delta-test=none ${ref_benchmark} ${local_benchmark} \ No newline at end of file diff --git a/vendor/github.com/pelletier/go-toml/benchmark.toml b/vendor/github.com/pelletier/go-toml/benchmark.toml deleted file mode 100644 index dfd77e0..0000000 --- a/vendor/github.com/pelletier/go-toml/benchmark.toml +++ /dev/null @@ -1,244 +0,0 @@ -################################################################################ -## Comment - -# Speak your mind with the hash symbol. They go from the symbol to the end of -# the line. - - -################################################################################ -## Table - -# Tables (also known as hash tables or dictionaries) are collections of -# key/value pairs. They appear in square brackets on a line by themselves. - -[table] - -key = "value" # Yeah, you can do this. - -# Nested tables are denoted by table names with dots in them. Name your tables -# whatever crap you please, just don't use #, ., [ or ]. - -[table.subtable] - -key = "another value" - -# You don't need to specify all the super-tables if you don't want to. TOML -# knows how to do it for you. - -# [x] you -# [x.y] don't -# [x.y.z] need these -[x.y.z.w] # for this to work - - -################################################################################ -## Inline Table - -# Inline tables provide a more compact syntax for expressing tables. They are -# especially useful for grouped data that can otherwise quickly become verbose. -# Inline tables are enclosed in curly braces `{` and `}`. No newlines are -# allowed between the curly braces unless they are valid within a value. - -[table.inline] - -name = { first = "Tom", last = "Preston-Werner" } -point = { x = 1, y = 2 } - - -################################################################################ -## String - -# There are four ways to express strings: basic, multi-line basic, literal, and -# multi-line literal. All strings must contain only valid UTF-8 characters. - -[string.basic] - -basic = "I'm a string. \"You can quote me\". Name\tJos\u00E9\nLocation\tSF." - -[string.multiline] - -# The following strings are byte-for-byte equivalent: -key1 = "One\nTwo" -key2 = """One\nTwo""" -key3 = """ -One -Two""" - -[string.multiline.continued] - -# The following strings are byte-for-byte equivalent: -key1 = "The quick brown fox jumps over the lazy dog." - -key2 = """ -The quick brown \ - - - fox jumps over \ - the lazy dog.""" - -key3 = """\ - The quick brown \ - fox jumps over \ - the lazy dog.\ - """ - -[string.literal] - -# What you see is what you get. -winpath = 'C:\Users\nodejs\templates' -winpath2 = '\\ServerX\admin$\system32\' -quoted = 'Tom "Dubs" Preston-Werner' -regex = '<\i\c*\s*>' - - -[string.literal.multiline] - -regex2 = '''I [dw]on't need \d{2} apples''' -lines = ''' -The first newline is -trimmed in raw strings. - All other whitespace - is preserved. -''' - - -################################################################################ -## Integer - -# Integers are whole numbers. Positive numbers may be prefixed with a plus sign. -# Negative numbers are prefixed with a minus sign. - -[integer] - -key1 = +99 -key2 = 42 -key3 = 0 -key4 = -17 - -[integer.underscores] - -# For large numbers, you may use underscores to enhance readability. Each -# underscore must be surrounded by at least one digit. -key1 = 1_000 -key2 = 5_349_221 -key3 = 1_2_3_4_5 # valid but inadvisable - - -################################################################################ -## Float - -# A float consists of an integer part (which may be prefixed with a plus or -# minus sign) followed by a fractional part and/or an exponent part. - -[float.fractional] - -key1 = +1.0 -key2 = 3.1415 -key3 = -0.01 - -[float.exponent] - -key1 = 5e+22 -key2 = 1e6 -key3 = -2E-2 - -[float.both] - -key = 6.626e-34 - -[float.underscores] - -key1 = 9_224_617.445_991_228_313 -key2 = 1e1_00 - - -################################################################################ -## Boolean - -# Booleans are just the tokens you're used to. Always lowercase. - -[boolean] - -True = true -False = false - - -################################################################################ -## Datetime - -# Datetimes are RFC 3339 dates. - -[datetime] - -key1 = 1979-05-27T07:32:00Z -key2 = 1979-05-27T00:32:00-07:00 -key3 = 1979-05-27T00:32:00.999999-07:00 - - -################################################################################ -## Array - -# Arrays are square brackets with other primitives inside. Whitespace is -# ignored. Elements are separated by commas. Data types may not be mixed. - -[array] - -key1 = [ 1, 2, 3 ] -key2 = [ "red", "yellow", "green" ] -key3 = [ [ 1, 2 ], [3, 4, 5] ] -#key4 = [ [ 1, 2 ], ["a", "b", "c"] ] # this is ok - -# Arrays can also be multiline. So in addition to ignoring whitespace, arrays -# also ignore newlines between the brackets. Terminating commas are ok before -# the closing bracket. - -key5 = [ - 1, 2, 3 -] -key6 = [ - 1, - 2, # this is ok -] - - -################################################################################ -## Array of Tables - -# These can be expressed by using a table name in double brackets. Each table -# with the same double bracketed name will be an element in the array. The -# tables are inserted in the order encountered. - -[[products]] - -name = "Hammer" -sku = 738594937 - -[[products]] - -[[products]] - -name = "Nail" -sku = 284758393 -color = "gray" - - -# You can create nested arrays of tables as well. - -[[fruit]] - name = "apple" - - [fruit.physical] - color = "red" - shape = "round" - - [[fruit.variety]] - name = "red delicious" - - [[fruit.variety]] - name = "granny smith" - -[[fruit]] - name = "banana" - - [[fruit.variety]] - name = "plantain" diff --git a/vendor/github.com/pelletier/go-toml/benchmark.yml b/vendor/github.com/pelletier/go-toml/benchmark.yml deleted file mode 100644 index 0bd19f0..0000000 --- a/vendor/github.com/pelletier/go-toml/benchmark.yml +++ /dev/null @@ -1,121 +0,0 @@ ---- -array: - key1: - - 1 - - 2 - - 3 - key2: - - red - - yellow - - green - key3: - - - 1 - - 2 - - - 3 - - 4 - - 5 - key4: - - - 1 - - 2 - - - a - - b - - c - key5: - - 1 - - 2 - - 3 - key6: - - 1 - - 2 -boolean: - 'False': false - 'True': true -datetime: - key1: '1979-05-27T07:32:00Z' - key2: '1979-05-27T00:32:00-07:00' - key3: '1979-05-27T00:32:00.999999-07:00' -float: - both: - key: 6.626e-34 - exponent: - key1: 5.0e+22 - key2: 1000000 - key3: -0.02 - fractional: - key1: 1 - key2: 3.1415 - key3: -0.01 - underscores: - key1: 9224617.445991227 - key2: 1.0e+100 -fruit: -- name: apple - physical: - color: red - shape: round - variety: - - name: red delicious - - name: granny smith -- name: banana - variety: - - name: plantain -integer: - key1: 99 - key2: 42 - key3: 0 - key4: -17 - underscores: - key1: 1000 - key2: 5349221 - key3: 12345 -products: -- name: Hammer - sku: 738594937 -- {} -- color: gray - name: Nail - sku: 284758393 -string: - basic: - basic: "I'm a string. \"You can quote me\". Name\tJosé\nLocation\tSF." - literal: - multiline: - lines: | - The first newline is - trimmed in raw strings. - All other whitespace - is preserved. - regex2: I [dw]on't need \d{2} apples - quoted: Tom "Dubs" Preston-Werner - regex: "<\\i\\c*\\s*>" - winpath: C:\Users\nodejs\templates - winpath2: "\\\\ServerX\\admin$\\system32\\" - multiline: - continued: - key1: The quick brown fox jumps over the lazy dog. - key2: The quick brown fox jumps over the lazy dog. - key3: The quick brown fox jumps over the lazy dog. - key1: |- - One - Two - key2: |- - One - Two - key3: |- - One - Two -table: - inline: - name: - first: Tom - last: Preston-Werner - point: - x: 1 - y: 2 - key: value - subtable: - key: another value -x: - y: - z: - w: {} diff --git a/vendor/github.com/pelletier/go-toml/doc.go b/vendor/github.com/pelletier/go-toml/doc.go deleted file mode 100644 index 3c89619..0000000 --- a/vendor/github.com/pelletier/go-toml/doc.go +++ /dev/null @@ -1,23 +0,0 @@ -// Package toml is a TOML parser and manipulation library. -// -// This version supports the specification as described in -// https://github.com/toml-lang/toml/blob/master/versions/en/toml-v0.4.0.md -// -// Marshaling -// -// Go-toml can marshal and unmarshal TOML documents from and to data -// structures. -// -// TOML document as a tree -// -// Go-toml can operate on a TOML document as a tree. Use one of the Load* -// functions to parse TOML data and obtain a Tree instance, then one of its -// methods to manipulate the tree. -// -// JSONPath-like queries -// -// The package github.com/pelletier/go-toml/query implements a system -// similar to JSONPath to quickly retrive elements of a TOML document using a -// single expression. See the package documentation for more information. -// -package toml diff --git a/vendor/github.com/pelletier/go-toml/example-crlf.toml b/vendor/github.com/pelletier/go-toml/example-crlf.toml deleted file mode 100644 index 12950a1..0000000 --- a/vendor/github.com/pelletier/go-toml/example-crlf.toml +++ /dev/null @@ -1,29 +0,0 @@ -# This is a TOML document. Boom. - -title = "TOML Example" - -[owner] -name = "Tom Preston-Werner" -organization = "GitHub" -bio = "GitHub Cofounder & CEO\nLikes tater tots and beer." -dob = 1979-05-27T07:32:00Z # First class dates? Why not? - -[database] -server = "192.168.1.1" -ports = [ 8001, 8001, 8002 ] -connection_max = 5000 -enabled = true - -[servers] - - # You can indent as you please. Tabs or spaces. TOML don't care. - [servers.alpha] - ip = "10.0.0.1" - dc = "eqdc10" - - [servers.beta] - ip = "10.0.0.2" - dc = "eqdc10" - -[clients] -data = [ ["gamma", "delta"], [1, 2] ] # just an update to make sure parsers support it diff --git a/vendor/github.com/pelletier/go-toml/example.toml b/vendor/github.com/pelletier/go-toml/example.toml deleted file mode 100644 index 3d902f2..0000000 --- a/vendor/github.com/pelletier/go-toml/example.toml +++ /dev/null @@ -1,29 +0,0 @@ -# This is a TOML document. Boom. - -title = "TOML Example" - -[owner] -name = "Tom Preston-Werner" -organization = "GitHub" -bio = "GitHub Cofounder & CEO\nLikes tater tots and beer." -dob = 1979-05-27T07:32:00Z # First class dates? Why not? - -[database] -server = "192.168.1.1" -ports = [ 8001, 8001, 8002 ] -connection_max = 5000 -enabled = true - -[servers] - - # You can indent as you please. Tabs or spaces. TOML don't care. - [servers.alpha] - ip = "10.0.0.1" - dc = "eqdc10" - - [servers.beta] - ip = "10.0.0.2" - dc = "eqdc10" - -[clients] -data = [ ["gamma", "delta"], [1, 2] ] # just an update to make sure parsers support it diff --git a/vendor/github.com/pelletier/go-toml/keysparsing.go b/vendor/github.com/pelletier/go-toml/keysparsing.go deleted file mode 100644 index d62ca5f..0000000 --- a/vendor/github.com/pelletier/go-toml/keysparsing.go +++ /dev/null @@ -1,94 +0,0 @@ -// Parsing keys handling both bare and quoted keys. - -package toml - -import ( - "bytes" - "errors" - "fmt" - "unicode" -) - -func parseKey(key string) ([]string, error) { - groups := []string{} - var buffer bytes.Buffer - inQuotes := false - wasInQuotes := false - escapeNext := false - ignoreSpace := true - expectDot := false - - for _, char := range key { - if ignoreSpace { - if char == ' ' { - continue - } - ignoreSpace = false - } - if escapeNext { - buffer.WriteRune(char) - escapeNext = false - continue - } - switch char { - case '\\': - escapeNext = true - continue - case '"': - if inQuotes { - groups = append(groups, buffer.String()) - buffer.Reset() - wasInQuotes = true - } - inQuotes = !inQuotes - expectDot = false - case '.': - if inQuotes { - buffer.WriteRune(char) - } else { - if !wasInQuotes { - if buffer.Len() == 0 { - return nil, errors.New("empty table key") - } - groups = append(groups, buffer.String()) - buffer.Reset() - } - ignoreSpace = true - expectDot = false - wasInQuotes = false - } - case ' ': - if inQuotes { - buffer.WriteRune(char) - } else { - expectDot = true - } - default: - if !inQuotes && !isValidBareChar(char) { - return nil, fmt.Errorf("invalid bare character: %c", char) - } - if !inQuotes && expectDot { - return nil, errors.New("what?") - } - buffer.WriteRune(char) - expectDot = false - } - } - if inQuotes { - return nil, errors.New("mismatched quotes") - } - if escapeNext { - return nil, errors.New("unfinished escape sequence") - } - if buffer.Len() > 0 { - groups = append(groups, buffer.String()) - } - if len(groups) == 0 { - return nil, errors.New("empty key") - } - return groups, nil -} - -func isValidBareChar(r rune) bool { - return isAlphanumeric(r) || r == '-' || unicode.IsNumber(r) -} diff --git a/vendor/github.com/pelletier/go-toml/lexer.go b/vendor/github.com/pelletier/go-toml/lexer.go deleted file mode 100644 index 1b6647d..0000000 --- a/vendor/github.com/pelletier/go-toml/lexer.go +++ /dev/null @@ -1,651 +0,0 @@ -// TOML lexer. -// -// Written using the principles developed by Rob Pike in -// http://www.youtube.com/watch?v=HxaD_trXwRE - -package toml - -import ( - "bytes" - "errors" - "fmt" - "regexp" - "strconv" - "strings" -) - -var dateRegexp *regexp.Regexp - -// Define state functions -type tomlLexStateFn func() tomlLexStateFn - -// Define lexer -type tomlLexer struct { - inputIdx int - input []rune // Textual source - currentTokenStart int - currentTokenStop int - tokens []token - depth int - line int - col int - endbufferLine int - endbufferCol int -} - -// Basic read operations on input - -func (l *tomlLexer) read() rune { - r := l.peek() - if r == '\n' { - l.endbufferLine++ - l.endbufferCol = 1 - } else { - l.endbufferCol++ - } - l.inputIdx++ - return r -} - -func (l *tomlLexer) next() rune { - r := l.read() - - if r != eof { - l.currentTokenStop++ - } - return r -} - -func (l *tomlLexer) ignore() { - l.currentTokenStart = l.currentTokenStop - l.line = l.endbufferLine - l.col = l.endbufferCol -} - -func (l *tomlLexer) skip() { - l.next() - l.ignore() -} - -func (l *tomlLexer) fastForward(n int) { - for i := 0; i < n; i++ { - l.next() - } -} - -func (l *tomlLexer) emitWithValue(t tokenType, value string) { - l.tokens = append(l.tokens, token{ - Position: Position{l.line, l.col}, - typ: t, - val: value, - }) - l.ignore() -} - -func (l *tomlLexer) emit(t tokenType) { - l.emitWithValue(t, string(l.input[l.currentTokenStart:l.currentTokenStop])) -} - -func (l *tomlLexer) peek() rune { - if l.inputIdx >= len(l.input) { - return eof - } - return l.input[l.inputIdx] -} - -func (l *tomlLexer) peekString(size int) string { - maxIdx := len(l.input) - upperIdx := l.inputIdx + size // FIXME: potential overflow - if upperIdx > maxIdx { - upperIdx = maxIdx - } - return string(l.input[l.inputIdx:upperIdx]) -} - -func (l *tomlLexer) follow(next string) bool { - return next == l.peekString(len(next)) -} - -// Error management - -func (l *tomlLexer) errorf(format string, args ...interface{}) tomlLexStateFn { - l.tokens = append(l.tokens, token{ - Position: Position{l.line, l.col}, - typ: tokenError, - val: fmt.Sprintf(format, args...), - }) - return nil -} - -// State functions - -func (l *tomlLexer) lexVoid() tomlLexStateFn { - for { - next := l.peek() - switch next { - case '[': - return l.lexTableKey - case '#': - return l.lexComment(l.lexVoid) - case '=': - return l.lexEqual - case '\r': - fallthrough - case '\n': - l.skip() - continue - } - - if isSpace(next) { - l.skip() - } - - if l.depth > 0 { - return l.lexRvalue - } - - if isKeyStartChar(next) { - return l.lexKey - } - - if next == eof { - l.next() - break - } - } - - l.emit(tokenEOF) - return nil -} - -func (l *tomlLexer) lexRvalue() tomlLexStateFn { - for { - next := l.peek() - switch next { - case '.': - return l.errorf("cannot start float with a dot") - case '=': - return l.lexEqual - case '[': - l.depth++ - return l.lexLeftBracket - case ']': - l.depth-- - return l.lexRightBracket - case '{': - return l.lexLeftCurlyBrace - case '}': - return l.lexRightCurlyBrace - case '#': - return l.lexComment(l.lexRvalue) - case '"': - return l.lexString - case '\'': - return l.lexLiteralString - case ',': - return l.lexComma - case '\r': - fallthrough - case '\n': - l.skip() - if l.depth == 0 { - return l.lexVoid - } - return l.lexRvalue - case '_': - return l.errorf("cannot start number with underscore") - } - - if l.follow("true") { - return l.lexTrue - } - - if l.follow("false") { - return l.lexFalse - } - - if isSpace(next) { - l.skip() - continue - } - - if next == eof { - l.next() - break - } - - possibleDate := l.peekString(35) - dateMatch := dateRegexp.FindString(possibleDate) - if dateMatch != "" { - l.fastForward(len(dateMatch)) - return l.lexDate - } - - if next == '+' || next == '-' || isDigit(next) { - return l.lexNumber - } - - if isAlphanumeric(next) { - return l.lexKey - } - - return l.errorf("no value can start with %c", next) - } - - l.emit(tokenEOF) - return nil -} - -func (l *tomlLexer) lexLeftCurlyBrace() tomlLexStateFn { - l.next() - l.emit(tokenLeftCurlyBrace) - return l.lexRvalue -} - -func (l *tomlLexer) lexRightCurlyBrace() tomlLexStateFn { - l.next() - l.emit(tokenRightCurlyBrace) - return l.lexRvalue -} - -func (l *tomlLexer) lexDate() tomlLexStateFn { - l.emit(tokenDate) - return l.lexRvalue -} - -func (l *tomlLexer) lexTrue() tomlLexStateFn { - l.fastForward(4) - l.emit(tokenTrue) - return l.lexRvalue -} - -func (l *tomlLexer) lexFalse() tomlLexStateFn { - l.fastForward(5) - l.emit(tokenFalse) - return l.lexRvalue -} - -func (l *tomlLexer) lexEqual() tomlLexStateFn { - l.next() - l.emit(tokenEqual) - return l.lexRvalue -} - -func (l *tomlLexer) lexComma() tomlLexStateFn { - l.next() - l.emit(tokenComma) - return l.lexRvalue -} - -func (l *tomlLexer) lexKey() tomlLexStateFn { - growingString := "" - - for r := l.peek(); isKeyChar(r) || r == '\n' || r == '\r'; r = l.peek() { - if r == '"' { - l.next() - str, err := l.lexStringAsString(`"`, false, true) - if err != nil { - return l.errorf(err.Error()) - } - growingString += `"` + str + `"` - l.next() - continue - } else if r == '\n' { - return l.errorf("keys cannot contain new lines") - } else if isSpace(r) { - break - } else if !isValidBareChar(r) { - return l.errorf("keys cannot contain %c character", r) - } - growingString += string(r) - l.next() - } - l.emitWithValue(tokenKey, growingString) - return l.lexVoid -} - -func (l *tomlLexer) lexComment(previousState tomlLexStateFn) tomlLexStateFn { - return func() tomlLexStateFn { - for next := l.peek(); next != '\n' && next != eof; next = l.peek() { - if next == '\r' && l.follow("\r\n") { - break - } - l.next() - } - l.ignore() - return previousState - } -} - -func (l *tomlLexer) lexLeftBracket() tomlLexStateFn { - l.next() - l.emit(tokenLeftBracket) - return l.lexRvalue -} - -func (l *tomlLexer) lexLiteralStringAsString(terminator string, discardLeadingNewLine bool) (string, error) { - growingString := "" - - if discardLeadingNewLine { - if l.follow("\r\n") { - l.skip() - l.skip() - } else if l.peek() == '\n' { - l.skip() - } - } - - // find end of string - for { - if l.follow(terminator) { - return growingString, nil - } - - next := l.peek() - if next == eof { - break - } - growingString += string(l.next()) - } - - return "", errors.New("unclosed string") -} - -func (l *tomlLexer) lexLiteralString() tomlLexStateFn { - l.skip() - - // handle special case for triple-quote - terminator := "'" - discardLeadingNewLine := false - if l.follow("''") { - l.skip() - l.skip() - terminator = "'''" - discardLeadingNewLine = true - } - - str, err := l.lexLiteralStringAsString(terminator, discardLeadingNewLine) - if err != nil { - return l.errorf(err.Error()) - } - - l.emitWithValue(tokenString, str) - l.fastForward(len(terminator)) - l.ignore() - return l.lexRvalue -} - -// Lex a string and return the results as a string. -// Terminator is the substring indicating the end of the token. -// The resulting string does not include the terminator. -func (l *tomlLexer) lexStringAsString(terminator string, discardLeadingNewLine, acceptNewLines bool) (string, error) { - growingString := "" - - if discardLeadingNewLine { - if l.follow("\r\n") { - l.skip() - l.skip() - } else if l.peek() == '\n' { - l.skip() - } - } - - for { - if l.follow(terminator) { - return growingString, nil - } - - if l.follow("\\") { - l.next() - switch l.peek() { - case '\r': - fallthrough - case '\n': - fallthrough - case '\t': - fallthrough - case ' ': - // skip all whitespace chars following backslash - for strings.ContainsRune("\r\n\t ", l.peek()) { - l.next() - } - case '"': - growingString += "\"" - l.next() - case 'n': - growingString += "\n" - l.next() - case 'b': - growingString += "\b" - l.next() - case 'f': - growingString += "\f" - l.next() - case '/': - growingString += "/" - l.next() - case 't': - growingString += "\t" - l.next() - case 'r': - growingString += "\r" - l.next() - case '\\': - growingString += "\\" - l.next() - case 'u': - l.next() - code := "" - for i := 0; i < 4; i++ { - c := l.peek() - if !isHexDigit(c) { - return "", errors.New("unfinished unicode escape") - } - l.next() - code = code + string(c) - } - intcode, err := strconv.ParseInt(code, 16, 32) - if err != nil { - return "", errors.New("invalid unicode escape: \\u" + code) - } - growingString += string(rune(intcode)) - case 'U': - l.next() - code := "" - for i := 0; i < 8; i++ { - c := l.peek() - if !isHexDigit(c) { - return "", errors.New("unfinished unicode escape") - } - l.next() - code = code + string(c) - } - intcode, err := strconv.ParseInt(code, 16, 64) - if err != nil { - return "", errors.New("invalid unicode escape: \\U" + code) - } - growingString += string(rune(intcode)) - default: - return "", errors.New("invalid escape sequence: \\" + string(l.peek())) - } - } else { - r := l.peek() - - if 0x00 <= r && r <= 0x1F && !(acceptNewLines && (r == '\n' || r == '\r')) { - return "", fmt.Errorf("unescaped control character %U", r) - } - l.next() - growingString += string(r) - } - - if l.peek() == eof { - break - } - } - - return "", errors.New("unclosed string") -} - -func (l *tomlLexer) lexString() tomlLexStateFn { - l.skip() - - // handle special case for triple-quote - terminator := `"` - discardLeadingNewLine := false - acceptNewLines := false - if l.follow(`""`) { - l.skip() - l.skip() - terminator = `"""` - discardLeadingNewLine = true - acceptNewLines = true - } - - str, err := l.lexStringAsString(terminator, discardLeadingNewLine, acceptNewLines) - - if err != nil { - return l.errorf(err.Error()) - } - - l.emitWithValue(tokenString, str) - l.fastForward(len(terminator)) - l.ignore() - return l.lexRvalue -} - -func (l *tomlLexer) lexTableKey() tomlLexStateFn { - l.next() - - if l.peek() == '[' { - // token '[[' signifies an array of tables - l.next() - l.emit(tokenDoubleLeftBracket) - return l.lexInsideTableArrayKey - } - // vanilla table key - l.emit(tokenLeftBracket) - return l.lexInsideTableKey -} - -func (l *tomlLexer) lexInsideTableArrayKey() tomlLexStateFn { - for r := l.peek(); r != eof; r = l.peek() { - switch r { - case ']': - if l.currentTokenStop > l.currentTokenStart { - l.emit(tokenKeyGroupArray) - } - l.next() - if l.peek() != ']' { - break - } - l.next() - l.emit(tokenDoubleRightBracket) - return l.lexVoid - case '[': - return l.errorf("table array key cannot contain ']'") - default: - l.next() - } - } - return l.errorf("unclosed table array key") -} - -func (l *tomlLexer) lexInsideTableKey() tomlLexStateFn { - for r := l.peek(); r != eof; r = l.peek() { - switch r { - case ']': - if l.currentTokenStop > l.currentTokenStart { - l.emit(tokenKeyGroup) - } - l.next() - l.emit(tokenRightBracket) - return l.lexVoid - case '[': - return l.errorf("table key cannot contain ']'") - default: - l.next() - } - } - return l.errorf("unclosed table key") -} - -func (l *tomlLexer) lexRightBracket() tomlLexStateFn { - l.next() - l.emit(tokenRightBracket) - return l.lexRvalue -} - -func (l *tomlLexer) lexNumber() tomlLexStateFn { - r := l.peek() - if r == '+' || r == '-' { - l.next() - } - pointSeen := false - expSeen := false - digitSeen := false - for { - next := l.peek() - if next == '.' { - if pointSeen { - return l.errorf("cannot have two dots in one float") - } - l.next() - if !isDigit(l.peek()) { - return l.errorf("float cannot end with a dot") - } - pointSeen = true - } else if next == 'e' || next == 'E' { - expSeen = true - l.next() - r := l.peek() - if r == '+' || r == '-' { - l.next() - } - } else if isDigit(next) { - digitSeen = true - l.next() - } else if next == '_' { - l.next() - } else { - break - } - if pointSeen && !digitSeen { - return l.errorf("cannot start float with a dot") - } - } - - if !digitSeen { - return l.errorf("no digit in that number") - } - if pointSeen || expSeen { - l.emit(tokenFloat) - } else { - l.emit(tokenInteger) - } - return l.lexRvalue -} - -func (l *tomlLexer) run() { - for state := l.lexVoid; state != nil; { - state = state() - } -} - -func init() { - dateRegexp = regexp.MustCompile(`^\d{1,4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{1,9})?(Z|[+-]\d{2}:\d{2})`) -} - -// Entry point -func lexToml(inputBytes []byte) []token { - runes := bytes.Runes(inputBytes) - l := &tomlLexer{ - input: runes, - tokens: make([]token, 0, 256), - line: 1, - col: 1, - endbufferLine: 1, - endbufferCol: 1, - } - l.run() - return l.tokens -} diff --git a/vendor/github.com/pelletier/go-toml/marshal.go b/vendor/github.com/pelletier/go-toml/marshal.go deleted file mode 100644 index 1a3176f..0000000 --- a/vendor/github.com/pelletier/go-toml/marshal.go +++ /dev/null @@ -1,489 +0,0 @@ -package toml - -import ( - "bytes" - "errors" - "fmt" - "reflect" - "strings" - "time" -) - -type tomlOpts struct { - name string - include bool - omitempty bool -} - -var timeType = reflect.TypeOf(time.Time{}) -var marshalerType = reflect.TypeOf(new(Marshaler)).Elem() - -// Check if the given marshall type maps to a Tree primitive -func isPrimitive(mtype reflect.Type) bool { - switch mtype.Kind() { - case reflect.Ptr: - return isPrimitive(mtype.Elem()) - case reflect.Bool: - return true - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - return true - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: - return true - case reflect.Float32, reflect.Float64: - return true - case reflect.String: - return true - case reflect.Struct: - return mtype == timeType || isCustomMarshaler(mtype) - default: - return false - } -} - -// Check if the given marshall type maps to a Tree slice -func isTreeSlice(mtype reflect.Type) bool { - switch mtype.Kind() { - case reflect.Slice: - return !isOtherSlice(mtype) - default: - return false - } -} - -// Check if the given marshall type maps to a non-Tree slice -func isOtherSlice(mtype reflect.Type) bool { - switch mtype.Kind() { - case reflect.Ptr: - return isOtherSlice(mtype.Elem()) - case reflect.Slice: - return isPrimitive(mtype.Elem()) || isOtherSlice(mtype.Elem()) - default: - return false - } -} - -// Check if the given marshall type maps to a Tree -func isTree(mtype reflect.Type) bool { - switch mtype.Kind() { - case reflect.Map: - return true - case reflect.Struct: - return !isPrimitive(mtype) - default: - return false - } -} - -func isCustomMarshaler(mtype reflect.Type) bool { - return mtype.Implements(marshalerType) -} - -func callCustomMarshaler(mval reflect.Value) ([]byte, error) { - return mval.Interface().(Marshaler).MarshalTOML() -} - -// Marshaler is the interface implemented by types that -// can marshal themselves into valid TOML. -type Marshaler interface { - MarshalTOML() ([]byte, error) -} - -/* -Marshal returns the TOML encoding of v. Behavior is similar to the Go json -encoder, except that there is no concept of a Marshaler interface or MarshalTOML -function for sub-structs, and currently only definite types can be marshaled -(i.e. no `interface{}`). - -Note that pointers are automatically assigned the "omitempty" option, as TOML -explicity does not handle null values (saying instead the label should be -dropped). - -Tree structural types and corresponding marshal types: - - *Tree (*)struct, (*)map[string]interface{} - []*Tree (*)[](*)struct, (*)[](*)map[string]interface{} - []interface{} (as interface{}) (*)[]primitive, (*)[]([]interface{}) - interface{} (*)primitive - -Tree primitive types and corresponding marshal types: - - uint64 uint, uint8-uint64, pointers to same - int64 int, int8-uint64, pointers to same - float64 float32, float64, pointers to same - string string, pointers to same - bool bool, pointers to same - time.Time time.Time{}, pointers to same -*/ -func Marshal(v interface{}) ([]byte, error) { - mtype := reflect.TypeOf(v) - if mtype.Kind() != reflect.Struct { - return []byte{}, errors.New("Only a struct can be marshaled to TOML") - } - sval := reflect.ValueOf(v) - if isCustomMarshaler(mtype) { - return callCustomMarshaler(sval) - } - t, err := valueToTree(mtype, sval) - if err != nil { - return []byte{}, err - } - s, err := t.ToTomlString() - return []byte(s), err -} - -// Convert given marshal struct or map value to toml tree -func valueToTree(mtype reflect.Type, mval reflect.Value) (*Tree, error) { - if mtype.Kind() == reflect.Ptr { - return valueToTree(mtype.Elem(), mval.Elem()) - } - tval := newTree() - switch mtype.Kind() { - case reflect.Struct: - for i := 0; i < mtype.NumField(); i++ { - mtypef, mvalf := mtype.Field(i), mval.Field(i) - opts := tomlOptions(mtypef) - if opts.include && (!opts.omitempty || !isZero(mvalf)) { - val, err := valueToToml(mtypef.Type, mvalf) - if err != nil { - return nil, err - } - tval.Set(opts.name, val) - } - } - case reflect.Map: - for _, key := range mval.MapKeys() { - mvalf := mval.MapIndex(key) - val, err := valueToToml(mtype.Elem(), mvalf) - if err != nil { - return nil, err - } - tval.Set(key.String(), val) - } - } - return tval, nil -} - -// Convert given marshal slice to slice of Toml trees -func valueToTreeSlice(mtype reflect.Type, mval reflect.Value) ([]*Tree, error) { - tval := make([]*Tree, mval.Len(), mval.Len()) - for i := 0; i < mval.Len(); i++ { - val, err := valueToTree(mtype.Elem(), mval.Index(i)) - if err != nil { - return nil, err - } - tval[i] = val - } - return tval, nil -} - -// Convert given marshal slice to slice of toml values -func valueToOtherSlice(mtype reflect.Type, mval reflect.Value) (interface{}, error) { - tval := make([]interface{}, mval.Len(), mval.Len()) - for i := 0; i < mval.Len(); i++ { - val, err := valueToToml(mtype.Elem(), mval.Index(i)) - if err != nil { - return nil, err - } - tval[i] = val - } - return tval, nil -} - -// Convert given marshal value to toml value -func valueToToml(mtype reflect.Type, mval reflect.Value) (interface{}, error) { - if mtype.Kind() == reflect.Ptr { - return valueToToml(mtype.Elem(), mval.Elem()) - } - switch { - case isCustomMarshaler(mtype): - return callCustomMarshaler(mval) - case isTree(mtype): - return valueToTree(mtype, mval) - case isTreeSlice(mtype): - return valueToTreeSlice(mtype, mval) - case isOtherSlice(mtype): - return valueToOtherSlice(mtype, mval) - default: - switch mtype.Kind() { - case reflect.Bool: - return mval.Bool(), nil - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - return mval.Int(), nil - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: - return mval.Uint(), nil - case reflect.Float32, reflect.Float64: - return mval.Float(), nil - case reflect.String: - return mval.String(), nil - case reflect.Struct: - return mval.Interface().(time.Time), nil - default: - return nil, fmt.Errorf("Marshal can't handle %v(%v)", mtype, mtype.Kind()) - } - } -} - -// Unmarshal attempts to unmarshal the Tree into a Go struct pointed by v. -// Neither Unmarshaler interfaces nor UnmarshalTOML functions are supported for -// sub-structs, and only definite types can be unmarshaled. -func (t *Tree) Unmarshal(v interface{}) error { - mtype := reflect.TypeOf(v) - if mtype.Kind() != reflect.Ptr || mtype.Elem().Kind() != reflect.Struct { - return errors.New("Only a pointer to struct can be unmarshaled from TOML") - } - - sval, err := valueFromTree(mtype.Elem(), t) - if err != nil { - return err - } - reflect.ValueOf(v).Elem().Set(sval) - return nil -} - -// Unmarshal parses the TOML-encoded data and stores the result in the value -// pointed to by v. Behavior is similar to the Go json encoder, except that there -// is no concept of an Unmarshaler interface or UnmarshalTOML function for -// sub-structs, and currently only definite types can be unmarshaled to (i.e. no -// `interface{}`). -// -// See Marshal() documentation for types mapping table. -func Unmarshal(data []byte, v interface{}) error { - t, err := LoadReader(bytes.NewReader(data)) - if err != nil { - return err - } - return t.Unmarshal(v) -} - -// Convert toml tree to marshal struct or map, using marshal type -func valueFromTree(mtype reflect.Type, tval *Tree) (reflect.Value, error) { - if mtype.Kind() == reflect.Ptr { - return unwrapPointer(mtype, tval) - } - var mval reflect.Value - switch mtype.Kind() { - case reflect.Struct: - mval = reflect.New(mtype).Elem() - for i := 0; i < mtype.NumField(); i++ { - mtypef := mtype.Field(i) - opts := tomlOptions(mtypef) - if opts.include { - baseKey := opts.name - keysToTry := []string{baseKey, strings.ToLower(baseKey), strings.ToTitle(baseKey)} - for _, key := range keysToTry { - exists := tval.Has(key) - if !exists { - continue - } - val := tval.Get(key) - mvalf, err := valueFromToml(mtypef.Type, val) - if err != nil { - return mval, formatError(err, tval.GetPosition(key)) - } - mval.Field(i).Set(mvalf) - break - } - } - } - case reflect.Map: - mval = reflect.MakeMap(mtype) - for _, key := range tval.Keys() { - val := tval.Get(key) - mvalf, err := valueFromToml(mtype.Elem(), val) - if err != nil { - return mval, formatError(err, tval.GetPosition(key)) - } - mval.SetMapIndex(reflect.ValueOf(key), mvalf) - } - } - return mval, nil -} - -// Convert toml value to marshal struct/map slice, using marshal type -func valueFromTreeSlice(mtype reflect.Type, tval []*Tree) (reflect.Value, error) { - mval := reflect.MakeSlice(mtype, len(tval), len(tval)) - for i := 0; i < len(tval); i++ { - val, err := valueFromTree(mtype.Elem(), tval[i]) - if err != nil { - return mval, err - } - mval.Index(i).Set(val) - } - return mval, nil -} - -// Convert toml value to marshal primitive slice, using marshal type -func valueFromOtherSlice(mtype reflect.Type, tval []interface{}) (reflect.Value, error) { - mval := reflect.MakeSlice(mtype, len(tval), len(tval)) - for i := 0; i < len(tval); i++ { - val, err := valueFromToml(mtype.Elem(), tval[i]) - if err != nil { - return mval, err - } - mval.Index(i).Set(val) - } - return mval, nil -} - -// Convert toml value to marshal value, using marshal type -func valueFromToml(mtype reflect.Type, tval interface{}) (reflect.Value, error) { - if mtype.Kind() == reflect.Ptr { - return unwrapPointer(mtype, tval) - } - switch { - case isTree(mtype): - return valueFromTree(mtype, tval.(*Tree)) - case isTreeSlice(mtype): - return valueFromTreeSlice(mtype, tval.([]*Tree)) - case isOtherSlice(mtype): - return valueFromOtherSlice(mtype, tval.([]interface{})) - default: - switch mtype.Kind() { - case reflect.Bool: - val, ok := tval.(bool) - if !ok { - return reflect.ValueOf(nil), fmt.Errorf("Can't convert %v(%T) to bool", tval, tval) - } - return reflect.ValueOf(val), nil - case reflect.Int: - val, ok := tval.(int64) - if !ok { - return reflect.ValueOf(nil), fmt.Errorf("Can't convert %v(%T) to int", tval, tval) - } - return reflect.ValueOf(int(val)), nil - case reflect.Int8: - val, ok := tval.(int64) - if !ok { - return reflect.ValueOf(nil), fmt.Errorf("Can't convert %v(%T) to int", tval, tval) - } - return reflect.ValueOf(int8(val)), nil - case reflect.Int16: - val, ok := tval.(int64) - if !ok { - return reflect.ValueOf(nil), fmt.Errorf("Can't convert %v(%T) to int", tval, tval) - } - return reflect.ValueOf(int16(val)), nil - case reflect.Int32: - val, ok := tval.(int64) - if !ok { - return reflect.ValueOf(nil), fmt.Errorf("Can't convert %v(%T) to int", tval, tval) - } - return reflect.ValueOf(int32(val)), nil - case reflect.Int64: - val, ok := tval.(int64) - if !ok { - return reflect.ValueOf(nil), fmt.Errorf("Can't convert %v(%T) to int", tval, tval) - } - return reflect.ValueOf(val), nil - case reflect.Uint: - val, ok := tval.(int64) - if !ok { - return reflect.ValueOf(nil), fmt.Errorf("Can't convert %v(%T) to uint", tval, tval) - } - return reflect.ValueOf(uint(val)), nil - case reflect.Uint8: - val, ok := tval.(int64) - if !ok { - return reflect.ValueOf(nil), fmt.Errorf("Can't convert %v(%T) to uint", tval, tval) - } - return reflect.ValueOf(uint8(val)), nil - case reflect.Uint16: - val, ok := tval.(int64) - if !ok { - return reflect.ValueOf(nil), fmt.Errorf("Can't convert %v(%T) to uint", tval, tval) - } - return reflect.ValueOf(uint16(val)), nil - case reflect.Uint32: - val, ok := tval.(int64) - if !ok { - return reflect.ValueOf(nil), fmt.Errorf("Can't convert %v(%T) to uint", tval, tval) - } - return reflect.ValueOf(uint32(val)), nil - case reflect.Uint64: - val, ok := tval.(int64) - if !ok { - return reflect.ValueOf(nil), fmt.Errorf("Can't convert %v(%T) to uint", tval, tval) - } - return reflect.ValueOf(uint64(val)), nil - case reflect.Float32: - val, ok := tval.(float64) - if !ok { - return reflect.ValueOf(nil), fmt.Errorf("Can't convert %v(%T) to float", tval, tval) - } - return reflect.ValueOf(float32(val)), nil - case reflect.Float64: - val, ok := tval.(float64) - if !ok { - return reflect.ValueOf(nil), fmt.Errorf("Can't convert %v(%T) to float", tval, tval) - } - return reflect.ValueOf(val), nil - case reflect.String: - val, ok := tval.(string) - if !ok { - return reflect.ValueOf(nil), fmt.Errorf("Can't convert %v(%T) to string", tval, tval) - } - return reflect.ValueOf(val), nil - case reflect.Struct: - val, ok := tval.(time.Time) - if !ok { - return reflect.ValueOf(nil), fmt.Errorf("Can't convert %v(%T) to time", tval, tval) - } - return reflect.ValueOf(val), nil - default: - return reflect.ValueOf(nil), fmt.Errorf("Unmarshal can't handle %v(%v)", mtype, mtype.Kind()) - } - } -} - -func unwrapPointer(mtype reflect.Type, tval interface{}) (reflect.Value, error) { - val, err := valueFromToml(mtype.Elem(), tval) - if err != nil { - return reflect.ValueOf(nil), err - } - mval := reflect.New(mtype.Elem()) - mval.Elem().Set(val) - return mval, nil -} - -func tomlOptions(vf reflect.StructField) tomlOpts { - tag := vf.Tag.Get("toml") - parse := strings.Split(tag, ",") - result := tomlOpts{vf.Name, true, false} - if parse[0] != "" { - if parse[0] == "-" && len(parse) == 1 { - result.include = false - } else { - result.name = strings.Trim(parse[0], " ") - } - } - if vf.PkgPath != "" { - result.include = false - } - if len(parse) > 1 && strings.Trim(parse[1], " ") == "omitempty" { - result.omitempty = true - } - if vf.Type.Kind() == reflect.Ptr { - result.omitempty = true - } - return result -} - -func isZero(val reflect.Value) bool { - switch val.Type().Kind() { - case reflect.Map: - fallthrough - case reflect.Array: - fallthrough - case reflect.Slice: - return val.Len() == 0 - default: - return reflect.DeepEqual(val.Interface(), reflect.Zero(val.Type()).Interface()) - } -} - -func formatError(err error, pos Position) error { - if err.Error()[0] == '(' { // Error already contains position information - return err - } - return fmt.Errorf("%s: %s", pos, err) -} diff --git a/vendor/github.com/pelletier/go-toml/marshal_test.toml b/vendor/github.com/pelletier/go-toml/marshal_test.toml deleted file mode 100644 index 1c5f98e..0000000 --- a/vendor/github.com/pelletier/go-toml/marshal_test.toml +++ /dev/null @@ -1,38 +0,0 @@ -title = "TOML Marshal Testing" - -[basic] - bool = true - date = 1979-05-27T07:32:00Z - float = 123.4 - int = 5000 - string = "Bite me" - uint = 5001 - -[basic_lists] - bools = [true,false,true] - dates = [1979-05-27T07:32:00Z,1980-05-27T07:32:00Z] - floats = [12.3,45.6,78.9] - ints = [8001,8001,8002] - strings = ["One","Two","Three"] - uints = [5002,5003] - -[basic_map] - one = "one" - two = "two" - -[subdoc] - - [subdoc.first] - name = "First" - - [subdoc.second] - name = "Second" - -[[subdoclist]] - name = "List.First" - -[[subdoclist]] - name = "List.Second" - -[[subdocptrs]] - name = "Second" diff --git a/vendor/github.com/pelletier/go-toml/parser.go b/vendor/github.com/pelletier/go-toml/parser.go deleted file mode 100644 index 8ee49cb..0000000 --- a/vendor/github.com/pelletier/go-toml/parser.go +++ /dev/null @@ -1,383 +0,0 @@ -// TOML Parser. - -package toml - -import ( - "errors" - "fmt" - "reflect" - "regexp" - "strconv" - "strings" - "time" -) - -type tomlParser struct { - flowIdx int - flow []token - tree *Tree - currentTable []string - seenTableKeys []string -} - -type tomlParserStateFn func() tomlParserStateFn - -// Formats and panics an error message based on a token -func (p *tomlParser) raiseError(tok *token, msg string, args ...interface{}) { - panic(tok.Position.String() + ": " + fmt.Sprintf(msg, args...)) -} - -func (p *tomlParser) run() { - for state := p.parseStart; state != nil; { - state = state() - } -} - -func (p *tomlParser) peek() *token { - if p.flowIdx >= len(p.flow) { - return nil - } - return &p.flow[p.flowIdx] -} - -func (p *tomlParser) assume(typ tokenType) { - tok := p.getToken() - if tok == nil { - p.raiseError(tok, "was expecting token %s, but token stream is empty", tok) - } - if tok.typ != typ { - p.raiseError(tok, "was expecting token %s, but got %s instead", typ, tok) - } -} - -func (p *tomlParser) getToken() *token { - tok := p.peek() - if tok == nil { - return nil - } - p.flowIdx++ - return tok -} - -func (p *tomlParser) parseStart() tomlParserStateFn { - tok := p.peek() - - // end of stream, parsing is finished - if tok == nil { - return nil - } - - switch tok.typ { - case tokenDoubleLeftBracket: - return p.parseGroupArray - case tokenLeftBracket: - return p.parseGroup - case tokenKey: - return p.parseAssign - case tokenEOF: - return nil - default: - p.raiseError(tok, "unexpected token") - } - return nil -} - -func (p *tomlParser) parseGroupArray() tomlParserStateFn { - startToken := p.getToken() // discard the [[ - key := p.getToken() - if key.typ != tokenKeyGroupArray { - p.raiseError(key, "unexpected token %s, was expecting a table array key", key) - } - - // get or create table array element at the indicated part in the path - keys, err := parseKey(key.val) - if err != nil { - p.raiseError(key, "invalid table array key: %s", err) - } - p.tree.createSubTree(keys[:len(keys)-1], startToken.Position) // create parent entries - destTree := p.tree.GetPath(keys) - var array []*Tree - if destTree == nil { - array = make([]*Tree, 0) - } else if target, ok := destTree.([]*Tree); ok && target != nil { - array = destTree.([]*Tree) - } else { - p.raiseError(key, "key %s is already assigned and not of type table array", key) - } - p.currentTable = keys - - // add a new tree to the end of the table array - newTree := newTree() - newTree.position = startToken.Position - array = append(array, newTree) - p.tree.SetPath(p.currentTable, array) - - // remove all keys that were children of this table array - prefix := key.val + "." - found := false - for ii := 0; ii < len(p.seenTableKeys); { - tableKey := p.seenTableKeys[ii] - if strings.HasPrefix(tableKey, prefix) { - p.seenTableKeys = append(p.seenTableKeys[:ii], p.seenTableKeys[ii+1:]...) - } else { - found = (tableKey == key.val) - ii++ - } - } - - // keep this key name from use by other kinds of assignments - if !found { - p.seenTableKeys = append(p.seenTableKeys, key.val) - } - - // move to next parser state - p.assume(tokenDoubleRightBracket) - return p.parseStart -} - -func (p *tomlParser) parseGroup() tomlParserStateFn { - startToken := p.getToken() // discard the [ - key := p.getToken() - if key.typ != tokenKeyGroup { - p.raiseError(key, "unexpected token %s, was expecting a table key", key) - } - for _, item := range p.seenTableKeys { - if item == key.val { - p.raiseError(key, "duplicated tables") - } - } - - p.seenTableKeys = append(p.seenTableKeys, key.val) - keys, err := parseKey(key.val) - if err != nil { - p.raiseError(key, "invalid table array key: %s", err) - } - if err := p.tree.createSubTree(keys, startToken.Position); err != nil { - p.raiseError(key, "%s", err) - } - p.assume(tokenRightBracket) - p.currentTable = keys - return p.parseStart -} - -func (p *tomlParser) parseAssign() tomlParserStateFn { - key := p.getToken() - p.assume(tokenEqual) - - value := p.parseRvalue() - var tableKey []string - if len(p.currentTable) > 0 { - tableKey = p.currentTable - } else { - tableKey = []string{} - } - - // find the table to assign, looking out for arrays of tables - var targetNode *Tree - switch node := p.tree.GetPath(tableKey).(type) { - case []*Tree: - targetNode = node[len(node)-1] - case *Tree: - targetNode = node - default: - p.raiseError(key, "Unknown table type for path: %s", - strings.Join(tableKey, ".")) - } - - // assign value to the found table - keyVals, err := parseKey(key.val) - if err != nil { - p.raiseError(key, "%s", err) - } - if len(keyVals) != 1 { - p.raiseError(key, "Invalid key") - } - keyVal := keyVals[0] - localKey := []string{keyVal} - finalKey := append(tableKey, keyVal) - if targetNode.GetPath(localKey) != nil { - p.raiseError(key, "The following key was defined twice: %s", - strings.Join(finalKey, ".")) - } - var toInsert interface{} - - switch value.(type) { - case *Tree, []*Tree: - toInsert = value - default: - toInsert = &tomlValue{value, key.Position} - } - targetNode.values[keyVal] = toInsert - return p.parseStart -} - -var numberUnderscoreInvalidRegexp *regexp.Regexp - -func cleanupNumberToken(value string) (string, error) { - if numberUnderscoreInvalidRegexp.MatchString(value) { - return "", errors.New("invalid use of _ in number") - } - cleanedVal := strings.Replace(value, "_", "", -1) - return cleanedVal, nil -} - -func (p *tomlParser) parseRvalue() interface{} { - tok := p.getToken() - if tok == nil || tok.typ == tokenEOF { - p.raiseError(tok, "expecting a value") - } - - switch tok.typ { - case tokenString: - return tok.val - case tokenTrue: - return true - case tokenFalse: - return false - case tokenInteger: - cleanedVal, err := cleanupNumberToken(tok.val) - if err != nil { - p.raiseError(tok, "%s", err) - } - val, err := strconv.ParseInt(cleanedVal, 10, 64) - if err != nil { - p.raiseError(tok, "%s", err) - } - return val - case tokenFloat: - cleanedVal, err := cleanupNumberToken(tok.val) - if err != nil { - p.raiseError(tok, "%s", err) - } - val, err := strconv.ParseFloat(cleanedVal, 64) - if err != nil { - p.raiseError(tok, "%s", err) - } - return val - case tokenDate: - val, err := time.ParseInLocation(time.RFC3339Nano, tok.val, time.UTC) - if err != nil { - p.raiseError(tok, "%s", err) - } - return val - case tokenLeftBracket: - return p.parseArray() - case tokenLeftCurlyBrace: - return p.parseInlineTable() - case tokenEqual: - p.raiseError(tok, "cannot have multiple equals for the same key") - case tokenError: - p.raiseError(tok, "%s", tok) - } - - p.raiseError(tok, "never reached") - - return nil -} - -func tokenIsComma(t *token) bool { - return t != nil && t.typ == tokenComma -} - -func (p *tomlParser) parseInlineTable() *Tree { - tree := newTree() - var previous *token -Loop: - for { - follow := p.peek() - if follow == nil || follow.typ == tokenEOF { - p.raiseError(follow, "unterminated inline table") - } - switch follow.typ { - case tokenRightCurlyBrace: - p.getToken() - break Loop - case tokenKey: - if !tokenIsComma(previous) && previous != nil { - p.raiseError(follow, "comma expected between fields in inline table") - } - key := p.getToken() - p.assume(tokenEqual) - value := p.parseRvalue() - tree.Set(key.val, value) - case tokenComma: - if previous == nil { - p.raiseError(follow, "inline table cannot start with a comma") - } - if tokenIsComma(previous) { - p.raiseError(follow, "need field between two commas in inline table") - } - p.getToken() - default: - p.raiseError(follow, "unexpected token type in inline table: %s", follow.typ.String()) - } - previous = follow - } - if tokenIsComma(previous) { - p.raiseError(previous, "trailing comma at the end of inline table") - } - return tree -} - -func (p *tomlParser) parseArray() interface{} { - var array []interface{} - arrayType := reflect.TypeOf(nil) - for { - follow := p.peek() - if follow == nil || follow.typ == tokenEOF { - p.raiseError(follow, "unterminated array") - } - if follow.typ == tokenRightBracket { - p.getToken() - break - } - val := p.parseRvalue() - if arrayType == nil { - arrayType = reflect.TypeOf(val) - } - if reflect.TypeOf(val) != arrayType { - p.raiseError(follow, "mixed types in array") - } - array = append(array, val) - follow = p.peek() - if follow == nil || follow.typ == tokenEOF { - p.raiseError(follow, "unterminated array") - } - if follow.typ != tokenRightBracket && follow.typ != tokenComma { - p.raiseError(follow, "missing comma") - } - if follow.typ == tokenComma { - p.getToken() - } - } - // An array of Trees is actually an array of inline - // tables, which is a shorthand for a table array. If the - // array was not converted from []interface{} to []*Tree, - // the two notations would not be equivalent. - if arrayType == reflect.TypeOf(newTree()) { - tomlArray := make([]*Tree, len(array)) - for i, v := range array { - tomlArray[i] = v.(*Tree) - } - return tomlArray - } - return array -} - -func parseToml(flow []token) *Tree { - result := newTree() - result.position = Position{1, 1} - parser := &tomlParser{ - flowIdx: 0, - flow: flow, - tree: result, - currentTable: make([]string, 0), - seenTableKeys: make([]string, 0), - } - parser.run() - return result -} - -func init() { - numberUnderscoreInvalidRegexp = regexp.MustCompile(`([^\d]_|_[^\d]|_$|^_)`) -} diff --git a/vendor/github.com/pelletier/go-toml/position.go b/vendor/github.com/pelletier/go-toml/position.go deleted file mode 100644 index c17bff8..0000000 --- a/vendor/github.com/pelletier/go-toml/position.go +++ /dev/null @@ -1,29 +0,0 @@ -// Position support for go-toml - -package toml - -import ( - "fmt" -) - -// Position of a document element within a TOML document. -// -// Line and Col are both 1-indexed positions for the element's line number and -// column number, respectively. Values of zero or less will cause Invalid(), -// to return true. -type Position struct { - Line int // line within the document - Col int // column within the line -} - -// String representation of the position. -// Displays 1-indexed line and column numbers. -func (p Position) String() string { - return fmt.Sprintf("(%d, %d)", p.Line, p.Col) -} - -// Invalid returns whether or not the position is valid (i.e. with negative or -// null values) -func (p Position) Invalid() bool { - return p.Line <= 0 || p.Col <= 0 -} diff --git a/vendor/github.com/pelletier/go-toml/test.sh b/vendor/github.com/pelletier/go-toml/test.sh deleted file mode 100755 index 91a8896..0000000 --- a/vendor/github.com/pelletier/go-toml/test.sh +++ /dev/null @@ -1,90 +0,0 @@ -#!/bin/bash -# fail out of the script if anything here fails -set -e - -# set the path to the present working directory -export GOPATH=`pwd` - -function git_clone() { - path=$1 - branch=$2 - version=$3 - if [ ! -d "src/$path" ]; then - mkdir -p src/$path - git clone https://$path.git src/$path - fi - pushd src/$path - git checkout "$branch" - git reset --hard "$version" - popd -} - -# Remove potential previous runs -rm -rf src test_program_bin toml-test - -# Run go vet -go vet ./... - -go get github.com/pelletier/go-buffruneio -go get github.com/davecgh/go-spew/spew -go get gopkg.in/yaml.v2 -go get github.com/BurntSushi/toml - -# get code for BurntSushi TOML validation -# pinning all to 'HEAD' for version 0.3.x work (TODO: pin to commit hash when tests stabilize) -git_clone github.com/BurntSushi/toml master HEAD -git_clone github.com/BurntSushi/toml-test master HEAD #was: 0.2.0 HEAD - -# build the BurntSushi test application -go build -o toml-test github.com/BurntSushi/toml-test - -# vendorize the current lib for testing -# NOTE: this basically mocks an install without having to go back out to github for code -mkdir -p src/github.com/pelletier/go-toml/cmd -mkdir -p src/github.com/pelletier/go-toml/query -cp *.go *.toml src/github.com/pelletier/go-toml -cp -R cmd/* src/github.com/pelletier/go-toml/cmd -cp -R query/* src/github.com/pelletier/go-toml/query -go build -o test_program_bin src/github.com/pelletier/go-toml/cmd/test_program.go - -# Run basic unit tests -go test github.com/pelletier/go-toml -covermode=count -coverprofile=coverage.out -go test github.com/pelletier/go-toml/cmd/tomljson -go test github.com/pelletier/go-toml/query - -# run the entire BurntSushi test suite -if [[ $# -eq 0 ]] ; then - echo "Running all BurntSushi tests" - ./toml-test ./test_program_bin | tee test_out -else - # run a specific test - test=$1 - test_path='src/github.com/BurntSushi/toml-test/tests' - valid_test="$test_path/valid/$test" - invalid_test="$test_path/invalid/$test" - - if [ -e "$valid_test.toml" ]; then - echo "Valid Test TOML for $test:" - echo "====" - cat "$valid_test.toml" - - echo "Valid Test JSON for $test:" - echo "====" - cat "$valid_test.json" - - echo "Go-TOML Output for $test:" - echo "====" - cat "$valid_test.toml" | ./test_program_bin - fi - - if [ -e "$invalid_test.toml" ]; then - echo "Invalid Test TOML for $test:" - echo "====" - cat "$invalid_test.toml" - - echo "Go-TOML Output for $test:" - echo "====" - echo "go-toml Output:" - cat "$invalid_test.toml" | ./test_program_bin - fi -fi diff --git a/vendor/github.com/pelletier/go-toml/token.go b/vendor/github.com/pelletier/go-toml/token.go deleted file mode 100644 index 5581fe0..0000000 --- a/vendor/github.com/pelletier/go-toml/token.go +++ /dev/null @@ -1,140 +0,0 @@ -package toml - -import ( - "fmt" - "strconv" - "unicode" -) - -// Define tokens -type tokenType int - -const ( - eof = -(iota + 1) -) - -const ( - tokenError tokenType = iota - tokenEOF - tokenComment - tokenKey - tokenString - tokenInteger - tokenTrue - tokenFalse - tokenFloat - tokenEqual - tokenLeftBracket - tokenRightBracket - tokenLeftCurlyBrace - tokenRightCurlyBrace - tokenLeftParen - tokenRightParen - tokenDoubleLeftBracket - tokenDoubleRightBracket - tokenDate - tokenKeyGroup - tokenKeyGroupArray - tokenComma - tokenColon - tokenDollar - tokenStar - tokenQuestion - tokenDot - tokenDotDot - tokenEOL -) - -var tokenTypeNames = []string{ - "Error", - "EOF", - "Comment", - "Key", - "String", - "Integer", - "True", - "False", - "Float", - "=", - "[", - "]", - "{", - "}", - "(", - ")", - "]]", - "[[", - "Date", - "KeyGroup", - "KeyGroupArray", - ",", - ":", - "$", - "*", - "?", - ".", - "..", - "EOL", -} - -type token struct { - Position - typ tokenType - val string -} - -func (tt tokenType) String() string { - idx := int(tt) - if idx < len(tokenTypeNames) { - return tokenTypeNames[idx] - } - return "Unknown" -} - -func (t token) Int() int { - if result, err := strconv.Atoi(t.val); err != nil { - panic(err) - } else { - return result - } -} - -func (t token) String() string { - switch t.typ { - case tokenEOF: - return "EOF" - case tokenError: - return t.val - } - - return fmt.Sprintf("%q", t.val) -} - -func isSpace(r rune) bool { - return r == ' ' || r == '\t' -} - -func isAlphanumeric(r rune) bool { - return unicode.IsLetter(r) || r == '_' -} - -func isKeyChar(r rune) bool { - // Keys start with the first character that isn't whitespace or [ and end - // with the last non-whitespace character before the equals sign. Keys - // cannot contain a # character." - return !(r == '\r' || r == '\n' || r == eof || r == '=') -} - -func isKeyStartChar(r rune) bool { - return !(isSpace(r) || r == '\r' || r == '\n' || r == eof || r == '[') -} - -func isDigit(r rune) bool { - return unicode.IsNumber(r) -} - -func isHexDigit(r rune) bool { - return isDigit(r) || - (r >= 'a' && r <= 'f') || - (r >= 'A' && r <= 'F') -} diff --git a/vendor/github.com/pelletier/go-toml/toml.go b/vendor/github.com/pelletier/go-toml/toml.go deleted file mode 100644 index 64f19ed..0000000 --- a/vendor/github.com/pelletier/go-toml/toml.go +++ /dev/null @@ -1,292 +0,0 @@ -package toml - -import ( - "errors" - "fmt" - "io" - "io/ioutil" - "os" - "runtime" - "strings" -) - -type tomlValue struct { - value interface{} // string, int64, uint64, float64, bool, time.Time, [] of any of this list - position Position -} - -// Tree is the result of the parsing of a TOML file. -type Tree struct { - values map[string]interface{} // string -> *tomlValue, *Tree, []*Tree - position Position -} - -func newTree() *Tree { - return &Tree{ - values: make(map[string]interface{}), - position: Position{}, - } -} - -// TreeFromMap initializes a new Tree object using the given map. -func TreeFromMap(m map[string]interface{}) (*Tree, error) { - result, err := toTree(m) - if err != nil { - return nil, err - } - return result.(*Tree), nil -} - -// Position returns the position of the tree. -func (t *Tree) Position() Position { - return t.position -} - -// Has returns a boolean indicating if the given key exists. -func (t *Tree) Has(key string) bool { - if key == "" { - return false - } - return t.HasPath(strings.Split(key, ".")) -} - -// HasPath returns true if the given path of keys exists, false otherwise. -func (t *Tree) HasPath(keys []string) bool { - return t.GetPath(keys) != nil -} - -// Keys returns the keys of the toplevel tree (does not recurse). -func (t *Tree) Keys() []string { - keys := make([]string, len(t.values)) - i := 0 - for k := range t.values { - keys[i] = k - i++ - } - return keys -} - -// Get the value at key in the Tree. -// Key is a dot-separated path (e.g. a.b.c). -// Returns nil if the path does not exist in the tree. -// If keys is of length zero, the current tree is returned. -func (t *Tree) Get(key string) interface{} { - if key == "" { - return t - } - comps, err := parseKey(key) - if err != nil { - return nil - } - return t.GetPath(comps) -} - -// GetPath returns the element in the tree indicated by 'keys'. -// If keys is of length zero, the current tree is returned. -func (t *Tree) GetPath(keys []string) interface{} { - if len(keys) == 0 { - return t - } - subtree := t - for _, intermediateKey := range keys[:len(keys)-1] { - value, exists := subtree.values[intermediateKey] - if !exists { - return nil - } - switch node := value.(type) { - case *Tree: - subtree = node - case []*Tree: - // go to most recent element - if len(node) == 0 { - return nil - } - subtree = node[len(node)-1] - default: - return nil // cannot navigate through other node types - } - } - // branch based on final node type - switch node := subtree.values[keys[len(keys)-1]].(type) { - case *tomlValue: - return node.value - default: - return node - } -} - -// GetPosition returns the position of the given key. -func (t *Tree) GetPosition(key string) Position { - if key == "" { - return t.position - } - return t.GetPositionPath(strings.Split(key, ".")) -} - -// GetPositionPath returns the element in the tree indicated by 'keys'. -// If keys is of length zero, the current tree is returned. -func (t *Tree) GetPositionPath(keys []string) Position { - if len(keys) == 0 { - return t.position - } - subtree := t - for _, intermediateKey := range keys[:len(keys)-1] { - value, exists := subtree.values[intermediateKey] - if !exists { - return Position{0, 0} - } - switch node := value.(type) { - case *Tree: - subtree = node - case []*Tree: - // go to most recent element - if len(node) == 0 { - return Position{0, 0} - } - subtree = node[len(node)-1] - default: - return Position{0, 0} - } - } - // branch based on final node type - switch node := subtree.values[keys[len(keys)-1]].(type) { - case *tomlValue: - return node.position - case *Tree: - return node.position - case []*Tree: - // go to most recent element - if len(node) == 0 { - return Position{0, 0} - } - return node[len(node)-1].position - default: - return Position{0, 0} - } -} - -// GetDefault works like Get but with a default value -func (t *Tree) GetDefault(key string, def interface{}) interface{} { - val := t.Get(key) - if val == nil { - return def - } - return val -} - -// Set an element in the tree. -// Key is a dot-separated path (e.g. a.b.c). -// Creates all necessary intermediate trees, if needed. -func (t *Tree) Set(key string, value interface{}) { - t.SetPath(strings.Split(key, "."), value) -} - -// SetPath sets an element in the tree. -// Keys is an array of path elements (e.g. {"a","b","c"}). -// Creates all necessary intermediate trees, if needed. -func (t *Tree) SetPath(keys []string, value interface{}) { - subtree := t - for _, intermediateKey := range keys[:len(keys)-1] { - nextTree, exists := subtree.values[intermediateKey] - if !exists { - nextTree = newTree() - subtree.values[intermediateKey] = nextTree // add new element here - } - switch node := nextTree.(type) { - case *Tree: - subtree = node - case []*Tree: - // go to most recent element - if len(node) == 0 { - // create element if it does not exist - subtree.values[intermediateKey] = append(node, newTree()) - } - subtree = node[len(node)-1] - } - } - - var toInsert interface{} - - switch value.(type) { - case *Tree: - toInsert = value - case []*Tree: - toInsert = value - case *tomlValue: - toInsert = value - default: - toInsert = &tomlValue{value: value} - } - - subtree.values[keys[len(keys)-1]] = toInsert -} - -// createSubTree takes a tree and a key and create the necessary intermediate -// subtrees to create a subtree at that point. In-place. -// -// e.g. passing a.b.c will create (assuming tree is empty) tree[a], tree[a][b] -// and tree[a][b][c] -// -// Returns nil on success, error object on failure -func (t *Tree) createSubTree(keys []string, pos Position) error { - subtree := t - for _, intermediateKey := range keys { - nextTree, exists := subtree.values[intermediateKey] - if !exists { - tree := newTree() - tree.position = pos - subtree.values[intermediateKey] = tree - nextTree = tree - } - - switch node := nextTree.(type) { - case []*Tree: - subtree = node[len(node)-1] - case *Tree: - subtree = node - default: - return fmt.Errorf("unknown type for path %s (%s): %T (%#v)", - strings.Join(keys, "."), intermediateKey, nextTree, nextTree) - } - } - return nil -} - -// LoadBytes creates a Tree from a []byte. -func LoadBytes(b []byte) (tree *Tree, err error) { - defer func() { - if r := recover(); r != nil { - if _, ok := r.(runtime.Error); ok { - panic(r) - } - err = errors.New(r.(string)) - } - }() - tree = parseToml(lexToml(b)) - return -} - -// LoadReader creates a Tree from any io.Reader. -func LoadReader(reader io.Reader) (tree *Tree, err error) { - inputBytes, err := ioutil.ReadAll(reader) - if err != nil { - return - } - tree, err = LoadBytes(inputBytes) - return -} - -// Load creates a Tree from a string. -func Load(content string) (tree *Tree, err error) { - return LoadBytes([]byte(content)) -} - -// LoadFile creates a Tree from a file. -func LoadFile(path string) (tree *Tree, err error) { - file, err := os.Open(path) - if err != nil { - return nil, err - } - defer file.Close() - return LoadReader(file) -} diff --git a/vendor/github.com/pelletier/go-toml/tomltree_create.go b/vendor/github.com/pelletier/go-toml/tomltree_create.go deleted file mode 100644 index 19d1c0d..0000000 --- a/vendor/github.com/pelletier/go-toml/tomltree_create.go +++ /dev/null @@ -1,142 +0,0 @@ -package toml - -import ( - "fmt" - "reflect" - "time" -) - -var kindToType = [reflect.String + 1]reflect.Type{ - reflect.Bool: reflect.TypeOf(true), - reflect.String: reflect.TypeOf(""), - reflect.Float32: reflect.TypeOf(float64(1)), - reflect.Float64: reflect.TypeOf(float64(1)), - reflect.Int: reflect.TypeOf(int64(1)), - reflect.Int8: reflect.TypeOf(int64(1)), - reflect.Int16: reflect.TypeOf(int64(1)), - reflect.Int32: reflect.TypeOf(int64(1)), - reflect.Int64: reflect.TypeOf(int64(1)), - reflect.Uint: reflect.TypeOf(uint64(1)), - reflect.Uint8: reflect.TypeOf(uint64(1)), - reflect.Uint16: reflect.TypeOf(uint64(1)), - reflect.Uint32: reflect.TypeOf(uint64(1)), - reflect.Uint64: reflect.TypeOf(uint64(1)), -} - -// typeFor returns a reflect.Type for a reflect.Kind, or nil if none is found. -// supported values: -// string, bool, int64, uint64, float64, time.Time, int, int8, int16, int32, uint, uint8, uint16, uint32, float32 -func typeFor(k reflect.Kind) reflect.Type { - if k > 0 && int(k) < len(kindToType) { - return kindToType[k] - } - return nil -} - -func simpleValueCoercion(object interface{}) (interface{}, error) { - switch original := object.(type) { - case string, bool, int64, uint64, float64, time.Time: - return original, nil - case int: - return int64(original), nil - case int8: - return int64(original), nil - case int16: - return int64(original), nil - case int32: - return int64(original), nil - case uint: - return uint64(original), nil - case uint8: - return uint64(original), nil - case uint16: - return uint64(original), nil - case uint32: - return uint64(original), nil - case float32: - return float64(original), nil - case fmt.Stringer: - return original.String(), nil - default: - return nil, fmt.Errorf("cannot convert type %T to Tree", object) - } -} - -func sliceToTree(object interface{}) (interface{}, error) { - // arrays are a bit tricky, since they can represent either a - // collection of simple values, which is represented by one - // *tomlValue, or an array of tables, which is represented by an - // array of *Tree. - - // holding the assumption that this function is called from toTree only when value.Kind() is Array or Slice - value := reflect.ValueOf(object) - insideType := value.Type().Elem() - length := value.Len() - if length > 0 { - insideType = reflect.ValueOf(value.Index(0).Interface()).Type() - } - if insideType.Kind() == reflect.Map { - // this is considered as an array of tables - tablesArray := make([]*Tree, 0, length) - for i := 0; i < length; i++ { - table := value.Index(i) - tree, err := toTree(table.Interface()) - if err != nil { - return nil, err - } - tablesArray = append(tablesArray, tree.(*Tree)) - } - return tablesArray, nil - } - - sliceType := typeFor(insideType.Kind()) - if sliceType == nil { - sliceType = insideType - } - - arrayValue := reflect.MakeSlice(reflect.SliceOf(sliceType), 0, length) - - for i := 0; i < length; i++ { - val := value.Index(i).Interface() - simpleValue, err := simpleValueCoercion(val) - if err != nil { - return nil, err - } - arrayValue = reflect.Append(arrayValue, reflect.ValueOf(simpleValue)) - } - return &tomlValue{arrayValue.Interface(), Position{}}, nil -} - -func toTree(object interface{}) (interface{}, error) { - value := reflect.ValueOf(object) - - if value.Kind() == reflect.Map { - values := map[string]interface{}{} - keys := value.MapKeys() - for _, key := range keys { - if key.Kind() != reflect.String { - if _, ok := key.Interface().(string); !ok { - return nil, fmt.Errorf("map key needs to be a string, not %T (%v)", key.Interface(), key.Kind()) - } - } - - v := value.MapIndex(key) - newValue, err := toTree(v.Interface()) - if err != nil { - return nil, err - } - values[key.String()] = newValue - } - return &Tree{values, Position{}}, nil - } - - if value.Kind() == reflect.Array || value.Kind() == reflect.Slice { - return sliceToTree(object) - } - - simpleValue, err := simpleValueCoercion(object) - if err != nil { - return nil, err - } - return &tomlValue{simpleValue, Position{}}, nil -} diff --git a/vendor/github.com/pelletier/go-toml/tomltree_write.go b/vendor/github.com/pelletier/go-toml/tomltree_write.go deleted file mode 100644 index ca763ed..0000000 --- a/vendor/github.com/pelletier/go-toml/tomltree_write.go +++ /dev/null @@ -1,233 +0,0 @@ -package toml - -import ( - "bytes" - "fmt" - "io" - "math" - "reflect" - "sort" - "strconv" - "strings" - "time" -) - -// encodes a string to a TOML-compliant string value -func encodeTomlString(value string) string { - var b bytes.Buffer - - for _, rr := range value { - switch rr { - case '\b': - b.WriteString(`\b`) - case '\t': - b.WriteString(`\t`) - case '\n': - b.WriteString(`\n`) - case '\f': - b.WriteString(`\f`) - case '\r': - b.WriteString(`\r`) - case '"': - b.WriteString(`\"`) - case '\\': - b.WriteString(`\\`) - default: - intRr := uint16(rr) - if intRr < 0x001F { - b.WriteString(fmt.Sprintf("\\u%0.4X", intRr)) - } else { - b.WriteRune(rr) - } - } - } - return b.String() -} - -func tomlValueStringRepresentation(v interface{}) (string, error) { - switch value := v.(type) { - case uint64: - return strconv.FormatUint(value, 10), nil - case int64: - return strconv.FormatInt(value, 10), nil - case float64: - // Ensure a round float does contain a decimal point. Otherwise feeding - // the output back to the parser would convert to an integer. - if math.Trunc(value) == value { - return strconv.FormatFloat(value, 'f', 1, 32), nil - } - return strconv.FormatFloat(value, 'f', -1, 32), nil - case string: - return "\"" + encodeTomlString(value) + "\"", nil - case []byte: - b, _ := v.([]byte) - return tomlValueStringRepresentation(string(b)) - case bool: - if value { - return "true", nil - } - return "false", nil - case time.Time: - return value.Format(time.RFC3339), nil - case nil: - return "", nil - } - - rv := reflect.ValueOf(v) - - if rv.Kind() == reflect.Slice { - values := []string{} - for i := 0; i < rv.Len(); i++ { - item := rv.Index(i).Interface() - itemRepr, err := tomlValueStringRepresentation(item) - if err != nil { - return "", err - } - values = append(values, itemRepr) - } - return "[" + strings.Join(values, ",") + "]", nil - } - return "", fmt.Errorf("unsupported value type %T: %v", v, v) -} - -func (t *Tree) writeTo(w io.Writer, indent, keyspace string, bytesCount int64) (int64, error) { - simpleValuesKeys := make([]string, 0) - complexValuesKeys := make([]string, 0) - - for k := range t.values { - v := t.values[k] - switch v.(type) { - case *Tree, []*Tree: - complexValuesKeys = append(complexValuesKeys, k) - default: - simpleValuesKeys = append(simpleValuesKeys, k) - } - } - - sort.Strings(simpleValuesKeys) - sort.Strings(complexValuesKeys) - - for _, k := range simpleValuesKeys { - v, ok := t.values[k].(*tomlValue) - if !ok { - return bytesCount, fmt.Errorf("invalid value type at %s: %T", k, t.values[k]) - } - - repr, err := tomlValueStringRepresentation(v.value) - if err != nil { - return bytesCount, err - } - - writtenBytesCount, err := writeStrings(w, indent, k, " = ", repr, "\n") - bytesCount += int64(writtenBytesCount) - if err != nil { - return bytesCount, err - } - } - - for _, k := range complexValuesKeys { - v := t.values[k] - - combinedKey := k - if keyspace != "" { - combinedKey = keyspace + "." + combinedKey - } - - switch node := v.(type) { - // node has to be of those two types given how keys are sorted above - case *Tree: - writtenBytesCount, err := writeStrings(w, "\n", indent, "[", combinedKey, "]\n") - bytesCount += int64(writtenBytesCount) - if err != nil { - return bytesCount, err - } - bytesCount, err = node.writeTo(w, indent+" ", combinedKey, bytesCount) - if err != nil { - return bytesCount, err - } - case []*Tree: - for _, subTree := range node { - writtenBytesCount, err := writeStrings(w, "\n", indent, "[[", combinedKey, "]]\n") - bytesCount += int64(writtenBytesCount) - if err != nil { - return bytesCount, err - } - - bytesCount, err = subTree.writeTo(w, indent+" ", combinedKey, bytesCount) - if err != nil { - return bytesCount, err - } - } - } - } - - return bytesCount, nil -} - -func writeStrings(w io.Writer, s ...string) (int, error) { - var n int - for i := range s { - b, err := io.WriteString(w, s[i]) - n += b - if err != nil { - return n, err - } - } - return n, nil -} - -// WriteTo encode the Tree as Toml and writes it to the writer w. -// Returns the number of bytes written in case of success, or an error if anything happened. -func (t *Tree) WriteTo(w io.Writer) (int64, error) { - return t.writeTo(w, "", "", 0) -} - -// ToTomlString generates a human-readable representation of the current tree. -// Output spans multiple lines, and is suitable for ingest by a TOML parser. -// If the conversion cannot be performed, ToString returns a non-nil error. -func (t *Tree) ToTomlString() (string, error) { - var buf bytes.Buffer - _, err := t.WriteTo(&buf) - if err != nil { - return "", err - } - return buf.String(), nil -} - -// String generates a human-readable representation of the current tree. -// Alias of ToString. Present to implement the fmt.Stringer interface. -func (t *Tree) String() string { - result, _ := t.ToTomlString() - return result -} - -// ToMap recursively generates a representation of the tree using Go built-in structures. -// The following types are used: -// -// * bool -// * float64 -// * int64 -// * string -// * uint64 -// * time.Time -// * map[string]interface{} (where interface{} is any of this list) -// * []interface{} (where interface{} is any of this list) -func (t *Tree) ToMap() map[string]interface{} { - result := map[string]interface{}{} - - for k, v := range t.values { - switch node := v.(type) { - case []*Tree: - var array []interface{} - for _, item := range node { - array = append(array, item.ToMap()) - } - result[k] = array - case *Tree: - result[k] = node.ToMap() - case *tomlValue: - result[k] = node.value - } - } - return result -} diff --git a/vendor/github.com/spf13/afero/LICENSE.txt b/vendor/github.com/spf13/afero/LICENSE.txt deleted file mode 100644 index 298f0e2..0000000 --- a/vendor/github.com/spf13/afero/LICENSE.txt +++ /dev/null @@ -1,174 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. diff --git a/vendor/github.com/spf13/afero/README.md b/vendor/github.com/spf13/afero/README.md deleted file mode 100644 index d9e3327..0000000 --- a/vendor/github.com/spf13/afero/README.md +++ /dev/null @@ -1,449 +0,0 @@ -![afero logo-sm](https://cloud.githubusercontent.com/assets/173412/11490338/d50e16dc-97a5-11e5-8b12-019a300d0fcb.png) - -A FileSystem Abstraction System for Go - -[![Build Status](https://travis-ci.org/spf13/afero.svg)](https://travis-ci.org/spf13/afero) [![Build status](https://ci.appveyor.com/api/projects/status/github/spf13/afero?branch=master&svg=true)](https://ci.appveyor.com/project/spf13/afero) [![GoDoc](https://godoc.org/github.com/spf13/afero?status.svg)](https://godoc.org/github.com/spf13/afero) [![Join the chat at https://gitter.im/spf13/afero](https://badges.gitter.im/Dev%20Chat.svg)](https://gitter.im/spf13/afero?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) - -# Overview - -Afero is an filesystem framework providing a simple, uniform and universal API -interacting with any filesystem, as an abstraction layer providing interfaces, -types and methods. Afero has an exceptionally clean interface and simple design -without needless constructors or initialization methods. - -Afero is also a library providing a base set of interoperable backend -filesystems that make it easy to work with afero while retaining all the power -and benefit of the os and ioutil packages. - -Afero provides significant improvements over using the os package alone, most -notably the ability to create mock and testing filesystems without relying on the disk. - -It is suitable for use in a any situation where you would consider using the OS -package as it provides an additional abstraction that makes it easy to use a -memory backed file system during testing. It also adds support for the http -filesystem for full interoperability. - - -## Afero Features - -* A single consistent API for accessing a variety of filesystems -* Interoperation between a variety of file system types -* A set of interfaces to encourage and enforce interoperability between backends -* An atomic cross platform memory backed file system -* Support for compositional (union) file systems by combining multiple file systems acting as one -* Specialized backends which modify existing filesystems (Read Only, Regexp filtered) -* A set of utility functions ported from io, ioutil & hugo to be afero aware - - -# Using Afero - -Afero is easy to use and easier to adopt. - -A few different ways you could use Afero: - -* Use the interfaces alone to define you own file system. -* Wrap for the OS packages. -* Define different filesystems for different parts of your application. -* Use Afero for mock filesystems while testing - -## Step 1: Install Afero - -First use go get to install the latest version of the library. - - $ go get github.com/spf13/afero - -Next include Afero in your application. -```go -import "github.com/spf13/afero" -``` - -## Step 2: Declare a backend - -First define a package variable and set it to a pointer to a filesystem. -```go -var AppFs afero.Fs = afero.NewMemMapFs() - -or - -var AppFs afero.Fs = afero.NewOsFs() -``` -It is important to note that if you repeat the composite literal you -will be using a completely new and isolated filesystem. In the case of -OsFs it will still use the same underlying filesystem but will reduce -the ability to drop in other filesystems as desired. - -## Step 3: Use it like you would the OS package - -Throughout your application use any function and method like you normally -would. - -So if my application before had: -```go -os.Open('/tmp/foo') -``` -We would replace it with a call to `AppFs.Open('/tmp/foo')`. - -`AppFs` being the variable we defined above. - - -## List of all available functions - -File System Methods Available: -```go -Chmod(name string, mode os.FileMode) : error -Chtimes(name string, atime time.Time, mtime time.Time) : error -Create(name string) : File, error -Mkdir(name string, perm os.FileMode) : error -MkdirAll(path string, perm os.FileMode) : error -Name() : string -Open(name string) : File, error -OpenFile(name string, flag int, perm os.FileMode) : File, error -Remove(name string) : error -RemoveAll(path string) : error -Rename(oldname, newname string) : error -Stat(name string) : os.FileInfo, error -``` -File Interfaces and Methods Available: -```go -io.Closer -io.Reader -io.ReaderAt -io.Seeker -io.Writer -io.WriterAt - -Name() : string -Readdir(count int) : []os.FileInfo, error -Readdirnames(n int) : []string, error -Stat() : os.FileInfo, error -Sync() : error -Truncate(size int64) : error -WriteString(s string) : ret int, err error -``` -In some applications it may make sense to define a new package that -simply exports the file system variable for easy access from anywhere. - -## Using Afero's utility functions - -Afero provides a set of functions to make it easier to use the underlying file systems. -These functions have been primarily ported from io & ioutil with some developed for Hugo. - -The afero utilities support all afero compatible backends. - -The list of utilities includes: - -```go -DirExists(path string) (bool, error) -Exists(path string) (bool, error) -FileContainsBytes(filename string, subslice []byte) (bool, error) -GetTempDir(subPath string) string -IsDir(path string) (bool, error) -IsEmpty(path string) (bool, error) -ReadDir(dirname string) ([]os.FileInfo, error) -ReadFile(filename string) ([]byte, error) -SafeWriteReader(path string, r io.Reader) (err error) -TempDir(dir, prefix string) (name string, err error) -TempFile(dir, prefix string) (f File, err error) -Walk(root string, walkFn filepath.WalkFunc) error -WriteFile(filename string, data []byte, perm os.FileMode) error -WriteReader(path string, r io.Reader) (err error) -``` -For a complete list see [Afero's GoDoc](https://godoc.org/github.com/spf13/afero) - -They are available under two different approaches to use. You can either call -them directly where the first parameter of each function will be the file -system, or you can declare a new `Afero`, a custom type used to bind these -functions as methods to a given filesystem. - -### Calling utilities directly - -```go -fs := new(afero.MemMapFs) -f, err := afero.TempFile(fs,"", "ioutil-test") - -``` - -### Calling via Afero - -```go -fs := afero.NewMemMapFs -afs := &Afero{Fs: fs} -f, err := afs.TempFile("", "ioutil-test") -``` - -## Using Afero for Testing - -There is a large benefit to using a mock filesystem for testing. It has a -completely blank state every time it is initialized and can be easily -reproducible regardless of OS. You could create files to your heart’s content -and the file access would be fast while also saving you from all the annoying -issues with deleting temporary files, Windows file locking, etc. The MemMapFs -backend is perfect for testing. - -* Much faster than performing I/O operations on disk -* Avoid security issues and permissions -* Far more control. 'rm -rf /' with confidence -* Test setup is far more easier to do -* No test cleanup needed - -One way to accomplish this is to define a variable as mentioned above. -In your application this will be set to afero.NewOsFs() during testing you -can set it to afero.NewMemMapFs(). - -It wouldn't be uncommon to have each test initialize a blank slate memory -backend. To do this I would define my `appFS = afero.NewOsFs()` somewhere -appropriate in my application code. This approach ensures that Tests are order -independent, with no test relying on the state left by an earlier test. - -Then in my tests I would initialize a new MemMapFs for each test: -```go -func TestExist(t *testing.T) { - appFS := afero.NewMemMapFs() - // create test files and directories - appFS.MkdirAll("src/a", 0755) - afero.WriteFile(appFS, "src/a/b", []byte("file b"), 0644) - afero.WriteFile(appFS, "src/c", []byte("file c"), 0644) - name := "src/c" - _, err := appFS.Stat(name) - if os.IsNotExist(err) { - t.Errorf("file \"%s\" does not exist.\n", name) - } -} -``` - -# Available Backends - -## Operating System Native - -### OsFs - -The first is simply a wrapper around the native OS calls. This makes it -very easy to use as all of the calls are the same as the existing OS -calls. It also makes it trivial to have your code use the OS during -operation and a mock filesystem during testing or as needed. - -```go -appfs := afero.NewOsFs() -appfs.MkdirAll("src/a", 0755)) -``` - -## Memory Backed Storage - -### MemMapFs - -Afero also provides a fully atomic memory backed filesystem perfect for use in -mocking and to speed up unnecessary disk io when persistence isn’t -necessary. It is fully concurrent and will work within go routines -safely. - -```go -mm := afero.NewMemMapFs() -mm.MkdirAll("src/a", 0755)) -``` - -#### InMemoryFile - -As part of MemMapFs, Afero also provides an atomic, fully concurrent memory -backed file implementation. This can be used in other memory backed file -systems with ease. Plans are to add a radix tree memory stored file -system using InMemoryFile. - -## Network Interfaces - -### SftpFs - -Afero has experimental support for secure file transfer protocol (sftp). Which can -be used to perform file operations over a encrypted channel. - -## Filtering Backends - -### BasePathFs - -The BasePathFs restricts all operations to a given path within an Fs. -The given file name to the operations on this Fs will be prepended with -the base path before calling the source Fs. - -```go -bp := afero.NewBasePathFs(afero.NewOsFs(), "/base/path") -``` - -### ReadOnlyFs - -A thin wrapper around the source Fs providing a read only view. - -```go -fs := afero.NewReadOnlyFs(afero.NewOsFs()) -_, err := fs.Create("/file.txt") -// err = syscall.EPERM -``` - -# RegexpFs - -A filtered view on file names, any file NOT matching -the passed regexp will be treated as non-existing. -Files not matching the regexp provided will not be created. -Directories are not filtered. - -```go -fs := afero.NewRegexpFs(afero.NewMemMapFs(), regexp.MustCompile(`\.txt$`)) -_, err := fs.Create("/file.html") -// err = syscall.ENOENT -``` - -### HttpFs - -Afero provides an http compatible backend which can wrap any of the existing -backends. - -The Http package requires a slightly specific version of Open which -returns an http.File type. - -Afero provides an httpFs file system which satisfies this requirement. -Any Afero FileSystem can be used as an httpFs. - -```go -httpFs := afero.NewHttpFs() -fileserver := http.FileServer(httpFs.Dir())) -http.Handle("/", fileserver) -``` - -## Composite Backends - -Afero provides the ability have two filesystems (or more) act as a single -file system. - -### CacheOnReadFs - -The CacheOnReadFs will lazily make copies of any accessed files from the base -layer into the overlay. Subsequent reads will be pulled from the overlay -directly permitting the request is within the cache duration of when it was -created in the overlay. - -If the base filesystem is writeable, any changes to files will be -done first to the base, then to the overlay layer. Write calls to open file -handles like `Write()` or `Truncate()` to the overlay first. - -To writing files to the overlay only, you can use the overlay Fs directly (not -via the union Fs). - -Cache files in the layer for the given time.Duration, a cache duration of 0 -means "forever" meaning the file will not be re-requested from the base ever. - -A read-only base will make the overlay also read-only but still copy files -from the base to the overlay when they're not present (or outdated) in the -caching layer. - -```go -base := afero.NewOsFs() -layer := afero.NewMemMapFs() -ufs := afero.NewCacheOnReadFs(base, layer, 100 * time.Second) -``` - -### CopyOnWriteFs() - -The CopyOnWriteFs is a read only base file system with a potentially -writeable layer on top. - -Read operations will first look in the overlay and if not found there, will -serve the file from the base. - -Changes to the file system will only be made in the overlay. - -Any attempt to modify a file found only in the base will copy the file to the -overlay layer before modification (including opening a file with a writable -handle). - -Removing and Renaming files present only in the base layer is not currently -permitted. If a file is present in the base layer and the overlay, only the -overlay will be removed/renamed. - -```go - base := afero.NewOsFs() - roBase := afero.NewReadOnlyFs(base) - ufs := afero.NewCopyOnWriteFs(roBase, afero.NewMemMapFs()) - - fh, _ = ufs.Create("/home/test/file2.txt") - fh.WriteString("This is a test") - fh.Close() -``` - -In this example all write operations will only occur in memory (MemMapFs) -leaving the base filesystem (OsFs) untouched. - - -## Desired/possible backends - -The following is a short list of possible backends we hope someone will -implement: - -* SSH -* ZIP -* TAR -* S3 - -# About the project - -## What's in the name - -Afero comes from the latin roots Ad-Facere. - -**"Ad"** is a prefix meaning "to". - -**"Facere"** is a form of the root "faciō" making "make or do". - -The literal meaning of afero is "to make" or "to do" which seems very fitting -for a library that allows one to make files and directories and do things with them. - -The English word that shares the same roots as Afero is "affair". Affair shares -the same concept but as a noun it means "something that is made or done" or "an -object of a particular type". - -It's also nice that unlike some of my other libraries (hugo, cobra, viper) it -Googles very well. - -## Release Notes - -* **0.10.0** 2015.12.10 - * Full compatibility with Windows - * Introduction of afero utilities - * Test suite rewritten to work cross platform - * Normalize paths for MemMapFs - * Adding Sync to the file interface - * **Breaking Change** Walk and ReadDir have changed parameter order - * Moving types used by MemMapFs to a subpackage - * General bugfixes and improvements -* **0.9.0** 2015.11.05 - * New Walk function similar to filepath.Walk - * MemMapFs.OpenFile handles O_CREATE, O_APPEND, O_TRUNC - * MemMapFs.Remove now really deletes the file - * InMemoryFile.Readdir and Readdirnames work correctly - * InMemoryFile functions lock it for concurrent access - * Test suite improvements -* **0.8.0** 2014.10.28 - * First public version - * Interfaces feel ready for people to build using - * Interfaces satisfy all known uses - * MemMapFs passes the majority of the OS test suite - * OsFs passes the majority of the OS test suite - -## Contributing - -1. Fork it -2. Create your feature branch (`git checkout -b my-new-feature`) -3. Commit your changes (`git commit -am 'Add some feature'`) -4. Push to the branch (`git push origin my-new-feature`) -5. Create new Pull Request - -## Contributors - -Names in no particular order: - -* [spf13](https://github.com/spf13) -* [jaqx0r](https://github.com/jaqx0r) -* [mbertschler](https://github.com/mbertschler) -* [xor-gate](https://github.com/xor-gate) - -## License - -Afero is released under the Apache 2.0 license. See -[LICENSE.txt](https://github.com/spf13/afero/blob/master/LICENSE.txt) diff --git a/vendor/github.com/spf13/afero/afero.go b/vendor/github.com/spf13/afero/afero.go deleted file mode 100644 index f5b5e12..0000000 --- a/vendor/github.com/spf13/afero/afero.go +++ /dev/null @@ -1,108 +0,0 @@ -// Copyright © 2014 Steve Francia . -// Copyright 2013 tsuru authors. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// Package afero provides types and methods for interacting with the filesystem, -// as an abstraction layer. - -// Afero also provides a few implementations that are mostly interoperable. One that -// uses the operating system filesystem, one that uses memory to store files -// (cross platform) and an interface that should be implemented if you want to -// provide your own filesystem. - -package afero - -import ( - "errors" - "io" - "os" - "time" -) - -type Afero struct { - Fs -} - -// File represents a file in the filesystem. -type File interface { - io.Closer - io.Reader - io.ReaderAt - io.Seeker - io.Writer - io.WriterAt - - Name() string - Readdir(count int) ([]os.FileInfo, error) - Readdirnames(n int) ([]string, error) - Stat() (os.FileInfo, error) - Sync() error - Truncate(size int64) error - WriteString(s string) (ret int, err error) -} - -// Fs is the filesystem interface. -// -// Any simulated or real filesystem should implement this interface. -type Fs interface { - // Create creates a file in the filesystem, returning the file and an - // error, if any happens. - Create(name string) (File, error) - - // Mkdir creates a directory in the filesystem, return an error if any - // happens. - Mkdir(name string, perm os.FileMode) error - - // MkdirAll creates a directory path and all parents that does not exist - // yet. - MkdirAll(path string, perm os.FileMode) error - - // Open opens a file, returning it or an error, if any happens. - Open(name string) (File, error) - - // OpenFile opens a file using the given flags and the given mode. - OpenFile(name string, flag int, perm os.FileMode) (File, error) - - // Remove removes a file identified by name, returning an error, if any - // happens. - Remove(name string) error - - // RemoveAll removes a directory path and any children it contains. It - // does not fail if the path does not exist (return nil). - RemoveAll(path string) error - - // Rename renames a file. - Rename(oldname, newname string) error - - // Stat returns a FileInfo describing the named file, or an error, if any - // happens. - Stat(name string) (os.FileInfo, error) - - // The name of this FileSystem - Name() string - - //Chmod changes the mode of the named file to mode. - Chmod(name string, mode os.FileMode) error - - //Chtimes changes the access and modification times of the named file - Chtimes(name string, atime time.Time, mtime time.Time) error -} - -var ( - ErrFileClosed = errors.New("File is closed") - ErrOutOfRange = errors.New("Out of range") - ErrTooLarge = errors.New("Too large") - ErrFileNotFound = os.ErrNotExist - ErrFileExists = os.ErrExist - ErrDestinationExists = os.ErrExist -) diff --git a/vendor/github.com/spf13/afero/appveyor.yml b/vendor/github.com/spf13/afero/appveyor.yml deleted file mode 100644 index 006f315..0000000 --- a/vendor/github.com/spf13/afero/appveyor.yml +++ /dev/null @@ -1,15 +0,0 @@ -version: '{build}' -clone_folder: C:\gopath\src\github.com\spf13\afero -environment: - GOPATH: C:\gopath -build_script: -- cmd: >- - go version - - go env - - go get -v github.com/spf13/afero/... - - go build github.com/spf13/afero -test_script: -- cmd: go test -v github.com/spf13/afero diff --git a/vendor/github.com/spf13/afero/basepath.go b/vendor/github.com/spf13/afero/basepath.go deleted file mode 100644 index 5e4fc2e..0000000 --- a/vendor/github.com/spf13/afero/basepath.go +++ /dev/null @@ -1,145 +0,0 @@ -package afero - -import ( - "errors" - "os" - "path/filepath" - "runtime" - "strings" - "time" -) - -// The BasePathFs restricts all operations to a given path within an Fs. -// The given file name to the operations on this Fs will be prepended with -// the base path before calling the base Fs. -// Any file name (after filepath.Clean()) outside this base path will be -// treated as non existing file. -// -// Note that it does not clean the error messages on return, so you may -// reveal the real path on errors. -type BasePathFs struct { - source Fs - path string -} - -func NewBasePathFs(source Fs, path string) Fs { - return &BasePathFs{source: source, path: path} -} - -// on a file outside the base path it returns the given file name and an error, -// else the given file with the base path prepended -func (b *BasePathFs) RealPath(name string) (path string, err error) { - if err := validateBasePathName(name); err != nil { - return "", err - } - - bpath := filepath.Clean(b.path) - path = filepath.Clean(filepath.Join(bpath, name)) - if !strings.HasPrefix(path, bpath) { - return name, os.ErrNotExist - } - - return path, nil -} - -func validateBasePathName(name string) error { - if runtime.GOOS != "windows" { - // Not much to do here; - // the virtual file paths all look absolute on *nix. - return nil - } - - // On Windows a common mistake would be to provide an absolute OS path - // We could strip out the base part, but that would not be very portable. - if filepath.IsAbs(name) { - return &os.PathError{Op: "realPath", Path: name, Err: errors.New("got a real OS path instead of a virtual")} - } - - return nil -} - -func (b *BasePathFs) Chtimes(name string, atime, mtime time.Time) (err error) { - if name, err = b.RealPath(name); err != nil { - return &os.PathError{Op: "chtimes", Path: name, Err: err} - } - return b.source.Chtimes(name, atime, mtime) -} - -func (b *BasePathFs) Chmod(name string, mode os.FileMode) (err error) { - if name, err = b.RealPath(name); err != nil { - return &os.PathError{Op: "chmod", Path: name, Err: err} - } - return b.source.Chmod(name, mode) -} - -func (b *BasePathFs) Name() string { - return "BasePathFs" -} - -func (b *BasePathFs) Stat(name string) (fi os.FileInfo, err error) { - if name, err = b.RealPath(name); err != nil { - return nil, &os.PathError{Op: "stat", Path: name, Err: err} - } - return b.source.Stat(name) -} - -func (b *BasePathFs) Rename(oldname, newname string) (err error) { - if oldname, err = b.RealPath(oldname); err != nil { - return &os.PathError{Op: "rename", Path: oldname, Err: err} - } - if newname, err = b.RealPath(newname); err != nil { - return &os.PathError{Op: "rename", Path: newname, Err: err} - } - return b.source.Rename(oldname, newname) -} - -func (b *BasePathFs) RemoveAll(name string) (err error) { - if name, err = b.RealPath(name); err != nil { - return &os.PathError{Op: "remove_all", Path: name, Err: err} - } - return b.source.RemoveAll(name) -} - -func (b *BasePathFs) Remove(name string) (err error) { - if name, err = b.RealPath(name); err != nil { - return &os.PathError{Op: "remove", Path: name, Err: err} - } - return b.source.Remove(name) -} - -func (b *BasePathFs) OpenFile(name string, flag int, mode os.FileMode) (f File, err error) { - if name, err = b.RealPath(name); err != nil { - return nil, &os.PathError{Op: "openfile", Path: name, Err: err} - } - return b.source.OpenFile(name, flag, mode) -} - -func (b *BasePathFs) Open(name string) (f File, err error) { - if name, err = b.RealPath(name); err != nil { - return nil, &os.PathError{Op: "open", Path: name, Err: err} - } - return b.source.Open(name) -} - -func (b *BasePathFs) Mkdir(name string, mode os.FileMode) (err error) { - if name, err = b.RealPath(name); err != nil { - return &os.PathError{Op: "mkdir", Path: name, Err: err} - } - return b.source.Mkdir(name, mode) -} - -func (b *BasePathFs) MkdirAll(name string, mode os.FileMode) (err error) { - if name, err = b.RealPath(name); err != nil { - return &os.PathError{Op: "mkdir", Path: name, Err: err} - } - return b.source.MkdirAll(name, mode) -} - -func (b *BasePathFs) Create(name string) (f File, err error) { - if name, err = b.RealPath(name); err != nil { - return nil, &os.PathError{Op: "create", Path: name, Err: err} - } - return b.source.Create(name) -} - -// vim: ts=4 sw=4 noexpandtab nolist syn=go diff --git a/vendor/github.com/spf13/afero/cacheOnReadFs.go b/vendor/github.com/spf13/afero/cacheOnReadFs.go deleted file mode 100644 index e54a4f8..0000000 --- a/vendor/github.com/spf13/afero/cacheOnReadFs.go +++ /dev/null @@ -1,295 +0,0 @@ -package afero - -import ( - "os" - "syscall" - "time" -) - -// If the cache duration is 0, cache time will be unlimited, i.e. once -// a file is in the layer, the base will never be read again for this file. -// -// For cache times greater than 0, the modification time of a file is -// checked. Note that a lot of file system implementations only allow a -// resolution of a second for timestamps... or as the godoc for os.Chtimes() -// states: "The underlying filesystem may truncate or round the values to a -// less precise time unit." -// -// This caching union will forward all write calls also to the base file -// system first. To prevent writing to the base Fs, wrap it in a read-only -// filter - Note: this will also make the overlay read-only, for writing files -// in the overlay, use the overlay Fs directly, not via the union Fs. -type CacheOnReadFs struct { - base Fs - layer Fs - cacheTime time.Duration -} - -func NewCacheOnReadFs(base Fs, layer Fs, cacheTime time.Duration) Fs { - return &CacheOnReadFs{base: base, layer: layer, cacheTime: cacheTime} -} - -type cacheState int - -const ( - // not present in the overlay, unknown if it exists in the base: - cacheMiss cacheState = iota - // present in the overlay and in base, base file is newer: - cacheStale - // present in the overlay - with cache time == 0 it may exist in the base, - // with cacheTime > 0 it exists in the base and is same age or newer in the - // overlay - cacheHit - // happens if someone writes directly to the overlay without - // going through this union - cacheLocal -) - -func (u *CacheOnReadFs) cacheStatus(name string) (state cacheState, fi os.FileInfo, err error) { - var lfi, bfi os.FileInfo - lfi, err = u.layer.Stat(name) - if err == nil { - if u.cacheTime == 0 { - return cacheHit, lfi, nil - } - if lfi.ModTime().Add(u.cacheTime).Before(time.Now()) { - bfi, err = u.base.Stat(name) - if err != nil { - return cacheLocal, lfi, nil - } - if bfi.ModTime().After(lfi.ModTime()) { - return cacheStale, bfi, nil - } - } - return cacheHit, lfi, nil - } - - if err == syscall.ENOENT { - return cacheMiss, nil, nil - } - var ok bool - if err, ok = err.(*os.PathError); ok { - if err == os.ErrNotExist { - return cacheMiss, nil, nil - } - } - return cacheMiss, nil, err -} - -func (u *CacheOnReadFs) copyToLayer(name string) error { - return copyToLayer(u.base, u.layer, name) -} - -func (u *CacheOnReadFs) Chtimes(name string, atime, mtime time.Time) error { - st, _, err := u.cacheStatus(name) - if err != nil { - return err - } - switch st { - case cacheLocal: - case cacheHit: - err = u.base.Chtimes(name, atime, mtime) - case cacheStale, cacheMiss: - if err := u.copyToLayer(name); err != nil { - return err - } - err = u.base.Chtimes(name, atime, mtime) - } - if err != nil { - return err - } - return u.layer.Chtimes(name, atime, mtime) -} - -func (u *CacheOnReadFs) Chmod(name string, mode os.FileMode) error { - st, _, err := u.cacheStatus(name) - if err != nil { - return err - } - switch st { - case cacheLocal: - case cacheHit: - err = u.base.Chmod(name, mode) - case cacheStale, cacheMiss: - if err := u.copyToLayer(name); err != nil { - return err - } - err = u.base.Chmod(name, mode) - } - if err != nil { - return err - } - return u.layer.Chmod(name, mode) -} - -func (u *CacheOnReadFs) Stat(name string) (os.FileInfo, error) { - st, fi, err := u.cacheStatus(name) - if err != nil { - return nil, err - } - switch st { - case cacheMiss: - return u.base.Stat(name) - default: // cacheStale has base, cacheHit and cacheLocal the layer os.FileInfo - return fi, nil - } -} - -func (u *CacheOnReadFs) Rename(oldname, newname string) error { - st, _, err := u.cacheStatus(oldname) - if err != nil { - return err - } - switch st { - case cacheLocal: - case cacheHit: - err = u.base.Rename(oldname, newname) - case cacheStale, cacheMiss: - if err := u.copyToLayer(oldname); err != nil { - return err - } - err = u.base.Rename(oldname, newname) - } - if err != nil { - return err - } - return u.layer.Rename(oldname, newname) -} - -func (u *CacheOnReadFs) Remove(name string) error { - st, _, err := u.cacheStatus(name) - if err != nil { - return err - } - switch st { - case cacheLocal: - case cacheHit, cacheStale, cacheMiss: - err = u.base.Remove(name) - } - if err != nil { - return err - } - return u.layer.Remove(name) -} - -func (u *CacheOnReadFs) RemoveAll(name string) error { - st, _, err := u.cacheStatus(name) - if err != nil { - return err - } - switch st { - case cacheLocal: - case cacheHit, cacheStale, cacheMiss: - err = u.base.RemoveAll(name) - } - if err != nil { - return err - } - return u.layer.RemoveAll(name) -} - -func (u *CacheOnReadFs) OpenFile(name string, flag int, perm os.FileMode) (File, error) { - st, _, err := u.cacheStatus(name) - if err != nil { - return nil, err - } - switch st { - case cacheLocal, cacheHit: - default: - if err := u.copyToLayer(name); err != nil { - return nil, err - } - } - if flag&(os.O_WRONLY|syscall.O_RDWR|os.O_APPEND|os.O_CREATE|os.O_TRUNC) != 0 { - bfi, err := u.base.OpenFile(name, flag, perm) - if err != nil { - return nil, err - } - lfi, err := u.layer.OpenFile(name, flag, perm) - if err != nil { - bfi.Close() // oops, what if O_TRUNC was set and file opening in the layer failed...? - return nil, err - } - return &UnionFile{base: bfi, layer: lfi}, nil - } - return u.layer.OpenFile(name, flag, perm) -} - -func (u *CacheOnReadFs) Open(name string) (File, error) { - st, fi, err := u.cacheStatus(name) - if err != nil { - return nil, err - } - - switch st { - case cacheLocal: - return u.layer.Open(name) - - case cacheMiss: - bfi, err := u.base.Stat(name) - if err != nil { - return nil, err - } - if bfi.IsDir() { - return u.base.Open(name) - } - if err := u.copyToLayer(name); err != nil { - return nil, err - } - return u.layer.Open(name) - - case cacheStale: - if !fi.IsDir() { - if err := u.copyToLayer(name); err != nil { - return nil, err - } - return u.layer.Open(name) - } - case cacheHit: - if !fi.IsDir() { - return u.layer.Open(name) - } - } - // the dirs from cacheHit, cacheStale fall down here: - bfile, _ := u.base.Open(name) - lfile, err := u.layer.Open(name) - if err != nil && bfile == nil { - return nil, err - } - return &UnionFile{base: bfile, layer: lfile}, nil -} - -func (u *CacheOnReadFs) Mkdir(name string, perm os.FileMode) error { - err := u.base.Mkdir(name, perm) - if err != nil { - return err - } - return u.layer.MkdirAll(name, perm) // yes, MkdirAll... we cannot assume it exists in the cache -} - -func (u *CacheOnReadFs) Name() string { - return "CacheOnReadFs" -} - -func (u *CacheOnReadFs) MkdirAll(name string, perm os.FileMode) error { - err := u.base.MkdirAll(name, perm) - if err != nil { - return err - } - return u.layer.MkdirAll(name, perm) -} - -func (u *CacheOnReadFs) Create(name string) (File, error) { - bfh, err := u.base.Create(name) - if err != nil { - return nil, err - } - lfh, err := u.layer.Create(name) - if err != nil { - // oops, see comment about OS_TRUNC above, should we remove? then we have to - // remember if the file did not exist before - bfh.Close() - return nil, err - } - return &UnionFile{base: bfh, layer: lfh}, nil -} diff --git a/vendor/github.com/spf13/afero/const_bsds.go b/vendor/github.com/spf13/afero/const_bsds.go deleted file mode 100644 index 5728243..0000000 --- a/vendor/github.com/spf13/afero/const_bsds.go +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright © 2016 Steve Francia . -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// +build darwin openbsd freebsd netbsd dragonfly - -package afero - -import ( - "syscall" -) - -const BADFD = syscall.EBADF diff --git a/vendor/github.com/spf13/afero/const_win_unix.go b/vendor/github.com/spf13/afero/const_win_unix.go deleted file mode 100644 index 968fc27..0000000 --- a/vendor/github.com/spf13/afero/const_win_unix.go +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright © 2016 Steve Francia . -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// +build !darwin -// +build !openbsd -// +build !freebsd -// +build !dragonfly -// +build !netbsd - -package afero - -import ( - "syscall" -) - -const BADFD = syscall.EBADFD diff --git a/vendor/github.com/spf13/afero/copyOnWriteFs.go b/vendor/github.com/spf13/afero/copyOnWriteFs.go deleted file mode 100644 index ed692ae..0000000 --- a/vendor/github.com/spf13/afero/copyOnWriteFs.go +++ /dev/null @@ -1,253 +0,0 @@ -package afero - -import ( - "fmt" - "os" - "path/filepath" - "syscall" - "time" -) - -// The CopyOnWriteFs is a union filesystem: a read only base file system with -// a possibly writeable layer on top. Changes to the file system will only -// be made in the overlay: Changing an existing file in the base layer which -// is not present in the overlay will copy the file to the overlay ("changing" -// includes also calls to e.g. Chtimes() and Chmod()). -// -// Reading directories is currently only supported via Open(), not OpenFile(). -type CopyOnWriteFs struct { - base Fs - layer Fs -} - -func NewCopyOnWriteFs(base Fs, layer Fs) Fs { - return &CopyOnWriteFs{base: base, layer: layer} -} - -// Returns true if the file is not in the overlay -func (u *CopyOnWriteFs) isBaseFile(name string) (bool, error) { - if _, err := u.layer.Stat(name); err == nil { - return false, nil - } - _, err := u.base.Stat(name) - if err != nil { - if oerr, ok := err.(*os.PathError); ok { - if oerr.Err == os.ErrNotExist || oerr.Err == syscall.ENOENT || oerr.Err == syscall.ENOTDIR { - return false, nil - } - } - if err == syscall.ENOENT { - return false, nil - } - } - return true, err -} - -func (u *CopyOnWriteFs) copyToLayer(name string) error { - return copyToLayer(u.base, u.layer, name) -} - -func (u *CopyOnWriteFs) Chtimes(name string, atime, mtime time.Time) error { - b, err := u.isBaseFile(name) - if err != nil { - return err - } - if b { - if err := u.copyToLayer(name); err != nil { - return err - } - } - return u.layer.Chtimes(name, atime, mtime) -} - -func (u *CopyOnWriteFs) Chmod(name string, mode os.FileMode) error { - b, err := u.isBaseFile(name) - if err != nil { - return err - } - if b { - if err := u.copyToLayer(name); err != nil { - return err - } - } - return u.layer.Chmod(name, mode) -} - -func (u *CopyOnWriteFs) Stat(name string) (os.FileInfo, error) { - fi, err := u.layer.Stat(name) - if err != nil { - origErr := err - if e, ok := err.(*os.PathError); ok { - err = e.Err - } - if err == syscall.ENOENT || err == syscall.ENOTDIR { - return u.base.Stat(name) - } - return nil, origErr - } - return fi, nil -} - -// Renaming files present only in the base layer is not permitted -func (u *CopyOnWriteFs) Rename(oldname, newname string) error { - b, err := u.isBaseFile(oldname) - if err != nil { - return err - } - if b { - return syscall.EPERM - } - return u.layer.Rename(oldname, newname) -} - -// Removing files present only in the base layer is not permitted. If -// a file is present in the base layer and the overlay, only the overlay -// will be removed. -func (u *CopyOnWriteFs) Remove(name string) error { - err := u.layer.Remove(name) - switch err { - case syscall.ENOENT: - _, err = u.base.Stat(name) - if err == nil { - return syscall.EPERM - } - return syscall.ENOENT - default: - return err - } -} - -func (u *CopyOnWriteFs) RemoveAll(name string) error { - err := u.layer.RemoveAll(name) - switch err { - case syscall.ENOENT: - _, err = u.base.Stat(name) - if err == nil { - return syscall.EPERM - } - return syscall.ENOENT - default: - return err - } -} - -func (u *CopyOnWriteFs) OpenFile(name string, flag int, perm os.FileMode) (File, error) { - b, err := u.isBaseFile(name) - if err != nil { - return nil, err - } - - if flag&(os.O_WRONLY|os.O_RDWR|os.O_APPEND|os.O_CREATE|os.O_TRUNC) != 0 { - if b { - if err = u.copyToLayer(name); err != nil { - return nil, err - } - return u.layer.OpenFile(name, flag, perm) - } - - dir := filepath.Dir(name) - isaDir, err := IsDir(u.base, dir) - if err != nil && !os.IsNotExist(err) { - return nil, err - } - if isaDir { - if err = u.layer.MkdirAll(dir, 0777); err != nil { - return nil, err - } - return u.layer.OpenFile(name, flag, perm) - } - - isaDir, err = IsDir(u.layer, dir) - if err != nil { - return nil, err - } - if isaDir { - return u.layer.OpenFile(name, flag, perm) - } - - return nil, &os.PathError{Op: "open", Path: name, Err: syscall.ENOTDIR} // ...or os.ErrNotExist? - } - if b { - return u.base.OpenFile(name, flag, perm) - } - return u.layer.OpenFile(name, flag, perm) -} - -// This function handles the 9 different possibilities caused -// by the union which are the intersection of the following... -// layer: doesn't exist, exists as a file, and exists as a directory -// base: doesn't exist, exists as a file, and exists as a directory -func (u *CopyOnWriteFs) Open(name string) (File, error) { - // Since the overlay overrides the base we check that first - b, err := u.isBaseFile(name) - if err != nil { - return nil, err - } - - // If overlay doesn't exist, return the base (base state irrelevant) - if b { - return u.base.Open(name) - } - - // If overlay is a file, return it (base state irrelevant) - dir, err := IsDir(u.layer, name) - if err != nil { - return nil, err - } - if !dir { - return u.layer.Open(name) - } - - // Overlay is a directory, base state now matters. - // Base state has 3 states to check but 2 outcomes: - // A. It's a file or non-readable in the base (return just the overlay) - // B. It's an accessible directory in the base (return a UnionFile) - - // If base is file or nonreadable, return overlay - dir, err = IsDir(u.base, name) - if !dir || err != nil { - return u.layer.Open(name) - } - - // Both base & layer are directories - // Return union file (if opens are without error) - bfile, bErr := u.base.Open(name) - lfile, lErr := u.layer.Open(name) - - // If either have errors at this point something is very wrong. Return nil and the errors - if bErr != nil || lErr != nil { - return nil, fmt.Errorf("BaseErr: %v\nOverlayErr: %v", bErr, lErr) - } - - return &UnionFile{base: bfile, layer: lfile}, nil -} - -func (u *CopyOnWriteFs) Mkdir(name string, perm os.FileMode) error { - dir, err := IsDir(u.base, name) - if err != nil { - return u.layer.MkdirAll(name, perm) - } - if dir { - return syscall.EEXIST - } - return u.layer.MkdirAll(name, perm) -} - -func (u *CopyOnWriteFs) Name() string { - return "CopyOnWriteFs" -} - -func (u *CopyOnWriteFs) MkdirAll(name string, perm os.FileMode) error { - dir, err := IsDir(u.base, name) - if err != nil { - return u.layer.MkdirAll(name, perm) - } - if dir { - return syscall.EEXIST - } - return u.layer.MkdirAll(name, perm) -} - -func (u *CopyOnWriteFs) Create(name string) (File, error) { - return u.OpenFile(name, os.O_CREATE|os.O_TRUNC|os.O_RDWR, 0666) -} diff --git a/vendor/github.com/spf13/afero/httpFs.go b/vendor/github.com/spf13/afero/httpFs.go deleted file mode 100644 index c421936..0000000 --- a/vendor/github.com/spf13/afero/httpFs.go +++ /dev/null @@ -1,110 +0,0 @@ -// Copyright © 2014 Steve Francia . -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package afero - -import ( - "errors" - "net/http" - "os" - "path" - "path/filepath" - "strings" - "time" -) - -type httpDir struct { - basePath string - fs HttpFs -} - -func (d httpDir) Open(name string) (http.File, error) { - if filepath.Separator != '/' && strings.IndexRune(name, filepath.Separator) >= 0 || - strings.Contains(name, "\x00") { - return nil, errors.New("http: invalid character in file path") - } - dir := string(d.basePath) - if dir == "" { - dir = "." - } - - f, err := d.fs.Open(filepath.Join(dir, filepath.FromSlash(path.Clean("/"+name)))) - if err != nil { - return nil, err - } - return f, nil -} - -type HttpFs struct { - source Fs -} - -func NewHttpFs(source Fs) *HttpFs { - return &HttpFs{source: source} -} - -func (h HttpFs) Dir(s string) *httpDir { - return &httpDir{basePath: s, fs: h} -} - -func (h HttpFs) Name() string { return "h HttpFs" } - -func (h HttpFs) Create(name string) (File, error) { - return h.source.Create(name) -} - -func (h HttpFs) Chmod(name string, mode os.FileMode) error { - return h.source.Chmod(name, mode) -} - -func (h HttpFs) Chtimes(name string, atime time.Time, mtime time.Time) error { - return h.source.Chtimes(name, atime, mtime) -} - -func (h HttpFs) Mkdir(name string, perm os.FileMode) error { - return h.source.Mkdir(name, perm) -} - -func (h HttpFs) MkdirAll(path string, perm os.FileMode) error { - return h.source.MkdirAll(path, perm) -} - -func (h HttpFs) Open(name string) (http.File, error) { - f, err := h.source.Open(name) - if err == nil { - if httpfile, ok := f.(http.File); ok { - return httpfile, nil - } - } - return nil, err -} - -func (h HttpFs) OpenFile(name string, flag int, perm os.FileMode) (File, error) { - return h.source.OpenFile(name, flag, perm) -} - -func (h HttpFs) Remove(name string) error { - return h.source.Remove(name) -} - -func (h HttpFs) RemoveAll(path string) error { - return h.source.RemoveAll(path) -} - -func (h HttpFs) Rename(oldname, newname string) error { - return h.source.Rename(oldname, newname) -} - -func (h HttpFs) Stat(name string) (os.FileInfo, error) { - return h.source.Stat(name) -} diff --git a/vendor/github.com/spf13/afero/ioutil.go b/vendor/github.com/spf13/afero/ioutil.go deleted file mode 100644 index 5c3a3d8..0000000 --- a/vendor/github.com/spf13/afero/ioutil.go +++ /dev/null @@ -1,230 +0,0 @@ -// Copyright ©2015 The Go Authors -// Copyright ©2015 Steve Francia -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package afero - -import ( - "bytes" - "io" - "os" - "path/filepath" - "sort" - "strconv" - "sync" - "time" -) - -// byName implements sort.Interface. -type byName []os.FileInfo - -func (f byName) Len() int { return len(f) } -func (f byName) Less(i, j int) bool { return f[i].Name() < f[j].Name() } -func (f byName) Swap(i, j int) { f[i], f[j] = f[j], f[i] } - -// ReadDir reads the directory named by dirname and returns -// a list of sorted directory entries. -func (a Afero) ReadDir(dirname string) ([]os.FileInfo, error) { - return ReadDir(a.Fs, dirname) -} - -func ReadDir(fs Fs, dirname string) ([]os.FileInfo, error) { - f, err := fs.Open(dirname) - if err != nil { - return nil, err - } - list, err := f.Readdir(-1) - f.Close() - if err != nil { - return nil, err - } - sort.Sort(byName(list)) - return list, nil -} - -// ReadFile reads the file named by filename and returns the contents. -// A successful call returns err == nil, not err == EOF. Because ReadFile -// reads the whole file, it does not treat an EOF from Read as an error -// to be reported. -func (a Afero) ReadFile(filename string) ([]byte, error) { - return ReadFile(a.Fs, filename) -} - -func ReadFile(fs Fs, filename string) ([]byte, error) { - f, err := fs.Open(filename) - if err != nil { - return nil, err - } - defer f.Close() - // It's a good but not certain bet that FileInfo will tell us exactly how much to - // read, so let's try it but be prepared for the answer to be wrong. - var n int64 - - if fi, err := f.Stat(); err == nil { - // Don't preallocate a huge buffer, just in case. - if size := fi.Size(); size < 1e9 { - n = size - } - } - // As initial capacity for readAll, use n + a little extra in case Size is zero, - // and to avoid another allocation after Read has filled the buffer. The readAll - // call will read into its allocated internal buffer cheaply. If the size was - // wrong, we'll either waste some space off the end or reallocate as needed, but - // in the overwhelmingly common case we'll get it just right. - return readAll(f, n+bytes.MinRead) -} - -// readAll reads from r until an error or EOF and returns the data it read -// from the internal buffer allocated with a specified capacity. -func readAll(r io.Reader, capacity int64) (b []byte, err error) { - buf := bytes.NewBuffer(make([]byte, 0, capacity)) - // If the buffer overflows, we will get bytes.ErrTooLarge. - // Return that as an error. Any other panic remains. - defer func() { - e := recover() - if e == nil { - return - } - if panicErr, ok := e.(error); ok && panicErr == bytes.ErrTooLarge { - err = panicErr - } else { - panic(e) - } - }() - _, err = buf.ReadFrom(r) - return buf.Bytes(), err -} - -// ReadAll reads from r until an error or EOF and returns the data it read. -// A successful call returns err == nil, not err == EOF. Because ReadAll is -// defined to read from src until EOF, it does not treat an EOF from Read -// as an error to be reported. -func ReadAll(r io.Reader) ([]byte, error) { - return readAll(r, bytes.MinRead) -} - -// WriteFile writes data to a file named by filename. -// If the file does not exist, WriteFile creates it with permissions perm; -// otherwise WriteFile truncates it before writing. -func (a Afero) WriteFile(filename string, data []byte, perm os.FileMode) error { - return WriteFile(a.Fs, filename, data, perm) -} - -func WriteFile(fs Fs, filename string, data []byte, perm os.FileMode) error { - f, err := fs.OpenFile(filename, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, perm) - if err != nil { - return err - } - n, err := f.Write(data) - if err == nil && n < len(data) { - err = io.ErrShortWrite - } - if err1 := f.Close(); err == nil { - err = err1 - } - return err -} - -// Random number state. -// We generate random temporary file names so that there's a good -// chance the file doesn't exist yet - keeps the number of tries in -// TempFile to a minimum. -var rand uint32 -var randmu sync.Mutex - -func reseed() uint32 { - return uint32(time.Now().UnixNano() + int64(os.Getpid())) -} - -func nextSuffix() string { - randmu.Lock() - r := rand - if r == 0 { - r = reseed() - } - r = r*1664525 + 1013904223 // constants from Numerical Recipes - rand = r - randmu.Unlock() - return strconv.Itoa(int(1e9 + r%1e9))[1:] -} - -// TempFile creates a new temporary file in the directory dir -// with a name beginning with prefix, opens the file for reading -// and writing, and returns the resulting *File. -// If dir is the empty string, TempFile uses the default directory -// for temporary files (see os.TempDir). -// Multiple programs calling TempFile simultaneously -// will not choose the same file. The caller can use f.Name() -// to find the pathname of the file. It is the caller's responsibility -// to remove the file when no longer needed. -func (a Afero) TempFile(dir, prefix string) (f File, err error) { - return TempFile(a.Fs, dir, prefix) -} - -func TempFile(fs Fs, dir, prefix string) (f File, err error) { - if dir == "" { - dir = os.TempDir() - } - - nconflict := 0 - for i := 0; i < 10000; i++ { - name := filepath.Join(dir, prefix+nextSuffix()) - f, err = fs.OpenFile(name, os.O_RDWR|os.O_CREATE|os.O_EXCL, 0600) - if os.IsExist(err) { - if nconflict++; nconflict > 10 { - randmu.Lock() - rand = reseed() - randmu.Unlock() - } - continue - } - break - } - return -} - -// TempDir creates a new temporary directory in the directory dir -// with a name beginning with prefix and returns the path of the -// new directory. If dir is the empty string, TempDir uses the -// default directory for temporary files (see os.TempDir). -// Multiple programs calling TempDir simultaneously -// will not choose the same directory. It is the caller's responsibility -// to remove the directory when no longer needed. -func (a Afero) TempDir(dir, prefix string) (name string, err error) { - return TempDir(a.Fs, dir, prefix) -} -func TempDir(fs Fs, dir, prefix string) (name string, err error) { - if dir == "" { - dir = os.TempDir() - } - - nconflict := 0 - for i := 0; i < 10000; i++ { - try := filepath.Join(dir, prefix+nextSuffix()) - err = fs.Mkdir(try, 0700) - if os.IsExist(err) { - if nconflict++; nconflict > 10 { - randmu.Lock() - rand = reseed() - randmu.Unlock() - } - continue - } - if err == nil { - name = try - } - break - } - return -} diff --git a/vendor/github.com/spf13/afero/match.go b/vendor/github.com/spf13/afero/match.go deleted file mode 100644 index 08b3b7e..0000000 --- a/vendor/github.com/spf13/afero/match.go +++ /dev/null @@ -1,110 +0,0 @@ -// Copyright © 2014 Steve Francia . -// Copyright 2009 The Go Authors. All rights reserved. - -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package afero - -import ( - "path/filepath" - "sort" - "strings" -) - -// Glob returns the names of all files matching pattern or nil -// if there is no matching file. The syntax of patterns is the same -// as in Match. The pattern may describe hierarchical names such as -// /usr/*/bin/ed (assuming the Separator is '/'). -// -// Glob ignores file system errors such as I/O errors reading directories. -// The only possible returned error is ErrBadPattern, when pattern -// is malformed. -// -// This was adapted from (http://golang.org/pkg/path/filepath) and uses several -// built-ins from that package. -func Glob(fs Fs, pattern string) (matches []string, err error) { - if !hasMeta(pattern) { - // afero does not support Lstat directly. - if _, err = lstatIfOs(fs, pattern); err != nil { - return nil, nil - } - return []string{pattern}, nil - } - - dir, file := filepath.Split(pattern) - switch dir { - case "": - dir = "." - case string(filepath.Separator): - // nothing - default: - dir = dir[0 : len(dir)-1] // chop off trailing separator - } - - if !hasMeta(dir) { - return glob(fs, dir, file, nil) - } - - var m []string - m, err = Glob(fs, dir) - if err != nil { - return - } - for _, d := range m { - matches, err = glob(fs, d, file, matches) - if err != nil { - return - } - } - return -} - -// glob searches for files matching pattern in the directory dir -// and appends them to matches. If the directory cannot be -// opened, it returns the existing matches. New matches are -// added in lexicographical order. -func glob(fs Fs, dir, pattern string, matches []string) (m []string, e error) { - m = matches - fi, err := fs.Stat(dir) - if err != nil { - return - } - if !fi.IsDir() { - return - } - d, err := fs.Open(dir) - if err != nil { - return - } - defer d.Close() - - names, _ := d.Readdirnames(-1) - sort.Strings(names) - - for _, n := range names { - matched, err := filepath.Match(pattern, n) - if err != nil { - return m, err - } - if matched { - m = append(m, filepath.Join(dir, n)) - } - } - return -} - -// hasMeta reports whether path contains any of the magic characters -// recognized by Match. -func hasMeta(path string) bool { - // TODO(niemeyer): Should other magic characters be added here? - return strings.IndexAny(path, "*?[") >= 0 -} diff --git a/vendor/github.com/spf13/afero/mem/dir.go b/vendor/github.com/spf13/afero/mem/dir.go deleted file mode 100644 index e104013..0000000 --- a/vendor/github.com/spf13/afero/mem/dir.go +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright © 2014 Steve Francia . -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package mem - -type Dir interface { - Len() int - Names() []string - Files() []*FileData - Add(*FileData) - Remove(*FileData) -} - -func RemoveFromMemDir(dir *FileData, f *FileData) { - dir.memDir.Remove(f) -} - -func AddToMemDir(dir *FileData, f *FileData) { - dir.memDir.Add(f) -} - -func InitializeDir(d *FileData) { - if d.memDir == nil { - d.dir = true - d.memDir = &DirMap{} - } -} diff --git a/vendor/github.com/spf13/afero/mem/dirmap.go b/vendor/github.com/spf13/afero/mem/dirmap.go deleted file mode 100644 index 03a57ee..0000000 --- a/vendor/github.com/spf13/afero/mem/dirmap.go +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright © 2015 Steve Francia . -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package mem - -import "sort" - -type DirMap map[string]*FileData - -func (m DirMap) Len() int { return len(m) } -func (m DirMap) Add(f *FileData) { m[f.name] = f } -func (m DirMap) Remove(f *FileData) { delete(m, f.name) } -func (m DirMap) Files() (files []*FileData) { - for _, f := range m { - files = append(files, f) - } - sort.Sort(filesSorter(files)) - return files -} - -// implement sort.Interface for []*FileData -type filesSorter []*FileData - -func (s filesSorter) Len() int { return len(s) } -func (s filesSorter) Swap(i, j int) { s[i], s[j] = s[j], s[i] } -func (s filesSorter) Less(i, j int) bool { return s[i].name < s[j].name } - -func (m DirMap) Names() (names []string) { - for x := range m { - names = append(names, x) - } - return names -} diff --git a/vendor/github.com/spf13/afero/mem/file.go b/vendor/github.com/spf13/afero/mem/file.go deleted file mode 100644 index e41e012..0000000 --- a/vendor/github.com/spf13/afero/mem/file.go +++ /dev/null @@ -1,285 +0,0 @@ -// Copyright © 2015 Steve Francia . -// Copyright 2013 tsuru authors. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package mem - -import ( - "bytes" - "errors" - "io" - "os" - "path/filepath" - "sync" - "sync/atomic" -) - -import "time" - -const FilePathSeparator = string(filepath.Separator) - -type File struct { - // atomic requires 64-bit alignment for struct field access - at int64 - readDirCount int64 - closed bool - readOnly bool - fileData *FileData -} - -func NewFileHandle(data *FileData) *File { - return &File{fileData: data} -} - -func NewReadOnlyFileHandle(data *FileData) *File { - return &File{fileData: data, readOnly: true} -} - -func (f File) Data() *FileData { - return f.fileData -} - -type FileData struct { - sync.Mutex - name string - data []byte - memDir Dir - dir bool - mode os.FileMode - modtime time.Time -} - -func (d *FileData) Name() string { - d.Lock() - defer d.Unlock() - return d.name -} - -func CreateFile(name string) *FileData { - return &FileData{name: name, mode: os.ModeTemporary, modtime: time.Now()} -} - -func CreateDir(name string) *FileData { - return &FileData{name: name, memDir: &DirMap{}, dir: true} -} - -func ChangeFileName(f *FileData, newname string) { - f.name = newname -} - -func SetMode(f *FileData, mode os.FileMode) { - f.mode = mode -} - -func SetModTime(f *FileData, mtime time.Time) { - f.modtime = mtime -} - -func GetFileInfo(f *FileData) *FileInfo { - return &FileInfo{f} -} - -func (f *File) Open() error { - atomic.StoreInt64(&f.at, 0) - atomic.StoreInt64(&f.readDirCount, 0) - f.fileData.Lock() - f.closed = false - f.fileData.Unlock() - return nil -} - -func (f *File) Close() error { - f.fileData.Lock() - f.closed = true - if !f.readOnly { - SetModTime(f.fileData, time.Now()) - } - f.fileData.Unlock() - return nil -} - -func (f *File) Name() string { - return f.fileData.Name() -} - -func (f *File) Stat() (os.FileInfo, error) { - return &FileInfo{f.fileData}, nil -} - -func (f *File) Sync() error { - return nil -} - -func (f *File) Readdir(count int) (res []os.FileInfo, err error) { - var outLength int64 - - f.fileData.Lock() - files := f.fileData.memDir.Files()[f.readDirCount:] - if count > 0 { - if len(files) < count { - outLength = int64(len(files)) - } else { - outLength = int64(count) - } - if len(files) == 0 { - err = io.EOF - } - } else { - outLength = int64(len(files)) - } - f.readDirCount += outLength - f.fileData.Unlock() - - res = make([]os.FileInfo, outLength) - for i := range res { - res[i] = &FileInfo{files[i]} - } - - return res, err -} - -func (f *File) Readdirnames(n int) (names []string, err error) { - fi, err := f.Readdir(n) - names = make([]string, len(fi)) - for i, f := range fi { - _, names[i] = filepath.Split(f.Name()) - } - return names, err -} - -func (f *File) Read(b []byte) (n int, err error) { - f.fileData.Lock() - defer f.fileData.Unlock() - if f.closed == true { - return 0, ErrFileClosed - } - if len(b) > 0 && int(f.at) == len(f.fileData.data) { - return 0, io.EOF - } - if len(f.fileData.data)-int(f.at) >= len(b) { - n = len(b) - } else { - n = len(f.fileData.data) - int(f.at) - } - copy(b, f.fileData.data[f.at:f.at+int64(n)]) - atomic.AddInt64(&f.at, int64(n)) - return -} - -func (f *File) ReadAt(b []byte, off int64) (n int, err error) { - atomic.StoreInt64(&f.at, off) - return f.Read(b) -} - -func (f *File) Truncate(size int64) error { - if f.closed == true { - return ErrFileClosed - } - if f.readOnly { - return &os.PathError{Op: "truncate", Path: f.fileData.name, Err: errors.New("file handle is read only")} - } - if size < 0 { - return ErrOutOfRange - } - if size > int64(len(f.fileData.data)) { - diff := size - int64(len(f.fileData.data)) - f.fileData.data = append(f.fileData.data, bytes.Repeat([]byte{00}, int(diff))...) - } else { - f.fileData.data = f.fileData.data[0:size] - } - SetModTime(f.fileData, time.Now()) - return nil -} - -func (f *File) Seek(offset int64, whence int) (int64, error) { - if f.closed == true { - return 0, ErrFileClosed - } - switch whence { - case 0: - atomic.StoreInt64(&f.at, offset) - case 1: - atomic.AddInt64(&f.at, int64(offset)) - case 2: - atomic.StoreInt64(&f.at, int64(len(f.fileData.data))+offset) - } - return f.at, nil -} - -func (f *File) Write(b []byte) (n int, err error) { - if f.readOnly { - return 0, &os.PathError{Op: "write", Path: f.fileData.name, Err: errors.New("file handle is read only")} - } - n = len(b) - cur := atomic.LoadInt64(&f.at) - f.fileData.Lock() - defer f.fileData.Unlock() - diff := cur - int64(len(f.fileData.data)) - var tail []byte - if n+int(cur) < len(f.fileData.data) { - tail = f.fileData.data[n+int(cur):] - } - if diff > 0 { - f.fileData.data = append(bytes.Repeat([]byte{00}, int(diff)), b...) - f.fileData.data = append(f.fileData.data, tail...) - } else { - f.fileData.data = append(f.fileData.data[:cur], b...) - f.fileData.data = append(f.fileData.data, tail...) - } - SetModTime(f.fileData, time.Now()) - - atomic.StoreInt64(&f.at, int64(len(f.fileData.data))) - return -} - -func (f *File) WriteAt(b []byte, off int64) (n int, err error) { - atomic.StoreInt64(&f.at, off) - return f.Write(b) -} - -func (f *File) WriteString(s string) (ret int, err error) { - return f.Write([]byte(s)) -} - -func (f *File) Info() *FileInfo { - return &FileInfo{f.fileData} -} - -type FileInfo struct { - *FileData -} - -// Implements os.FileInfo -func (s *FileInfo) Name() string { - _, name := filepath.Split(s.name) - return name -} -func (s *FileInfo) Mode() os.FileMode { return s.mode } -func (s *FileInfo) ModTime() time.Time { return s.modtime } -func (s *FileInfo) IsDir() bool { return s.dir } -func (s *FileInfo) Sys() interface{} { return nil } -func (s *FileInfo) Size() int64 { - if s.IsDir() { - return int64(42) - } - return int64(len(s.data)) -} - -var ( - ErrFileClosed = errors.New("File is closed") - ErrOutOfRange = errors.New("Out of range") - ErrTooLarge = errors.New("Too large") - ErrFileNotFound = os.ErrNotExist - ErrFileExists = os.ErrExist - ErrDestinationExists = os.ErrExist -) diff --git a/vendor/github.com/spf13/afero/memmap.go b/vendor/github.com/spf13/afero/memmap.go deleted file mode 100644 index 14cd438..0000000 --- a/vendor/github.com/spf13/afero/memmap.go +++ /dev/null @@ -1,366 +0,0 @@ -// Copyright © 2014 Steve Francia . -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package afero - -import ( - "fmt" - "log" - "os" - "path/filepath" - "strings" - "sync" - "time" - - "github.com/spf13/afero/mem" -) - -type MemMapFs struct { - mu sync.RWMutex - data map[string]*mem.FileData - init sync.Once -} - -func NewMemMapFs() Fs { - return &MemMapFs{} -} - -func (m *MemMapFs) getData() map[string]*mem.FileData { - m.init.Do(func() { - m.data = make(map[string]*mem.FileData) - // Root should always exist, right? - // TODO: what about windows? - m.data[FilePathSeparator] = mem.CreateDir(FilePathSeparator) - }) - return m.data -} - -func (*MemMapFs) Name() string { return "MemMapFS" } - -func (m *MemMapFs) Create(name string) (File, error) { - name = normalizePath(name) - m.mu.Lock() - file := mem.CreateFile(name) - m.getData()[name] = file - m.registerWithParent(file) - m.mu.Unlock() - return mem.NewFileHandle(file), nil -} - -func (m *MemMapFs) unRegisterWithParent(fileName string) error { - f, err := m.lockfreeOpen(fileName) - if err != nil { - return err - } - parent := m.findParent(f) - if parent == nil { - log.Panic("parent of ", f.Name(), " is nil") - } - - parent.Lock() - mem.RemoveFromMemDir(parent, f) - parent.Unlock() - return nil -} - -func (m *MemMapFs) findParent(f *mem.FileData) *mem.FileData { - pdir, _ := filepath.Split(f.Name()) - pdir = filepath.Clean(pdir) - pfile, err := m.lockfreeOpen(pdir) - if err != nil { - return nil - } - return pfile -} - -func (m *MemMapFs) registerWithParent(f *mem.FileData) { - if f == nil { - return - } - parent := m.findParent(f) - if parent == nil { - pdir := filepath.Dir(filepath.Clean(f.Name())) - err := m.lockfreeMkdir(pdir, 0777) - if err != nil { - //log.Println("Mkdir error:", err) - return - } - parent, err = m.lockfreeOpen(pdir) - if err != nil { - //log.Println("Open after Mkdir error:", err) - return - } - } - - parent.Lock() - mem.InitializeDir(parent) - mem.AddToMemDir(parent, f) - parent.Unlock() -} - -func (m *MemMapFs) lockfreeMkdir(name string, perm os.FileMode) error { - name = normalizePath(name) - x, ok := m.getData()[name] - if ok { - // Only return ErrFileExists if it's a file, not a directory. - i := mem.FileInfo{FileData: x} - if !i.IsDir() { - return ErrFileExists - } - } else { - item := mem.CreateDir(name) - m.getData()[name] = item - m.registerWithParent(item) - } - return nil -} - -func (m *MemMapFs) Mkdir(name string, perm os.FileMode) error { - name = normalizePath(name) - - m.mu.RLock() - _, ok := m.getData()[name] - m.mu.RUnlock() - if ok { - return &os.PathError{Op: "mkdir", Path: name, Err: ErrFileExists} - } - - m.mu.Lock() - item := mem.CreateDir(name) - m.getData()[name] = item - m.registerWithParent(item) - m.mu.Unlock() - - m.Chmod(name, perm) - - return nil -} - -func (m *MemMapFs) MkdirAll(path string, perm os.FileMode) error { - err := m.Mkdir(path, perm) - if err != nil { - if err.(*os.PathError).Err == ErrFileExists { - return nil - } else { - return err - } - } - return nil -} - -// Handle some relative paths -func normalizePath(path string) string { - path = filepath.Clean(path) - - switch path { - case ".": - return FilePathSeparator - case "..": - return FilePathSeparator - default: - return path - } -} - -func (m *MemMapFs) Open(name string) (File, error) { - f, err := m.open(name) - if f != nil { - return mem.NewReadOnlyFileHandle(f), err - } - return nil, err -} - -func (m *MemMapFs) openWrite(name string) (File, error) { - f, err := m.open(name) - if f != nil { - return mem.NewFileHandle(f), err - } - return nil, err -} - -func (m *MemMapFs) open(name string) (*mem.FileData, error) { - name = normalizePath(name) - - m.mu.RLock() - f, ok := m.getData()[name] - m.mu.RUnlock() - if !ok { - return nil, &os.PathError{Op: "open", Path: name, Err: ErrFileNotFound} - } - return f, nil -} - -func (m *MemMapFs) lockfreeOpen(name string) (*mem.FileData, error) { - name = normalizePath(name) - f, ok := m.getData()[name] - if ok { - return f, nil - } else { - return nil, ErrFileNotFound - } -} - -func (m *MemMapFs) OpenFile(name string, flag int, perm os.FileMode) (File, error) { - chmod := false - file, err := m.openWrite(name) - if os.IsNotExist(err) && (flag&os.O_CREATE > 0) { - file, err = m.Create(name) - chmod = true - } - if err != nil { - return nil, err - } - if flag == os.O_RDONLY { - file = mem.NewReadOnlyFileHandle(file.(*mem.File).Data()) - } - if flag&os.O_APPEND > 0 { - _, err = file.Seek(0, os.SEEK_END) - if err != nil { - file.Close() - return nil, err - } - } - if flag&os.O_TRUNC > 0 && flag&(os.O_RDWR|os.O_WRONLY) > 0 { - err = file.Truncate(0) - if err != nil { - file.Close() - return nil, err - } - } - if chmod { - m.Chmod(name, perm) - } - return file, nil -} - -func (m *MemMapFs) Remove(name string) error { - name = normalizePath(name) - - m.mu.Lock() - defer m.mu.Unlock() - - if _, ok := m.getData()[name]; ok { - err := m.unRegisterWithParent(name) - if err != nil { - return &os.PathError{Op: "remove", Path: name, Err: err} - } - delete(m.getData(), name) - } else { - return &os.PathError{Op: "remove", Path: name, Err: os.ErrNotExist} - } - return nil -} - -func (m *MemMapFs) RemoveAll(path string) error { - path = normalizePath(path) - m.mu.Lock() - m.unRegisterWithParent(path) - m.mu.Unlock() - - m.mu.RLock() - defer m.mu.RUnlock() - - for p, _ := range m.getData() { - if strings.HasPrefix(p, path) { - m.mu.RUnlock() - m.mu.Lock() - delete(m.getData(), p) - m.mu.Unlock() - m.mu.RLock() - } - } - return nil -} - -func (m *MemMapFs) Rename(oldname, newname string) error { - oldname = normalizePath(oldname) - newname = normalizePath(newname) - - if oldname == newname { - return nil - } - - m.mu.RLock() - defer m.mu.RUnlock() - if _, ok := m.getData()[oldname]; ok { - m.mu.RUnlock() - m.mu.Lock() - m.unRegisterWithParent(oldname) - fileData := m.getData()[oldname] - delete(m.getData(), oldname) - mem.ChangeFileName(fileData, newname) - m.getData()[newname] = fileData - m.registerWithParent(fileData) - m.mu.Unlock() - m.mu.RLock() - } else { - return &os.PathError{Op: "rename", Path: oldname, Err: ErrFileNotFound} - } - return nil -} - -func (m *MemMapFs) Stat(name string) (os.FileInfo, error) { - f, err := m.Open(name) - if err != nil { - return nil, err - } - fi := mem.GetFileInfo(f.(*mem.File).Data()) - return fi, nil -} - -func (m *MemMapFs) Chmod(name string, mode os.FileMode) error { - name = normalizePath(name) - - m.mu.RLock() - f, ok := m.getData()[name] - m.mu.RUnlock() - if !ok { - return &os.PathError{Op: "chmod", Path: name, Err: ErrFileNotFound} - } - - m.mu.Lock() - mem.SetMode(f, mode) - m.mu.Unlock() - - return nil -} - -func (m *MemMapFs) Chtimes(name string, atime time.Time, mtime time.Time) error { - name = normalizePath(name) - - m.mu.RLock() - f, ok := m.getData()[name] - m.mu.RUnlock() - if !ok { - return &os.PathError{Op: "chtimes", Path: name, Err: ErrFileNotFound} - } - - m.mu.Lock() - mem.SetModTime(f, mtime) - m.mu.Unlock() - - return nil -} - -func (m *MemMapFs) List() { - for _, x := range m.data { - y := mem.FileInfo{FileData: x} - fmt.Println(x.Name(), y.Size()) - } -} - -// func debugMemMapList(fs Fs) { -// if x, ok := fs.(*MemMapFs); ok { -// x.List() -// } -// } diff --git a/vendor/github.com/spf13/afero/memradix.go b/vendor/github.com/spf13/afero/memradix.go deleted file mode 100644 index 87527f3..0000000 --- a/vendor/github.com/spf13/afero/memradix.go +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright © 2014 Steve Francia . -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package afero diff --git a/vendor/github.com/spf13/afero/os.go b/vendor/github.com/spf13/afero/os.go deleted file mode 100644 index 6b8bce1..0000000 --- a/vendor/github.com/spf13/afero/os.go +++ /dev/null @@ -1,94 +0,0 @@ -// Copyright © 2014 Steve Francia . -// Copyright 2013 tsuru authors. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package afero - -import ( - "os" - "time" -) - -// OsFs is a Fs implementation that uses functions provided by the os package. -// -// For details in any method, check the documentation of the os package -// (http://golang.org/pkg/os/). -type OsFs struct{} - -func NewOsFs() Fs { - return &OsFs{} -} - -func (OsFs) Name() string { return "OsFs" } - -func (OsFs) Create(name string) (File, error) { - f, e := os.Create(name) - if f == nil { - // while this looks strange, we need to return a bare nil (of type nil) not - // a nil value of type *os.File or nil won't be nil - return nil, e - } - return f, e -} - -func (OsFs) Mkdir(name string, perm os.FileMode) error { - return os.Mkdir(name, perm) -} - -func (OsFs) MkdirAll(path string, perm os.FileMode) error { - return os.MkdirAll(path, perm) -} - -func (OsFs) Open(name string) (File, error) { - f, e := os.Open(name) - if f == nil { - // while this looks strange, we need to return a bare nil (of type nil) not - // a nil value of type *os.File or nil won't be nil - return nil, e - } - return f, e -} - -func (OsFs) OpenFile(name string, flag int, perm os.FileMode) (File, error) { - f, e := os.OpenFile(name, flag, perm) - if f == nil { - // while this looks strange, we need to return a bare nil (of type nil) not - // a nil value of type *os.File or nil won't be nil - return nil, e - } - return f, e -} - -func (OsFs) Remove(name string) error { - return os.Remove(name) -} - -func (OsFs) RemoveAll(path string) error { - return os.RemoveAll(path) -} - -func (OsFs) Rename(oldname, newname string) error { - return os.Rename(oldname, newname) -} - -func (OsFs) Stat(name string) (os.FileInfo, error) { - return os.Stat(name) -} - -func (OsFs) Chmod(name string, mode os.FileMode) error { - return os.Chmod(name, mode) -} - -func (OsFs) Chtimes(name string, atime time.Time, mtime time.Time) error { - return os.Chtimes(name, atime, mtime) -} diff --git a/vendor/github.com/spf13/afero/path.go b/vendor/github.com/spf13/afero/path.go deleted file mode 100644 index 1d90e46..0000000 --- a/vendor/github.com/spf13/afero/path.go +++ /dev/null @@ -1,108 +0,0 @@ -// Copyright ©2015 The Go Authors -// Copyright ©2015 Steve Francia -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package afero - -import ( - "os" - "path/filepath" - "sort" -) - -// readDirNames reads the directory named by dirname and returns -// a sorted list of directory entries. -// adapted from https://golang.org/src/path/filepath/path.go -func readDirNames(fs Fs, dirname string) ([]string, error) { - f, err := fs.Open(dirname) - if err != nil { - return nil, err - } - names, err := f.Readdirnames(-1) - f.Close() - if err != nil { - return nil, err - } - sort.Strings(names) - return names, nil -} - -// walk recursively descends path, calling walkFn -// adapted from https://golang.org/src/path/filepath/path.go -func walk(fs Fs, path string, info os.FileInfo, walkFn filepath.WalkFunc) error { - err := walkFn(path, info, nil) - if err != nil { - if info.IsDir() && err == filepath.SkipDir { - return nil - } - return err - } - - if !info.IsDir() { - return nil - } - - names, err := readDirNames(fs, path) - if err != nil { - return walkFn(path, info, err) - } - - for _, name := range names { - filename := filepath.Join(path, name) - fileInfo, err := lstatIfOs(fs, filename) - if err != nil { - if err := walkFn(filename, fileInfo, err); err != nil && err != filepath.SkipDir { - return err - } - } else { - err = walk(fs, filename, fileInfo, walkFn) - if err != nil { - if !fileInfo.IsDir() || err != filepath.SkipDir { - return err - } - } - } - } - return nil -} - -// if the filesystem is OsFs use Lstat, else use fs.Stat -func lstatIfOs(fs Fs, path string) (info os.FileInfo, err error) { - _, ok := fs.(*OsFs) - if ok { - info, err = os.Lstat(path) - } else { - info, err = fs.Stat(path) - } - return -} - -// Walk walks the file tree rooted at root, calling walkFn for each file or -// directory in the tree, including root. All errors that arise visiting files -// and directories are filtered by walkFn. The files are walked in lexical -// order, which makes the output deterministic but means that for very -// large directories Walk can be inefficient. -// Walk does not follow symbolic links. - -func (a Afero) Walk(root string, walkFn filepath.WalkFunc) error { - return Walk(a.Fs, root, walkFn) -} - -func Walk(fs Fs, root string, walkFn filepath.WalkFunc) error { - info, err := lstatIfOs(fs, root) - if err != nil { - return walkFn(root, nil, err) - } - return walk(fs, root, info, walkFn) -} diff --git a/vendor/github.com/spf13/afero/readonlyfs.go b/vendor/github.com/spf13/afero/readonlyfs.go deleted file mode 100644 index f1fa55b..0000000 --- a/vendor/github.com/spf13/afero/readonlyfs.go +++ /dev/null @@ -1,70 +0,0 @@ -package afero - -import ( - "os" - "syscall" - "time" -) - -type ReadOnlyFs struct { - source Fs -} - -func NewReadOnlyFs(source Fs) Fs { - return &ReadOnlyFs{source: source} -} - -func (r *ReadOnlyFs) ReadDir(name string) ([]os.FileInfo, error) { - return ReadDir(r.source, name) -} - -func (r *ReadOnlyFs) Chtimes(n string, a, m time.Time) error { - return syscall.EPERM -} - -func (r *ReadOnlyFs) Chmod(n string, m os.FileMode) error { - return syscall.EPERM -} - -func (r *ReadOnlyFs) Name() string { - return "ReadOnlyFilter" -} - -func (r *ReadOnlyFs) Stat(name string) (os.FileInfo, error) { - return r.source.Stat(name) -} - -func (r *ReadOnlyFs) Rename(o, n string) error { - return syscall.EPERM -} - -func (r *ReadOnlyFs) RemoveAll(p string) error { - return syscall.EPERM -} - -func (r *ReadOnlyFs) Remove(n string) error { - return syscall.EPERM -} - -func (r *ReadOnlyFs) OpenFile(name string, flag int, perm os.FileMode) (File, error) { - if flag&(os.O_WRONLY|syscall.O_RDWR|os.O_APPEND|os.O_CREATE|os.O_TRUNC) != 0 { - return nil, syscall.EPERM - } - return r.source.OpenFile(name, flag, perm) -} - -func (r *ReadOnlyFs) Open(n string) (File, error) { - return r.source.Open(n) -} - -func (r *ReadOnlyFs) Mkdir(n string, p os.FileMode) error { - return syscall.EPERM -} - -func (r *ReadOnlyFs) MkdirAll(n string, p os.FileMode) error { - return syscall.EPERM -} - -func (r *ReadOnlyFs) Create(n string) (File, error) { - return nil, syscall.EPERM -} diff --git a/vendor/github.com/spf13/afero/regexpfs.go b/vendor/github.com/spf13/afero/regexpfs.go deleted file mode 100644 index 9d92dbc..0000000 --- a/vendor/github.com/spf13/afero/regexpfs.go +++ /dev/null @@ -1,214 +0,0 @@ -package afero - -import ( - "os" - "regexp" - "syscall" - "time" -) - -// The RegexpFs filters files (not directories) by regular expression. Only -// files matching the given regexp will be allowed, all others get a ENOENT error ( -// "No such file or directory"). -// -type RegexpFs struct { - re *regexp.Regexp - source Fs -} - -func NewRegexpFs(source Fs, re *regexp.Regexp) Fs { - return &RegexpFs{source: source, re: re} -} - -type RegexpFile struct { - f File - re *regexp.Regexp -} - -func (r *RegexpFs) matchesName(name string) error { - if r.re == nil { - return nil - } - if r.re.MatchString(name) { - return nil - } - return syscall.ENOENT -} - -func (r *RegexpFs) dirOrMatches(name string) error { - dir, err := IsDir(r.source, name) - if err != nil { - return err - } - if dir { - return nil - } - return r.matchesName(name) -} - -func (r *RegexpFs) Chtimes(name string, a, m time.Time) error { - if err := r.dirOrMatches(name); err != nil { - return err - } - return r.source.Chtimes(name, a, m) -} - -func (r *RegexpFs) Chmod(name string, mode os.FileMode) error { - if err := r.dirOrMatches(name); err != nil { - return err - } - return r.source.Chmod(name, mode) -} - -func (r *RegexpFs) Name() string { - return "RegexpFs" -} - -func (r *RegexpFs) Stat(name string) (os.FileInfo, error) { - if err := r.dirOrMatches(name); err != nil { - return nil, err - } - return r.source.Stat(name) -} - -func (r *RegexpFs) Rename(oldname, newname string) error { - dir, err := IsDir(r.source, oldname) - if err != nil { - return err - } - if dir { - return nil - } - if err := r.matchesName(oldname); err != nil { - return err - } - if err := r.matchesName(newname); err != nil { - return err - } - return r.source.Rename(oldname, newname) -} - -func (r *RegexpFs) RemoveAll(p string) error { - dir, err := IsDir(r.source, p) - if err != nil { - return err - } - if !dir { - if err := r.matchesName(p); err != nil { - return err - } - } - return r.source.RemoveAll(p) -} - -func (r *RegexpFs) Remove(name string) error { - if err := r.dirOrMatches(name); err != nil { - return err - } - return r.source.Remove(name) -} - -func (r *RegexpFs) OpenFile(name string, flag int, perm os.FileMode) (File, error) { - if err := r.dirOrMatches(name); err != nil { - return nil, err - } - return r.source.OpenFile(name, flag, perm) -} - -func (r *RegexpFs) Open(name string) (File, error) { - dir, err := IsDir(r.source, name) - if err != nil { - return nil, err - } - if !dir { - if err := r.matchesName(name); err != nil { - return nil, err - } - } - f, err := r.source.Open(name) - return &RegexpFile{f: f, re: r.re}, nil -} - -func (r *RegexpFs) Mkdir(n string, p os.FileMode) error { - return r.source.Mkdir(n, p) -} - -func (r *RegexpFs) MkdirAll(n string, p os.FileMode) error { - return r.source.MkdirAll(n, p) -} - -func (r *RegexpFs) Create(name string) (File, error) { - if err := r.matchesName(name); err != nil { - return nil, err - } - return r.source.Create(name) -} - -func (f *RegexpFile) Close() error { - return f.f.Close() -} - -func (f *RegexpFile) Read(s []byte) (int, error) { - return f.f.Read(s) -} - -func (f *RegexpFile) ReadAt(s []byte, o int64) (int, error) { - return f.f.ReadAt(s, o) -} - -func (f *RegexpFile) Seek(o int64, w int) (int64, error) { - return f.f.Seek(o, w) -} - -func (f *RegexpFile) Write(s []byte) (int, error) { - return f.f.Write(s) -} - -func (f *RegexpFile) WriteAt(s []byte, o int64) (int, error) { - return f.f.WriteAt(s, o) -} - -func (f *RegexpFile) Name() string { - return f.f.Name() -} - -func (f *RegexpFile) Readdir(c int) (fi []os.FileInfo, err error) { - var rfi []os.FileInfo - rfi, err = f.f.Readdir(c) - if err != nil { - return nil, err - } - for _, i := range rfi { - if i.IsDir() || f.re.MatchString(i.Name()) { - fi = append(fi, i) - } - } - return fi, nil -} - -func (f *RegexpFile) Readdirnames(c int) (n []string, err error) { - fi, err := f.Readdir(c) - if err != nil { - return nil, err - } - for _, s := range fi { - n = append(n, s.Name()) - } - return n, nil -} - -func (f *RegexpFile) Stat() (os.FileInfo, error) { - return f.f.Stat() -} - -func (f *RegexpFile) Sync() error { - return f.f.Sync() -} - -func (f *RegexpFile) Truncate(s int64) error { - return f.f.Truncate(s) -} - -func (f *RegexpFile) WriteString(s string) (int, error) { - return f.f.WriteString(s) -} diff --git a/vendor/github.com/spf13/afero/unionFile.go b/vendor/github.com/spf13/afero/unionFile.go deleted file mode 100644 index 99f9e5d..0000000 --- a/vendor/github.com/spf13/afero/unionFile.go +++ /dev/null @@ -1,274 +0,0 @@ -package afero - -import ( - "io" - "os" - "path/filepath" - "syscall" -) - -// The UnionFile implements the afero.File interface and will be returned -// when reading a directory present at least in the overlay or opening a file -// for writing. -// -// The calls to -// Readdir() and Readdirnames() merge the file os.FileInfo / names from the -// base and the overlay - for files present in both layers, only those -// from the overlay will be used. -// -// When opening files for writing (Create() / OpenFile() with the right flags) -// the operations will be done in both layers, starting with the overlay. A -// successful read in the overlay will move the cursor position in the base layer -// by the number of bytes read. -type UnionFile struct { - base File - layer File - off int - files []os.FileInfo -} - -func (f *UnionFile) Close() error { - // first close base, so we have a newer timestamp in the overlay. If we'd close - // the overlay first, we'd get a cacheStale the next time we access this file - // -> cache would be useless ;-) - if f.base != nil { - f.base.Close() - } - if f.layer != nil { - return f.layer.Close() - } - return BADFD -} - -func (f *UnionFile) Read(s []byte) (int, error) { - if f.layer != nil { - n, err := f.layer.Read(s) - if (err == nil || err == io.EOF) && f.base != nil { - // advance the file position also in the base file, the next - // call may be a write at this position (or a seek with SEEK_CUR) - if _, seekErr := f.base.Seek(int64(n), os.SEEK_CUR); seekErr != nil { - // only overwrite err in case the seek fails: we need to - // report an eventual io.EOF to the caller - err = seekErr - } - } - return n, err - } - if f.base != nil { - return f.base.Read(s) - } - return 0, BADFD -} - -func (f *UnionFile) ReadAt(s []byte, o int64) (int, error) { - if f.layer != nil { - n, err := f.layer.ReadAt(s, o) - if (err == nil || err == io.EOF) && f.base != nil { - _, err = f.base.Seek(o+int64(n), os.SEEK_SET) - } - return n, err - } - if f.base != nil { - return f.base.ReadAt(s, o) - } - return 0, BADFD -} - -func (f *UnionFile) Seek(o int64, w int) (pos int64, err error) { - if f.layer != nil { - pos, err = f.layer.Seek(o, w) - if (err == nil || err == io.EOF) && f.base != nil { - _, err = f.base.Seek(o, w) - } - return pos, err - } - if f.base != nil { - return f.base.Seek(o, w) - } - return 0, BADFD -} - -func (f *UnionFile) Write(s []byte) (n int, err error) { - if f.layer != nil { - n, err = f.layer.Write(s) - if err == nil && f.base != nil { // hmm, do we have fixed size files where a write may hit the EOF mark? - _, err = f.base.Write(s) - } - return n, err - } - if f.base != nil { - return f.base.Write(s) - } - return 0, BADFD -} - -func (f *UnionFile) WriteAt(s []byte, o int64) (n int, err error) { - if f.layer != nil { - n, err = f.layer.WriteAt(s, o) - if err == nil && f.base != nil { - _, err = f.base.WriteAt(s, o) - } - return n, err - } - if f.base != nil { - return f.base.WriteAt(s, o) - } - return 0, BADFD -} - -func (f *UnionFile) Name() string { - if f.layer != nil { - return f.layer.Name() - } - return f.base.Name() -} - -// Readdir will weave the two directories together and -// return a single view of the overlayed directories -func (f *UnionFile) Readdir(c int) (ofi []os.FileInfo, err error) { - if f.off == 0 { - var files = make(map[string]os.FileInfo) - var rfi []os.FileInfo - if f.layer != nil { - rfi, err = f.layer.Readdir(-1) - if err != nil { - return nil, err - } - for _, fi := range rfi { - files[fi.Name()] = fi - } - } - - if f.base != nil { - rfi, err = f.base.Readdir(-1) - if err != nil { - return nil, err - } - for _, fi := range rfi { - if _, exists := files[fi.Name()]; !exists { - files[fi.Name()] = fi - } - } - } - for _, fi := range files { - f.files = append(f.files, fi) - } - } - if c == -1 { - return f.files[f.off:], nil - } - defer func() { f.off += c }() - return f.files[f.off:c], nil -} - -func (f *UnionFile) Readdirnames(c int) ([]string, error) { - rfi, err := f.Readdir(c) - if err != nil { - return nil, err - } - var names []string - for _, fi := range rfi { - names = append(names, fi.Name()) - } - return names, nil -} - -func (f *UnionFile) Stat() (os.FileInfo, error) { - if f.layer != nil { - return f.layer.Stat() - } - if f.base != nil { - return f.base.Stat() - } - return nil, BADFD -} - -func (f *UnionFile) Sync() (err error) { - if f.layer != nil { - err = f.layer.Sync() - if err == nil && f.base != nil { - err = f.base.Sync() - } - return err - } - if f.base != nil { - return f.base.Sync() - } - return BADFD -} - -func (f *UnionFile) Truncate(s int64) (err error) { - if f.layer != nil { - err = f.layer.Truncate(s) - if err == nil && f.base != nil { - err = f.base.Truncate(s) - } - return err - } - if f.base != nil { - return f.base.Truncate(s) - } - return BADFD -} - -func (f *UnionFile) WriteString(s string) (n int, err error) { - if f.layer != nil { - n, err = f.layer.WriteString(s) - if err == nil && f.base != nil { - _, err = f.base.WriteString(s) - } - return n, err - } - if f.base != nil { - return f.base.WriteString(s) - } - return 0, BADFD -} - -func copyToLayer(base Fs, layer Fs, name string) error { - bfh, err := base.Open(name) - if err != nil { - return err - } - defer bfh.Close() - - // First make sure the directory exists - exists, err := Exists(layer, filepath.Dir(name)) - if err != nil { - return err - } - if !exists { - err = layer.MkdirAll(filepath.Dir(name), 0777) // FIXME? - if err != nil { - return err - } - } - - // Create the file on the overlay - lfh, err := layer.Create(name) - if err != nil { - return err - } - n, err := io.Copy(lfh, bfh) - if err != nil { - // If anything fails, clean up the file - layer.Remove(name) - lfh.Close() - return err - } - - bfi, err := bfh.Stat() - if err != nil || bfi.Size() != n { - layer.Remove(name) - lfh.Close() - return syscall.EIO - } - - err = lfh.Close() - if err != nil { - layer.Remove(name) - lfh.Close() - return err - } - return layer.Chtimes(name, bfi.ModTime(), bfi.ModTime()) -} diff --git a/vendor/github.com/spf13/afero/util.go b/vendor/github.com/spf13/afero/util.go deleted file mode 100644 index 2f44e6a..0000000 --- a/vendor/github.com/spf13/afero/util.go +++ /dev/null @@ -1,331 +0,0 @@ -// Copyright ©2015 Steve Francia -// Portions Copyright ©2015 The Hugo Authors -// Portions Copyright 2016-present Bjørn Erik Pedersen -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package afero - -import ( - "bytes" - "fmt" - "io" - "log" - "os" - "path/filepath" - "strings" - "unicode" - - "golang.org/x/text/transform" - "golang.org/x/text/unicode/norm" -) - -// Filepath separator defined by os.Separator. -const FilePathSeparator = string(filepath.Separator) - -// Takes a reader and a path and writes the content -func (a Afero) WriteReader(path string, r io.Reader) (err error) { - return WriteReader(a.Fs, path, r) -} - -func WriteReader(fs Fs, path string, r io.Reader) (err error) { - dir, _ := filepath.Split(path) - ospath := filepath.FromSlash(dir) - - if ospath != "" { - err = fs.MkdirAll(ospath, 0777) // rwx, rw, r - if err != nil { - if err != os.ErrExist { - log.Panicln(err) - } - } - } - - file, err := fs.Create(path) - if err != nil { - return - } - defer file.Close() - - _, err = io.Copy(file, r) - return -} - -// Same as WriteReader but checks to see if file/directory already exists. -func (a Afero) SafeWriteReader(path string, r io.Reader) (err error) { - return SafeWriteReader(a.Fs, path, r) -} - -func SafeWriteReader(fs Fs, path string, r io.Reader) (err error) { - dir, _ := filepath.Split(path) - ospath := filepath.FromSlash(dir) - - if ospath != "" { - err = fs.MkdirAll(ospath, 0777) // rwx, rw, r - if err != nil { - return - } - } - - exists, err := Exists(fs, path) - if err != nil { - return - } - if exists { - return fmt.Errorf("%v already exists", path) - } - - file, err := fs.Create(path) - if err != nil { - return - } - defer file.Close() - - _, err = io.Copy(file, r) - return -} - -func (a Afero) GetTempDir(subPath string) string { - return GetTempDir(a.Fs, subPath) -} - -// GetTempDir returns the default temp directory with trailing slash -// if subPath is not empty then it will be created recursively with mode 777 rwx rwx rwx -func GetTempDir(fs Fs, subPath string) string { - addSlash := func(p string) string { - if FilePathSeparator != p[len(p)-1:] { - p = p + FilePathSeparator - } - return p - } - dir := addSlash(os.TempDir()) - - if subPath != "" { - // preserve windows backslash :-( - if FilePathSeparator == "\\" { - subPath = strings.Replace(subPath, "\\", "____", -1) - } - dir = dir + UnicodeSanitize((subPath)) - if FilePathSeparator == "\\" { - dir = strings.Replace(dir, "____", "\\", -1) - } - - if exists, _ := Exists(fs, dir); exists { - return addSlash(dir) - } - - err := fs.MkdirAll(dir, 0777) - if err != nil { - panic(err) - } - dir = addSlash(dir) - } - return dir -} - -// Rewrite string to remove non-standard path characters -func UnicodeSanitize(s string) string { - source := []rune(s) - target := make([]rune, 0, len(source)) - - for _, r := range source { - if unicode.IsLetter(r) || - unicode.IsDigit(r) || - unicode.IsMark(r) || - r == '.' || - r == '/' || - r == '\\' || - r == '_' || - r == '-' || - r == '%' || - r == ' ' || - r == '#' { - target = append(target, r) - } - } - - return string(target) -} - -// Transform characters with accents into plan forms -func NeuterAccents(s string) string { - t := transform.Chain(norm.NFD, transform.RemoveFunc(isMn), norm.NFC) - result, _, _ := transform.String(t, string(s)) - - return result -} - -func isMn(r rune) bool { - return unicode.Is(unicode.Mn, r) // Mn: nonspacing marks -} - -func (a Afero) FileContainsBytes(filename string, subslice []byte) (bool, error) { - return FileContainsBytes(a.Fs, filename, subslice) -} - -// Check if a file contains a specified byte slice. -func FileContainsBytes(fs Fs, filename string, subslice []byte) (bool, error) { - f, err := fs.Open(filename) - if err != nil { - return false, err - } - defer f.Close() - - return readerContainsAny(f, subslice), nil -} - -func (a Afero) FileContainsAnyBytes(filename string, subslices [][]byte) (bool, error) { - return FileContainsAnyBytes(a.Fs, filename, subslices) -} - -// Check if a file contains any of the specified byte slices. -func FileContainsAnyBytes(fs Fs, filename string, subslices [][]byte) (bool, error) { - f, err := fs.Open(filename) - if err != nil { - return false, err - } - defer f.Close() - - return readerContainsAny(f, subslices...), nil -} - -// readerContains reports whether any of the subslices is within r. -func readerContainsAny(r io.Reader, subslices ...[]byte) bool { - - if r == nil || len(subslices) == 0 { - return false - } - - largestSlice := 0 - - for _, sl := range subslices { - if len(sl) > largestSlice { - largestSlice = len(sl) - } - } - - if largestSlice == 0 { - return false - } - - bufflen := largestSlice * 4 - halflen := bufflen / 2 - buff := make([]byte, bufflen) - var err error - var n, i int - - for { - i++ - if i == 1 { - n, err = io.ReadAtLeast(r, buff[:halflen], halflen) - } else { - if i != 2 { - // shift left to catch overlapping matches - copy(buff[:], buff[halflen:]) - } - n, err = io.ReadAtLeast(r, buff[halflen:], halflen) - } - - if n > 0 { - for _, sl := range subslices { - if bytes.Contains(buff, sl) { - return true - } - } - } - - if err != nil { - break - } - } - return false -} - -func (a Afero) DirExists(path string) (bool, error) { - return DirExists(a.Fs, path) -} - -// DirExists checks if a path exists and is a directory. -func DirExists(fs Fs, path string) (bool, error) { - fi, err := fs.Stat(path) - if err == nil && fi.IsDir() { - return true, nil - } - if os.IsNotExist(err) { - return false, nil - } - return false, err -} - -func (a Afero) IsDir(path string) (bool, error) { - return IsDir(a.Fs, path) -} - -// IsDir checks if a given path is a directory. -func IsDir(fs Fs, path string) (bool, error) { - fi, err := fs.Stat(path) - if err != nil { - return false, err - } - return fi.IsDir(), nil -} - -func (a Afero) IsEmpty(path string) (bool, error) { - return IsEmpty(a.Fs, path) -} - -// IsEmpty checks if a given file or directory is empty. -func IsEmpty(fs Fs, path string) (bool, error) { - if b, _ := Exists(fs, path); !b { - return false, fmt.Errorf("%q path does not exist", path) - } - fi, err := fs.Stat(path) - if err != nil { - return false, err - } - if fi.IsDir() { - f, err := fs.Open(path) - if err != nil { - return false, err - } - defer f.Close() - list, err := f.Readdir(-1) - return len(list) == 0, nil - } - return fi.Size() == 0, nil -} - -func (a Afero) Exists(path string) (bool, error) { - return Exists(a.Fs, path) -} - -// Check if a file or directory exists. -func Exists(fs Fs, path string) (bool, error) { - _, err := fs.Stat(path) - if err == nil { - return true, nil - } - if os.IsNotExist(err) { - return false, nil - } - return false, err -} - -func FullBaseFsPath(basePathFs *BasePathFs, relativePath string) string { - combinedPath := filepath.Join(basePathFs.path, relativePath) - if parent, ok := basePathFs.source.(*BasePathFs); ok { - return FullBaseFsPath(parent, combinedPath) - } - - return combinedPath -} diff --git a/vendor/github.com/spf13/cast/LICENSE b/vendor/github.com/spf13/cast/LICENSE deleted file mode 100644 index 4527efb..0000000 --- a/vendor/github.com/spf13/cast/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Steve Francia - -Permission 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: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE 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. \ No newline at end of file diff --git a/vendor/github.com/spf13/cast/Makefile b/vendor/github.com/spf13/cast/Makefile deleted file mode 100644 index 7ccf893..0000000 --- a/vendor/github.com/spf13/cast/Makefile +++ /dev/null @@ -1,38 +0,0 @@ -# A Self-Documenting Makefile: http://marmelab.com/blog/2016/02/29/auto-documented-makefile.html - -.PHONY: check fmt lint test test-race vet test-cover-html help -.DEFAULT_GOAL := help - -check: test-race fmt vet lint ## Run tests and linters - -test: ## Run tests - go test ./... - -test-race: ## Run tests with race detector - go test -race ./... - -fmt: ## Run gofmt linter - @for d in `go list` ; do \ - if [ "`gofmt -l -s $$GOPATH/src/$$d | tee /dev/stderr`" ]; then \ - echo "^ improperly formatted go files" && echo && exit 1; \ - fi \ - done - -lint: ## Run golint linter - @for d in `go list` ; do \ - if [ "`golint $$d | tee /dev/stderr`" ]; then \ - echo "^ golint errors!" && echo && exit 1; \ - fi \ - done - -vet: ## Run go vet linter - @if [ "`go vet | tee /dev/stderr`" ]; then \ - echo "^ go vet errors!" && echo && exit 1; \ - fi - -test-cover-html: ## Generate test coverage report - go test -coverprofile=coverage.out -covermode=count - go tool cover -func=coverage.out - -help: - @grep -E '^[a-zA-Z0-9_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' diff --git a/vendor/github.com/spf13/cast/README.md b/vendor/github.com/spf13/cast/README.md deleted file mode 100644 index e693939..0000000 --- a/vendor/github.com/spf13/cast/README.md +++ /dev/null @@ -1,75 +0,0 @@ -cast -==== -[![GoDoc](https://godoc.org/github.com/spf13/cast?status.svg)](https://godoc.org/github.com/spf13/cast) -[![Build Status](https://api.travis-ci.org/spf13/cast.svg?branch=master)](https://travis-ci.org/spf13/cast) -[![Go Report Card](https://goreportcard.com/badge/github.com/spf13/cast)](https://goreportcard.com/report/github.com/spf13/cast) - -Easy and safe casting from one type to another in Go - -Don’t Panic! ... Cast - -## What is Cast? - -Cast is a library to convert between different go types in a consistent and easy way. - -Cast provides simple functions to easily convert a number to a string, an -interface into a bool, etc. Cast does this intelligently when an obvious -conversion is possible. It doesn’t make any attempts to guess what you meant, -for example you can only convert a string to an int when it is a string -representation of an int such as “8”. Cast was developed for use in -[Hugo](http://hugo.spf13.com), a website engine which uses YAML, TOML or JSON -for meta data. - -## Why use Cast? - -When working with dynamic data in Go you often need to cast or convert the data -from one type into another. Cast goes beyond just using type assertion (though -it uses that when possible) to provide a very straightforward and convenient -library. - -If you are working with interfaces to handle things like dynamic content -you’ll need an easy way to convert an interface into a given type. This -is the library for you. - -If you are taking in data from YAML, TOML or JSON or other formats which lack -full types, then Cast is the library for you. - -## Usage - -Cast provides a handful of To_____ methods. These methods will always return -the desired type. **If input is provided that will not convert to that type, the -0 or nil value for that type will be returned**. - -Cast also provides identical methods To_____E. These return the same result as -the To_____ methods, plus an additional error which tells you if it successfully -converted. Using these methods you can tell the difference between when the -input matched the zero value or when the conversion failed and the zero value -was returned. - -The following examples are merely a sample of what is available. Please review -the code for a complete set. - -### Example ‘ToString’: - - cast.ToString("mayonegg") // "mayonegg" - cast.ToString(8) // "8" - cast.ToString(8.31) // "8.31" - cast.ToString([]byte("one time")) // "one time" - cast.ToString(nil) // "" - - var foo interface{} = "one more time" - cast.ToString(foo) // "one more time" - - -### Example ‘ToInt’: - - cast.ToInt(8) // 8 - cast.ToInt(8.31) // 8 - cast.ToInt("8") // 8 - cast.ToInt(true) // 1 - cast.ToInt(false) // 0 - - var eight interface{} = 8 - cast.ToInt(eight) // 8 - cast.ToInt(nil) // 0 - diff --git a/vendor/github.com/spf13/cast/cast.go b/vendor/github.com/spf13/cast/cast.go deleted file mode 100644 index 8b8c208..0000000 --- a/vendor/github.com/spf13/cast/cast.go +++ /dev/null @@ -1,159 +0,0 @@ -// Copyright © 2014 Steve Francia . -// -// Use of this source code is governed by an MIT-style -// license that can be found in the LICENSE file. - -// Package cast provides easy and safe casting in Go. -package cast - -import "time" - -// ToBool casts an interface to a bool type. -func ToBool(i interface{}) bool { - v, _ := ToBoolE(i) - return v -} - -// ToTime casts an interface to a time.Time type. -func ToTime(i interface{}) time.Time { - v, _ := ToTimeE(i) - return v -} - -// ToDuration casts an interface to a time.Duration type. -func ToDuration(i interface{}) time.Duration { - v, _ := ToDurationE(i) - return v -} - -// ToFloat64 casts an interface to a float64 type. -func ToFloat64(i interface{}) float64 { - v, _ := ToFloat64E(i) - return v -} - -// ToFloat32 casts an interface to a float32 type. -func ToFloat32(i interface{}) float32 { - v, _ := ToFloat32E(i) - return v -} - -// ToInt64 casts an interface to an int64 type. -func ToInt64(i interface{}) int64 { - v, _ := ToInt64E(i) - return v -} - -// ToInt32 casts an interface to an int32 type. -func ToInt32(i interface{}) int32 { - v, _ := ToInt32E(i) - return v -} - -// ToInt16 casts an interface to an int16 type. -func ToInt16(i interface{}) int16 { - v, _ := ToInt16E(i) - return v -} - -// ToInt8 casts an interface to an int8 type. -func ToInt8(i interface{}) int8 { - v, _ := ToInt8E(i) - return v -} - -// ToInt casts an interface to an int type. -func ToInt(i interface{}) int { - v, _ := ToIntE(i) - return v -} - -// ToUint casts an interface to a uint type. -func ToUint(i interface{}) uint { - v, _ := ToUintE(i) - return v -} - -// ToUint64 casts an interface to a uint64 type. -func ToUint64(i interface{}) uint64 { - v, _ := ToUint64E(i) - return v -} - -// ToUint32 casts an interface to a uint32 type. -func ToUint32(i interface{}) uint32 { - v, _ := ToUint32E(i) - return v -} - -// ToUint16 casts an interface to a uint16 type. -func ToUint16(i interface{}) uint16 { - v, _ := ToUint16E(i) - return v -} - -// ToUint8 casts an interface to a uint8 type. -func ToUint8(i interface{}) uint8 { - v, _ := ToUint8E(i) - return v -} - -// ToString casts an interface to a string type. -func ToString(i interface{}) string { - v, _ := ToStringE(i) - return v -} - -// ToStringMapString casts an interface to a map[string]string type. -func ToStringMapString(i interface{}) map[string]string { - v, _ := ToStringMapStringE(i) - return v -} - -// ToStringMapStringSlice casts an interface to a map[string][]string type. -func ToStringMapStringSlice(i interface{}) map[string][]string { - v, _ := ToStringMapStringSliceE(i) - return v -} - -// ToStringMapBool casts an interface to a map[string]bool type. -func ToStringMapBool(i interface{}) map[string]bool { - v, _ := ToStringMapBoolE(i) - return v -} - -// ToStringMap casts an interface to a map[string]interface{} type. -func ToStringMap(i interface{}) map[string]interface{} { - v, _ := ToStringMapE(i) - return v -} - -// ToSlice casts an interface to a []interface{} type. -func ToSlice(i interface{}) []interface{} { - v, _ := ToSliceE(i) - return v -} - -// ToBoolSlice casts an interface to a []bool type. -func ToBoolSlice(i interface{}) []bool { - v, _ := ToBoolSliceE(i) - return v -} - -// ToStringSlice casts an interface to a []string type. -func ToStringSlice(i interface{}) []string { - v, _ := ToStringSliceE(i) - return v -} - -// ToIntSlice casts an interface to a []int type. -func ToIntSlice(i interface{}) []int { - v, _ := ToIntSliceE(i) - return v -} - -// ToDurationSlice casts an interface to a []time.Duration type. -func ToDurationSlice(i interface{}) []time.Duration { - v, _ := ToDurationSliceE(i) - return v -} diff --git a/vendor/github.com/spf13/cast/caste.go b/vendor/github.com/spf13/cast/caste.go deleted file mode 100644 index 81511fe..0000000 --- a/vendor/github.com/spf13/cast/caste.go +++ /dev/null @@ -1,1146 +0,0 @@ -// Copyright © 2014 Steve Francia . -// -// Use of this source code is governed by an MIT-style -// license that can be found in the LICENSE file. - -package cast - -import ( - "errors" - "fmt" - "html/template" - "reflect" - "strconv" - "strings" - "time" -) - -var errNegativeNotAllowed = errors.New("unable to cast negative value") - -// ToTimeE casts an interface to a time.Time type. -func ToTimeE(i interface{}) (tim time.Time, err error) { - i = indirect(i) - - switch v := i.(type) { - case time.Time: - return v, nil - case string: - return StringToDate(v) - case int: - return time.Unix(int64(v), 0), nil - case int64: - return time.Unix(v, 0), nil - case int32: - return time.Unix(int64(v), 0), nil - case uint: - return time.Unix(int64(v), 0), nil - case uint64: - return time.Unix(int64(v), 0), nil - case uint32: - return time.Unix(int64(v), 0), nil - default: - return time.Time{}, fmt.Errorf("unable to cast %#v of type %T to Time", i, i) - } -} - -// ToDurationE casts an interface to a time.Duration type. -func ToDurationE(i interface{}) (d time.Duration, err error) { - i = indirect(i) - - switch s := i.(type) { - case time.Duration: - return s, nil - case int, int64, int32, int16, int8, uint, uint64, uint32, uint16, uint8: - d = time.Duration(ToInt64(s)) - return - case float32, float64: - d = time.Duration(ToFloat64(s)) - return - case string: - if strings.ContainsAny(s, "nsuµmh") { - d, err = time.ParseDuration(s) - } else { - d, err = time.ParseDuration(s + "ns") - } - return - default: - err = fmt.Errorf("unable to cast %#v of type %T to Duration", i, i) - return - } -} - -// ToBoolE casts an interface to a bool type. -func ToBoolE(i interface{}) (bool, error) { - i = indirect(i) - - switch b := i.(type) { - case bool: - return b, nil - case nil: - return false, nil - case int: - if i.(int) != 0 { - return true, nil - } - return false, nil - case string: - return strconv.ParseBool(i.(string)) - default: - return false, fmt.Errorf("unable to cast %#v of type %T to bool", i, i) - } -} - -// ToFloat64E casts an interface to a float64 type. -func ToFloat64E(i interface{}) (float64, error) { - i = indirect(i) - - switch s := i.(type) { - case float64: - return s, nil - case float32: - return float64(s), nil - case int: - return float64(s), nil - case int64: - return float64(s), nil - case int32: - return float64(s), nil - case int16: - return float64(s), nil - case int8: - return float64(s), nil - case uint: - return float64(s), nil - case uint64: - return float64(s), nil - case uint32: - return float64(s), nil - case uint16: - return float64(s), nil - case uint8: - return float64(s), nil - case string: - v, err := strconv.ParseFloat(s, 64) - if err == nil { - return v, nil - } - return 0, fmt.Errorf("unable to cast %#v of type %T to float64", i, i) - case bool: - if s { - return 1, nil - } - return 0, nil - default: - return 0, fmt.Errorf("unable to cast %#v of type %T to float64", i, i) - } -} - -// ToFloat32E casts an interface to a float32 type. -func ToFloat32E(i interface{}) (float32, error) { - i = indirect(i) - - switch s := i.(type) { - case float64: - return float32(s), nil - case float32: - return s, nil - case int: - return float32(s), nil - case int64: - return float32(s), nil - case int32: - return float32(s), nil - case int16: - return float32(s), nil - case int8: - return float32(s), nil - case uint: - return float32(s), nil - case uint64: - return float32(s), nil - case uint32: - return float32(s), nil - case uint16: - return float32(s), nil - case uint8: - return float32(s), nil - case string: - v, err := strconv.ParseFloat(s, 32) - if err == nil { - return float32(v), nil - } - return 0, fmt.Errorf("unable to cast %#v of type %T to float32", i, i) - case bool: - if s { - return 1, nil - } - return 0, nil - default: - return 0, fmt.Errorf("unable to cast %#v of type %T to float32", i, i) - } -} - -// ToInt64E casts an interface to an int64 type. -func ToInt64E(i interface{}) (int64, error) { - i = indirect(i) - - switch s := i.(type) { - case int: - return int64(s), nil - case int64: - return s, nil - case int32: - return int64(s), nil - case int16: - return int64(s), nil - case int8: - return int64(s), nil - case uint: - return int64(s), nil - case uint64: - return int64(s), nil - case uint32: - return int64(s), nil - case uint16: - return int64(s), nil - case uint8: - return int64(s), nil - case float64: - return int64(s), nil - case float32: - return int64(s), nil - case string: - v, err := strconv.ParseInt(s, 0, 0) - if err == nil { - return v, nil - } - return 0, fmt.Errorf("unable to cast %#v of type %T to int64", i, i) - case bool: - if s { - return 1, nil - } - return 0, nil - case nil: - return 0, nil - default: - return 0, fmt.Errorf("unable to cast %#v of type %T to int64", i, i) - } -} - -// ToInt32E casts an interface to an int32 type. -func ToInt32E(i interface{}) (int32, error) { - i = indirect(i) - - switch s := i.(type) { - case int: - return int32(s), nil - case int64: - return int32(s), nil - case int32: - return s, nil - case int16: - return int32(s), nil - case int8: - return int32(s), nil - case uint: - return int32(s), nil - case uint64: - return int32(s), nil - case uint32: - return int32(s), nil - case uint16: - return int32(s), nil - case uint8: - return int32(s), nil - case float64: - return int32(s), nil - case float32: - return int32(s), nil - case string: - v, err := strconv.ParseInt(s, 0, 0) - if err == nil { - return int32(v), nil - } - return 0, fmt.Errorf("unable to cast %#v of type %T to int32", i, i) - case bool: - if s { - return 1, nil - } - return 0, nil - case nil: - return 0, nil - default: - return 0, fmt.Errorf("unable to cast %#v of type %T to int32", i, i) - } -} - -// ToInt16E casts an interface to an int16 type. -func ToInt16E(i interface{}) (int16, error) { - i = indirect(i) - - switch s := i.(type) { - case int: - return int16(s), nil - case int64: - return int16(s), nil - case int32: - return int16(s), nil - case int16: - return s, nil - case int8: - return int16(s), nil - case uint: - return int16(s), nil - case uint64: - return int16(s), nil - case uint32: - return int16(s), nil - case uint16: - return int16(s), nil - case uint8: - return int16(s), nil - case float64: - return int16(s), nil - case float32: - return int16(s), nil - case string: - v, err := strconv.ParseInt(s, 0, 0) - if err == nil { - return int16(v), nil - } - return 0, fmt.Errorf("unable to cast %#v of type %T to int16", i, i) - case bool: - if s { - return 1, nil - } - return 0, nil - case nil: - return 0, nil - default: - return 0, fmt.Errorf("unable to cast %#v of type %T to int16", i, i) - } -} - -// ToInt8E casts an interface to an int8 type. -func ToInt8E(i interface{}) (int8, error) { - i = indirect(i) - - switch s := i.(type) { - case int: - return int8(s), nil - case int64: - return int8(s), nil - case int32: - return int8(s), nil - case int16: - return int8(s), nil - case int8: - return s, nil - case uint: - return int8(s), nil - case uint64: - return int8(s), nil - case uint32: - return int8(s), nil - case uint16: - return int8(s), nil - case uint8: - return int8(s), nil - case float64: - return int8(s), nil - case float32: - return int8(s), nil - case string: - v, err := strconv.ParseInt(s, 0, 0) - if err == nil { - return int8(v), nil - } - return 0, fmt.Errorf("unable to cast %#v of type %T to int8", i, i) - case bool: - if s { - return 1, nil - } - return 0, nil - case nil: - return 0, nil - default: - return 0, fmt.Errorf("unable to cast %#v of type %T to int8", i, i) - } -} - -// ToIntE casts an interface to an int type. -func ToIntE(i interface{}) (int, error) { - i = indirect(i) - - switch s := i.(type) { - case int: - return s, nil - case int64: - return int(s), nil - case int32: - return int(s), nil - case int16: - return int(s), nil - case int8: - return int(s), nil - case uint: - return int(s), nil - case uint64: - return int(s), nil - case uint32: - return int(s), nil - case uint16: - return int(s), nil - case uint8: - return int(s), nil - case float64: - return int(s), nil - case float32: - return int(s), nil - case string: - v, err := strconv.ParseInt(s, 0, 0) - if err == nil { - return int(v), nil - } - return 0, fmt.Errorf("unable to cast %#v of type %T to int", i, i) - case bool: - if s { - return 1, nil - } - return 0, nil - case nil: - return 0, nil - default: - return 0, fmt.Errorf("unable to cast %#v of type %T to int", i, i) - } -} - -// ToUintE casts an interface to a uint type. -func ToUintE(i interface{}) (uint, error) { - i = indirect(i) - - switch s := i.(type) { - case string: - v, err := strconv.ParseUint(s, 0, 0) - if err == nil { - return uint(v), nil - } - return 0, fmt.Errorf("unable to cast %#v to uint: %s", i, err) - case int: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint(s), nil - case int64: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint(s), nil - case int32: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint(s), nil - case int16: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint(s), nil - case int8: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint(s), nil - case uint: - return s, nil - case uint64: - return uint(s), nil - case uint32: - return uint(s), nil - case uint16: - return uint(s), nil - case uint8: - return uint(s), nil - case float64: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint(s), nil - case float32: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint(s), nil - case bool: - if s { - return 1, nil - } - return 0, nil - case nil: - return 0, nil - default: - return 0, fmt.Errorf("unable to cast %#v of type %T to uint", i, i) - } -} - -// ToUint64E casts an interface to a uint64 type. -func ToUint64E(i interface{}) (uint64, error) { - i = indirect(i) - - switch s := i.(type) { - case string: - v, err := strconv.ParseUint(s, 0, 64) - if err == nil { - return v, nil - } - return 0, fmt.Errorf("unable to cast %#v to uint64: %s", i, err) - case int: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint64(s), nil - case int64: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint64(s), nil - case int32: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint64(s), nil - case int16: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint64(s), nil - case int8: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint64(s), nil - case uint: - return uint64(s), nil - case uint64: - return s, nil - case uint32: - return uint64(s), nil - case uint16: - return uint64(s), nil - case uint8: - return uint64(s), nil - case float32: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint64(s), nil - case float64: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint64(s), nil - case bool: - if s { - return 1, nil - } - return 0, nil - case nil: - return 0, nil - default: - return 0, fmt.Errorf("unable to cast %#v of type %T to uint64", i, i) - } -} - -// ToUint32E casts an interface to a uint32 type. -func ToUint32E(i interface{}) (uint32, error) { - i = indirect(i) - - switch s := i.(type) { - case string: - v, err := strconv.ParseUint(s, 0, 32) - if err == nil { - return uint32(v), nil - } - return 0, fmt.Errorf("unable to cast %#v to uint32: %s", i, err) - case int: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint32(s), nil - case int64: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint32(s), nil - case int32: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint32(s), nil - case int16: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint32(s), nil - case int8: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint32(s), nil - case uint: - return uint32(s), nil - case uint64: - return uint32(s), nil - case uint32: - return s, nil - case uint16: - return uint32(s), nil - case uint8: - return uint32(s), nil - case float64: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint32(s), nil - case float32: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint32(s), nil - case bool: - if s { - return 1, nil - } - return 0, nil - case nil: - return 0, nil - default: - return 0, fmt.Errorf("unable to cast %#v of type %T to uint32", i, i) - } -} - -// ToUint16E casts an interface to a uint16 type. -func ToUint16E(i interface{}) (uint16, error) { - i = indirect(i) - - switch s := i.(type) { - case string: - v, err := strconv.ParseUint(s, 0, 16) - if err == nil { - return uint16(v), nil - } - return 0, fmt.Errorf("unable to cast %#v to uint16: %s", i, err) - case int: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint16(s), nil - case int64: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint16(s), nil - case int32: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint16(s), nil - case int16: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint16(s), nil - case int8: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint16(s), nil - case uint: - return uint16(s), nil - case uint64: - return uint16(s), nil - case uint32: - return uint16(s), nil - case uint16: - return s, nil - case uint8: - return uint16(s), nil - case float64: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint16(s), nil - case float32: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint16(s), nil - case bool: - if s { - return 1, nil - } - return 0, nil - case nil: - return 0, nil - default: - return 0, fmt.Errorf("unable to cast %#v of type %T to uint16", i, i) - } -} - -// ToUint8E casts an interface to a uint type. -func ToUint8E(i interface{}) (uint8, error) { - i = indirect(i) - - switch s := i.(type) { - case string: - v, err := strconv.ParseUint(s, 0, 8) - if err == nil { - return uint8(v), nil - } - return 0, fmt.Errorf("unable to cast %#v to uint8: %s", i, err) - case int: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint8(s), nil - case int64: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint8(s), nil - case int32: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint8(s), nil - case int16: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint8(s), nil - case int8: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint8(s), nil - case uint: - return uint8(s), nil - case uint64: - return uint8(s), nil - case uint32: - return uint8(s), nil - case uint16: - return uint8(s), nil - case uint8: - return s, nil - case float64: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint8(s), nil - case float32: - if s < 0 { - return 0, errNegativeNotAllowed - } - return uint8(s), nil - case bool: - if s { - return 1, nil - } - return 0, nil - case nil: - return 0, nil - default: - return 0, fmt.Errorf("unable to cast %#v of type %T to uint8", i, i) - } -} - -// From html/template/content.go -// Copyright 2011 The Go Authors. All rights reserved. -// indirect returns the value, after dereferencing as many times -// as necessary to reach the base type (or nil). -func indirect(a interface{}) interface{} { - if a == nil { - return nil - } - if t := reflect.TypeOf(a); t.Kind() != reflect.Ptr { - // Avoid creating a reflect.Value if it's not a pointer. - return a - } - v := reflect.ValueOf(a) - for v.Kind() == reflect.Ptr && !v.IsNil() { - v = v.Elem() - } - return v.Interface() -} - -// From html/template/content.go -// Copyright 2011 The Go Authors. All rights reserved. -// indirectToStringerOrError returns the value, after dereferencing as many times -// as necessary to reach the base type (or nil) or an implementation of fmt.Stringer -// or error, -func indirectToStringerOrError(a interface{}) interface{} { - if a == nil { - return nil - } - - var errorType = reflect.TypeOf((*error)(nil)).Elem() - var fmtStringerType = reflect.TypeOf((*fmt.Stringer)(nil)).Elem() - - v := reflect.ValueOf(a) - for !v.Type().Implements(fmtStringerType) && !v.Type().Implements(errorType) && v.Kind() == reflect.Ptr && !v.IsNil() { - v = v.Elem() - } - return v.Interface() -} - -// ToStringE casts an interface to a string type. -func ToStringE(i interface{}) (string, error) { - i = indirectToStringerOrError(i) - - switch s := i.(type) { - case string: - return s, nil - case bool: - return strconv.FormatBool(s), nil - case float64: - return strconv.FormatFloat(s, 'f', -1, 64), nil - case float32: - return strconv.FormatFloat(float64(s), 'f', -1, 32), nil - case int: - return strconv.Itoa(s), nil - case int64: - return strconv.FormatInt(s, 10), nil - case int32: - return strconv.Itoa(int(s)), nil - case int16: - return strconv.FormatInt(int64(s), 10), nil - case int8: - return strconv.FormatInt(int64(s), 10), nil - case uint: - return strconv.FormatInt(int64(s), 10), nil - case uint64: - return strconv.FormatInt(int64(s), 10), nil - case uint32: - return strconv.FormatInt(int64(s), 10), nil - case uint16: - return strconv.FormatInt(int64(s), 10), nil - case uint8: - return strconv.FormatInt(int64(s), 10), nil - case []byte: - return string(s), nil - case template.HTML: - return string(s), nil - case template.URL: - return string(s), nil - case template.JS: - return string(s), nil - case template.CSS: - return string(s), nil - case template.HTMLAttr: - return string(s), nil - case nil: - return "", nil - case fmt.Stringer: - return s.String(), nil - case error: - return s.Error(), nil - default: - return "", fmt.Errorf("unable to cast %#v of type %T to string", i, i) - } -} - -// ToStringMapStringE casts an interface to a map[string]string type. -func ToStringMapStringE(i interface{}) (map[string]string, error) { - var m = map[string]string{} - - switch v := i.(type) { - case map[string]string: - return v, nil - case map[string]interface{}: - for k, val := range v { - m[ToString(k)] = ToString(val) - } - return m, nil - case map[interface{}]string: - for k, val := range v { - m[ToString(k)] = ToString(val) - } - return m, nil - case map[interface{}]interface{}: - for k, val := range v { - m[ToString(k)] = ToString(val) - } - return m, nil - default: - return m, fmt.Errorf("unable to cast %#v of type %T to map[string]string", i, i) - } -} - -// ToStringMapStringSliceE casts an interface to a map[string][]string type. -func ToStringMapStringSliceE(i interface{}) (map[string][]string, error) { - var m = map[string][]string{} - - switch v := i.(type) { - case map[string][]string: - return v, nil - case map[string][]interface{}: - for k, val := range v { - m[ToString(k)] = ToStringSlice(val) - } - return m, nil - case map[string]string: - for k, val := range v { - m[ToString(k)] = []string{val} - } - case map[string]interface{}: - for k, val := range v { - switch vt := val.(type) { - case []interface{}: - m[ToString(k)] = ToStringSlice(vt) - case []string: - m[ToString(k)] = vt - default: - m[ToString(k)] = []string{ToString(val)} - } - } - return m, nil - case map[interface{}][]string: - for k, val := range v { - m[ToString(k)] = ToStringSlice(val) - } - return m, nil - case map[interface{}]string: - for k, val := range v { - m[ToString(k)] = ToStringSlice(val) - } - return m, nil - case map[interface{}][]interface{}: - for k, val := range v { - m[ToString(k)] = ToStringSlice(val) - } - return m, nil - case map[interface{}]interface{}: - for k, val := range v { - key, err := ToStringE(k) - if err != nil { - return m, fmt.Errorf("unable to cast %#v of type %T to map[string][]string", i, i) - } - value, err := ToStringSliceE(val) - if err != nil { - return m, fmt.Errorf("unable to cast %#v of type %T to map[string][]string", i, i) - } - m[key] = value - } - default: - return m, fmt.Errorf("unable to cast %#v of type %T to map[string][]string", i, i) - } - return m, nil -} - -// ToStringMapBoolE casts an interface to a map[string]bool type. -func ToStringMapBoolE(i interface{}) (map[string]bool, error) { - var m = map[string]bool{} - - switch v := i.(type) { - case map[interface{}]interface{}: - for k, val := range v { - m[ToString(k)] = ToBool(val) - } - return m, nil - case map[string]interface{}: - for k, val := range v { - m[ToString(k)] = ToBool(val) - } - return m, nil - case map[string]bool: - return v, nil - default: - return m, fmt.Errorf("unable to cast %#v of type %T to map[string]bool", i, i) - } -} - -// ToStringMapE casts an interface to a map[string]interface{} type. -func ToStringMapE(i interface{}) (map[string]interface{}, error) { - var m = map[string]interface{}{} - - switch v := i.(type) { - case map[interface{}]interface{}: - for k, val := range v { - m[ToString(k)] = val - } - return m, nil - case map[string]interface{}: - return v, nil - default: - return m, fmt.Errorf("unable to cast %#v of type %T to map[string]interface{}", i, i) - } -} - -// ToSliceE casts an interface to a []interface{} type. -func ToSliceE(i interface{}) ([]interface{}, error) { - var s []interface{} - - switch v := i.(type) { - case []interface{}: - return append(s, v...), nil - case []map[string]interface{}: - for _, u := range v { - s = append(s, u) - } - return s, nil - default: - return s, fmt.Errorf("unable to cast %#v of type %T to []interface{}", i, i) - } -} - -// ToBoolSliceE casts an interface to a []bool type. -func ToBoolSliceE(i interface{}) ([]bool, error) { - if i == nil { - return []bool{}, fmt.Errorf("unable to cast %#v of type %T to []bool", i, i) - } - - switch v := i.(type) { - case []bool: - return v, nil - } - - kind := reflect.TypeOf(i).Kind() - switch kind { - case reflect.Slice, reflect.Array: - s := reflect.ValueOf(i) - a := make([]bool, s.Len()) - for j := 0; j < s.Len(); j++ { - val, err := ToBoolE(s.Index(j).Interface()) - if err != nil { - return []bool{}, fmt.Errorf("unable to cast %#v of type %T to []bool", i, i) - } - a[j] = val - } - return a, nil - default: - return []bool{}, fmt.Errorf("unable to cast %#v of type %T to []bool", i, i) - } -} - -// ToStringSliceE casts an interface to a []string type. -func ToStringSliceE(i interface{}) ([]string, error) { - var a []string - - switch v := i.(type) { - case []interface{}: - for _, u := range v { - a = append(a, ToString(u)) - } - return a, nil - case []string: - return v, nil - case string: - return strings.Fields(v), nil - case interface{}: - str, err := ToStringE(v) - if err != nil { - return a, fmt.Errorf("unable to cast %#v of type %T to []string", i, i) - } - return []string{str}, nil - default: - return a, fmt.Errorf("unable to cast %#v of type %T to []string", i, i) - } -} - -// ToIntSliceE casts an interface to a []int type. -func ToIntSliceE(i interface{}) ([]int, error) { - if i == nil { - return []int{}, fmt.Errorf("unable to cast %#v of type %T to []int", i, i) - } - - switch v := i.(type) { - case []int: - return v, nil - } - - kind := reflect.TypeOf(i).Kind() - switch kind { - case reflect.Slice, reflect.Array: - s := reflect.ValueOf(i) - a := make([]int, s.Len()) - for j := 0; j < s.Len(); j++ { - val, err := ToIntE(s.Index(j).Interface()) - if err != nil { - return []int{}, fmt.Errorf("unable to cast %#v of type %T to []int", i, i) - } - a[j] = val - } - return a, nil - default: - return []int{}, fmt.Errorf("unable to cast %#v of type %T to []int", i, i) - } -} - -// ToDurationSliceE casts an interface to a []time.Duration type. -func ToDurationSliceE(i interface{}) ([]time.Duration, error) { - if i == nil { - return []time.Duration{}, fmt.Errorf("unable to cast %#v of type %T to []time.Duration", i, i) - } - - switch v := i.(type) { - case []time.Duration: - return v, nil - } - - kind := reflect.TypeOf(i).Kind() - switch kind { - case reflect.Slice, reflect.Array: - s := reflect.ValueOf(i) - a := make([]time.Duration, s.Len()) - for j := 0; j < s.Len(); j++ { - val, err := ToDurationE(s.Index(j).Interface()) - if err != nil { - return []time.Duration{}, fmt.Errorf("unable to cast %#v of type %T to []time.Duration", i, i) - } - a[j] = val - } - return a, nil - default: - return []time.Duration{}, fmt.Errorf("unable to cast %#v of type %T to []time.Duration", i, i) - } -} - -// StringToDate attempts to parse a string into a time.Time type using a -// predefined list of formats. If no suitable format is found, an error is -// returned. -func StringToDate(s string) (time.Time, error) { - return parseDateWith(s, []string{ - time.RFC3339, - "2006-01-02T15:04:05", // iso8601 without timezone - time.RFC1123Z, - time.RFC1123, - time.RFC822Z, - time.RFC822, - time.RFC850, - time.ANSIC, - time.UnixDate, - time.RubyDate, - "2006-01-02 15:04:05.999999999 -0700 MST", // Time.String() - "2006-01-02", - "02 Jan 2006", - "2006-01-02 15:04:05 -07:00", - "2006-01-02 15:04:05 -0700", - "2006-01-02 15:04:05Z07:00", // RFC3339 without T - "2006-01-02 15:04:05", - time.Kitchen, - time.Stamp, - time.StampMilli, - time.StampMicro, - time.StampNano, - }) -} - -func parseDateWith(s string, dates []string) (d time.Time, e error) { - for _, dateType := range dates { - if d, e = time.Parse(dateType, s); e == nil { - return - } - } - return d, fmt.Errorf("unable to parse date: %s", s) -} diff --git a/vendor/github.com/spf13/cobra/LICENSE.txt b/vendor/github.com/spf13/cobra/LICENSE.txt deleted file mode 100644 index 298f0e2..0000000 --- a/vendor/github.com/spf13/cobra/LICENSE.txt +++ /dev/null @@ -1,174 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. diff --git a/vendor/github.com/spf13/cobra/README.md b/vendor/github.com/spf13/cobra/README.md deleted file mode 100644 index da9aa88..0000000 --- a/vendor/github.com/spf13/cobra/README.md +++ /dev/null @@ -1,942 +0,0 @@ -![cobra logo](https://cloud.githubusercontent.com/assets/173412/10886352/ad566232-814f-11e5-9cd0-aa101788c117.png) - -Cobra is both a library for creating powerful modern CLI applications as well as a program to generate applications and command files. - -Many of the most widely used Go projects are built using Cobra including: - -* [Kubernetes](http://kubernetes.io/) -* [Hugo](http://gohugo.io) -* [rkt](https://github.com/coreos/rkt) -* [etcd](https://github.com/coreos/etcd) -* [Moby (former Docker)](https://github.com/moby/moby) -* [Docker (distribution)](https://github.com/docker/distribution) -* [OpenShift](https://www.openshift.com/) -* [Delve](https://github.com/derekparker/delve) -* [GopherJS](http://www.gopherjs.org/) -* [CockroachDB](http://www.cockroachlabs.com/) -* [Bleve](http://www.blevesearch.com/) -* [ProjectAtomic (enterprise)](http://www.projectatomic.io/) -* [GiantSwarm's swarm](https://github.com/giantswarm/cli) -* [Nanobox](https://github.com/nanobox-io/nanobox)/[Nanopack](https://github.com/nanopack) -* [rclone](http://rclone.org/) - - -[![Build Status](https://travis-ci.org/spf13/cobra.svg "Travis CI status")](https://travis-ci.org/spf13/cobra) -[![CircleCI status](https://circleci.com/gh/spf13/cobra.png?circle-token=:circle-token "CircleCI status")](https://circleci.com/gh/spf13/cobra) -[![GoDoc](https://godoc.org/github.com/spf13/cobra?status.svg)](https://godoc.org/github.com/spf13/cobra) - -![cobra](https://cloud.githubusercontent.com/assets/173412/10911369/84832a8e-8212-11e5-9f82-cc96660a4794.gif) - -# Overview - -Cobra is a library providing a simple interface to create powerful modern CLI -interfaces similar to git & go tools. - -Cobra is also an application that will generate your application scaffolding to rapidly -develop a Cobra-based application. - -Cobra provides: -* Easy subcommand-based CLIs: `app server`, `app fetch`, etc. -* Fully POSIX-compliant flags (including short & long versions) -* Nested subcommands -* Global, local and cascading flags -* Easy generation of applications & commands with `cobra init appname` & `cobra add cmdname` -* Intelligent suggestions (`app srver`... did you mean `app server`?) -* Automatic help generation for commands and flags -* Automatic detailed help for `app help [command]` -* Automatic help flag recognition of `-h`, `--help`, etc. -* Automatically generated bash autocomplete for your application -* Automatically generated man pages for your application -* Command aliases so you can change things without breaking them -* The flexibility to define your own help, usage, etc. -* Optional tight integration with [viper](http://github.com/spf13/viper) for 12-factor apps - -Cobra has an exceptionally clean interface and simple design without needless -constructors or initialization methods. - -Applications built with Cobra commands are designed to be as user-friendly as -possible. Flags can be placed before or after the command (as long as a -confusing space isn’t provided). Both short and long flags can be used. A -command need not even be fully typed. Help is automatically generated and -available for the application or for a specific command using either the help -command or the `--help` flag. - -# Concepts - -Cobra is built on a structure of commands, arguments & flags. - -**Commands** represent actions, **Args** are things and **Flags** are modifiers for those actions. - -The best applications will read like sentences when used. Users will know how -to use the application because they will natively understand how to use it. - -The pattern to follow is -`APPNAME VERB NOUN --ADJECTIVE.` - or -`APPNAME COMMAND ARG --FLAG` - -A few good real world examples may better illustrate this point. - -In the following example, 'server' is a command, and 'port' is a flag: - - hugo server --port=1313 - -In this command we are telling Git to clone the url bare. - - git clone URL --bare - -## Commands - -Command is the central point of the application. Each interaction that -the application supports will be contained in a Command. A command can -have children commands and optionally run an action. - -In the example above, 'server' is the command. - -A Command has the following structure: - -```go -type Command struct { - Use string // The one-line usage message. - Short string // The short description shown in the 'help' output. - Long string // The long message shown in the 'help ' output. - Run func(cmd *Command, args []string) // Run runs the command. -} -``` - -## Flags - -A Flag is a way to modify the behavior of a command. Cobra supports -fully POSIX-compliant flags as well as the Go [flag package](https://golang.org/pkg/flag/). -A Cobra command can define flags that persist through to children commands -and flags that are only available to that command. - -In the example above, 'port' is the flag. - -Flag functionality is provided by the [pflag -library](https://github.com/spf13/pflag), a fork of the flag standard library -which maintains the same interface while adding POSIX compliance. - -# Installing -Using Cobra is easy. First, use `go get` to install the latest version -of the library. This command will install the `cobra` generator executable -along with the library and its dependencies: - - go get -u github.com/spf13/cobra/cobra - -Next, include Cobra in your application: - -```go -import "github.com/spf13/cobra" -``` - -# Getting Started - -While you are welcome to provide your own organization, typically a Cobra-based -application will follow the following organizational structure: - -``` - ▾ appName/ - ▾ cmd/ - add.go - your.go - commands.go - here.go - main.go -``` - -In a Cobra app, typically the main.go file is very bare. It serves one purpose: initializing Cobra. - -```go -package main - -import ( - "fmt" - "os" - - "{pathToYourApp}/cmd" -) - -func main() { - if err := cmd.RootCmd.Execute(); err != nil { - fmt.Println(err) - os.Exit(1) - } -} -``` - -## Using the Cobra Generator - -Cobra provides its own program that will create your application and add any -commands you want. It's the easiest way to incorporate Cobra into your application. - -In order to use the cobra command, compile it using the following command: - - go get github.com/spf13/cobra/cobra - -This will create the cobra executable under your `$GOPATH/bin` directory. - -### cobra init - -The `cobra init [yourApp]` command will create your initial application code -for you. It is a very powerful application that will populate your program with -the right structure so you can immediately enjoy all the benefits of Cobra. It -will also automatically apply the license you specify to your application. - -Cobra init is pretty smart. You can provide it a full path, or simply a path -similar to what is expected in the import. - -``` -cobra init github.com/spf13/newAppName -``` - -### cobra add - -Once an application is initialized Cobra can create additional commands for you. -Let's say you created an app and you wanted the following commands for it: - -* app serve -* app config -* app config create - -In your project directory (where your main.go file is) you would run the following: - -``` -cobra add serve -cobra add config -cobra add create -p 'configCmd' -``` - -*Note: Use camelCase (not snake_case/snake-case) for command names. -Otherwise, you will encounter errors. -For example, `cobra add add-user` is incorrect, but `cobra add addUser` is valid.* - -Once you have run these three commands you would have an app structure similar to -the following: - -``` - ▾ app/ - ▾ cmd/ - serve.go - config.go - create.go - main.go -``` - -At this point you can run `go run main.go` and it would run your app. `go run -main.go serve`, `go run main.go config`, `go run main.go config create` along -with `go run main.go help serve`, etc. would all work. - -Obviously you haven't added your own code to these yet. The commands are ready -for you to give them their tasks. Have fun! - -### Configuring the cobra generator - -The Cobra generator will be easier to use if you provide a simple configuration -file which will help you eliminate providing a bunch of repeated information in -flags over and over. - -An example ~/.cobra.yaml file: - -```yaml -author: Steve Francia -license: MIT -``` - -You can specify no license by setting `license` to `none` or you can specify -a custom license: - -```yaml -license: - header: This file is part of {{ .appName }}. - text: | - {{ .copyright }} - - This is my license. There are many like it, but this one is mine. - My license is my best friend. It is my life. I must master it as I must - master my life. -``` - -You can also use built-in licenses. For example, **GPLv2**, **GPLv3**, **LGPL**, -**AGPL**, **MIT**, **2-Clause BSD** or **3-Clause BSD**. - -## Manually implementing Cobra - -To manually implement Cobra you need to create a bare main.go file and a RootCmd file. -You will optionally provide additional commands as you see fit. - -### Create the root command - -The root command represents your binary itself. - -#### Manually create rootCmd - -Cobra doesn't require any special constructors. Simply create your commands. - -Ideally you place this in app/cmd/root.go: - -```go -var RootCmd = &cobra.Command{ - Use: "hugo", - Short: "Hugo is a very fast static site generator", - Long: `A Fast and Flexible Static Site Generator built with - love by spf13 and friends in Go. - Complete documentation is available at http://hugo.spf13.com`, - Run: func(cmd *cobra.Command, args []string) { - // Do Stuff Here - }, -} -``` - -You will additionally define flags and handle configuration in your init() function. - -For example cmd/root.go: - -```go -import ( - "fmt" - "os" - - homedir "github.com/mitchellh/go-homedir" - "github.com/spf13/cobra" - "github.com/spf13/viper" -) - -func init() { - cobra.OnInitialize(initConfig) - RootCmd.PersistentFlags().StringVar(&cfgFile, "config", "", "config file (default is $HOME/.cobra.yaml)") - RootCmd.PersistentFlags().StringVarP(&projectBase, "projectbase", "b", "", "base project directory eg. github.com/spf13/") - RootCmd.PersistentFlags().StringP("author", "a", "YOUR NAME", "Author name for copyright attribution") - RootCmd.PersistentFlags().StringVarP(&userLicense, "license", "l", "", "Name of license for the project (can provide `licensetext` in config)") - RootCmd.PersistentFlags().Bool("viper", true, "Use Viper for configuration") - viper.BindPFlag("author", RootCmd.PersistentFlags().Lookup("author")) - viper.BindPFlag("projectbase", RootCmd.PersistentFlags().Lookup("projectbase")) - viper.BindPFlag("useViper", RootCmd.PersistentFlags().Lookup("viper")) - viper.SetDefault("author", "NAME HERE ") - viper.SetDefault("license", "apache") -} - -func Execute() { - RootCmd.Execute() -} - -func initConfig() { - // Don't forget to read config either from cfgFile or from home directory! - if cfgFile != "" { - // Use config file from the flag. - viper.SetConfigFile(cfgFile) - } else { - // Find home directory. - home, err := homedir.Dir() - if err != nil { - fmt.Println(err) - os.Exit(1) - } - - // Search config in home directory with name ".cobra" (without extension). - viper.AddConfigPath(home) - viper.SetConfigName(".cobra") - } - - if err := viper.ReadInConfig(); err != nil { - fmt.Println("Can't read config:", err) - os.Exit(1) - } -} -``` - -### Create your main.go - -With the root command you need to have your main function execute it. -Execute should be run on the root for clarity, though it can be called on any command. - -In a Cobra app, typically the main.go file is very bare. It serves, one purpose, to initialize Cobra. - -```go -package main - -import ( - "fmt" - "os" - - "{pathToYourApp}/cmd" -) - -func main() { - if err := cmd.RootCmd.Execute(); err != nil { - fmt.Println(err) - os.Exit(1) - } -} -``` - -### Create additional commands - -Additional commands can be defined and typically are each given their own file -inside of the cmd/ directory. - -If you wanted to create a version command you would create cmd/version.go and -populate it with the following: - -```go -package cmd - -import ( - "github.com/spf13/cobra" - "fmt" -) - -func init() { - RootCmd.AddCommand(versionCmd) -} - -var versionCmd = &cobra.Command{ - Use: "version", - Short: "Print the version number of Hugo", - Long: `All software has versions. This is Hugo's`, - Run: func(cmd *cobra.Command, args []string) { - fmt.Println("Hugo Static Site Generator v0.9 -- HEAD") - }, -} -``` - -### Attach command to its parent - - -If you notice in the above example we attach the command to its parent. In -this case the parent is the rootCmd. In this example we are attaching it to the -root, but commands can be attached at any level. - -```go -RootCmd.AddCommand(versionCmd) -``` - -## Working with Flags - -Flags provide modifiers to control how the action command operates. - -### Assign flags to a command - -Since the flags are defined and used in different locations, we need to -define a variable outside with the correct scope to assign the flag to -work with. - -```go -var Verbose bool -var Source string -``` - -There are two different approaches to assign a flag. - -### Persistent Flags - -A flag can be 'persistent' meaning that this flag will be available to the -command it's assigned to as well as every command under that command. For -global flags, assign a flag as a persistent flag on the root. - -```go -RootCmd.PersistentFlags().BoolVarP(&Verbose, "verbose", "v", false, "verbose output") -``` - -### Local Flags - -A flag can also be assigned locally which will only apply to that specific command. - -```go -RootCmd.Flags().StringVarP(&Source, "source", "s", "", "Source directory to read from") -``` - -### Bind Flags with Config - -You can also bind your flags with [viper](https://github.com/spf13/viper): -```go -var author string - -func init() { - RootCmd.PersistentFlags().StringVar(&author, "author", "YOUR NAME", "Author name for copyright attribution") - viper.BindPFlag("author", RootCmd.PersistentFlags().Lookup("author")) -} -``` - -In this example the persistent flag `author` is bound with `viper`. -**Note**, that the variable `author` will not be set to the value from config, -when the `--author` flag is not provided by user. - -More in [viper documentation](https://github.com/spf13/viper#working-with-flags). - -## Positional and Custom Arguments - -Validation of positional arguments can be specified using the `Args` field -of `Command`. - -The following validators are built in: - -- `NoArgs` - the command will report an error if there are any positional args. -- `ArbitraryArgs` - the command will accept any args. -- `OnlyValidArgs` - the command will report an error if there are any positional args that are not in the `ValidArgs` field of `Command`. -- `MinimumNArgs(int)` - the command will report an error if there are not at least N positional args. -- `MaximumNArgs(int)` - the command will report an error if there are more than N positional args. -- `ExactArgs(int)` - the command will report an error if there are not exactly N positional args. -- `RangeArgs(min, max)` - the command will report an error if the number of args is not between the minimum and maximum number of expected args. - -An example of setting the custom validator: - -```go -var cmd = &cobra.Command{ - Short: "hello", - Args: func(cmd *cobra.Command, args []string) error { - if len(args) < 1 { - return errors.New("requires at least one arg") - } - if myapp.IsValidColor(args[0]) { - return nil - } - return fmt.Errorf("invalid color specified: %s", args[0]) - }, - Run: func(cmd *cobra.Command, args []string) { - fmt.Println("Hello, World!") - }, -} -``` - -## Example - -In the example below, we have defined three commands. Two are at the top level -and one (cmdTimes) is a child of one of the top commands. In this case the root -is not executable meaning that a subcommand is required. This is accomplished -by not providing a 'Run' for the 'rootCmd'. - -We have only defined one flag for a single command. - -More documentation about flags is available at https://github.com/spf13/pflag - -```go -package main - -import ( - "fmt" - "strings" - - "github.com/spf13/cobra" -) - -func main() { - var echoTimes int - - var cmdPrint = &cobra.Command{ - Use: "print [string to print]", - Short: "Print anything to the screen", - Long: `print is for printing anything back to the screen. -For many years people have printed back to the screen.`, - Args: cobra.MinimumNArgs(1), - Run: func(cmd *cobra.Command, args []string) { - fmt.Println("Print: " + strings.Join(args, " ")) - }, - } - - var cmdEcho = &cobra.Command{ - Use: "echo [string to echo]", - Short: "Echo anything to the screen", - Long: `echo is for echoing anything back. -Echo works a lot like print, except it has a child command.`, - Args: cobra.MinimumNArgs(1), - Run: func(cmd *cobra.Command, args []string) { - fmt.Println("Print: " + strings.Join(args, " ")) - }, - } - - var cmdTimes = &cobra.Command{ - Use: "times [# times] [string to echo]", - Short: "Echo anything to the screen more times", - Long: `echo things multiple times back to the user by providing -a count and a string.`, - Args: cobra.MinimumNArgs(1), - Run: func(cmd *cobra.Command, args []string) { - for i := 0; i < echoTimes; i++ { - fmt.Println("Echo: " + strings.Join(args, " ")) - } - }, - } - - cmdTimes.Flags().IntVarP(&echoTimes, "times", "t", 1, "times to echo the input") - - var rootCmd = &cobra.Command{Use: "app"} - rootCmd.AddCommand(cmdPrint, cmdEcho) - cmdEcho.AddCommand(cmdTimes) - rootCmd.Execute() -} -``` - -For a more complete example of a larger application, please checkout [Hugo](http://gohugo.io/). - -## The Help Command - -Cobra automatically adds a help command to your application when you have subcommands. -This will be called when a user runs 'app help'. Additionally, help will also -support all other commands as input. Say, for instance, you have a command called -'create' without any additional configuration; Cobra will work when 'app help -create' is called. Every command will automatically have the '--help' flag added. - -### Example - -The following output is automatically generated by Cobra. Nothing beyond the -command and flag definitions are needed. - - > hugo help - - hugo is the main command, used to build your Hugo site. - - Hugo is a Fast and Flexible Static Site Generator - built with love by spf13 and friends in Go. - - Complete documentation is available at http://gohugo.io/. - - Usage: - hugo [flags] - hugo [command] - - Available Commands: - server Hugo runs its own webserver to render the files - version Print the version number of Hugo - config Print the site configuration - check Check content in the source directory - benchmark Benchmark hugo by building a site a number of times. - convert Convert your content to different formats - new Create new content for your site - list Listing out various types of content - undraft Undraft changes the content's draft status from 'True' to 'False' - genautocomplete Generate shell autocompletion script for Hugo - gendoc Generate Markdown documentation for the Hugo CLI. - genman Generate man page for Hugo - import Import your site from others. - - Flags: - -b, --baseURL="": hostname (and path) to the root, e.g. http://spf13.com/ - -D, --buildDrafts[=false]: include content marked as draft - -F, --buildFuture[=false]: include content with publishdate in the future - --cacheDir="": filesystem path to cache directory. Defaults: $TMPDIR/hugo_cache/ - --canonifyURLs[=false]: if true, all relative URLs will be canonicalized using baseURL - --config="": config file (default is path/config.yaml|json|toml) - -d, --destination="": filesystem path to write files to - --disableRSS[=false]: Do not build RSS files - --disableSitemap[=false]: Do not build Sitemap file - --editor="": edit new content with this editor, if provided - --ignoreCache[=false]: Ignores the cache directory for reading but still writes to it - --log[=false]: Enable Logging - --logFile="": Log File path (if set, logging enabled automatically) - --noTimes[=false]: Don't sync modification time of files - --pluralizeListTitles[=true]: Pluralize titles in lists using inflect - --preserveTaxonomyNames[=false]: Preserve taxonomy names as written ("Gérard Depardieu" vs "gerard-depardieu") - -s, --source="": filesystem path to read files relative from - --stepAnalysis[=false]: display memory and timing of different steps of the program - -t, --theme="": theme to use (located in /themes/THEMENAME/) - --uglyURLs[=false]: if true, use /filename.html instead of /filename/ - -v, --verbose[=false]: verbose output - --verboseLog[=false]: verbose logging - -w, --watch[=false]: watch filesystem for changes and recreate as needed - - Use "hugo [command] --help" for more information about a command. - - -Help is just a command like any other. There is no special logic or behavior -around it. In fact, you can provide your own if you want. - -### Defining your own help - -You can provide your own Help command or your own template for the default command to use. - -The default help command is - -```go -func (c *Command) initHelp() { - if c.helpCommand == nil { - c.helpCommand = &Command{ - Use: "help [command]", - Short: "Help about any command", - Long: `Help provides help for any command in the application. - Simply type ` + c.Name() + ` help [path to command] for full details.`, - Run: c.HelpFunc(), - } - } - c.AddCommand(c.helpCommand) -} -``` - -You can provide your own command, function or template through the following methods: - -```go -command.SetHelpCommand(cmd *Command) -command.SetHelpFunc(f func(*Command, []string)) -command.SetHelpTemplate(s string) -``` - -The latter two will also apply to any children commands. - -## Usage - -When the user provides an invalid flag or invalid command, Cobra responds by -showing the user the 'usage'. - -### Example -You may recognize this from the help above. That's because the default help -embeds the usage as part of its output. - - Usage: - hugo [flags] - hugo [command] - - Available Commands: - server Hugo runs its own webserver to render the files - version Print the version number of Hugo - config Print the site configuration - check Check content in the source directory - benchmark Benchmark hugo by building a site a number of times. - convert Convert your content to different formats - new Create new content for your site - list Listing out various types of content - undraft Undraft changes the content's draft status from 'True' to 'False' - genautocomplete Generate shell autocompletion script for Hugo - gendoc Generate Markdown documentation for the Hugo CLI. - genman Generate man page for Hugo - import Import your site from others. - - Flags: - -b, --baseURL="": hostname (and path) to the root, e.g. http://spf13.com/ - -D, --buildDrafts[=false]: include content marked as draft - -F, --buildFuture[=false]: include content with publishdate in the future - --cacheDir="": filesystem path to cache directory. Defaults: $TMPDIR/hugo_cache/ - --canonifyURLs[=false]: if true, all relative URLs will be canonicalized using baseURL - --config="": config file (default is path/config.yaml|json|toml) - -d, --destination="": filesystem path to write files to - --disableRSS[=false]: Do not build RSS files - --disableSitemap[=false]: Do not build Sitemap file - --editor="": edit new content with this editor, if provided - --ignoreCache[=false]: Ignores the cache directory for reading but still writes to it - --log[=false]: Enable Logging - --logFile="": Log File path (if set, logging enabled automatically) - --noTimes[=false]: Don't sync modification time of files - --pluralizeListTitles[=true]: Pluralize titles in lists using inflect - --preserveTaxonomyNames[=false]: Preserve taxonomy names as written ("Gérard Depardieu" vs "gerard-depardieu") - -s, --source="": filesystem path to read files relative from - --stepAnalysis[=false]: display memory and timing of different steps of the program - -t, --theme="": theme to use (located in /themes/THEMENAME/) - --uglyURLs[=false]: if true, use /filename.html instead of /filename/ - -v, --verbose[=false]: verbose output - --verboseLog[=false]: verbose logging - -w, --watch[=false]: watch filesystem for changes and recreate as needed - -### Defining your own usage -You can provide your own usage function or template for Cobra to use. - -The default usage function is: - -```go -return func(c *Command) error { - err := tmpl(c.Out(), c.UsageTemplate(), c) - return err -} -``` - -Like help, the function and template are overridable through public methods: - -```go -command.SetUsageFunc(f func(*Command) error) - -command.SetUsageTemplate(s string) -``` - -## PreRun or PostRun Hooks - -It is possible to run functions before or after the main `Run` function of your command. The `PersistentPreRun` and `PreRun` functions will be executed before `Run`. `PersistentPostRun` and `PostRun` will be executed after `Run`. The `Persistent*Run` functions will be inherited by children if they do not declare their own. These functions are run in the following order: - -- `PersistentPreRun` -- `PreRun` -- `Run` -- `PostRun` -- `PersistentPostRun` - -An example of two commands which use all of these features is below. When the subcommand is executed, it will run the root command's `PersistentPreRun` but not the root command's `PersistentPostRun`: - -```go -package main - -import ( - "fmt" - - "github.com/spf13/cobra" -) - -func main() { - - var rootCmd = &cobra.Command{ - Use: "root [sub]", - Short: "My root command", - PersistentPreRun: func(cmd *cobra.Command, args []string) { - fmt.Printf("Inside rootCmd PersistentPreRun with args: %v\n", args) - }, - PreRun: func(cmd *cobra.Command, args []string) { - fmt.Printf("Inside rootCmd PreRun with args: %v\n", args) - }, - Run: func(cmd *cobra.Command, args []string) { - fmt.Printf("Inside rootCmd Run with args: %v\n", args) - }, - PostRun: func(cmd *cobra.Command, args []string) { - fmt.Printf("Inside rootCmd PostRun with args: %v\n", args) - }, - PersistentPostRun: func(cmd *cobra.Command, args []string) { - fmt.Printf("Inside rootCmd PersistentPostRun with args: %v\n", args) - }, - } - - var subCmd = &cobra.Command{ - Use: "sub [no options!]", - Short: "My subcommand", - PreRun: func(cmd *cobra.Command, args []string) { - fmt.Printf("Inside subCmd PreRun with args: %v\n", args) - }, - Run: func(cmd *cobra.Command, args []string) { - fmt.Printf("Inside subCmd Run with args: %v\n", args) - }, - PostRun: func(cmd *cobra.Command, args []string) { - fmt.Printf("Inside subCmd PostRun with args: %v\n", args) - }, - PersistentPostRun: func(cmd *cobra.Command, args []string) { - fmt.Printf("Inside subCmd PersistentPostRun with args: %v\n", args) - }, - } - - rootCmd.AddCommand(subCmd) - - rootCmd.SetArgs([]string{""}) - rootCmd.Execute() - fmt.Println() - rootCmd.SetArgs([]string{"sub", "arg1", "arg2"}) - rootCmd.Execute() -} -``` - - -## Alternative Error Handling - -Cobra also has functions where the return signature is an error. This allows for errors to bubble up to the top, -providing a way to handle the errors in one location. The current list of functions that return an error is: - -* PersistentPreRunE -* PreRunE -* RunE -* PostRunE -* PersistentPostRunE - -If you would like to silence the default `error` and `usage` output in favor of your own, you can set `SilenceUsage` -and `SilenceErrors` to `true` on the command. A child command respects these flags if they are set on the parent -command. - -**Example Usage using RunE:** - -```go -package main - -import ( - "errors" - "log" - - "github.com/spf13/cobra" -) - -func main() { - var rootCmd = &cobra.Command{ - Use: "hugo", - Short: "Hugo is a very fast static site generator", - Long: `A Fast and Flexible Static Site Generator built with -love by spf13 and friends in Go. -Complete documentation is available at http://hugo.spf13.com`, - RunE: func(cmd *cobra.Command, args []string) error { - // Do Stuff Here - return errors.New("some random error") - }, - } - - if err := rootCmd.Execute(); err != nil { - log.Fatal(err) - } -} -``` - -## Suggestions when "unknown command" happens - -Cobra will print automatic suggestions when "unknown command" errors happen. This allows Cobra to behave similarly to the `git` command when a typo happens. For example: - -``` -$ hugo srever -Error: unknown command "srever" for "hugo" - -Did you mean this? - server - -Run 'hugo --help' for usage. -``` - -Suggestions are automatic based on every subcommand registered and use an implementation of [Levenshtein distance](http://en.wikipedia.org/wiki/Levenshtein_distance). Every registered command that matches a minimum distance of 2 (ignoring case) will be displayed as a suggestion. - -If you need to disable suggestions or tweak the string distance in your command, use: - -```go -command.DisableSuggestions = true -``` - -or - -```go -command.SuggestionsMinimumDistance = 1 -``` - -You can also explicitly set names for which a given command will be suggested using the `SuggestFor` attribute. This allows suggestions for strings that are not close in terms of string distance, but makes sense in your set of commands and for some which you don't want aliases. Example: - -``` -$ kubectl remove -Error: unknown command "remove" for "kubectl" - -Did you mean this? - delete - -Run 'kubectl help' for usage. -``` - -## Generating Markdown-formatted documentation for your command - -Cobra can generate a Markdown-formatted document based on the subcommands, flags, etc. A simple example of how to do this for your command can be found in [Markdown Docs](doc/md_docs.md). - -## Generating man pages for your command - -Cobra can generate a man page based on the subcommands, flags, etc. A simple example of how to do this for your command can be found in [Man Docs](doc/man_docs.md). - -## Generating bash completions for your command - -Cobra can generate a bash-completion file. If you add more information to your command, these completions can be amazingly powerful and flexible. Read more about it in [Bash Completions](bash_completions.md). - - -## Extensions - -Libraries for extending Cobra: - -* [cmdns](https://github.com/gosuri/cmdns): Enables name spacing a command's immediate children. It provides an alternative way to structure subcommands, similar to `heroku apps:create` and `ovrclk clusters:launch`. - -## Contributing - -1. Fork it -2. Create your feature branch (`git checkout -b my-new-feature`) -3. Commit your changes (`git commit -am 'Add some feature'`) -4. Push to the branch (`git push origin my-new-feature`) -5. Create new Pull Request - -## Contributors - -Names in no particular order: - -* [spf13](https://github.com/spf13), -[eparis](https://github.com/eparis), -[bep](https://github.com/bep), and many more! - -## License - -Cobra is released under the Apache 2.0 license. See [LICENSE.txt](https://github.com/spf13/cobra/blob/master/LICENSE.txt) diff --git a/vendor/github.com/spf13/cobra/args.go b/vendor/github.com/spf13/cobra/args.go deleted file mode 100644 index 94a6ca2..0000000 --- a/vendor/github.com/spf13/cobra/args.go +++ /dev/null @@ -1,98 +0,0 @@ -package cobra - -import ( - "fmt" -) - -type PositionalArgs func(cmd *Command, args []string) error - -// Legacy arg validation has the following behaviour: -// - root commands with no subcommands can take arbitrary arguments -// - root commands with subcommands will do subcommand validity checking -// - subcommands will always accept arbitrary arguments -func legacyArgs(cmd *Command, args []string) error { - // no subcommand, always take args - if !cmd.HasSubCommands() { - return nil - } - - // root command with subcommands, do subcommand checking - if !cmd.HasParent() && len(args) > 0 { - return fmt.Errorf("unknown command %q for %q%s", args[0], cmd.CommandPath(), cmd.findSuggestions(args[0])) - } - return nil -} - -// NoArgs returns an error if any args are included -func NoArgs(cmd *Command, args []string) error { - if len(args) > 0 { - return fmt.Errorf("unknown command %q for %q", args[0], cmd.CommandPath()) - } - return nil -} - -// OnlyValidArgs returns an error if any args are not in the list of ValidArgs -func OnlyValidArgs(cmd *Command, args []string) error { - if len(cmd.ValidArgs) > 0 { - for _, v := range args { - if !stringInSlice(v, cmd.ValidArgs) { - return fmt.Errorf("invalid argument %q for %q%s", v, cmd.CommandPath(), cmd.findSuggestions(args[0])) - } - } - } - return nil -} - -func stringInSlice(a string, list []string) bool { - for _, b := range list { - if b == a { - return true - } - } - return false -} - -// ArbitraryArgs never returns an error -func ArbitraryArgs(cmd *Command, args []string) error { - return nil -} - -// MinimumNArgs returns an error if there is not at least N args -func MinimumNArgs(n int) PositionalArgs { - return func(cmd *Command, args []string) error { - if len(args) < n { - return fmt.Errorf("requires at least %d arg(s), only received %d", n, len(args)) - } - return nil - } -} - -// MaximumNArgs returns an error if there are more than N args -func MaximumNArgs(n int) PositionalArgs { - return func(cmd *Command, args []string) error { - if len(args) > n { - return fmt.Errorf("accepts at most %d arg(s), received %d", n, len(args)) - } - return nil - } -} - -// ExactArgs returns an error if there are not exactly n args -func ExactArgs(n int) PositionalArgs { - return func(cmd *Command, args []string) error { - if len(args) != n { - return fmt.Errorf("accepts %d arg(s), received %d", n, len(args)) - } - return nil - } -} - -// RangeArgs returns an error if the number of args is not within the expected range -func RangeArgs(min int, max int) PositionalArgs { - return func(cmd *Command, args []string) error { - if len(args) < min || len(args) > max { - return fmt.Errorf("accepts between %d and %d arg(s), received %d", min, max, len(args)) - } - return nil - } -} diff --git a/vendor/github.com/spf13/cobra/bash_completions.go b/vendor/github.com/spf13/cobra/bash_completions.go deleted file mode 100644 index e0cfb34..0000000 --- a/vendor/github.com/spf13/cobra/bash_completions.go +++ /dev/null @@ -1,537 +0,0 @@ -package cobra - -import ( - "bytes" - "fmt" - "io" - "os" - "sort" - "strings" - - "github.com/spf13/pflag" -) - -// Annotations for Bash completion. -const ( - BashCompFilenameExt = "cobra_annotation_bash_completion_filename_extensions" - BashCompCustom = "cobra_annotation_bash_completion_custom" - BashCompOneRequiredFlag = "cobra_annotation_bash_completion_one_required_flag" - BashCompSubdirsInDir = "cobra_annotation_bash_completion_subdirs_in_dir" -) - -func writePreamble(buf *bytes.Buffer, name string) { - buf.WriteString(fmt.Sprintf("# bash completion for %-36s -*- shell-script -*-\n", name)) - buf.WriteString(` -__debug() -{ - if [[ -n ${BASH_COMP_DEBUG_FILE} ]]; then - echo "$*" >> "${BASH_COMP_DEBUG_FILE}" - fi -} - -# Homebrew on Macs have version 1.3 of bash-completion which doesn't include -# _init_completion. This is a very minimal version of that function. -__my_init_completion() -{ - COMPREPLY=() - _get_comp_words_by_ref "$@" cur prev words cword -} - -__index_of_word() -{ - local w word=$1 - shift - index=0 - for w in "$@"; do - [[ $w = "$word" ]] && return - index=$((index+1)) - done - index=-1 -} - -__contains_word() -{ - local w word=$1; shift - for w in "$@"; do - [[ $w = "$word" ]] && return - done - return 1 -} - -__handle_reply() -{ - __debug "${FUNCNAME[0]}" - case $cur in - -*) - if [[ $(type -t compopt) = "builtin" ]]; then - compopt -o nospace - fi - local allflags - if [ ${#must_have_one_flag[@]} -ne 0 ]; then - allflags=("${must_have_one_flag[@]}") - else - allflags=("${flags[*]} ${two_word_flags[*]}") - fi - COMPREPLY=( $(compgen -W "${allflags[*]}" -- "$cur") ) - if [[ $(type -t compopt) = "builtin" ]]; then - [[ "${COMPREPLY[0]}" == *= ]] || compopt +o nospace - fi - - # complete after --flag=abc - if [[ $cur == *=* ]]; then - if [[ $(type -t compopt) = "builtin" ]]; then - compopt +o nospace - fi - - local index flag - flag="${cur%%=*}" - __index_of_word "${flag}" "${flags_with_completion[@]}" - COMPREPLY=() - if [[ ${index} -ge 0 ]]; then - PREFIX="" - cur="${cur#*=}" - ${flags_completion[${index}]} - if [ -n "${ZSH_VERSION}" ]; then - # zfs completion needs --flag= prefix - eval "COMPREPLY=( \"\${COMPREPLY[@]/#/${flag}=}\" )" - fi - fi - fi - return 0; - ;; - esac - - # check if we are handling a flag with special work handling - local index - __index_of_word "${prev}" "${flags_with_completion[@]}" - if [[ ${index} -ge 0 ]]; then - ${flags_completion[${index}]} - return - fi - - # we are parsing a flag and don't have a special handler, no completion - if [[ ${cur} != "${words[cword]}" ]]; then - return - fi - - local completions - completions=("${commands[@]}") - if [[ ${#must_have_one_noun[@]} -ne 0 ]]; then - completions=("${must_have_one_noun[@]}") - fi - if [[ ${#must_have_one_flag[@]} -ne 0 ]]; then - completions+=("${must_have_one_flag[@]}") - fi - COMPREPLY=( $(compgen -W "${completions[*]}" -- "$cur") ) - - if [[ ${#COMPREPLY[@]} -eq 0 && ${#noun_aliases[@]} -gt 0 && ${#must_have_one_noun[@]} -ne 0 ]]; then - COMPREPLY=( $(compgen -W "${noun_aliases[*]}" -- "$cur") ) - fi - - if [[ ${#COMPREPLY[@]} -eq 0 ]]; then - declare -F __custom_func >/dev/null && __custom_func - fi - - # available in bash-completion >= 2, not always present on macOS - if declare -F __ltrim_colon_completions >/dev/null; then - __ltrim_colon_completions "$cur" - fi -} - -# The arguments should be in the form "ext1|ext2|extn" -__handle_filename_extension_flag() -{ - local ext="$1" - _filedir "@(${ext})" -} - -__handle_subdirs_in_dir_flag() -{ - local dir="$1" - pushd "${dir}" >/dev/null 2>&1 && _filedir -d && popd >/dev/null 2>&1 -} - -__handle_flag() -{ - __debug "${FUNCNAME[0]}: c is $c words[c] is ${words[c]}" - - # if a command required a flag, and we found it, unset must_have_one_flag() - local flagname=${words[c]} - local flagvalue - # if the word contained an = - if [[ ${words[c]} == *"="* ]]; then - flagvalue=${flagname#*=} # take in as flagvalue after the = - flagname=${flagname%%=*} # strip everything after the = - flagname="${flagname}=" # but put the = back - fi - __debug "${FUNCNAME[0]}: looking for ${flagname}" - if __contains_word "${flagname}" "${must_have_one_flag[@]}"; then - must_have_one_flag=() - fi - - # if you set a flag which only applies to this command, don't show subcommands - if __contains_word "${flagname}" "${local_nonpersistent_flags[@]}"; then - commands=() - fi - - # keep flag value with flagname as flaghash - if [ -n "${flagvalue}" ] ; then - flaghash[${flagname}]=${flagvalue} - elif [ -n "${words[ $((c+1)) ]}" ] ; then - flaghash[${flagname}]=${words[ $((c+1)) ]} - else - flaghash[${flagname}]="true" # pad "true" for bool flag - fi - - # skip the argument to a two word flag - if __contains_word "${words[c]}" "${two_word_flags[@]}"; then - c=$((c+1)) - # if we are looking for a flags value, don't show commands - if [[ $c -eq $cword ]]; then - commands=() - fi - fi - - c=$((c+1)) - -} - -__handle_noun() -{ - __debug "${FUNCNAME[0]}: c is $c words[c] is ${words[c]}" - - if __contains_word "${words[c]}" "${must_have_one_noun[@]}"; then - must_have_one_noun=() - elif __contains_word "${words[c]}" "${noun_aliases[@]}"; then - must_have_one_noun=() - fi - - nouns+=("${words[c]}") - c=$((c+1)) -} - -__handle_command() -{ - __debug "${FUNCNAME[0]}: c is $c words[c] is ${words[c]}" - - local next_command - if [[ -n ${last_command} ]]; then - next_command="_${last_command}_${words[c]//:/__}" - else - if [[ $c -eq 0 ]]; then - next_command="_$(basename "${words[c]//:/__}")" - else - next_command="_${words[c]//:/__}" - fi - fi - c=$((c+1)) - __debug "${FUNCNAME[0]}: looking for ${next_command}" - declare -F "$next_command" >/dev/null && $next_command -} - -__handle_word() -{ - if [[ $c -ge $cword ]]; then - __handle_reply - return - fi - __debug "${FUNCNAME[0]}: c is $c words[c] is ${words[c]}" - if [[ "${words[c]}" == -* ]]; then - __handle_flag - elif __contains_word "${words[c]}" "${commands[@]}"; then - __handle_command - elif [[ $c -eq 0 ]] && __contains_word "$(basename "${words[c]}")" "${commands[@]}"; then - __handle_command - else - __handle_noun - fi - __handle_word -} - -`) -} - -func writePostscript(buf *bytes.Buffer, name string) { - name = strings.Replace(name, ":", "__", -1) - buf.WriteString(fmt.Sprintf("__start_%s()\n", name)) - buf.WriteString(fmt.Sprintf(`{ - local cur prev words cword - declare -A flaghash 2>/dev/null || : - if declare -F _init_completion >/dev/null 2>&1; then - _init_completion -s || return - else - __my_init_completion -n "=" || return - fi - - local c=0 - local flags=() - local two_word_flags=() - local local_nonpersistent_flags=() - local flags_with_completion=() - local flags_completion=() - local commands=("%s") - local must_have_one_flag=() - local must_have_one_noun=() - local last_command - local nouns=() - - __handle_word -} - -`, name)) - buf.WriteString(fmt.Sprintf(`if [[ $(type -t compopt) = "builtin" ]]; then - complete -o default -F __start_%s %s -else - complete -o default -o nospace -F __start_%s %s -fi - -`, name, name, name, name)) - buf.WriteString("# ex: ts=4 sw=4 et filetype=sh\n") -} - -func writeCommands(buf *bytes.Buffer, cmd *Command) { - buf.WriteString(" commands=()\n") - for _, c := range cmd.Commands() { - if !c.IsAvailableCommand() || c == cmd.helpCommand { - continue - } - buf.WriteString(fmt.Sprintf(" commands+=(%q)\n", c.Name())) - } - buf.WriteString("\n") -} - -func writeFlagHandler(buf *bytes.Buffer, name string, annotations map[string][]string) { - for key, value := range annotations { - switch key { - case BashCompFilenameExt: - buf.WriteString(fmt.Sprintf(" flags_with_completion+=(%q)\n", name)) - - var ext string - if len(value) > 0 { - ext = "__handle_filename_extension_flag " + strings.Join(value, "|") - } else { - ext = "_filedir" - } - buf.WriteString(fmt.Sprintf(" flags_completion+=(%q)\n", ext)) - case BashCompCustom: - buf.WriteString(fmt.Sprintf(" flags_with_completion+=(%q)\n", name)) - if len(value) > 0 { - handlers := strings.Join(value, "; ") - buf.WriteString(fmt.Sprintf(" flags_completion+=(%q)\n", handlers)) - } else { - buf.WriteString(" flags_completion+=(:)\n") - } - case BashCompSubdirsInDir: - buf.WriteString(fmt.Sprintf(" flags_with_completion+=(%q)\n", name)) - - var ext string - if len(value) == 1 { - ext = "__handle_subdirs_in_dir_flag " + value[0] - } else { - ext = "_filedir -d" - } - buf.WriteString(fmt.Sprintf(" flags_completion+=(%q)\n", ext)) - } - } -} - -func writeShortFlag(buf *bytes.Buffer, flag *pflag.Flag) { - name := flag.Shorthand - format := " " - if len(flag.NoOptDefVal) == 0 { - format += "two_word_" - } - format += "flags+=(\"-%s\")\n" - buf.WriteString(fmt.Sprintf(format, name)) - writeFlagHandler(buf, "-"+name, flag.Annotations) -} - -func writeFlag(buf *bytes.Buffer, flag *pflag.Flag) { - name := flag.Name - format := " flags+=(\"--%s" - if len(flag.NoOptDefVal) == 0 { - format += "=" - } - format += "\")\n" - buf.WriteString(fmt.Sprintf(format, name)) - writeFlagHandler(buf, "--"+name, flag.Annotations) -} - -func writeLocalNonPersistentFlag(buf *bytes.Buffer, flag *pflag.Flag) { - name := flag.Name - format := " local_nonpersistent_flags+=(\"--%s" - if len(flag.NoOptDefVal) == 0 { - format += "=" - } - format += "\")\n" - buf.WriteString(fmt.Sprintf(format, name)) -} - -func writeFlags(buf *bytes.Buffer, cmd *Command) { - buf.WriteString(` flags=() - two_word_flags=() - local_nonpersistent_flags=() - flags_with_completion=() - flags_completion=() - -`) - localNonPersistentFlags := cmd.LocalNonPersistentFlags() - cmd.NonInheritedFlags().VisitAll(func(flag *pflag.Flag) { - if nonCompletableFlag(flag) { - return - } - writeFlag(buf, flag) - if len(flag.Shorthand) > 0 { - writeShortFlag(buf, flag) - } - if localNonPersistentFlags.Lookup(flag.Name) != nil { - writeLocalNonPersistentFlag(buf, flag) - } - }) - cmd.InheritedFlags().VisitAll(func(flag *pflag.Flag) { - if nonCompletableFlag(flag) { - return - } - writeFlag(buf, flag) - if len(flag.Shorthand) > 0 { - writeShortFlag(buf, flag) - } - }) - - buf.WriteString("\n") -} - -func writeRequiredFlag(buf *bytes.Buffer, cmd *Command) { - buf.WriteString(" must_have_one_flag=()\n") - flags := cmd.NonInheritedFlags() - flags.VisitAll(func(flag *pflag.Flag) { - if nonCompletableFlag(flag) { - return - } - for key := range flag.Annotations { - switch key { - case BashCompOneRequiredFlag: - format := " must_have_one_flag+=(\"--%s" - if flag.Value.Type() != "bool" { - format += "=" - } - format += "\")\n" - buf.WriteString(fmt.Sprintf(format, flag.Name)) - - if len(flag.Shorthand) > 0 { - buf.WriteString(fmt.Sprintf(" must_have_one_flag+=(\"-%s\")\n", flag.Shorthand)) - } - } - } - }) -} - -func writeRequiredNouns(buf *bytes.Buffer, cmd *Command) { - buf.WriteString(" must_have_one_noun=()\n") - sort.Sort(sort.StringSlice(cmd.ValidArgs)) - for _, value := range cmd.ValidArgs { - buf.WriteString(fmt.Sprintf(" must_have_one_noun+=(%q)\n", value)) - } -} - -func writeArgAliases(buf *bytes.Buffer, cmd *Command) { - buf.WriteString(" noun_aliases=()\n") - sort.Sort(sort.StringSlice(cmd.ArgAliases)) - for _, value := range cmd.ArgAliases { - buf.WriteString(fmt.Sprintf(" noun_aliases+=(%q)\n", value)) - } -} - -func gen(buf *bytes.Buffer, cmd *Command) { - for _, c := range cmd.Commands() { - if !c.IsAvailableCommand() || c == cmd.helpCommand { - continue - } - gen(buf, c) - } - commandName := cmd.CommandPath() - commandName = strings.Replace(commandName, " ", "_", -1) - commandName = strings.Replace(commandName, ":", "__", -1) - buf.WriteString(fmt.Sprintf("_%s()\n{\n", commandName)) - buf.WriteString(fmt.Sprintf(" last_command=%q\n", commandName)) - writeCommands(buf, cmd) - writeFlags(buf, cmd) - writeRequiredFlag(buf, cmd) - writeRequiredNouns(buf, cmd) - writeArgAliases(buf, cmd) - buf.WriteString("}\n\n") -} - -// GenBashCompletion generates bash completion file and writes to the passed writer. -func (cmd *Command) GenBashCompletion(w io.Writer) error { - buf := new(bytes.Buffer) - writePreamble(buf, cmd.Name()) - if len(cmd.BashCompletionFunction) > 0 { - buf.WriteString(cmd.BashCompletionFunction + "\n") - } - gen(buf, cmd) - writePostscript(buf, cmd.Name()) - - _, err := buf.WriteTo(w) - return err -} - -func nonCompletableFlag(flag *pflag.Flag) bool { - return flag.Hidden || len(flag.Deprecated) > 0 -} - -// GenBashCompletionFile generates bash completion file. -func (cmd *Command) GenBashCompletionFile(filename string) error { - outFile, err := os.Create(filename) - if err != nil { - return err - } - defer outFile.Close() - - return cmd.GenBashCompletion(outFile) -} - -// MarkFlagRequired adds the BashCompOneRequiredFlag annotation to the named flag, if it exists. -func (cmd *Command) MarkFlagRequired(name string) error { - return MarkFlagRequired(cmd.Flags(), name) -} - -// MarkPersistentFlagRequired adds the BashCompOneRequiredFlag annotation to the named persistent flag, if it exists. -func (cmd *Command) MarkPersistentFlagRequired(name string) error { - return MarkFlagRequired(cmd.PersistentFlags(), name) -} - -// MarkFlagRequired adds the BashCompOneRequiredFlag annotation to the named flag in the flag set, if it exists. -func MarkFlagRequired(flags *pflag.FlagSet, name string) error { - return flags.SetAnnotation(name, BashCompOneRequiredFlag, []string{"true"}) -} - -// MarkFlagFilename adds the BashCompFilenameExt annotation to the named flag, if it exists. -// Generated bash autocompletion will select filenames for the flag, limiting to named extensions if provided. -func (cmd *Command) MarkFlagFilename(name string, extensions ...string) error { - return MarkFlagFilename(cmd.Flags(), name, extensions...) -} - -// MarkFlagCustom adds the BashCompCustom annotation to the named flag, if it exists. -// Generated bash autocompletion will call the bash function f for the flag. -func (cmd *Command) MarkFlagCustom(name string, f string) error { - return MarkFlagCustom(cmd.Flags(), name, f) -} - -// MarkPersistentFlagFilename adds the BashCompFilenameExt annotation to the named persistent flag, if it exists. -// Generated bash autocompletion will select filenames for the flag, limiting to named extensions if provided. -func (cmd *Command) MarkPersistentFlagFilename(name string, extensions ...string) error { - return MarkFlagFilename(cmd.PersistentFlags(), name, extensions...) -} - -// MarkFlagFilename adds the BashCompFilenameExt annotation to the named flag in the flag set, if it exists. -// Generated bash autocompletion will select filenames for the flag, limiting to named extensions if provided. -func MarkFlagFilename(flags *pflag.FlagSet, name string, extensions ...string) error { - return flags.SetAnnotation(name, BashCompFilenameExt, extensions) -} - -// MarkFlagCustom adds the BashCompCustom annotation to the named flag in the flag set, if it exists. -// Generated bash autocompletion will call the bash function f for the flag. -func MarkFlagCustom(flags *pflag.FlagSet, name string, f string) error { - return flags.SetAnnotation(name, BashCompCustom, []string{f}) -} diff --git a/vendor/github.com/spf13/cobra/bash_completions.md b/vendor/github.com/spf13/cobra/bash_completions.md deleted file mode 100644 index 52bd39d..0000000 --- a/vendor/github.com/spf13/cobra/bash_completions.md +++ /dev/null @@ -1,206 +0,0 @@ -# Generating Bash Completions For Your Own cobra.Command - -Generating bash completions from a cobra command is incredibly easy. An actual program which does so for the kubernetes kubectl binary is as follows: - -```go -package main - -import ( - "io/ioutil" - "os" - - "github.com/GoogleCloudPlatform/kubernetes/pkg/kubectl/cmd" -) - -func main() { - kubectl := cmd.NewFactory(nil).NewKubectlCommand(os.Stdin, ioutil.Discard, ioutil.Discard) - kubectl.GenBashCompletionFile("out.sh") -} -``` - -`out.sh` will get you completions of subcommands and flags. Copy it to `/etc/bash_completion.d/` as described [here](https://debian-administration.org/article/316/An_introduction_to_bash_completion_part_1) and reset your terminal to use autocompletion. If you make additional annotations to your code, you can get even more intelligent and flexible behavior. - -## Creating your own custom functions - -Some more actual code that works in kubernetes: - -```bash -const ( - bash_completion_func = `__kubectl_parse_get() -{ - local kubectl_output out - if kubectl_output=$(kubectl get --no-headers "$1" 2>/dev/null); then - out=($(echo "${kubectl_output}" | awk '{print $1}')) - COMPREPLY=( $( compgen -W "${out[*]}" -- "$cur" ) ) - fi -} - -__kubectl_get_resource() -{ - if [[ ${#nouns[@]} -eq 0 ]]; then - return 1 - fi - __kubectl_parse_get ${nouns[${#nouns[@]} -1]} - if [[ $? -eq 0 ]]; then - return 0 - fi -} - -__custom_func() { - case ${last_command} in - kubectl_get | kubectl_describe | kubectl_delete | kubectl_stop) - __kubectl_get_resource - return - ;; - *) - ;; - esac -} -`) -``` - -And then I set that in my command definition: - -```go -cmds := &cobra.Command{ - Use: "kubectl", - Short: "kubectl controls the Kubernetes cluster manager", - Long: `kubectl controls the Kubernetes cluster manager. - -Find more information at https://github.com/GoogleCloudPlatform/kubernetes.`, - Run: runHelp, - BashCompletionFunction: bash_completion_func, -} -``` - -The `BashCompletionFunction` option is really only valid/useful on the root command. Doing the above will cause `__custom_func()` to be called when the built in processor was unable to find a solution. In the case of kubernetes a valid command might look something like `kubectl get pod [mypod]`. If you type `kubectl get pod [tab][tab]` the `__customc_func()` will run because the cobra.Command only understood "kubectl" and "get." `__custom_func()` will see that the cobra.Command is "kubectl_get" and will thus call another helper `__kubectl_get_resource()`. `__kubectl_get_resource` will look at the 'nouns' collected. In our example the only noun will be `pod`. So it will call `__kubectl_parse_get pod`. `__kubectl_parse_get` will actually call out to kubernetes and get any pods. It will then set `COMPREPLY` to valid pods! - -## Have the completions code complete your 'nouns' - -In the above example "pod" was assumed to already be typed. But if you want `kubectl get [tab][tab]` to show a list of valid "nouns" you have to set them. Simplified code from `kubectl get` looks like: - -```go -validArgs []string = { "pod", "node", "service", "replicationcontroller" } - -cmd := &cobra.Command{ - Use: "get [(-o|--output=)json|yaml|template|...] (RESOURCE [NAME] | RESOURCE/NAME ...)", - Short: "Display one or many resources", - Long: get_long, - Example: get_example, - Run: func(cmd *cobra.Command, args []string) { - err := RunGet(f, out, cmd, args) - util.CheckErr(err) - }, - ValidArgs: validArgs, -} -``` - -Notice we put the "ValidArgs" on the "get" subcommand. Doing so will give results like - -```bash -# kubectl get [tab][tab] -node pod replicationcontroller service -``` - -## Plural form and shortcuts for nouns - -If your nouns have a number of aliases, you can define them alongside `ValidArgs` using `ArgAliases`: - -```go -argAliases []string = { "pods", "nodes", "services", "svc", "replicationcontrollers", "rc" } - -cmd := &cobra.Command{ - ... - ValidArgs: validArgs, - ArgAliases: argAliases -} -``` - -The aliases are not shown to the user on tab completion, but they are accepted as valid nouns by -the completion algorithm if entered manually, e.g. in: - -```bash -# kubectl get rc [tab][tab] -backend frontend database -``` - -Note that without declaring `rc` as an alias, the completion algorithm would show the list of nouns -in this example again instead of the replication controllers. - -## Mark flags as required - -Most of the time completions will only show subcommands. But if a flag is required to make a subcommand work, you probably want it to show up when the user types [tab][tab]. Marking a flag as 'Required' is incredibly easy. - -```go -cmd.MarkFlagRequired("pod") -cmd.MarkFlagRequired("container") -``` - -and you'll get something like - -```bash -# kubectl exec [tab][tab][tab] --c --container= -p --pod= -``` - -# Specify valid filename extensions for flags that take a filename - -In this example we use --filename= and expect to get a json or yaml file as the argument. To make this easier we annotate the --filename flag with valid filename extensions. - -```go - annotations := []string{"json", "yaml", "yml"} - annotation := make(map[string][]string) - annotation[cobra.BashCompFilenameExt] = annotations - - flag := &pflag.Flag{ - Name: "filename", - Shorthand: "f", - Usage: usage, - Value: value, - DefValue: value.String(), - Annotations: annotation, - } - cmd.Flags().AddFlag(flag) -``` - -Now when you run a command with this filename flag you'll get something like - -```bash -# kubectl create -f -test/ example/ rpmbuild/ -hello.yml test.json -``` - -So while there are many other files in the CWD it only shows me subdirs and those with valid extensions. - -# Specifiy custom flag completion - -Similar to the filename completion and filtering using cobra.BashCompFilenameExt, you can specifiy -a custom flag completion function with cobra.BashCompCustom: - -```go - annotation := make(map[string][]string) - annotation[cobra.BashCompFilenameExt] = []string{"__kubectl_get_namespaces"} - - flag := &pflag.Flag{ - Name: "namespace", - Usage: usage, - Annotations: annotation, - } - cmd.Flags().AddFlag(flag) -``` - -In addition add the `__handle_namespace_flag` implementation in the `BashCompletionFunction` -value, e.g.: - -```bash -__kubectl_get_namespaces() -{ - local template - template="{{ range .items }}{{ .metadata.name }} {{ end }}" - local kubectl_out - if kubectl_out=$(kubectl get -o template --template="${template}" namespace 2>/dev/null); then - COMPREPLY=( $( compgen -W "${kubectl_out}[*]" -- "$cur" ) ) - fi -} -``` diff --git a/vendor/github.com/spf13/cobra/cobra.go b/vendor/github.com/spf13/cobra/cobra.go deleted file mode 100644 index 8928cef..0000000 --- a/vendor/github.com/spf13/cobra/cobra.go +++ /dev/null @@ -1,190 +0,0 @@ -// Copyright © 2013 Steve Francia . -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// Commands similar to git, go tools and other modern CLI tools -// inspired by go, go-Commander, gh and subcommand - -package cobra - -import ( - "fmt" - "io" - "reflect" - "strconv" - "strings" - "text/template" - "unicode" -) - -var templateFuncs = template.FuncMap{ - "trim": strings.TrimSpace, - "trimRightSpace": trimRightSpace, - "trimTrailingWhitespaces": trimRightSpace, - "appendIfNotPresent": appendIfNotPresent, - "rpad": rpad, - "gt": Gt, - "eq": Eq, -} - -var initializers []func() - -// EnablePrefixMatching allows to set automatic prefix matching. Automatic prefix matching can be a dangerous thing -// to automatically enable in CLI tools. -// Set this to true to enable it. -var EnablePrefixMatching = false - -// EnableCommandSorting controls sorting of the slice of commands, which is turned on by default. -// To disable sorting, set it to false. -var EnableCommandSorting = true - -// MousetrapHelpText enables an information splash screen on Windows -// if the CLI is started from explorer.exe. -// To disable the mousetrap, just set this variable to blank string (""). -// Works only on Microsoft Windows. -var MousetrapHelpText string = `This is a command line tool. - -You need to open cmd.exe and run it from there. -` - -// AddTemplateFunc adds a template function that's available to Usage and Help -// template generation. -func AddTemplateFunc(name string, tmplFunc interface{}) { - templateFuncs[name] = tmplFunc -} - -// AddTemplateFuncs adds multiple template functions that are available to Usage and -// Help template generation. -func AddTemplateFuncs(tmplFuncs template.FuncMap) { - for k, v := range tmplFuncs { - templateFuncs[k] = v - } -} - -// OnInitialize takes a series of func() arguments and appends them to a slice of func(). -func OnInitialize(y ...func()) { - initializers = append(initializers, y...) -} - -// FIXME Gt is unused by cobra and should be removed in a version 2. It exists only for compatibility with users of cobra. - -// Gt takes two types and checks whether the first type is greater than the second. In case of types Arrays, Chans, -// Maps and Slices, Gt will compare their lengths. Ints are compared directly while strings are first parsed as -// ints and then compared. -func Gt(a interface{}, b interface{}) bool { - var left, right int64 - av := reflect.ValueOf(a) - - switch av.Kind() { - case reflect.Array, reflect.Chan, reflect.Map, reflect.Slice: - left = int64(av.Len()) - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - left = av.Int() - case reflect.String: - left, _ = strconv.ParseInt(av.String(), 10, 64) - } - - bv := reflect.ValueOf(b) - - switch bv.Kind() { - case reflect.Array, reflect.Chan, reflect.Map, reflect.Slice: - right = int64(bv.Len()) - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - right = bv.Int() - case reflect.String: - right, _ = strconv.ParseInt(bv.String(), 10, 64) - } - - return left > right -} - -// FIXME Eq is unused by cobra and should be removed in a version 2. It exists only for compatibility with users of cobra. - -// Eq takes two types and checks whether they are equal. Supported types are int and string. Unsupported types will panic. -func Eq(a interface{}, b interface{}) bool { - av := reflect.ValueOf(a) - bv := reflect.ValueOf(b) - - switch av.Kind() { - case reflect.Array, reflect.Chan, reflect.Map, reflect.Slice: - panic("Eq called on unsupported type") - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - return av.Int() == bv.Int() - case reflect.String: - return av.String() == bv.String() - } - return false -} - -func trimRightSpace(s string) string { - return strings.TrimRightFunc(s, unicode.IsSpace) -} - -// FIXME appendIfNotPresent is unused by cobra and should be removed in a version 2. It exists only for compatibility with users of cobra. - -// appendIfNotPresent will append stringToAppend to the end of s, but only if it's not yet present in s. -func appendIfNotPresent(s, stringToAppend string) string { - if strings.Contains(s, stringToAppend) { - return s - } - return s + " " + stringToAppend -} - -// rpad adds padding to the right of a string. -func rpad(s string, padding int) string { - template := fmt.Sprintf("%%-%ds", padding) - return fmt.Sprintf(template, s) -} - -// tmpl executes the given template text on data, writing the result to w. -func tmpl(w io.Writer, text string, data interface{}) error { - t := template.New("top") - t.Funcs(templateFuncs) - template.Must(t.Parse(text)) - return t.Execute(w, data) -} - -// ld compares two strings and returns the levenshtein distance between them. -func ld(s, t string, ignoreCase bool) int { - if ignoreCase { - s = strings.ToLower(s) - t = strings.ToLower(t) - } - d := make([][]int, len(s)+1) - for i := range d { - d[i] = make([]int, len(t)+1) - } - for i := range d { - d[i][0] = i - } - for j := range d[0] { - d[0][j] = j - } - for j := 1; j <= len(t); j++ { - for i := 1; i <= len(s); i++ { - if s[i-1] == t[j-1] { - d[i][j] = d[i-1][j-1] - } else { - min := d[i-1][j] - if d[i][j-1] < min { - min = d[i][j-1] - } - if d[i-1][j-1] < min { - min = d[i-1][j-1] - } - d[i][j] = min + 1 - } - } - - } - return d[len(s)][len(t)] -} diff --git a/vendor/github.com/spf13/cobra/command.go b/vendor/github.com/spf13/cobra/command.go deleted file mode 100644 index 185e452..0000000 --- a/vendor/github.com/spf13/cobra/command.go +++ /dev/null @@ -1,1306 +0,0 @@ -// Copyright © 2013 Steve Francia . -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// Package cobra is a commander providing a simple interface to create powerful modern CLI interfaces. -// In addition to providing an interface, Cobra simultaneously provides a controller to organize your application code. -package cobra - -import ( - "bytes" - "fmt" - "io" - "os" - "path/filepath" - "sort" - "strings" - - flag "github.com/spf13/pflag" -) - -// Command is just that, a command for your application. -// E.g. 'go run ...' - 'run' is the command. Cobra requires -// you to define the usage and description as part of your command -// definition to ensure usability. -type Command struct { - // Use is the one-line usage message. - Use string - - // Aliases is an array of aliases that can be used instead of the first word in Use. - Aliases []string - - // SuggestFor is an array of command names for which this command will be suggested - - // similar to aliases but only suggests. - SuggestFor []string - - // Short is the short description shown in the 'help' output. - Short string - - // Long is the long message shown in the 'help ' output. - Long string - - // Example is examples of how to use the command. - Example string - - // ValidArgs is list of all valid non-flag arguments that are accepted in bash completions - ValidArgs []string - - // Expected arguments - Args PositionalArgs - - // ArgAliases is List of aliases for ValidArgs. - // These are not suggested to the user in the bash completion, - // but accepted if entered manually. - ArgAliases []string - - // BashCompletionFunction is custom functions used by the bash autocompletion generator. - BashCompletionFunction string - - // Deprecated defines, if this command is deprecated and should print this string when used. - Deprecated string - - // Hidden defines, if this command is hidden and should NOT show up in the list of available commands. - Hidden bool - - // Annotations are key/value pairs that can be used by applications to identify or - // group commands. - Annotations map[string]string - - // The *Run functions are executed in the following order: - // * PersistentPreRun() - // * PreRun() - // * Run() - // * PostRun() - // * PersistentPostRun() - // All functions get the same args, the arguments after the command name. - // - // PersistentPreRun: children of this command will inherit and execute. - PersistentPreRun func(cmd *Command, args []string) - // PersistentPreRunE: PersistentPreRun but returns an error. - PersistentPreRunE func(cmd *Command, args []string) error - // PreRun: children of this command will not inherit. - PreRun func(cmd *Command, args []string) - // PreRunE: PreRun but returns an error. - PreRunE func(cmd *Command, args []string) error - // Run: Typically the actual work function. Most commands will only implement this. - Run func(cmd *Command, args []string) - // RunE: Run but returns an error. - RunE func(cmd *Command, args []string) error - // PostRun: run after the Run command. - PostRun func(cmd *Command, args []string) - // PostRunE: PostRun but returns an error. - PostRunE func(cmd *Command, args []string) error - // PersistentPostRun: children of this command will inherit and execute after PostRun. - PersistentPostRun func(cmd *Command, args []string) - // PersistentPostRunE: PersistentPostRun but returns an error. - PersistentPostRunE func(cmd *Command, args []string) error - - // SilenceErrors is an option to quiet errors down stream. - SilenceErrors bool - - // SilenceUsage is an option to silence usage when an error occurs. - SilenceUsage bool - - // DisableFlagParsing disables the flag parsing. - // If this is true all flags will be passed to the command as arguments. - DisableFlagParsing bool - - // DisableAutoGenTag defines, if gen tag ("Auto generated by spf13/cobra...") - // will be printed by generating docs for this command. - DisableAutoGenTag bool - - // DisableSuggestions disables the suggestions based on Levenshtein distance - // that go along with 'unknown command' messages. - DisableSuggestions bool - // SuggestionsMinimumDistance defines minimum levenshtein distance to display suggestions. - // Must be > 0. - SuggestionsMinimumDistance int - - // name is the command name, usually the executable's name. - name string - // commands is the list of commands supported by this program. - commands []*Command - // parent is a parent command for this command. - parent *Command - // Max lengths of commands' string lengths for use in padding. - commandsMaxUseLen int - commandsMaxCommandPathLen int - commandsMaxNameLen int - // commandsAreSorted defines, if command slice are sorted or not. - commandsAreSorted bool - - // args is actual args parsed from flags. - args []string - // flagErrorBuf contains all error messages from pflag. - flagErrorBuf *bytes.Buffer - // flags is full set of flags. - flags *flag.FlagSet - // pflags contains persistent flags. - pflags *flag.FlagSet - // lflags contains local flags. - lflags *flag.FlagSet - // iflags contains inherited flags. - iflags *flag.FlagSet - // parentsPflags is all persistent flags of cmd's parents. - parentsPflags *flag.FlagSet - // globNormFunc is the global normalization function - // that we can use on every pflag set and children commands - globNormFunc func(f *flag.FlagSet, name string) flag.NormalizedName - - // output is an output writer defined by user. - output io.Writer - // usageFunc is usage func defined by user. - usageFunc func(*Command) error - // usageTemplate is usage template defined by user. - usageTemplate string - // flagErrorFunc is func defined by user and it's called when the parsing of - // flags returns an error. - flagErrorFunc func(*Command, error) error - // helpTemplate is help template defined by user. - helpTemplate string - // helpFunc is help func defined by user. - helpFunc func(*Command, []string) - // helpCommand is command with usage 'help'. If it's not defined by user, - // cobra uses default help command. - helpCommand *Command -} - -// SetArgs sets arguments for the command. It is set to os.Args[1:] by default, if desired, can be overridden -// particularly useful when testing. -func (c *Command) SetArgs(a []string) { - c.args = a -} - -// SetOutput sets the destination for usage and error messages. -// If output is nil, os.Stderr is used. -func (c *Command) SetOutput(output io.Writer) { - c.output = output -} - -// SetUsageFunc sets usage function. Usage can be defined by application. -func (c *Command) SetUsageFunc(f func(*Command) error) { - c.usageFunc = f -} - -// SetUsageTemplate sets usage template. Can be defined by Application. -func (c *Command) SetUsageTemplate(s string) { - c.usageTemplate = s -} - -// SetFlagErrorFunc sets a function to generate an error when flag parsing -// fails. -func (c *Command) SetFlagErrorFunc(f func(*Command, error) error) { - c.flagErrorFunc = f -} - -// SetHelpFunc sets help function. Can be defined by Application. -func (c *Command) SetHelpFunc(f func(*Command, []string)) { - c.helpFunc = f -} - -// SetHelpCommand sets help command. -func (c *Command) SetHelpCommand(cmd *Command) { - c.helpCommand = cmd -} - -// SetHelpTemplate sets help template to be used. Application can use it to set custom template. -func (c *Command) SetHelpTemplate(s string) { - c.helpTemplate = s -} - -// SetGlobalNormalizationFunc sets a normalization function to all flag sets and also to child commands. -// The user should not have a cyclic dependency on commands. -func (c *Command) SetGlobalNormalizationFunc(n func(f *flag.FlagSet, name string) flag.NormalizedName) { - c.Flags().SetNormalizeFunc(n) - c.PersistentFlags().SetNormalizeFunc(n) - c.globNormFunc = n - - for _, command := range c.commands { - command.SetGlobalNormalizationFunc(n) - } -} - -// OutOrStdout returns output to stdout. -func (c *Command) OutOrStdout() io.Writer { - return c.getOut(os.Stdout) -} - -// OutOrStderr returns output to stderr -func (c *Command) OutOrStderr() io.Writer { - return c.getOut(os.Stderr) -} - -func (c *Command) getOut(def io.Writer) io.Writer { - if c.output != nil { - return c.output - } - if c.HasParent() { - return c.parent.getOut(def) - } - return def -} - -// UsageFunc returns either the function set by SetUsageFunc for this command -// or a parent, or it returns a default usage function. -func (c *Command) UsageFunc() (f func(*Command) error) { - if c.usageFunc != nil { - return c.usageFunc - } - if c.HasParent() { - return c.Parent().UsageFunc() - } - return func(c *Command) error { - c.mergePersistentFlags() - err := tmpl(c.OutOrStderr(), c.UsageTemplate(), c) - if err != nil { - c.Println(err) - } - return err - } -} - -// Usage puts out the usage for the command. -// Used when a user provides invalid input. -// Can be defined by user by overriding UsageFunc. -func (c *Command) Usage() error { - return c.UsageFunc()(c) -} - -// HelpFunc returns either the function set by SetHelpFunc for this command -// or a parent, or it returns a function with default help behavior. -func (c *Command) HelpFunc() func(*Command, []string) { - if c.helpFunc != nil { - return c.helpFunc - } - if c.HasParent() { - return c.Parent().HelpFunc() - } - return func(c *Command, a []string) { - c.mergePersistentFlags() - err := tmpl(c.OutOrStdout(), c.HelpTemplate(), c) - if err != nil { - c.Println(err) - } - } -} - -// Help puts out the help for the command. -// Used when a user calls help [command]. -// Can be defined by user by overriding HelpFunc. -func (c *Command) Help() error { - c.HelpFunc()(c, []string{}) - return nil -} - -// UsageString return usage string. -func (c *Command) UsageString() string { - tmpOutput := c.output - bb := new(bytes.Buffer) - c.SetOutput(bb) - c.Usage() - c.output = tmpOutput - return bb.String() -} - -// FlagErrorFunc returns either the function set by SetFlagErrorFunc for this -// command or a parent, or it returns a function which returns the original -// error. -func (c *Command) FlagErrorFunc() (f func(*Command, error) error) { - if c.flagErrorFunc != nil { - return c.flagErrorFunc - } - - if c.HasParent() { - return c.parent.FlagErrorFunc() - } - return func(c *Command, err error) error { - return err - } -} - -var minUsagePadding = 25 - -// UsagePadding return padding for the usage. -func (c *Command) UsagePadding() int { - if c.parent == nil || minUsagePadding > c.parent.commandsMaxUseLen { - return minUsagePadding - } - return c.parent.commandsMaxUseLen -} - -var minCommandPathPadding = 11 - -// CommandPathPadding return padding for the command path. -func (c *Command) CommandPathPadding() int { - if c.parent == nil || minCommandPathPadding > c.parent.commandsMaxCommandPathLen { - return minCommandPathPadding - } - return c.parent.commandsMaxCommandPathLen -} - -var minNamePadding = 11 - -// NamePadding returns padding for the name. -func (c *Command) NamePadding() int { - if c.parent == nil || minNamePadding > c.parent.commandsMaxNameLen { - return minNamePadding - } - return c.parent.commandsMaxNameLen -} - -// UsageTemplate returns usage template for the command. -func (c *Command) UsageTemplate() string { - if c.usageTemplate != "" { - return c.usageTemplate - } - - if c.HasParent() { - return c.parent.UsageTemplate() - } - return `Usage:{{if .Runnable}} - {{.UseLine}}{{end}}{{if .HasAvailableSubCommands}} - {{.CommandPath}} [command]{{end}}{{if gt (len .Aliases) 0}} - -Aliases: - {{.NameAndAliases}}{{end}}{{if .HasExample}} - -Examples: -{{.Example}}{{end}}{{if .HasAvailableSubCommands}} - -Available Commands:{{range .Commands}}{{if (or .IsAvailableCommand (eq .Name "help"))}} - {{rpad .Name .NamePadding }} {{.Short}}{{end}}{{end}}{{end}}{{if .HasAvailableLocalFlags}} - -Flags: -{{.LocalFlags.FlagUsages | trimTrailingWhitespaces}}{{end}}{{if .HasAvailableInheritedFlags}} - -Global Flags: -{{.InheritedFlags.FlagUsages | trimTrailingWhitespaces}}{{end}}{{if .HasHelpSubCommands}} - -Additional help topics:{{range .Commands}}{{if .IsAdditionalHelpTopicCommand}} - {{rpad .CommandPath .CommandPathPadding}} {{.Short}}{{end}}{{end}}{{end}}{{if .HasAvailableSubCommands}} - -Use "{{.CommandPath}} [command] --help" for more information about a command.{{end}} -` -} - -// HelpTemplate return help template for the command. -func (c *Command) HelpTemplate() string { - if c.helpTemplate != "" { - return c.helpTemplate - } - - if c.HasParent() { - return c.parent.HelpTemplate() - } - return `{{with (or .Long .Short)}}{{. | trimTrailingWhitespaces}} - -{{end}}{{if or .Runnable .HasSubCommands}}{{.UsageString}}{{end}}` -} - -func hasNoOptDefVal(name string, fs *flag.FlagSet) bool { - flag := fs.Lookup(name) - if flag == nil { - return false - } - return flag.NoOptDefVal != "" -} - -func shortHasNoOptDefVal(name string, fs *flag.FlagSet) bool { - if len(name) == 0 { - return false - } - - flag := fs.ShorthandLookup(name[:1]) - if flag == nil { - return false - } - return flag.NoOptDefVal != "" -} - -func stripFlags(args []string, c *Command) []string { - if len(args) == 0 { - return args - } - c.mergePersistentFlags() - - commands := []string{} - flags := c.Flags() - -Loop: - for len(args) > 0 { - s := args[0] - args = args[1:] - switch { - case strings.HasPrefix(s, "--") && !strings.Contains(s, "=") && !hasNoOptDefVal(s[2:], flags): - // If '--flag arg' then - // delete arg from args. - fallthrough // (do the same as below) - case strings.HasPrefix(s, "-") && !strings.Contains(s, "=") && len(s) == 2 && !shortHasNoOptDefVal(s[1:], flags): - // If '-f arg' then - // delete 'arg' from args or break the loop if len(args) <= 1. - if len(args) <= 1 { - break Loop - } else { - args = args[1:] - continue - } - case s != "" && !strings.HasPrefix(s, "-"): - commands = append(commands, s) - } - } - - return commands -} - -// argsMinusFirstX removes only the first x from args. Otherwise, commands that look like -// openshift admin policy add-role-to-user admin my-user, lose the admin argument (arg[4]). -func argsMinusFirstX(args []string, x string) []string { - for i, y := range args { - if x == y { - ret := []string{} - ret = append(ret, args[:i]...) - ret = append(ret, args[i+1:]...) - return ret - } - } - return args -} - -// Find the target command given the args and command tree -// Meant to be run on the highest node. Only searches down. -func (c *Command) Find(args []string) (*Command, []string, error) { - if c == nil { - return nil, nil, fmt.Errorf("Called find() on a nil Command") - } - - var innerfind func(*Command, []string) (*Command, []string) - - innerfind = func(c *Command, innerArgs []string) (*Command, []string) { - argsWOflags := stripFlags(innerArgs, c) - if len(argsWOflags) == 0 { - return c, innerArgs - } - nextSubCmd := argsWOflags[0] - matches := make([]*Command, 0) - for _, cmd := range c.commands { - if cmd.Name() == nextSubCmd || cmd.HasAlias(nextSubCmd) { // exact name or alias match - return innerfind(cmd, argsMinusFirstX(innerArgs, nextSubCmd)) - } - if EnablePrefixMatching { - if strings.HasPrefix(cmd.Name(), nextSubCmd) { // prefix match - matches = append(matches, cmd) - } - for _, x := range cmd.Aliases { - if strings.HasPrefix(x, nextSubCmd) { - matches = append(matches, cmd) - } - } - } - } - - // only accept a single prefix match - multiple matches would be ambiguous - if len(matches) == 1 { - return innerfind(matches[0], argsMinusFirstX(innerArgs, argsWOflags[0])) - } - - return c, innerArgs - } - - commandFound, a := innerfind(c, args) - if commandFound.Args == nil { - return commandFound, a, legacyArgs(commandFound, stripFlags(a, commandFound)) - } - return commandFound, a, nil -} - -func (c *Command) findSuggestions(arg string) string { - if c.DisableSuggestions { - return "" - } - if c.SuggestionsMinimumDistance <= 0 { - c.SuggestionsMinimumDistance = 2 - } - suggestionsString := "" - if suggestions := c.SuggestionsFor(arg); len(suggestions) > 0 { - suggestionsString += "\n\nDid you mean this?\n" - for _, s := range suggestions { - suggestionsString += fmt.Sprintf("\t%v\n", s) - } - } - return suggestionsString -} - -// SuggestionsFor provides suggestions for the typedName. -func (c *Command) SuggestionsFor(typedName string) []string { - suggestions := []string{} - for _, cmd := range c.commands { - if cmd.IsAvailableCommand() { - levenshteinDistance := ld(typedName, cmd.Name(), true) - suggestByLevenshtein := levenshteinDistance <= c.SuggestionsMinimumDistance - suggestByPrefix := strings.HasPrefix(strings.ToLower(cmd.Name()), strings.ToLower(typedName)) - if suggestByLevenshtein || suggestByPrefix { - suggestions = append(suggestions, cmd.Name()) - } - for _, explicitSuggestion := range cmd.SuggestFor { - if strings.EqualFold(typedName, explicitSuggestion) { - suggestions = append(suggestions, cmd.Name()) - } - } - } - } - return suggestions -} - -// VisitParents visits all parents of the command and invokes fn on each parent. -func (c *Command) VisitParents(fn func(*Command)) { - if c.HasParent() { - fn(c.Parent()) - c.Parent().VisitParents(fn) - } -} - -// Root finds root command. -func (c *Command) Root() *Command { - if c.HasParent() { - return c.Parent().Root() - } - return c -} - -// ArgsLenAtDash will return the length of f.Args at the moment when a -- was -// found during arg parsing. This allows your program to know which args were -// before the -- and which came after. (Description from -// https://godoc.org/github.com/spf13/pflag#FlagSet.ArgsLenAtDash). -func (c *Command) ArgsLenAtDash() int { - return c.Flags().ArgsLenAtDash() -} - -func (c *Command) execute(a []string) (err error) { - if c == nil { - return fmt.Errorf("Called Execute() on a nil Command") - } - - if len(c.Deprecated) > 0 { - c.Printf("Command %q is deprecated, %s\n", c.Name(), c.Deprecated) - } - - // initialize help flag as the last point possible to allow for user - // overriding - c.InitDefaultHelpFlag() - - err = c.ParseFlags(a) - if err != nil { - return c.FlagErrorFunc()(c, err) - } - - // If help is called, regardless of other flags, return we want help. - // Also say we need help if the command isn't runnable. - helpVal, err := c.Flags().GetBool("help") - if err != nil { - // should be impossible to get here as we always declare a help - // flag in InitDefaultHelpFlag() - c.Println("\"help\" flag declared as non-bool. Please correct your code") - return err - } - - if helpVal || !c.Runnable() { - return flag.ErrHelp - } - - c.preRun() - - argWoFlags := c.Flags().Args() - if c.DisableFlagParsing { - argWoFlags = a - } - - if err := c.ValidateArgs(argWoFlags); err != nil { - return err - } - - for p := c; p != nil; p = p.Parent() { - if p.PersistentPreRunE != nil { - if err := p.PersistentPreRunE(c, argWoFlags); err != nil { - return err - } - break - } else if p.PersistentPreRun != nil { - p.PersistentPreRun(c, argWoFlags) - break - } - } - if c.PreRunE != nil { - if err := c.PreRunE(c, argWoFlags); err != nil { - return err - } - } else if c.PreRun != nil { - c.PreRun(c, argWoFlags) - } - - if c.RunE != nil { - if err := c.RunE(c, argWoFlags); err != nil { - return err - } - } else { - c.Run(c, argWoFlags) - } - if c.PostRunE != nil { - if err := c.PostRunE(c, argWoFlags); err != nil { - return err - } - } else if c.PostRun != nil { - c.PostRun(c, argWoFlags) - } - for p := c; p != nil; p = p.Parent() { - if p.PersistentPostRunE != nil { - if err := p.PersistentPostRunE(c, argWoFlags); err != nil { - return err - } - break - } else if p.PersistentPostRun != nil { - p.PersistentPostRun(c, argWoFlags) - break - } - } - - return nil -} - -func (c *Command) preRun() { - for _, x := range initializers { - x() - } -} - -// Execute uses the args (os.Args[1:] by default) -// and run through the command tree finding appropriate matches -// for commands and then corresponding flags. -func (c *Command) Execute() error { - _, err := c.ExecuteC() - return err -} - -// ExecuteC executes the command. -func (c *Command) ExecuteC() (cmd *Command, err error) { - // Regardless of what command execute is called on, run on Root only - if c.HasParent() { - return c.Root().ExecuteC() - } - - // windows hook - if preExecHookFn != nil { - preExecHookFn(c) - } - - // initialize help as the last point possible to allow for user - // overriding - c.InitDefaultHelpCmd() - - var args []string - - // Workaround FAIL with "go test -v" or "cobra.test -test.v", see #155 - if c.args == nil && filepath.Base(os.Args[0]) != "cobra.test" { - args = os.Args[1:] - } else { - args = c.args - } - - cmd, flags, err := c.Find(args) - if err != nil { - // If found parse to a subcommand and then failed, talk about the subcommand - if cmd != nil { - c = cmd - } - if !c.SilenceErrors { - c.Println("Error:", err.Error()) - c.Printf("Run '%v --help' for usage.\n", c.CommandPath()) - } - return c, err - } - err = cmd.execute(flags) - if err != nil { - // Always show help if requested, even if SilenceErrors is in - // effect - if err == flag.ErrHelp { - cmd.HelpFunc()(cmd, args) - return cmd, nil - } - - // If root command has SilentErrors flagged, - // all subcommands should respect it - if !cmd.SilenceErrors && !c.SilenceErrors { - c.Println("Error:", err.Error()) - } - - // If root command has SilentUsage flagged, - // all subcommands should respect it - if !cmd.SilenceUsage && !c.SilenceUsage { - c.Println(cmd.UsageString()) - } - } - return cmd, err -} - -func (c *Command) ValidateArgs(args []string) error { - if c.Args == nil { - return nil - } - return c.Args(c, args) -} - -// InitDefaultHelpFlag adds default help flag to c. -// It is called automatically by executing the c or by calling help and usage. -// If c already has help flag, it will do nothing. -func (c *Command) InitDefaultHelpFlag() { - c.mergePersistentFlags() - if c.Flags().Lookup("help") == nil { - usage := "help for " - if c.Name() == "" { - usage += "this command" - } else { - usage += c.Name() - } - c.Flags().BoolP("help", "h", false, usage) - } -} - -// InitDefaultHelpCmd adds default help command to c. -// It is called automatically by executing the c or by calling help and usage. -// If c already has help command or c has no subcommands, it will do nothing. -func (c *Command) InitDefaultHelpCmd() { - if !c.HasSubCommands() { - return - } - - if c.helpCommand == nil { - c.helpCommand = &Command{ - Use: "help [command]", - Short: "Help about any command", - Long: `Help provides help for any command in the application. -Simply type ` + c.Name() + ` help [path to command] for full details.`, - - Run: func(c *Command, args []string) { - cmd, _, e := c.Root().Find(args) - if cmd == nil || e != nil { - c.Printf("Unknown help topic %#q\n", args) - c.Root().Usage() - } else { - cmd.InitDefaultHelpFlag() // make possible 'help' flag to be shown - cmd.Help() - } - }, - } - } - c.RemoveCommand(c.helpCommand) - c.AddCommand(c.helpCommand) -} - -// ResetCommands used for testing. -func (c *Command) ResetCommands() { - c.commands = nil - c.helpCommand = nil - c.parentsPflags = nil -} - -// Sorts commands by their names. -type commandSorterByName []*Command - -func (c commandSorterByName) Len() int { return len(c) } -func (c commandSorterByName) Swap(i, j int) { c[i], c[j] = c[j], c[i] } -func (c commandSorterByName) Less(i, j int) bool { return c[i].Name() < c[j].Name() } - -// Commands returns a sorted slice of child commands. -func (c *Command) Commands() []*Command { - // do not sort commands if it already sorted or sorting was disabled - if EnableCommandSorting && !c.commandsAreSorted { - sort.Sort(commandSorterByName(c.commands)) - c.commandsAreSorted = true - } - return c.commands -} - -// AddCommand adds one or more commands to this parent command. -func (c *Command) AddCommand(cmds ...*Command) { - for i, x := range cmds { - if cmds[i] == c { - panic("Command can't be a child of itself") - } - cmds[i].parent = c - // update max lengths - usageLen := len(x.Use) - if usageLen > c.commandsMaxUseLen { - c.commandsMaxUseLen = usageLen - } - commandPathLen := len(x.CommandPath()) - if commandPathLen > c.commandsMaxCommandPathLen { - c.commandsMaxCommandPathLen = commandPathLen - } - nameLen := len(x.Name()) - if nameLen > c.commandsMaxNameLen { - c.commandsMaxNameLen = nameLen - } - // If global normalization function exists, update all children - if c.globNormFunc != nil { - x.SetGlobalNormalizationFunc(c.globNormFunc) - } - c.commands = append(c.commands, x) - c.commandsAreSorted = false - } -} - -// RemoveCommand removes one or more commands from a parent command. -func (c *Command) RemoveCommand(cmds ...*Command) { - commands := []*Command{} -main: - for _, command := range c.commands { - for _, cmd := range cmds { - if command == cmd { - command.parent = nil - continue main - } - } - commands = append(commands, command) - } - c.commands = commands - // recompute all lengths - c.commandsMaxUseLen = 0 - c.commandsMaxCommandPathLen = 0 - c.commandsMaxNameLen = 0 - for _, command := range c.commands { - usageLen := len(command.Use) - if usageLen > c.commandsMaxUseLen { - c.commandsMaxUseLen = usageLen - } - commandPathLen := len(command.CommandPath()) - if commandPathLen > c.commandsMaxCommandPathLen { - c.commandsMaxCommandPathLen = commandPathLen - } - nameLen := len(command.Name()) - if nameLen > c.commandsMaxNameLen { - c.commandsMaxNameLen = nameLen - } - } -} - -// Print is a convenience method to Print to the defined output, fallback to Stderr if not set. -func (c *Command) Print(i ...interface{}) { - fmt.Fprint(c.OutOrStderr(), i...) -} - -// Println is a convenience method to Println to the defined output, fallback to Stderr if not set. -func (c *Command) Println(i ...interface{}) { - c.Print(fmt.Sprintln(i...)) -} - -// Printf is a convenience method to Printf to the defined output, fallback to Stderr if not set. -func (c *Command) Printf(format string, i ...interface{}) { - c.Print(fmt.Sprintf(format, i...)) -} - -// CommandPath returns the full path to this command. -func (c *Command) CommandPath() string { - if c.HasParent() { - return c.Parent().CommandPath() + " " + c.Name() - } - return c.Name() -} - -// UseLine puts out the full usage for a given command (including parents). -func (c *Command) UseLine() string { - var useline string - if c.HasParent() { - useline = c.parent.CommandPath() + " " + c.Use - } else { - useline = c.Use - } - if c.HasAvailableFlags() && !strings.Contains(useline, "[flags]") { - useline += " [flags]" - } - return useline -} - -// DebugFlags used to determine which flags have been assigned to which commands -// and which persist. -func (c *Command) DebugFlags() { - c.Println("DebugFlags called on", c.Name()) - var debugflags func(*Command) - - debugflags = func(x *Command) { - if x.HasFlags() || x.HasPersistentFlags() { - c.Println(x.Name()) - } - if x.HasFlags() { - x.flags.VisitAll(func(f *flag.Flag) { - if x.HasPersistentFlags() && x.persistentFlag(f.Name) != nil { - c.Println(" -"+f.Shorthand+",", "--"+f.Name, "["+f.DefValue+"]", "", f.Value, " [LP]") - } else { - c.Println(" -"+f.Shorthand+",", "--"+f.Name, "["+f.DefValue+"]", "", f.Value, " [L]") - } - }) - } - if x.HasPersistentFlags() { - x.pflags.VisitAll(func(f *flag.Flag) { - if x.HasFlags() { - if x.flags.Lookup(f.Name) == nil { - c.Println(" -"+f.Shorthand+",", "--"+f.Name, "["+f.DefValue+"]", "", f.Value, " [P]") - } - } else { - c.Println(" -"+f.Shorthand+",", "--"+f.Name, "["+f.DefValue+"]", "", f.Value, " [P]") - } - }) - } - c.Println(x.flagErrorBuf) - if x.HasSubCommands() { - for _, y := range x.commands { - debugflags(y) - } - } - } - - debugflags(c) -} - -// Name returns the command's name: the first word in the use line. -func (c *Command) Name() string { - if c.name == "" { - name := c.Use - i := strings.Index(name, " ") - if i >= 0 { - name = name[:i] - } - c.name = name - } - return c.name -} - -// HasAlias determines if a given string is an alias of the command. -func (c *Command) HasAlias(s string) bool { - for _, a := range c.Aliases { - if a == s { - return true - } - } - return false -} - -// NameAndAliases returns string containing name and all aliases -func (c *Command) NameAndAliases() string { - return strings.Join(append([]string{c.Name()}, c.Aliases...), ", ") -} - -// HasExample determines if the command has example. -func (c *Command) HasExample() bool { - return len(c.Example) > 0 -} - -// Runnable determines if the command is itself runnable. -func (c *Command) Runnable() bool { - return c.Run != nil || c.RunE != nil -} - -// HasSubCommands determines if the command has children commands. -func (c *Command) HasSubCommands() bool { - return len(c.commands) > 0 -} - -// IsAvailableCommand determines if a command is available as a non-help command -// (this includes all non deprecated/hidden commands). -func (c *Command) IsAvailableCommand() bool { - if len(c.Deprecated) != 0 || c.Hidden { - return false - } - - if c.HasParent() && c.Parent().helpCommand == c { - return false - } - - if c.Runnable() || c.HasAvailableSubCommands() { - return true - } - - return false -} - -// IsAdditionalHelpTopicCommand determines if a command is an additional -// help topic command; additional help topic command is determined by the -// fact that it is NOT runnable/hidden/deprecated, and has no sub commands that -// are runnable/hidden/deprecated. -// Concrete example: https://github.com/spf13/cobra/issues/393#issuecomment-282741924. -func (c *Command) IsAdditionalHelpTopicCommand() bool { - // if a command is runnable, deprecated, or hidden it is not a 'help' command - if c.Runnable() || len(c.Deprecated) != 0 || c.Hidden { - return false - } - - // if any non-help sub commands are found, the command is not a 'help' command - for _, sub := range c.commands { - if !sub.IsAdditionalHelpTopicCommand() { - return false - } - } - - // the command either has no sub commands, or no non-help sub commands - return true -} - -// HasHelpSubCommands determines if a command has any available 'help' sub commands -// that need to be shown in the usage/help default template under 'additional help -// topics'. -func (c *Command) HasHelpSubCommands() bool { - // return true on the first found available 'help' sub command - for _, sub := range c.commands { - if sub.IsAdditionalHelpTopicCommand() { - return true - } - } - - // the command either has no sub commands, or no available 'help' sub commands - return false -} - -// HasAvailableSubCommands determines if a command has available sub commands that -// need to be shown in the usage/help default template under 'available commands'. -func (c *Command) HasAvailableSubCommands() bool { - // return true on the first found available (non deprecated/help/hidden) - // sub command - for _, sub := range c.commands { - if sub.IsAvailableCommand() { - return true - } - } - - // the command either has no sub comamnds, or no available (non deprecated/help/hidden) - // sub commands - return false -} - -// HasParent determines if the command is a child command. -func (c *Command) HasParent() bool { - return c.parent != nil -} - -// GlobalNormalizationFunc returns the global normalization function or nil if doesn't exists. -func (c *Command) GlobalNormalizationFunc() func(f *flag.FlagSet, name string) flag.NormalizedName { - return c.globNormFunc -} - -// Flags returns the complete FlagSet that applies -// to this command (local and persistent declared here and by all parents). -func (c *Command) Flags() *flag.FlagSet { - if c.flags == nil { - c.flags = flag.NewFlagSet(c.Name(), flag.ContinueOnError) - if c.flagErrorBuf == nil { - c.flagErrorBuf = new(bytes.Buffer) - } - c.flags.SetOutput(c.flagErrorBuf) - } - - return c.flags -} - -// LocalNonPersistentFlags are flags specific to this command which will NOT persist to subcommands. -func (c *Command) LocalNonPersistentFlags() *flag.FlagSet { - persistentFlags := c.PersistentFlags() - - out := flag.NewFlagSet(c.Name(), flag.ContinueOnError) - c.LocalFlags().VisitAll(func(f *flag.Flag) { - if persistentFlags.Lookup(f.Name) == nil { - out.AddFlag(f) - } - }) - return out -} - -// LocalFlags returns the local FlagSet specifically set in the current command. -func (c *Command) LocalFlags() *flag.FlagSet { - c.mergePersistentFlags() - - if c.lflags == nil { - c.lflags = flag.NewFlagSet(c.Name(), flag.ContinueOnError) - if c.flagErrorBuf == nil { - c.flagErrorBuf = new(bytes.Buffer) - } - c.lflags.SetOutput(c.flagErrorBuf) - } - c.lflags.SortFlags = c.Flags().SortFlags - - addToLocal := func(f *flag.Flag) { - if c.lflags.Lookup(f.Name) == nil && c.parentsPflags.Lookup(f.Name) == nil { - c.lflags.AddFlag(f) - } - } - c.Flags().VisitAll(addToLocal) - c.PersistentFlags().VisitAll(addToLocal) - return c.lflags -} - -// InheritedFlags returns all flags which were inherited from parents commands. -func (c *Command) InheritedFlags() *flag.FlagSet { - c.mergePersistentFlags() - - if c.iflags == nil { - c.iflags = flag.NewFlagSet(c.Name(), flag.ContinueOnError) - if c.flagErrorBuf == nil { - c.flagErrorBuf = new(bytes.Buffer) - } - c.iflags.SetOutput(c.flagErrorBuf) - } - - local := c.LocalFlags() - c.parentsPflags.VisitAll(func(f *flag.Flag) { - if c.iflags.Lookup(f.Name) == nil && local.Lookup(f.Name) == nil { - c.iflags.AddFlag(f) - } - }) - return c.iflags -} - -// NonInheritedFlags returns all flags which were not inherited from parent commands. -func (c *Command) NonInheritedFlags() *flag.FlagSet { - return c.LocalFlags() -} - -// PersistentFlags returns the persistent FlagSet specifically set in the current command. -func (c *Command) PersistentFlags() *flag.FlagSet { - if c.pflags == nil { - c.pflags = flag.NewFlagSet(c.Name(), flag.ContinueOnError) - if c.flagErrorBuf == nil { - c.flagErrorBuf = new(bytes.Buffer) - } - c.pflags.SetOutput(c.flagErrorBuf) - } - return c.pflags -} - -// ResetFlags is used in testing. -func (c *Command) ResetFlags() { - c.flagErrorBuf = new(bytes.Buffer) - c.flagErrorBuf.Reset() - c.flags = flag.NewFlagSet(c.Name(), flag.ContinueOnError) - c.flags.SetOutput(c.flagErrorBuf) - c.pflags = flag.NewFlagSet(c.Name(), flag.ContinueOnError) - c.pflags.SetOutput(c.flagErrorBuf) -} - -// HasFlags checks if the command contains any flags (local plus persistent from the entire structure). -func (c *Command) HasFlags() bool { - return c.Flags().HasFlags() -} - -// HasPersistentFlags checks if the command contains persistent flags. -func (c *Command) HasPersistentFlags() bool { - return c.PersistentFlags().HasFlags() -} - -// HasLocalFlags checks if the command has flags specifically declared locally. -func (c *Command) HasLocalFlags() bool { - return c.LocalFlags().HasFlags() -} - -// HasInheritedFlags checks if the command has flags inherited from its parent command. -func (c *Command) HasInheritedFlags() bool { - return c.InheritedFlags().HasFlags() -} - -// HasAvailableFlags checks if the command contains any flags (local plus persistent from the entire -// structure) which are not hidden or deprecated. -func (c *Command) HasAvailableFlags() bool { - return c.Flags().HasAvailableFlags() -} - -// HasAvailablePersistentFlags checks if the command contains persistent flags which are not hidden or deprecated. -func (c *Command) HasAvailablePersistentFlags() bool { - return c.PersistentFlags().HasAvailableFlags() -} - -// HasAvailableLocalFlags checks if the command has flags specifically declared locally which are not hidden -// or deprecated. -func (c *Command) HasAvailableLocalFlags() bool { - return c.LocalFlags().HasAvailableFlags() -} - -// HasAvailableInheritedFlags checks if the command has flags inherited from its parent command which are -// not hidden or deprecated. -func (c *Command) HasAvailableInheritedFlags() bool { - return c.InheritedFlags().HasAvailableFlags() -} - -// Flag climbs up the command tree looking for matching flag. -func (c *Command) Flag(name string) (flag *flag.Flag) { - flag = c.Flags().Lookup(name) - - if flag == nil { - flag = c.persistentFlag(name) - } - - return -} - -// Recursively find matching persistent flag. -func (c *Command) persistentFlag(name string) (flag *flag.Flag) { - if c.HasPersistentFlags() { - flag = c.PersistentFlags().Lookup(name) - } - - if flag == nil { - c.updateParentsPflags() - flag = c.parentsPflags.Lookup(name) - } - return -} - -// ParseFlags parses persistent flag tree and local flags. -func (c *Command) ParseFlags(args []string) error { - if c.DisableFlagParsing { - return nil - } - - beforeErrorBufLen := c.flagErrorBuf.Len() - c.mergePersistentFlags() - err := c.Flags().Parse(args) - // Print warnings if they occurred (e.g. deprecated flag messages). - if c.flagErrorBuf.Len()-beforeErrorBufLen > 0 && err == nil { - c.Print(c.flagErrorBuf.String()) - } - - return err -} - -// Parent returns a commands parent command. -func (c *Command) Parent() *Command { - return c.parent -} - -// mergePersistentFlags merges c.PersistentFlags() to c.Flags() -// and adds missing persistent flags of all parents. -func (c *Command) mergePersistentFlags() { - c.updateParentsPflags() - c.Flags().AddFlagSet(c.PersistentFlags()) - c.Flags().AddFlagSet(c.parentsPflags) -} - -// updateParentsPflags updates c.parentsPflags by adding -// new persistent flags of all parents. -// If c.parentsPflags == nil, it makes new. -func (c *Command) updateParentsPflags() { - if c.parentsPflags == nil { - c.parentsPflags = flag.NewFlagSet(c.Name(), flag.ContinueOnError) - c.parentsPflags.SetOutput(c.flagErrorBuf) - c.parentsPflags.SortFlags = false - } - - c.Root().PersistentFlags().AddFlagSet(flag.CommandLine) - - c.VisitParents(func(parent *Command) { - c.parentsPflags.AddFlagSet(parent.PersistentFlags()) - }) -} diff --git a/vendor/github.com/spf13/cobra/command_notwin.go b/vendor/github.com/spf13/cobra/command_notwin.go deleted file mode 100644 index 6159c1c..0000000 --- a/vendor/github.com/spf13/cobra/command_notwin.go +++ /dev/null @@ -1,5 +0,0 @@ -// +build !windows - -package cobra - -var preExecHookFn func(*Command) diff --git a/vendor/github.com/spf13/cobra/command_win.go b/vendor/github.com/spf13/cobra/command_win.go deleted file mode 100644 index edec728..0000000 --- a/vendor/github.com/spf13/cobra/command_win.go +++ /dev/null @@ -1,20 +0,0 @@ -// +build windows - -package cobra - -import ( - "os" - "time" - - "github.com/inconshreveable/mousetrap" -) - -var preExecHookFn = preExecHook - -func preExecHook(c *Command) { - if MousetrapHelpText != "" && mousetrap.StartedByExplorer() { - c.Print(MousetrapHelpText) - time.Sleep(5 * time.Second) - os.Exit(1) - } -} diff --git a/vendor/github.com/spf13/cobra/zsh_completions.go b/vendor/github.com/spf13/cobra/zsh_completions.go deleted file mode 100644 index b350aee..0000000 --- a/vendor/github.com/spf13/cobra/zsh_completions.go +++ /dev/null @@ -1,114 +0,0 @@ -package cobra - -import ( - "bytes" - "fmt" - "io" - "strings" -) - -// GenZshCompletion generates a zsh completion file and writes to the passed writer. -func (cmd *Command) GenZshCompletion(w io.Writer) error { - buf := new(bytes.Buffer) - - writeHeader(buf, cmd) - maxDepth := maxDepth(cmd) - writeLevelMapping(buf, maxDepth) - writeLevelCases(buf, maxDepth, cmd) - - _, err := buf.WriteTo(w) - return err -} - -func writeHeader(w io.Writer, cmd *Command) { - fmt.Fprintf(w, "#compdef %s\n\n", cmd.Name()) -} - -func maxDepth(c *Command) int { - if len(c.Commands()) == 0 { - return 0 - } - maxDepthSub := 0 - for _, s := range c.Commands() { - subDepth := maxDepth(s) - if subDepth > maxDepthSub { - maxDepthSub = subDepth - } - } - return 1 + maxDepthSub -} - -func writeLevelMapping(w io.Writer, numLevels int) { - fmt.Fprintln(w, `_arguments \`) - for i := 1; i <= numLevels; i++ { - fmt.Fprintf(w, ` '%d: :->level%d' \`, i, i) - fmt.Fprintln(w) - } - fmt.Fprintf(w, ` '%d: :%s'`, numLevels+1, "_files") - fmt.Fprintln(w) -} - -func writeLevelCases(w io.Writer, maxDepth int, root *Command) { - fmt.Fprintln(w, "case $state in") - defer fmt.Fprintln(w, "esac") - - for i := 1; i <= maxDepth; i++ { - fmt.Fprintf(w, " level%d)\n", i) - writeLevel(w, root, i) - fmt.Fprintln(w, " ;;") - } - fmt.Fprintln(w, " *)") - fmt.Fprintln(w, " _arguments '*: :_files'") - fmt.Fprintln(w, " ;;") -} - -func writeLevel(w io.Writer, root *Command, i int) { - fmt.Fprintf(w, " case $words[%d] in\n", i) - defer fmt.Fprintln(w, " esac") - - commands := filterByLevel(root, i) - byParent := groupByParent(commands) - - for p, c := range byParent { - names := names(c) - fmt.Fprintf(w, " %s)\n", p) - fmt.Fprintf(w, " _arguments '%d: :(%s)'\n", i, strings.Join(names, " ")) - fmt.Fprintln(w, " ;;") - } - fmt.Fprintln(w, " *)") - fmt.Fprintln(w, " _arguments '*: :_files'") - fmt.Fprintln(w, " ;;") - -} - -func filterByLevel(c *Command, l int) []*Command { - cs := make([]*Command, 0) - if l == 0 { - cs = append(cs, c) - return cs - } - for _, s := range c.Commands() { - cs = append(cs, filterByLevel(s, l-1)...) - } - return cs -} - -func groupByParent(commands []*Command) map[string][]*Command { - m := make(map[string][]*Command) - for _, c := range commands { - parent := c.Parent() - if parent == nil { - continue - } - m[parent.Name()] = append(m[parent.Name()], c) - } - return m -} - -func names(commands []*Command) []string { - ns := make([]string, len(commands)) - for i, c := range commands { - ns[i] = c.Name() - } - return ns -} diff --git a/vendor/github.com/spf13/jwalterweatherman/LICENSE b/vendor/github.com/spf13/jwalterweatherman/LICENSE deleted file mode 100644 index 4527efb..0000000 --- a/vendor/github.com/spf13/jwalterweatherman/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Steve Francia - -Permission 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: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE 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. \ No newline at end of file diff --git a/vendor/github.com/spf13/jwalterweatherman/README.md b/vendor/github.com/spf13/jwalterweatherman/README.md deleted file mode 100644 index 350a968..0000000 --- a/vendor/github.com/spf13/jwalterweatherman/README.md +++ /dev/null @@ -1,148 +0,0 @@ -jWalterWeatherman -================= - -Seamless printing to the terminal (stdout) and logging to a io.Writer -(file) that’s as easy to use as fmt.Println. - -![and_that__s_why_you_always_leave_a_note_by_jonnyetc-d57q7um](https://cloud.githubusercontent.com/assets/173412/11002937/ccd01654-847d-11e5-828e-12ebaf582eaf.jpg) -Graphic by [JonnyEtc](http://jonnyetc.deviantart.com/art/And-That-s-Why-You-Always-Leave-a-Note-315311422) - -JWW is primarily a wrapper around the excellent standard log library. It -provides a few advantages over using the standard log library alone. - -1. Ready to go out of the box. -2. One library for both printing to the terminal and logging (to files). -3. Really easy to log to either a temp file or a file you specify. - - -I really wanted a very straightforward library that could seamlessly do -the following things. - -1. Replace all the println, printf, etc statements thought my code with - something more useful -2. Allow the user to easily control what levels are printed to stdout -3. Allow the user to easily control what levels are logged -4. Provide an easy mechanism (like fmt.Println) to print info to the user - which can be easily logged as well -5. Due to 2 & 3 provide easy verbose mode for output and logs -6. Not have any unnecessary initialization cruft. Just use it. - -# Usage - -## Step 1. Use it -Put calls throughout your source based on type of feedback. -No initialization or setup needs to happen. Just start calling things. - -Available Loggers are: - - * TRACE - * DEBUG - * INFO - * WARN - * ERROR - * CRITICAL - * FATAL - -These each are loggers based on the log standard library and follow the -standard usage. Eg. - -```go - import ( - jww "github.com/spf13/jwalterweatherman" - ) - - ... - - if err != nil { - - // This is a pretty serious error and the user should know about - // it. It will be printed to the terminal as well as logged under the - // default thresholds. - - jww.ERROR.Println(err) - } - - if err2 != nil { - // This error isn’t going to materially change the behavior of the - // application, but it’s something that may not be what the user - // expects. Under the default thresholds, Warn will be logged, but - // not printed to the terminal. - - jww.WARN.Println(err2) - } - - // Information that’s relevant to what’s happening, but not very - // important for the user. Under the default thresholds this will be - // discarded. - - jww.INFO.Printf("information %q", response) - -``` - -NOTE: You can also use the library in a non-global setting by creating an instance of a Notebook: - -```go -notepad = jww.NewNotepad(jww.LevelInfo, jww.LevelTrace, os.Stdout, ioutil.Discard, "", log.Ldate|log.Ltime) -notepad.WARN.Println("Some warning"") -``` - -_Why 7 levels?_ - -Maybe you think that 7 levels are too much for any application... and you -are probably correct. Just because there are seven levels doesn’t mean -that you should be using all 7 levels. Pick the right set for your needs. -Remember they only have to mean something to your project. - -## Step 2. Optionally configure JWW - -Under the default thresholds : - - * Debug, Trace & Info goto /dev/null - * Warn and above is logged (when a log file/io.Writer is provided) - * Error and above is printed to the terminal (stdout) - -### Changing the thresholds - -The threshold can be changed at any time, but will only affect calls that -execute after the change was made. - -This is very useful if your application has a verbose mode. Of course you -can decide what verbose means to you or even have multiple levels of -verbosity. - - -```go - import ( - jww "github.com/spf13/jwalterweatherman" - ) - - if Verbose { - jww.SetLogThreshold(jww.LevelTrace) - jww.SetStdoutThreshold(jww.LevelInfo) - } -``` - -Note that JWW's own internal output uses log levels as well, so set the log -level before making any other calls if you want to see what it's up to. - - -### Setting a log file - -JWW can log to any `io.Writer`: - - -```go - - jww.SetLogOutput(customWriter) - -``` - - -# More information - -This is an early release. I’ve been using it for a while and this is the -third interface I’ve tried. I like this one pretty well, but no guarantees -that it won’t change a bit. - -I wrote this for use in [hugo](http://hugo.spf13.com). If you are looking -for a static website engine that’s super fast please checkout Hugo. diff --git a/vendor/github.com/spf13/jwalterweatherman/default_notepad.go b/vendor/github.com/spf13/jwalterweatherman/default_notepad.go deleted file mode 100644 index bcb7634..0000000 --- a/vendor/github.com/spf13/jwalterweatherman/default_notepad.go +++ /dev/null @@ -1,113 +0,0 @@ -// Copyright © 2016 Steve Francia . -// -// Use of this source code is governed by an MIT-style -// license that can be found in the LICENSE file. - -package jwalterweatherman - -import ( - "io" - "io/ioutil" - "log" - "os" -) - -var ( - TRACE *log.Logger - DEBUG *log.Logger - INFO *log.Logger - WARN *log.Logger - ERROR *log.Logger - CRITICAL *log.Logger - FATAL *log.Logger - - LOG *log.Logger - FEEDBACK *Feedback - - defaultNotepad *Notepad -) - -func reloadDefaultNotepad() { - TRACE = defaultNotepad.TRACE - DEBUG = defaultNotepad.DEBUG - INFO = defaultNotepad.INFO - WARN = defaultNotepad.WARN - ERROR = defaultNotepad.ERROR - CRITICAL = defaultNotepad.CRITICAL - FATAL = defaultNotepad.FATAL - - LOG = defaultNotepad.LOG - FEEDBACK = defaultNotepad.FEEDBACK -} - -func init() { - defaultNotepad = NewNotepad(LevelError, LevelWarn, os.Stdout, ioutil.Discard, "", log.Ldate|log.Ltime) - reloadDefaultNotepad() -} - -// SetLogThreshold set the log threshold for the default notepad. Trace by default. -func SetLogThreshold(threshold Threshold) { - defaultNotepad.SetLogThreshold(threshold) - reloadDefaultNotepad() -} - -// SetLogOutput set the log output for the default notepad. Discarded by default. -func SetLogOutput(handle io.Writer) { - defaultNotepad.SetLogOutput(handle) - reloadDefaultNotepad() -} - -// SetStdoutThreshold set the standard output threshold for the default notepad. -// Info by default. -func SetStdoutThreshold(threshold Threshold) { - defaultNotepad.SetStdoutThreshold(threshold) - reloadDefaultNotepad() -} - -// SetPrefix set the prefix for the default logger. Empty by default. -func SetPrefix(prefix string) { - defaultNotepad.SetPrefix(prefix) - reloadDefaultNotepad() -} - -// SetFlags set the flags for the default logger. "log.Ldate | log.Ltime" by default. -func SetFlags(flags int) { - defaultNotepad.SetFlags(flags) - reloadDefaultNotepad() -} - -// Level returns the current global log threshold. -func LogThreshold() Threshold { - return defaultNotepad.logThreshold -} - -// Level returns the current global output threshold. -func StdoutThreshold() Threshold { - return defaultNotepad.stdoutThreshold -} - -// GetStdoutThreshold returns the defined Treshold for the log logger. -func GetLogThreshold() Threshold { - return defaultNotepad.GetLogThreshold() -} - -// GetStdoutThreshold returns the Treshold for the stdout logger. -func GetStdoutThreshold() Threshold { - return defaultNotepad.GetStdoutThreshold() -} - -// LogCountForLevel returns the number of log invocations for a given threshold. -func LogCountForLevel(l Threshold) uint64 { - return defaultNotepad.LogCountForLevel(l) -} - -// LogCountForLevelsGreaterThanorEqualTo returns the number of log invocations -// greater than or equal to a given threshold. -func LogCountForLevelsGreaterThanorEqualTo(threshold Threshold) uint64 { - return defaultNotepad.LogCountForLevelsGreaterThanorEqualTo(threshold) -} - -// ResetLogCounters resets the invocation counters for all levels. -func ResetLogCounters() { - defaultNotepad.ResetLogCounters() -} diff --git a/vendor/github.com/spf13/jwalterweatherman/log_counter.go b/vendor/github.com/spf13/jwalterweatherman/log_counter.go deleted file mode 100644 index 11423ac..0000000 --- a/vendor/github.com/spf13/jwalterweatherman/log_counter.go +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright © 2016 Steve Francia . -// -// Use of this source code is governed by an MIT-style -// license that can be found in the LICENSE file. - -package jwalterweatherman - -import ( - "sync/atomic" -) - -type logCounter struct { - counter uint64 -} - -func (c *logCounter) incr() { - atomic.AddUint64(&c.counter, 1) -} - -func (c *logCounter) resetCounter() { - atomic.StoreUint64(&c.counter, 0) -} - -func (c *logCounter) getCount() uint64 { - return atomic.LoadUint64(&c.counter) -} - -func (c *logCounter) Write(p []byte) (n int, err error) { - c.incr() - return len(p), nil -} - -// LogCountForLevel returns the number of log invocations for a given threshold. -func (n *Notepad) LogCountForLevel(l Threshold) uint64 { - return n.logCounters[l].getCount() -} - -// LogCountForLevelsGreaterThanorEqualTo returns the number of log invocations -// greater than or equal to a given threshold. -func (n *Notepad) LogCountForLevelsGreaterThanorEqualTo(threshold Threshold) uint64 { - var cnt uint64 - - for i := int(threshold); i < len(n.logCounters); i++ { - cnt += n.LogCountForLevel(Threshold(i)) - } - - return cnt -} - -// ResetLogCounters resets the invocation counters for all levels. -func (n *Notepad) ResetLogCounters() { - for _, np := range n.logCounters { - np.resetCounter() - } -} diff --git a/vendor/github.com/spf13/jwalterweatherman/notepad.go b/vendor/github.com/spf13/jwalterweatherman/notepad.go deleted file mode 100644 index edeff3a..0000000 --- a/vendor/github.com/spf13/jwalterweatherman/notepad.go +++ /dev/null @@ -1,194 +0,0 @@ -// Copyright © 2016 Steve Francia . -// -// Use of this source code is governed by an MIT-style -// license that can be found in the LICENSE file. - -package jwalterweatherman - -import ( - "fmt" - "io" - "log" -) - -type Threshold int - -func (t Threshold) String() string { - return prefixes[t] -} - -const ( - LevelTrace Threshold = iota - LevelDebug - LevelInfo - LevelWarn - LevelError - LevelCritical - LevelFatal -) - -var prefixes map[Threshold]string = map[Threshold]string{ - LevelTrace: "TRACE", - LevelDebug: "DEBUG", - LevelInfo: "INFO", - LevelWarn: "WARN", - LevelError: "ERROR", - LevelCritical: "CRITICAL", - LevelFatal: "FATAL", -} - -// Notepad is where you leave a note! -type Notepad struct { - TRACE *log.Logger - DEBUG *log.Logger - INFO *log.Logger - WARN *log.Logger - ERROR *log.Logger - CRITICAL *log.Logger - FATAL *log.Logger - - LOG *log.Logger - FEEDBACK *Feedback - - loggers [7]**log.Logger - logHandle io.Writer - outHandle io.Writer - logThreshold Threshold - stdoutThreshold Threshold - prefix string - flags int - - // One per Threshold - logCounters [7]*logCounter -} - -// NewNotepad create a new notepad. -func NewNotepad(outThreshold Threshold, logThreshold Threshold, outHandle, logHandle io.Writer, prefix string, flags int) *Notepad { - n := &Notepad{} - - n.loggers = [7]**log.Logger{&n.TRACE, &n.DEBUG, &n.INFO, &n.WARN, &n.ERROR, &n.CRITICAL, &n.FATAL} - n.outHandle = outHandle - n.logHandle = logHandle - n.stdoutThreshold = outThreshold - n.logThreshold = logThreshold - - if len(prefix) != 0 { - n.prefix = "[" + prefix + "] " - } else { - n.prefix = "" - } - - n.flags = flags - - n.LOG = log.New(n.logHandle, - "LOG: ", - n.flags) - n.FEEDBACK = &Feedback{out: log.New(outHandle, "", 0), log: n.LOG} - - n.init() - return n -} - -// init creates the loggers for each level depending on the notepad thresholds. -func (n *Notepad) init() { - logAndOut := io.MultiWriter(n.outHandle, n.logHandle) - - for t, logger := range n.loggers { - threshold := Threshold(t) - counter := &logCounter{} - n.logCounters[t] = counter - prefix := n.prefix + threshold.String() + " " - - switch { - case threshold >= n.logThreshold && threshold >= n.stdoutThreshold: - *logger = log.New(io.MultiWriter(counter, logAndOut), prefix, n.flags) - - case threshold >= n.logThreshold: - *logger = log.New(io.MultiWriter(counter, n.logHandle), prefix, n.flags) - - case threshold >= n.stdoutThreshold: - *logger = log.New(io.MultiWriter(counter, n.outHandle), prefix, n.flags) - - default: - // counter doesn't care about prefix and flags, so don't use them - // for performance. - *logger = log.New(counter, "", 0) - } - } -} - -// SetLogThreshold changes the threshold above which messages are written to the -// log file. -func (n *Notepad) SetLogThreshold(threshold Threshold) { - n.logThreshold = threshold - n.init() -} - -// SetLogOutput changes the file where log messages are written. -func (n *Notepad) SetLogOutput(handle io.Writer) { - n.logHandle = handle - n.init() -} - -// GetStdoutThreshold returns the defined Treshold for the log logger. -func (n *Notepad) GetLogThreshold() Threshold { - return n.logThreshold -} - -// SetStdoutThreshold changes the threshold above which messages are written to the -// standard output. -func (n *Notepad) SetStdoutThreshold(threshold Threshold) { - n.stdoutThreshold = threshold - n.init() -} - -// GetStdoutThreshold returns the Treshold for the stdout logger. -func (n *Notepad) GetStdoutThreshold() Threshold { - return n.stdoutThreshold -} - -// SetPrefix changes the prefix used by the notepad. Prefixes are displayed between -// brackets at the begining of the line. An empty prefix won't be displayed at all. -func (n *Notepad) SetPrefix(prefix string) { - if len(prefix) != 0 { - n.prefix = "[" + prefix + "] " - } else { - n.prefix = "" - } - n.init() -} - -// SetFlags choose which flags the logger will display (after prefix and message -// level). See the package log for more informations on this. -func (n *Notepad) SetFlags(flags int) { - n.flags = flags - n.init() -} - -// Feedback writes plainly to the outHandle while -// logging with the standard extra information (date, file, etc). -type Feedback struct { - out *log.Logger - log *log.Logger -} - -func (fb *Feedback) Println(v ...interface{}) { - fb.output(fmt.Sprintln(v...)) -} - -func (fb *Feedback) Printf(format string, v ...interface{}) { - fb.output(fmt.Sprintf(format, v...)) -} - -func (fb *Feedback) Print(v ...interface{}) { - fb.output(fmt.Sprint(v...)) -} - -func (fb *Feedback) output(s string) { - if fb.out != nil { - fb.out.Output(2, s) - } - if fb.log != nil { - fb.log.Output(2, s) - } -} diff --git a/vendor/github.com/spf13/pflag/LICENSE b/vendor/github.com/spf13/pflag/LICENSE deleted file mode 100644 index 63ed1cf..0000000 --- a/vendor/github.com/spf13/pflag/LICENSE +++ /dev/null @@ -1,28 +0,0 @@ -Copyright (c) 2012 Alex Ogier. All rights reserved. -Copyright (c) 2012 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/spf13/pflag/README.md b/vendor/github.com/spf13/pflag/README.md deleted file mode 100644 index b052414..0000000 --- a/vendor/github.com/spf13/pflag/README.md +++ /dev/null @@ -1,296 +0,0 @@ -[![Build Status](https://travis-ci.org/spf13/pflag.svg?branch=master)](https://travis-ci.org/spf13/pflag) -[![Go Report Card](https://goreportcard.com/badge/github.com/spf13/pflag)](https://goreportcard.com/report/github.com/spf13/pflag) -[![GoDoc](https://godoc.org/github.com/spf13/pflag?status.svg)](https://godoc.org/github.com/spf13/pflag) - -## Description - -pflag is a drop-in replacement for Go's flag package, implementing -POSIX/GNU-style --flags. - -pflag is compatible with the [GNU extensions to the POSIX recommendations -for command-line options][1]. For a more precise description, see the -"Command-line flag syntax" section below. - -[1]: http://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html - -pflag is available under the same style of BSD license as the Go language, -which can be found in the LICENSE file. - -## Installation - -pflag is available using the standard `go get` command. - -Install by running: - - go get github.com/spf13/pflag - -Run tests by running: - - go test github.com/spf13/pflag - -## Usage - -pflag is a drop-in replacement of Go's native flag package. If you import -pflag under the name "flag" then all code should continue to function -with no changes. - -``` go -import flag "github.com/spf13/pflag" -``` - -There is one exception to this: if you directly instantiate the Flag struct -there is one more field "Shorthand" that you will need to set. -Most code never instantiates this struct directly, and instead uses -functions such as String(), BoolVar(), and Var(), and is therefore -unaffected. - -Define flags using flag.String(), Bool(), Int(), etc. - -This declares an integer flag, -flagname, stored in the pointer ip, with type *int. - -``` go -var ip *int = flag.Int("flagname", 1234, "help message for flagname") -``` - -If you like, you can bind the flag to a variable using the Var() functions. - -``` go -var flagvar int -func init() { - flag.IntVar(&flagvar, "flagname", 1234, "help message for flagname") -} -``` - -Or you can create custom flags that satisfy the Value interface (with -pointer receivers) and couple them to flag parsing by - -``` go -flag.Var(&flagVal, "name", "help message for flagname") -``` - -For such flags, the default value is just the initial value of the variable. - -After all flags are defined, call - -``` go -flag.Parse() -``` - -to parse the command line into the defined flags. - -Flags may then be used directly. If you're using the flags themselves, -they are all pointers; if you bind to variables, they're values. - -``` go -fmt.Println("ip has value ", *ip) -fmt.Println("flagvar has value ", flagvar) -``` - -There are helpers function to get values later if you have the FlagSet but -it was difficult to keep up with all of the flag pointers in your code. -If you have a pflag.FlagSet with a flag called 'flagname' of type int you -can use GetInt() to get the int value. But notice that 'flagname' must exist -and it must be an int. GetString("flagname") will fail. - -``` go -i, err := flagset.GetInt("flagname") -``` - -After parsing, the arguments after the flag are available as the -slice flag.Args() or individually as flag.Arg(i). -The arguments are indexed from 0 through flag.NArg()-1. - -The pflag package also defines some new functions that are not in flag, -that give one-letter shorthands for flags. You can use these by appending -'P' to the name of any function that defines a flag. - -``` go -var ip = flag.IntP("flagname", "f", 1234, "help message") -var flagvar bool -func init() { - flag.BoolVarP(&flagvar, "boolname", "b", true, "help message") -} -flag.VarP(&flagVal, "varname", "v", "help message") -``` - -Shorthand letters can be used with single dashes on the command line. -Boolean shorthand flags can be combined with other shorthand flags. - -The default set of command-line flags is controlled by -top-level functions. The FlagSet type allows one to define -independent sets of flags, such as to implement subcommands -in a command-line interface. The methods of FlagSet are -analogous to the top-level functions for the command-line -flag set. - -## Setting no option default values for flags - -After you create a flag it is possible to set the pflag.NoOptDefVal for -the given flag. Doing this changes the meaning of the flag slightly. If -a flag has a NoOptDefVal and the flag is set on the command line without -an option the flag will be set to the NoOptDefVal. For example given: - -``` go -var ip = flag.IntP("flagname", "f", 1234, "help message") -flag.Lookup("flagname").NoOptDefVal = "4321" -``` - -Would result in something like - -| Parsed Arguments | Resulting Value | -| ------------- | ------------- | -| --flagname=1357 | ip=1357 | -| --flagname | ip=4321 | -| [nothing] | ip=1234 | - -## Command line flag syntax - -``` ---flag // boolean flags, or flags with no option default values ---flag x // only on flags without a default value ---flag=x -``` - -Unlike the flag package, a single dash before an option means something -different than a double dash. Single dashes signify a series of shorthand -letters for flags. All but the last shorthand letter must be boolean flags -or a flag with a default value - -``` -// boolean or flags where the 'no option default value' is set --f --f=true --abc -but --b true is INVALID - -// non-boolean and flags without a 'no option default value' --n 1234 --n=1234 --n1234 - -// mixed --abcs "hello" --absd="hello" --abcs1234 -``` - -Flag parsing stops after the terminator "--". Unlike the flag package, -flags can be interspersed with arguments anywhere on the command line -before this terminator. - -Integer flags accept 1234, 0664, 0x1234 and may be negative. -Boolean flags (in their long form) accept 1, 0, t, f, true, false, -TRUE, FALSE, True, False. -Duration flags accept any input valid for time.ParseDuration. - -## Mutating or "Normalizing" Flag names - -It 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. - -**Example #1**: You want -, _, and . in flags to compare the same. aka --my-flag == --my_flag == --my.flag - -``` go -func wordSepNormalizeFunc(f *pflag.FlagSet, name string) pflag.NormalizedName { - from := []string{"-", "_"} - to := "." - for _, sep := range from { - name = strings.Replace(name, sep, to, -1) - } - return pflag.NormalizedName(name) -} - -myFlagSet.SetNormalizeFunc(wordSepNormalizeFunc) -``` - -**Example #2**: You want to alias two flags. aka --old-flag-name == --new-flag-name - -``` go -func aliasNormalizeFunc(f *pflag.FlagSet, name string) pflag.NormalizedName { - switch name { - case "old-flag-name": - name = "new-flag-name" - break - } - return pflag.NormalizedName(name) -} - -myFlagSet.SetNormalizeFunc(aliasNormalizeFunc) -``` - -## Deprecating a flag or its shorthand -It 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. - -**Example #1**: You want to deprecate a flag named "badflag" as well as inform the users what flag they should use instead. -```go -// deprecate a flag by specifying its name and a usage message -flags.MarkDeprecated("badflag", "please use --good-flag instead") -``` -This hides "badflag" from help text, and prints `Flag --badflag has been deprecated, please use --good-flag instead` when "badflag" is used. - -**Example #2**: You want to keep a flag name "noshorthandflag" but deprecate its shortname "n". -```go -// deprecate a flag shorthand by specifying its flag name and a usage message -flags.MarkShorthandDeprecated("noshorthandflag", "please use --noshorthandflag only") -``` -This 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. - -Note that usage message is essential here, and it should not be empty. - -## Hidden flags -It is possible to mark a flag as hidden, meaning it will still function as normal, however will not show up in usage/help text. - -**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. -```go -// hide a flag by specifying its name -flags.MarkHidden("secretFlag") -``` - -## Disable sorting of flags -`pflag` allows you to disable sorting of flags for help and usage message. - -**Example**: -```go -flags.BoolP("verbose", "v", false, "verbose output") -flags.String("coolflag", "yeaah", "it's really cool flag") -flags.Int("usefulflag", 777, "sometimes it's very useful") -flags.SortFlags = false -flags.PrintDefaults() -``` -**Output**: -``` - -v, --verbose verbose output - --coolflag string it's really cool flag (default "yeaah") - --usefulflag int sometimes it's very useful (default 777) -``` - - -## Supporting Go flags when using pflag -In order to support flags defined using Go's `flag` package, they must be added to the `pflag` flagset. This is usually necessary -to support flags defined by third-party dependencies (e.g. `golang/glog`). - -**Example**: You want to add the Go flags to the `CommandLine` flagset -```go -import ( - goflag "flag" - flag "github.com/spf13/pflag" -) - -var ip *int = flag.Int("flagname", 1234, "help message for flagname") - -func main() { - flag.CommandLine.AddGoFlagSet(goflag.CommandLine) - flag.Parse() -} -``` - -## More info - -You can see the full reference documentation of the pflag package -[at godoc.org][3], or through go's standard documentation system by -running `godoc -http=:6060` and browsing to -[http://localhost:6060/pkg/github.com/spf13/pflag][2] after -installation. - -[2]: http://localhost:6060/pkg/github.com/spf13/pflag -[3]: http://godoc.org/github.com/spf13/pflag diff --git a/vendor/github.com/spf13/pflag/bool.go b/vendor/github.com/spf13/pflag/bool.go deleted file mode 100644 index c4c5c0b..0000000 --- a/vendor/github.com/spf13/pflag/bool.go +++ /dev/null @@ -1,94 +0,0 @@ -package pflag - -import "strconv" - -// optional interface to indicate boolean flags that can be -// supplied without "=value" text -type boolFlag interface { - Value - IsBoolFlag() bool -} - -// -- bool Value -type boolValue bool - -func newBoolValue(val bool, p *bool) *boolValue { - *p = val - return (*boolValue)(p) -} - -func (b *boolValue) Set(s string) error { - v, err := strconv.ParseBool(s) - *b = boolValue(v) - return err -} - -func (b *boolValue) Type() string { - return "bool" -} - -func (b *boolValue) String() string { return strconv.FormatBool(bool(*b)) } - -func (b *boolValue) IsBoolFlag() bool { return true } - -func boolConv(sval string) (interface{}, error) { - return strconv.ParseBool(sval) -} - -// GetBool return the bool value of a flag with the given name -func (f *FlagSet) GetBool(name string) (bool, error) { - val, err := f.getFlagType(name, "bool", boolConv) - if err != nil { - return false, err - } - return val.(bool), nil -} - -// BoolVar defines a bool flag with specified name, default value, and usage string. -// The argument p points to a bool variable in which to store the value of the flag. -func (f *FlagSet) BoolVar(p *bool, name string, value bool, usage string) { - f.BoolVarP(p, name, "", value, usage) -} - -// BoolVarP is like BoolVar, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) BoolVarP(p *bool, name, shorthand string, value bool, usage string) { - flag := f.VarPF(newBoolValue(value, p), name, shorthand, usage) - flag.NoOptDefVal = "true" -} - -// BoolVar defines a bool flag with specified name, default value, and usage string. -// The argument p points to a bool variable in which to store the value of the flag. -func BoolVar(p *bool, name string, value bool, usage string) { - BoolVarP(p, name, "", value, usage) -} - -// BoolVarP is like BoolVar, but accepts a shorthand letter that can be used after a single dash. -func BoolVarP(p *bool, name, shorthand string, value bool, usage string) { - flag := CommandLine.VarPF(newBoolValue(value, p), name, shorthand, usage) - flag.NoOptDefVal = "true" -} - -// Bool defines a bool flag with specified name, default value, and usage string. -// The return value is the address of a bool variable that stores the value of the flag. -func (f *FlagSet) Bool(name string, value bool, usage string) *bool { - return f.BoolP(name, "", value, usage) -} - -// BoolP is like Bool, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) BoolP(name, shorthand string, value bool, usage string) *bool { - p := new(bool) - f.BoolVarP(p, name, shorthand, value, usage) - return p -} - -// Bool defines a bool flag with specified name, default value, and usage string. -// The return value is the address of a bool variable that stores the value of the flag. -func Bool(name string, value bool, usage string) *bool { - return BoolP(name, "", value, usage) -} - -// BoolP is like Bool, but accepts a shorthand letter that can be used after a single dash. -func BoolP(name, shorthand string, value bool, usage string) *bool { - b := CommandLine.BoolP(name, shorthand, value, usage) - return b -} diff --git a/vendor/github.com/spf13/pflag/bool_slice.go b/vendor/github.com/spf13/pflag/bool_slice.go deleted file mode 100644 index 5af02f1..0000000 --- a/vendor/github.com/spf13/pflag/bool_slice.go +++ /dev/null @@ -1,147 +0,0 @@ -package pflag - -import ( - "io" - "strconv" - "strings" -) - -// -- boolSlice Value -type boolSliceValue struct { - value *[]bool - changed bool -} - -func newBoolSliceValue(val []bool, p *[]bool) *boolSliceValue { - bsv := new(boolSliceValue) - bsv.value = p - *bsv.value = val - return bsv -} - -// Set converts, and assigns, the comma-separated boolean argument string representation as the []bool value of this flag. -// If Set is called on a flag that already has a []bool assigned, the newly converted values will be appended. -func (s *boolSliceValue) Set(val string) error { - - // remove all quote characters - rmQuote := strings.NewReplacer(`"`, "", `'`, "", "`", "") - - // read flag arguments with CSV parser - boolStrSlice, err := readAsCSV(rmQuote.Replace(val)) - if err != nil && err != io.EOF { - return err - } - - // parse boolean values into slice - out := make([]bool, 0, len(boolStrSlice)) - for _, boolStr := range boolStrSlice { - b, err := strconv.ParseBool(strings.TrimSpace(boolStr)) - if err != nil { - return err - } - out = append(out, b) - } - - if !s.changed { - *s.value = out - } else { - *s.value = append(*s.value, out...) - } - - s.changed = true - - return nil -} - -// Type returns a string that uniquely represents this flag's type. -func (s *boolSliceValue) Type() string { - return "boolSlice" -} - -// String defines a "native" format for this boolean slice flag value. -func (s *boolSliceValue) String() string { - - boolStrSlice := make([]string, len(*s.value)) - for i, b := range *s.value { - boolStrSlice[i] = strconv.FormatBool(b) - } - - out, _ := writeAsCSV(boolStrSlice) - - return "[" + out + "]" -} - -func boolSliceConv(val string) (interface{}, error) { - val = strings.Trim(val, "[]") - // Empty string would cause a slice with one (empty) entry - if len(val) == 0 { - return []bool{}, nil - } - ss := strings.Split(val, ",") - out := make([]bool, len(ss)) - for i, t := range ss { - var err error - out[i], err = strconv.ParseBool(t) - if err != nil { - return nil, err - } - } - return out, nil -} - -// GetBoolSlice returns the []bool value of a flag with the given name. -func (f *FlagSet) GetBoolSlice(name string) ([]bool, error) { - val, err := f.getFlagType(name, "boolSlice", boolSliceConv) - if err != nil { - return []bool{}, err - } - return val.([]bool), nil -} - -// BoolSliceVar defines a boolSlice flag with specified name, default value, and usage string. -// The argument p points to a []bool variable in which to store the value of the flag. -func (f *FlagSet) BoolSliceVar(p *[]bool, name string, value []bool, usage string) { - f.VarP(newBoolSliceValue(value, p), name, "", usage) -} - -// BoolSliceVarP is like BoolSliceVar, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) BoolSliceVarP(p *[]bool, name, shorthand string, value []bool, usage string) { - f.VarP(newBoolSliceValue(value, p), name, shorthand, usage) -} - -// BoolSliceVar defines a []bool flag with specified name, default value, and usage string. -// The argument p points to a []bool variable in which to store the value of the flag. -func BoolSliceVar(p *[]bool, name string, value []bool, usage string) { - CommandLine.VarP(newBoolSliceValue(value, p), name, "", usage) -} - -// BoolSliceVarP is like BoolSliceVar, but accepts a shorthand letter that can be used after a single dash. -func BoolSliceVarP(p *[]bool, name, shorthand string, value []bool, usage string) { - CommandLine.VarP(newBoolSliceValue(value, p), name, shorthand, usage) -} - -// BoolSlice defines a []bool flag with specified name, default value, and usage string. -// The return value is the address of a []bool variable that stores the value of the flag. -func (f *FlagSet) BoolSlice(name string, value []bool, usage string) *[]bool { - p := []bool{} - f.BoolSliceVarP(&p, name, "", value, usage) - return &p -} - -// BoolSliceP is like BoolSlice, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) BoolSliceP(name, shorthand string, value []bool, usage string) *[]bool { - p := []bool{} - f.BoolSliceVarP(&p, name, shorthand, value, usage) - return &p -} - -// BoolSlice defines a []bool flag with specified name, default value, and usage string. -// The return value is the address of a []bool variable that stores the value of the flag. -func BoolSlice(name string, value []bool, usage string) *[]bool { - return CommandLine.BoolSliceP(name, "", value, usage) -} - -// BoolSliceP is like BoolSlice, but accepts a shorthand letter that can be used after a single dash. -func BoolSliceP(name, shorthand string, value []bool, usage string) *[]bool { - return CommandLine.BoolSliceP(name, shorthand, value, usage) -} diff --git a/vendor/github.com/spf13/pflag/count.go b/vendor/github.com/spf13/pflag/count.go deleted file mode 100644 index 250a438..0000000 --- a/vendor/github.com/spf13/pflag/count.go +++ /dev/null @@ -1,96 +0,0 @@ -package pflag - -import "strconv" - -// -- count Value -type countValue int - -func newCountValue(val int, p *int) *countValue { - *p = val - return (*countValue)(p) -} - -func (i *countValue) Set(s string) error { - v, err := strconv.ParseInt(s, 0, 64) - // -1 means that no specific value was passed, so increment - if v == -1 { - *i = countValue(*i + 1) - } else { - *i = countValue(v) - } - return err -} - -func (i *countValue) Type() string { - return "count" -} - -func (i *countValue) String() string { return strconv.Itoa(int(*i)) } - -func countConv(sval string) (interface{}, error) { - i, err := strconv.Atoi(sval) - if err != nil { - return nil, err - } - return i, nil -} - -// GetCount return the int value of a flag with the given name -func (f *FlagSet) GetCount(name string) (int, error) { - val, err := f.getFlagType(name, "count", countConv) - if err != nil { - return 0, err - } - return val.(int), nil -} - -// CountVar defines a count flag with specified name, default value, and usage string. -// The argument p points to an int variable in which to store the value of the flag. -// A count flag will add 1 to its value evey time it is found on the command line -func (f *FlagSet) CountVar(p *int, name string, usage string) { - f.CountVarP(p, name, "", usage) -} - -// CountVarP is like CountVar only take a shorthand for the flag name. -func (f *FlagSet) CountVarP(p *int, name, shorthand string, usage string) { - flag := f.VarPF(newCountValue(0, p), name, shorthand, usage) - flag.NoOptDefVal = "-1" -} - -// CountVar like CountVar only the flag is placed on the CommandLine instead of a given flag set -func CountVar(p *int, name string, usage string) { - CommandLine.CountVar(p, name, usage) -} - -// CountVarP is like CountVar only take a shorthand for the flag name. -func CountVarP(p *int, name, shorthand string, usage string) { - CommandLine.CountVarP(p, name, shorthand, usage) -} - -// Count defines a count flag with specified name, default value, and usage string. -// The return value is the address of an int variable that stores the value of the flag. -// A count flag will add 1 to its value evey time it is found on the command line -func (f *FlagSet) Count(name string, usage string) *int { - p := new(int) - f.CountVarP(p, name, "", usage) - return p -} - -// CountP is like Count only takes a shorthand for the flag name. -func (f *FlagSet) CountP(name, shorthand string, usage string) *int { - p := new(int) - f.CountVarP(p, name, shorthand, usage) - return p -} - -// Count defines a count flag with specified name, default value, and usage string. -// The return value is the address of an int variable that stores the value of the flag. -// A count flag will add 1 to its value evey time it is found on the command line -func Count(name string, usage string) *int { - return CommandLine.CountP(name, "", usage) -} - -// CountP is like Count only takes a shorthand for the flag name. -func CountP(name, shorthand string, usage string) *int { - return CommandLine.CountP(name, shorthand, usage) -} diff --git a/vendor/github.com/spf13/pflag/duration.go b/vendor/github.com/spf13/pflag/duration.go deleted file mode 100644 index e9debef..0000000 --- a/vendor/github.com/spf13/pflag/duration.go +++ /dev/null @@ -1,86 +0,0 @@ -package pflag - -import ( - "time" -) - -// -- time.Duration Value -type durationValue time.Duration - -func newDurationValue(val time.Duration, p *time.Duration) *durationValue { - *p = val - return (*durationValue)(p) -} - -func (d *durationValue) Set(s string) error { - v, err := time.ParseDuration(s) - *d = durationValue(v) - return err -} - -func (d *durationValue) Type() string { - return "duration" -} - -func (d *durationValue) String() string { return (*time.Duration)(d).String() } - -func durationConv(sval string) (interface{}, error) { - return time.ParseDuration(sval) -} - -// GetDuration return the duration value of a flag with the given name -func (f *FlagSet) GetDuration(name string) (time.Duration, error) { - val, err := f.getFlagType(name, "duration", durationConv) - if err != nil { - return 0, err - } - return val.(time.Duration), nil -} - -// DurationVar defines a time.Duration flag with specified name, default value, and usage string. -// The argument p points to a time.Duration variable in which to store the value of the flag. -func (f *FlagSet) DurationVar(p *time.Duration, name string, value time.Duration, usage string) { - f.VarP(newDurationValue(value, p), name, "", usage) -} - -// DurationVarP is like DurationVar, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) DurationVarP(p *time.Duration, name, shorthand string, value time.Duration, usage string) { - f.VarP(newDurationValue(value, p), name, shorthand, usage) -} - -// DurationVar defines a time.Duration flag with specified name, default value, and usage string. -// The argument p points to a time.Duration variable in which to store the value of the flag. -func DurationVar(p *time.Duration, name string, value time.Duration, usage string) { - CommandLine.VarP(newDurationValue(value, p), name, "", usage) -} - -// DurationVarP is like DurationVar, but accepts a shorthand letter that can be used after a single dash. -func DurationVarP(p *time.Duration, name, shorthand string, value time.Duration, usage string) { - CommandLine.VarP(newDurationValue(value, p), name, shorthand, usage) -} - -// Duration defines a time.Duration flag with specified name, default value, and usage string. -// The return value is the address of a time.Duration variable that stores the value of the flag. -func (f *FlagSet) Duration(name string, value time.Duration, usage string) *time.Duration { - p := new(time.Duration) - f.DurationVarP(p, name, "", value, usage) - return p -} - -// DurationP is like Duration, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) DurationP(name, shorthand string, value time.Duration, usage string) *time.Duration { - p := new(time.Duration) - f.DurationVarP(p, name, shorthand, value, usage) - return p -} - -// Duration defines a time.Duration flag with specified name, default value, and usage string. -// The return value is the address of a time.Duration variable that stores the value of the flag. -func Duration(name string, value time.Duration, usage string) *time.Duration { - return CommandLine.DurationP(name, "", value, usage) -} - -// DurationP is like Duration, but accepts a shorthand letter that can be used after a single dash. -func DurationP(name, shorthand string, value time.Duration, usage string) *time.Duration { - return CommandLine.DurationP(name, shorthand, value, usage) -} diff --git a/vendor/github.com/spf13/pflag/flag.go b/vendor/github.com/spf13/pflag/flag.go deleted file mode 100644 index 7b84e2c..0000000 --- a/vendor/github.com/spf13/pflag/flag.go +++ /dev/null @@ -1,1132 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -/* -Package pflag is a drop-in replacement for Go's flag package, implementing -POSIX/GNU-style --flags. - -pflag is compatible with the GNU extensions to the POSIX recommendations -for command-line options. See -http://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html - -Usage: - -pflag is a drop-in replacement of Go's native flag package. If you import -pflag under the name "flag" then all code should continue to function -with no changes. - - import flag "github.com/spf13/pflag" - -There is one exception to this: if you directly instantiate the Flag struct -there is one more field "Shorthand" that you will need to set. -Most code never instantiates this struct directly, and instead uses -functions such as String(), BoolVar(), and Var(), and is therefore -unaffected. - -Define flags using flag.String(), Bool(), Int(), etc. - -This declares an integer flag, -flagname, stored in the pointer ip, with type *int. - var ip = flag.Int("flagname", 1234, "help message for flagname") -If you like, you can bind the flag to a variable using the Var() functions. - var flagvar int - func init() { - flag.IntVar(&flagvar, "flagname", 1234, "help message for flagname") - } -Or you can create custom flags that satisfy the Value interface (with -pointer receivers) and couple them to flag parsing by - flag.Var(&flagVal, "name", "help message for flagname") -For such flags, the default value is just the initial value of the variable. - -After all flags are defined, call - flag.Parse() -to parse the command line into the defined flags. - -Flags may then be used directly. If you're using the flags themselves, -they are all pointers; if you bind to variables, they're values. - fmt.Println("ip has value ", *ip) - fmt.Println("flagvar has value ", flagvar) - -After parsing, the arguments after the flag are available as the -slice flag.Args() or individually as flag.Arg(i). -The arguments are indexed from 0 through flag.NArg()-1. - -The pflag package also defines some new functions that are not in flag, -that give one-letter shorthands for flags. You can use these by appending -'P' to the name of any function that defines a flag. - var ip = flag.IntP("flagname", "f", 1234, "help message") - var flagvar bool - func init() { - flag.BoolVarP("boolname", "b", true, "help message") - } - flag.VarP(&flagVar, "varname", "v", 1234, "help message") -Shorthand letters can be used with single dashes on the command line. -Boolean shorthand flags can be combined with other shorthand flags. - -Command line flag syntax: - --flag // boolean flags only - --flag=x - -Unlike the flag package, a single dash before an option means something -different than a double dash. Single dashes signify a series of shorthand -letters for flags. All but the last shorthand letter must be boolean flags. - // boolean flags - -f - -abc - // non-boolean flags - -n 1234 - -Ifile - // mixed - -abcs "hello" - -abcn1234 - -Flag parsing stops after the terminator "--". Unlike the flag package, -flags can be interspersed with arguments anywhere on the command line -before this terminator. - -Integer flags accept 1234, 0664, 0x1234 and may be negative. -Boolean flags (in their long form) accept 1, 0, t, f, true, false, -TRUE, FALSE, True, False. -Duration flags accept any input valid for time.ParseDuration. - -The default set of command-line flags is controlled by -top-level functions. The FlagSet type allows one to define -independent sets of flags, such as to implement subcommands -in a command-line interface. The methods of FlagSet are -analogous to the top-level functions for the command-line -flag set. -*/ -package pflag - -import ( - "bytes" - "errors" - "fmt" - "io" - "os" - "sort" - "strings" -) - -// ErrHelp is the error returned if the flag -help is invoked but no such flag is defined. -var ErrHelp = errors.New("pflag: help requested") - -// ErrorHandling defines how to handle flag parsing errors. -type ErrorHandling int - -const ( - // ContinueOnError will return an err from Parse() if an error is found - ContinueOnError ErrorHandling = iota - // ExitOnError will call os.Exit(2) if an error is found when parsing - ExitOnError - // PanicOnError will panic() if an error is found when parsing flags - PanicOnError -) - -// NormalizedName is a flag name that has been normalized according to rules -// for the FlagSet (e.g. making '-' and '_' equivalent). -type NormalizedName string - -// A FlagSet represents a set of defined flags. -type FlagSet struct { - // Usage is the function called when an error occurs while parsing flags. - // The field is a function (not a method) that may be changed to point to - // a custom error handler. - Usage func() - - // SortFlags is used to indicate, if user wants to have sorted flags in - // help/usage messages. - SortFlags bool - - name string - parsed bool - actual map[NormalizedName]*Flag - orderedActual []*Flag - sortedActual []*Flag - formal map[NormalizedName]*Flag - orderedFormal []*Flag - sortedFormal []*Flag - shorthands map[byte]*Flag - args []string // arguments after flags - argsLenAtDash int // len(args) when a '--' was located when parsing, or -1 if no -- - errorHandling ErrorHandling - output io.Writer // nil means stderr; use out() accessor - interspersed bool // allow interspersed option/non-option args - normalizeNameFunc func(f *FlagSet, name string) NormalizedName -} - -// A Flag represents the state of a flag. -type Flag struct { - Name string // name as it appears on command line - Shorthand string // one-letter abbreviated flag - Usage string // help message - Value Value // value as set - DefValue string // default value (as text); for usage message - Changed bool // If the user set the value (or if left to default) - NoOptDefVal string // default value (as text); if the flag is on the command line without any options - Deprecated string // If this flag is deprecated, this string is the new or now thing to use - Hidden bool // used by cobra.Command to allow flags to be hidden from help/usage text - ShorthandDeprecated string // If the shorthand of this flag is deprecated, this string is the new or now thing to use - Annotations map[string][]string // used by cobra.Command bash autocomple code -} - -// Value is the interface to the dynamic value stored in a flag. -// (The default value is represented as a string.) -type Value interface { - String() string - Set(string) error - Type() string -} - -// sortFlags returns the flags as a slice in lexicographical sorted order. -func sortFlags(flags map[NormalizedName]*Flag) []*Flag { - list := make(sort.StringSlice, len(flags)) - i := 0 - for k := range flags { - list[i] = string(k) - i++ - } - list.Sort() - result := make([]*Flag, len(list)) - for i, name := range list { - result[i] = flags[NormalizedName(name)] - } - return result -} - -// SetNormalizeFunc allows you to add a function which can translate flag names. -// Flags added to the FlagSet will be translated and then when anything tries to -// look up the flag that will also be translated. So it would be possible to create -// a flag named "getURL" and have it translated to "geturl". A user could then pass -// "--getUrl" which may also be translated to "geturl" and everything will work. -func (f *FlagSet) SetNormalizeFunc(n func(f *FlagSet, name string) NormalizedName) { - f.normalizeNameFunc = n - f.sortedFormal = f.sortedFormal[:0] - for k, v := range f.orderedFormal { - delete(f.formal, NormalizedName(v.Name)) - nname := f.normalizeFlagName(v.Name) - v.Name = string(nname) - f.formal[nname] = v - f.orderedFormal[k] = v - } -} - -// GetNormalizeFunc returns the previously set NormalizeFunc of a function which -// does no translation, if not set previously. -func (f *FlagSet) GetNormalizeFunc() func(f *FlagSet, name string) NormalizedName { - if f.normalizeNameFunc != nil { - return f.normalizeNameFunc - } - return func(f *FlagSet, name string) NormalizedName { return NormalizedName(name) } -} - -func (f *FlagSet) normalizeFlagName(name string) NormalizedName { - n := f.GetNormalizeFunc() - return n(f, name) -} - -func (f *FlagSet) out() io.Writer { - if f.output == nil { - return os.Stderr - } - return f.output -} - -// SetOutput sets the destination for usage and error messages. -// If output is nil, os.Stderr is used. -func (f *FlagSet) SetOutput(output io.Writer) { - f.output = output -} - -// VisitAll visits the flags in lexicographical order or -// in primordial order if f.SortFlags is false, calling fn for each. -// It visits all flags, even those not set. -func (f *FlagSet) VisitAll(fn func(*Flag)) { - if len(f.formal) == 0 { - return - } - - var flags []*Flag - if f.SortFlags { - if len(f.formal) != len(f.sortedFormal) { - f.sortedFormal = sortFlags(f.formal) - } - flags = f.sortedFormal - } else { - flags = f.orderedFormal - } - - for _, flag := range flags { - fn(flag) - } -} - -// HasFlags returns a bool to indicate if the FlagSet has any flags definied. -func (f *FlagSet) HasFlags() bool { - return len(f.formal) > 0 -} - -// HasAvailableFlags returns a bool to indicate if the FlagSet has any flags -// definied that are not hidden or deprecated. -func (f *FlagSet) HasAvailableFlags() bool { - for _, flag := range f.formal { - if !flag.Hidden && len(flag.Deprecated) == 0 { - return true - } - } - return false -} - -// VisitAll visits the command-line flags in lexicographical order or -// in primordial order if f.SortFlags is false, calling fn for each. -// It visits all flags, even those not set. -func VisitAll(fn func(*Flag)) { - CommandLine.VisitAll(fn) -} - -// Visit visits the flags in lexicographical order or -// in primordial order if f.SortFlags is false, calling fn for each. -// It visits only those flags that have been set. -func (f *FlagSet) Visit(fn func(*Flag)) { - if len(f.actual) == 0 { - return - } - - var flags []*Flag - if f.SortFlags { - if len(f.actual) != len(f.sortedActual) { - f.sortedActual = sortFlags(f.actual) - } - flags = f.sortedActual - } else { - flags = f.orderedActual - } - - for _, flag := range flags { - fn(flag) - } -} - -// Visit visits the command-line flags in lexicographical order or -// in primordial order if f.SortFlags is false, calling fn for each. -// It visits only those flags that have been set. -func Visit(fn func(*Flag)) { - CommandLine.Visit(fn) -} - -// Lookup returns the Flag structure of the named flag, returning nil if none exists. -func (f *FlagSet) Lookup(name string) *Flag { - return f.lookup(f.normalizeFlagName(name)) -} - -// ShorthandLookup returns the Flag structure of the short handed flag, -// returning nil if none exists. -// It panics, if len(name) > 1. -func (f *FlagSet) ShorthandLookup(name string) *Flag { - if name == "" { - return nil - } - if len(name) > 1 { - msg := fmt.Sprintf("can not look up shorthand which is more than one ASCII character: %q", name) - fmt.Fprintf(f.out(), msg) - panic(msg) - } - c := name[0] - return f.shorthands[c] -} - -// lookup returns the Flag structure of the named flag, returning nil if none exists. -func (f *FlagSet) lookup(name NormalizedName) *Flag { - return f.formal[name] -} - -// func to return a given type for a given flag name -func (f *FlagSet) getFlagType(name string, ftype string, convFunc func(sval string) (interface{}, error)) (interface{}, error) { - flag := f.Lookup(name) - if flag == nil { - err := fmt.Errorf("flag accessed but not defined: %s", name) - return nil, err - } - - if flag.Value.Type() != ftype { - err := fmt.Errorf("trying to get %s value of flag of type %s", ftype, flag.Value.Type()) - return nil, err - } - - sval := flag.Value.String() - result, err := convFunc(sval) - if err != nil { - return nil, err - } - return result, nil -} - -// ArgsLenAtDash will return the length of f.Args at the moment when a -- was -// found during arg parsing. This allows your program to know which args were -// before the -- and which came after. -func (f *FlagSet) ArgsLenAtDash() int { - return f.argsLenAtDash -} - -// MarkDeprecated indicated that a flag is deprecated in your program. It will -// continue to function but will not show up in help or usage messages. Using -// this flag will also print the given usageMessage. -func (f *FlagSet) MarkDeprecated(name string, usageMessage string) error { - flag := f.Lookup(name) - if flag == nil { - return fmt.Errorf("flag %q does not exist", name) - } - if usageMessage == "" { - return fmt.Errorf("deprecated message for flag %q must be set", name) - } - flag.Deprecated = usageMessage - return nil -} - -// MarkShorthandDeprecated will mark the shorthand of a flag deprecated in your -// program. It will continue to function but will not show up in help or usage -// messages. Using this flag will also print the given usageMessage. -func (f *FlagSet) MarkShorthandDeprecated(name string, usageMessage string) error { - flag := f.Lookup(name) - if flag == nil { - return fmt.Errorf("flag %q does not exist", name) - } - if usageMessage == "" { - return fmt.Errorf("deprecated message for flag %q must be set", name) - } - flag.ShorthandDeprecated = usageMessage - return nil -} - -// MarkHidden sets a flag to 'hidden' in your program. It will continue to -// function but will not show up in help or usage messages. -func (f *FlagSet) MarkHidden(name string) error { - flag := f.Lookup(name) - if flag == nil { - return fmt.Errorf("flag %q does not exist", name) - } - flag.Hidden = true - return nil -} - -// Lookup returns the Flag structure of the named command-line flag, -// returning nil if none exists. -func Lookup(name string) *Flag { - return CommandLine.Lookup(name) -} - -// ShorthandLookup returns the Flag structure of the short handed flag, -// returning nil if none exists. -func ShorthandLookup(name string) *Flag { - return CommandLine.ShorthandLookup(name) -} - -// Set sets the value of the named flag. -func (f *FlagSet) Set(name, value string) error { - normalName := f.normalizeFlagName(name) - flag, ok := f.formal[normalName] - if !ok { - return fmt.Errorf("no such flag -%v", name) - } - - err := flag.Value.Set(value) - if err != nil { - var flagName string - if flag.Shorthand != "" && flag.ShorthandDeprecated == "" { - flagName = fmt.Sprintf("-%s, --%s", flag.Shorthand, flag.Name) - } else { - flagName = fmt.Sprintf("--%s", flag.Name) - } - return fmt.Errorf("invalid argument %q for %q flag: %v", value, flagName, err) - } - - if f.actual == nil { - f.actual = make(map[NormalizedName]*Flag) - } - f.actual[normalName] = flag - f.orderedActual = append(f.orderedActual, flag) - - flag.Changed = true - - if flag.Deprecated != "" { - fmt.Fprintf(f.out(), "Flag --%s has been deprecated, %s\n", flag.Name, flag.Deprecated) - } - return nil -} - -// SetAnnotation allows one to set arbitrary annotations on a flag in the FlagSet. -// This is sometimes used by spf13/cobra programs which want to generate additional -// bash completion information. -func (f *FlagSet) SetAnnotation(name, key string, values []string) error { - normalName := f.normalizeFlagName(name) - flag, ok := f.formal[normalName] - if !ok { - return fmt.Errorf("no such flag -%v", name) - } - if flag.Annotations == nil { - flag.Annotations = map[string][]string{} - } - flag.Annotations[key] = values - return nil -} - -// Changed returns true if the flag was explicitly set during Parse() and false -// otherwise -func (f *FlagSet) Changed(name string) bool { - flag := f.Lookup(name) - // If a flag doesn't exist, it wasn't changed.... - if flag == nil { - return false - } - return flag.Changed -} - -// Set sets the value of the named command-line flag. -func Set(name, value string) error { - return CommandLine.Set(name, value) -} - -// PrintDefaults prints, to standard error unless configured -// otherwise, the default values of all defined flags in the set. -func (f *FlagSet) PrintDefaults() { - usages := f.FlagUsages() - fmt.Fprint(f.out(), usages) -} - -// defaultIsZeroValue returns true if the default value for this flag represents -// a zero value. -func (f *Flag) defaultIsZeroValue() bool { - switch f.Value.(type) { - case boolFlag: - return f.DefValue == "false" - case *durationValue: - // Beginning in Go 1.7, duration zero values are "0s" - return f.DefValue == "0" || f.DefValue == "0s" - case *intValue, *int8Value, *int32Value, *int64Value, *uintValue, *uint8Value, *uint16Value, *uint32Value, *uint64Value, *countValue, *float32Value, *float64Value: - return f.DefValue == "0" - case *stringValue: - return f.DefValue == "" - case *ipValue, *ipMaskValue, *ipNetValue: - return f.DefValue == "" - case *intSliceValue, *stringSliceValue, *stringArrayValue: - return f.DefValue == "[]" - default: - switch f.Value.String() { - case "false": - return true - case "": - return true - case "": - return true - case "0": - return true - } - return false - } -} - -// UnquoteUsage extracts a back-quoted name from the usage -// string for a flag and returns it and the un-quoted usage. -// Given "a `name` to show" it returns ("name", "a name to show"). -// If there are no back quotes, the name is an educated guess of the -// type of the flag's value, or the empty string if the flag is boolean. -func UnquoteUsage(flag *Flag) (name string, usage string) { - // Look for a back-quoted name, but avoid the strings package. - usage = flag.Usage - for i := 0; i < len(usage); i++ { - if usage[i] == '`' { - for j := i + 1; j < len(usage); j++ { - if usage[j] == '`' { - name = usage[i+1 : j] - usage = usage[:i] + name + usage[j+1:] - return name, usage - } - } - break // Only one back quote; use type name. - } - } - - name = flag.Value.Type() - switch name { - case "bool": - name = "" - case "float64": - name = "float" - case "int64": - name = "int" - case "uint64": - name = "uint" - case "stringSlice": - name = "strings" - case "intSlice": - name = "ints" - } - - return -} - -// Splits the string `s` on whitespace into an initial substring up to -// `i` runes in length and the remainder. Will go `slop` over `i` if -// that encompasses the entire string (which allows the caller to -// avoid short orphan words on the final line). -func wrapN(i, slop int, s string) (string, string) { - if i+slop > len(s) { - return s, "" - } - - w := strings.LastIndexAny(s[:i], " \t") - if w <= 0 { - return s, "" - } - - return s[:w], s[w+1:] -} - -// Wraps the string `s` to a maximum width `w` with leading indent -// `i`. The first line is not indented (this is assumed to be done by -// caller). Pass `w` == 0 to do no wrapping -func wrap(i, w int, s string) string { - if w == 0 { - return s - } - - // space between indent i and end of line width w into which - // we should wrap the text. - wrap := w - i - - var r, l string - - // Not enough space for sensible wrapping. Wrap as a block on - // the next line instead. - if wrap < 24 { - i = 16 - wrap = w - i - r += "\n" + strings.Repeat(" ", i) - } - // If still not enough space then don't even try to wrap. - if wrap < 24 { - return s - } - - // Try to avoid short orphan words on the final line, by - // allowing wrapN to go a bit over if that would fit in the - // remainder of the line. - slop := 5 - wrap = wrap - slop - - // Handle first line, which is indented by the caller (or the - // special case above) - l, s = wrapN(wrap, slop, s) - r = r + l - - // Now wrap the rest - for s != "" { - var t string - - t, s = wrapN(wrap, slop, s) - r = r + "\n" + strings.Repeat(" ", i) + t - } - - return r - -} - -// FlagUsagesWrapped returns a string containing the usage information -// for all flags in the FlagSet. Wrapped to `cols` columns (0 for no -// wrapping) -func (f *FlagSet) FlagUsagesWrapped(cols int) string { - buf := new(bytes.Buffer) - - lines := make([]string, 0, len(f.formal)) - - maxlen := 0 - f.VisitAll(func(flag *Flag) { - if flag.Deprecated != "" || flag.Hidden { - return - } - - line := "" - if flag.Shorthand != "" && flag.ShorthandDeprecated == "" { - line = fmt.Sprintf(" -%s, --%s", flag.Shorthand, flag.Name) - } else { - line = fmt.Sprintf(" --%s", flag.Name) - } - - varname, usage := UnquoteUsage(flag) - if varname != "" { - line += " " + varname - } - if flag.NoOptDefVal != "" { - switch flag.Value.Type() { - case "string": - line += fmt.Sprintf("[=\"%s\"]", flag.NoOptDefVal) - case "bool": - if flag.NoOptDefVal != "true" { - line += fmt.Sprintf("[=%s]", flag.NoOptDefVal) - } - default: - line += fmt.Sprintf("[=%s]", flag.NoOptDefVal) - } - } - - // This special character will be replaced with spacing once the - // correct alignment is calculated - line += "\x00" - if len(line) > maxlen { - maxlen = len(line) - } - - line += usage - if !flag.defaultIsZeroValue() { - if flag.Value.Type() == "string" { - line += fmt.Sprintf(" (default %q)", flag.DefValue) - } else { - line += fmt.Sprintf(" (default %s)", flag.DefValue) - } - } - - lines = append(lines, line) - }) - - for _, line := range lines { - sidx := strings.Index(line, "\x00") - spacing := strings.Repeat(" ", maxlen-sidx) - // maxlen + 2 comes from + 1 for the \x00 and + 1 for the (deliberate) off-by-one in maxlen-sidx - fmt.Fprintln(buf, line[:sidx], spacing, wrap(maxlen+2, cols, line[sidx+1:])) - } - - return buf.String() -} - -// FlagUsages returns a string containing the usage information for all flags in -// the FlagSet -func (f *FlagSet) FlagUsages() string { - return f.FlagUsagesWrapped(0) -} - -// PrintDefaults prints to standard error the default values of all defined command-line flags. -func PrintDefaults() { - CommandLine.PrintDefaults() -} - -// defaultUsage is the default function to print a usage message. -func defaultUsage(f *FlagSet) { - fmt.Fprintf(f.out(), "Usage of %s:\n", f.name) - f.PrintDefaults() -} - -// NOTE: Usage is not just defaultUsage(CommandLine) -// because it serves (via godoc flag Usage) as the example -// for how to write your own usage function. - -// Usage prints to standard error a usage message documenting all defined command-line flags. -// The function is a variable that may be changed to point to a custom function. -// By default it prints a simple header and calls PrintDefaults; for details about the -// format of the output and how to control it, see the documentation for PrintDefaults. -var Usage = func() { - fmt.Fprintf(os.Stderr, "Usage of %s:\n", os.Args[0]) - PrintDefaults() -} - -// NFlag returns the number of flags that have been set. -func (f *FlagSet) NFlag() int { return len(f.actual) } - -// NFlag returns the number of command-line flags that have been set. -func NFlag() int { return len(CommandLine.actual) } - -// Arg returns the i'th argument. Arg(0) is the first remaining argument -// after flags have been processed. -func (f *FlagSet) Arg(i int) string { - if i < 0 || i >= len(f.args) { - return "" - } - return f.args[i] -} - -// Arg returns the i'th command-line argument. Arg(0) is the first remaining argument -// after flags have been processed. -func Arg(i int) string { - return CommandLine.Arg(i) -} - -// NArg is the number of arguments remaining after flags have been processed. -func (f *FlagSet) NArg() int { return len(f.args) } - -// NArg is the number of arguments remaining after flags have been processed. -func NArg() int { return len(CommandLine.args) } - -// Args returns the non-flag arguments. -func (f *FlagSet) Args() []string { return f.args } - -// Args returns the non-flag command-line arguments. -func Args() []string { return CommandLine.args } - -// Var defines a flag with the specified name and usage string. The type and -// value of the flag are represented by the first argument, of type Value, which -// typically holds a user-defined implementation of Value. For instance, the -// caller could create a flag that turns a comma-separated string into a slice -// of strings by giving the slice the methods of Value; in particular, Set would -// decompose the comma-separated string into the slice. -func (f *FlagSet) Var(value Value, name string, usage string) { - f.VarP(value, name, "", usage) -} - -// VarPF is like VarP, but returns the flag created -func (f *FlagSet) VarPF(value Value, name, shorthand, usage string) *Flag { - // Remember the default value as a string; it won't change. - flag := &Flag{ - Name: name, - Shorthand: shorthand, - Usage: usage, - Value: value, - DefValue: value.String(), - } - f.AddFlag(flag) - return flag -} - -// VarP is like Var, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) VarP(value Value, name, shorthand, usage string) { - f.VarPF(value, name, shorthand, usage) -} - -// AddFlag will add the flag to the FlagSet -func (f *FlagSet) AddFlag(flag *Flag) { - normalizedFlagName := f.normalizeFlagName(flag.Name) - - _, alreadyThere := f.formal[normalizedFlagName] - if alreadyThere { - msg := fmt.Sprintf("%s flag redefined: %s", f.name, flag.Name) - fmt.Fprintln(f.out(), msg) - panic(msg) // Happens only if flags are declared with identical names - } - if f.formal == nil { - f.formal = make(map[NormalizedName]*Flag) - } - - flag.Name = string(normalizedFlagName) - f.formal[normalizedFlagName] = flag - f.orderedFormal = append(f.orderedFormal, flag) - - if flag.Shorthand == "" { - return - } - if len(flag.Shorthand) > 1 { - msg := fmt.Sprintf("%q shorthand is more than one ASCII character", flag.Shorthand) - fmt.Fprintf(f.out(), msg) - panic(msg) - } - if f.shorthands == nil { - f.shorthands = make(map[byte]*Flag) - } - c := flag.Shorthand[0] - used, alreadyThere := f.shorthands[c] - if alreadyThere { - msg := fmt.Sprintf("unable to redefine %q shorthand in %q flagset: it's already used for %q flag", c, f.name, used.Name) - fmt.Fprintf(f.out(), msg) - panic(msg) - } - f.shorthands[c] = flag -} - -// AddFlagSet adds one FlagSet to another. If a flag is already present in f -// the flag from newSet will be ignored. -func (f *FlagSet) AddFlagSet(newSet *FlagSet) { - if newSet == nil { - return - } - newSet.VisitAll(func(flag *Flag) { - if f.Lookup(flag.Name) == nil { - f.AddFlag(flag) - } - }) -} - -// Var defines a flag with the specified name and usage string. The type and -// value of the flag are represented by the first argument, of type Value, which -// typically holds a user-defined implementation of Value. For instance, the -// caller could create a flag that turns a comma-separated string into a slice -// of strings by giving the slice the methods of Value; in particular, Set would -// decompose the comma-separated string into the slice. -func Var(value Value, name string, usage string) { - CommandLine.VarP(value, name, "", usage) -} - -// VarP is like Var, but accepts a shorthand letter that can be used after a single dash. -func VarP(value Value, name, shorthand, usage string) { - CommandLine.VarP(value, name, shorthand, usage) -} - -// failf prints to standard error a formatted error and usage message and -// returns the error. -func (f *FlagSet) failf(format string, a ...interface{}) error { - err := fmt.Errorf(format, a...) - fmt.Fprintln(f.out(), err) - f.usage() - return err -} - -// usage calls the Usage method for the flag set, or the usage function if -// the flag set is CommandLine. -func (f *FlagSet) usage() { - if f == CommandLine { - Usage() - } else if f.Usage == nil { - defaultUsage(f) - } else { - f.Usage() - } -} - -func (f *FlagSet) parseLongArg(s string, args []string, fn parseFunc) (a []string, err error) { - a = args - name := s[2:] - if len(name) == 0 || name[0] == '-' || name[0] == '=' { - err = f.failf("bad flag syntax: %s", s) - return - } - - split := strings.SplitN(name, "=", 2) - name = split[0] - flag, exists := f.formal[f.normalizeFlagName(name)] - if !exists { - if name == "help" { // special case for nice help message. - f.usage() - return a, ErrHelp - } - err = f.failf("unknown flag: --%s", name) - return - } - - var value string - if len(split) == 2 { - // '--flag=arg' - value = split[1] - } else if flag.NoOptDefVal != "" { - // '--flag' (arg was optional) - value = flag.NoOptDefVal - } else if len(a) > 0 { - // '--flag arg' - value = a[0] - a = a[1:] - } else { - // '--flag' (arg was required) - err = f.failf("flag needs an argument: %s", s) - return - } - - err = fn(flag, value) - return -} - -func (f *FlagSet) parseSingleShortArg(shorthands string, args []string, fn parseFunc) (outShorts string, outArgs []string, err error) { - if strings.HasPrefix(shorthands, "test.") { - return - } - - outArgs = args - outShorts = shorthands[1:] - c := shorthands[0] - - flag, exists := f.shorthands[c] - if !exists { - if c == 'h' { // special case for nice help message. - f.usage() - err = ErrHelp - return - } - err = f.failf("unknown shorthand flag: %q in -%s", c, shorthands) - return - } - - var value string - if len(shorthands) > 2 && shorthands[1] == '=' { - // '-f=arg' - value = shorthands[2:] - outShorts = "" - } else if flag.NoOptDefVal != "" { - // '-f' (arg was optional) - value = flag.NoOptDefVal - } else if len(shorthands) > 1 { - // '-farg' - value = shorthands[1:] - outShorts = "" - } else if len(args) > 0 { - // '-f arg' - value = args[0] - outArgs = args[1:] - } else { - // '-f' (arg was required) - err = f.failf("flag needs an argument: %q in -%s", c, shorthands) - return - } - - if flag.ShorthandDeprecated != "" { - fmt.Fprintf(f.out(), "Flag shorthand -%s has been deprecated, %s\n", flag.Shorthand, flag.ShorthandDeprecated) - } - - err = fn(flag, value) - return -} - -func (f *FlagSet) parseShortArg(s string, args []string, fn parseFunc) (a []string, err error) { - a = args - shorthands := s[1:] - - // "shorthands" can be a series of shorthand letters of flags (e.g. "-vvv"). - for len(shorthands) > 0 { - shorthands, a, err = f.parseSingleShortArg(shorthands, args, fn) - if err != nil { - return - } - } - - return -} - -func (f *FlagSet) parseArgs(args []string, fn parseFunc) (err error) { - for len(args) > 0 { - s := args[0] - args = args[1:] - if len(s) == 0 || s[0] != '-' || len(s) == 1 { - if !f.interspersed { - f.args = append(f.args, s) - f.args = append(f.args, args...) - return nil - } - f.args = append(f.args, s) - continue - } - - if s[1] == '-' { - if len(s) == 2 { // "--" terminates the flags - f.argsLenAtDash = len(f.args) - f.args = append(f.args, args...) - break - } - args, err = f.parseLongArg(s, args, fn) - } else { - args, err = f.parseShortArg(s, args, fn) - } - if err != nil { - return - } - } - return -} - -// Parse parses flag definitions from the argument list, which should not -// include the command name. Must be called after all flags in the FlagSet -// are defined and before flags are accessed by the program. -// The return value will be ErrHelp if -help was set but not defined. -func (f *FlagSet) Parse(arguments []string) error { - f.parsed = true - - if len(arguments) < 0 { - return nil - } - - f.args = make([]string, 0, len(arguments)) - - set := func(flag *Flag, value string) error { - return f.Set(flag.Name, value) - } - - err := f.parseArgs(arguments, set) - if err != nil { - switch f.errorHandling { - case ContinueOnError: - return err - case ExitOnError: - os.Exit(2) - case PanicOnError: - panic(err) - } - } - return nil -} - -type parseFunc func(flag *Flag, value string) error - -// ParseAll parses flag definitions from the argument list, which should not -// include the command name. The arguments for fn are flag and value. Must be -// called after all flags in the FlagSet are defined and before flags are -// accessed by the program. The return value will be ErrHelp if -help was set -// but not defined. -func (f *FlagSet) ParseAll(arguments []string, fn func(flag *Flag, value string) error) error { - f.parsed = true - f.args = make([]string, 0, len(arguments)) - - err := f.parseArgs(arguments, fn) - if err != nil { - switch f.errorHandling { - case ContinueOnError: - return err - case ExitOnError: - os.Exit(2) - case PanicOnError: - panic(err) - } - } - return nil -} - -// Parsed reports whether f.Parse has been called. -func (f *FlagSet) Parsed() bool { - return f.parsed -} - -// Parse parses the command-line flags from os.Args[1:]. Must be called -// after all flags are defined and before flags are accessed by the program. -func Parse() { - // Ignore errors; CommandLine is set for ExitOnError. - CommandLine.Parse(os.Args[1:]) -} - -// ParseAll parses the command-line flags from os.Args[1:] and called fn for each. -// The arguments for fn are flag and value. Must be called after all flags are -// defined and before flags are accessed by the program. -func ParseAll(fn func(flag *Flag, value string) error) { - // Ignore errors; CommandLine is set for ExitOnError. - CommandLine.ParseAll(os.Args[1:], fn) -} - -// SetInterspersed sets whether to support interspersed option/non-option arguments. -func SetInterspersed(interspersed bool) { - CommandLine.SetInterspersed(interspersed) -} - -// Parsed returns true if the command-line flags have been parsed. -func Parsed() bool { - return CommandLine.Parsed() -} - -// CommandLine is the default set of command-line flags, parsed from os.Args. -var CommandLine = NewFlagSet(os.Args[0], ExitOnError) - -// NewFlagSet returns a new, empty flag set with the specified name, -// error handling property and SortFlags set to true. -func NewFlagSet(name string, errorHandling ErrorHandling) *FlagSet { - f := &FlagSet{ - name: name, - errorHandling: errorHandling, - argsLenAtDash: -1, - interspersed: true, - SortFlags: true, - } - return f -} - -// SetInterspersed sets whether to support interspersed option/non-option arguments. -func (f *FlagSet) SetInterspersed(interspersed bool) { - f.interspersed = interspersed -} - -// Init sets the name and error handling property for a flag set. -// By default, the zero FlagSet uses an empty name and the -// ContinueOnError error handling policy. -func (f *FlagSet) Init(name string, errorHandling ErrorHandling) { - f.name = name - f.errorHandling = errorHandling - f.argsLenAtDash = -1 -} diff --git a/vendor/github.com/spf13/pflag/float32.go b/vendor/github.com/spf13/pflag/float32.go deleted file mode 100644 index a243f81..0000000 --- a/vendor/github.com/spf13/pflag/float32.go +++ /dev/null @@ -1,88 +0,0 @@ -package pflag - -import "strconv" - -// -- float32 Value -type float32Value float32 - -func newFloat32Value(val float32, p *float32) *float32Value { - *p = val - return (*float32Value)(p) -} - -func (f *float32Value) Set(s string) error { - v, err := strconv.ParseFloat(s, 32) - *f = float32Value(v) - return err -} - -func (f *float32Value) Type() string { - return "float32" -} - -func (f *float32Value) String() string { return strconv.FormatFloat(float64(*f), 'g', -1, 32) } - -func float32Conv(sval string) (interface{}, error) { - v, err := strconv.ParseFloat(sval, 32) - if err != nil { - return 0, err - } - return float32(v), nil -} - -// GetFloat32 return the float32 value of a flag with the given name -func (f *FlagSet) GetFloat32(name string) (float32, error) { - val, err := f.getFlagType(name, "float32", float32Conv) - if err != nil { - return 0, err - } - return val.(float32), nil -} - -// Float32Var defines a float32 flag with specified name, default value, and usage string. -// The argument p points to a float32 variable in which to store the value of the flag. -func (f *FlagSet) Float32Var(p *float32, name string, value float32, usage string) { - f.VarP(newFloat32Value(value, p), name, "", usage) -} - -// Float32VarP is like Float32Var, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Float32VarP(p *float32, name, shorthand string, value float32, usage string) { - f.VarP(newFloat32Value(value, p), name, shorthand, usage) -} - -// Float32Var defines a float32 flag with specified name, default value, and usage string. -// The argument p points to a float32 variable in which to store the value of the flag. -func Float32Var(p *float32, name string, value float32, usage string) { - CommandLine.VarP(newFloat32Value(value, p), name, "", usage) -} - -// Float32VarP is like Float32Var, but accepts a shorthand letter that can be used after a single dash. -func Float32VarP(p *float32, name, shorthand string, value float32, usage string) { - CommandLine.VarP(newFloat32Value(value, p), name, shorthand, usage) -} - -// Float32 defines a float32 flag with specified name, default value, and usage string. -// The return value is the address of a float32 variable that stores the value of the flag. -func (f *FlagSet) Float32(name string, value float32, usage string) *float32 { - p := new(float32) - f.Float32VarP(p, name, "", value, usage) - return p -} - -// Float32P is like Float32, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Float32P(name, shorthand string, value float32, usage string) *float32 { - p := new(float32) - f.Float32VarP(p, name, shorthand, value, usage) - return p -} - -// Float32 defines a float32 flag with specified name, default value, and usage string. -// The return value is the address of a float32 variable that stores the value of the flag. -func Float32(name string, value float32, usage string) *float32 { - return CommandLine.Float32P(name, "", value, usage) -} - -// Float32P is like Float32, but accepts a shorthand letter that can be used after a single dash. -func Float32P(name, shorthand string, value float32, usage string) *float32 { - return CommandLine.Float32P(name, shorthand, value, usage) -} diff --git a/vendor/github.com/spf13/pflag/float64.go b/vendor/github.com/spf13/pflag/float64.go deleted file mode 100644 index 04b5492..0000000 --- a/vendor/github.com/spf13/pflag/float64.go +++ /dev/null @@ -1,84 +0,0 @@ -package pflag - -import "strconv" - -// -- float64 Value -type float64Value float64 - -func newFloat64Value(val float64, p *float64) *float64Value { - *p = val - return (*float64Value)(p) -} - -func (f *float64Value) Set(s string) error { - v, err := strconv.ParseFloat(s, 64) - *f = float64Value(v) - return err -} - -func (f *float64Value) Type() string { - return "float64" -} - -func (f *float64Value) String() string { return strconv.FormatFloat(float64(*f), 'g', -1, 64) } - -func float64Conv(sval string) (interface{}, error) { - return strconv.ParseFloat(sval, 64) -} - -// GetFloat64 return the float64 value of a flag with the given name -func (f *FlagSet) GetFloat64(name string) (float64, error) { - val, err := f.getFlagType(name, "float64", float64Conv) - if err != nil { - return 0, err - } - return val.(float64), nil -} - -// Float64Var defines a float64 flag with specified name, default value, and usage string. -// The argument p points to a float64 variable in which to store the value of the flag. -func (f *FlagSet) Float64Var(p *float64, name string, value float64, usage string) { - f.VarP(newFloat64Value(value, p), name, "", usage) -} - -// Float64VarP is like Float64Var, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Float64VarP(p *float64, name, shorthand string, value float64, usage string) { - f.VarP(newFloat64Value(value, p), name, shorthand, usage) -} - -// Float64Var defines a float64 flag with specified name, default value, and usage string. -// The argument p points to a float64 variable in which to store the value of the flag. -func Float64Var(p *float64, name string, value float64, usage string) { - CommandLine.VarP(newFloat64Value(value, p), name, "", usage) -} - -// Float64VarP is like Float64Var, but accepts a shorthand letter that can be used after a single dash. -func Float64VarP(p *float64, name, shorthand string, value float64, usage string) { - CommandLine.VarP(newFloat64Value(value, p), name, shorthand, usage) -} - -// Float64 defines a float64 flag with specified name, default value, and usage string. -// The return value is the address of a float64 variable that stores the value of the flag. -func (f *FlagSet) Float64(name string, value float64, usage string) *float64 { - p := new(float64) - f.Float64VarP(p, name, "", value, usage) - return p -} - -// Float64P is like Float64, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Float64P(name, shorthand string, value float64, usage string) *float64 { - p := new(float64) - f.Float64VarP(p, name, shorthand, value, usage) - return p -} - -// Float64 defines a float64 flag with specified name, default value, and usage string. -// The return value is the address of a float64 variable that stores the value of the flag. -func Float64(name string, value float64, usage string) *float64 { - return CommandLine.Float64P(name, "", value, usage) -} - -// Float64P is like Float64, but accepts a shorthand letter that can be used after a single dash. -func Float64P(name, shorthand string, value float64, usage string) *float64 { - return CommandLine.Float64P(name, shorthand, value, usage) -} diff --git a/vendor/github.com/spf13/pflag/golangflag.go b/vendor/github.com/spf13/pflag/golangflag.go deleted file mode 100644 index c4f47eb..0000000 --- a/vendor/github.com/spf13/pflag/golangflag.go +++ /dev/null @@ -1,101 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package pflag - -import ( - goflag "flag" - "reflect" - "strings" -) - -// flagValueWrapper implements pflag.Value around a flag.Value. The main -// difference here is the addition of the Type method that returns a string -// name of the type. As this is generally unknown, we approximate that with -// reflection. -type flagValueWrapper struct { - inner goflag.Value - flagType string -} - -// We are just copying the boolFlag interface out of goflag as that is what -// they use to decide if a flag should get "true" when no arg is given. -type goBoolFlag interface { - goflag.Value - IsBoolFlag() bool -} - -func wrapFlagValue(v goflag.Value) Value { - // If the flag.Value happens to also be a pflag.Value, just use it directly. - if pv, ok := v.(Value); ok { - return pv - } - - pv := &flagValueWrapper{ - inner: v, - } - - t := reflect.TypeOf(v) - if t.Kind() == reflect.Interface || t.Kind() == reflect.Ptr { - t = t.Elem() - } - - pv.flagType = strings.TrimSuffix(t.Name(), "Value") - return pv -} - -func (v *flagValueWrapper) String() string { - return v.inner.String() -} - -func (v *flagValueWrapper) Set(s string) error { - return v.inner.Set(s) -} - -func (v *flagValueWrapper) Type() string { - return v.flagType -} - -// PFlagFromGoFlag will return a *pflag.Flag given a *flag.Flag -// If the *flag.Flag.Name was a single character (ex: `v`) it will be accessiblei -// with both `-v` and `--v` in flags. If the golang flag was more than a single -// character (ex: `verbose`) it will only be accessible via `--verbose` -func PFlagFromGoFlag(goflag *goflag.Flag) *Flag { - // Remember the default value as a string; it won't change. - flag := &Flag{ - Name: goflag.Name, - Usage: goflag.Usage, - Value: wrapFlagValue(goflag.Value), - // Looks like golang flags don't set DefValue correctly :-( - //DefValue: goflag.DefValue, - DefValue: goflag.Value.String(), - } - // Ex: if the golang flag was -v, allow both -v and --v to work - if len(flag.Name) == 1 { - flag.Shorthand = flag.Name - } - if fv, ok := goflag.Value.(goBoolFlag); ok && fv.IsBoolFlag() { - flag.NoOptDefVal = "true" - } - return flag -} - -// AddGoFlag will add the given *flag.Flag to the pflag.FlagSet -func (f *FlagSet) AddGoFlag(goflag *goflag.Flag) { - if f.Lookup(goflag.Name) != nil { - return - } - newflag := PFlagFromGoFlag(goflag) - f.AddFlag(newflag) -} - -// AddGoFlagSet will add the given *flag.FlagSet to the pflag.FlagSet -func (f *FlagSet) AddGoFlagSet(newSet *goflag.FlagSet) { - if newSet == nil { - return - } - newSet.VisitAll(func(goflag *goflag.Flag) { - f.AddGoFlag(goflag) - }) -} diff --git a/vendor/github.com/spf13/pflag/int.go b/vendor/github.com/spf13/pflag/int.go deleted file mode 100644 index 1474b89..0000000 --- a/vendor/github.com/spf13/pflag/int.go +++ /dev/null @@ -1,84 +0,0 @@ -package pflag - -import "strconv" - -// -- int Value -type intValue int - -func newIntValue(val int, p *int) *intValue { - *p = val - return (*intValue)(p) -} - -func (i *intValue) Set(s string) error { - v, err := strconv.ParseInt(s, 0, 64) - *i = intValue(v) - return err -} - -func (i *intValue) Type() string { - return "int" -} - -func (i *intValue) String() string { return strconv.Itoa(int(*i)) } - -func intConv(sval string) (interface{}, error) { - return strconv.Atoi(sval) -} - -// GetInt return the int value of a flag with the given name -func (f *FlagSet) GetInt(name string) (int, error) { - val, err := f.getFlagType(name, "int", intConv) - if err != nil { - return 0, err - } - return val.(int), nil -} - -// IntVar defines an int flag with specified name, default value, and usage string. -// The argument p points to an int variable in which to store the value of the flag. -func (f *FlagSet) IntVar(p *int, name string, value int, usage string) { - f.VarP(newIntValue(value, p), name, "", usage) -} - -// IntVarP is like IntVar, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) IntVarP(p *int, name, shorthand string, value int, usage string) { - f.VarP(newIntValue(value, p), name, shorthand, usage) -} - -// IntVar defines an int flag with specified name, default value, and usage string. -// The argument p points to an int variable in which to store the value of the flag. -func IntVar(p *int, name string, value int, usage string) { - CommandLine.VarP(newIntValue(value, p), name, "", usage) -} - -// IntVarP is like IntVar, but accepts a shorthand letter that can be used after a single dash. -func IntVarP(p *int, name, shorthand string, value int, usage string) { - CommandLine.VarP(newIntValue(value, p), name, shorthand, usage) -} - -// Int defines an int flag with specified name, default value, and usage string. -// The return value is the address of an int variable that stores the value of the flag. -func (f *FlagSet) Int(name string, value int, usage string) *int { - p := new(int) - f.IntVarP(p, name, "", value, usage) - return p -} - -// IntP is like Int, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) IntP(name, shorthand string, value int, usage string) *int { - p := new(int) - f.IntVarP(p, name, shorthand, value, usage) - return p -} - -// Int defines an int flag with specified name, default value, and usage string. -// The return value is the address of an int variable that stores the value of the flag. -func Int(name string, value int, usage string) *int { - return CommandLine.IntP(name, "", value, usage) -} - -// IntP is like Int, but accepts a shorthand letter that can be used after a single dash. -func IntP(name, shorthand string, value int, usage string) *int { - return CommandLine.IntP(name, shorthand, value, usage) -} diff --git a/vendor/github.com/spf13/pflag/int32.go b/vendor/github.com/spf13/pflag/int32.go deleted file mode 100644 index 9b95944..0000000 --- a/vendor/github.com/spf13/pflag/int32.go +++ /dev/null @@ -1,88 +0,0 @@ -package pflag - -import "strconv" - -// -- int32 Value -type int32Value int32 - -func newInt32Value(val int32, p *int32) *int32Value { - *p = val - return (*int32Value)(p) -} - -func (i *int32Value) Set(s string) error { - v, err := strconv.ParseInt(s, 0, 32) - *i = int32Value(v) - return err -} - -func (i *int32Value) Type() string { - return "int32" -} - -func (i *int32Value) String() string { return strconv.FormatInt(int64(*i), 10) } - -func int32Conv(sval string) (interface{}, error) { - v, err := strconv.ParseInt(sval, 0, 32) - if err != nil { - return 0, err - } - return int32(v), nil -} - -// GetInt32 return the int32 value of a flag with the given name -func (f *FlagSet) GetInt32(name string) (int32, error) { - val, err := f.getFlagType(name, "int32", int32Conv) - if err != nil { - return 0, err - } - return val.(int32), nil -} - -// Int32Var defines an int32 flag with specified name, default value, and usage string. -// The argument p points to an int32 variable in which to store the value of the flag. -func (f *FlagSet) Int32Var(p *int32, name string, value int32, usage string) { - f.VarP(newInt32Value(value, p), name, "", usage) -} - -// Int32VarP is like Int32Var, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Int32VarP(p *int32, name, shorthand string, value int32, usage string) { - f.VarP(newInt32Value(value, p), name, shorthand, usage) -} - -// Int32Var defines an int32 flag with specified name, default value, and usage string. -// The argument p points to an int32 variable in which to store the value of the flag. -func Int32Var(p *int32, name string, value int32, usage string) { - CommandLine.VarP(newInt32Value(value, p), name, "", usage) -} - -// Int32VarP is like Int32Var, but accepts a shorthand letter that can be used after a single dash. -func Int32VarP(p *int32, name, shorthand string, value int32, usage string) { - CommandLine.VarP(newInt32Value(value, p), name, shorthand, usage) -} - -// Int32 defines an int32 flag with specified name, default value, and usage string. -// The return value is the address of an int32 variable that stores the value of the flag. -func (f *FlagSet) Int32(name string, value int32, usage string) *int32 { - p := new(int32) - f.Int32VarP(p, name, "", value, usage) - return p -} - -// Int32P is like Int32, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Int32P(name, shorthand string, value int32, usage string) *int32 { - p := new(int32) - f.Int32VarP(p, name, shorthand, value, usage) - return p -} - -// Int32 defines an int32 flag with specified name, default value, and usage string. -// The return value is the address of an int32 variable that stores the value of the flag. -func Int32(name string, value int32, usage string) *int32 { - return CommandLine.Int32P(name, "", value, usage) -} - -// Int32P is like Int32, but accepts a shorthand letter that can be used after a single dash. -func Int32P(name, shorthand string, value int32, usage string) *int32 { - return CommandLine.Int32P(name, shorthand, value, usage) -} diff --git a/vendor/github.com/spf13/pflag/int64.go b/vendor/github.com/spf13/pflag/int64.go deleted file mode 100644 index 0026d78..0000000 --- a/vendor/github.com/spf13/pflag/int64.go +++ /dev/null @@ -1,84 +0,0 @@ -package pflag - -import "strconv" - -// -- int64 Value -type int64Value int64 - -func newInt64Value(val int64, p *int64) *int64Value { - *p = val - return (*int64Value)(p) -} - -func (i *int64Value) Set(s string) error { - v, err := strconv.ParseInt(s, 0, 64) - *i = int64Value(v) - return err -} - -func (i *int64Value) Type() string { - return "int64" -} - -func (i *int64Value) String() string { return strconv.FormatInt(int64(*i), 10) } - -func int64Conv(sval string) (interface{}, error) { - return strconv.ParseInt(sval, 0, 64) -} - -// GetInt64 return the int64 value of a flag with the given name -func (f *FlagSet) GetInt64(name string) (int64, error) { - val, err := f.getFlagType(name, "int64", int64Conv) - if err != nil { - return 0, err - } - return val.(int64), nil -} - -// Int64Var defines an int64 flag with specified name, default value, and usage string. -// The argument p points to an int64 variable in which to store the value of the flag. -func (f *FlagSet) Int64Var(p *int64, name string, value int64, usage string) { - f.VarP(newInt64Value(value, p), name, "", usage) -} - -// Int64VarP is like Int64Var, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Int64VarP(p *int64, name, shorthand string, value int64, usage string) { - f.VarP(newInt64Value(value, p), name, shorthand, usage) -} - -// Int64Var defines an int64 flag with specified name, default value, and usage string. -// The argument p points to an int64 variable in which to store the value of the flag. -func Int64Var(p *int64, name string, value int64, usage string) { - CommandLine.VarP(newInt64Value(value, p), name, "", usage) -} - -// Int64VarP is like Int64Var, but accepts a shorthand letter that can be used after a single dash. -func Int64VarP(p *int64, name, shorthand string, value int64, usage string) { - CommandLine.VarP(newInt64Value(value, p), name, shorthand, usage) -} - -// Int64 defines an int64 flag with specified name, default value, and usage string. -// The return value is the address of an int64 variable that stores the value of the flag. -func (f *FlagSet) Int64(name string, value int64, usage string) *int64 { - p := new(int64) - f.Int64VarP(p, name, "", value, usage) - return p -} - -// Int64P is like Int64, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Int64P(name, shorthand string, value int64, usage string) *int64 { - p := new(int64) - f.Int64VarP(p, name, shorthand, value, usage) - return p -} - -// Int64 defines an int64 flag with specified name, default value, and usage string. -// The return value is the address of an int64 variable that stores the value of the flag. -func Int64(name string, value int64, usage string) *int64 { - return CommandLine.Int64P(name, "", value, usage) -} - -// Int64P is like Int64, but accepts a shorthand letter that can be used after a single dash. -func Int64P(name, shorthand string, value int64, usage string) *int64 { - return CommandLine.Int64P(name, shorthand, value, usage) -} diff --git a/vendor/github.com/spf13/pflag/int8.go b/vendor/github.com/spf13/pflag/int8.go deleted file mode 100644 index 4da9222..0000000 --- a/vendor/github.com/spf13/pflag/int8.go +++ /dev/null @@ -1,88 +0,0 @@ -package pflag - -import "strconv" - -// -- int8 Value -type int8Value int8 - -func newInt8Value(val int8, p *int8) *int8Value { - *p = val - return (*int8Value)(p) -} - -func (i *int8Value) Set(s string) error { - v, err := strconv.ParseInt(s, 0, 8) - *i = int8Value(v) - return err -} - -func (i *int8Value) Type() string { - return "int8" -} - -func (i *int8Value) String() string { return strconv.FormatInt(int64(*i), 10) } - -func int8Conv(sval string) (interface{}, error) { - v, err := strconv.ParseInt(sval, 0, 8) - if err != nil { - return 0, err - } - return int8(v), nil -} - -// GetInt8 return the int8 value of a flag with the given name -func (f *FlagSet) GetInt8(name string) (int8, error) { - val, err := f.getFlagType(name, "int8", int8Conv) - if err != nil { - return 0, err - } - return val.(int8), nil -} - -// Int8Var defines an int8 flag with specified name, default value, and usage string. -// The argument p points to an int8 variable in which to store the value of the flag. -func (f *FlagSet) Int8Var(p *int8, name string, value int8, usage string) { - f.VarP(newInt8Value(value, p), name, "", usage) -} - -// Int8VarP is like Int8Var, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Int8VarP(p *int8, name, shorthand string, value int8, usage string) { - f.VarP(newInt8Value(value, p), name, shorthand, usage) -} - -// Int8Var defines an int8 flag with specified name, default value, and usage string. -// The argument p points to an int8 variable in which to store the value of the flag. -func Int8Var(p *int8, name string, value int8, usage string) { - CommandLine.VarP(newInt8Value(value, p), name, "", usage) -} - -// Int8VarP is like Int8Var, but accepts a shorthand letter that can be used after a single dash. -func Int8VarP(p *int8, name, shorthand string, value int8, usage string) { - CommandLine.VarP(newInt8Value(value, p), name, shorthand, usage) -} - -// Int8 defines an int8 flag with specified name, default value, and usage string. -// The return value is the address of an int8 variable that stores the value of the flag. -func (f *FlagSet) Int8(name string, value int8, usage string) *int8 { - p := new(int8) - f.Int8VarP(p, name, "", value, usage) - return p -} - -// Int8P is like Int8, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Int8P(name, shorthand string, value int8, usage string) *int8 { - p := new(int8) - f.Int8VarP(p, name, shorthand, value, usage) - return p -} - -// Int8 defines an int8 flag with specified name, default value, and usage string. -// The return value is the address of an int8 variable that stores the value of the flag. -func Int8(name string, value int8, usage string) *int8 { - return CommandLine.Int8P(name, "", value, usage) -} - -// Int8P is like Int8, but accepts a shorthand letter that can be used after a single dash. -func Int8P(name, shorthand string, value int8, usage string) *int8 { - return CommandLine.Int8P(name, shorthand, value, usage) -} diff --git a/vendor/github.com/spf13/pflag/int_slice.go b/vendor/github.com/spf13/pflag/int_slice.go deleted file mode 100644 index 1e7c9ed..0000000 --- a/vendor/github.com/spf13/pflag/int_slice.go +++ /dev/null @@ -1,128 +0,0 @@ -package pflag - -import ( - "fmt" - "strconv" - "strings" -) - -// -- intSlice Value -type intSliceValue struct { - value *[]int - changed bool -} - -func newIntSliceValue(val []int, p *[]int) *intSliceValue { - isv := new(intSliceValue) - isv.value = p - *isv.value = val - return isv -} - -func (s *intSliceValue) Set(val string) error { - ss := strings.Split(val, ",") - out := make([]int, len(ss)) - for i, d := range ss { - var err error - out[i], err = strconv.Atoi(d) - if err != nil { - return err - } - - } - if !s.changed { - *s.value = out - } else { - *s.value = append(*s.value, out...) - } - s.changed = true - return nil -} - -func (s *intSliceValue) Type() string { - return "intSlice" -} - -func (s *intSliceValue) String() string { - out := make([]string, len(*s.value)) - for i, d := range *s.value { - out[i] = fmt.Sprintf("%d", d) - } - return "[" + strings.Join(out, ",") + "]" -} - -func intSliceConv(val string) (interface{}, error) { - val = strings.Trim(val, "[]") - // Empty string would cause a slice with one (empty) entry - if len(val) == 0 { - return []int{}, nil - } - ss := strings.Split(val, ",") - out := make([]int, len(ss)) - for i, d := range ss { - var err error - out[i], err = strconv.Atoi(d) - if err != nil { - return nil, err - } - - } - return out, nil -} - -// GetIntSlice return the []int value of a flag with the given name -func (f *FlagSet) GetIntSlice(name string) ([]int, error) { - val, err := f.getFlagType(name, "intSlice", intSliceConv) - if err != nil { - return []int{}, err - } - return val.([]int), nil -} - -// IntSliceVar defines a intSlice flag with specified name, default value, and usage string. -// The argument p points to a []int variable in which to store the value of the flag. -func (f *FlagSet) IntSliceVar(p *[]int, name string, value []int, usage string) { - f.VarP(newIntSliceValue(value, p), name, "", usage) -} - -// IntSliceVarP is like IntSliceVar, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) IntSliceVarP(p *[]int, name, shorthand string, value []int, usage string) { - f.VarP(newIntSliceValue(value, p), name, shorthand, usage) -} - -// IntSliceVar defines a int[] flag with specified name, default value, and usage string. -// The argument p points to a int[] variable in which to store the value of the flag. -func IntSliceVar(p *[]int, name string, value []int, usage string) { - CommandLine.VarP(newIntSliceValue(value, p), name, "", usage) -} - -// IntSliceVarP is like IntSliceVar, but accepts a shorthand letter that can be used after a single dash. -func IntSliceVarP(p *[]int, name, shorthand string, value []int, usage string) { - CommandLine.VarP(newIntSliceValue(value, p), name, shorthand, usage) -} - -// IntSlice defines a []int flag with specified name, default value, and usage string. -// The return value is the address of a []int variable that stores the value of the flag. -func (f *FlagSet) IntSlice(name string, value []int, usage string) *[]int { - p := []int{} - f.IntSliceVarP(&p, name, "", value, usage) - return &p -} - -// IntSliceP is like IntSlice, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) IntSliceP(name, shorthand string, value []int, usage string) *[]int { - p := []int{} - f.IntSliceVarP(&p, name, shorthand, value, usage) - return &p -} - -// IntSlice defines a []int flag with specified name, default value, and usage string. -// The return value is the address of a []int variable that stores the value of the flag. -func IntSlice(name string, value []int, usage string) *[]int { - return CommandLine.IntSliceP(name, "", value, usage) -} - -// IntSliceP is like IntSlice, but accepts a shorthand letter that can be used after a single dash. -func IntSliceP(name, shorthand string, value []int, usage string) *[]int { - return CommandLine.IntSliceP(name, shorthand, value, usage) -} diff --git a/vendor/github.com/spf13/pflag/ip.go b/vendor/github.com/spf13/pflag/ip.go deleted file mode 100644 index 3d414ba..0000000 --- a/vendor/github.com/spf13/pflag/ip.go +++ /dev/null @@ -1,94 +0,0 @@ -package pflag - -import ( - "fmt" - "net" - "strings" -) - -// -- net.IP value -type ipValue net.IP - -func newIPValue(val net.IP, p *net.IP) *ipValue { - *p = val - return (*ipValue)(p) -} - -func (i *ipValue) String() string { return net.IP(*i).String() } -func (i *ipValue) Set(s string) error { - ip := net.ParseIP(strings.TrimSpace(s)) - if ip == nil { - return fmt.Errorf("failed to parse IP: %q", s) - } - *i = ipValue(ip) - return nil -} - -func (i *ipValue) Type() string { - return "ip" -} - -func ipConv(sval string) (interface{}, error) { - ip := net.ParseIP(sval) - if ip != nil { - return ip, nil - } - return nil, fmt.Errorf("invalid string being converted to IP address: %s", sval) -} - -// GetIP return the net.IP value of a flag with the given name -func (f *FlagSet) GetIP(name string) (net.IP, error) { - val, err := f.getFlagType(name, "ip", ipConv) - if err != nil { - return nil, err - } - return val.(net.IP), nil -} - -// IPVar defines an net.IP flag with specified name, default value, and usage string. -// The argument p points to an net.IP variable in which to store the value of the flag. -func (f *FlagSet) IPVar(p *net.IP, name string, value net.IP, usage string) { - f.VarP(newIPValue(value, p), name, "", usage) -} - -// IPVarP is like IPVar, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) IPVarP(p *net.IP, name, shorthand string, value net.IP, usage string) { - f.VarP(newIPValue(value, p), name, shorthand, usage) -} - -// IPVar defines an net.IP flag with specified name, default value, and usage string. -// The argument p points to an net.IP variable in which to store the value of the flag. -func IPVar(p *net.IP, name string, value net.IP, usage string) { - CommandLine.VarP(newIPValue(value, p), name, "", usage) -} - -// IPVarP is like IPVar, but accepts a shorthand letter that can be used after a single dash. -func IPVarP(p *net.IP, name, shorthand string, value net.IP, usage string) { - CommandLine.VarP(newIPValue(value, p), name, shorthand, usage) -} - -// IP defines an net.IP flag with specified name, default value, and usage string. -// The return value is the address of an net.IP variable that stores the value of the flag. -func (f *FlagSet) IP(name string, value net.IP, usage string) *net.IP { - p := new(net.IP) - f.IPVarP(p, name, "", value, usage) - return p -} - -// IPP is like IP, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) IPP(name, shorthand string, value net.IP, usage string) *net.IP { - p := new(net.IP) - f.IPVarP(p, name, shorthand, value, usage) - return p -} - -// IP defines an net.IP flag with specified name, default value, and usage string. -// The return value is the address of an net.IP variable that stores the value of the flag. -func IP(name string, value net.IP, usage string) *net.IP { - return CommandLine.IPP(name, "", value, usage) -} - -// IPP is like IP, but accepts a shorthand letter that can be used after a single dash. -func IPP(name, shorthand string, value net.IP, usage string) *net.IP { - return CommandLine.IPP(name, shorthand, value, usage) -} diff --git a/vendor/github.com/spf13/pflag/ip_slice.go b/vendor/github.com/spf13/pflag/ip_slice.go deleted file mode 100644 index 7dd196f..0000000 --- a/vendor/github.com/spf13/pflag/ip_slice.go +++ /dev/null @@ -1,148 +0,0 @@ -package pflag - -import ( - "fmt" - "io" - "net" - "strings" -) - -// -- ipSlice Value -type ipSliceValue struct { - value *[]net.IP - changed bool -} - -func newIPSliceValue(val []net.IP, p *[]net.IP) *ipSliceValue { - ipsv := new(ipSliceValue) - ipsv.value = p - *ipsv.value = val - return ipsv -} - -// Set converts, and assigns, the comma-separated IP argument string representation as the []net.IP value of this flag. -// If Set is called on a flag that already has a []net.IP assigned, the newly converted values will be appended. -func (s *ipSliceValue) Set(val string) error { - - // remove all quote characters - rmQuote := strings.NewReplacer(`"`, "", `'`, "", "`", "") - - // read flag arguments with CSV parser - ipStrSlice, err := readAsCSV(rmQuote.Replace(val)) - if err != nil && err != io.EOF { - return err - } - - // parse ip values into slice - out := make([]net.IP, 0, len(ipStrSlice)) - for _, ipStr := range ipStrSlice { - ip := net.ParseIP(strings.TrimSpace(ipStr)) - if ip == nil { - return fmt.Errorf("invalid string being converted to IP address: %s", ipStr) - } - out = append(out, ip) - } - - if !s.changed { - *s.value = out - } else { - *s.value = append(*s.value, out...) - } - - s.changed = true - - return nil -} - -// Type returns a string that uniquely represents this flag's type. -func (s *ipSliceValue) Type() string { - return "ipSlice" -} - -// String defines a "native" format for this net.IP slice flag value. -func (s *ipSliceValue) String() string { - - ipStrSlice := make([]string, len(*s.value)) - for i, ip := range *s.value { - ipStrSlice[i] = ip.String() - } - - out, _ := writeAsCSV(ipStrSlice) - - return "[" + out + "]" -} - -func ipSliceConv(val string) (interface{}, error) { - val = strings.Trim(val, "[]") - // Emtpy string would cause a slice with one (empty) entry - if len(val) == 0 { - return []net.IP{}, nil - } - ss := strings.Split(val, ",") - out := make([]net.IP, len(ss)) - for i, sval := range ss { - ip := net.ParseIP(strings.TrimSpace(sval)) - if ip == nil { - return nil, fmt.Errorf("invalid string being converted to IP address: %s", sval) - } - out[i] = ip - } - return out, nil -} - -// GetIPSlice returns the []net.IP value of a flag with the given name -func (f *FlagSet) GetIPSlice(name string) ([]net.IP, error) { - val, err := f.getFlagType(name, "ipSlice", ipSliceConv) - if err != nil { - return []net.IP{}, err - } - return val.([]net.IP), nil -} - -// IPSliceVar defines a ipSlice flag with specified name, default value, and usage string. -// The argument p points to a []net.IP variable in which to store the value of the flag. -func (f *FlagSet) IPSliceVar(p *[]net.IP, name string, value []net.IP, usage string) { - f.VarP(newIPSliceValue(value, p), name, "", usage) -} - -// IPSliceVarP is like IPSliceVar, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) IPSliceVarP(p *[]net.IP, name, shorthand string, value []net.IP, usage string) { - f.VarP(newIPSliceValue(value, p), name, shorthand, usage) -} - -// IPSliceVar defines a []net.IP flag with specified name, default value, and usage string. -// The argument p points to a []net.IP variable in which to store the value of the flag. -func IPSliceVar(p *[]net.IP, name string, value []net.IP, usage string) { - CommandLine.VarP(newIPSliceValue(value, p), name, "", usage) -} - -// IPSliceVarP is like IPSliceVar, but accepts a shorthand letter that can be used after a single dash. -func IPSliceVarP(p *[]net.IP, name, shorthand string, value []net.IP, usage string) { - CommandLine.VarP(newIPSliceValue(value, p), name, shorthand, usage) -} - -// IPSlice defines a []net.IP flag with specified name, default value, and usage string. -// The return value is the address of a []net.IP variable that stores the value of that flag. -func (f *FlagSet) IPSlice(name string, value []net.IP, usage string) *[]net.IP { - p := []net.IP{} - f.IPSliceVarP(&p, name, "", value, usage) - return &p -} - -// IPSliceP is like IPSlice, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) IPSliceP(name, shorthand string, value []net.IP, usage string) *[]net.IP { - p := []net.IP{} - f.IPSliceVarP(&p, name, shorthand, value, usage) - return &p -} - -// IPSlice defines a []net.IP flag with specified name, default value, and usage string. -// The return value is the address of a []net.IP variable that stores the value of the flag. -func IPSlice(name string, value []net.IP, usage string) *[]net.IP { - return CommandLine.IPSliceP(name, "", value, usage) -} - -// IPSliceP is like IPSlice, but accepts a shorthand letter that can be used after a single dash. -func IPSliceP(name, shorthand string, value []net.IP, usage string) *[]net.IP { - return CommandLine.IPSliceP(name, shorthand, value, usage) -} diff --git a/vendor/github.com/spf13/pflag/ipmask.go b/vendor/github.com/spf13/pflag/ipmask.go deleted file mode 100644 index 5bd44bd..0000000 --- a/vendor/github.com/spf13/pflag/ipmask.go +++ /dev/null @@ -1,122 +0,0 @@ -package pflag - -import ( - "fmt" - "net" - "strconv" -) - -// -- net.IPMask value -type ipMaskValue net.IPMask - -func newIPMaskValue(val net.IPMask, p *net.IPMask) *ipMaskValue { - *p = val - return (*ipMaskValue)(p) -} - -func (i *ipMaskValue) String() string { return net.IPMask(*i).String() } -func (i *ipMaskValue) Set(s string) error { - ip := ParseIPv4Mask(s) - if ip == nil { - return fmt.Errorf("failed to parse IP mask: %q", s) - } - *i = ipMaskValue(ip) - return nil -} - -func (i *ipMaskValue) Type() string { - return "ipMask" -} - -// ParseIPv4Mask written in IP form (e.g. 255.255.255.0). -// This function should really belong to the net package. -func ParseIPv4Mask(s string) net.IPMask { - mask := net.ParseIP(s) - if mask == nil { - if len(s) != 8 { - return nil - } - // net.IPMask.String() actually outputs things like ffffff00 - // so write a horrible parser for that as well :-( - m := []int{} - for i := 0; i < 4; i++ { - b := "0x" + s[2*i:2*i+2] - d, err := strconv.ParseInt(b, 0, 0) - if err != nil { - return nil - } - m = append(m, int(d)) - } - s := fmt.Sprintf("%d.%d.%d.%d", m[0], m[1], m[2], m[3]) - mask = net.ParseIP(s) - if mask == nil { - return nil - } - } - return net.IPv4Mask(mask[12], mask[13], mask[14], mask[15]) -} - -func parseIPv4Mask(sval string) (interface{}, error) { - mask := ParseIPv4Mask(sval) - if mask == nil { - return nil, fmt.Errorf("unable to parse %s as net.IPMask", sval) - } - return mask, nil -} - -// GetIPv4Mask return the net.IPv4Mask value of a flag with the given name -func (f *FlagSet) GetIPv4Mask(name string) (net.IPMask, error) { - val, err := f.getFlagType(name, "ipMask", parseIPv4Mask) - if err != nil { - return nil, err - } - return val.(net.IPMask), nil -} - -// IPMaskVar defines an net.IPMask flag with specified name, default value, and usage string. -// The argument p points to an net.IPMask variable in which to store the value of the flag. -func (f *FlagSet) IPMaskVar(p *net.IPMask, name string, value net.IPMask, usage string) { - f.VarP(newIPMaskValue(value, p), name, "", usage) -} - -// IPMaskVarP is like IPMaskVar, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) IPMaskVarP(p *net.IPMask, name, shorthand string, value net.IPMask, usage string) { - f.VarP(newIPMaskValue(value, p), name, shorthand, usage) -} - -// IPMaskVar defines an net.IPMask flag with specified name, default value, and usage string. -// The argument p points to an net.IPMask variable in which to store the value of the flag. -func IPMaskVar(p *net.IPMask, name string, value net.IPMask, usage string) { - CommandLine.VarP(newIPMaskValue(value, p), name, "", usage) -} - -// IPMaskVarP is like IPMaskVar, but accepts a shorthand letter that can be used after a single dash. -func IPMaskVarP(p *net.IPMask, name, shorthand string, value net.IPMask, usage string) { - CommandLine.VarP(newIPMaskValue(value, p), name, shorthand, usage) -} - -// IPMask defines an net.IPMask flag with specified name, default value, and usage string. -// The return value is the address of an net.IPMask variable that stores the value of the flag. -func (f *FlagSet) IPMask(name string, value net.IPMask, usage string) *net.IPMask { - p := new(net.IPMask) - f.IPMaskVarP(p, name, "", value, usage) - return p -} - -// IPMaskP is like IPMask, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) IPMaskP(name, shorthand string, value net.IPMask, usage string) *net.IPMask { - p := new(net.IPMask) - f.IPMaskVarP(p, name, shorthand, value, usage) - return p -} - -// IPMask defines an net.IPMask flag with specified name, default value, and usage string. -// The return value is the address of an net.IPMask variable that stores the value of the flag. -func IPMask(name string, value net.IPMask, usage string) *net.IPMask { - return CommandLine.IPMaskP(name, "", value, usage) -} - -// IPMaskP is like IP, but accepts a shorthand letter that can be used after a single dash. -func IPMaskP(name, shorthand string, value net.IPMask, usage string) *net.IPMask { - return CommandLine.IPMaskP(name, shorthand, value, usage) -} diff --git a/vendor/github.com/spf13/pflag/ipnet.go b/vendor/github.com/spf13/pflag/ipnet.go deleted file mode 100644 index e2c1b8b..0000000 --- a/vendor/github.com/spf13/pflag/ipnet.go +++ /dev/null @@ -1,98 +0,0 @@ -package pflag - -import ( - "fmt" - "net" - "strings" -) - -// IPNet adapts net.IPNet for use as a flag. -type ipNetValue net.IPNet - -func (ipnet ipNetValue) String() string { - n := net.IPNet(ipnet) - return n.String() -} - -func (ipnet *ipNetValue) Set(value string) error { - _, n, err := net.ParseCIDR(strings.TrimSpace(value)) - if err != nil { - return err - } - *ipnet = ipNetValue(*n) - return nil -} - -func (*ipNetValue) Type() string { - return "ipNet" -} - -func newIPNetValue(val net.IPNet, p *net.IPNet) *ipNetValue { - *p = val - return (*ipNetValue)(p) -} - -func ipNetConv(sval string) (interface{}, error) { - _, n, err := net.ParseCIDR(strings.TrimSpace(sval)) - if err == nil { - return *n, nil - } - return nil, fmt.Errorf("invalid string being converted to IPNet: %s", sval) -} - -// GetIPNet return the net.IPNet value of a flag with the given name -func (f *FlagSet) GetIPNet(name string) (net.IPNet, error) { - val, err := f.getFlagType(name, "ipNet", ipNetConv) - if err != nil { - return net.IPNet{}, err - } - return val.(net.IPNet), nil -} - -// IPNetVar defines an net.IPNet flag with specified name, default value, and usage string. -// The argument p points to an net.IPNet variable in which to store the value of the flag. -func (f *FlagSet) IPNetVar(p *net.IPNet, name string, value net.IPNet, usage string) { - f.VarP(newIPNetValue(value, p), name, "", usage) -} - -// IPNetVarP is like IPNetVar, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) IPNetVarP(p *net.IPNet, name, shorthand string, value net.IPNet, usage string) { - f.VarP(newIPNetValue(value, p), name, shorthand, usage) -} - -// IPNetVar defines an net.IPNet flag with specified name, default value, and usage string. -// The argument p points to an net.IPNet variable in which to store the value of the flag. -func IPNetVar(p *net.IPNet, name string, value net.IPNet, usage string) { - CommandLine.VarP(newIPNetValue(value, p), name, "", usage) -} - -// IPNetVarP is like IPNetVar, but accepts a shorthand letter that can be used after a single dash. -func IPNetVarP(p *net.IPNet, name, shorthand string, value net.IPNet, usage string) { - CommandLine.VarP(newIPNetValue(value, p), name, shorthand, usage) -} - -// IPNet defines an net.IPNet flag with specified name, default value, and usage string. -// The return value is the address of an net.IPNet variable that stores the value of the flag. -func (f *FlagSet) IPNet(name string, value net.IPNet, usage string) *net.IPNet { - p := new(net.IPNet) - f.IPNetVarP(p, name, "", value, usage) - return p -} - -// IPNetP is like IPNet, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) IPNetP(name, shorthand string, value net.IPNet, usage string) *net.IPNet { - p := new(net.IPNet) - f.IPNetVarP(p, name, shorthand, value, usage) - return p -} - -// IPNet defines an net.IPNet flag with specified name, default value, and usage string. -// The return value is the address of an net.IPNet variable that stores the value of the flag. -func IPNet(name string, value net.IPNet, usage string) *net.IPNet { - return CommandLine.IPNetP(name, "", value, usage) -} - -// IPNetP is like IPNet, but accepts a shorthand letter that can be used after a single dash. -func IPNetP(name, shorthand string, value net.IPNet, usage string) *net.IPNet { - return CommandLine.IPNetP(name, shorthand, value, usage) -} diff --git a/vendor/github.com/spf13/pflag/string.go b/vendor/github.com/spf13/pflag/string.go deleted file mode 100644 index 04e0a26..0000000 --- a/vendor/github.com/spf13/pflag/string.go +++ /dev/null @@ -1,80 +0,0 @@ -package pflag - -// -- string Value -type stringValue string - -func newStringValue(val string, p *string) *stringValue { - *p = val - return (*stringValue)(p) -} - -func (s *stringValue) Set(val string) error { - *s = stringValue(val) - return nil -} -func (s *stringValue) Type() string { - return "string" -} - -func (s *stringValue) String() string { return string(*s) } - -func stringConv(sval string) (interface{}, error) { - return sval, nil -} - -// GetString return the string value of a flag with the given name -func (f *FlagSet) GetString(name string) (string, error) { - val, err := f.getFlagType(name, "string", stringConv) - if err != nil { - return "", err - } - return val.(string), nil -} - -// StringVar defines a string flag with specified name, default value, and usage string. -// The argument p points to a string variable in which to store the value of the flag. -func (f *FlagSet) StringVar(p *string, name string, value string, usage string) { - f.VarP(newStringValue(value, p), name, "", usage) -} - -// StringVarP is like StringVar, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) StringVarP(p *string, name, shorthand string, value string, usage string) { - f.VarP(newStringValue(value, p), name, shorthand, usage) -} - -// StringVar defines a string flag with specified name, default value, and usage string. -// The argument p points to a string variable in which to store the value of the flag. -func StringVar(p *string, name string, value string, usage string) { - CommandLine.VarP(newStringValue(value, p), name, "", usage) -} - -// StringVarP is like StringVar, but accepts a shorthand letter that can be used after a single dash. -func StringVarP(p *string, name, shorthand string, value string, usage string) { - CommandLine.VarP(newStringValue(value, p), name, shorthand, usage) -} - -// String defines a string flag with specified name, default value, and usage string. -// The return value is the address of a string variable that stores the value of the flag. -func (f *FlagSet) String(name string, value string, usage string) *string { - p := new(string) - f.StringVarP(p, name, "", value, usage) - return p -} - -// StringP is like String, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) StringP(name, shorthand string, value string, usage string) *string { - p := new(string) - f.StringVarP(p, name, shorthand, value, usage) - return p -} - -// String defines a string flag with specified name, default value, and usage string. -// The return value is the address of a string variable that stores the value of the flag. -func String(name string, value string, usage string) *string { - return CommandLine.StringP(name, "", value, usage) -} - -// StringP is like String, but accepts a shorthand letter that can be used after a single dash. -func StringP(name, shorthand string, value string, usage string) *string { - return CommandLine.StringP(name, shorthand, value, usage) -} diff --git a/vendor/github.com/spf13/pflag/string_array.go b/vendor/github.com/spf13/pflag/string_array.go deleted file mode 100644 index 276b7ed..0000000 --- a/vendor/github.com/spf13/pflag/string_array.go +++ /dev/null @@ -1,103 +0,0 @@ -package pflag - -// -- stringArray Value -type stringArrayValue struct { - value *[]string - changed bool -} - -func newStringArrayValue(val []string, p *[]string) *stringArrayValue { - ssv := new(stringArrayValue) - ssv.value = p - *ssv.value = val - return ssv -} - -func (s *stringArrayValue) Set(val string) error { - if !s.changed { - *s.value = []string{val} - s.changed = true - } else { - *s.value = append(*s.value, val) - } - return nil -} - -func (s *stringArrayValue) Type() string { - return "stringArray" -} - -func (s *stringArrayValue) String() string { - str, _ := writeAsCSV(*s.value) - return "[" + str + "]" -} - -func stringArrayConv(sval string) (interface{}, error) { - sval = sval[1 : len(sval)-1] - // An empty string would cause a array with one (empty) string - if len(sval) == 0 { - return []string{}, nil - } - return readAsCSV(sval) -} - -// GetStringArray return the []string value of a flag with the given name -func (f *FlagSet) GetStringArray(name string) ([]string, error) { - val, err := f.getFlagType(name, "stringArray", stringArrayConv) - if err != nil { - return []string{}, err - } - return val.([]string), nil -} - -// StringArrayVar defines a string flag with specified name, default value, and usage string. -// The argument p points to a []string variable in which to store the values of the multiple flags. -// The value of each argument will not try to be separated by comma -func (f *FlagSet) StringArrayVar(p *[]string, name string, value []string, usage string) { - f.VarP(newStringArrayValue(value, p), name, "", usage) -} - -// StringArrayVarP is like StringArrayVar, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) StringArrayVarP(p *[]string, name, shorthand string, value []string, usage string) { - f.VarP(newStringArrayValue(value, p), name, shorthand, usage) -} - -// StringArrayVar defines a string flag with specified name, default value, and usage string. -// The argument p points to a []string variable in which to store the value of the flag. -// The value of each argument will not try to be separated by comma -func StringArrayVar(p *[]string, name string, value []string, usage string) { - CommandLine.VarP(newStringArrayValue(value, p), name, "", usage) -} - -// StringArrayVarP is like StringArrayVar, but accepts a shorthand letter that can be used after a single dash. -func StringArrayVarP(p *[]string, name, shorthand string, value []string, usage string) { - CommandLine.VarP(newStringArrayValue(value, p), name, shorthand, usage) -} - -// StringArray defines a string flag with specified name, default value, and usage string. -// The return value is the address of a []string variable that stores the value of the flag. -// The value of each argument will not try to be separated by comma -func (f *FlagSet) StringArray(name string, value []string, usage string) *[]string { - p := []string{} - f.StringArrayVarP(&p, name, "", value, usage) - return &p -} - -// StringArrayP is like StringArray, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) StringArrayP(name, shorthand string, value []string, usage string) *[]string { - p := []string{} - f.StringArrayVarP(&p, name, shorthand, value, usage) - return &p -} - -// StringArray defines a string flag with specified name, default value, and usage string. -// The return value is the address of a []string variable that stores the value of the flag. -// The value of each argument will not try to be separated by comma -func StringArray(name string, value []string, usage string) *[]string { - return CommandLine.StringArrayP(name, "", value, usage) -} - -// StringArrayP is like StringArray, but accepts a shorthand letter that can be used after a single dash. -func StringArrayP(name, shorthand string, value []string, usage string) *[]string { - return CommandLine.StringArrayP(name, shorthand, value, usage) -} diff --git a/vendor/github.com/spf13/pflag/string_slice.go b/vendor/github.com/spf13/pflag/string_slice.go deleted file mode 100644 index 05eee75..0000000 --- a/vendor/github.com/spf13/pflag/string_slice.go +++ /dev/null @@ -1,129 +0,0 @@ -package pflag - -import ( - "bytes" - "encoding/csv" - "strings" -) - -// -- stringSlice Value -type stringSliceValue struct { - value *[]string - changed bool -} - -func newStringSliceValue(val []string, p *[]string) *stringSliceValue { - ssv := new(stringSliceValue) - ssv.value = p - *ssv.value = val - return ssv -} - -func readAsCSV(val string) ([]string, error) { - if val == "" { - return []string{}, nil - } - stringReader := strings.NewReader(val) - csvReader := csv.NewReader(stringReader) - return csvReader.Read() -} - -func writeAsCSV(vals []string) (string, error) { - b := &bytes.Buffer{} - w := csv.NewWriter(b) - err := w.Write(vals) - if err != nil { - return "", err - } - w.Flush() - return strings.TrimSuffix(b.String(), "\n"), nil -} - -func (s *stringSliceValue) Set(val string) error { - v, err := readAsCSV(val) - if err != nil { - return err - } - if !s.changed { - *s.value = v - } else { - *s.value = append(*s.value, v...) - } - s.changed = true - return nil -} - -func (s *stringSliceValue) Type() string { - return "stringSlice" -} - -func (s *stringSliceValue) String() string { - str, _ := writeAsCSV(*s.value) - return "[" + str + "]" -} - -func stringSliceConv(sval string) (interface{}, error) { - sval = sval[1 : len(sval)-1] - // An empty string would cause a slice with one (empty) string - if len(sval) == 0 { - return []string{}, nil - } - return readAsCSV(sval) -} - -// GetStringSlice return the []string value of a flag with the given name -func (f *FlagSet) GetStringSlice(name string) ([]string, error) { - val, err := f.getFlagType(name, "stringSlice", stringSliceConv) - if err != nil { - return []string{}, err - } - return val.([]string), nil -} - -// StringSliceVar defines a string flag with specified name, default value, and usage string. -// The argument p points to a []string variable in which to store the value of the flag. -func (f *FlagSet) StringSliceVar(p *[]string, name string, value []string, usage string) { - f.VarP(newStringSliceValue(value, p), name, "", usage) -} - -// StringSliceVarP is like StringSliceVar, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) StringSliceVarP(p *[]string, name, shorthand string, value []string, usage string) { - f.VarP(newStringSliceValue(value, p), name, shorthand, usage) -} - -// StringSliceVar defines a string flag with specified name, default value, and usage string. -// The argument p points to a []string variable in which to store the value of the flag. -func StringSliceVar(p *[]string, name string, value []string, usage string) { - CommandLine.VarP(newStringSliceValue(value, p), name, "", usage) -} - -// StringSliceVarP is like StringSliceVar, but accepts a shorthand letter that can be used after a single dash. -func StringSliceVarP(p *[]string, name, shorthand string, value []string, usage string) { - CommandLine.VarP(newStringSliceValue(value, p), name, shorthand, usage) -} - -// StringSlice defines a string flag with specified name, default value, and usage string. -// The return value is the address of a []string variable that stores the value of the flag. -func (f *FlagSet) StringSlice(name string, value []string, usage string) *[]string { - p := []string{} - f.StringSliceVarP(&p, name, "", value, usage) - return &p -} - -// StringSliceP is like StringSlice, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) StringSliceP(name, shorthand string, value []string, usage string) *[]string { - p := []string{} - f.StringSliceVarP(&p, name, shorthand, value, usage) - return &p -} - -// StringSlice defines a string flag with specified name, default value, and usage string. -// The return value is the address of a []string variable that stores the value of the flag. -func StringSlice(name string, value []string, usage string) *[]string { - return CommandLine.StringSliceP(name, "", value, usage) -} - -// StringSliceP is like StringSlice, but accepts a shorthand letter that can be used after a single dash. -func StringSliceP(name, shorthand string, value []string, usage string) *[]string { - return CommandLine.StringSliceP(name, shorthand, value, usage) -} diff --git a/vendor/github.com/spf13/pflag/uint.go b/vendor/github.com/spf13/pflag/uint.go deleted file mode 100644 index dcbc2b7..0000000 --- a/vendor/github.com/spf13/pflag/uint.go +++ /dev/null @@ -1,88 +0,0 @@ -package pflag - -import "strconv" - -// -- uint Value -type uintValue uint - -func newUintValue(val uint, p *uint) *uintValue { - *p = val - return (*uintValue)(p) -} - -func (i *uintValue) Set(s string) error { - v, err := strconv.ParseUint(s, 0, 64) - *i = uintValue(v) - return err -} - -func (i *uintValue) Type() string { - return "uint" -} - -func (i *uintValue) String() string { return strconv.FormatUint(uint64(*i), 10) } - -func uintConv(sval string) (interface{}, error) { - v, err := strconv.ParseUint(sval, 0, 0) - if err != nil { - return 0, err - } - return uint(v), nil -} - -// GetUint return the uint value of a flag with the given name -func (f *FlagSet) GetUint(name string) (uint, error) { - val, err := f.getFlagType(name, "uint", uintConv) - if err != nil { - return 0, err - } - return val.(uint), nil -} - -// UintVar defines a uint flag with specified name, default value, and usage string. -// The argument p points to a uint variable in which to store the value of the flag. -func (f *FlagSet) UintVar(p *uint, name string, value uint, usage string) { - f.VarP(newUintValue(value, p), name, "", usage) -} - -// UintVarP is like UintVar, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) UintVarP(p *uint, name, shorthand string, value uint, usage string) { - f.VarP(newUintValue(value, p), name, shorthand, usage) -} - -// UintVar defines a uint flag with specified name, default value, and usage string. -// The argument p points to a uint variable in which to store the value of the flag. -func UintVar(p *uint, name string, value uint, usage string) { - CommandLine.VarP(newUintValue(value, p), name, "", usage) -} - -// UintVarP is like UintVar, but accepts a shorthand letter that can be used after a single dash. -func UintVarP(p *uint, name, shorthand string, value uint, usage string) { - CommandLine.VarP(newUintValue(value, p), name, shorthand, usage) -} - -// Uint defines a uint flag with specified name, default value, and usage string. -// The return value is the address of a uint variable that stores the value of the flag. -func (f *FlagSet) Uint(name string, value uint, usage string) *uint { - p := new(uint) - f.UintVarP(p, name, "", value, usage) - return p -} - -// UintP is like Uint, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) UintP(name, shorthand string, value uint, usage string) *uint { - p := new(uint) - f.UintVarP(p, name, shorthand, value, usage) - return p -} - -// Uint defines a uint flag with specified name, default value, and usage string. -// The return value is the address of a uint variable that stores the value of the flag. -func Uint(name string, value uint, usage string) *uint { - return CommandLine.UintP(name, "", value, usage) -} - -// UintP is like Uint, but accepts a shorthand letter that can be used after a single dash. -func UintP(name, shorthand string, value uint, usage string) *uint { - return CommandLine.UintP(name, shorthand, value, usage) -} diff --git a/vendor/github.com/spf13/pflag/uint16.go b/vendor/github.com/spf13/pflag/uint16.go deleted file mode 100644 index 7e9914e..0000000 --- a/vendor/github.com/spf13/pflag/uint16.go +++ /dev/null @@ -1,88 +0,0 @@ -package pflag - -import "strconv" - -// -- uint16 value -type uint16Value uint16 - -func newUint16Value(val uint16, p *uint16) *uint16Value { - *p = val - return (*uint16Value)(p) -} - -func (i *uint16Value) Set(s string) error { - v, err := strconv.ParseUint(s, 0, 16) - *i = uint16Value(v) - return err -} - -func (i *uint16Value) Type() string { - return "uint16" -} - -func (i *uint16Value) String() string { return strconv.FormatUint(uint64(*i), 10) } - -func uint16Conv(sval string) (interface{}, error) { - v, err := strconv.ParseUint(sval, 0, 16) - if err != nil { - return 0, err - } - return uint16(v), nil -} - -// GetUint16 return the uint16 value of a flag with the given name -func (f *FlagSet) GetUint16(name string) (uint16, error) { - val, err := f.getFlagType(name, "uint16", uint16Conv) - if err != nil { - return 0, err - } - return val.(uint16), nil -} - -// Uint16Var defines a uint flag with specified name, default value, and usage string. -// The argument p points to a uint variable in which to store the value of the flag. -func (f *FlagSet) Uint16Var(p *uint16, name string, value uint16, usage string) { - f.VarP(newUint16Value(value, p), name, "", usage) -} - -// Uint16VarP is like Uint16Var, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Uint16VarP(p *uint16, name, shorthand string, value uint16, usage string) { - f.VarP(newUint16Value(value, p), name, shorthand, usage) -} - -// Uint16Var defines a uint flag with specified name, default value, and usage string. -// The argument p points to a uint variable in which to store the value of the flag. -func Uint16Var(p *uint16, name string, value uint16, usage string) { - CommandLine.VarP(newUint16Value(value, p), name, "", usage) -} - -// Uint16VarP is like Uint16Var, but accepts a shorthand letter that can be used after a single dash. -func Uint16VarP(p *uint16, name, shorthand string, value uint16, usage string) { - CommandLine.VarP(newUint16Value(value, p), name, shorthand, usage) -} - -// Uint16 defines a uint flag with specified name, default value, and usage string. -// The return value is the address of a uint variable that stores the value of the flag. -func (f *FlagSet) Uint16(name string, value uint16, usage string) *uint16 { - p := new(uint16) - f.Uint16VarP(p, name, "", value, usage) - return p -} - -// Uint16P is like Uint16, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Uint16P(name, shorthand string, value uint16, usage string) *uint16 { - p := new(uint16) - f.Uint16VarP(p, name, shorthand, value, usage) - return p -} - -// Uint16 defines a uint flag with specified name, default value, and usage string. -// The return value is the address of a uint variable that stores the value of the flag. -func Uint16(name string, value uint16, usage string) *uint16 { - return CommandLine.Uint16P(name, "", value, usage) -} - -// Uint16P is like Uint16, but accepts a shorthand letter that can be used after a single dash. -func Uint16P(name, shorthand string, value uint16, usage string) *uint16 { - return CommandLine.Uint16P(name, shorthand, value, usage) -} diff --git a/vendor/github.com/spf13/pflag/uint32.go b/vendor/github.com/spf13/pflag/uint32.go deleted file mode 100644 index d802453..0000000 --- a/vendor/github.com/spf13/pflag/uint32.go +++ /dev/null @@ -1,88 +0,0 @@ -package pflag - -import "strconv" - -// -- uint32 value -type uint32Value uint32 - -func newUint32Value(val uint32, p *uint32) *uint32Value { - *p = val - return (*uint32Value)(p) -} - -func (i *uint32Value) Set(s string) error { - v, err := strconv.ParseUint(s, 0, 32) - *i = uint32Value(v) - return err -} - -func (i *uint32Value) Type() string { - return "uint32" -} - -func (i *uint32Value) String() string { return strconv.FormatUint(uint64(*i), 10) } - -func uint32Conv(sval string) (interface{}, error) { - v, err := strconv.ParseUint(sval, 0, 32) - if err != nil { - return 0, err - } - return uint32(v), nil -} - -// GetUint32 return the uint32 value of a flag with the given name -func (f *FlagSet) GetUint32(name string) (uint32, error) { - val, err := f.getFlagType(name, "uint32", uint32Conv) - if err != nil { - return 0, err - } - return val.(uint32), nil -} - -// Uint32Var defines a uint32 flag with specified name, default value, and usage string. -// The argument p points to a uint32 variable in which to store the value of the flag. -func (f *FlagSet) Uint32Var(p *uint32, name string, value uint32, usage string) { - f.VarP(newUint32Value(value, p), name, "", usage) -} - -// Uint32VarP is like Uint32Var, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Uint32VarP(p *uint32, name, shorthand string, value uint32, usage string) { - f.VarP(newUint32Value(value, p), name, shorthand, usage) -} - -// Uint32Var defines a uint32 flag with specified name, default value, and usage string. -// The argument p points to a uint32 variable in which to store the value of the flag. -func Uint32Var(p *uint32, name string, value uint32, usage string) { - CommandLine.VarP(newUint32Value(value, p), name, "", usage) -} - -// Uint32VarP is like Uint32Var, but accepts a shorthand letter that can be used after a single dash. -func Uint32VarP(p *uint32, name, shorthand string, value uint32, usage string) { - CommandLine.VarP(newUint32Value(value, p), name, shorthand, usage) -} - -// Uint32 defines a uint32 flag with specified name, default value, and usage string. -// The return value is the address of a uint32 variable that stores the value of the flag. -func (f *FlagSet) Uint32(name string, value uint32, usage string) *uint32 { - p := new(uint32) - f.Uint32VarP(p, name, "", value, usage) - return p -} - -// Uint32P is like Uint32, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Uint32P(name, shorthand string, value uint32, usage string) *uint32 { - p := new(uint32) - f.Uint32VarP(p, name, shorthand, value, usage) - return p -} - -// Uint32 defines a uint32 flag with specified name, default value, and usage string. -// The return value is the address of a uint32 variable that stores the value of the flag. -func Uint32(name string, value uint32, usage string) *uint32 { - return CommandLine.Uint32P(name, "", value, usage) -} - -// Uint32P is like Uint32, but accepts a shorthand letter that can be used after a single dash. -func Uint32P(name, shorthand string, value uint32, usage string) *uint32 { - return CommandLine.Uint32P(name, shorthand, value, usage) -} diff --git a/vendor/github.com/spf13/pflag/uint64.go b/vendor/github.com/spf13/pflag/uint64.go deleted file mode 100644 index f62240f..0000000 --- a/vendor/github.com/spf13/pflag/uint64.go +++ /dev/null @@ -1,88 +0,0 @@ -package pflag - -import "strconv" - -// -- uint64 Value -type uint64Value uint64 - -func newUint64Value(val uint64, p *uint64) *uint64Value { - *p = val - return (*uint64Value)(p) -} - -func (i *uint64Value) Set(s string) error { - v, err := strconv.ParseUint(s, 0, 64) - *i = uint64Value(v) - return err -} - -func (i *uint64Value) Type() string { - return "uint64" -} - -func (i *uint64Value) String() string { return strconv.FormatUint(uint64(*i), 10) } - -func uint64Conv(sval string) (interface{}, error) { - v, err := strconv.ParseUint(sval, 0, 64) - if err != nil { - return 0, err - } - return uint64(v), nil -} - -// GetUint64 return the uint64 value of a flag with the given name -func (f *FlagSet) GetUint64(name string) (uint64, error) { - val, err := f.getFlagType(name, "uint64", uint64Conv) - if err != nil { - return 0, err - } - return val.(uint64), nil -} - -// Uint64Var defines a uint64 flag with specified name, default value, and usage string. -// The argument p points to a uint64 variable in which to store the value of the flag. -func (f *FlagSet) Uint64Var(p *uint64, name string, value uint64, usage string) { - f.VarP(newUint64Value(value, p), name, "", usage) -} - -// Uint64VarP is like Uint64Var, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Uint64VarP(p *uint64, name, shorthand string, value uint64, usage string) { - f.VarP(newUint64Value(value, p), name, shorthand, usage) -} - -// Uint64Var defines a uint64 flag with specified name, default value, and usage string. -// The argument p points to a uint64 variable in which to store the value of the flag. -func Uint64Var(p *uint64, name string, value uint64, usage string) { - CommandLine.VarP(newUint64Value(value, p), name, "", usage) -} - -// Uint64VarP is like Uint64Var, but accepts a shorthand letter that can be used after a single dash. -func Uint64VarP(p *uint64, name, shorthand string, value uint64, usage string) { - CommandLine.VarP(newUint64Value(value, p), name, shorthand, usage) -} - -// Uint64 defines a uint64 flag with specified name, default value, and usage string. -// The return value is the address of a uint64 variable that stores the value of the flag. -func (f *FlagSet) Uint64(name string, value uint64, usage string) *uint64 { - p := new(uint64) - f.Uint64VarP(p, name, "", value, usage) - return p -} - -// Uint64P is like Uint64, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Uint64P(name, shorthand string, value uint64, usage string) *uint64 { - p := new(uint64) - f.Uint64VarP(p, name, shorthand, value, usage) - return p -} - -// Uint64 defines a uint64 flag with specified name, default value, and usage string. -// The return value is the address of a uint64 variable that stores the value of the flag. -func Uint64(name string, value uint64, usage string) *uint64 { - return CommandLine.Uint64P(name, "", value, usage) -} - -// Uint64P is like Uint64, but accepts a shorthand letter that can be used after a single dash. -func Uint64P(name, shorthand string, value uint64, usage string) *uint64 { - return CommandLine.Uint64P(name, shorthand, value, usage) -} diff --git a/vendor/github.com/spf13/pflag/uint8.go b/vendor/github.com/spf13/pflag/uint8.go deleted file mode 100644 index bb0e83c..0000000 --- a/vendor/github.com/spf13/pflag/uint8.go +++ /dev/null @@ -1,88 +0,0 @@ -package pflag - -import "strconv" - -// -- uint8 Value -type uint8Value uint8 - -func newUint8Value(val uint8, p *uint8) *uint8Value { - *p = val - return (*uint8Value)(p) -} - -func (i *uint8Value) Set(s string) error { - v, err := strconv.ParseUint(s, 0, 8) - *i = uint8Value(v) - return err -} - -func (i *uint8Value) Type() string { - return "uint8" -} - -func (i *uint8Value) String() string { return strconv.FormatUint(uint64(*i), 10) } - -func uint8Conv(sval string) (interface{}, error) { - v, err := strconv.ParseUint(sval, 0, 8) - if err != nil { - return 0, err - } - return uint8(v), nil -} - -// GetUint8 return the uint8 value of a flag with the given name -func (f *FlagSet) GetUint8(name string) (uint8, error) { - val, err := f.getFlagType(name, "uint8", uint8Conv) - if err != nil { - return 0, err - } - return val.(uint8), nil -} - -// Uint8Var defines a uint8 flag with specified name, default value, and usage string. -// The argument p points to a uint8 variable in which to store the value of the flag. -func (f *FlagSet) Uint8Var(p *uint8, name string, value uint8, usage string) { - f.VarP(newUint8Value(value, p), name, "", usage) -} - -// Uint8VarP is like Uint8Var, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Uint8VarP(p *uint8, name, shorthand string, value uint8, usage string) { - f.VarP(newUint8Value(value, p), name, shorthand, usage) -} - -// Uint8Var defines a uint8 flag with specified name, default value, and usage string. -// The argument p points to a uint8 variable in which to store the value of the flag. -func Uint8Var(p *uint8, name string, value uint8, usage string) { - CommandLine.VarP(newUint8Value(value, p), name, "", usage) -} - -// Uint8VarP is like Uint8Var, but accepts a shorthand letter that can be used after a single dash. -func Uint8VarP(p *uint8, name, shorthand string, value uint8, usage string) { - CommandLine.VarP(newUint8Value(value, p), name, shorthand, usage) -} - -// Uint8 defines a uint8 flag with specified name, default value, and usage string. -// The return value is the address of a uint8 variable that stores the value of the flag. -func (f *FlagSet) Uint8(name string, value uint8, usage string) *uint8 { - p := new(uint8) - f.Uint8VarP(p, name, "", value, usage) - return p -} - -// Uint8P is like Uint8, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) Uint8P(name, shorthand string, value uint8, usage string) *uint8 { - p := new(uint8) - f.Uint8VarP(p, name, shorthand, value, usage) - return p -} - -// Uint8 defines a uint8 flag with specified name, default value, and usage string. -// The return value is the address of a uint8 variable that stores the value of the flag. -func Uint8(name string, value uint8, usage string) *uint8 { - return CommandLine.Uint8P(name, "", value, usage) -} - -// Uint8P is like Uint8, but accepts a shorthand letter that can be used after a single dash. -func Uint8P(name, shorthand string, value uint8, usage string) *uint8 { - return CommandLine.Uint8P(name, shorthand, value, usage) -} diff --git a/vendor/github.com/spf13/pflag/uint_slice.go b/vendor/github.com/spf13/pflag/uint_slice.go deleted file mode 100644 index edd94c6..0000000 --- a/vendor/github.com/spf13/pflag/uint_slice.go +++ /dev/null @@ -1,126 +0,0 @@ -package pflag - -import ( - "fmt" - "strconv" - "strings" -) - -// -- uintSlice Value -type uintSliceValue struct { - value *[]uint - changed bool -} - -func newUintSliceValue(val []uint, p *[]uint) *uintSliceValue { - uisv := new(uintSliceValue) - uisv.value = p - *uisv.value = val - return uisv -} - -func (s *uintSliceValue) Set(val string) error { - ss := strings.Split(val, ",") - out := make([]uint, len(ss)) - for i, d := range ss { - u, err := strconv.ParseUint(d, 10, 0) - if err != nil { - return err - } - out[i] = uint(u) - } - if !s.changed { - *s.value = out - } else { - *s.value = append(*s.value, out...) - } - s.changed = true - return nil -} - -func (s *uintSliceValue) Type() string { - return "uintSlice" -} - -func (s *uintSliceValue) String() string { - out := make([]string, len(*s.value)) - for i, d := range *s.value { - out[i] = fmt.Sprintf("%d", d) - } - return "[" + strings.Join(out, ",") + "]" -} - -func uintSliceConv(val string) (interface{}, error) { - val = strings.Trim(val, "[]") - // Empty string would cause a slice with one (empty) entry - if len(val) == 0 { - return []uint{}, nil - } - ss := strings.Split(val, ",") - out := make([]uint, len(ss)) - for i, d := range ss { - u, err := strconv.ParseUint(d, 10, 0) - if err != nil { - return nil, err - } - out[i] = uint(u) - } - return out, nil -} - -// GetUintSlice returns the []uint value of a flag with the given name. -func (f *FlagSet) GetUintSlice(name string) ([]uint, error) { - val, err := f.getFlagType(name, "uintSlice", uintSliceConv) - if err != nil { - return []uint{}, err - } - return val.([]uint), nil -} - -// UintSliceVar defines a uintSlice flag with specified name, default value, and usage string. -// The argument p points to a []uint variable in which to store the value of the flag. -func (f *FlagSet) UintSliceVar(p *[]uint, name string, value []uint, usage string) { - f.VarP(newUintSliceValue(value, p), name, "", usage) -} - -// UintSliceVarP is like UintSliceVar, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) UintSliceVarP(p *[]uint, name, shorthand string, value []uint, usage string) { - f.VarP(newUintSliceValue(value, p), name, shorthand, usage) -} - -// UintSliceVar defines a uint[] flag with specified name, default value, and usage string. -// The argument p points to a uint[] variable in which to store the value of the flag. -func UintSliceVar(p *[]uint, name string, value []uint, usage string) { - CommandLine.VarP(newUintSliceValue(value, p), name, "", usage) -} - -// UintSliceVarP is like the UintSliceVar, but accepts a shorthand letter that can be used after a single dash. -func UintSliceVarP(p *[]uint, name, shorthand string, value []uint, usage string) { - CommandLine.VarP(newUintSliceValue(value, p), name, shorthand, usage) -} - -// UintSlice defines a []uint flag with specified name, default value, and usage string. -// The return value is the address of a []uint variable that stores the value of the flag. -func (f *FlagSet) UintSlice(name string, value []uint, usage string) *[]uint { - p := []uint{} - f.UintSliceVarP(&p, name, "", value, usage) - return &p -} - -// UintSliceP is like UintSlice, but accepts a shorthand letter that can be used after a single dash. -func (f *FlagSet) UintSliceP(name, shorthand string, value []uint, usage string) *[]uint { - p := []uint{} - f.UintSliceVarP(&p, name, shorthand, value, usage) - return &p -} - -// UintSlice defines a []uint flag with specified name, default value, and usage string. -// The return value is the address of a []uint variable that stores the value of the flag. -func UintSlice(name string, value []uint, usage string) *[]uint { - return CommandLine.UintSliceP(name, "", value, usage) -} - -// UintSliceP is like UintSlice, but accepts a shorthand letter that can be used after a single dash. -func UintSliceP(name, shorthand string, value []uint, usage string) *[]uint { - return CommandLine.UintSliceP(name, shorthand, value, usage) -} diff --git a/vendor/github.com/spf13/viper/LICENSE b/vendor/github.com/spf13/viper/LICENSE deleted file mode 100644 index 4527efb..0000000 --- a/vendor/github.com/spf13/viper/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Steve Francia - -Permission 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: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE 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. \ No newline at end of file diff --git a/vendor/github.com/spf13/viper/README.md b/vendor/github.com/spf13/viper/README.md deleted file mode 100644 index 848d92d..0000000 --- a/vendor/github.com/spf13/viper/README.md +++ /dev/null @@ -1,643 +0,0 @@ -![viper logo](https://cloud.githubusercontent.com/assets/173412/10886745/998df88a-8151-11e5-9448-4736db51020d.png) - -Go configuration with fangs! - -Many Go projects are built using Viper including: - -* [Hugo](http://gohugo.io) -* [EMC RexRay](http://rexray.readthedocs.org/en/stable/) -* [Imgur’s Incus](https://github.com/Imgur/incus) -* [Nanobox](https://github.com/nanobox-io/nanobox)/[Nanopack](https://github.com/nanopack) -* [Docker Notary](https://github.com/docker/Notary) -* [BloomApi](https://www.bloomapi.com/) -* [doctl](https://github.com/digitalocean/doctl) -* [Clairctl](https://github.com/jgsqware/clairctl) - -[![Build Status](https://travis-ci.org/spf13/viper.svg)](https://travis-ci.org/spf13/viper) [![Join the chat at https://gitter.im/spf13/viper](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/spf13/viper?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![GoDoc](https://godoc.org/github.com/spf13/viper?status.svg)](https://godoc.org/github.com/spf13/viper) - - -## What is Viper? - -Viper is a complete configuration solution for Go applications including 12-Factor apps. It is designed -to work within an application, and can handle all types of configuration needs -and formats. It supports: - -* setting defaults -* reading from JSON, TOML, YAML, HCL, and Java properties config files -* live watching and re-reading of config files (optional) -* reading from environment variables -* reading from remote config systems (etcd or Consul), and watching changes -* reading from command line flags -* reading from buffer -* setting explicit values - -Viper can be thought of as a registry for all of your applications -configuration needs. - -## Why Viper? - -When building a modern application, you don’t want to worry about -configuration file formats; you want to focus on building awesome software. -Viper is here to help with that. - -Viper does the following for you: - -1. Find, load, and unmarshal a configuration file in JSON, TOML, YAML, HCL, or Java properties formats. -2. Provide a mechanism to set default values for your different - configuration options. -3. Provide a mechanism to set override values for options specified through - command line flags. -4. Provide an alias system to easily rename parameters without breaking existing - code. -5. Make it easy to tell the difference between when a user has provided a - command line or config file which is the same as the default. - -Viper uses the following precedence order. Each item takes precedence over the -item below it: - - * explicit call to Set - * flag - * env - * config - * key/value store - * default - -Viper configuration keys are case insensitive. - -## Putting Values into Viper - -### Establishing Defaults - -A good configuration system will support default values. A default value is not -required for a key, but it’s useful in the event that a key hasn’t been set via -config file, environment variable, remote configuration or flag. - -Examples: - -```go -viper.SetDefault("ContentDir", "content") -viper.SetDefault("LayoutDir", "layouts") -viper.SetDefault("Taxonomies", map[string]string{"tag": "tags", "category": "categories"}) -``` - -### Reading Config Files - -Viper requires minimal configuration so it knows where to look for config files. -Viper supports JSON, TOML, YAML, HCL, and Java Properties files. Viper can search multiple paths, but -currently a single Viper instance only supports a single configuration file. -Viper does not default to any configuration search paths leaving defaults decision -to an application. - -Here is an example of how to use Viper to search for and read a configuration file. -None of the specific paths are required, but at least one path should be provided -where a configuration file is expected. - -```go -viper.SetConfigName("config") // name of config file (without extension) -viper.AddConfigPath("/etc/appname/") // path to look for the config file in -viper.AddConfigPath("$HOME/.appname") // call multiple times to add many search paths -viper.AddConfigPath(".") // optionally look for config in the working directory -err := viper.ReadInConfig() // Find and read the config file -if err != nil { // Handle errors reading the config file - panic(fmt.Errorf("Fatal error config file: %s \n", err)) -} -``` - -### Watching and re-reading config files - -Viper supports the ability to have your application live read a config file while running. - -Gone are the days of needing to restart a server to have a config take effect, -viper powered applications can read an update to a config file while running and -not miss a beat. - -Simply tell the viper instance to watchConfig. -Optionally you can provide a function for Viper to run each time a change occurs. - -**Make sure you add all of the configPaths prior to calling `WatchConfig()`** - -```go -viper.WatchConfig() -viper.OnConfigChange(func(e fsnotify.Event) { - fmt.Println("Config file changed:", e.Name) -}) -``` - -### Reading Config from io.Reader - -Viper predefines many configuration sources such as files, environment -variables, flags, and remote K/V store, but you are not bound to them. You can -also implement your own required configuration source and feed it to viper. - -```go -viper.SetConfigType("yaml") // or viper.SetConfigType("YAML") - -// any approach to require this configuration into your program. -var yamlExample = []byte(` -Hacker: true -name: steve -hobbies: -- skateboarding -- snowboarding -- go -clothing: - jacket: leather - trousers: denim -age: 35 -eyes : brown -beard: true -`) - -viper.ReadConfig(bytes.NewBuffer(yamlExample)) - -viper.Get("name") // this would be "steve" -``` - -### Setting Overrides - -These could be from a command line flag, or from your own application logic. - -```go -viper.Set("Verbose", true) -viper.Set("LogFile", LogFile) -``` - -### Registering and Using Aliases - -Aliases permit a single value to be referenced by multiple keys - -```go -viper.RegisterAlias("loud", "Verbose") - -viper.Set("verbose", true) // same result as next line -viper.Set("loud", true) // same result as prior line - -viper.GetBool("loud") // true -viper.GetBool("verbose") // true -``` - -### Working with Environment Variables - -Viper has full support for environment variables. This enables 12 factor -applications out of the box. There are four methods that exist to aid working -with ENV: - - * `AutomaticEnv()` - * `BindEnv(string...) : error` - * `SetEnvPrefix(string)` - * `SetEnvReplacer(string...) *strings.Replacer` - -_When working with ENV variables, it’s important to recognize that Viper -treats ENV variables as case sensitive._ - -Viper provides a mechanism to try to ensure that ENV variables are unique. By -using `SetEnvPrefix`, you can tell Viper to use add a prefix while reading from -the environment variables. Both `BindEnv` and `AutomaticEnv` will use this -prefix. - -`BindEnv` takes one or two parameters. The first parameter is the key name, the -second is the name of the environment variable. The name of the environment -variable is case sensitive. If the ENV variable name is not provided, then -Viper will automatically assume that the key name matches the ENV variable name, -but the ENV variable is IN ALL CAPS. When you explicitly provide the ENV -variable name, it **does not** automatically add the prefix. - -One important thing to recognize when working with ENV variables is that the -value will be read each time it is accessed. Viper does not fix the value when -the `BindEnv` is called. - -`AutomaticEnv` is a powerful helper especially when combined with -`SetEnvPrefix`. When called, Viper will check for an environment variable any -time a `viper.Get` request is made. It will apply the following rules. It will -check for a environment variable with a name matching the key uppercased and -prefixed with the `EnvPrefix` if set. - -`SetEnvReplacer` allows you to use a `strings.Replacer` object to rewrite Env -keys to an extent. This is useful if you want to use `-` or something in your -`Get()` calls, but want your environmental variables to use `_` delimiters. An -example of using it can be found in `viper_test.go`. - -#### Env example - -```go -SetEnvPrefix("spf") // will be uppercased automatically -BindEnv("id") - -os.Setenv("SPF_ID", "13") // typically done outside of the app - -id := Get("id") // 13 -``` - -### Working with Flags - -Viper has the ability to bind to flags. Specifically, Viper supports `Pflags` -as used in the [Cobra](https://github.com/spf13/cobra) library. - -Like `BindEnv`, the value is not set when the binding method is called, but when -it is accessed. This means you can bind as early as you want, even in an -`init()` function. - -For individual flags, the `BindPFlag()` method provides this functionality. - -Example: - -```go -serverCmd.Flags().Int("port", 1138, "Port to run Application server on") -viper.BindPFlag("port", serverCmd.Flags().Lookup("port")) -``` - -You can also bind an existing set of pflags (pflag.FlagSet): - -Example: - -```go -pflag.Int("flagname", 1234, "help message for flagname") - -pflag.Parse() -viper.BindPFlags(pflag.CommandLine) - -i := viper.GetInt("flagname") // retrieve values from viper instead of pflag -``` - -The use of [pflag](https://github.com/spf13/pflag/) in Viper does not preclude -the use of other packages that use the [flag](https://golang.org/pkg/flag/) -package from the standard library. The pflag package can handle the flags -defined for the flag package by importing these flags. This is accomplished -by a calling a convenience function provided by the pflag package called -AddGoFlagSet(). - -Example: - -```go -package main - -import ( - "flag" - "github.com/spf13/pflag" -) - -func main() { - - // using standard library "flag" package - flag.Int("flagname", 1234, "help message for flagname") - - pflag.CommandLine.AddGoFlagSet(flag.CommandLine) - pflag.Parse() - viper.BindPFlags(pflag.CommandLine) - - i := viper.GetInt("flagname") // retrieve value from viper - - ... -} -``` - -#### Flag interfaces - -Viper provides two Go interfaces to bind other flag systems if you don’t use `Pflags`. - -`FlagValue` represents a single flag. This is a very simple example on how to implement this interface: - -```go -type myFlag struct {} -func (f myFlag) HasChanged() bool { return false } -func (f myFlag) Name() string { return "my-flag-name" } -func (f myFlag) ValueString() string { return "my-flag-value" } -func (f myFlag) ValueType() string { return "string" } -``` - -Once your flag implements this interface, you can simply tell Viper to bind it: - -```go -viper.BindFlagValue("my-flag-name", myFlag{}) -``` - -`FlagValueSet` represents a group of flags. This is a very simple example on how to implement this interface: - -```go -type myFlagSet struct { - flags []myFlag -} - -func (f myFlagSet) VisitAll(fn func(FlagValue)) { - for _, flag := range flags { - fn(flag) - } -} -``` - -Once your flag set implements this interface, you can simply tell Viper to bind it: - -```go -fSet := myFlagSet{ - flags: []myFlag{myFlag{}, myFlag{}}, -} -viper.BindFlagValues("my-flags", fSet) -``` - -### Remote Key/Value Store Support - -To enable remote support in Viper, do a blank import of the `viper/remote` -package: - -`import _ "github.com/spf13/viper/remote"` - -Viper will read a config string (as JSON, TOML, YAML or HCL) retrieved from a path -in a Key/Value store such as etcd or Consul. These values take precedence over -default values, but are overridden by configuration values retrieved from disk, -flags, or environment variables. - -Viper uses [crypt](https://github.com/xordataexchange/crypt) to retrieve -configuration from the K/V store, which means that you can store your -configuration values encrypted and have them automatically decrypted if you have -the correct gpg keyring. Encryption is optional. - -You can use remote configuration in conjunction with local configuration, or -independently of it. - -`crypt` has a command-line helper that you can use to put configurations in your -K/V store. `crypt` defaults to etcd on http://127.0.0.1:4001. - -```bash -$ go get github.com/xordataexchange/crypt/bin/crypt -$ crypt set -plaintext /config/hugo.json /Users/hugo/settings/config.json -``` - -Confirm that your value was set: - -```bash -$ crypt get -plaintext /config/hugo.json -``` - -See the `crypt` documentation for examples of how to set encrypted values, or -how to use Consul. - -### Remote Key/Value Store Example - Unencrypted - -```go -viper.AddRemoteProvider("etcd", "http://127.0.0.1:4001","/config/hugo.json") -viper.SetConfigType("json") // because there is no file extension in a stream of bytes, supported extensions are "json", "toml", "yaml", "yml", "properties", "props", "prop" -err := viper.ReadRemoteConfig() -``` - -### Remote Key/Value Store Example - Encrypted - -```go -viper.AddSecureRemoteProvider("etcd","http://127.0.0.1:4001","/config/hugo.json","/etc/secrets/mykeyring.gpg") -viper.SetConfigType("json") // because there is no file extension in a stream of bytes, supported extensions are "json", "toml", "yaml", "yml", "properties", "props", "prop" -err := viper.ReadRemoteConfig() -``` - -### Watching Changes in etcd - Unencrypted - -```go -// alternatively, you can create a new viper instance. -var runtime_viper = viper.New() - -runtime_viper.AddRemoteProvider("etcd", "http://127.0.0.1:4001", "/config/hugo.yml") -runtime_viper.SetConfigType("yaml") // because there is no file extension in a stream of bytes, supported extensions are "json", "toml", "yaml", "yml", "properties", "props", "prop" - -// read from remote config the first time. -err := runtime_viper.ReadRemoteConfig() - -// unmarshal config -runtime_viper.Unmarshal(&runtime_conf) - -// open a goroutine to watch remote changes forever -go func(){ - for { - time.Sleep(time.Second * 5) // delay after each request - - // currently, only tested with etcd support - err := runtime_viper.WatchRemoteConfig() - if err != nil { - log.Errorf("unable to read remote config: %v", err) - continue - } - - // unmarshal new config into our runtime config struct. you can also use channel - // to implement a signal to notify the system of the changes - runtime_viper.Unmarshal(&runtime_conf) - } -}() -``` - -## Getting Values From Viper - -In Viper, there are a few ways to get a value depending on the value’s type. -The following functions and methods exist: - - * `Get(key string) : interface{}` - * `GetBool(key string) : bool` - * `GetFloat64(key string) : float64` - * `GetInt(key string) : int` - * `GetString(key string) : string` - * `GetStringMap(key string) : map[string]interface{}` - * `GetStringMapString(key string) : map[string]string` - * `GetStringSlice(key string) : []string` - * `GetTime(key string) : time.Time` - * `GetDuration(key string) : time.Duration` - * `IsSet(key string) : bool` - -One important thing to recognize is that each Get function will return a zero -value if it’s not found. To check if a given key exists, the `IsSet()` method -has been provided. - -Example: -```go -viper.GetString("logfile") // case-insensitive Setting & Getting -if viper.GetBool("verbose") { - fmt.Println("verbose enabled") -} -``` -### Accessing nested keys - -The accessor methods also accept formatted paths to deeply nested keys. For -example, if the following JSON file is loaded: - -```json -{ - "host": { - "address": "localhost", - "port": 5799 - }, - "datastore": { - "metric": { - "host": "127.0.0.1", - "port": 3099 - }, - "warehouse": { - "host": "198.0.0.1", - "port": 2112 - } - } -} - -``` - -Viper can access a nested field by passing a `.` delimited path of keys: - -```go -GetString("datastore.metric.host") // (returns "127.0.0.1") -``` - -This obeys the precedence rules established above; the search for the path -will cascade through the remaining configuration registries until found. - -For example, given this configuration file, both `datastore.metric.host` and -`datastore.metric.port` are already defined (and may be overridden). If in addition -`datastore.metric.protocol` was defined in the defaults, Viper would also find it. - -However, if `datastore.metric` was overridden (by a flag, an environment variable, -the `Set()` method, …) with an immediate value, then all sub-keys of -`datastore.metric` become undefined, they are “shadowed” by the higher-priority -configuration level. - -Lastly, if there exists a key that matches the delimited key path, its value -will be returned instead. E.g. - -```json -{ - "datastore.metric.host": "0.0.0.0", - "host": { - "address": "localhost", - "port": 5799 - }, - "datastore": { - "metric": { - "host": "127.0.0.1", - "port": 3099 - }, - "warehouse": { - "host": "198.0.0.1", - "port": 2112 - } - } -} - -GetString("datastore.metric.host") // returns "0.0.0.0" -``` - -### Extract sub-tree - -Extract sub-tree from Viper. - -For example, `viper` represents: - -```json -app: - cache1: - max-items: 100 - item-size: 64 - cache2: - max-items: 200 - item-size: 80 -``` - -After executing: - -```go -subv := viper.Sub("app.cache1") -``` - -`subv` represents: - -```json -max-items: 100 -item-size: 64 -``` - -Suppose we have: - -```go -func NewCache(cfg *Viper) *Cache {...} -``` - -which creates a cache based on config information formatted as `subv`. -Now it’s easy to create these 2 caches separately as: - -```go -cfg1 := viper.Sub("app.cache1") -cache1 := NewCache(cfg1) - -cfg2 := viper.Sub("app.cache2") -cache2 := NewCache(cfg2) -``` - -### Unmarshaling - -You also have the option of Unmarshaling all or a specific value to a struct, map, -etc. - -There are two methods to do this: - - * `Unmarshal(rawVal interface{}) : error` - * `UnmarshalKey(key string, rawVal interface{}) : error` - -Example: - -```go -type config struct { - Port int - Name string - PathMap string `mapstructure:"path_map"` -} - -var C config - -err := Unmarshal(&C) -if err != nil { - t.Fatalf("unable to decode into struct, %v", err) -} -``` - -## Viper or Vipers? - -Viper comes ready to use out of the box. There is no configuration or -initialization needed to begin using Viper. Since most applications will want -to use a single central repository for their configuration, the viper package -provides this. It is similar to a singleton. - -In all of the examples above, they demonstrate using viper in its singleton -style approach. - -### Working with multiple vipers - -You can also create many different vipers for use in your application. Each will -have its own unique set of configurations and values. Each can read from a -different config file, key value store, etc. All of the functions that viper -package supports are mirrored as methods on a viper. - -Example: - -```go -x := viper.New() -y := viper.New() - -x.SetDefault("ContentDir", "content") -y.SetDefault("ContentDir", "foobar") - -//... -``` - -When working with multiple vipers, it is up to the user to keep track of the -different vipers. - -## Q & A - -Q: Why not INI files? - -A: Ini files are pretty awful. There’s no standard format, and they are hard to -validate. Viper is designed to work with JSON, TOML or YAML files. If someone -really wants to add this feature, I’d be happy to merge it. It’s easy to specify -which formats your application will permit. - -Q: Why is it called “Viper”? - -A: Viper is designed to be a [companion](http://en.wikipedia.org/wiki/Viper_(G.I._Joe)) -to [Cobra](https://github.com/spf13/cobra). While both can operate completely -independently, together they make a powerful pair to handle much of your -application foundation needs. - -Q: Why is it called “Cobra”? - -A: Is there a better name for a [commander](http://en.wikipedia.org/wiki/Cobra_Commander)? diff --git a/vendor/github.com/spf13/viper/flags.go b/vendor/github.com/spf13/viper/flags.go deleted file mode 100644 index dd32f4e..0000000 --- a/vendor/github.com/spf13/viper/flags.go +++ /dev/null @@ -1,57 +0,0 @@ -package viper - -import "github.com/spf13/pflag" - -// FlagValueSet is an interface that users can implement -// to bind a set of flags to viper. -type FlagValueSet interface { - VisitAll(fn func(FlagValue)) -} - -// FlagValue is an interface that users can implement -// to bind different flags to viper. -type FlagValue interface { - HasChanged() bool - Name() string - ValueString() string - ValueType() string -} - -// pflagValueSet is a wrapper around *pflag.ValueSet -// that implements FlagValueSet. -type pflagValueSet struct { - flags *pflag.FlagSet -} - -// VisitAll iterates over all *pflag.Flag inside the *pflag.FlagSet. -func (p pflagValueSet) VisitAll(fn func(flag FlagValue)) { - p.flags.VisitAll(func(flag *pflag.Flag) { - fn(pflagValue{flag}) - }) -} - -// pflagValue is a wrapper aroung *pflag.flag -// that implements FlagValue -type pflagValue struct { - flag *pflag.Flag -} - -// HasChanges returns whether the flag has changes or not. -func (p pflagValue) HasChanged() bool { - return p.flag.Changed -} - -// Name returns the name of the flag. -func (p pflagValue) Name() string { - return p.flag.Name -} - -// ValueString returns the value of the flag as a string. -func (p pflagValue) ValueString() string { - return p.flag.Value.String() -} - -// ValueType returns the type of the flag as a string. -func (p pflagValue) ValueType() string { - return p.flag.Value.Type() -} diff --git a/vendor/github.com/spf13/viper/util.go b/vendor/github.com/spf13/viper/util.go deleted file mode 100644 index 3ebada9..0000000 --- a/vendor/github.com/spf13/viper/util.go +++ /dev/null @@ -1,282 +0,0 @@ -// Copyright © 2014 Steve Francia . -// -// Use of this source code is governed by an MIT-style -// license that can be found in the LICENSE file. - -// Viper is a application configuration system. -// It believes that applications can be configured a variety of ways -// via flags, ENVIRONMENT variables, configuration files retrieved -// from the file system, or a remote key/value store. - -package viper - -import ( - "bytes" - "encoding/json" - "fmt" - "io" - "os" - "path/filepath" - "runtime" - "strings" - "unicode" - - "github.com/hashicorp/hcl" - "github.com/magiconair/properties" - toml "github.com/pelletier/go-toml" - "github.com/spf13/cast" - jww "github.com/spf13/jwalterweatherman" - "gopkg.in/yaml.v2" -) - -// ConfigParseError denotes failing to parse configuration file. -type ConfigParseError struct { - err error -} - -// Error returns the formatted configuration error. -func (pe ConfigParseError) Error() string { - return fmt.Sprintf("While parsing config: %s", pe.err.Error()) -} - -// toCaseInsensitiveValue checks if the value is a map; -// if so, create a copy and lower-case the keys recursively. -func toCaseInsensitiveValue(value interface{}) interface{} { - switch v := value.(type) { - case map[interface{}]interface{}: - value = copyAndInsensitiviseMap(cast.ToStringMap(v)) - case map[string]interface{}: - value = copyAndInsensitiviseMap(v) - } - - return value -} - -// copyAndInsensitiviseMap behaves like insensitiviseMap, but creates a copy of -// any map it makes case insensitive. -func copyAndInsensitiviseMap(m map[string]interface{}) map[string]interface{} { - nm := make(map[string]interface{}) - - for key, val := range m { - lkey := strings.ToLower(key) - switch v := val.(type) { - case map[interface{}]interface{}: - nm[lkey] = copyAndInsensitiviseMap(cast.ToStringMap(v)) - case map[string]interface{}: - nm[lkey] = copyAndInsensitiviseMap(v) - default: - nm[lkey] = v - } - } - - return nm -} - -func insensitiviseMap(m map[string]interface{}) { - for key, val := range m { - switch val.(type) { - case map[interface{}]interface{}: - // nested map: cast and recursively insensitivise - val = cast.ToStringMap(val) - insensitiviseMap(val.(map[string]interface{})) - case map[string]interface{}: - // nested map: recursively insensitivise - insensitiviseMap(val.(map[string]interface{})) - } - - lower := strings.ToLower(key) - if key != lower { - // remove old key (not lower-cased) - delete(m, key) - } - // update map - m[lower] = val - } -} - -func absPathify(inPath string) string { - jww.INFO.Println("Trying to resolve absolute path to", inPath) - - if strings.HasPrefix(inPath, "$HOME") { - inPath = userHomeDir() + inPath[5:] - } - - if strings.HasPrefix(inPath, "$") { - end := strings.Index(inPath, string(os.PathSeparator)) - inPath = os.Getenv(inPath[1:end]) + inPath[end:] - } - - if filepath.IsAbs(inPath) { - return filepath.Clean(inPath) - } - - p, err := filepath.Abs(inPath) - if err == nil { - return filepath.Clean(p) - } - - jww.ERROR.Println("Couldn't discover absolute path") - jww.ERROR.Println(err) - return "" -} - -// Check if File / Directory Exists -func exists(path string) (bool, error) { - _, err := v.fs.Stat(path) - if err == nil { - return true, nil - } - if os.IsNotExist(err) { - return false, nil - } - return false, err -} - -func stringInSlice(a string, list []string) bool { - for _, b := range list { - if b == a { - return true - } - } - return false -} - -func userHomeDir() string { - if runtime.GOOS == "windows" { - home := os.Getenv("HOMEDRIVE") + os.Getenv("HOMEPATH") - if home == "" { - home = os.Getenv("USERPROFILE") - } - return home - } - return os.Getenv("HOME") -} - -func unmarshallConfigReader(in io.Reader, c map[string]interface{}, configType string) error { - buf := new(bytes.Buffer) - buf.ReadFrom(in) - - switch strings.ToLower(configType) { - case "yaml", "yml": - if err := yaml.Unmarshal(buf.Bytes(), &c); err != nil { - return ConfigParseError{err} - } - - case "json": - if err := json.Unmarshal(buf.Bytes(), &c); err != nil { - return ConfigParseError{err} - } - - case "hcl": - obj, err := hcl.Parse(string(buf.Bytes())) - if err != nil { - return ConfigParseError{err} - } - if err = hcl.DecodeObject(&c, obj); err != nil { - return ConfigParseError{err} - } - - case "toml": - tree, err := toml.LoadReader(buf) - if err != nil { - return ConfigParseError{err} - } - tmap := tree.ToMap() - for k, v := range tmap { - c[k] = v - } - - case "properties", "props", "prop": - var p *properties.Properties - var err error - if p, err = properties.Load(buf.Bytes(), properties.UTF8); err != nil { - return ConfigParseError{err} - } - for _, key := range p.Keys() { - value, _ := p.Get(key) - // recursively build nested maps - path := strings.Split(key, ".") - lastKey := strings.ToLower(path[len(path)-1]) - deepestMap := deepSearch(c, path[0:len(path)-1]) - // set innermost value - deepestMap[lastKey] = value - } - } - - insensitiviseMap(c) - return nil -} - -func safeMul(a, b uint) uint { - c := a * b - if a > 1 && b > 1 && c/b != a { - return 0 - } - return c -} - -// parseSizeInBytes converts strings like 1GB or 12 mb into an unsigned integer number of bytes -func parseSizeInBytes(sizeStr string) uint { - sizeStr = strings.TrimSpace(sizeStr) - lastChar := len(sizeStr) - 1 - multiplier := uint(1) - - if lastChar > 0 { - if sizeStr[lastChar] == 'b' || sizeStr[lastChar] == 'B' { - if lastChar > 1 { - switch unicode.ToLower(rune(sizeStr[lastChar-1])) { - case 'k': - multiplier = 1 << 10 - sizeStr = strings.TrimSpace(sizeStr[:lastChar-1]) - case 'm': - multiplier = 1 << 20 - sizeStr = strings.TrimSpace(sizeStr[:lastChar-1]) - case 'g': - multiplier = 1 << 30 - sizeStr = strings.TrimSpace(sizeStr[:lastChar-1]) - default: - multiplier = 1 - sizeStr = strings.TrimSpace(sizeStr[:lastChar]) - } - } - } - } - - size := cast.ToInt(sizeStr) - if size < 0 { - size = 0 - } - - return safeMul(uint(size), multiplier) -} - -// deepSearch scans deep maps, following the key indexes listed in the -// sequence "path". -// The last value is expected to be another map, and is returned. -// -// In case intermediate keys do not exist, or map to a non-map value, -// a new map is created and inserted, and the search continues from there: -// the initial map "m" may be modified! -func deepSearch(m map[string]interface{}, path []string) map[string]interface{} { - for _, k := range path { - m2, ok := m[k] - if !ok { - // intermediate key does not exist - // => create it and continue from there - m3 := make(map[string]interface{}) - m[k] = m3 - m = m3 - continue - } - m3, ok := m2.(map[string]interface{}) - if !ok { - // intermediate key is a value - // => replace with a new map - m3 = make(map[string]interface{}) - m[k] = m3 - } - // continue search from here - m = m3 - } - return m -} diff --git a/vendor/github.com/spf13/viper/viper.go b/vendor/github.com/spf13/viper/viper.go deleted file mode 100644 index 2a221e5..0000000 --- a/vendor/github.com/spf13/viper/viper.go +++ /dev/null @@ -1,1571 +0,0 @@ -// Copyright © 2014 Steve Francia . -// -// Use of this source code is governed by an MIT-style -// license that can be found in the LICENSE file. - -// Viper is a application configuration system. -// It believes that applications can be configured a variety of ways -// via flags, ENVIRONMENT variables, configuration files retrieved -// from the file system, or a remote key/value store. - -// Each item takes precedence over the item below it: - -// overrides -// flag -// env -// config -// key/value store -// default - -package viper - -import ( - "bytes" - "encoding/csv" - "fmt" - "io" - "log" - "os" - "path/filepath" - "reflect" - "strings" - "time" - - "github.com/fsnotify/fsnotify" - "github.com/mitchellh/mapstructure" - "github.com/spf13/afero" - "github.com/spf13/cast" - jww "github.com/spf13/jwalterweatherman" - "github.com/spf13/pflag" -) - -var v *Viper - -type RemoteResponse struct { - Value []byte - Error error -} - -func init() { - v = New() -} - -type remoteConfigFactory interface { - Get(rp RemoteProvider) (io.Reader, error) - Watch(rp RemoteProvider) (io.Reader, error) - WatchChannel(rp RemoteProvider) (<-chan *RemoteResponse, chan bool) -} - -// RemoteConfig is optional, see the remote package -var RemoteConfig remoteConfigFactory - -// UnsupportedConfigError denotes encountering an unsupported -// configuration filetype. -type UnsupportedConfigError string - -// Error returns the formatted configuration error. -func (str UnsupportedConfigError) Error() string { - return fmt.Sprintf("Unsupported Config Type %q", string(str)) -} - -// UnsupportedRemoteProviderError denotes encountering an unsupported remote -// provider. Currently only etcd and Consul are supported. -type UnsupportedRemoteProviderError string - -// Error returns the formatted remote provider error. -func (str UnsupportedRemoteProviderError) Error() string { - return fmt.Sprintf("Unsupported Remote Provider Type %q", string(str)) -} - -// RemoteConfigError denotes encountering an error while trying to -// pull the configuration from the remote provider. -type RemoteConfigError string - -// Error returns the formatted remote provider error -func (rce RemoteConfigError) Error() string { - return fmt.Sprintf("Remote Configurations Error: %s", string(rce)) -} - -// ConfigFileNotFoundError denotes failing to find configuration file. -type ConfigFileNotFoundError struct { - name, locations string -} - -// Error returns the formatted configuration error. -func (fnfe ConfigFileNotFoundError) Error() string { - return fmt.Sprintf("Config File %q Not Found in %q", fnfe.name, fnfe.locations) -} - -// Viper is a prioritized configuration registry. It -// maintains a set of configuration sources, fetches -// values to populate those, and provides them according -// to the source's priority. -// The priority of the sources is the following: -// 1. overrides -// 2. flags -// 3. env. variables -// 4. config file -// 5. key/value store -// 6. defaults -// -// For example, if values from the following sources were loaded: -// -// Defaults : { -// "secret": "", -// "user": "default", -// "endpoint": "https://localhost" -// } -// Config : { -// "user": "root" -// "secret": "defaultsecret" -// } -// Env : { -// "secret": "somesecretkey" -// } -// -// The resulting config will have the following values: -// -// { -// "secret": "somesecretkey", -// "user": "root", -// "endpoint": "https://localhost" -// } -type Viper struct { - // Delimiter that separates a list of keys - // used to access a nested value in one go - keyDelim string - - // A set of paths to look for the config file in - configPaths []string - - // The filesystem to read config from. - fs afero.Fs - - // A set of remote providers to search for the configuration - remoteProviders []*defaultRemoteProvider - - // Name of file to look for inside the path - configName string - configFile string - configType string - envPrefix string - - automaticEnvApplied bool - envKeyReplacer *strings.Replacer - - config map[string]interface{} - override map[string]interface{} - defaults map[string]interface{} - kvstore map[string]interface{} - pflags map[string]FlagValue - env map[string]string - aliases map[string]string - typeByDefValue bool - - onConfigChange func(fsnotify.Event) -} - -// New returns an initialized Viper instance. -func New() *Viper { - v := new(Viper) - v.keyDelim = "." - v.configName = "config" - v.fs = afero.NewOsFs() - v.config = make(map[string]interface{}) - v.override = make(map[string]interface{}) - v.defaults = make(map[string]interface{}) - v.kvstore = make(map[string]interface{}) - v.pflags = make(map[string]FlagValue) - v.env = make(map[string]string) - v.aliases = make(map[string]string) - v.typeByDefValue = false - - return v -} - -// Intended for testing, will reset all to default settings. -// In the public interface for the viper package so applications -// can use it in their testing as well. -func Reset() { - v = New() - SupportedExts = []string{"json", "toml", "yaml", "yml", "hcl"} - SupportedRemoteProviders = []string{"etcd", "consul"} -} - -type defaultRemoteProvider struct { - provider string - endpoint string - path string - secretKeyring string -} - -func (rp defaultRemoteProvider) Provider() string { - return rp.provider -} - -func (rp defaultRemoteProvider) Endpoint() string { - return rp.endpoint -} - -func (rp defaultRemoteProvider) Path() string { - return rp.path -} - -func (rp defaultRemoteProvider) SecretKeyring() string { - return rp.secretKeyring -} - -// RemoteProvider stores the configuration necessary -// to connect to a remote key/value store. -// Optional secretKeyring to unencrypt encrypted values -// can be provided. -type RemoteProvider interface { - Provider() string - Endpoint() string - Path() string - SecretKeyring() string -} - -// SupportedExts are universally supported extensions. -var SupportedExts = []string{"json", "toml", "yaml", "yml", "properties", "props", "prop", "hcl"} - -// SupportedRemoteProviders are universally supported remote providers. -var SupportedRemoteProviders = []string{"etcd", "consul"} - -func OnConfigChange(run func(in fsnotify.Event)) { v.OnConfigChange(run) } -func (v *Viper) OnConfigChange(run func(in fsnotify.Event)) { - v.onConfigChange = run -} - -func WatchConfig() { v.WatchConfig() } -func (v *Viper) WatchConfig() { - go func() { - watcher, err := fsnotify.NewWatcher() - if err != nil { - log.Fatal(err) - } - defer watcher.Close() - - // we have to watch the entire directory to pick up renames/atomic saves in a cross-platform way - filename, err := v.getConfigFile() - if err != nil { - log.Println("error:", err) - return - } - - configFile := filepath.Clean(filename) - configDir, _ := filepath.Split(configFile) - - done := make(chan bool) - go func() { - for { - select { - case event := <-watcher.Events: - // we only care about the config file - if filepath.Clean(event.Name) == configFile { - if event.Op&fsnotify.Write == fsnotify.Write || event.Op&fsnotify.Create == fsnotify.Create { - err := v.ReadInConfig() - if err != nil { - log.Println("error:", err) - } - v.onConfigChange(event) - } - } - case err := <-watcher.Errors: - log.Println("error:", err) - } - } - }() - - watcher.Add(configDir) - <-done - }() -} - -// SetConfigFile explicitly defines the path, name and extension of the config file. -// Viper will use this and not check any of the config paths. -func SetConfigFile(in string) { v.SetConfigFile(in) } -func (v *Viper) SetConfigFile(in string) { - if in != "" { - v.configFile = in - } -} - -// SetEnvPrefix defines a prefix that ENVIRONMENT variables will use. -// E.g. if your prefix is "spf", the env registry will look for env -// variables that start with "SPF_". -func SetEnvPrefix(in string) { v.SetEnvPrefix(in) } -func (v *Viper) SetEnvPrefix(in string) { - if in != "" { - v.envPrefix = in - } -} - -func (v *Viper) mergeWithEnvPrefix(in string) string { - if v.envPrefix != "" { - return strings.ToUpper(v.envPrefix + "_" + in) - } - - return strings.ToUpper(in) -} - -// TODO: should getEnv logic be moved into find(). Can generalize the use of -// rewriting keys many things, Ex: Get('someKey') -> some_key -// (camel case to snake case for JSON keys perhaps) - -// getEnv is a wrapper around os.Getenv which replaces characters in the original -// key. This allows env vars which have different keys than the config object -// keys. -func (v *Viper) getEnv(key string) string { - if v.envKeyReplacer != nil { - key = v.envKeyReplacer.Replace(key) - } - return os.Getenv(key) -} - -// ConfigFileUsed returns the file used to populate the config registry. -func ConfigFileUsed() string { return v.ConfigFileUsed() } -func (v *Viper) ConfigFileUsed() string { return v.configFile } - -// AddConfigPath adds a path for Viper to search for the config file in. -// Can be called multiple times to define multiple search paths. -func AddConfigPath(in string) { v.AddConfigPath(in) } -func (v *Viper) AddConfigPath(in string) { - if in != "" { - absin := absPathify(in) - jww.INFO.Println("adding", absin, "to paths to search") - if !stringInSlice(absin, v.configPaths) { - v.configPaths = append(v.configPaths, absin) - } - } -} - -// AddRemoteProvider adds a remote configuration source. -// Remote Providers are searched in the order they are added. -// provider is a string value, "etcd" or "consul" are currently supported. -// endpoint is the url. etcd requires http://ip:port consul requires ip:port -// path is the path in the k/v store to retrieve configuration -// To retrieve a config file called myapp.json from /configs/myapp.json -// you should set path to /configs and set config name (SetConfigName()) to -// "myapp" -func AddRemoteProvider(provider, endpoint, path string) error { - return v.AddRemoteProvider(provider, endpoint, path) -} -func (v *Viper) AddRemoteProvider(provider, endpoint, path string) error { - if !stringInSlice(provider, SupportedRemoteProviders) { - return UnsupportedRemoteProviderError(provider) - } - if provider != "" && endpoint != "" { - jww.INFO.Printf("adding %s:%s to remote provider list", provider, endpoint) - rp := &defaultRemoteProvider{ - endpoint: endpoint, - provider: provider, - path: path, - } - if !v.providerPathExists(rp) { - v.remoteProviders = append(v.remoteProviders, rp) - } - } - return nil -} - -// AddSecureRemoteProvider adds a remote configuration source. -// Secure Remote Providers are searched in the order they are added. -// provider is a string value, "etcd" or "consul" are currently supported. -// endpoint is the url. etcd requires http://ip:port consul requires ip:port -// secretkeyring is the filepath to your openpgp secret keyring. e.g. /etc/secrets/myring.gpg -// path is the path in the k/v store to retrieve configuration -// To retrieve a config file called myapp.json from /configs/myapp.json -// you should set path to /configs and set config name (SetConfigName()) to -// "myapp" -// Secure Remote Providers are implemented with github.com/xordataexchange/crypt -func AddSecureRemoteProvider(provider, endpoint, path, secretkeyring string) error { - return v.AddSecureRemoteProvider(provider, endpoint, path, secretkeyring) -} - -func (v *Viper) AddSecureRemoteProvider(provider, endpoint, path, secretkeyring string) error { - if !stringInSlice(provider, SupportedRemoteProviders) { - return UnsupportedRemoteProviderError(provider) - } - if provider != "" && endpoint != "" { - jww.INFO.Printf("adding %s:%s to remote provider list", provider, endpoint) - rp := &defaultRemoteProvider{ - endpoint: endpoint, - provider: provider, - path: path, - secretKeyring: secretkeyring, - } - if !v.providerPathExists(rp) { - v.remoteProviders = append(v.remoteProviders, rp) - } - } - return nil -} - -func (v *Viper) providerPathExists(p *defaultRemoteProvider) bool { - for _, y := range v.remoteProviders { - if reflect.DeepEqual(y, p) { - return true - } - } - return false -} - -// searchMap recursively searches for a value for path in source map. -// Returns nil if not found. -// Note: This assumes that the path entries and map keys are lower cased. -func (v *Viper) searchMap(source map[string]interface{}, path []string) interface{} { - if len(path) == 0 { - return source - } - - next, ok := source[path[0]] - if ok { - // Fast path - if len(path) == 1 { - return next - } - - // Nested case - switch next.(type) { - case map[interface{}]interface{}: - return v.searchMap(cast.ToStringMap(next), path[1:]) - case map[string]interface{}: - // Type assertion is safe here since it is only reached - // if the type of `next` is the same as the type being asserted - return v.searchMap(next.(map[string]interface{}), path[1:]) - default: - // got a value but nested key expected, return "nil" for not found - return nil - } - } - return nil -} - -// searchMapWithPathPrefixes recursively searches for a value for path in source map. -// -// While searchMap() considers each path element as a single map key, this -// function searches for, and prioritizes, merged path elements. -// e.g., if in the source, "foo" is defined with a sub-key "bar", and "foo.bar" -// is also defined, this latter value is returned for path ["foo", "bar"]. -// -// This should be useful only at config level (other maps may not contain dots -// in their keys). -// -// Note: This assumes that the path entries and map keys are lower cased. -func (v *Viper) searchMapWithPathPrefixes(source map[string]interface{}, path []string) interface{} { - if len(path) == 0 { - return source - } - - // search for path prefixes, starting from the longest one - for i := len(path); i > 0; i-- { - prefixKey := strings.ToLower(strings.Join(path[0:i], v.keyDelim)) - - next, ok := source[prefixKey] - if ok { - // Fast path - if i == len(path) { - return next - } - - // Nested case - var val interface{} - switch next.(type) { - case map[interface{}]interface{}: - val = v.searchMapWithPathPrefixes(cast.ToStringMap(next), path[i:]) - case map[string]interface{}: - // Type assertion is safe here since it is only reached - // if the type of `next` is the same as the type being asserted - val = v.searchMapWithPathPrefixes(next.(map[string]interface{}), path[i:]) - default: - // got a value but nested key expected, do nothing and look for next prefix - } - if val != nil { - return val - } - } - } - - // not found - return nil -} - -// isPathShadowedInDeepMap makes sure the given path is not shadowed somewhere -// on its path in the map. -// e.g., if "foo.bar" has a value in the given map, it “shadows” -// "foo.bar.baz" in a lower-priority map -func (v *Viper) isPathShadowedInDeepMap(path []string, m map[string]interface{}) string { - var parentVal interface{} - for i := 1; i < len(path); i++ { - parentVal = v.searchMap(m, path[0:i]) - if parentVal == nil { - // not found, no need to add more path elements - return "" - } - switch parentVal.(type) { - case map[interface{}]interface{}: - continue - case map[string]interface{}: - continue - default: - // parentVal is a regular value which shadows "path" - return strings.Join(path[0:i], v.keyDelim) - } - } - return "" -} - -// isPathShadowedInFlatMap makes sure the given path is not shadowed somewhere -// in a sub-path of the map. -// e.g., if "foo.bar" has a value in the given map, it “shadows” -// "foo.bar.baz" in a lower-priority map -func (v *Viper) isPathShadowedInFlatMap(path []string, mi interface{}) string { - // unify input map - var m map[string]interface{} - switch mi.(type) { - case map[string]string, map[string]FlagValue: - m = cast.ToStringMap(mi) - default: - return "" - } - - // scan paths - var parentKey string - for i := 1; i < len(path); i++ { - parentKey = strings.Join(path[0:i], v.keyDelim) - if _, ok := m[parentKey]; ok { - return parentKey - } - } - return "" -} - -// isPathShadowedInAutoEnv makes sure the given path is not shadowed somewhere -// in the environment, when automatic env is on. -// e.g., if "foo.bar" has a value in the environment, it “shadows” -// "foo.bar.baz" in a lower-priority map -func (v *Viper) isPathShadowedInAutoEnv(path []string) string { - var parentKey string - var val string - for i := 1; i < len(path); i++ { - parentKey = strings.Join(path[0:i], v.keyDelim) - if val = v.getEnv(v.mergeWithEnvPrefix(parentKey)); val != "" { - return parentKey - } - } - return "" -} - -// SetTypeByDefaultValue enables or disables the inference of a key value's -// type when the Get function is used based upon a key's default value as -// opposed to the value returned based on the normal fetch logic. -// -// For example, if a key has a default value of []string{} and the same key -// is set via an environment variable to "a b c", a call to the Get function -// would return a string slice for the key if the key's type is inferred by -// the default value and the Get function would return: -// -// []string {"a", "b", "c"} -// -// Otherwise the Get function would return: -// -// "a b c" -func SetTypeByDefaultValue(enable bool) { v.SetTypeByDefaultValue(enable) } -func (v *Viper) SetTypeByDefaultValue(enable bool) { - v.typeByDefValue = enable -} - -// GetViper gets the global Viper instance. -func GetViper() *Viper { - return v -} - -// Get can retrieve any value given the key to use. -// Get is case-insensitive for a key. -// Get has the behavior of returning the value associated with the first -// place from where it is set. Viper will check in the following order: -// override, flag, env, config file, key/value store, default -// -// Get returns an interface. For a specific value use one of the Get____ methods. -func Get(key string) interface{} { return v.Get(key) } -func (v *Viper) Get(key string) interface{} { - lcaseKey := strings.ToLower(key) - val := v.find(lcaseKey) - if val == nil { - return nil - } - - if v.typeByDefValue { - // TODO(bep) this branch isn't covered by a single test. - valType := val - path := strings.Split(lcaseKey, v.keyDelim) - defVal := v.searchMap(v.defaults, path) - if defVal != nil { - valType = defVal - } - - switch valType.(type) { - case bool: - return cast.ToBool(val) - case string: - return cast.ToString(val) - case int64, int32, int16, int8, int: - return cast.ToInt(val) - case float64, float32: - return cast.ToFloat64(val) - case time.Time: - return cast.ToTime(val) - case time.Duration: - return cast.ToDuration(val) - case []string: - return cast.ToStringSlice(val) - } - } - - return val -} - -// Sub returns new Viper instance representing a sub tree of this instance. -// Sub is case-insensitive for a key. -func Sub(key string) *Viper { return v.Sub(key) } -func (v *Viper) Sub(key string) *Viper { - subv := New() - data := v.Get(key) - if data == nil { - return nil - } - - if reflect.TypeOf(data).Kind() == reflect.Map { - subv.config = cast.ToStringMap(data) - return subv - } - return nil -} - -// GetString returns the value associated with the key as a string. -func GetString(key string) string { return v.GetString(key) } -func (v *Viper) GetString(key string) string { - return cast.ToString(v.Get(key)) -} - -// GetBool returns the value associated with the key as a boolean. -func GetBool(key string) bool { return v.GetBool(key) } -func (v *Viper) GetBool(key string) bool { - return cast.ToBool(v.Get(key)) -} - -// GetInt returns the value associated with the key as an integer. -func GetInt(key string) int { return v.GetInt(key) } -func (v *Viper) GetInt(key string) int { - return cast.ToInt(v.Get(key)) -} - -// GetInt64 returns the value associated with the key as an integer. -func GetInt64(key string) int64 { return v.GetInt64(key) } -func (v *Viper) GetInt64(key string) int64 { - return cast.ToInt64(v.Get(key)) -} - -// GetFloat64 returns the value associated with the key as a float64. -func GetFloat64(key string) float64 { return v.GetFloat64(key) } -func (v *Viper) GetFloat64(key string) float64 { - return cast.ToFloat64(v.Get(key)) -} - -// GetTime returns the value associated with the key as time. -func GetTime(key string) time.Time { return v.GetTime(key) } -func (v *Viper) GetTime(key string) time.Time { - return cast.ToTime(v.Get(key)) -} - -// GetDuration returns the value associated with the key as a duration. -func GetDuration(key string) time.Duration { return v.GetDuration(key) } -func (v *Viper) GetDuration(key string) time.Duration { - return cast.ToDuration(v.Get(key)) -} - -// GetStringSlice returns the value associated with the key as a slice of strings. -func GetStringSlice(key string) []string { return v.GetStringSlice(key) } -func (v *Viper) GetStringSlice(key string) []string { - return cast.ToStringSlice(v.Get(key)) -} - -// GetStringMap returns the value associated with the key as a map of interfaces. -func GetStringMap(key string) map[string]interface{} { return v.GetStringMap(key) } -func (v *Viper) GetStringMap(key string) map[string]interface{} { - return cast.ToStringMap(v.Get(key)) -} - -// GetStringMapString returns the value associated with the key as a map of strings. -func GetStringMapString(key string) map[string]string { return v.GetStringMapString(key) } -func (v *Viper) GetStringMapString(key string) map[string]string { - return cast.ToStringMapString(v.Get(key)) -} - -// GetStringMapStringSlice returns the value associated with the key as a map to a slice of strings. -func GetStringMapStringSlice(key string) map[string][]string { return v.GetStringMapStringSlice(key) } -func (v *Viper) GetStringMapStringSlice(key string) map[string][]string { - return cast.ToStringMapStringSlice(v.Get(key)) -} - -// GetSizeInBytes returns the size of the value associated with the given key -// in bytes. -func GetSizeInBytes(key string) uint { return v.GetSizeInBytes(key) } -func (v *Viper) GetSizeInBytes(key string) uint { - sizeStr := cast.ToString(v.Get(key)) - return parseSizeInBytes(sizeStr) -} - -// UnmarshalKey takes a single key and unmarshals it into a Struct. -func UnmarshalKey(key string, rawVal interface{}) error { return v.UnmarshalKey(key, rawVal) } -func (v *Viper) UnmarshalKey(key string, rawVal interface{}) error { - err := decode(v.Get(key), defaultDecoderConfig(rawVal)) - - if err != nil { - return err - } - - v.insensitiviseMaps() - - return nil -} - -// Unmarshal unmarshals the config into a Struct. Make sure that the tags -// on the fields of the structure are properly set. -func Unmarshal(rawVal interface{}) error { return v.Unmarshal(rawVal) } -func (v *Viper) Unmarshal(rawVal interface{}) error { - err := decode(v.AllSettings(), defaultDecoderConfig(rawVal)) - - if err != nil { - return err - } - - v.insensitiviseMaps() - - return nil -} - -// defaultDecoderConfig returns default mapsstructure.DecoderConfig with suppot -// of time.Duration values -func defaultDecoderConfig(output interface{}) *mapstructure.DecoderConfig { - return &mapstructure.DecoderConfig{ - Metadata: nil, - Result: output, - WeaklyTypedInput: true, - DecodeHook: mapstructure.StringToTimeDurationHookFunc(), - } -} - -// A wrapper around mapstructure.Decode that mimics the WeakDecode functionality -func decode(input interface{}, config *mapstructure.DecoderConfig) error { - decoder, err := mapstructure.NewDecoder(config) - if err != nil { - return err - } - return decoder.Decode(input) -} - -// UnmarshalExact unmarshals the config into a Struct, erroring if a field is nonexistent -// in the destination struct. -func (v *Viper) UnmarshalExact(rawVal interface{}) error { - config := defaultDecoderConfig(rawVal) - config.ErrorUnused = true - - err := decode(v.AllSettings(), config) - - if err != nil { - return err - } - - v.insensitiviseMaps() - - return nil -} - -// BindPFlags binds a full flag set to the configuration, using each flag's long -// name as the config key. -func BindPFlags(flags *pflag.FlagSet) error { return v.BindPFlags(flags) } -func (v *Viper) BindPFlags(flags *pflag.FlagSet) error { - return v.BindFlagValues(pflagValueSet{flags}) -} - -// BindPFlag binds a specific key to a pflag (as used by cobra). -// Example (where serverCmd is a Cobra instance): -// -// serverCmd.Flags().Int("port", 1138, "Port to run Application server on") -// Viper.BindPFlag("port", serverCmd.Flags().Lookup("port")) -// -func BindPFlag(key string, flag *pflag.Flag) error { return v.BindPFlag(key, flag) } -func (v *Viper) BindPFlag(key string, flag *pflag.Flag) error { - return v.BindFlagValue(key, pflagValue{flag}) -} - -// BindFlagValues binds a full FlagValue set to the configuration, using each flag's long -// name as the config key. -func BindFlagValues(flags FlagValueSet) error { return v.BindFlagValues(flags) } -func (v *Viper) BindFlagValues(flags FlagValueSet) (err error) { - flags.VisitAll(func(flag FlagValue) { - if err = v.BindFlagValue(flag.Name(), flag); err != nil { - return - } - }) - return nil -} - -// BindFlagValue binds a specific key to a FlagValue. -// Example (where serverCmd is a Cobra instance): -// -// serverCmd.Flags().Int("port", 1138, "Port to run Application server on") -// Viper.BindFlagValue("port", serverCmd.Flags().Lookup("port")) -// -func BindFlagValue(key string, flag FlagValue) error { return v.BindFlagValue(key, flag) } -func (v *Viper) BindFlagValue(key string, flag FlagValue) error { - if flag == nil { - return fmt.Errorf("flag for %q is nil", key) - } - v.pflags[strings.ToLower(key)] = flag - return nil -} - -// BindEnv binds a Viper key to a ENV variable. -// ENV variables are case sensitive. -// If only a key is provided, it will use the env key matching the key, uppercased. -// EnvPrefix will be used when set when env name is not provided. -func BindEnv(input ...string) error { return v.BindEnv(input...) } -func (v *Viper) BindEnv(input ...string) error { - var key, envkey string - if len(input) == 0 { - return fmt.Errorf("BindEnv missing key to bind to") - } - - key = strings.ToLower(input[0]) - - if len(input) == 1 { - envkey = v.mergeWithEnvPrefix(key) - } else { - envkey = input[1] - } - - v.env[key] = envkey - - return nil -} - -// Given a key, find the value. -// Viper will check in the following order: -// flag, env, config file, key/value store, default. -// Viper will check to see if an alias exists first. -// Note: this assumes a lower-cased key given. -func (v *Viper) find(lcaseKey string) interface{} { - - var ( - val interface{} - exists bool - path = strings.Split(lcaseKey, v.keyDelim) - nested = len(path) > 1 - ) - - // compute the path through the nested maps to the nested value - if nested && v.isPathShadowedInDeepMap(path, castMapStringToMapInterface(v.aliases)) != "" { - return nil - } - - // if the requested key is an alias, then return the proper key - lcaseKey = v.realKey(lcaseKey) - path = strings.Split(lcaseKey, v.keyDelim) - nested = len(path) > 1 - - // Set() override first - val = v.searchMap(v.override, path) - if val != nil { - return val - } - if nested && v.isPathShadowedInDeepMap(path, v.override) != "" { - return nil - } - - // PFlag override next - flag, exists := v.pflags[lcaseKey] - if exists && flag.HasChanged() { - switch flag.ValueType() { - case "int", "int8", "int16", "int32", "int64": - return cast.ToInt(flag.ValueString()) - case "bool": - return cast.ToBool(flag.ValueString()) - case "stringSlice": - s := strings.TrimPrefix(flag.ValueString(), "[") - s = strings.TrimSuffix(s, "]") - res, _ := readAsCSV(s) - return res - default: - return flag.ValueString() - } - } - if nested && v.isPathShadowedInFlatMap(path, v.pflags) != "" { - return nil - } - - // Env override next - if v.automaticEnvApplied { - // even if it hasn't been registered, if automaticEnv is used, - // check any Get request - if val = v.getEnv(v.mergeWithEnvPrefix(lcaseKey)); val != "" { - return val - } - if nested && v.isPathShadowedInAutoEnv(path) != "" { - return nil - } - } - envkey, exists := v.env[lcaseKey] - if exists { - if val = v.getEnv(envkey); val != "" { - return val - } - } - if nested && v.isPathShadowedInFlatMap(path, v.env) != "" { - return nil - } - - // Config file next - val = v.searchMapWithPathPrefixes(v.config, path) - if val != nil { - return val - } - if nested && v.isPathShadowedInDeepMap(path, v.config) != "" { - return nil - } - - // K/V store next - val = v.searchMap(v.kvstore, path) - if val != nil { - return val - } - if nested && v.isPathShadowedInDeepMap(path, v.kvstore) != "" { - return nil - } - - // Default next - val = v.searchMap(v.defaults, path) - if val != nil { - return val - } - if nested && v.isPathShadowedInDeepMap(path, v.defaults) != "" { - return nil - } - - // last chance: if no other value is returned and a flag does exist for the value, - // get the flag's value even if the flag's value has not changed - if flag, exists := v.pflags[lcaseKey]; exists { - switch flag.ValueType() { - case "int", "int8", "int16", "int32", "int64": - return cast.ToInt(flag.ValueString()) - case "bool": - return cast.ToBool(flag.ValueString()) - case "stringSlice": - s := strings.TrimPrefix(flag.ValueString(), "[") - s = strings.TrimSuffix(s, "]") - res, _ := readAsCSV(s) - return res - default: - return flag.ValueString() - } - } - // last item, no need to check shadowing - - return nil -} - -func readAsCSV(val string) ([]string, error) { - if val == "" { - return []string{}, nil - } - stringReader := strings.NewReader(val) - csvReader := csv.NewReader(stringReader) - return csvReader.Read() -} - -// IsSet checks to see if the key has been set in any of the data locations. -// IsSet is case-insensitive for a key. -func IsSet(key string) bool { return v.IsSet(key) } -func (v *Viper) IsSet(key string) bool { - lcaseKey := strings.ToLower(key) - val := v.find(lcaseKey) - return val != nil -} - -// AutomaticEnv has Viper check ENV variables for all. -// keys set in config, default & flags -func AutomaticEnv() { v.AutomaticEnv() } -func (v *Viper) AutomaticEnv() { - v.automaticEnvApplied = true -} - -// SetEnvKeyReplacer sets the strings.Replacer on the viper object -// Useful for mapping an environmental variable to a key that does -// not match it. -func SetEnvKeyReplacer(r *strings.Replacer) { v.SetEnvKeyReplacer(r) } -func (v *Viper) SetEnvKeyReplacer(r *strings.Replacer) { - v.envKeyReplacer = r -} - -// Aliases provide another accessor for the same key. -// This enables one to change a name without breaking the application -func RegisterAlias(alias string, key string) { v.RegisterAlias(alias, key) } -func (v *Viper) RegisterAlias(alias string, key string) { - v.registerAlias(alias, strings.ToLower(key)) -} - -func (v *Viper) registerAlias(alias string, key string) { - alias = strings.ToLower(alias) - if alias != key && alias != v.realKey(key) { - _, exists := v.aliases[alias] - - if !exists { - // if we alias something that exists in one of the maps to another - // name, we'll never be able to get that value using the original - // name, so move the config value to the new realkey. - if val, ok := v.config[alias]; ok { - delete(v.config, alias) - v.config[key] = val - } - if val, ok := v.kvstore[alias]; ok { - delete(v.kvstore, alias) - v.kvstore[key] = val - } - if val, ok := v.defaults[alias]; ok { - delete(v.defaults, alias) - v.defaults[key] = val - } - if val, ok := v.override[alias]; ok { - delete(v.override, alias) - v.override[key] = val - } - v.aliases[alias] = key - } - } else { - jww.WARN.Println("Creating circular reference alias", alias, key, v.realKey(key)) - } -} - -func (v *Viper) realKey(key string) string { - newkey, exists := v.aliases[key] - if exists { - jww.DEBUG.Println("Alias", key, "to", newkey) - return v.realKey(newkey) - } - return key -} - -// InConfig checks to see if the given key (or an alias) is in the config file. -func InConfig(key string) bool { return v.InConfig(key) } -func (v *Viper) InConfig(key string) bool { - // if the requested key is an alias, then return the proper key - key = v.realKey(key) - - _, exists := v.config[key] - return exists -} - -// SetDefault sets the default value for this key. -// SetDefault is case-insensitive for a key. -// Default only used when no value is provided by the user via flag, config or ENV. -func SetDefault(key string, value interface{}) { v.SetDefault(key, value) } -func (v *Viper) SetDefault(key string, value interface{}) { - // If alias passed in, then set the proper default - key = v.realKey(strings.ToLower(key)) - value = toCaseInsensitiveValue(value) - - path := strings.Split(key, v.keyDelim) - lastKey := strings.ToLower(path[len(path)-1]) - deepestMap := deepSearch(v.defaults, path[0:len(path)-1]) - - // set innermost value - deepestMap[lastKey] = value -} - -// Set sets the value for the key in the override regiser. -// Set is case-insensitive for a key. -// Will be used instead of values obtained via -// flags, config file, ENV, default, or key/value store. -func Set(key string, value interface{}) { v.Set(key, value) } -func (v *Viper) Set(key string, value interface{}) { - // If alias passed in, then set the proper override - key = v.realKey(strings.ToLower(key)) - value = toCaseInsensitiveValue(value) - - path := strings.Split(key, v.keyDelim) - lastKey := strings.ToLower(path[len(path)-1]) - deepestMap := deepSearch(v.override, path[0:len(path)-1]) - - // set innermost value - deepestMap[lastKey] = value -} - -// ReadInConfig will discover and load the configuration file from disk -// and key/value stores, searching in one of the defined paths. -func ReadInConfig() error { return v.ReadInConfig() } -func (v *Viper) ReadInConfig() error { - jww.INFO.Println("Attempting to read in config file") - filename, err := v.getConfigFile() - if err != nil { - return err - } - - if !stringInSlice(v.getConfigType(), SupportedExts) { - return UnsupportedConfigError(v.getConfigType()) - } - - file, err := afero.ReadFile(v.fs, filename) - if err != nil { - return err - } - - config := make(map[string]interface{}) - - err = v.unmarshalReader(bytes.NewReader(file), config) - if err != nil { - return err - } - - v.config = config - return nil -} - -// MergeInConfig merges a new configuration with an existing config. -func MergeInConfig() error { return v.MergeInConfig() } -func (v *Viper) MergeInConfig() error { - jww.INFO.Println("Attempting to merge in config file") - filename, err := v.getConfigFile() - if err != nil { - return err - } - - if !stringInSlice(v.getConfigType(), SupportedExts) { - return UnsupportedConfigError(v.getConfigType()) - } - - file, err := afero.ReadFile(v.fs, filename) - if err != nil { - return err - } - - return v.MergeConfig(bytes.NewReader(file)) -} - -// ReadConfig will read a configuration file, setting existing keys to nil if the -// key does not exist in the file. -func ReadConfig(in io.Reader) error { return v.ReadConfig(in) } -func (v *Viper) ReadConfig(in io.Reader) error { - v.config = make(map[string]interface{}) - return v.unmarshalReader(in, v.config) -} - -// MergeConfig merges a new configuration with an existing config. -func MergeConfig(in io.Reader) error { return v.MergeConfig(in) } -func (v *Viper) MergeConfig(in io.Reader) error { - if v.config == nil { - v.config = make(map[string]interface{}) - } - cfg := make(map[string]interface{}) - if err := v.unmarshalReader(in, cfg); err != nil { - return err - } - mergeMaps(cfg, v.config, nil) - return nil -} - -func keyExists(k string, m map[string]interface{}) string { - lk := strings.ToLower(k) - for mk := range m { - lmk := strings.ToLower(mk) - if lmk == lk { - return mk - } - } - return "" -} - -func castToMapStringInterface( - src map[interface{}]interface{}) map[string]interface{} { - tgt := map[string]interface{}{} - for k, v := range src { - tgt[fmt.Sprintf("%v", k)] = v - } - return tgt -} - -func castMapStringToMapInterface(src map[string]string) map[string]interface{} { - tgt := map[string]interface{}{} - for k, v := range src { - tgt[k] = v - } - return tgt -} - -func castMapFlagToMapInterface(src map[string]FlagValue) map[string]interface{} { - tgt := map[string]interface{}{} - for k, v := range src { - tgt[k] = v - } - return tgt -} - -// mergeMaps merges two maps. The `itgt` parameter is for handling go-yaml's -// insistence on parsing nested structures as `map[interface{}]interface{}` -// instead of using a `string` as the key for nest structures beyond one level -// deep. Both map types are supported as there is a go-yaml fork that uses -// `map[string]interface{}` instead. -func mergeMaps( - src, tgt map[string]interface{}, itgt map[interface{}]interface{}) { - for sk, sv := range src { - tk := keyExists(sk, tgt) - if tk == "" { - jww.TRACE.Printf("tk=\"\", tgt[%s]=%v", sk, sv) - tgt[sk] = sv - if itgt != nil { - itgt[sk] = sv - } - continue - } - - tv, ok := tgt[tk] - if !ok { - jww.TRACE.Printf("tgt[%s] != ok, tgt[%s]=%v", tk, sk, sv) - tgt[sk] = sv - if itgt != nil { - itgt[sk] = sv - } - continue - } - - svType := reflect.TypeOf(sv) - tvType := reflect.TypeOf(tv) - if svType != tvType { - jww.ERROR.Printf( - "svType != tvType; key=%s, st=%v, tt=%v, sv=%v, tv=%v", - sk, svType, tvType, sv, tv) - continue - } - - jww.TRACE.Printf("processing key=%s, st=%v, tt=%v, sv=%v, tv=%v", - sk, svType, tvType, sv, tv) - - switch ttv := tv.(type) { - case map[interface{}]interface{}: - jww.TRACE.Printf("merging maps (must convert)") - tsv := sv.(map[interface{}]interface{}) - ssv := castToMapStringInterface(tsv) - stv := castToMapStringInterface(ttv) - mergeMaps(ssv, stv, ttv) - case map[string]interface{}: - jww.TRACE.Printf("merging maps") - mergeMaps(sv.(map[string]interface{}), ttv, nil) - default: - jww.TRACE.Printf("setting value") - tgt[tk] = sv - if itgt != nil { - itgt[tk] = sv - } - } - } -} - -// ReadRemoteConfig attempts to get configuration from a remote source -// and read it in the remote configuration registry. -func ReadRemoteConfig() error { return v.ReadRemoteConfig() } -func (v *Viper) ReadRemoteConfig() error { - return v.getKeyValueConfig() -} - -func WatchRemoteConfig() error { return v.WatchRemoteConfig() } -func (v *Viper) WatchRemoteConfig() error { - return v.watchKeyValueConfig() -} - -func (v *Viper) WatchRemoteConfigOnChannel() error { - return v.watchKeyValueConfigOnChannel() -} - -// Unmarshal a Reader into a map. -// Should probably be an unexported function. -func unmarshalReader(in io.Reader, c map[string]interface{}) error { - return v.unmarshalReader(in, c) -} - -func (v *Viper) unmarshalReader(in io.Reader, c map[string]interface{}) error { - return unmarshallConfigReader(in, c, v.getConfigType()) -} - -func (v *Viper) insensitiviseMaps() { - insensitiviseMap(v.config) - insensitiviseMap(v.defaults) - insensitiviseMap(v.override) - insensitiviseMap(v.kvstore) -} - -// Retrieve the first found remote configuration. -func (v *Viper) getKeyValueConfig() error { - if RemoteConfig == nil { - return RemoteConfigError("Enable the remote features by doing a blank import of the viper/remote package: '_ github.com/spf13/viper/remote'") - } - - for _, rp := range v.remoteProviders { - val, err := v.getRemoteConfig(rp) - if err != nil { - continue - } - v.kvstore = val - return nil - } - return RemoteConfigError("No Files Found") -} - -func (v *Viper) getRemoteConfig(provider RemoteProvider) (map[string]interface{}, error) { - reader, err := RemoteConfig.Get(provider) - if err != nil { - return nil, err - } - err = v.unmarshalReader(reader, v.kvstore) - return v.kvstore, err -} - -// Retrieve the first found remote configuration. -func (v *Viper) watchKeyValueConfigOnChannel() error { - for _, rp := range v.remoteProviders { - respc, _ := RemoteConfig.WatchChannel(rp) - //Todo: Add quit channel - go func(rc <-chan *RemoteResponse) { - for { - b := <-rc - reader := bytes.NewReader(b.Value) - v.unmarshalReader(reader, v.kvstore) - } - }(respc) - return nil - } - return RemoteConfigError("No Files Found") -} - -// Retrieve the first found remote configuration. -func (v *Viper) watchKeyValueConfig() error { - for _, rp := range v.remoteProviders { - val, err := v.watchRemoteConfig(rp) - if err != nil { - continue - } - v.kvstore = val - return nil - } - return RemoteConfigError("No Files Found") -} - -func (v *Viper) watchRemoteConfig(provider RemoteProvider) (map[string]interface{}, error) { - reader, err := RemoteConfig.Watch(provider) - if err != nil { - return nil, err - } - err = v.unmarshalReader(reader, v.kvstore) - return v.kvstore, err -} - -// AllKeys returns all keys holding a value, regardless of where they are set. -// Nested keys are returned with a v.keyDelim (= ".") separator -func AllKeys() []string { return v.AllKeys() } -func (v *Viper) AllKeys() []string { - m := map[string]bool{} - // add all paths, by order of descending priority to ensure correct shadowing - m = v.flattenAndMergeMap(m, castMapStringToMapInterface(v.aliases), "") - m = v.flattenAndMergeMap(m, v.override, "") - m = v.mergeFlatMap(m, castMapFlagToMapInterface(v.pflags)) - m = v.mergeFlatMap(m, castMapStringToMapInterface(v.env)) - m = v.flattenAndMergeMap(m, v.config, "") - m = v.flattenAndMergeMap(m, v.kvstore, "") - m = v.flattenAndMergeMap(m, v.defaults, "") - - // convert set of paths to list - a := []string{} - for x := range m { - a = append(a, x) - } - return a -} - -// flattenAndMergeMap recursively flattens the given map into a map[string]bool -// of key paths (used as a set, easier to manipulate than a []string): -// - each path is merged into a single key string, delimited with v.keyDelim (= ".") -// - if a path is shadowed by an earlier value in the initial shadow map, -// it is skipped. -// The resulting set of paths is merged to the given shadow set at the same time. -func (v *Viper) flattenAndMergeMap(shadow map[string]bool, m map[string]interface{}, prefix string) map[string]bool { - if shadow != nil && prefix != "" && shadow[prefix] { - // prefix is shadowed => nothing more to flatten - return shadow - } - if shadow == nil { - shadow = make(map[string]bool) - } - - var m2 map[string]interface{} - if prefix != "" { - prefix += v.keyDelim - } - for k, val := range m { - fullKey := prefix + k - switch val.(type) { - case map[string]interface{}: - m2 = val.(map[string]interface{}) - case map[interface{}]interface{}: - m2 = cast.ToStringMap(val) - default: - // immediate value - shadow[strings.ToLower(fullKey)] = true - continue - } - // recursively merge to shadow map - shadow = v.flattenAndMergeMap(shadow, m2, fullKey) - } - return shadow -} - -// mergeFlatMap merges the given maps, excluding values of the second map -// shadowed by values from the first map. -func (v *Viper) mergeFlatMap(shadow map[string]bool, m map[string]interface{}) map[string]bool { - // scan keys -outer: - for k, _ := range m { - path := strings.Split(k, v.keyDelim) - // scan intermediate paths - var parentKey string - for i := 1; i < len(path); i++ { - parentKey = strings.Join(path[0:i], v.keyDelim) - if shadow[parentKey] { - // path is shadowed, continue - continue outer - } - } - // add key - shadow[strings.ToLower(k)] = true - } - return shadow -} - -// AllSettings merges all settings and returns them as a map[string]interface{}. -func AllSettings() map[string]interface{} { return v.AllSettings() } -func (v *Viper) AllSettings() map[string]interface{} { - m := map[string]interface{}{} - // start from the list of keys, and construct the map one value at a time - for _, k := range v.AllKeys() { - value := v.Get(k) - if value == nil { - // should not happen, since AllKeys() returns only keys holding a value, - // check just in case anything changes - continue - } - path := strings.Split(k, v.keyDelim) - lastKey := strings.ToLower(path[len(path)-1]) - deepestMap := deepSearch(m, path[0:len(path)-1]) - // set innermost value - deepestMap[lastKey] = value - } - return m -} - -// SetFs sets the filesystem to use to read configuration. -func SetFs(fs afero.Fs) { v.SetFs(fs) } -func (v *Viper) SetFs(fs afero.Fs) { - v.fs = fs -} - -// SetConfigName sets name for the config file. -// Does not include extension. -func SetConfigName(in string) { v.SetConfigName(in) } -func (v *Viper) SetConfigName(in string) { - if in != "" { - v.configName = in - v.configFile = "" - } -} - -// SetConfigType sets the type of the configuration returned by the -// remote source, e.g. "json". -func SetConfigType(in string) { v.SetConfigType(in) } -func (v *Viper) SetConfigType(in string) { - if in != "" { - v.configType = in - } -} - -func (v *Viper) getConfigType() string { - if v.configType != "" { - return v.configType - } - - cf, err := v.getConfigFile() - if err != nil { - return "" - } - - ext := filepath.Ext(cf) - - if len(ext) > 1 { - return ext[1:] - } - - return "" -} - -func (v *Viper) getConfigFile() (string, error) { - // if explicitly set, then use it - if v.configFile != "" { - return v.configFile, nil - } - - cf, err := v.findConfigFile() - if err != nil { - return "", err - } - - v.configFile = cf - return v.getConfigFile() -} - -func (v *Viper) searchInPath(in string) (filename string) { - jww.DEBUG.Println("Searching for config in ", in) - for _, ext := range SupportedExts { - jww.DEBUG.Println("Checking for", filepath.Join(in, v.configName+"."+ext)) - if b, _ := exists(filepath.Join(in, v.configName+"."+ext)); b { - jww.DEBUG.Println("Found: ", filepath.Join(in, v.configName+"."+ext)) - return filepath.Join(in, v.configName+"."+ext) - } - } - - return "" -} - -// Search all configPaths for any config file. -// Returns the first path that exists (and is a config file). -func (v *Viper) findConfigFile() (string, error) { - jww.INFO.Println("Searching for config in ", v.configPaths) - - for _, cp := range v.configPaths { - file := v.searchInPath(cp) - if file != "" { - return file, nil - } - } - return "", ConfigFileNotFoundError{v.configName, fmt.Sprintf("%s", v.configPaths)} -} - -// Debug prints all configuration registries for debugging -// purposes. -func Debug() { v.Debug() } -func (v *Viper) Debug() { - fmt.Printf("Aliases:\n%#v\n", v.aliases) - fmt.Printf("Override:\n%#v\n", v.override) - fmt.Printf("PFlags:\n%#v\n", v.pflags) - fmt.Printf("Env:\n%#v\n", v.env) - fmt.Printf("Key/Value Store:\n%#v\n", v.kvstore) - fmt.Printf("Config:\n%#v\n", v.config) - fmt.Printf("Defaults:\n%#v\n", v.defaults) -} diff --git a/vendor/golang.org/x/crypto/LICENSE b/vendor/golang.org/x/crypto/LICENSE deleted file mode 100644 index 6a66aea..0000000 --- a/vendor/golang.org/x/crypto/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2009 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/golang.org/x/crypto/PATENTS b/vendor/golang.org/x/crypto/PATENTS deleted file mode 100644 index 7330990..0000000 --- a/vendor/golang.org/x/crypto/PATENTS +++ /dev/null @@ -1,22 +0,0 @@ -Additional IP Rights Grant (Patents) - -"This implementation" means the copyrightable works distributed by -Google as part of the Go project. - -Google hereby grants to You a perpetual, worldwide, non-exclusive, -no-charge, royalty-free, irrevocable (except as stated in this section) -patent license to make, have made, use, offer to sell, sell, import, -transfer and otherwise run, modify and propagate the contents of this -implementation of Go, where such license applies only to those patent -claims, both currently owned or controlled by Google and acquired in -the future, licensable by Google that are necessarily infringed by this -implementation of Go. This grant does not include claims that would be -infringed only as a consequence of further modification of this -implementation. If you or your agent or exclusive licensee institute or -order or agree to the institution of patent litigation against any -entity (including a cross-claim or counterclaim in a lawsuit) alleging -that this implementation of Go or any code incorporated within this -implementation of Go constitutes direct or contributory patent -infringement, or inducement of patent infringement, then any patent -rights granted to you under this License for this implementation of Go -shall terminate as of the date such litigation is filed. diff --git a/vendor/golang.org/x/crypto/curve25519/const_amd64.s b/vendor/golang.org/x/crypto/curve25519/const_amd64.s deleted file mode 100644 index 797f9b0..0000000 --- a/vendor/golang.org/x/crypto/curve25519/const_amd64.s +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// This code was translated into a form compatible with 6a from the public -// domain sources in SUPERCOP: http://bench.cr.yp.to/supercop.html - -// +build amd64,!gccgo,!appengine - -DATA ·REDMASK51(SB)/8, $0x0007FFFFFFFFFFFF -GLOBL ·REDMASK51(SB), 8, $8 - -DATA ·_121666_213(SB)/8, $996687872 -GLOBL ·_121666_213(SB), 8, $8 - -DATA ·_2P0(SB)/8, $0xFFFFFFFFFFFDA -GLOBL ·_2P0(SB), 8, $8 - -DATA ·_2P1234(SB)/8, $0xFFFFFFFFFFFFE -GLOBL ·_2P1234(SB), 8, $8 diff --git a/vendor/golang.org/x/crypto/curve25519/cswap_amd64.s b/vendor/golang.org/x/crypto/curve25519/cswap_amd64.s deleted file mode 100644 index 45484d1..0000000 --- a/vendor/golang.org/x/crypto/curve25519/cswap_amd64.s +++ /dev/null @@ -1,88 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// This code was translated into a form compatible with 6a from the public -// domain sources in SUPERCOP: http://bench.cr.yp.to/supercop.html - -// +build amd64,!gccgo,!appengine - -// func cswap(inout *[5]uint64, v uint64) -TEXT ·cswap(SB),7,$0 - MOVQ inout+0(FP),DI - MOVQ v+8(FP),SI - - CMPQ SI,$1 - MOVQ 0(DI),SI - MOVQ 80(DI),DX - MOVQ 8(DI),CX - MOVQ 88(DI),R8 - MOVQ SI,R9 - CMOVQEQ DX,SI - CMOVQEQ R9,DX - MOVQ CX,R9 - CMOVQEQ R8,CX - CMOVQEQ R9,R8 - MOVQ SI,0(DI) - MOVQ DX,80(DI) - MOVQ CX,8(DI) - MOVQ R8,88(DI) - MOVQ 16(DI),SI - MOVQ 96(DI),DX - MOVQ 24(DI),CX - MOVQ 104(DI),R8 - MOVQ SI,R9 - CMOVQEQ DX,SI - CMOVQEQ R9,DX - MOVQ CX,R9 - CMOVQEQ R8,CX - CMOVQEQ R9,R8 - MOVQ SI,16(DI) - MOVQ DX,96(DI) - MOVQ CX,24(DI) - MOVQ R8,104(DI) - MOVQ 32(DI),SI - MOVQ 112(DI),DX - MOVQ 40(DI),CX - MOVQ 120(DI),R8 - MOVQ SI,R9 - CMOVQEQ DX,SI - CMOVQEQ R9,DX - MOVQ CX,R9 - CMOVQEQ R8,CX - CMOVQEQ R9,R8 - MOVQ SI,32(DI) - MOVQ DX,112(DI) - MOVQ CX,40(DI) - MOVQ R8,120(DI) - MOVQ 48(DI),SI - MOVQ 128(DI),DX - MOVQ 56(DI),CX - MOVQ 136(DI),R8 - MOVQ SI,R9 - CMOVQEQ DX,SI - CMOVQEQ R9,DX - MOVQ CX,R9 - CMOVQEQ R8,CX - CMOVQEQ R9,R8 - MOVQ SI,48(DI) - MOVQ DX,128(DI) - MOVQ CX,56(DI) - MOVQ R8,136(DI) - MOVQ 64(DI),SI - MOVQ 144(DI),DX - MOVQ 72(DI),CX - MOVQ 152(DI),R8 - MOVQ SI,R9 - CMOVQEQ DX,SI - CMOVQEQ R9,DX - MOVQ CX,R9 - CMOVQEQ R8,CX - CMOVQEQ R9,R8 - MOVQ SI,64(DI) - MOVQ DX,144(DI) - MOVQ CX,72(DI) - MOVQ R8,152(DI) - MOVQ DI,AX - MOVQ SI,DX - RET diff --git a/vendor/golang.org/x/crypto/curve25519/curve25519.go b/vendor/golang.org/x/crypto/curve25519/curve25519.go deleted file mode 100644 index 6918c47..0000000 --- a/vendor/golang.org/x/crypto/curve25519/curve25519.go +++ /dev/null @@ -1,841 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// We have a implementation in amd64 assembly so this code is only run on -// non-amd64 platforms. The amd64 assembly does not support gccgo. -// +build !amd64 gccgo appengine - -package curve25519 - -// This code is a port of the public domain, "ref10" implementation of -// curve25519 from SUPERCOP 20130419 by D. J. Bernstein. - -// fieldElement represents an element of the field GF(2^255 - 19). An element -// t, entries t[0]...t[9], represents the integer t[0]+2^26 t[1]+2^51 t[2]+2^77 -// t[3]+2^102 t[4]+...+2^230 t[9]. Bounds on each t[i] vary depending on -// context. -type fieldElement [10]int32 - -func feZero(fe *fieldElement) { - for i := range fe { - fe[i] = 0 - } -} - -func feOne(fe *fieldElement) { - feZero(fe) - fe[0] = 1 -} - -func feAdd(dst, a, b *fieldElement) { - for i := range dst { - dst[i] = a[i] + b[i] - } -} - -func feSub(dst, a, b *fieldElement) { - for i := range dst { - dst[i] = a[i] - b[i] - } -} - -func feCopy(dst, src *fieldElement) { - for i := range dst { - dst[i] = src[i] - } -} - -// feCSwap replaces (f,g) with (g,f) if b == 1; replaces (f,g) with (f,g) if b == 0. -// -// Preconditions: b in {0,1}. -func feCSwap(f, g *fieldElement, b int32) { - var x fieldElement - b = -b - for i := range x { - x[i] = b & (f[i] ^ g[i]) - } - - for i := range f { - f[i] ^= x[i] - } - for i := range g { - g[i] ^= x[i] - } -} - -// load3 reads a 24-bit, little-endian value from in. -func load3(in []byte) int64 { - var r int64 - r = int64(in[0]) - r |= int64(in[1]) << 8 - r |= int64(in[2]) << 16 - return r -} - -// load4 reads a 32-bit, little-endian value from in. -func load4(in []byte) int64 { - var r int64 - r = int64(in[0]) - r |= int64(in[1]) << 8 - r |= int64(in[2]) << 16 - r |= int64(in[3]) << 24 - return r -} - -func feFromBytes(dst *fieldElement, src *[32]byte) { - h0 := load4(src[:]) - h1 := load3(src[4:]) << 6 - h2 := load3(src[7:]) << 5 - h3 := load3(src[10:]) << 3 - h4 := load3(src[13:]) << 2 - h5 := load4(src[16:]) - h6 := load3(src[20:]) << 7 - h7 := load3(src[23:]) << 5 - h8 := load3(src[26:]) << 4 - h9 := load3(src[29:]) << 2 - - var carry [10]int64 - carry[9] = (h9 + 1<<24) >> 25 - h0 += carry[9] * 19 - h9 -= carry[9] << 25 - carry[1] = (h1 + 1<<24) >> 25 - h2 += carry[1] - h1 -= carry[1] << 25 - carry[3] = (h3 + 1<<24) >> 25 - h4 += carry[3] - h3 -= carry[3] << 25 - carry[5] = (h5 + 1<<24) >> 25 - h6 += carry[5] - h5 -= carry[5] << 25 - carry[7] = (h7 + 1<<24) >> 25 - h8 += carry[7] - h7 -= carry[7] << 25 - - carry[0] = (h0 + 1<<25) >> 26 - h1 += carry[0] - h0 -= carry[0] << 26 - carry[2] = (h2 + 1<<25) >> 26 - h3 += carry[2] - h2 -= carry[2] << 26 - carry[4] = (h4 + 1<<25) >> 26 - h5 += carry[4] - h4 -= carry[4] << 26 - carry[6] = (h6 + 1<<25) >> 26 - h7 += carry[6] - h6 -= carry[6] << 26 - carry[8] = (h8 + 1<<25) >> 26 - h9 += carry[8] - h8 -= carry[8] << 26 - - dst[0] = int32(h0) - dst[1] = int32(h1) - dst[2] = int32(h2) - dst[3] = int32(h3) - dst[4] = int32(h4) - dst[5] = int32(h5) - dst[6] = int32(h6) - dst[7] = int32(h7) - dst[8] = int32(h8) - dst[9] = int32(h9) -} - -// feToBytes marshals h to s. -// Preconditions: -// |h| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. -// -// Write p=2^255-19; q=floor(h/p). -// Basic claim: q = floor(2^(-255)(h + 19 2^(-25)h9 + 2^(-1))). -// -// Proof: -// Have |h|<=p so |q|<=1 so |19^2 2^(-255) q|<1/4. -// Also have |h-2^230 h9|<2^230 so |19 2^(-255)(h-2^230 h9)|<1/4. -// -// Write y=2^(-1)-19^2 2^(-255)q-19 2^(-255)(h-2^230 h9). -// Then 0> 25 - q = (h[0] + q) >> 26 - q = (h[1] + q) >> 25 - q = (h[2] + q) >> 26 - q = (h[3] + q) >> 25 - q = (h[4] + q) >> 26 - q = (h[5] + q) >> 25 - q = (h[6] + q) >> 26 - q = (h[7] + q) >> 25 - q = (h[8] + q) >> 26 - q = (h[9] + q) >> 25 - - // Goal: Output h-(2^255-19)q, which is between 0 and 2^255-20. - h[0] += 19 * q - // Goal: Output h-2^255 q, which is between 0 and 2^255-20. - - carry[0] = h[0] >> 26 - h[1] += carry[0] - h[0] -= carry[0] << 26 - carry[1] = h[1] >> 25 - h[2] += carry[1] - h[1] -= carry[1] << 25 - carry[2] = h[2] >> 26 - h[3] += carry[2] - h[2] -= carry[2] << 26 - carry[3] = h[3] >> 25 - h[4] += carry[3] - h[3] -= carry[3] << 25 - carry[4] = h[4] >> 26 - h[5] += carry[4] - h[4] -= carry[4] << 26 - carry[5] = h[5] >> 25 - h[6] += carry[5] - h[5] -= carry[5] << 25 - carry[6] = h[6] >> 26 - h[7] += carry[6] - h[6] -= carry[6] << 26 - carry[7] = h[7] >> 25 - h[8] += carry[7] - h[7] -= carry[7] << 25 - carry[8] = h[8] >> 26 - h[9] += carry[8] - h[8] -= carry[8] << 26 - carry[9] = h[9] >> 25 - h[9] -= carry[9] << 25 - // h10 = carry9 - - // Goal: Output h[0]+...+2^255 h10-2^255 q, which is between 0 and 2^255-20. - // Have h[0]+...+2^230 h[9] between 0 and 2^255-1; - // evidently 2^255 h10-2^255 q = 0. - // Goal: Output h[0]+...+2^230 h[9]. - - s[0] = byte(h[0] >> 0) - s[1] = byte(h[0] >> 8) - s[2] = byte(h[0] >> 16) - s[3] = byte((h[0] >> 24) | (h[1] << 2)) - s[4] = byte(h[1] >> 6) - s[5] = byte(h[1] >> 14) - s[6] = byte((h[1] >> 22) | (h[2] << 3)) - s[7] = byte(h[2] >> 5) - s[8] = byte(h[2] >> 13) - s[9] = byte((h[2] >> 21) | (h[3] << 5)) - s[10] = byte(h[3] >> 3) - s[11] = byte(h[3] >> 11) - s[12] = byte((h[3] >> 19) | (h[4] << 6)) - s[13] = byte(h[4] >> 2) - s[14] = byte(h[4] >> 10) - s[15] = byte(h[4] >> 18) - s[16] = byte(h[5] >> 0) - s[17] = byte(h[5] >> 8) - s[18] = byte(h[5] >> 16) - s[19] = byte((h[5] >> 24) | (h[6] << 1)) - s[20] = byte(h[6] >> 7) - s[21] = byte(h[6] >> 15) - s[22] = byte((h[6] >> 23) | (h[7] << 3)) - s[23] = byte(h[7] >> 5) - s[24] = byte(h[7] >> 13) - s[25] = byte((h[7] >> 21) | (h[8] << 4)) - s[26] = byte(h[8] >> 4) - s[27] = byte(h[8] >> 12) - s[28] = byte((h[8] >> 20) | (h[9] << 6)) - s[29] = byte(h[9] >> 2) - s[30] = byte(h[9] >> 10) - s[31] = byte(h[9] >> 18) -} - -// feMul calculates h = f * g -// Can overlap h with f or g. -// -// Preconditions: -// |f| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. -// |g| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. -// -// Postconditions: -// |h| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. -// -// Notes on implementation strategy: -// -// Using schoolbook multiplication. -// Karatsuba would save a little in some cost models. -// -// Most multiplications by 2 and 19 are 32-bit precomputations; -// cheaper than 64-bit postcomputations. -// -// There is one remaining multiplication by 19 in the carry chain; -// one *19 precomputation can be merged into this, -// but the resulting data flow is considerably less clean. -// -// There are 12 carries below. -// 10 of them are 2-way parallelizable and vectorizable. -// Can get away with 11 carries, but then data flow is much deeper. -// -// With tighter constraints on inputs can squeeze carries into int32. -func feMul(h, f, g *fieldElement) { - f0 := f[0] - f1 := f[1] - f2 := f[2] - f3 := f[3] - f4 := f[4] - f5 := f[5] - f6 := f[6] - f7 := f[7] - f8 := f[8] - f9 := f[9] - g0 := g[0] - g1 := g[1] - g2 := g[2] - g3 := g[3] - g4 := g[4] - g5 := g[5] - g6 := g[6] - g7 := g[7] - g8 := g[8] - g9 := g[9] - g1_19 := 19 * g1 // 1.4*2^29 - g2_19 := 19 * g2 // 1.4*2^30; still ok - g3_19 := 19 * g3 - g4_19 := 19 * g4 - g5_19 := 19 * g5 - g6_19 := 19 * g6 - g7_19 := 19 * g7 - g8_19 := 19 * g8 - g9_19 := 19 * g9 - f1_2 := 2 * f1 - f3_2 := 2 * f3 - f5_2 := 2 * f5 - f7_2 := 2 * f7 - f9_2 := 2 * f9 - f0g0 := int64(f0) * int64(g0) - f0g1 := int64(f0) * int64(g1) - f0g2 := int64(f0) * int64(g2) - f0g3 := int64(f0) * int64(g3) - f0g4 := int64(f0) * int64(g4) - f0g5 := int64(f0) * int64(g5) - f0g6 := int64(f0) * int64(g6) - f0g7 := int64(f0) * int64(g7) - f0g8 := int64(f0) * int64(g8) - f0g9 := int64(f0) * int64(g9) - f1g0 := int64(f1) * int64(g0) - f1g1_2 := int64(f1_2) * int64(g1) - f1g2 := int64(f1) * int64(g2) - f1g3_2 := int64(f1_2) * int64(g3) - f1g4 := int64(f1) * int64(g4) - f1g5_2 := int64(f1_2) * int64(g5) - f1g6 := int64(f1) * int64(g6) - f1g7_2 := int64(f1_2) * int64(g7) - f1g8 := int64(f1) * int64(g8) - f1g9_38 := int64(f1_2) * int64(g9_19) - f2g0 := int64(f2) * int64(g0) - f2g1 := int64(f2) * int64(g1) - f2g2 := int64(f2) * int64(g2) - f2g3 := int64(f2) * int64(g3) - f2g4 := int64(f2) * int64(g4) - f2g5 := int64(f2) * int64(g5) - f2g6 := int64(f2) * int64(g6) - f2g7 := int64(f2) * int64(g7) - f2g8_19 := int64(f2) * int64(g8_19) - f2g9_19 := int64(f2) * int64(g9_19) - f3g0 := int64(f3) * int64(g0) - f3g1_2 := int64(f3_2) * int64(g1) - f3g2 := int64(f3) * int64(g2) - f3g3_2 := int64(f3_2) * int64(g3) - f3g4 := int64(f3) * int64(g4) - f3g5_2 := int64(f3_2) * int64(g5) - f3g6 := int64(f3) * int64(g6) - f3g7_38 := int64(f3_2) * int64(g7_19) - f3g8_19 := int64(f3) * int64(g8_19) - f3g9_38 := int64(f3_2) * int64(g9_19) - f4g0 := int64(f4) * int64(g0) - f4g1 := int64(f4) * int64(g1) - f4g2 := int64(f4) * int64(g2) - f4g3 := int64(f4) * int64(g3) - f4g4 := int64(f4) * int64(g4) - f4g5 := int64(f4) * int64(g5) - f4g6_19 := int64(f4) * int64(g6_19) - f4g7_19 := int64(f4) * int64(g7_19) - f4g8_19 := int64(f4) * int64(g8_19) - f4g9_19 := int64(f4) * int64(g9_19) - f5g0 := int64(f5) * int64(g0) - f5g1_2 := int64(f5_2) * int64(g1) - f5g2 := int64(f5) * int64(g2) - f5g3_2 := int64(f5_2) * int64(g3) - f5g4 := int64(f5) * int64(g4) - f5g5_38 := int64(f5_2) * int64(g5_19) - f5g6_19 := int64(f5) * int64(g6_19) - f5g7_38 := int64(f5_2) * int64(g7_19) - f5g8_19 := int64(f5) * int64(g8_19) - f5g9_38 := int64(f5_2) * int64(g9_19) - f6g0 := int64(f6) * int64(g0) - f6g1 := int64(f6) * int64(g1) - f6g2 := int64(f6) * int64(g2) - f6g3 := int64(f6) * int64(g3) - f6g4_19 := int64(f6) * int64(g4_19) - f6g5_19 := int64(f6) * int64(g5_19) - f6g6_19 := int64(f6) * int64(g6_19) - f6g7_19 := int64(f6) * int64(g7_19) - f6g8_19 := int64(f6) * int64(g8_19) - f6g9_19 := int64(f6) * int64(g9_19) - f7g0 := int64(f7) * int64(g0) - f7g1_2 := int64(f7_2) * int64(g1) - f7g2 := int64(f7) * int64(g2) - f7g3_38 := int64(f7_2) * int64(g3_19) - f7g4_19 := int64(f7) * int64(g4_19) - f7g5_38 := int64(f7_2) * int64(g5_19) - f7g6_19 := int64(f7) * int64(g6_19) - f7g7_38 := int64(f7_2) * int64(g7_19) - f7g8_19 := int64(f7) * int64(g8_19) - f7g9_38 := int64(f7_2) * int64(g9_19) - f8g0 := int64(f8) * int64(g0) - f8g1 := int64(f8) * int64(g1) - f8g2_19 := int64(f8) * int64(g2_19) - f8g3_19 := int64(f8) * int64(g3_19) - f8g4_19 := int64(f8) * int64(g4_19) - f8g5_19 := int64(f8) * int64(g5_19) - f8g6_19 := int64(f8) * int64(g6_19) - f8g7_19 := int64(f8) * int64(g7_19) - f8g8_19 := int64(f8) * int64(g8_19) - f8g9_19 := int64(f8) * int64(g9_19) - f9g0 := int64(f9) * int64(g0) - f9g1_38 := int64(f9_2) * int64(g1_19) - f9g2_19 := int64(f9) * int64(g2_19) - f9g3_38 := int64(f9_2) * int64(g3_19) - f9g4_19 := int64(f9) * int64(g4_19) - f9g5_38 := int64(f9_2) * int64(g5_19) - f9g6_19 := int64(f9) * int64(g6_19) - f9g7_38 := int64(f9_2) * int64(g7_19) - f9g8_19 := int64(f9) * int64(g8_19) - f9g9_38 := int64(f9_2) * int64(g9_19) - h0 := f0g0 + f1g9_38 + f2g8_19 + f3g7_38 + f4g6_19 + f5g5_38 + f6g4_19 + f7g3_38 + f8g2_19 + f9g1_38 - h1 := f0g1 + f1g0 + f2g9_19 + f3g8_19 + f4g7_19 + f5g6_19 + f6g5_19 + f7g4_19 + f8g3_19 + f9g2_19 - h2 := f0g2 + f1g1_2 + f2g0 + f3g9_38 + f4g8_19 + f5g7_38 + f6g6_19 + f7g5_38 + f8g4_19 + f9g3_38 - h3 := f0g3 + f1g2 + f2g1 + f3g0 + f4g9_19 + f5g8_19 + f6g7_19 + f7g6_19 + f8g5_19 + f9g4_19 - h4 := f0g4 + f1g3_2 + f2g2 + f3g1_2 + f4g0 + f5g9_38 + f6g8_19 + f7g7_38 + f8g6_19 + f9g5_38 - h5 := f0g5 + f1g4 + f2g3 + f3g2 + f4g1 + f5g0 + f6g9_19 + f7g8_19 + f8g7_19 + f9g6_19 - h6 := f0g6 + f1g5_2 + f2g4 + f3g3_2 + f4g2 + f5g1_2 + f6g0 + f7g9_38 + f8g8_19 + f9g7_38 - h7 := f0g7 + f1g6 + f2g5 + f3g4 + f4g3 + f5g2 + f6g1 + f7g0 + f8g9_19 + f9g8_19 - h8 := f0g8 + f1g7_2 + f2g6 + f3g5_2 + f4g4 + f5g3_2 + f6g2 + f7g1_2 + f8g0 + f9g9_38 - h9 := f0g9 + f1g8 + f2g7 + f3g6 + f4g5 + f5g4 + f6g3 + f7g2 + f8g1 + f9g0 - var carry [10]int64 - - // |h0| <= (1.1*1.1*2^52*(1+19+19+19+19)+1.1*1.1*2^50*(38+38+38+38+38)) - // i.e. |h0| <= 1.2*2^59; narrower ranges for h2, h4, h6, h8 - // |h1| <= (1.1*1.1*2^51*(1+1+19+19+19+19+19+19+19+19)) - // i.e. |h1| <= 1.5*2^58; narrower ranges for h3, h5, h7, h9 - - carry[0] = (h0 + (1 << 25)) >> 26 - h1 += carry[0] - h0 -= carry[0] << 26 - carry[4] = (h4 + (1 << 25)) >> 26 - h5 += carry[4] - h4 -= carry[4] << 26 - // |h0| <= 2^25 - // |h4| <= 2^25 - // |h1| <= 1.51*2^58 - // |h5| <= 1.51*2^58 - - carry[1] = (h1 + (1 << 24)) >> 25 - h2 += carry[1] - h1 -= carry[1] << 25 - carry[5] = (h5 + (1 << 24)) >> 25 - h6 += carry[5] - h5 -= carry[5] << 25 - // |h1| <= 2^24; from now on fits into int32 - // |h5| <= 2^24; from now on fits into int32 - // |h2| <= 1.21*2^59 - // |h6| <= 1.21*2^59 - - carry[2] = (h2 + (1 << 25)) >> 26 - h3 += carry[2] - h2 -= carry[2] << 26 - carry[6] = (h6 + (1 << 25)) >> 26 - h7 += carry[6] - h6 -= carry[6] << 26 - // |h2| <= 2^25; from now on fits into int32 unchanged - // |h6| <= 2^25; from now on fits into int32 unchanged - // |h3| <= 1.51*2^58 - // |h7| <= 1.51*2^58 - - carry[3] = (h3 + (1 << 24)) >> 25 - h4 += carry[3] - h3 -= carry[3] << 25 - carry[7] = (h7 + (1 << 24)) >> 25 - h8 += carry[7] - h7 -= carry[7] << 25 - // |h3| <= 2^24; from now on fits into int32 unchanged - // |h7| <= 2^24; from now on fits into int32 unchanged - // |h4| <= 1.52*2^33 - // |h8| <= 1.52*2^33 - - carry[4] = (h4 + (1 << 25)) >> 26 - h5 += carry[4] - h4 -= carry[4] << 26 - carry[8] = (h8 + (1 << 25)) >> 26 - h9 += carry[8] - h8 -= carry[8] << 26 - // |h4| <= 2^25; from now on fits into int32 unchanged - // |h8| <= 2^25; from now on fits into int32 unchanged - // |h5| <= 1.01*2^24 - // |h9| <= 1.51*2^58 - - carry[9] = (h9 + (1 << 24)) >> 25 - h0 += carry[9] * 19 - h9 -= carry[9] << 25 - // |h9| <= 2^24; from now on fits into int32 unchanged - // |h0| <= 1.8*2^37 - - carry[0] = (h0 + (1 << 25)) >> 26 - h1 += carry[0] - h0 -= carry[0] << 26 - // |h0| <= 2^25; from now on fits into int32 unchanged - // |h1| <= 1.01*2^24 - - h[0] = int32(h0) - h[1] = int32(h1) - h[2] = int32(h2) - h[3] = int32(h3) - h[4] = int32(h4) - h[5] = int32(h5) - h[6] = int32(h6) - h[7] = int32(h7) - h[8] = int32(h8) - h[9] = int32(h9) -} - -// feSquare calculates h = f*f. Can overlap h with f. -// -// Preconditions: -// |f| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. -// -// Postconditions: -// |h| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. -func feSquare(h, f *fieldElement) { - f0 := f[0] - f1 := f[1] - f2 := f[2] - f3 := f[3] - f4 := f[4] - f5 := f[5] - f6 := f[6] - f7 := f[7] - f8 := f[8] - f9 := f[9] - f0_2 := 2 * f0 - f1_2 := 2 * f1 - f2_2 := 2 * f2 - f3_2 := 2 * f3 - f4_2 := 2 * f4 - f5_2 := 2 * f5 - f6_2 := 2 * f6 - f7_2 := 2 * f7 - f5_38 := 38 * f5 // 1.31*2^30 - f6_19 := 19 * f6 // 1.31*2^30 - f7_38 := 38 * f7 // 1.31*2^30 - f8_19 := 19 * f8 // 1.31*2^30 - f9_38 := 38 * f9 // 1.31*2^30 - f0f0 := int64(f0) * int64(f0) - f0f1_2 := int64(f0_2) * int64(f1) - f0f2_2 := int64(f0_2) * int64(f2) - f0f3_2 := int64(f0_2) * int64(f3) - f0f4_2 := int64(f0_2) * int64(f4) - f0f5_2 := int64(f0_2) * int64(f5) - f0f6_2 := int64(f0_2) * int64(f6) - f0f7_2 := int64(f0_2) * int64(f7) - f0f8_2 := int64(f0_2) * int64(f8) - f0f9_2 := int64(f0_2) * int64(f9) - f1f1_2 := int64(f1_2) * int64(f1) - f1f2_2 := int64(f1_2) * int64(f2) - f1f3_4 := int64(f1_2) * int64(f3_2) - f1f4_2 := int64(f1_2) * int64(f4) - f1f5_4 := int64(f1_2) * int64(f5_2) - f1f6_2 := int64(f1_2) * int64(f6) - f1f7_4 := int64(f1_2) * int64(f7_2) - f1f8_2 := int64(f1_2) * int64(f8) - f1f9_76 := int64(f1_2) * int64(f9_38) - f2f2 := int64(f2) * int64(f2) - f2f3_2 := int64(f2_2) * int64(f3) - f2f4_2 := int64(f2_2) * int64(f4) - f2f5_2 := int64(f2_2) * int64(f5) - f2f6_2 := int64(f2_2) * int64(f6) - f2f7_2 := int64(f2_2) * int64(f7) - f2f8_38 := int64(f2_2) * int64(f8_19) - f2f9_38 := int64(f2) * int64(f9_38) - f3f3_2 := int64(f3_2) * int64(f3) - f3f4_2 := int64(f3_2) * int64(f4) - f3f5_4 := int64(f3_2) * int64(f5_2) - f3f6_2 := int64(f3_2) * int64(f6) - f3f7_76 := int64(f3_2) * int64(f7_38) - f3f8_38 := int64(f3_2) * int64(f8_19) - f3f9_76 := int64(f3_2) * int64(f9_38) - f4f4 := int64(f4) * int64(f4) - f4f5_2 := int64(f4_2) * int64(f5) - f4f6_38 := int64(f4_2) * int64(f6_19) - f4f7_38 := int64(f4) * int64(f7_38) - f4f8_38 := int64(f4_2) * int64(f8_19) - f4f9_38 := int64(f4) * int64(f9_38) - f5f5_38 := int64(f5) * int64(f5_38) - f5f6_38 := int64(f5_2) * int64(f6_19) - f5f7_76 := int64(f5_2) * int64(f7_38) - f5f8_38 := int64(f5_2) * int64(f8_19) - f5f9_76 := int64(f5_2) * int64(f9_38) - f6f6_19 := int64(f6) * int64(f6_19) - f6f7_38 := int64(f6) * int64(f7_38) - f6f8_38 := int64(f6_2) * int64(f8_19) - f6f9_38 := int64(f6) * int64(f9_38) - f7f7_38 := int64(f7) * int64(f7_38) - f7f8_38 := int64(f7_2) * int64(f8_19) - f7f9_76 := int64(f7_2) * int64(f9_38) - f8f8_19 := int64(f8) * int64(f8_19) - f8f9_38 := int64(f8) * int64(f9_38) - f9f9_38 := int64(f9) * int64(f9_38) - h0 := f0f0 + f1f9_76 + f2f8_38 + f3f7_76 + f4f6_38 + f5f5_38 - h1 := f0f1_2 + f2f9_38 + f3f8_38 + f4f7_38 + f5f6_38 - h2 := f0f2_2 + f1f1_2 + f3f9_76 + f4f8_38 + f5f7_76 + f6f6_19 - h3 := f0f3_2 + f1f2_2 + f4f9_38 + f5f8_38 + f6f7_38 - h4 := f0f4_2 + f1f3_4 + f2f2 + f5f9_76 + f6f8_38 + f7f7_38 - h5 := f0f5_2 + f1f4_2 + f2f3_2 + f6f9_38 + f7f8_38 - h6 := f0f6_2 + f1f5_4 + f2f4_2 + f3f3_2 + f7f9_76 + f8f8_19 - h7 := f0f7_2 + f1f6_2 + f2f5_2 + f3f4_2 + f8f9_38 - h8 := f0f8_2 + f1f7_4 + f2f6_2 + f3f5_4 + f4f4 + f9f9_38 - h9 := f0f9_2 + f1f8_2 + f2f7_2 + f3f6_2 + f4f5_2 - var carry [10]int64 - - carry[0] = (h0 + (1 << 25)) >> 26 - h1 += carry[0] - h0 -= carry[0] << 26 - carry[4] = (h4 + (1 << 25)) >> 26 - h5 += carry[4] - h4 -= carry[4] << 26 - - carry[1] = (h1 + (1 << 24)) >> 25 - h2 += carry[1] - h1 -= carry[1] << 25 - carry[5] = (h5 + (1 << 24)) >> 25 - h6 += carry[5] - h5 -= carry[5] << 25 - - carry[2] = (h2 + (1 << 25)) >> 26 - h3 += carry[2] - h2 -= carry[2] << 26 - carry[6] = (h6 + (1 << 25)) >> 26 - h7 += carry[6] - h6 -= carry[6] << 26 - - carry[3] = (h3 + (1 << 24)) >> 25 - h4 += carry[3] - h3 -= carry[3] << 25 - carry[7] = (h7 + (1 << 24)) >> 25 - h8 += carry[7] - h7 -= carry[7] << 25 - - carry[4] = (h4 + (1 << 25)) >> 26 - h5 += carry[4] - h4 -= carry[4] << 26 - carry[8] = (h8 + (1 << 25)) >> 26 - h9 += carry[8] - h8 -= carry[8] << 26 - - carry[9] = (h9 + (1 << 24)) >> 25 - h0 += carry[9] * 19 - h9 -= carry[9] << 25 - - carry[0] = (h0 + (1 << 25)) >> 26 - h1 += carry[0] - h0 -= carry[0] << 26 - - h[0] = int32(h0) - h[1] = int32(h1) - h[2] = int32(h2) - h[3] = int32(h3) - h[4] = int32(h4) - h[5] = int32(h5) - h[6] = int32(h6) - h[7] = int32(h7) - h[8] = int32(h8) - h[9] = int32(h9) -} - -// feMul121666 calculates h = f * 121666. Can overlap h with f. -// -// Preconditions: -// |f| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. -// -// Postconditions: -// |h| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. -func feMul121666(h, f *fieldElement) { - h0 := int64(f[0]) * 121666 - h1 := int64(f[1]) * 121666 - h2 := int64(f[2]) * 121666 - h3 := int64(f[3]) * 121666 - h4 := int64(f[4]) * 121666 - h5 := int64(f[5]) * 121666 - h6 := int64(f[6]) * 121666 - h7 := int64(f[7]) * 121666 - h8 := int64(f[8]) * 121666 - h9 := int64(f[9]) * 121666 - var carry [10]int64 - - carry[9] = (h9 + (1 << 24)) >> 25 - h0 += carry[9] * 19 - h9 -= carry[9] << 25 - carry[1] = (h1 + (1 << 24)) >> 25 - h2 += carry[1] - h1 -= carry[1] << 25 - carry[3] = (h3 + (1 << 24)) >> 25 - h4 += carry[3] - h3 -= carry[3] << 25 - carry[5] = (h5 + (1 << 24)) >> 25 - h6 += carry[5] - h5 -= carry[5] << 25 - carry[7] = (h7 + (1 << 24)) >> 25 - h8 += carry[7] - h7 -= carry[7] << 25 - - carry[0] = (h0 + (1 << 25)) >> 26 - h1 += carry[0] - h0 -= carry[0] << 26 - carry[2] = (h2 + (1 << 25)) >> 26 - h3 += carry[2] - h2 -= carry[2] << 26 - carry[4] = (h4 + (1 << 25)) >> 26 - h5 += carry[4] - h4 -= carry[4] << 26 - carry[6] = (h6 + (1 << 25)) >> 26 - h7 += carry[6] - h6 -= carry[6] << 26 - carry[8] = (h8 + (1 << 25)) >> 26 - h9 += carry[8] - h8 -= carry[8] << 26 - - h[0] = int32(h0) - h[1] = int32(h1) - h[2] = int32(h2) - h[3] = int32(h3) - h[4] = int32(h4) - h[5] = int32(h5) - h[6] = int32(h6) - h[7] = int32(h7) - h[8] = int32(h8) - h[9] = int32(h9) -} - -// feInvert sets out = z^-1. -func feInvert(out, z *fieldElement) { - var t0, t1, t2, t3 fieldElement - var i int - - feSquare(&t0, z) - for i = 1; i < 1; i++ { - feSquare(&t0, &t0) - } - feSquare(&t1, &t0) - for i = 1; i < 2; i++ { - feSquare(&t1, &t1) - } - feMul(&t1, z, &t1) - feMul(&t0, &t0, &t1) - feSquare(&t2, &t0) - for i = 1; i < 1; i++ { - feSquare(&t2, &t2) - } - feMul(&t1, &t1, &t2) - feSquare(&t2, &t1) - for i = 1; i < 5; i++ { - feSquare(&t2, &t2) - } - feMul(&t1, &t2, &t1) - feSquare(&t2, &t1) - for i = 1; i < 10; i++ { - feSquare(&t2, &t2) - } - feMul(&t2, &t2, &t1) - feSquare(&t3, &t2) - for i = 1; i < 20; i++ { - feSquare(&t3, &t3) - } - feMul(&t2, &t3, &t2) - feSquare(&t2, &t2) - for i = 1; i < 10; i++ { - feSquare(&t2, &t2) - } - feMul(&t1, &t2, &t1) - feSquare(&t2, &t1) - for i = 1; i < 50; i++ { - feSquare(&t2, &t2) - } - feMul(&t2, &t2, &t1) - feSquare(&t3, &t2) - for i = 1; i < 100; i++ { - feSquare(&t3, &t3) - } - feMul(&t2, &t3, &t2) - feSquare(&t2, &t2) - for i = 1; i < 50; i++ { - feSquare(&t2, &t2) - } - feMul(&t1, &t2, &t1) - feSquare(&t1, &t1) - for i = 1; i < 5; i++ { - feSquare(&t1, &t1) - } - feMul(out, &t1, &t0) -} - -func scalarMult(out, in, base *[32]byte) { - var e [32]byte - - copy(e[:], in[:]) - e[0] &= 248 - e[31] &= 127 - e[31] |= 64 - - var x1, x2, z2, x3, z3, tmp0, tmp1 fieldElement - feFromBytes(&x1, base) - feOne(&x2) - feCopy(&x3, &x1) - feOne(&z3) - - swap := int32(0) - for pos := 254; pos >= 0; pos-- { - b := e[pos/8] >> uint(pos&7) - b &= 1 - swap ^= int32(b) - feCSwap(&x2, &x3, swap) - feCSwap(&z2, &z3, swap) - swap = int32(b) - - feSub(&tmp0, &x3, &z3) - feSub(&tmp1, &x2, &z2) - feAdd(&x2, &x2, &z2) - feAdd(&z2, &x3, &z3) - feMul(&z3, &tmp0, &x2) - feMul(&z2, &z2, &tmp1) - feSquare(&tmp0, &tmp1) - feSquare(&tmp1, &x2) - feAdd(&x3, &z3, &z2) - feSub(&z2, &z3, &z2) - feMul(&x2, &tmp1, &tmp0) - feSub(&tmp1, &tmp1, &tmp0) - feSquare(&z2, &z2) - feMul121666(&z3, &tmp1) - feSquare(&x3, &x3) - feAdd(&tmp0, &tmp0, &z3) - feMul(&z3, &x1, &z2) - feMul(&z2, &tmp1, &tmp0) - } - - feCSwap(&x2, &x3, swap) - feCSwap(&z2, &z3, swap) - - feInvert(&z2, &z2) - feMul(&x2, &x2, &z2) - feToBytes(out, &x2) -} diff --git a/vendor/golang.org/x/crypto/curve25519/doc.go b/vendor/golang.org/x/crypto/curve25519/doc.go deleted file mode 100644 index ebeea3c..0000000 --- a/vendor/golang.org/x/crypto/curve25519/doc.go +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package curve25519 provides an implementation of scalar multiplication on -// the elliptic curve known as curve25519. See http://cr.yp.to/ecdh.html -package curve25519 // import "golang.org/x/crypto/curve25519" - -// basePoint is the x coordinate of the generator of the curve. -var basePoint = [32]byte{9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} - -// ScalarMult sets dst to the product in*base where dst and base are the x -// coordinates of group points and all values are in little-endian form. -func ScalarMult(dst, in, base *[32]byte) { - scalarMult(dst, in, base) -} - -// ScalarBaseMult sets dst to the product in*base where dst and base are the x -// coordinates of group points, base is the standard generator and all values -// are in little-endian form. -func ScalarBaseMult(dst, in *[32]byte) { - ScalarMult(dst, in, &basePoint) -} diff --git a/vendor/golang.org/x/crypto/curve25519/freeze_amd64.s b/vendor/golang.org/x/crypto/curve25519/freeze_amd64.s deleted file mode 100644 index 37599fa..0000000 --- a/vendor/golang.org/x/crypto/curve25519/freeze_amd64.s +++ /dev/null @@ -1,94 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// This code was translated into a form compatible with 6a from the public -// domain sources in SUPERCOP: http://bench.cr.yp.to/supercop.html - -// +build amd64,!gccgo,!appengine - -// func freeze(inout *[5]uint64) -TEXT ·freeze(SB),7,$96-8 - MOVQ inout+0(FP), DI - - MOVQ SP,R11 - MOVQ $31,CX - NOTQ CX - ANDQ CX,SP - ADDQ $32,SP - - MOVQ R11,0(SP) - MOVQ R12,8(SP) - MOVQ R13,16(SP) - MOVQ R14,24(SP) - MOVQ R15,32(SP) - MOVQ BX,40(SP) - MOVQ BP,48(SP) - MOVQ 0(DI),SI - MOVQ 8(DI),DX - MOVQ 16(DI),CX - MOVQ 24(DI),R8 - MOVQ 32(DI),R9 - MOVQ ·REDMASK51(SB),AX - MOVQ AX,R10 - SUBQ $18,R10 - MOVQ $3,R11 -REDUCELOOP: - MOVQ SI,R12 - SHRQ $51,R12 - ANDQ AX,SI - ADDQ R12,DX - MOVQ DX,R12 - SHRQ $51,R12 - ANDQ AX,DX - ADDQ R12,CX - MOVQ CX,R12 - SHRQ $51,R12 - ANDQ AX,CX - ADDQ R12,R8 - MOVQ R8,R12 - SHRQ $51,R12 - ANDQ AX,R8 - ADDQ R12,R9 - MOVQ R9,R12 - SHRQ $51,R12 - ANDQ AX,R9 - IMUL3Q $19,R12,R12 - ADDQ R12,SI - SUBQ $1,R11 - JA REDUCELOOP - MOVQ $1,R12 - CMPQ R10,SI - CMOVQLT R11,R12 - CMPQ AX,DX - CMOVQNE R11,R12 - CMPQ AX,CX - CMOVQNE R11,R12 - CMPQ AX,R8 - CMOVQNE R11,R12 - CMPQ AX,R9 - CMOVQNE R11,R12 - NEGQ R12 - ANDQ R12,AX - ANDQ R12,R10 - SUBQ R10,SI - SUBQ AX,DX - SUBQ AX,CX - SUBQ AX,R8 - SUBQ AX,R9 - MOVQ SI,0(DI) - MOVQ DX,8(DI) - MOVQ CX,16(DI) - MOVQ R8,24(DI) - MOVQ R9,32(DI) - MOVQ 0(SP),R11 - MOVQ 8(SP),R12 - MOVQ 16(SP),R13 - MOVQ 24(SP),R14 - MOVQ 32(SP),R15 - MOVQ 40(SP),BX - MOVQ 48(SP),BP - MOVQ R11,SP - MOVQ DI,AX - MOVQ SI,DX - RET diff --git a/vendor/golang.org/x/crypto/curve25519/ladderstep_amd64.s b/vendor/golang.org/x/crypto/curve25519/ladderstep_amd64.s deleted file mode 100644 index 3949f9c..0000000 --- a/vendor/golang.org/x/crypto/curve25519/ladderstep_amd64.s +++ /dev/null @@ -1,1398 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// This code was translated into a form compatible with 6a from the public -// domain sources in SUPERCOP: http://bench.cr.yp.to/supercop.html - -// +build amd64,!gccgo,!appengine - -// func ladderstep(inout *[5][5]uint64) -TEXT ·ladderstep(SB),0,$384-8 - MOVQ inout+0(FP),DI - - MOVQ SP,R11 - MOVQ $31,CX - NOTQ CX - ANDQ CX,SP - ADDQ $32,SP - - MOVQ R11,0(SP) - MOVQ R12,8(SP) - MOVQ R13,16(SP) - MOVQ R14,24(SP) - MOVQ R15,32(SP) - MOVQ BX,40(SP) - MOVQ BP,48(SP) - MOVQ 40(DI),SI - MOVQ 48(DI),DX - MOVQ 56(DI),CX - MOVQ 64(DI),R8 - MOVQ 72(DI),R9 - MOVQ SI,AX - MOVQ DX,R10 - MOVQ CX,R11 - MOVQ R8,R12 - MOVQ R9,R13 - ADDQ ·_2P0(SB),AX - ADDQ ·_2P1234(SB),R10 - ADDQ ·_2P1234(SB),R11 - ADDQ ·_2P1234(SB),R12 - ADDQ ·_2P1234(SB),R13 - ADDQ 80(DI),SI - ADDQ 88(DI),DX - ADDQ 96(DI),CX - ADDQ 104(DI),R8 - ADDQ 112(DI),R9 - SUBQ 80(DI),AX - SUBQ 88(DI),R10 - SUBQ 96(DI),R11 - SUBQ 104(DI),R12 - SUBQ 112(DI),R13 - MOVQ SI,56(SP) - MOVQ DX,64(SP) - MOVQ CX,72(SP) - MOVQ R8,80(SP) - MOVQ R9,88(SP) - MOVQ AX,96(SP) - MOVQ R10,104(SP) - MOVQ R11,112(SP) - MOVQ R12,120(SP) - MOVQ R13,128(SP) - MOVQ 96(SP),AX - MULQ 96(SP) - MOVQ AX,SI - MOVQ DX,CX - MOVQ 96(SP),AX - SHLQ $1,AX - MULQ 104(SP) - MOVQ AX,R8 - MOVQ DX,R9 - MOVQ 96(SP),AX - SHLQ $1,AX - MULQ 112(SP) - MOVQ AX,R10 - MOVQ DX,R11 - MOVQ 96(SP),AX - SHLQ $1,AX - MULQ 120(SP) - MOVQ AX,R12 - MOVQ DX,R13 - MOVQ 96(SP),AX - SHLQ $1,AX - MULQ 128(SP) - MOVQ AX,R14 - MOVQ DX,R15 - MOVQ 104(SP),AX - MULQ 104(SP) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 104(SP),AX - SHLQ $1,AX - MULQ 112(SP) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 104(SP),AX - SHLQ $1,AX - MULQ 120(SP) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 104(SP),DX - IMUL3Q $38,DX,AX - MULQ 128(SP) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 112(SP),AX - MULQ 112(SP) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 112(SP),DX - IMUL3Q $38,DX,AX - MULQ 120(SP) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 112(SP),DX - IMUL3Q $38,DX,AX - MULQ 128(SP) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 120(SP),DX - IMUL3Q $19,DX,AX - MULQ 120(SP) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 120(SP),DX - IMUL3Q $38,DX,AX - MULQ 128(SP) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 128(SP),DX - IMUL3Q $19,DX,AX - MULQ 128(SP) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ ·REDMASK51(SB),DX - SHLQ $13,CX:SI - ANDQ DX,SI - SHLQ $13,R9:R8 - ANDQ DX,R8 - ADDQ CX,R8 - SHLQ $13,R11:R10 - ANDQ DX,R10 - ADDQ R9,R10 - SHLQ $13,R13:R12 - ANDQ DX,R12 - ADDQ R11,R12 - SHLQ $13,R15:R14 - ANDQ DX,R14 - ADDQ R13,R14 - IMUL3Q $19,R15,CX - ADDQ CX,SI - MOVQ SI,CX - SHRQ $51,CX - ADDQ R8,CX - ANDQ DX,SI - MOVQ CX,R8 - SHRQ $51,CX - ADDQ R10,CX - ANDQ DX,R8 - MOVQ CX,R9 - SHRQ $51,CX - ADDQ R12,CX - ANDQ DX,R9 - MOVQ CX,AX - SHRQ $51,CX - ADDQ R14,CX - ANDQ DX,AX - MOVQ CX,R10 - SHRQ $51,CX - IMUL3Q $19,CX,CX - ADDQ CX,SI - ANDQ DX,R10 - MOVQ SI,136(SP) - MOVQ R8,144(SP) - MOVQ R9,152(SP) - MOVQ AX,160(SP) - MOVQ R10,168(SP) - MOVQ 56(SP),AX - MULQ 56(SP) - MOVQ AX,SI - MOVQ DX,CX - MOVQ 56(SP),AX - SHLQ $1,AX - MULQ 64(SP) - MOVQ AX,R8 - MOVQ DX,R9 - MOVQ 56(SP),AX - SHLQ $1,AX - MULQ 72(SP) - MOVQ AX,R10 - MOVQ DX,R11 - MOVQ 56(SP),AX - SHLQ $1,AX - MULQ 80(SP) - MOVQ AX,R12 - MOVQ DX,R13 - MOVQ 56(SP),AX - SHLQ $1,AX - MULQ 88(SP) - MOVQ AX,R14 - MOVQ DX,R15 - MOVQ 64(SP),AX - MULQ 64(SP) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 64(SP),AX - SHLQ $1,AX - MULQ 72(SP) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 64(SP),AX - SHLQ $1,AX - MULQ 80(SP) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 64(SP),DX - IMUL3Q $38,DX,AX - MULQ 88(SP) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 72(SP),AX - MULQ 72(SP) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 72(SP),DX - IMUL3Q $38,DX,AX - MULQ 80(SP) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 72(SP),DX - IMUL3Q $38,DX,AX - MULQ 88(SP) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 80(SP),DX - IMUL3Q $19,DX,AX - MULQ 80(SP) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 80(SP),DX - IMUL3Q $38,DX,AX - MULQ 88(SP) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 88(SP),DX - IMUL3Q $19,DX,AX - MULQ 88(SP) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ ·REDMASK51(SB),DX - SHLQ $13,CX:SI - ANDQ DX,SI - SHLQ $13,R9:R8 - ANDQ DX,R8 - ADDQ CX,R8 - SHLQ $13,R11:R10 - ANDQ DX,R10 - ADDQ R9,R10 - SHLQ $13,R13:R12 - ANDQ DX,R12 - ADDQ R11,R12 - SHLQ $13,R15:R14 - ANDQ DX,R14 - ADDQ R13,R14 - IMUL3Q $19,R15,CX - ADDQ CX,SI - MOVQ SI,CX - SHRQ $51,CX - ADDQ R8,CX - ANDQ DX,SI - MOVQ CX,R8 - SHRQ $51,CX - ADDQ R10,CX - ANDQ DX,R8 - MOVQ CX,R9 - SHRQ $51,CX - ADDQ R12,CX - ANDQ DX,R9 - MOVQ CX,AX - SHRQ $51,CX - ADDQ R14,CX - ANDQ DX,AX - MOVQ CX,R10 - SHRQ $51,CX - IMUL3Q $19,CX,CX - ADDQ CX,SI - ANDQ DX,R10 - MOVQ SI,176(SP) - MOVQ R8,184(SP) - MOVQ R9,192(SP) - MOVQ AX,200(SP) - MOVQ R10,208(SP) - MOVQ SI,SI - MOVQ R8,DX - MOVQ R9,CX - MOVQ AX,R8 - MOVQ R10,R9 - ADDQ ·_2P0(SB),SI - ADDQ ·_2P1234(SB),DX - ADDQ ·_2P1234(SB),CX - ADDQ ·_2P1234(SB),R8 - ADDQ ·_2P1234(SB),R9 - SUBQ 136(SP),SI - SUBQ 144(SP),DX - SUBQ 152(SP),CX - SUBQ 160(SP),R8 - SUBQ 168(SP),R9 - MOVQ SI,216(SP) - MOVQ DX,224(SP) - MOVQ CX,232(SP) - MOVQ R8,240(SP) - MOVQ R9,248(SP) - MOVQ 120(DI),SI - MOVQ 128(DI),DX - MOVQ 136(DI),CX - MOVQ 144(DI),R8 - MOVQ 152(DI),R9 - MOVQ SI,AX - MOVQ DX,R10 - MOVQ CX,R11 - MOVQ R8,R12 - MOVQ R9,R13 - ADDQ ·_2P0(SB),AX - ADDQ ·_2P1234(SB),R10 - ADDQ ·_2P1234(SB),R11 - ADDQ ·_2P1234(SB),R12 - ADDQ ·_2P1234(SB),R13 - ADDQ 160(DI),SI - ADDQ 168(DI),DX - ADDQ 176(DI),CX - ADDQ 184(DI),R8 - ADDQ 192(DI),R9 - SUBQ 160(DI),AX - SUBQ 168(DI),R10 - SUBQ 176(DI),R11 - SUBQ 184(DI),R12 - SUBQ 192(DI),R13 - MOVQ SI,256(SP) - MOVQ DX,264(SP) - MOVQ CX,272(SP) - MOVQ R8,280(SP) - MOVQ R9,288(SP) - MOVQ AX,296(SP) - MOVQ R10,304(SP) - MOVQ R11,312(SP) - MOVQ R12,320(SP) - MOVQ R13,328(SP) - MOVQ 280(SP),SI - IMUL3Q $19,SI,AX - MOVQ AX,336(SP) - MULQ 112(SP) - MOVQ AX,SI - MOVQ DX,CX - MOVQ 288(SP),DX - IMUL3Q $19,DX,AX - MOVQ AX,344(SP) - MULQ 104(SP) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 256(SP),AX - MULQ 96(SP) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 256(SP),AX - MULQ 104(SP) - MOVQ AX,R8 - MOVQ DX,R9 - MOVQ 256(SP),AX - MULQ 112(SP) - MOVQ AX,R10 - MOVQ DX,R11 - MOVQ 256(SP),AX - MULQ 120(SP) - MOVQ AX,R12 - MOVQ DX,R13 - MOVQ 256(SP),AX - MULQ 128(SP) - MOVQ AX,R14 - MOVQ DX,R15 - MOVQ 264(SP),AX - MULQ 96(SP) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 264(SP),AX - MULQ 104(SP) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 264(SP),AX - MULQ 112(SP) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 264(SP),AX - MULQ 120(SP) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 264(SP),DX - IMUL3Q $19,DX,AX - MULQ 128(SP) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 272(SP),AX - MULQ 96(SP) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 272(SP),AX - MULQ 104(SP) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 272(SP),AX - MULQ 112(SP) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 272(SP),DX - IMUL3Q $19,DX,AX - MULQ 120(SP) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 272(SP),DX - IMUL3Q $19,DX,AX - MULQ 128(SP) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 280(SP),AX - MULQ 96(SP) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 280(SP),AX - MULQ 104(SP) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 336(SP),AX - MULQ 120(SP) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 336(SP),AX - MULQ 128(SP) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 288(SP),AX - MULQ 96(SP) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 344(SP),AX - MULQ 112(SP) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 344(SP),AX - MULQ 120(SP) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 344(SP),AX - MULQ 128(SP) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ ·REDMASK51(SB),DX - SHLQ $13,CX:SI - ANDQ DX,SI - SHLQ $13,R9:R8 - ANDQ DX,R8 - ADDQ CX,R8 - SHLQ $13,R11:R10 - ANDQ DX,R10 - ADDQ R9,R10 - SHLQ $13,R13:R12 - ANDQ DX,R12 - ADDQ R11,R12 - SHLQ $13,R15:R14 - ANDQ DX,R14 - ADDQ R13,R14 - IMUL3Q $19,R15,CX - ADDQ CX,SI - MOVQ SI,CX - SHRQ $51,CX - ADDQ R8,CX - MOVQ CX,R8 - SHRQ $51,CX - ANDQ DX,SI - ADDQ R10,CX - MOVQ CX,R9 - SHRQ $51,CX - ANDQ DX,R8 - ADDQ R12,CX - MOVQ CX,AX - SHRQ $51,CX - ANDQ DX,R9 - ADDQ R14,CX - MOVQ CX,R10 - SHRQ $51,CX - ANDQ DX,AX - IMUL3Q $19,CX,CX - ADDQ CX,SI - ANDQ DX,R10 - MOVQ SI,96(SP) - MOVQ R8,104(SP) - MOVQ R9,112(SP) - MOVQ AX,120(SP) - MOVQ R10,128(SP) - MOVQ 320(SP),SI - IMUL3Q $19,SI,AX - MOVQ AX,256(SP) - MULQ 72(SP) - MOVQ AX,SI - MOVQ DX,CX - MOVQ 328(SP),DX - IMUL3Q $19,DX,AX - MOVQ AX,264(SP) - MULQ 64(SP) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 296(SP),AX - MULQ 56(SP) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 296(SP),AX - MULQ 64(SP) - MOVQ AX,R8 - MOVQ DX,R9 - MOVQ 296(SP),AX - MULQ 72(SP) - MOVQ AX,R10 - MOVQ DX,R11 - MOVQ 296(SP),AX - MULQ 80(SP) - MOVQ AX,R12 - MOVQ DX,R13 - MOVQ 296(SP),AX - MULQ 88(SP) - MOVQ AX,R14 - MOVQ DX,R15 - MOVQ 304(SP),AX - MULQ 56(SP) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 304(SP),AX - MULQ 64(SP) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 304(SP),AX - MULQ 72(SP) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 304(SP),AX - MULQ 80(SP) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 304(SP),DX - IMUL3Q $19,DX,AX - MULQ 88(SP) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 312(SP),AX - MULQ 56(SP) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 312(SP),AX - MULQ 64(SP) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 312(SP),AX - MULQ 72(SP) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 312(SP),DX - IMUL3Q $19,DX,AX - MULQ 80(SP) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 312(SP),DX - IMUL3Q $19,DX,AX - MULQ 88(SP) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 320(SP),AX - MULQ 56(SP) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 320(SP),AX - MULQ 64(SP) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 256(SP),AX - MULQ 80(SP) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 256(SP),AX - MULQ 88(SP) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 328(SP),AX - MULQ 56(SP) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 264(SP),AX - MULQ 72(SP) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 264(SP),AX - MULQ 80(SP) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 264(SP),AX - MULQ 88(SP) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ ·REDMASK51(SB),DX - SHLQ $13,CX:SI - ANDQ DX,SI - SHLQ $13,R9:R8 - ANDQ DX,R8 - ADDQ CX,R8 - SHLQ $13,R11:R10 - ANDQ DX,R10 - ADDQ R9,R10 - SHLQ $13,R13:R12 - ANDQ DX,R12 - ADDQ R11,R12 - SHLQ $13,R15:R14 - ANDQ DX,R14 - ADDQ R13,R14 - IMUL3Q $19,R15,CX - ADDQ CX,SI - MOVQ SI,CX - SHRQ $51,CX - ADDQ R8,CX - MOVQ CX,R8 - SHRQ $51,CX - ANDQ DX,SI - ADDQ R10,CX - MOVQ CX,R9 - SHRQ $51,CX - ANDQ DX,R8 - ADDQ R12,CX - MOVQ CX,AX - SHRQ $51,CX - ANDQ DX,R9 - ADDQ R14,CX - MOVQ CX,R10 - SHRQ $51,CX - ANDQ DX,AX - IMUL3Q $19,CX,CX - ADDQ CX,SI - ANDQ DX,R10 - MOVQ SI,DX - MOVQ R8,CX - MOVQ R9,R11 - MOVQ AX,R12 - MOVQ R10,R13 - ADDQ ·_2P0(SB),DX - ADDQ ·_2P1234(SB),CX - ADDQ ·_2P1234(SB),R11 - ADDQ ·_2P1234(SB),R12 - ADDQ ·_2P1234(SB),R13 - ADDQ 96(SP),SI - ADDQ 104(SP),R8 - ADDQ 112(SP),R9 - ADDQ 120(SP),AX - ADDQ 128(SP),R10 - SUBQ 96(SP),DX - SUBQ 104(SP),CX - SUBQ 112(SP),R11 - SUBQ 120(SP),R12 - SUBQ 128(SP),R13 - MOVQ SI,120(DI) - MOVQ R8,128(DI) - MOVQ R9,136(DI) - MOVQ AX,144(DI) - MOVQ R10,152(DI) - MOVQ DX,160(DI) - MOVQ CX,168(DI) - MOVQ R11,176(DI) - MOVQ R12,184(DI) - MOVQ R13,192(DI) - MOVQ 120(DI),AX - MULQ 120(DI) - MOVQ AX,SI - MOVQ DX,CX - MOVQ 120(DI),AX - SHLQ $1,AX - MULQ 128(DI) - MOVQ AX,R8 - MOVQ DX,R9 - MOVQ 120(DI),AX - SHLQ $1,AX - MULQ 136(DI) - MOVQ AX,R10 - MOVQ DX,R11 - MOVQ 120(DI),AX - SHLQ $1,AX - MULQ 144(DI) - MOVQ AX,R12 - MOVQ DX,R13 - MOVQ 120(DI),AX - SHLQ $1,AX - MULQ 152(DI) - MOVQ AX,R14 - MOVQ DX,R15 - MOVQ 128(DI),AX - MULQ 128(DI) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 128(DI),AX - SHLQ $1,AX - MULQ 136(DI) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 128(DI),AX - SHLQ $1,AX - MULQ 144(DI) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 128(DI),DX - IMUL3Q $38,DX,AX - MULQ 152(DI) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 136(DI),AX - MULQ 136(DI) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 136(DI),DX - IMUL3Q $38,DX,AX - MULQ 144(DI) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 136(DI),DX - IMUL3Q $38,DX,AX - MULQ 152(DI) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 144(DI),DX - IMUL3Q $19,DX,AX - MULQ 144(DI) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 144(DI),DX - IMUL3Q $38,DX,AX - MULQ 152(DI) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 152(DI),DX - IMUL3Q $19,DX,AX - MULQ 152(DI) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ ·REDMASK51(SB),DX - SHLQ $13,CX:SI - ANDQ DX,SI - SHLQ $13,R9:R8 - ANDQ DX,R8 - ADDQ CX,R8 - SHLQ $13,R11:R10 - ANDQ DX,R10 - ADDQ R9,R10 - SHLQ $13,R13:R12 - ANDQ DX,R12 - ADDQ R11,R12 - SHLQ $13,R15:R14 - ANDQ DX,R14 - ADDQ R13,R14 - IMUL3Q $19,R15,CX - ADDQ CX,SI - MOVQ SI,CX - SHRQ $51,CX - ADDQ R8,CX - ANDQ DX,SI - MOVQ CX,R8 - SHRQ $51,CX - ADDQ R10,CX - ANDQ DX,R8 - MOVQ CX,R9 - SHRQ $51,CX - ADDQ R12,CX - ANDQ DX,R9 - MOVQ CX,AX - SHRQ $51,CX - ADDQ R14,CX - ANDQ DX,AX - MOVQ CX,R10 - SHRQ $51,CX - IMUL3Q $19,CX,CX - ADDQ CX,SI - ANDQ DX,R10 - MOVQ SI,120(DI) - MOVQ R8,128(DI) - MOVQ R9,136(DI) - MOVQ AX,144(DI) - MOVQ R10,152(DI) - MOVQ 160(DI),AX - MULQ 160(DI) - MOVQ AX,SI - MOVQ DX,CX - MOVQ 160(DI),AX - SHLQ $1,AX - MULQ 168(DI) - MOVQ AX,R8 - MOVQ DX,R9 - MOVQ 160(DI),AX - SHLQ $1,AX - MULQ 176(DI) - MOVQ AX,R10 - MOVQ DX,R11 - MOVQ 160(DI),AX - SHLQ $1,AX - MULQ 184(DI) - MOVQ AX,R12 - MOVQ DX,R13 - MOVQ 160(DI),AX - SHLQ $1,AX - MULQ 192(DI) - MOVQ AX,R14 - MOVQ DX,R15 - MOVQ 168(DI),AX - MULQ 168(DI) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 168(DI),AX - SHLQ $1,AX - MULQ 176(DI) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 168(DI),AX - SHLQ $1,AX - MULQ 184(DI) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 168(DI),DX - IMUL3Q $38,DX,AX - MULQ 192(DI) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 176(DI),AX - MULQ 176(DI) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 176(DI),DX - IMUL3Q $38,DX,AX - MULQ 184(DI) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 176(DI),DX - IMUL3Q $38,DX,AX - MULQ 192(DI) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 184(DI),DX - IMUL3Q $19,DX,AX - MULQ 184(DI) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 184(DI),DX - IMUL3Q $38,DX,AX - MULQ 192(DI) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 192(DI),DX - IMUL3Q $19,DX,AX - MULQ 192(DI) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ ·REDMASK51(SB),DX - SHLQ $13,CX:SI - ANDQ DX,SI - SHLQ $13,R9:R8 - ANDQ DX,R8 - ADDQ CX,R8 - SHLQ $13,R11:R10 - ANDQ DX,R10 - ADDQ R9,R10 - SHLQ $13,R13:R12 - ANDQ DX,R12 - ADDQ R11,R12 - SHLQ $13,R15:R14 - ANDQ DX,R14 - ADDQ R13,R14 - IMUL3Q $19,R15,CX - ADDQ CX,SI - MOVQ SI,CX - SHRQ $51,CX - ADDQ R8,CX - ANDQ DX,SI - MOVQ CX,R8 - SHRQ $51,CX - ADDQ R10,CX - ANDQ DX,R8 - MOVQ CX,R9 - SHRQ $51,CX - ADDQ R12,CX - ANDQ DX,R9 - MOVQ CX,AX - SHRQ $51,CX - ADDQ R14,CX - ANDQ DX,AX - MOVQ CX,R10 - SHRQ $51,CX - IMUL3Q $19,CX,CX - ADDQ CX,SI - ANDQ DX,R10 - MOVQ SI,160(DI) - MOVQ R8,168(DI) - MOVQ R9,176(DI) - MOVQ AX,184(DI) - MOVQ R10,192(DI) - MOVQ 184(DI),SI - IMUL3Q $19,SI,AX - MOVQ AX,56(SP) - MULQ 16(DI) - MOVQ AX,SI - MOVQ DX,CX - MOVQ 192(DI),DX - IMUL3Q $19,DX,AX - MOVQ AX,64(SP) - MULQ 8(DI) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 160(DI),AX - MULQ 0(DI) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 160(DI),AX - MULQ 8(DI) - MOVQ AX,R8 - MOVQ DX,R9 - MOVQ 160(DI),AX - MULQ 16(DI) - MOVQ AX,R10 - MOVQ DX,R11 - MOVQ 160(DI),AX - MULQ 24(DI) - MOVQ AX,R12 - MOVQ DX,R13 - MOVQ 160(DI),AX - MULQ 32(DI) - MOVQ AX,R14 - MOVQ DX,R15 - MOVQ 168(DI),AX - MULQ 0(DI) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 168(DI),AX - MULQ 8(DI) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 168(DI),AX - MULQ 16(DI) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 168(DI),AX - MULQ 24(DI) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 168(DI),DX - IMUL3Q $19,DX,AX - MULQ 32(DI) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 176(DI),AX - MULQ 0(DI) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 176(DI),AX - MULQ 8(DI) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 176(DI),AX - MULQ 16(DI) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 176(DI),DX - IMUL3Q $19,DX,AX - MULQ 24(DI) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 176(DI),DX - IMUL3Q $19,DX,AX - MULQ 32(DI) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 184(DI),AX - MULQ 0(DI) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 184(DI),AX - MULQ 8(DI) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 56(SP),AX - MULQ 24(DI) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 56(SP),AX - MULQ 32(DI) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 192(DI),AX - MULQ 0(DI) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 64(SP),AX - MULQ 16(DI) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 64(SP),AX - MULQ 24(DI) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 64(SP),AX - MULQ 32(DI) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ ·REDMASK51(SB),DX - SHLQ $13,CX:SI - ANDQ DX,SI - SHLQ $13,R9:R8 - ANDQ DX,R8 - ADDQ CX,R8 - SHLQ $13,R11:R10 - ANDQ DX,R10 - ADDQ R9,R10 - SHLQ $13,R13:R12 - ANDQ DX,R12 - ADDQ R11,R12 - SHLQ $13,R15:R14 - ANDQ DX,R14 - ADDQ R13,R14 - IMUL3Q $19,R15,CX - ADDQ CX,SI - MOVQ SI,CX - SHRQ $51,CX - ADDQ R8,CX - MOVQ CX,R8 - SHRQ $51,CX - ANDQ DX,SI - ADDQ R10,CX - MOVQ CX,R9 - SHRQ $51,CX - ANDQ DX,R8 - ADDQ R12,CX - MOVQ CX,AX - SHRQ $51,CX - ANDQ DX,R9 - ADDQ R14,CX - MOVQ CX,R10 - SHRQ $51,CX - ANDQ DX,AX - IMUL3Q $19,CX,CX - ADDQ CX,SI - ANDQ DX,R10 - MOVQ SI,160(DI) - MOVQ R8,168(DI) - MOVQ R9,176(DI) - MOVQ AX,184(DI) - MOVQ R10,192(DI) - MOVQ 200(SP),SI - IMUL3Q $19,SI,AX - MOVQ AX,56(SP) - MULQ 152(SP) - MOVQ AX,SI - MOVQ DX,CX - MOVQ 208(SP),DX - IMUL3Q $19,DX,AX - MOVQ AX,64(SP) - MULQ 144(SP) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 176(SP),AX - MULQ 136(SP) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 176(SP),AX - MULQ 144(SP) - MOVQ AX,R8 - MOVQ DX,R9 - MOVQ 176(SP),AX - MULQ 152(SP) - MOVQ AX,R10 - MOVQ DX,R11 - MOVQ 176(SP),AX - MULQ 160(SP) - MOVQ AX,R12 - MOVQ DX,R13 - MOVQ 176(SP),AX - MULQ 168(SP) - MOVQ AX,R14 - MOVQ DX,R15 - MOVQ 184(SP),AX - MULQ 136(SP) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 184(SP),AX - MULQ 144(SP) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 184(SP),AX - MULQ 152(SP) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 184(SP),AX - MULQ 160(SP) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 184(SP),DX - IMUL3Q $19,DX,AX - MULQ 168(SP) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 192(SP),AX - MULQ 136(SP) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 192(SP),AX - MULQ 144(SP) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 192(SP),AX - MULQ 152(SP) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 192(SP),DX - IMUL3Q $19,DX,AX - MULQ 160(SP) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 192(SP),DX - IMUL3Q $19,DX,AX - MULQ 168(SP) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 200(SP),AX - MULQ 136(SP) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 200(SP),AX - MULQ 144(SP) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 56(SP),AX - MULQ 160(SP) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 56(SP),AX - MULQ 168(SP) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 208(SP),AX - MULQ 136(SP) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 64(SP),AX - MULQ 152(SP) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 64(SP),AX - MULQ 160(SP) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 64(SP),AX - MULQ 168(SP) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ ·REDMASK51(SB),DX - SHLQ $13,CX:SI - ANDQ DX,SI - SHLQ $13,R9:R8 - ANDQ DX,R8 - ADDQ CX,R8 - SHLQ $13,R11:R10 - ANDQ DX,R10 - ADDQ R9,R10 - SHLQ $13,R13:R12 - ANDQ DX,R12 - ADDQ R11,R12 - SHLQ $13,R15:R14 - ANDQ DX,R14 - ADDQ R13,R14 - IMUL3Q $19,R15,CX - ADDQ CX,SI - MOVQ SI,CX - SHRQ $51,CX - ADDQ R8,CX - MOVQ CX,R8 - SHRQ $51,CX - ANDQ DX,SI - ADDQ R10,CX - MOVQ CX,R9 - SHRQ $51,CX - ANDQ DX,R8 - ADDQ R12,CX - MOVQ CX,AX - SHRQ $51,CX - ANDQ DX,R9 - ADDQ R14,CX - MOVQ CX,R10 - SHRQ $51,CX - ANDQ DX,AX - IMUL3Q $19,CX,CX - ADDQ CX,SI - ANDQ DX,R10 - MOVQ SI,40(DI) - MOVQ R8,48(DI) - MOVQ R9,56(DI) - MOVQ AX,64(DI) - MOVQ R10,72(DI) - MOVQ 216(SP),AX - MULQ ·_121666_213(SB) - SHRQ $13,AX - MOVQ AX,SI - MOVQ DX,CX - MOVQ 224(SP),AX - MULQ ·_121666_213(SB) - SHRQ $13,AX - ADDQ AX,CX - MOVQ DX,R8 - MOVQ 232(SP),AX - MULQ ·_121666_213(SB) - SHRQ $13,AX - ADDQ AX,R8 - MOVQ DX,R9 - MOVQ 240(SP),AX - MULQ ·_121666_213(SB) - SHRQ $13,AX - ADDQ AX,R9 - MOVQ DX,R10 - MOVQ 248(SP),AX - MULQ ·_121666_213(SB) - SHRQ $13,AX - ADDQ AX,R10 - IMUL3Q $19,DX,DX - ADDQ DX,SI - ADDQ 136(SP),SI - ADDQ 144(SP),CX - ADDQ 152(SP),R8 - ADDQ 160(SP),R9 - ADDQ 168(SP),R10 - MOVQ SI,80(DI) - MOVQ CX,88(DI) - MOVQ R8,96(DI) - MOVQ R9,104(DI) - MOVQ R10,112(DI) - MOVQ 104(DI),SI - IMUL3Q $19,SI,AX - MOVQ AX,56(SP) - MULQ 232(SP) - MOVQ AX,SI - MOVQ DX,CX - MOVQ 112(DI),DX - IMUL3Q $19,DX,AX - MOVQ AX,64(SP) - MULQ 224(SP) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 80(DI),AX - MULQ 216(SP) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 80(DI),AX - MULQ 224(SP) - MOVQ AX,R8 - MOVQ DX,R9 - MOVQ 80(DI),AX - MULQ 232(SP) - MOVQ AX,R10 - MOVQ DX,R11 - MOVQ 80(DI),AX - MULQ 240(SP) - MOVQ AX,R12 - MOVQ DX,R13 - MOVQ 80(DI),AX - MULQ 248(SP) - MOVQ AX,R14 - MOVQ DX,R15 - MOVQ 88(DI),AX - MULQ 216(SP) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 88(DI),AX - MULQ 224(SP) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 88(DI),AX - MULQ 232(SP) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 88(DI),AX - MULQ 240(SP) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 88(DI),DX - IMUL3Q $19,DX,AX - MULQ 248(SP) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 96(DI),AX - MULQ 216(SP) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 96(DI),AX - MULQ 224(SP) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 96(DI),AX - MULQ 232(SP) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 96(DI),DX - IMUL3Q $19,DX,AX - MULQ 240(SP) - ADDQ AX,SI - ADCQ DX,CX - MOVQ 96(DI),DX - IMUL3Q $19,DX,AX - MULQ 248(SP) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 104(DI),AX - MULQ 216(SP) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 104(DI),AX - MULQ 224(SP) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 56(SP),AX - MULQ 240(SP) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 56(SP),AX - MULQ 248(SP) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 112(DI),AX - MULQ 216(SP) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 64(SP),AX - MULQ 232(SP) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 64(SP),AX - MULQ 240(SP) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 64(SP),AX - MULQ 248(SP) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ ·REDMASK51(SB),DX - SHLQ $13,CX:SI - ANDQ DX,SI - SHLQ $13,R9:R8 - ANDQ DX,R8 - ADDQ CX,R8 - SHLQ $13,R11:R10 - ANDQ DX,R10 - ADDQ R9,R10 - SHLQ $13,R13:R12 - ANDQ DX,R12 - ADDQ R11,R12 - SHLQ $13,R15:R14 - ANDQ DX,R14 - ADDQ R13,R14 - IMUL3Q $19,R15,CX - ADDQ CX,SI - MOVQ SI,CX - SHRQ $51,CX - ADDQ R8,CX - MOVQ CX,R8 - SHRQ $51,CX - ANDQ DX,SI - ADDQ R10,CX - MOVQ CX,R9 - SHRQ $51,CX - ANDQ DX,R8 - ADDQ R12,CX - MOVQ CX,AX - SHRQ $51,CX - ANDQ DX,R9 - ADDQ R14,CX - MOVQ CX,R10 - SHRQ $51,CX - ANDQ DX,AX - IMUL3Q $19,CX,CX - ADDQ CX,SI - ANDQ DX,R10 - MOVQ SI,80(DI) - MOVQ R8,88(DI) - MOVQ R9,96(DI) - MOVQ AX,104(DI) - MOVQ R10,112(DI) - MOVQ 0(SP),R11 - MOVQ 8(SP),R12 - MOVQ 16(SP),R13 - MOVQ 24(SP),R14 - MOVQ 32(SP),R15 - MOVQ 40(SP),BX - MOVQ 48(SP),BP - MOVQ R11,SP - MOVQ DI,AX - MOVQ SI,DX - RET diff --git a/vendor/golang.org/x/crypto/curve25519/mont25519_amd64.go b/vendor/golang.org/x/crypto/curve25519/mont25519_amd64.go deleted file mode 100644 index 5822bd5..0000000 --- a/vendor/golang.org/x/crypto/curve25519/mont25519_amd64.go +++ /dev/null @@ -1,240 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build amd64,!gccgo,!appengine - -package curve25519 - -// These functions are implemented in the .s files. The names of the functions -// in the rest of the file are also taken from the SUPERCOP sources to help -// people following along. - -//go:noescape - -func cswap(inout *[5]uint64, v uint64) - -//go:noescape - -func ladderstep(inout *[5][5]uint64) - -//go:noescape - -func freeze(inout *[5]uint64) - -//go:noescape - -func mul(dest, a, b *[5]uint64) - -//go:noescape - -func square(out, in *[5]uint64) - -// mladder uses a Montgomery ladder to calculate (xr/zr) *= s. -func mladder(xr, zr *[5]uint64, s *[32]byte) { - var work [5][5]uint64 - - work[0] = *xr - setint(&work[1], 1) - setint(&work[2], 0) - work[3] = *xr - setint(&work[4], 1) - - j := uint(6) - var prevbit byte - - for i := 31; i >= 0; i-- { - for j < 8 { - bit := ((*s)[i] >> j) & 1 - swap := bit ^ prevbit - prevbit = bit - cswap(&work[1], uint64(swap)) - ladderstep(&work) - j-- - } - j = 7 - } - - *xr = work[1] - *zr = work[2] -} - -func scalarMult(out, in, base *[32]byte) { - var e [32]byte - copy(e[:], (*in)[:]) - e[0] &= 248 - e[31] &= 127 - e[31] |= 64 - - var t, z [5]uint64 - unpack(&t, base) - mladder(&t, &z, &e) - invert(&z, &z) - mul(&t, &t, &z) - pack(out, &t) -} - -func setint(r *[5]uint64, v uint64) { - r[0] = v - r[1] = 0 - r[2] = 0 - r[3] = 0 - r[4] = 0 -} - -// unpack sets r = x where r consists of 5, 51-bit limbs in little-endian -// order. -func unpack(r *[5]uint64, x *[32]byte) { - r[0] = uint64(x[0]) | - uint64(x[1])<<8 | - uint64(x[2])<<16 | - uint64(x[3])<<24 | - uint64(x[4])<<32 | - uint64(x[5])<<40 | - uint64(x[6]&7)<<48 - - r[1] = uint64(x[6])>>3 | - uint64(x[7])<<5 | - uint64(x[8])<<13 | - uint64(x[9])<<21 | - uint64(x[10])<<29 | - uint64(x[11])<<37 | - uint64(x[12]&63)<<45 - - r[2] = uint64(x[12])>>6 | - uint64(x[13])<<2 | - uint64(x[14])<<10 | - uint64(x[15])<<18 | - uint64(x[16])<<26 | - uint64(x[17])<<34 | - uint64(x[18])<<42 | - uint64(x[19]&1)<<50 - - r[3] = uint64(x[19])>>1 | - uint64(x[20])<<7 | - uint64(x[21])<<15 | - uint64(x[22])<<23 | - uint64(x[23])<<31 | - uint64(x[24])<<39 | - uint64(x[25]&15)<<47 - - r[4] = uint64(x[25])>>4 | - uint64(x[26])<<4 | - uint64(x[27])<<12 | - uint64(x[28])<<20 | - uint64(x[29])<<28 | - uint64(x[30])<<36 | - uint64(x[31]&127)<<44 -} - -// pack sets out = x where out is the usual, little-endian form of the 5, -// 51-bit limbs in x. -func pack(out *[32]byte, x *[5]uint64) { - t := *x - freeze(&t) - - out[0] = byte(t[0]) - out[1] = byte(t[0] >> 8) - out[2] = byte(t[0] >> 16) - out[3] = byte(t[0] >> 24) - out[4] = byte(t[0] >> 32) - out[5] = byte(t[0] >> 40) - out[6] = byte(t[0] >> 48) - - out[6] ^= byte(t[1]<<3) & 0xf8 - out[7] = byte(t[1] >> 5) - out[8] = byte(t[1] >> 13) - out[9] = byte(t[1] >> 21) - out[10] = byte(t[1] >> 29) - out[11] = byte(t[1] >> 37) - out[12] = byte(t[1] >> 45) - - out[12] ^= byte(t[2]<<6) & 0xc0 - out[13] = byte(t[2] >> 2) - out[14] = byte(t[2] >> 10) - out[15] = byte(t[2] >> 18) - out[16] = byte(t[2] >> 26) - out[17] = byte(t[2] >> 34) - out[18] = byte(t[2] >> 42) - out[19] = byte(t[2] >> 50) - - out[19] ^= byte(t[3]<<1) & 0xfe - out[20] = byte(t[3] >> 7) - out[21] = byte(t[3] >> 15) - out[22] = byte(t[3] >> 23) - out[23] = byte(t[3] >> 31) - out[24] = byte(t[3] >> 39) - out[25] = byte(t[3] >> 47) - - out[25] ^= byte(t[4]<<4) & 0xf0 - out[26] = byte(t[4] >> 4) - out[27] = byte(t[4] >> 12) - out[28] = byte(t[4] >> 20) - out[29] = byte(t[4] >> 28) - out[30] = byte(t[4] >> 36) - out[31] = byte(t[4] >> 44) -} - -// invert calculates r = x^-1 mod p using Fermat's little theorem. -func invert(r *[5]uint64, x *[5]uint64) { - var z2, z9, z11, z2_5_0, z2_10_0, z2_20_0, z2_50_0, z2_100_0, t [5]uint64 - - square(&z2, x) /* 2 */ - square(&t, &z2) /* 4 */ - square(&t, &t) /* 8 */ - mul(&z9, &t, x) /* 9 */ - mul(&z11, &z9, &z2) /* 11 */ - square(&t, &z11) /* 22 */ - mul(&z2_5_0, &t, &z9) /* 2^5 - 2^0 = 31 */ - - square(&t, &z2_5_0) /* 2^6 - 2^1 */ - for i := 1; i < 5; i++ { /* 2^20 - 2^10 */ - square(&t, &t) - } - mul(&z2_10_0, &t, &z2_5_0) /* 2^10 - 2^0 */ - - square(&t, &z2_10_0) /* 2^11 - 2^1 */ - for i := 1; i < 10; i++ { /* 2^20 - 2^10 */ - square(&t, &t) - } - mul(&z2_20_0, &t, &z2_10_0) /* 2^20 - 2^0 */ - - square(&t, &z2_20_0) /* 2^21 - 2^1 */ - for i := 1; i < 20; i++ { /* 2^40 - 2^20 */ - square(&t, &t) - } - mul(&t, &t, &z2_20_0) /* 2^40 - 2^0 */ - - square(&t, &t) /* 2^41 - 2^1 */ - for i := 1; i < 10; i++ { /* 2^50 - 2^10 */ - square(&t, &t) - } - mul(&z2_50_0, &t, &z2_10_0) /* 2^50 - 2^0 */ - - square(&t, &z2_50_0) /* 2^51 - 2^1 */ - for i := 1; i < 50; i++ { /* 2^100 - 2^50 */ - square(&t, &t) - } - mul(&z2_100_0, &t, &z2_50_0) /* 2^100 - 2^0 */ - - square(&t, &z2_100_0) /* 2^101 - 2^1 */ - for i := 1; i < 100; i++ { /* 2^200 - 2^100 */ - square(&t, &t) - } - mul(&t, &t, &z2_100_0) /* 2^200 - 2^0 */ - - square(&t, &t) /* 2^201 - 2^1 */ - for i := 1; i < 50; i++ { /* 2^250 - 2^50 */ - square(&t, &t) - } - mul(&t, &t, &z2_50_0) /* 2^250 - 2^0 */ - - square(&t, &t) /* 2^251 - 2^1 */ - square(&t, &t) /* 2^252 - 2^2 */ - square(&t, &t) /* 2^253 - 2^3 */ - - square(&t, &t) /* 2^254 - 2^4 */ - - square(&t, &t) /* 2^255 - 2^5 */ - mul(r, &t, &z11) /* 2^255 - 21 */ -} diff --git a/vendor/golang.org/x/crypto/curve25519/mul_amd64.s b/vendor/golang.org/x/crypto/curve25519/mul_amd64.s deleted file mode 100644 index e48d183..0000000 --- a/vendor/golang.org/x/crypto/curve25519/mul_amd64.s +++ /dev/null @@ -1,191 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// This code was translated into a form compatible with 6a from the public -// domain sources in SUPERCOP: http://bench.cr.yp.to/supercop.html - -// +build amd64,!gccgo,!appengine - -// func mul(dest, a, b *[5]uint64) -TEXT ·mul(SB),0,$128-24 - MOVQ dest+0(FP), DI - MOVQ a+8(FP), SI - MOVQ b+16(FP), DX - - MOVQ SP,R11 - MOVQ $31,CX - NOTQ CX - ANDQ CX,SP - ADDQ $32,SP - - MOVQ R11,0(SP) - MOVQ R12,8(SP) - MOVQ R13,16(SP) - MOVQ R14,24(SP) - MOVQ R15,32(SP) - MOVQ BX,40(SP) - MOVQ BP,48(SP) - MOVQ DI,56(SP) - MOVQ DX,CX - MOVQ 24(SI),DX - IMUL3Q $19,DX,AX - MOVQ AX,64(SP) - MULQ 16(CX) - MOVQ AX,R8 - MOVQ DX,R9 - MOVQ 32(SI),DX - IMUL3Q $19,DX,AX - MOVQ AX,72(SP) - MULQ 8(CX) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 0(SI),AX - MULQ 0(CX) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 0(SI),AX - MULQ 8(CX) - MOVQ AX,R10 - MOVQ DX,R11 - MOVQ 0(SI),AX - MULQ 16(CX) - MOVQ AX,R12 - MOVQ DX,R13 - MOVQ 0(SI),AX - MULQ 24(CX) - MOVQ AX,R14 - MOVQ DX,R15 - MOVQ 0(SI),AX - MULQ 32(CX) - MOVQ AX,BX - MOVQ DX,BP - MOVQ 8(SI),AX - MULQ 0(CX) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 8(SI),AX - MULQ 8(CX) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 8(SI),AX - MULQ 16(CX) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 8(SI),AX - MULQ 24(CX) - ADDQ AX,BX - ADCQ DX,BP - MOVQ 8(SI),DX - IMUL3Q $19,DX,AX - MULQ 32(CX) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 16(SI),AX - MULQ 0(CX) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 16(SI),AX - MULQ 8(CX) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 16(SI),AX - MULQ 16(CX) - ADDQ AX,BX - ADCQ DX,BP - MOVQ 16(SI),DX - IMUL3Q $19,DX,AX - MULQ 24(CX) - ADDQ AX,R8 - ADCQ DX,R9 - MOVQ 16(SI),DX - IMUL3Q $19,DX,AX - MULQ 32(CX) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 24(SI),AX - MULQ 0(CX) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ 24(SI),AX - MULQ 8(CX) - ADDQ AX,BX - ADCQ DX,BP - MOVQ 64(SP),AX - MULQ 24(CX) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 64(SP),AX - MULQ 32(CX) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 32(SI),AX - MULQ 0(CX) - ADDQ AX,BX - ADCQ DX,BP - MOVQ 72(SP),AX - MULQ 16(CX) - ADDQ AX,R10 - ADCQ DX,R11 - MOVQ 72(SP),AX - MULQ 24(CX) - ADDQ AX,R12 - ADCQ DX,R13 - MOVQ 72(SP),AX - MULQ 32(CX) - ADDQ AX,R14 - ADCQ DX,R15 - MOVQ ·REDMASK51(SB),SI - SHLQ $13,R9:R8 - ANDQ SI,R8 - SHLQ $13,R11:R10 - ANDQ SI,R10 - ADDQ R9,R10 - SHLQ $13,R13:R12 - ANDQ SI,R12 - ADDQ R11,R12 - SHLQ $13,R15:R14 - ANDQ SI,R14 - ADDQ R13,R14 - SHLQ $13,BP:BX - ANDQ SI,BX - ADDQ R15,BX - IMUL3Q $19,BP,DX - ADDQ DX,R8 - MOVQ R8,DX - SHRQ $51,DX - ADDQ R10,DX - MOVQ DX,CX - SHRQ $51,DX - ANDQ SI,R8 - ADDQ R12,DX - MOVQ DX,R9 - SHRQ $51,DX - ANDQ SI,CX - ADDQ R14,DX - MOVQ DX,AX - SHRQ $51,DX - ANDQ SI,R9 - ADDQ BX,DX - MOVQ DX,R10 - SHRQ $51,DX - ANDQ SI,AX - IMUL3Q $19,DX,DX - ADDQ DX,R8 - ANDQ SI,R10 - MOVQ R8,0(DI) - MOVQ CX,8(DI) - MOVQ R9,16(DI) - MOVQ AX,24(DI) - MOVQ R10,32(DI) - MOVQ 0(SP),R11 - MOVQ 8(SP),R12 - MOVQ 16(SP),R13 - MOVQ 24(SP),R14 - MOVQ 32(SP),R15 - MOVQ 40(SP),BX - MOVQ 48(SP),BP - MOVQ R11,SP - MOVQ DI,AX - MOVQ SI,DX - RET diff --git a/vendor/golang.org/x/crypto/curve25519/square_amd64.s b/vendor/golang.org/x/crypto/curve25519/square_amd64.s deleted file mode 100644 index 78d1a50..0000000 --- a/vendor/golang.org/x/crypto/curve25519/square_amd64.s +++ /dev/null @@ -1,153 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// This code was translated into a form compatible with 6a from the public -// domain sources in SUPERCOP: http://bench.cr.yp.to/supercop.html - -// +build amd64,!gccgo,!appengine - -// func square(out, in *[5]uint64) -TEXT ·square(SB),7,$96-16 - MOVQ out+0(FP), DI - MOVQ in+8(FP), SI - - MOVQ SP,R11 - MOVQ $31,CX - NOTQ CX - ANDQ CX,SP - ADDQ $32, SP - - MOVQ R11,0(SP) - MOVQ R12,8(SP) - MOVQ R13,16(SP) - MOVQ R14,24(SP) - MOVQ R15,32(SP) - MOVQ BX,40(SP) - MOVQ BP,48(SP) - MOVQ 0(SI),AX - MULQ 0(SI) - MOVQ AX,CX - MOVQ DX,R8 - MOVQ 0(SI),AX - SHLQ $1,AX - MULQ 8(SI) - MOVQ AX,R9 - MOVQ DX,R10 - MOVQ 0(SI),AX - SHLQ $1,AX - MULQ 16(SI) - MOVQ AX,R11 - MOVQ DX,R12 - MOVQ 0(SI),AX - SHLQ $1,AX - MULQ 24(SI) - MOVQ AX,R13 - MOVQ DX,R14 - MOVQ 0(SI),AX - SHLQ $1,AX - MULQ 32(SI) - MOVQ AX,R15 - MOVQ DX,BX - MOVQ 8(SI),AX - MULQ 8(SI) - ADDQ AX,R11 - ADCQ DX,R12 - MOVQ 8(SI),AX - SHLQ $1,AX - MULQ 16(SI) - ADDQ AX,R13 - ADCQ DX,R14 - MOVQ 8(SI),AX - SHLQ $1,AX - MULQ 24(SI) - ADDQ AX,R15 - ADCQ DX,BX - MOVQ 8(SI),DX - IMUL3Q $38,DX,AX - MULQ 32(SI) - ADDQ AX,CX - ADCQ DX,R8 - MOVQ 16(SI),AX - MULQ 16(SI) - ADDQ AX,R15 - ADCQ DX,BX - MOVQ 16(SI),DX - IMUL3Q $38,DX,AX - MULQ 24(SI) - ADDQ AX,CX - ADCQ DX,R8 - MOVQ 16(SI),DX - IMUL3Q $38,DX,AX - MULQ 32(SI) - ADDQ AX,R9 - ADCQ DX,R10 - MOVQ 24(SI),DX - IMUL3Q $19,DX,AX - MULQ 24(SI) - ADDQ AX,R9 - ADCQ DX,R10 - MOVQ 24(SI),DX - IMUL3Q $38,DX,AX - MULQ 32(SI) - ADDQ AX,R11 - ADCQ DX,R12 - MOVQ 32(SI),DX - IMUL3Q $19,DX,AX - MULQ 32(SI) - ADDQ AX,R13 - ADCQ DX,R14 - MOVQ ·REDMASK51(SB),SI - SHLQ $13,R8:CX - ANDQ SI,CX - SHLQ $13,R10:R9 - ANDQ SI,R9 - ADDQ R8,R9 - SHLQ $13,R12:R11 - ANDQ SI,R11 - ADDQ R10,R11 - SHLQ $13,R14:R13 - ANDQ SI,R13 - ADDQ R12,R13 - SHLQ $13,BX:R15 - ANDQ SI,R15 - ADDQ R14,R15 - IMUL3Q $19,BX,DX - ADDQ DX,CX - MOVQ CX,DX - SHRQ $51,DX - ADDQ R9,DX - ANDQ SI,CX - MOVQ DX,R8 - SHRQ $51,DX - ADDQ R11,DX - ANDQ SI,R8 - MOVQ DX,R9 - SHRQ $51,DX - ADDQ R13,DX - ANDQ SI,R9 - MOVQ DX,AX - SHRQ $51,DX - ADDQ R15,DX - ANDQ SI,AX - MOVQ DX,R10 - SHRQ $51,DX - IMUL3Q $19,DX,DX - ADDQ DX,CX - ANDQ SI,R10 - MOVQ CX,0(DI) - MOVQ R8,8(DI) - MOVQ R9,16(DI) - MOVQ AX,24(DI) - MOVQ R10,32(DI) - MOVQ 0(SP),R11 - MOVQ 8(SP),R12 - MOVQ 16(SP),R13 - MOVQ 24(SP),R14 - MOVQ 32(SP),R15 - MOVQ 40(SP),BX - MOVQ 48(SP),BP - MOVQ R11,SP - MOVQ DI,AX - MOVQ SI,DX - RET diff --git a/vendor/golang.org/x/crypto/ed25519/ed25519.go b/vendor/golang.org/x/crypto/ed25519/ed25519.go deleted file mode 100644 index f1d9567..0000000 --- a/vendor/golang.org/x/crypto/ed25519/ed25519.go +++ /dev/null @@ -1,181 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package ed25519 implements the Ed25519 signature algorithm. See -// http://ed25519.cr.yp.to/. -// -// These functions are also compatible with the “Ed25519” function defined in -// https://tools.ietf.org/html/draft-irtf-cfrg-eddsa-05. -package ed25519 - -// This code is a port of the public domain, “ref10” implementation of ed25519 -// from SUPERCOP. - -import ( - "crypto" - cryptorand "crypto/rand" - "crypto/sha512" - "crypto/subtle" - "errors" - "io" - "strconv" - - "golang.org/x/crypto/ed25519/internal/edwards25519" -) - -const ( - // PublicKeySize is the size, in bytes, of public keys as used in this package. - PublicKeySize = 32 - // PrivateKeySize is the size, in bytes, of private keys as used in this package. - PrivateKeySize = 64 - // SignatureSize is the size, in bytes, of signatures generated and verified by this package. - SignatureSize = 64 -) - -// PublicKey is the type of Ed25519 public keys. -type PublicKey []byte - -// PrivateKey is the type of Ed25519 private keys. It implements crypto.Signer. -type PrivateKey []byte - -// Public returns the PublicKey corresponding to priv. -func (priv PrivateKey) Public() crypto.PublicKey { - publicKey := make([]byte, PublicKeySize) - copy(publicKey, priv[32:]) - return PublicKey(publicKey) -} - -// Sign signs the given message with priv. -// Ed25519 performs two passes over messages to be signed and therefore cannot -// handle pre-hashed messages. Thus opts.HashFunc() must return zero to -// indicate the message hasn't been hashed. This can be achieved by passing -// crypto.Hash(0) as the value for opts. -func (priv PrivateKey) Sign(rand io.Reader, message []byte, opts crypto.SignerOpts) (signature []byte, err error) { - if opts.HashFunc() != crypto.Hash(0) { - return nil, errors.New("ed25519: cannot sign hashed message") - } - - return Sign(priv, message), nil -} - -// GenerateKey generates a public/private key pair using entropy from rand. -// If rand is nil, crypto/rand.Reader will be used. -func GenerateKey(rand io.Reader) (publicKey PublicKey, privateKey PrivateKey, err error) { - if rand == nil { - rand = cryptorand.Reader - } - - privateKey = make([]byte, PrivateKeySize) - publicKey = make([]byte, PublicKeySize) - _, err = io.ReadFull(rand, privateKey[:32]) - if err != nil { - return nil, nil, err - } - - digest := sha512.Sum512(privateKey[:32]) - digest[0] &= 248 - digest[31] &= 127 - digest[31] |= 64 - - var A edwards25519.ExtendedGroupElement - var hBytes [32]byte - copy(hBytes[:], digest[:]) - edwards25519.GeScalarMultBase(&A, &hBytes) - var publicKeyBytes [32]byte - A.ToBytes(&publicKeyBytes) - - copy(privateKey[32:], publicKeyBytes[:]) - copy(publicKey, publicKeyBytes[:]) - - return publicKey, privateKey, nil -} - -// Sign signs the message with privateKey and returns a signature. It will -// panic if len(privateKey) is not PrivateKeySize. -func Sign(privateKey PrivateKey, message []byte) []byte { - if l := len(privateKey); l != PrivateKeySize { - panic("ed25519: bad private key length: " + strconv.Itoa(l)) - } - - h := sha512.New() - h.Write(privateKey[:32]) - - var digest1, messageDigest, hramDigest [64]byte - var expandedSecretKey [32]byte - h.Sum(digest1[:0]) - copy(expandedSecretKey[:], digest1[:]) - expandedSecretKey[0] &= 248 - expandedSecretKey[31] &= 63 - expandedSecretKey[31] |= 64 - - h.Reset() - h.Write(digest1[32:]) - h.Write(message) - h.Sum(messageDigest[:0]) - - var messageDigestReduced [32]byte - edwards25519.ScReduce(&messageDigestReduced, &messageDigest) - var R edwards25519.ExtendedGroupElement - edwards25519.GeScalarMultBase(&R, &messageDigestReduced) - - var encodedR [32]byte - R.ToBytes(&encodedR) - - h.Reset() - h.Write(encodedR[:]) - h.Write(privateKey[32:]) - h.Write(message) - h.Sum(hramDigest[:0]) - var hramDigestReduced [32]byte - edwards25519.ScReduce(&hramDigestReduced, &hramDigest) - - var s [32]byte - edwards25519.ScMulAdd(&s, &hramDigestReduced, &expandedSecretKey, &messageDigestReduced) - - signature := make([]byte, SignatureSize) - copy(signature[:], encodedR[:]) - copy(signature[32:], s[:]) - - return signature -} - -// Verify reports whether sig is a valid signature of message by publicKey. It -// will panic if len(publicKey) is not PublicKeySize. -func Verify(publicKey PublicKey, message, sig []byte) bool { - if l := len(publicKey); l != PublicKeySize { - panic("ed25519: bad public key length: " + strconv.Itoa(l)) - } - - if len(sig) != SignatureSize || sig[63]&224 != 0 { - return false - } - - var A edwards25519.ExtendedGroupElement - var publicKeyBytes [32]byte - copy(publicKeyBytes[:], publicKey) - if !A.FromBytes(&publicKeyBytes) { - return false - } - edwards25519.FeNeg(&A.X, &A.X) - edwards25519.FeNeg(&A.T, &A.T) - - h := sha512.New() - h.Write(sig[:32]) - h.Write(publicKey[:]) - h.Write(message) - var digest [64]byte - h.Sum(digest[:0]) - - var hReduced [32]byte - edwards25519.ScReduce(&hReduced, &digest) - - var R edwards25519.ProjectiveGroupElement - var b [32]byte - copy(b[:], sig[32:]) - edwards25519.GeDoubleScalarMultVartime(&R, &hReduced, &A, &b) - - var checkR [32]byte - R.ToBytes(&checkR) - return subtle.ConstantTimeCompare(sig[:32], checkR[:]) == 1 -} diff --git a/vendor/golang.org/x/crypto/ed25519/internal/edwards25519/const.go b/vendor/golang.org/x/crypto/ed25519/internal/edwards25519/const.go deleted file mode 100644 index e39f086..0000000 --- a/vendor/golang.org/x/crypto/ed25519/internal/edwards25519/const.go +++ /dev/null @@ -1,1422 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package edwards25519 - -// These values are from the public domain, “ref10” implementation of ed25519 -// from SUPERCOP. - -// d is a constant in the Edwards curve equation. -var d = FieldElement{ - -10913610, 13857413, -15372611, 6949391, 114729, -8787816, -6275908, -3247719, -18696448, -12055116, -} - -// d2 is 2*d. -var d2 = FieldElement{ - -21827239, -5839606, -30745221, 13898782, 229458, 15978800, -12551817, -6495438, 29715968, 9444199, -} - -// SqrtM1 is the square-root of -1 in the field. -var SqrtM1 = FieldElement{ - -32595792, -7943725, 9377950, 3500415, 12389472, -272473, -25146209, -2005654, 326686, 11406482, -} - -// A is a constant in the Montgomery-form of curve25519. -var A = FieldElement{ - 486662, 0, 0, 0, 0, 0, 0, 0, 0, 0, -} - -// bi contains precomputed multiples of the base-point. See the Ed25519 paper -// for a discussion about how these values are used. -var bi = [8]PreComputedGroupElement{ - { - FieldElement{25967493, -14356035, 29566456, 3660896, -12694345, 4014787, 27544626, -11754271, -6079156, 2047605}, - FieldElement{-12545711, 934262, -2722910, 3049990, -727428, 9406986, 12720692, 5043384, 19500929, -15469378}, - FieldElement{-8738181, 4489570, 9688441, -14785194, 10184609, -12363380, 29287919, 11864899, -24514362, -4438546}, - }, - { - FieldElement{15636291, -9688557, 24204773, -7912398, 616977, -16685262, 27787600, -14772189, 28944400, -1550024}, - FieldElement{16568933, 4717097, -11556148, -1102322, 15682896, -11807043, 16354577, -11775962, 7689662, 11199574}, - FieldElement{30464156, -5976125, -11779434, -15670865, 23220365, 15915852, 7512774, 10017326, -17749093, -9920357}, - }, - { - FieldElement{10861363, 11473154, 27284546, 1981175, -30064349, 12577861, 32867885, 14515107, -15438304, 10819380}, - FieldElement{4708026, 6336745, 20377586, 9066809, -11272109, 6594696, -25653668, 12483688, -12668491, 5581306}, - FieldElement{19563160, 16186464, -29386857, 4097519, 10237984, -4348115, 28542350, 13850243, -23678021, -15815942}, - }, - { - FieldElement{5153746, 9909285, 1723747, -2777874, 30523605, 5516873, 19480852, 5230134, -23952439, -15175766}, - FieldElement{-30269007, -3463509, 7665486, 10083793, 28475525, 1649722, 20654025, 16520125, 30598449, 7715701}, - FieldElement{28881845, 14381568, 9657904, 3680757, -20181635, 7843316, -31400660, 1370708, 29794553, -1409300}, - }, - { - FieldElement{-22518993, -6692182, 14201702, -8745502, -23510406, 8844726, 18474211, -1361450, -13062696, 13821877}, - FieldElement{-6455177, -7839871, 3374702, -4740862, -27098617, -10571707, 31655028, -7212327, 18853322, -14220951}, - FieldElement{4566830, -12963868, -28974889, -12240689, -7602672, -2830569, -8514358, -10431137, 2207753, -3209784}, - }, - { - FieldElement{-25154831, -4185821, 29681144, 7868801, -6854661, -9423865, -12437364, -663000, -31111463, -16132436}, - FieldElement{25576264, -2703214, 7349804, -11814844, 16472782, 9300885, 3844789, 15725684, 171356, 6466918}, - FieldElement{23103977, 13316479, 9739013, -16149481, 817875, -15038942, 8965339, -14088058, -30714912, 16193877}, - }, - { - FieldElement{-33521811, 3180713, -2394130, 14003687, -16903474, -16270840, 17238398, 4729455, -18074513, 9256800}, - FieldElement{-25182317, -4174131, 32336398, 5036987, -21236817, 11360617, 22616405, 9761698, -19827198, 630305}, - FieldElement{-13720693, 2639453, -24237460, -7406481, 9494427, -5774029, -6554551, -15960994, -2449256, -14291300}, - }, - { - FieldElement{-3151181, -5046075, 9282714, 6866145, -31907062, -863023, -18940575, 15033784, 25105118, -7894876}, - FieldElement{-24326370, 15950226, -31801215, -14592823, -11662737, -5090925, 1573892, -2625887, 2198790, -15804619}, - FieldElement{-3099351, 10324967, -2241613, 7453183, -5446979, -2735503, -13812022, -16236442, -32461234, -12290683}, - }, -} - -// base contains precomputed multiples of the base-point. See the Ed25519 paper -// for a discussion about how these values are used. -var base = [32][8]PreComputedGroupElement{ - { - { - FieldElement{25967493, -14356035, 29566456, 3660896, -12694345, 4014787, 27544626, -11754271, -6079156, 2047605}, - FieldElement{-12545711, 934262, -2722910, 3049990, -727428, 9406986, 12720692, 5043384, 19500929, -15469378}, - FieldElement{-8738181, 4489570, 9688441, -14785194, 10184609, -12363380, 29287919, 11864899, -24514362, -4438546}, - }, - { - FieldElement{-12815894, -12976347, -21581243, 11784320, -25355658, -2750717, -11717903, -3814571, -358445, -10211303}, - FieldElement{-21703237, 6903825, 27185491, 6451973, -29577724, -9554005, -15616551, 11189268, -26829678, -5319081}, - FieldElement{26966642, 11152617, 32442495, 15396054, 14353839, -12752335, -3128826, -9541118, -15472047, -4166697}, - }, - { - FieldElement{15636291, -9688557, 24204773, -7912398, 616977, -16685262, 27787600, -14772189, 28944400, -1550024}, - FieldElement{16568933, 4717097, -11556148, -1102322, 15682896, -11807043, 16354577, -11775962, 7689662, 11199574}, - FieldElement{30464156, -5976125, -11779434, -15670865, 23220365, 15915852, 7512774, 10017326, -17749093, -9920357}, - }, - { - FieldElement{-17036878, 13921892, 10945806, -6033431, 27105052, -16084379, -28926210, 15006023, 3284568, -6276540}, - FieldElement{23599295, -8306047, -11193664, -7687416, 13236774, 10506355, 7464579, 9656445, 13059162, 10374397}, - FieldElement{7798556, 16710257, 3033922, 2874086, 28997861, 2835604, 32406664, -3839045, -641708, -101325}, - }, - { - FieldElement{10861363, 11473154, 27284546, 1981175, -30064349, 12577861, 32867885, 14515107, -15438304, 10819380}, - FieldElement{4708026, 6336745, 20377586, 9066809, -11272109, 6594696, -25653668, 12483688, -12668491, 5581306}, - FieldElement{19563160, 16186464, -29386857, 4097519, 10237984, -4348115, 28542350, 13850243, -23678021, -15815942}, - }, - { - FieldElement{-15371964, -12862754, 32573250, 4720197, -26436522, 5875511, -19188627, -15224819, -9818940, -12085777}, - FieldElement{-8549212, 109983, 15149363, 2178705, 22900618, 4543417, 3044240, -15689887, 1762328, 14866737}, - FieldElement{-18199695, -15951423, -10473290, 1707278, -17185920, 3916101, -28236412, 3959421, 27914454, 4383652}, - }, - { - FieldElement{5153746, 9909285, 1723747, -2777874, 30523605, 5516873, 19480852, 5230134, -23952439, -15175766}, - FieldElement{-30269007, -3463509, 7665486, 10083793, 28475525, 1649722, 20654025, 16520125, 30598449, 7715701}, - FieldElement{28881845, 14381568, 9657904, 3680757, -20181635, 7843316, -31400660, 1370708, 29794553, -1409300}, - }, - { - FieldElement{14499471, -2729599, -33191113, -4254652, 28494862, 14271267, 30290735, 10876454, -33154098, 2381726}, - FieldElement{-7195431, -2655363, -14730155, 462251, -27724326, 3941372, -6236617, 3696005, -32300832, 15351955}, - FieldElement{27431194, 8222322, 16448760, -3907995, -18707002, 11938355, -32961401, -2970515, 29551813, 10109425}, - }, - }, - { - { - FieldElement{-13657040, -13155431, -31283750, 11777098, 21447386, 6519384, -2378284, -1627556, 10092783, -4764171}, - FieldElement{27939166, 14210322, 4677035, 16277044, -22964462, -12398139, -32508754, 12005538, -17810127, 12803510}, - FieldElement{17228999, -15661624, -1233527, 300140, -1224870, -11714777, 30364213, -9038194, 18016357, 4397660}, - }, - { - FieldElement{-10958843, -7690207, 4776341, -14954238, 27850028, -15602212, -26619106, 14544525, -17477504, 982639}, - FieldElement{29253598, 15796703, -2863982, -9908884, 10057023, 3163536, 7332899, -4120128, -21047696, 9934963}, - FieldElement{5793303, 16271923, -24131614, -10116404, 29188560, 1206517, -14747930, 4559895, -30123922, -10897950}, - }, - { - FieldElement{-27643952, -11493006, 16282657, -11036493, 28414021, -15012264, 24191034, 4541697, -13338309, 5500568}, - FieldElement{12650548, -1497113, 9052871, 11355358, -17680037, -8400164, -17430592, 12264343, 10874051, 13524335}, - FieldElement{25556948, -3045990, 714651, 2510400, 23394682, -10415330, 33119038, 5080568, -22528059, 5376628}, - }, - { - FieldElement{-26088264, -4011052, -17013699, -3537628, -6726793, 1920897, -22321305, -9447443, 4535768, 1569007}, - FieldElement{-2255422, 14606630, -21692440, -8039818, 28430649, 8775819, -30494562, 3044290, 31848280, 12543772}, - FieldElement{-22028579, 2943893, -31857513, 6777306, 13784462, -4292203, -27377195, -2062731, 7718482, 14474653}, - }, - { - FieldElement{2385315, 2454213, -22631320, 46603, -4437935, -15680415, 656965, -7236665, 24316168, -5253567}, - FieldElement{13741529, 10911568, -33233417, -8603737, -20177830, -1033297, 33040651, -13424532, -20729456, 8321686}, - FieldElement{21060490, -2212744, 15712757, -4336099, 1639040, 10656336, 23845965, -11874838, -9984458, 608372}, - }, - { - FieldElement{-13672732, -15087586, -10889693, -7557059, -6036909, 11305547, 1123968, -6780577, 27229399, 23887}, - FieldElement{-23244140, -294205, -11744728, 14712571, -29465699, -2029617, 12797024, -6440308, -1633405, 16678954}, - FieldElement{-29500620, 4770662, -16054387, 14001338, 7830047, 9564805, -1508144, -4795045, -17169265, 4904953}, - }, - { - FieldElement{24059557, 14617003, 19037157, -15039908, 19766093, -14906429, 5169211, 16191880, 2128236, -4326833}, - FieldElement{-16981152, 4124966, -8540610, -10653797, 30336522, -14105247, -29806336, 916033, -6882542, -2986532}, - FieldElement{-22630907, 12419372, -7134229, -7473371, -16478904, 16739175, 285431, 2763829, 15736322, 4143876}, - }, - { - FieldElement{2379352, 11839345, -4110402, -5988665, 11274298, 794957, 212801, -14594663, 23527084, -16458268}, - FieldElement{33431127, -11130478, -17838966, -15626900, 8909499, 8376530, -32625340, 4087881, -15188911, -14416214}, - FieldElement{1767683, 7197987, -13205226, -2022635, -13091350, 448826, 5799055, 4357868, -4774191, -16323038}, - }, - }, - { - { - FieldElement{6721966, 13833823, -23523388, -1551314, 26354293, -11863321, 23365147, -3949732, 7390890, 2759800}, - FieldElement{4409041, 2052381, 23373853, 10530217, 7676779, -12885954, 21302353, -4264057, 1244380, -12919645}, - FieldElement{-4421239, 7169619, 4982368, -2957590, 30256825, -2777540, 14086413, 9208236, 15886429, 16489664}, - }, - { - FieldElement{1996075, 10375649, 14346367, 13311202, -6874135, -16438411, -13693198, 398369, -30606455, -712933}, - FieldElement{-25307465, 9795880, -2777414, 14878809, -33531835, 14780363, 13348553, 12076947, -30836462, 5113182}, - FieldElement{-17770784, 11797796, 31950843, 13929123, -25888302, 12288344, -30341101, -7336386, 13847711, 5387222}, - }, - { - FieldElement{-18582163, -3416217, 17824843, -2340966, 22744343, -10442611, 8763061, 3617786, -19600662, 10370991}, - FieldElement{20246567, -14369378, 22358229, -543712, 18507283, -10413996, 14554437, -8746092, 32232924, 16763880}, - FieldElement{9648505, 10094563, 26416693, 14745928, -30374318, -6472621, 11094161, 15689506, 3140038, -16510092}, - }, - { - FieldElement{-16160072, 5472695, 31895588, 4744994, 8823515, 10365685, -27224800, 9448613, -28774454, 366295}, - FieldElement{19153450, 11523972, -11096490, -6503142, -24647631, 5420647, 28344573, 8041113, 719605, 11671788}, - FieldElement{8678025, 2694440, -6808014, 2517372, 4964326, 11152271, -15432916, -15266516, 27000813, -10195553}, - }, - { - FieldElement{-15157904, 7134312, 8639287, -2814877, -7235688, 10421742, 564065, 5336097, 6750977, -14521026}, - FieldElement{11836410, -3979488, 26297894, 16080799, 23455045, 15735944, 1695823, -8819122, 8169720, 16220347}, - FieldElement{-18115838, 8653647, 17578566, -6092619, -8025777, -16012763, -11144307, -2627664, -5990708, -14166033}, - }, - { - FieldElement{-23308498, -10968312, 15213228, -10081214, -30853605, -11050004, 27884329, 2847284, 2655861, 1738395}, - FieldElement{-27537433, -14253021, -25336301, -8002780, -9370762, 8129821, 21651608, -3239336, -19087449, -11005278}, - FieldElement{1533110, 3437855, 23735889, 459276, 29970501, 11335377, 26030092, 5821408, 10478196, 8544890}, - }, - { - FieldElement{32173121, -16129311, 24896207, 3921497, 22579056, -3410854, 19270449, 12217473, 17789017, -3395995}, - FieldElement{-30552961, -2228401, -15578829, -10147201, 13243889, 517024, 15479401, -3853233, 30460520, 1052596}, - FieldElement{-11614875, 13323618, 32618793, 8175907, -15230173, 12596687, 27491595, -4612359, 3179268, -9478891}, - }, - { - FieldElement{31947069, -14366651, -4640583, -15339921, -15125977, -6039709, -14756777, -16411740, 19072640, -9511060}, - FieldElement{11685058, 11822410, 3158003, -13952594, 33402194, -4165066, 5977896, -5215017, 473099, 5040608}, - FieldElement{-20290863, 8198642, -27410132, 11602123, 1290375, -2799760, 28326862, 1721092, -19558642, -3131606}, - }, - }, - { - { - FieldElement{7881532, 10687937, 7578723, 7738378, -18951012, -2553952, 21820786, 8076149, -27868496, 11538389}, - FieldElement{-19935666, 3899861, 18283497, -6801568, -15728660, -11249211, 8754525, 7446702, -5676054, 5797016}, - FieldElement{-11295600, -3793569, -15782110, -7964573, 12708869, -8456199, 2014099, -9050574, -2369172, -5877341}, - }, - { - FieldElement{-22472376, -11568741, -27682020, 1146375, 18956691, 16640559, 1192730, -3714199, 15123619, 10811505}, - FieldElement{14352098, -3419715, -18942044, 10822655, 32750596, 4699007, -70363, 15776356, -28886779, -11974553}, - FieldElement{-28241164, -8072475, -4978962, -5315317, 29416931, 1847569, -20654173, -16484855, 4714547, -9600655}, - }, - { - FieldElement{15200332, 8368572, 19679101, 15970074, -31872674, 1959451, 24611599, -4543832, -11745876, 12340220}, - FieldElement{12876937, -10480056, 33134381, 6590940, -6307776, 14872440, 9613953, 8241152, 15370987, 9608631}, - FieldElement{-4143277, -12014408, 8446281, -391603, 4407738, 13629032, -7724868, 15866074, -28210621, -8814099}, - }, - { - FieldElement{26660628, -15677655, 8393734, 358047, -7401291, 992988, -23904233, 858697, 20571223, 8420556}, - FieldElement{14620715, 13067227, -15447274, 8264467, 14106269, 15080814, 33531827, 12516406, -21574435, -12476749}, - FieldElement{236881, 10476226, 57258, -14677024, 6472998, 2466984, 17258519, 7256740, 8791136, 15069930}, - }, - { - FieldElement{1276410, -9371918, 22949635, -16322807, -23493039, -5702186, 14711875, 4874229, -30663140, -2331391}, - FieldElement{5855666, 4990204, -13711848, 7294284, -7804282, 1924647, -1423175, -7912378, -33069337, 9234253}, - FieldElement{20590503, -9018988, 31529744, -7352666, -2706834, 10650548, 31559055, -11609587, 18979186, 13396066}, - }, - { - FieldElement{24474287, 4968103, 22267082, 4407354, 24063882, -8325180, -18816887, 13594782, 33514650, 7021958}, - FieldElement{-11566906, -6565505, -21365085, 15928892, -26158305, 4315421, -25948728, -3916677, -21480480, 12868082}, - FieldElement{-28635013, 13504661, 19988037, -2132761, 21078225, 6443208, -21446107, 2244500, -12455797, -8089383}, - }, - { - FieldElement{-30595528, 13793479, -5852820, 319136, -25723172, -6263899, 33086546, 8957937, -15233648, 5540521}, - FieldElement{-11630176, -11503902, -8119500, -7643073, 2620056, 1022908, -23710744, -1568984, -16128528, -14962807}, - FieldElement{23152971, 775386, 27395463, 14006635, -9701118, 4649512, 1689819, 892185, -11513277, -15205948}, - }, - { - FieldElement{9770129, 9586738, 26496094, 4324120, 1556511, -3550024, 27453819, 4763127, -19179614, 5867134}, - FieldElement{-32765025, 1927590, 31726409, -4753295, 23962434, -16019500, 27846559, 5931263, -29749703, -16108455}, - FieldElement{27461885, -2977536, 22380810, 1815854, -23033753, -3031938, 7283490, -15148073, -19526700, 7734629}, - }, - }, - { - { - FieldElement{-8010264, -9590817, -11120403, 6196038, 29344158, -13430885, 7585295, -3176626, 18549497, 15302069}, - FieldElement{-32658337, -6171222, -7672793, -11051681, 6258878, 13504381, 10458790, -6418461, -8872242, 8424746}, - FieldElement{24687205, 8613276, -30667046, -3233545, 1863892, -1830544, 19206234, 7134917, -11284482, -828919}, - }, - { - FieldElement{11334899, -9218022, 8025293, 12707519, 17523892, -10476071, 10243738, -14685461, -5066034, 16498837}, - FieldElement{8911542, 6887158, -9584260, -6958590, 11145641, -9543680, 17303925, -14124238, 6536641, 10543906}, - FieldElement{-28946384, 15479763, -17466835, 568876, -1497683, 11223454, -2669190, -16625574, -27235709, 8876771}, - }, - { - FieldElement{-25742899, -12566864, -15649966, -846607, -33026686, -796288, -33481822, 15824474, -604426, -9039817}, - FieldElement{10330056, 70051, 7957388, -9002667, 9764902, 15609756, 27698697, -4890037, 1657394, 3084098}, - FieldElement{10477963, -7470260, 12119566, -13250805, 29016247, -5365589, 31280319, 14396151, -30233575, 15272409}, - }, - { - FieldElement{-12288309, 3169463, 28813183, 16658753, 25116432, -5630466, -25173957, -12636138, -25014757, 1950504}, - FieldElement{-26180358, 9489187, 11053416, -14746161, -31053720, 5825630, -8384306, -8767532, 15341279, 8373727}, - FieldElement{28685821, 7759505, -14378516, -12002860, -31971820, 4079242, 298136, -10232602, -2878207, 15190420}, - }, - { - FieldElement{-32932876, 13806336, -14337485, -15794431, -24004620, 10940928, 8669718, 2742393, -26033313, -6875003}, - FieldElement{-1580388, -11729417, -25979658, -11445023, -17411874, -10912854, 9291594, -16247779, -12154742, 6048605}, - FieldElement{-30305315, 14843444, 1539301, 11864366, 20201677, 1900163, 13934231, 5128323, 11213262, 9168384}, - }, - { - FieldElement{-26280513, 11007847, 19408960, -940758, -18592965, -4328580, -5088060, -11105150, 20470157, -16398701}, - FieldElement{-23136053, 9282192, 14855179, -15390078, -7362815, -14408560, -22783952, 14461608, 14042978, 5230683}, - FieldElement{29969567, -2741594, -16711867, -8552442, 9175486, -2468974, 21556951, 3506042, -5933891, -12449708}, - }, - { - FieldElement{-3144746, 8744661, 19704003, 4581278, -20430686, 6830683, -21284170, 8971513, -28539189, 15326563}, - FieldElement{-19464629, 10110288, -17262528, -3503892, -23500387, 1355669, -15523050, 15300988, -20514118, 9168260}, - FieldElement{-5353335, 4488613, -23803248, 16314347, 7780487, -15638939, -28948358, 9601605, 33087103, -9011387}, - }, - { - FieldElement{-19443170, -15512900, -20797467, -12445323, -29824447, 10229461, -27444329, -15000531, -5996870, 15664672}, - FieldElement{23294591, -16632613, -22650781, -8470978, 27844204, 11461195, 13099750, -2460356, 18151676, 13417686}, - FieldElement{-24722913, -4176517, -31150679, 5988919, -26858785, 6685065, 1661597, -12551441, 15271676, -15452665}, - }, - }, - { - { - FieldElement{11433042, -13228665, 8239631, -5279517, -1985436, -725718, -18698764, 2167544, -6921301, -13440182}, - FieldElement{-31436171, 15575146, 30436815, 12192228, -22463353, 9395379, -9917708, -8638997, 12215110, 12028277}, - FieldElement{14098400, 6555944, 23007258, 5757252, -15427832, -12950502, 30123440, 4617780, -16900089, -655628}, - }, - { - FieldElement{-4026201, -15240835, 11893168, 13718664, -14809462, 1847385, -15819999, 10154009, 23973261, -12684474}, - FieldElement{-26531820, -3695990, -1908898, 2534301, -31870557, -16550355, 18341390, -11419951, 32013174, -10103539}, - FieldElement{-25479301, 10876443, -11771086, -14625140, -12369567, 1838104, 21911214, 6354752, 4425632, -837822}, - }, - { - FieldElement{-10433389, -14612966, 22229858, -3091047, -13191166, 776729, -17415375, -12020462, 4725005, 14044970}, - FieldElement{19268650, -7304421, 1555349, 8692754, -21474059, -9910664, 6347390, -1411784, -19522291, -16109756}, - FieldElement{-24864089, 12986008, -10898878, -5558584, -11312371, -148526, 19541418, 8180106, 9282262, 10282508}, - }, - { - FieldElement{-26205082, 4428547, -8661196, -13194263, 4098402, -14165257, 15522535, 8372215, 5542595, -10702683}, - FieldElement{-10562541, 14895633, 26814552, -16673850, -17480754, -2489360, -2781891, 6993761, -18093885, 10114655}, - FieldElement{-20107055, -929418, 31422704, 10427861, -7110749, 6150669, -29091755, -11529146, 25953725, -106158}, - }, - { - FieldElement{-4234397, -8039292, -9119125, 3046000, 2101609, -12607294, 19390020, 6094296, -3315279, 12831125}, - FieldElement{-15998678, 7578152, 5310217, 14408357, -33548620, -224739, 31575954, 6326196, 7381791, -2421839}, - FieldElement{-20902779, 3296811, 24736065, -16328389, 18374254, 7318640, 6295303, 8082724, -15362489, 12339664}, - }, - { - FieldElement{27724736, 2291157, 6088201, -14184798, 1792727, 5857634, 13848414, 15768922, 25091167, 14856294}, - FieldElement{-18866652, 8331043, 24373479, 8541013, -701998, -9269457, 12927300, -12695493, -22182473, -9012899}, - FieldElement{-11423429, -5421590, 11632845, 3405020, 30536730, -11674039, -27260765, 13866390, 30146206, 9142070}, - }, - { - FieldElement{3924129, -15307516, -13817122, -10054960, 12291820, -668366, -27702774, 9326384, -8237858, 4171294}, - FieldElement{-15921940, 16037937, 6713787, 16606682, -21612135, 2790944, 26396185, 3731949, 345228, -5462949}, - FieldElement{-21327538, 13448259, 25284571, 1143661, 20614966, -8849387, 2031539, -12391231, -16253183, -13582083}, - }, - { - FieldElement{31016211, -16722429, 26371392, -14451233, -5027349, 14854137, 17477601, 3842657, 28012650, -16405420}, - FieldElement{-5075835, 9368966, -8562079, -4600902, -15249953, 6970560, -9189873, 16292057, -8867157, 3507940}, - FieldElement{29439664, 3537914, 23333589, 6997794, -17555561, -11018068, -15209202, -15051267, -9164929, 6580396}, - }, - }, - { - { - FieldElement{-12185861, -7679788, 16438269, 10826160, -8696817, -6235611, 17860444, -9273846, -2095802, 9304567}, - FieldElement{20714564, -4336911, 29088195, 7406487, 11426967, -5095705, 14792667, -14608617, 5289421, -477127}, - FieldElement{-16665533, -10650790, -6160345, -13305760, 9192020, -1802462, 17271490, 12349094, 26939669, -3752294}, - }, - { - FieldElement{-12889898, 9373458, 31595848, 16374215, 21471720, 13221525, -27283495, -12348559, -3698806, 117887}, - FieldElement{22263325, -6560050, 3984570, -11174646, -15114008, -566785, 28311253, 5358056, -23319780, 541964}, - FieldElement{16259219, 3261970, 2309254, -15534474, -16885711, -4581916, 24134070, -16705829, -13337066, -13552195}, - }, - { - FieldElement{9378160, -13140186, -22845982, -12745264, 28198281, -7244098, -2399684, -717351, 690426, 14876244}, - FieldElement{24977353, -314384, -8223969, -13465086, 28432343, -1176353, -13068804, -12297348, -22380984, 6618999}, - FieldElement{-1538174, 11685646, 12944378, 13682314, -24389511, -14413193, 8044829, -13817328, 32239829, -5652762}, - }, - { - FieldElement{-18603066, 4762990, -926250, 8885304, -28412480, -3187315, 9781647, -10350059, 32779359, 5095274}, - FieldElement{-33008130, -5214506, -32264887, -3685216, 9460461, -9327423, -24601656, 14506724, 21639561, -2630236}, - FieldElement{-16400943, -13112215, 25239338, 15531969, 3987758, -4499318, -1289502, -6863535, 17874574, 558605}, - }, - { - FieldElement{-13600129, 10240081, 9171883, 16131053, -20869254, 9599700, 33499487, 5080151, 2085892, 5119761}, - FieldElement{-22205145, -2519528, -16381601, 414691, -25019550, 2170430, 30634760, -8363614, -31999993, -5759884}, - FieldElement{-6845704, 15791202, 8550074, -1312654, 29928809, -12092256, 27534430, -7192145, -22351378, 12961482}, - }, - { - FieldElement{-24492060, -9570771, 10368194, 11582341, -23397293, -2245287, 16533930, 8206996, -30194652, -5159638}, - FieldElement{-11121496, -3382234, 2307366, 6362031, -135455, 8868177, -16835630, 7031275, 7589640, 8945490}, - FieldElement{-32152748, 8917967, 6661220, -11677616, -1192060, -15793393, 7251489, -11182180, 24099109, -14456170}, - }, - { - FieldElement{5019558, -7907470, 4244127, -14714356, -26933272, 6453165, -19118182, -13289025, -6231896, -10280736}, - FieldElement{10853594, 10721687, 26480089, 5861829, -22995819, 1972175, -1866647, -10557898, -3363451, -6441124}, - FieldElement{-17002408, 5906790, 221599, -6563147, 7828208, -13248918, 24362661, -2008168, -13866408, 7421392}, - }, - { - FieldElement{8139927, -6546497, 32257646, -5890546, 30375719, 1886181, -21175108, 15441252, 28826358, -4123029}, - FieldElement{6267086, 9695052, 7709135, -16603597, -32869068, -1886135, 14795160, -7840124, 13746021, -1742048}, - FieldElement{28584902, 7787108, -6732942, -15050729, 22846041, -7571236, -3181936, -363524, 4771362, -8419958}, - }, - }, - { - { - FieldElement{24949256, 6376279, -27466481, -8174608, -18646154, -9930606, 33543569, -12141695, 3569627, 11342593}, - FieldElement{26514989, 4740088, 27912651, 3697550, 19331575, -11472339, 6809886, 4608608, 7325975, -14801071}, - FieldElement{-11618399, -14554430, -24321212, 7655128, -1369274, 5214312, -27400540, 10258390, -17646694, -8186692}, - }, - { - FieldElement{11431204, 15823007, 26570245, 14329124, 18029990, 4796082, -31446179, 15580664, 9280358, -3973687}, - FieldElement{-160783, -10326257, -22855316, -4304997, -20861367, -13621002, -32810901, -11181622, -15545091, 4387441}, - FieldElement{-20799378, 12194512, 3937617, -5805892, -27154820, 9340370, -24513992, 8548137, 20617071, -7482001}, - }, - { - FieldElement{-938825, -3930586, -8714311, 16124718, 24603125, -6225393, -13775352, -11875822, 24345683, 10325460}, - FieldElement{-19855277, -1568885, -22202708, 8714034, 14007766, 6928528, 16318175, -1010689, 4766743, 3552007}, - FieldElement{-21751364, -16730916, 1351763, -803421, -4009670, 3950935, 3217514, 14481909, 10988822, -3994762}, - }, - { - FieldElement{15564307, -14311570, 3101243, 5684148, 30446780, -8051356, 12677127, -6505343, -8295852, 13296005}, - FieldElement{-9442290, 6624296, -30298964, -11913677, -4670981, -2057379, 31521204, 9614054, -30000824, 12074674}, - FieldElement{4771191, -135239, 14290749, -13089852, 27992298, 14998318, -1413936, -1556716, 29832613, -16391035}, - }, - { - FieldElement{7064884, -7541174, -19161962, -5067537, -18891269, -2912736, 25825242, 5293297, -27122660, 13101590}, - FieldElement{-2298563, 2439670, -7466610, 1719965, -27267541, -16328445, 32512469, -5317593, -30356070, -4190957}, - FieldElement{-30006540, 10162316, -33180176, 3981723, -16482138, -13070044, 14413974, 9515896, 19568978, 9628812}, - }, - { - FieldElement{33053803, 199357, 15894591, 1583059, 27380243, -4580435, -17838894, -6106839, -6291786, 3437740}, - FieldElement{-18978877, 3884493, 19469877, 12726490, 15913552, 13614290, -22961733, 70104, 7463304, 4176122}, - FieldElement{-27124001, 10659917, 11482427, -16070381, 12771467, -6635117, -32719404, -5322751, 24216882, 5944158}, - }, - { - FieldElement{8894125, 7450974, -2664149, -9765752, -28080517, -12389115, 19345746, 14680796, 11632993, 5847885}, - FieldElement{26942781, -2315317, 9129564, -4906607, 26024105, 11769399, -11518837, 6367194, -9727230, 4782140}, - FieldElement{19916461, -4828410, -22910704, -11414391, 25606324, -5972441, 33253853, 8220911, 6358847, -1873857}, - }, - { - FieldElement{801428, -2081702, 16569428, 11065167, 29875704, 96627, 7908388, -4480480, -13538503, 1387155}, - FieldElement{19646058, 5720633, -11416706, 12814209, 11607948, 12749789, 14147075, 15156355, -21866831, 11835260}, - FieldElement{19299512, 1155910, 28703737, 14890794, 2925026, 7269399, 26121523, 15467869, -26560550, 5052483}, - }, - }, - { - { - FieldElement{-3017432, 10058206, 1980837, 3964243, 22160966, 12322533, -6431123, -12618185, 12228557, -7003677}, - FieldElement{32944382, 14922211, -22844894, 5188528, 21913450, -8719943, 4001465, 13238564, -6114803, 8653815}, - FieldElement{22865569, -4652735, 27603668, -12545395, 14348958, 8234005, 24808405, 5719875, 28483275, 2841751}, - }, - { - FieldElement{-16420968, -1113305, -327719, -12107856, 21886282, -15552774, -1887966, -315658, 19932058, -12739203}, - FieldElement{-11656086, 10087521, -8864888, -5536143, -19278573, -3055912, 3999228, 13239134, -4777469, -13910208}, - FieldElement{1382174, -11694719, 17266790, 9194690, -13324356, 9720081, 20403944, 11284705, -14013818, 3093230}, - }, - { - FieldElement{16650921, -11037932, -1064178, 1570629, -8329746, 7352753, -302424, 16271225, -24049421, -6691850}, - FieldElement{-21911077, -5927941, -4611316, -5560156, -31744103, -10785293, 24123614, 15193618, -21652117, -16739389}, - FieldElement{-9935934, -4289447, -25279823, 4372842, 2087473, 10399484, 31870908, 14690798, 17361620, 11864968}, - }, - { - FieldElement{-11307610, 6210372, 13206574, 5806320, -29017692, -13967200, -12331205, -7486601, -25578460, -16240689}, - FieldElement{14668462, -12270235, 26039039, 15305210, 25515617, 4542480, 10453892, 6577524, 9145645, -6443880}, - FieldElement{5974874, 3053895, -9433049, -10385191, -31865124, 3225009, -7972642, 3936128, -5652273, -3050304}, - }, - { - FieldElement{30625386, -4729400, -25555961, -12792866, -20484575, 7695099, 17097188, -16303496, -27999779, 1803632}, - FieldElement{-3553091, 9865099, -5228566, 4272701, -5673832, -16689700, 14911344, 12196514, -21405489, 7047412}, - FieldElement{20093277, 9920966, -11138194, -5343857, 13161587, 12044805, -32856851, 4124601, -32343828, -10257566}, - }, - { - FieldElement{-20788824, 14084654, -13531713, 7842147, 19119038, -13822605, 4752377, -8714640, -21679658, 2288038}, - FieldElement{-26819236, -3283715, 29965059, 3039786, -14473765, 2540457, 29457502, 14625692, -24819617, 12570232}, - FieldElement{-1063558, -11551823, 16920318, 12494842, 1278292, -5869109, -21159943, -3498680, -11974704, 4724943}, - }, - { - FieldElement{17960970, -11775534, -4140968, -9702530, -8876562, -1410617, -12907383, -8659932, -29576300, 1903856}, - FieldElement{23134274, -14279132, -10681997, -1611936, 20684485, 15770816, -12989750, 3190296, 26955097, 14109738}, - FieldElement{15308788, 5320727, -30113809, -14318877, 22902008, 7767164, 29425325, -11277562, 31960942, 11934971}, - }, - { - FieldElement{-27395711, 8435796, 4109644, 12222639, -24627868, 14818669, 20638173, 4875028, 10491392, 1379718}, - FieldElement{-13159415, 9197841, 3875503, -8936108, -1383712, -5879801, 33518459, 16176658, 21432314, 12180697}, - FieldElement{-11787308, 11500838, 13787581, -13832590, -22430679, 10140205, 1465425, 12689540, -10301319, -13872883}, - }, - }, - { - { - FieldElement{5414091, -15386041, -21007664, 9643570, 12834970, 1186149, -2622916, -1342231, 26128231, 6032912}, - FieldElement{-26337395, -13766162, 32496025, -13653919, 17847801, -12669156, 3604025, 8316894, -25875034, -10437358}, - FieldElement{3296484, 6223048, 24680646, -12246460, -23052020, 5903205, -8862297, -4639164, 12376617, 3188849}, - }, - { - FieldElement{29190488, -14659046, 27549113, -1183516, 3520066, -10697301, 32049515, -7309113, -16109234, -9852307}, - FieldElement{-14744486, -9309156, 735818, -598978, -20407687, -5057904, 25246078, -15795669, 18640741, -960977}, - FieldElement{-6928835, -16430795, 10361374, 5642961, 4910474, 12345252, -31638386, -494430, 10530747, 1053335}, - }, - { - FieldElement{-29265967, -14186805, -13538216, -12117373, -19457059, -10655384, -31462369, -2948985, 24018831, 15026644}, - FieldElement{-22592535, -3145277, -2289276, 5953843, -13440189, 9425631, 25310643, 13003497, -2314791, -15145616}, - FieldElement{-27419985, -603321, -8043984, -1669117, -26092265, 13987819, -27297622, 187899, -23166419, -2531735}, - }, - { - FieldElement{-21744398, -13810475, 1844840, 5021428, -10434399, -15911473, 9716667, 16266922, -5070217, 726099}, - FieldElement{29370922, -6053998, 7334071, -15342259, 9385287, 2247707, -13661962, -4839461, 30007388, -15823341}, - FieldElement{-936379, 16086691, 23751945, -543318, -1167538, -5189036, 9137109, 730663, 9835848, 4555336}, - }, - { - FieldElement{-23376435, 1410446, -22253753, -12899614, 30867635, 15826977, 17693930, 544696, -11985298, 12422646}, - FieldElement{31117226, -12215734, -13502838, 6561947, -9876867, -12757670, -5118685, -4096706, 29120153, 13924425}, - FieldElement{-17400879, -14233209, 19675799, -2734756, -11006962, -5858820, -9383939, -11317700, 7240931, -237388}, - }, - { - FieldElement{-31361739, -11346780, -15007447, -5856218, -22453340, -12152771, 1222336, 4389483, 3293637, -15551743}, - FieldElement{-16684801, -14444245, 11038544, 11054958, -13801175, -3338533, -24319580, 7733547, 12796905, -6335822}, - FieldElement{-8759414, -10817836, -25418864, 10783769, -30615557, -9746811, -28253339, 3647836, 3222231, -11160462}, - }, - { - FieldElement{18606113, 1693100, -25448386, -15170272, 4112353, 10045021, 23603893, -2048234, -7550776, 2484985}, - FieldElement{9255317, -3131197, -12156162, -1004256, 13098013, -9214866, 16377220, -2102812, -19802075, -3034702}, - FieldElement{-22729289, 7496160, -5742199, 11329249, 19991973, -3347502, -31718148, 9936966, -30097688, -10618797}, - }, - { - FieldElement{21878590, -5001297, 4338336, 13643897, -3036865, 13160960, 19708896, 5415497, -7360503, -4109293}, - FieldElement{27736861, 10103576, 12500508, 8502413, -3413016, -9633558, 10436918, -1550276, -23659143, -8132100}, - FieldElement{19492550, -12104365, -29681976, -852630, -3208171, 12403437, 30066266, 8367329, 13243957, 8709688}, - }, - }, - { - { - FieldElement{12015105, 2801261, 28198131, 10151021, 24818120, -4743133, -11194191, -5645734, 5150968, 7274186}, - FieldElement{2831366, -12492146, 1478975, 6122054, 23825128, -12733586, 31097299, 6083058, 31021603, -9793610}, - FieldElement{-2529932, -2229646, 445613, 10720828, -13849527, -11505937, -23507731, 16354465, 15067285, -14147707}, - }, - { - FieldElement{7840942, 14037873, -33364863, 15934016, -728213, -3642706, 21403988, 1057586, -19379462, -12403220}, - FieldElement{915865, -16469274, 15608285, -8789130, -24357026, 6060030, -17371319, 8410997, -7220461, 16527025}, - FieldElement{32922597, -556987, 20336074, -16184568, 10903705, -5384487, 16957574, 52992, 23834301, 6588044}, - }, - { - FieldElement{32752030, 11232950, 3381995, -8714866, 22652988, -10744103, 17159699, 16689107, -20314580, -1305992}, - FieldElement{-4689649, 9166776, -25710296, -10847306, 11576752, 12733943, 7924251, -2752281, 1976123, -7249027}, - FieldElement{21251222, 16309901, -2983015, -6783122, 30810597, 12967303, 156041, -3371252, 12331345, -8237197}, - }, - { - FieldElement{8651614, -4477032, -16085636, -4996994, 13002507, 2950805, 29054427, -5106970, 10008136, -4667901}, - FieldElement{31486080, 15114593, -14261250, 12951354, 14369431, -7387845, 16347321, -13662089, 8684155, -10532952}, - FieldElement{19443825, 11385320, 24468943, -9659068, -23919258, 2187569, -26263207, -6086921, 31316348, 14219878}, - }, - { - FieldElement{-28594490, 1193785, 32245219, 11392485, 31092169, 15722801, 27146014, 6992409, 29126555, 9207390}, - FieldElement{32382935, 1110093, 18477781, 11028262, -27411763, -7548111, -4980517, 10843782, -7957600, -14435730}, - FieldElement{2814918, 7836403, 27519878, -7868156, -20894015, -11553689, -21494559, 8550130, 28346258, 1994730}, - }, - { - FieldElement{-19578299, 8085545, -14000519, -3948622, 2785838, -16231307, -19516951, 7174894, 22628102, 8115180}, - FieldElement{-30405132, 955511, -11133838, -15078069, -32447087, -13278079, -25651578, 3317160, -9943017, 930272}, - FieldElement{-15303681, -6833769, 28856490, 1357446, 23421993, 1057177, 24091212, -1388970, -22765376, -10650715}, - }, - { - FieldElement{-22751231, -5303997, -12907607, -12768866, -15811511, -7797053, -14839018, -16554220, -1867018, 8398970}, - FieldElement{-31969310, 2106403, -4736360, 1362501, 12813763, 16200670, 22981545, -6291273, 18009408, -15772772}, - FieldElement{-17220923, -9545221, -27784654, 14166835, 29815394, 7444469, 29551787, -3727419, 19288549, 1325865}, - }, - { - FieldElement{15100157, -15835752, -23923978, -1005098, -26450192, 15509408, 12376730, -3479146, 33166107, -8042750}, - FieldElement{20909231, 13023121, -9209752, 16251778, -5778415, -8094914, 12412151, 10018715, 2213263, -13878373}, - FieldElement{32529814, -11074689, 30361439, -16689753, -9135940, 1513226, 22922121, 6382134, -5766928, 8371348}, - }, - }, - { - { - FieldElement{9923462, 11271500, 12616794, 3544722, -29998368, -1721626, 12891687, -8193132, -26442943, 10486144}, - FieldElement{-22597207, -7012665, 8587003, -8257861, 4084309, -12970062, 361726, 2610596, -23921530, -11455195}, - FieldElement{5408411, -1136691, -4969122, 10561668, 24145918, 14240566, 31319731, -4235541, 19985175, -3436086}, - }, - { - FieldElement{-13994457, 16616821, 14549246, 3341099, 32155958, 13648976, -17577068, 8849297, 65030, 8370684}, - FieldElement{-8320926, -12049626, 31204563, 5839400, -20627288, -1057277, -19442942, 6922164, 12743482, -9800518}, - FieldElement{-2361371, 12678785, 28815050, 4759974, -23893047, 4884717, 23783145, 11038569, 18800704, 255233}, - }, - { - FieldElement{-5269658, -1773886, 13957886, 7990715, 23132995, 728773, 13393847, 9066957, 19258688, -14753793}, - FieldElement{-2936654, -10827535, -10432089, 14516793, -3640786, 4372541, -31934921, 2209390, -1524053, 2055794}, - FieldElement{580882, 16705327, 5468415, -2683018, -30926419, -14696000, -7203346, -8994389, -30021019, 7394435}, - }, - { - FieldElement{23838809, 1822728, -15738443, 15242727, 8318092, -3733104, -21672180, -3492205, -4821741, 14799921}, - FieldElement{13345610, 9759151, 3371034, -16137791, 16353039, 8577942, 31129804, 13496856, -9056018, 7402518}, - FieldElement{2286874, -4435931, -20042458, -2008336, -13696227, 5038122, 11006906, -15760352, 8205061, 1607563}, - }, - { - FieldElement{14414086, -8002132, 3331830, -3208217, 22249151, -5594188, 18364661, -2906958, 30019587, -9029278}, - FieldElement{-27688051, 1585953, -10775053, 931069, -29120221, -11002319, -14410829, 12029093, 9944378, 8024}, - FieldElement{4368715, -3709630, 29874200, -15022983, -20230386, -11410704, -16114594, -999085, -8142388, 5640030}, - }, - { - FieldElement{10299610, 13746483, 11661824, 16234854, 7630238, 5998374, 9809887, -16694564, 15219798, -14327783}, - FieldElement{27425505, -5719081, 3055006, 10660664, 23458024, 595578, -15398605, -1173195, -18342183, 9742717}, - FieldElement{6744077, 2427284, 26042789, 2720740, -847906, 1118974, 32324614, 7406442, 12420155, 1994844}, - }, - { - FieldElement{14012521, -5024720, -18384453, -9578469, -26485342, -3936439, -13033478, -10909803, 24319929, -6446333}, - FieldElement{16412690, -4507367, 10772641, 15929391, -17068788, -4658621, 10555945, -10484049, -30102368, -4739048}, - FieldElement{22397382, -7767684, -9293161, -12792868, 17166287, -9755136, -27333065, 6199366, 21880021, -12250760}, - }, - { - FieldElement{-4283307, 5368523, -31117018, 8163389, -30323063, 3209128, 16557151, 8890729, 8840445, 4957760}, - FieldElement{-15447727, 709327, -6919446, -10870178, -29777922, 6522332, -21720181, 12130072, -14796503, 5005757}, - FieldElement{-2114751, -14308128, 23019042, 15765735, -25269683, 6002752, 10183197, -13239326, -16395286, -2176112}, - }, - }, - { - { - FieldElement{-19025756, 1632005, 13466291, -7995100, -23640451, 16573537, -32013908, -3057104, 22208662, 2000468}, - FieldElement{3065073, -1412761, -25598674, -361432, -17683065, -5703415, -8164212, 11248527, -3691214, -7414184}, - FieldElement{10379208, -6045554, 8877319, 1473647, -29291284, -12507580, 16690915, 2553332, -3132688, 16400289}, - }, - { - FieldElement{15716668, 1254266, -18472690, 7446274, -8448918, 6344164, -22097271, -7285580, 26894937, 9132066}, - FieldElement{24158887, 12938817, 11085297, -8177598, -28063478, -4457083, -30576463, 64452, -6817084, -2692882}, - FieldElement{13488534, 7794716, 22236231, 5989356, 25426474, -12578208, 2350710, -3418511, -4688006, 2364226}, - }, - { - FieldElement{16335052, 9132434, 25640582, 6678888, 1725628, 8517937, -11807024, -11697457, 15445875, -7798101}, - FieldElement{29004207, -7867081, 28661402, -640412, -12794003, -7943086, 31863255, -4135540, -278050, -15759279}, - FieldElement{-6122061, -14866665, -28614905, 14569919, -10857999, -3591829, 10343412, -6976290, -29828287, -10815811}, - }, - { - FieldElement{27081650, 3463984, 14099042, -4517604, 1616303, -6205604, 29542636, 15372179, 17293797, 960709}, - FieldElement{20263915, 11434237, -5765435, 11236810, 13505955, -10857102, -16111345, 6493122, -19384511, 7639714}, - FieldElement{-2830798, -14839232, 25403038, -8215196, -8317012, -16173699, 18006287, -16043750, 29994677, -15808121}, - }, - { - FieldElement{9769828, 5202651, -24157398, -13631392, -28051003, -11561624, -24613141, -13860782, -31184575, 709464}, - FieldElement{12286395, 13076066, -21775189, -1176622, -25003198, 4057652, -32018128, -8890874, 16102007, 13205847}, - FieldElement{13733362, 5599946, 10557076, 3195751, -5557991, 8536970, -25540170, 8525972, 10151379, 10394400}, - }, - { - FieldElement{4024660, -16137551, 22436262, 12276534, -9099015, -2686099, 19698229, 11743039, -33302334, 8934414}, - FieldElement{-15879800, -4525240, -8580747, -2934061, 14634845, -698278, -9449077, 3137094, -11536886, 11721158}, - FieldElement{17555939, -5013938, 8268606, 2331751, -22738815, 9761013, 9319229, 8835153, -9205489, -1280045}, - }, - { - FieldElement{-461409, -7830014, 20614118, 16688288, -7514766, -4807119, 22300304, 505429, 6108462, -6183415}, - FieldElement{-5070281, 12367917, -30663534, 3234473, 32617080, -8422642, 29880583, -13483331, -26898490, -7867459}, - FieldElement{-31975283, 5726539, 26934134, 10237677, -3173717, -605053, 24199304, 3795095, 7592688, -14992079}, - }, - { - FieldElement{21594432, -14964228, 17466408, -4077222, 32537084, 2739898, 6407723, 12018833, -28256052, 4298412}, - FieldElement{-20650503, -11961496, -27236275, 570498, 3767144, -1717540, 13891942, -1569194, 13717174, 10805743}, - FieldElement{-14676630, -15644296, 15287174, 11927123, 24177847, -8175568, -796431, 14860609, -26938930, -5863836}, - }, - }, - { - { - FieldElement{12962541, 5311799, -10060768, 11658280, 18855286, -7954201, 13286263, -12808704, -4381056, 9882022}, - FieldElement{18512079, 11319350, -20123124, 15090309, 18818594, 5271736, -22727904, 3666879, -23967430, -3299429}, - FieldElement{-6789020, -3146043, 16192429, 13241070, 15898607, -14206114, -10084880, -6661110, -2403099, 5276065}, - }, - { - FieldElement{30169808, -5317648, 26306206, -11750859, 27814964, 7069267, 7152851, 3684982, 1449224, 13082861}, - FieldElement{10342826, 3098505, 2119311, 193222, 25702612, 12233820, 23697382, 15056736, -21016438, -8202000}, - FieldElement{-33150110, 3261608, 22745853, 7948688, 19370557, -15177665, -26171976, 6482814, -10300080, -11060101}, - }, - { - FieldElement{32869458, -5408545, 25609743, 15678670, -10687769, -15471071, 26112421, 2521008, -22664288, 6904815}, - FieldElement{29506923, 4457497, 3377935, -9796444, -30510046, 12935080, 1561737, 3841096, -29003639, -6657642}, - FieldElement{10340844, -6630377, -18656632, -2278430, 12621151, -13339055, 30878497, -11824370, -25584551, 5181966}, - }, - { - FieldElement{25940115, -12658025, 17324188, -10307374, -8671468, 15029094, 24396252, -16450922, -2322852, -12388574}, - FieldElement{-21765684, 9916823, -1300409, 4079498, -1028346, 11909559, 1782390, 12641087, 20603771, -6561742}, - FieldElement{-18882287, -11673380, 24849422, 11501709, 13161720, -4768874, 1925523, 11914390, 4662781, 7820689}, - }, - { - FieldElement{12241050, -425982, 8132691, 9393934, 32846760, -1599620, 29749456, 12172924, 16136752, 15264020}, - FieldElement{-10349955, -14680563, -8211979, 2330220, -17662549, -14545780, 10658213, 6671822, 19012087, 3772772}, - FieldElement{3753511, -3421066, 10617074, 2028709, 14841030, -6721664, 28718732, -15762884, 20527771, 12988982}, - }, - { - FieldElement{-14822485, -5797269, -3707987, 12689773, -898983, -10914866, -24183046, -10564943, 3299665, -12424953}, - FieldElement{-16777703, -15253301, -9642417, 4978983, 3308785, 8755439, 6943197, 6461331, -25583147, 8991218}, - FieldElement{-17226263, 1816362, -1673288, -6086439, 31783888, -8175991, -32948145, 7417950, -30242287, 1507265}, - }, - { - FieldElement{29692663, 6829891, -10498800, 4334896, 20945975, -11906496, -28887608, 8209391, 14606362, -10647073}, - FieldElement{-3481570, 8707081, 32188102, 5672294, 22096700, 1711240, -33020695, 9761487, 4170404, -2085325}, - FieldElement{-11587470, 14855945, -4127778, -1531857, -26649089, 15084046, 22186522, 16002000, -14276837, -8400798}, - }, - { - FieldElement{-4811456, 13761029, -31703877, -2483919, -3312471, 7869047, -7113572, -9620092, 13240845, 10965870}, - FieldElement{-7742563, -8256762, -14768334, -13656260, -23232383, 12387166, 4498947, 14147411, 29514390, 4302863}, - FieldElement{-13413405, -12407859, 20757302, -13801832, 14785143, 8976368, -5061276, -2144373, 17846988, -13971927}, - }, - }, - { - { - FieldElement{-2244452, -754728, -4597030, -1066309, -6247172, 1455299, -21647728, -9214789, -5222701, 12650267}, - FieldElement{-9906797, -16070310, 21134160, 12198166, -27064575, 708126, 387813, 13770293, -19134326, 10958663}, - FieldElement{22470984, 12369526, 23446014, -5441109, -21520802, -9698723, -11772496, -11574455, -25083830, 4271862}, - }, - { - FieldElement{-25169565, -10053642, -19909332, 15361595, -5984358, 2159192, 75375, -4278529, -32526221, 8469673}, - FieldElement{15854970, 4148314, -8893890, 7259002, 11666551, 13824734, -30531198, 2697372, 24154791, -9460943}, - FieldElement{15446137, -15806644, 29759747, 14019369, 30811221, -9610191, -31582008, 12840104, 24913809, 9815020}, - }, - { - FieldElement{-4709286, -5614269, -31841498, -12288893, -14443537, 10799414, -9103676, 13438769, 18735128, 9466238}, - FieldElement{11933045, 9281483, 5081055, -5183824, -2628162, -4905629, -7727821, -10896103, -22728655, 16199064}, - FieldElement{14576810, 379472, -26786533, -8317236, -29426508, -10812974, -102766, 1876699, 30801119, 2164795}, - }, - { - FieldElement{15995086, 3199873, 13672555, 13712240, -19378835, -4647646, -13081610, -15496269, -13492807, 1268052}, - FieldElement{-10290614, -3659039, -3286592, 10948818, 23037027, 3794475, -3470338, -12600221, -17055369, 3565904}, - FieldElement{29210088, -9419337, -5919792, -4952785, 10834811, -13327726, -16512102, -10820713, -27162222, -14030531}, - }, - { - FieldElement{-13161890, 15508588, 16663704, -8156150, -28349942, 9019123, -29183421, -3769423, 2244111, -14001979}, - FieldElement{-5152875, -3800936, -9306475, -6071583, 16243069, 14684434, -25673088, -16180800, 13491506, 4641841}, - FieldElement{10813417, 643330, -19188515, -728916, 30292062, -16600078, 27548447, -7721242, 14476989, -12767431}, - }, - { - FieldElement{10292079, 9984945, 6481436, 8279905, -7251514, 7032743, 27282937, -1644259, -27912810, 12651324}, - FieldElement{-31185513, -813383, 22271204, 11835308, 10201545, 15351028, 17099662, 3988035, 21721536, -3148940}, - FieldElement{10202177, -6545839, -31373232, -9574638, -32150642, -8119683, -12906320, 3852694, 13216206, 14842320}, - }, - { - FieldElement{-15815640, -10601066, -6538952, -7258995, -6984659, -6581778, -31500847, 13765824, -27434397, 9900184}, - FieldElement{14465505, -13833331, -32133984, -14738873, -27443187, 12990492, 33046193, 15796406, -7051866, -8040114}, - FieldElement{30924417, -8279620, 6359016, -12816335, 16508377, 9071735, -25488601, 15413635, 9524356, -7018878}, - }, - { - FieldElement{12274201, -13175547, 32627641, -1785326, 6736625, 13267305, 5237659, -5109483, 15663516, 4035784}, - FieldElement{-2951309, 8903985, 17349946, 601635, -16432815, -4612556, -13732739, -15889334, -22258478, 4659091}, - FieldElement{-16916263, -4952973, -30393711, -15158821, 20774812, 15897498, 5736189, 15026997, -2178256, -13455585}, - }, - }, - { - { - FieldElement{-8858980, -2219056, 28571666, -10155518, -474467, -10105698, -3801496, 278095, 23440562, -290208}, - FieldElement{10226241, -5928702, 15139956, 120818, -14867693, 5218603, 32937275, 11551483, -16571960, -7442864}, - FieldElement{17932739, -12437276, -24039557, 10749060, 11316803, 7535897, 22503767, 5561594, -3646624, 3898661}, - }, - { - FieldElement{7749907, -969567, -16339731, -16464, -25018111, 15122143, -1573531, 7152530, 21831162, 1245233}, - FieldElement{26958459, -14658026, 4314586, 8346991, -5677764, 11960072, -32589295, -620035, -30402091, -16716212}, - FieldElement{-12165896, 9166947, 33491384, 13673479, 29787085, 13096535, 6280834, 14587357, -22338025, 13987525}, - }, - { - FieldElement{-24349909, 7778775, 21116000, 15572597, -4833266, -5357778, -4300898, -5124639, -7469781, -2858068}, - FieldElement{9681908, -6737123, -31951644, 13591838, -6883821, 386950, 31622781, 6439245, -14581012, 4091397}, - FieldElement{-8426427, 1470727, -28109679, -1596990, 3978627, -5123623, -19622683, 12092163, 29077877, -14741988}, - }, - { - FieldElement{5269168, -6859726, -13230211, -8020715, 25932563, 1763552, -5606110, -5505881, -20017847, 2357889}, - FieldElement{32264008, -15407652, -5387735, -1160093, -2091322, -3946900, 23104804, -12869908, 5727338, 189038}, - FieldElement{14609123, -8954470, -6000566, -16622781, -14577387, -7743898, -26745169, 10942115, -25888931, -14884697}, - }, - { - FieldElement{20513500, 5557931, -15604613, 7829531, 26413943, -2019404, -21378968, 7471781, 13913677, -5137875}, - FieldElement{-25574376, 11967826, 29233242, 12948236, -6754465, 4713227, -8940970, 14059180, 12878652, 8511905}, - FieldElement{-25656801, 3393631, -2955415, -7075526, -2250709, 9366908, -30223418, 6812974, 5568676, -3127656}, - }, - { - FieldElement{11630004, 12144454, 2116339, 13606037, 27378885, 15676917, -17408753, -13504373, -14395196, 8070818}, - FieldElement{27117696, -10007378, -31282771, -5570088, 1127282, 12772488, -29845906, 10483306, -11552749, -1028714}, - FieldElement{10637467, -5688064, 5674781, 1072708, -26343588, -6982302, -1683975, 9177853, -27493162, 15431203}, - }, - { - FieldElement{20525145, 10892566, -12742472, 12779443, -29493034, 16150075, -28240519, 14943142, -15056790, -7935931}, - FieldElement{-30024462, 5626926, -551567, -9981087, 753598, 11981191, 25244767, -3239766, -3356550, 9594024}, - FieldElement{-23752644, 2636870, -5163910, -10103818, 585134, 7877383, 11345683, -6492290, 13352335, -10977084}, - }, - { - FieldElement{-1931799, -5407458, 3304649, -12884869, 17015806, -4877091, -29783850, -7752482, -13215537, -319204}, - FieldElement{20239939, 6607058, 6203985, 3483793, -18386976, -779229, -20723742, 15077870, -22750759, 14523817}, - FieldElement{27406042, -6041657, 27423596, -4497394, 4996214, 10002360, -28842031, -4545494, -30172742, -4805667}, - }, - }, - { - { - FieldElement{11374242, 12660715, 17861383, -12540833, 10935568, 1099227, -13886076, -9091740, -27727044, 11358504}, - FieldElement{-12730809, 10311867, 1510375, 10778093, -2119455, -9145702, 32676003, 11149336, -26123651, 4985768}, - FieldElement{-19096303, 341147, -6197485, -239033, 15756973, -8796662, -983043, 13794114, -19414307, -15621255}, - }, - { - FieldElement{6490081, 11940286, 25495923, -7726360, 8668373, -8751316, 3367603, 6970005, -1691065, -9004790}, - FieldElement{1656497, 13457317, 15370807, 6364910, 13605745, 8362338, -19174622, -5475723, -16796596, -5031438}, - FieldElement{-22273315, -13524424, -64685, -4334223, -18605636, -10921968, -20571065, -7007978, -99853, -10237333}, - }, - { - FieldElement{17747465, 10039260, 19368299, -4050591, -20630635, -16041286, 31992683, -15857976, -29260363, -5511971}, - FieldElement{31932027, -4986141, -19612382, 16366580, 22023614, 88450, 11371999, -3744247, 4882242, -10626905}, - FieldElement{29796507, 37186, 19818052, 10115756, -11829032, 3352736, 18551198, 3272828, -5190932, -4162409}, - }, - { - FieldElement{12501286, 4044383, -8612957, -13392385, -32430052, 5136599, -19230378, -3529697, 330070, -3659409}, - FieldElement{6384877, 2899513, 17807477, 7663917, -2358888, 12363165, 25366522, -8573892, -271295, 12071499}, - FieldElement{-8365515, -4042521, 25133448, -4517355, -6211027, 2265927, -32769618, 1936675, -5159697, 3829363}, - }, - { - FieldElement{28425966, -5835433, -577090, -4697198, -14217555, 6870930, 7921550, -6567787, 26333140, 14267664}, - FieldElement{-11067219, 11871231, 27385719, -10559544, -4585914, -11189312, 10004786, -8709488, -21761224, 8930324}, - FieldElement{-21197785, -16396035, 25654216, -1725397, 12282012, 11008919, 1541940, 4757911, -26491501, -16408940}, - }, - { - FieldElement{13537262, -7759490, -20604840, 10961927, -5922820, -13218065, -13156584, 6217254, -15943699, 13814990}, - FieldElement{-17422573, 15157790, 18705543, 29619, 24409717, -260476, 27361681, 9257833, -1956526, -1776914}, - FieldElement{-25045300, -10191966, 15366585, 15166509, -13105086, 8423556, -29171540, 12361135, -18685978, 4578290}, - }, - { - FieldElement{24579768, 3711570, 1342322, -11180126, -27005135, 14124956, -22544529, 14074919, 21964432, 8235257}, - FieldElement{-6528613, -2411497, 9442966, -5925588, 12025640, -1487420, -2981514, -1669206, 13006806, 2355433}, - FieldElement{-16304899, -13605259, -6632427, -5142349, 16974359, -10911083, 27202044, 1719366, 1141648, -12796236}, - }, - { - FieldElement{-12863944, -13219986, -8318266, -11018091, -6810145, -4843894, 13475066, -3133972, 32674895, 13715045}, - FieldElement{11423335, -5468059, 32344216, 8962751, 24989809, 9241752, -13265253, 16086212, -28740881, -15642093}, - FieldElement{-1409668, 12530728, -6368726, 10847387, 19531186, -14132160, -11709148, 7791794, -27245943, 4383347}, - }, - }, - { - { - FieldElement{-28970898, 5271447, -1266009, -9736989, -12455236, 16732599, -4862407, -4906449, 27193557, 6245191}, - FieldElement{-15193956, 5362278, -1783893, 2695834, 4960227, 12840725, 23061898, 3260492, 22510453, 8577507}, - FieldElement{-12632451, 11257346, -32692994, 13548177, -721004, 10879011, 31168030, 13952092, -29571492, -3635906}, - }, - { - FieldElement{3877321, -9572739, 32416692, 5405324, -11004407, -13656635, 3759769, 11935320, 5611860, 8164018}, - FieldElement{-16275802, 14667797, 15906460, 12155291, -22111149, -9039718, 32003002, -8832289, 5773085, -8422109}, - FieldElement{-23788118, -8254300, 1950875, 8937633, 18686727, 16459170, -905725, 12376320, 31632953, 190926}, - }, - { - FieldElement{-24593607, -16138885, -8423991, 13378746, 14162407, 6901328, -8288749, 4508564, -25341555, -3627528}, - FieldElement{8884438, -5884009, 6023974, 10104341, -6881569, -4941533, 18722941, -14786005, -1672488, 827625}, - FieldElement{-32720583, -16289296, -32503547, 7101210, 13354605, 2659080, -1800575, -14108036, -24878478, 1541286}, - }, - { - FieldElement{2901347, -1117687, 3880376, -10059388, -17620940, -3612781, -21802117, -3567481, 20456845, -1885033}, - FieldElement{27019610, 12299467, -13658288, -1603234, -12861660, -4861471, -19540150, -5016058, 29439641, 15138866}, - FieldElement{21536104, -6626420, -32447818, -10690208, -22408077, 5175814, -5420040, -16361163, 7779328, 109896}, - }, - { - FieldElement{30279744, 14648750, -8044871, 6425558, 13639621, -743509, 28698390, 12180118, 23177719, -554075}, - FieldElement{26572847, 3405927, -31701700, 12890905, -19265668, 5335866, -6493768, 2378492, 4439158, -13279347}, - FieldElement{-22716706, 3489070, -9225266, -332753, 18875722, -1140095, 14819434, -12731527, -17717757, -5461437}, - }, - { - FieldElement{-5056483, 16566551, 15953661, 3767752, -10436499, 15627060, -820954, 2177225, 8550082, -15114165}, - FieldElement{-18473302, 16596775, -381660, 15663611, 22860960, 15585581, -27844109, -3582739, -23260460, -8428588}, - FieldElement{-32480551, 15707275, -8205912, -5652081, 29464558, 2713815, -22725137, 15860482, -21902570, 1494193}, - }, - { - FieldElement{-19562091, -14087393, -25583872, -9299552, 13127842, 759709, 21923482, 16529112, 8742704, 12967017}, - FieldElement{-28464899, 1553205, 32536856, -10473729, -24691605, -406174, -8914625, -2933896, -29903758, 15553883}, - FieldElement{21877909, 3230008, 9881174, 10539357, -4797115, 2841332, 11543572, 14513274, 19375923, -12647961}, - }, - { - FieldElement{8832269, -14495485, 13253511, 5137575, 5037871, 4078777, 24880818, -6222716, 2862653, 9455043}, - FieldElement{29306751, 5123106, 20245049, -14149889, 9592566, 8447059, -2077124, -2990080, 15511449, 4789663}, - FieldElement{-20679756, 7004547, 8824831, -9434977, -4045704, -3750736, -5754762, 108893, 23513200, 16652362}, - }, - }, - { - { - FieldElement{-33256173, 4144782, -4476029, -6579123, 10770039, -7155542, -6650416, -12936300, -18319198, 10212860}, - FieldElement{2756081, 8598110, 7383731, -6859892, 22312759, -1105012, 21179801, 2600940, -9988298, -12506466}, - FieldElement{-24645692, 13317462, -30449259, -15653928, 21365574, -10869657, 11344424, 864440, -2499677, -16710063}, - }, - { - FieldElement{-26432803, 6148329, -17184412, -14474154, 18782929, -275997, -22561534, 211300, 2719757, 4940997}, - FieldElement{-1323882, 3911313, -6948744, 14759765, -30027150, 7851207, 21690126, 8518463, 26699843, 5276295}, - FieldElement{-13149873, -6429067, 9396249, 365013, 24703301, -10488939, 1321586, 149635, -15452774, 7159369}, - }, - { - FieldElement{9987780, -3404759, 17507962, 9505530, 9731535, -2165514, 22356009, 8312176, 22477218, -8403385}, - FieldElement{18155857, -16504990, 19744716, 9006923, 15154154, -10538976, 24256460, -4864995, -22548173, 9334109}, - FieldElement{2986088, -4911893, 10776628, -3473844, 10620590, -7083203, -21413845, 14253545, -22587149, 536906}, - }, - { - FieldElement{4377756, 8115836, 24567078, 15495314, 11625074, 13064599, 7390551, 10589625, 10838060, -15420424}, - FieldElement{-19342404, 867880, 9277171, -3218459, -14431572, -1986443, 19295826, -15796950, 6378260, 699185}, - FieldElement{7895026, 4057113, -7081772, -13077756, -17886831, -323126, -716039, 15693155, -5045064, -13373962}, - }, - { - FieldElement{-7737563, -5869402, -14566319, -7406919, 11385654, 13201616, 31730678, -10962840, -3918636, -9669325}, - FieldElement{10188286, -15770834, -7336361, 13427543, 22223443, 14896287, 30743455, 7116568, -21786507, 5427593}, - FieldElement{696102, 13206899, 27047647, -10632082, 15285305, -9853179, 10798490, -4578720, 19236243, 12477404}, - }, - { - FieldElement{-11229439, 11243796, -17054270, -8040865, -788228, -8167967, -3897669, 11180504, -23169516, 7733644}, - FieldElement{17800790, -14036179, -27000429, -11766671, 23887827, 3149671, 23466177, -10538171, 10322027, 15313801}, - FieldElement{26246234, 11968874, 32263343, -5468728, 6830755, -13323031, -15794704, -101982, -24449242, 10890804}, - }, - { - FieldElement{-31365647, 10271363, -12660625, -6267268, 16690207, -13062544, -14982212, 16484931, 25180797, -5334884}, - FieldElement{-586574, 10376444, -32586414, -11286356, 19801893, 10997610, 2276632, 9482883, 316878, 13820577}, - FieldElement{-9882808, -4510367, -2115506, 16457136, -11100081, 11674996, 30756178, -7515054, 30696930, -3712849}, - }, - { - FieldElement{32988917, -9603412, 12499366, 7910787, -10617257, -11931514, -7342816, -9985397, -32349517, 7392473}, - FieldElement{-8855661, 15927861, 9866406, -3649411, -2396914, -16655781, -30409476, -9134995, 25112947, -2926644}, - FieldElement{-2504044, -436966, 25621774, -5678772, 15085042, -5479877, -24884878, -13526194, 5537438, -13914319}, - }, - }, - { - { - FieldElement{-11225584, 2320285, -9584280, 10149187, -33444663, 5808648, -14876251, -1729667, 31234590, 6090599}, - FieldElement{-9633316, 116426, 26083934, 2897444, -6364437, -2688086, 609721, 15878753, -6970405, -9034768}, - FieldElement{-27757857, 247744, -15194774, -9002551, 23288161, -10011936, -23869595, 6503646, 20650474, 1804084}, - }, - { - FieldElement{-27589786, 15456424, 8972517, 8469608, 15640622, 4439847, 3121995, -10329713, 27842616, -202328}, - FieldElement{-15306973, 2839644, 22530074, 10026331, 4602058, 5048462, 28248656, 5031932, -11375082, 12714369}, - FieldElement{20807691, -7270825, 29286141, 11421711, -27876523, -13868230, -21227475, 1035546, -19733229, 12796920}, - }, - { - FieldElement{12076899, -14301286, -8785001, -11848922, -25012791, 16400684, -17591495, -12899438, 3480665, -15182815}, - FieldElement{-32361549, 5457597, 28548107, 7833186, 7303070, -11953545, -24363064, -15921875, -33374054, 2771025}, - FieldElement{-21389266, 421932, 26597266, 6860826, 22486084, -6737172, -17137485, -4210226, -24552282, 15673397}, - }, - { - FieldElement{-20184622, 2338216, 19788685, -9620956, -4001265, -8740893, -20271184, 4733254, 3727144, -12934448}, - FieldElement{6120119, 814863, -11794402, -622716, 6812205, -15747771, 2019594, 7975683, 31123697, -10958981}, - FieldElement{30069250, -11435332, 30434654, 2958439, 18399564, -976289, 12296869, 9204260, -16432438, 9648165}, - }, - { - FieldElement{32705432, -1550977, 30705658, 7451065, -11805606, 9631813, 3305266, 5248604, -26008332, -11377501}, - FieldElement{17219865, 2375039, -31570947, -5575615, -19459679, 9219903, 294711, 15298639, 2662509, -16297073}, - FieldElement{-1172927, -7558695, -4366770, -4287744, -21346413, -8434326, 32087529, -1222777, 32247248, -14389861}, - }, - { - FieldElement{14312628, 1221556, 17395390, -8700143, -4945741, -8684635, -28197744, -9637817, -16027623, -13378845}, - FieldElement{-1428825, -9678990, -9235681, 6549687, -7383069, -468664, 23046502, 9803137, 17597934, 2346211}, - FieldElement{18510800, 15337574, 26171504, 981392, -22241552, 7827556, -23491134, -11323352, 3059833, -11782870}, - }, - { - FieldElement{10141598, 6082907, 17829293, -1947643, 9830092, 13613136, -25556636, -5544586, -33502212, 3592096}, - FieldElement{33114168, -15889352, -26525686, -13343397, 33076705, 8716171, 1151462, 1521897, -982665, -6837803}, - FieldElement{-32939165, -4255815, 23947181, -324178, -33072974, -12305637, -16637686, 3891704, 26353178, 693168}, - }, - { - FieldElement{30374239, 1595580, -16884039, 13186931, 4600344, 406904, 9585294, -400668, 31375464, 14369965}, - FieldElement{-14370654, -7772529, 1510301, 6434173, -18784789, -6262728, 32732230, -13108839, 17901441, 16011505}, - FieldElement{18171223, -11934626, -12500402, 15197122, -11038147, -15230035, -19172240, -16046376, 8764035, 12309598}, - }, - }, - { - { - FieldElement{5975908, -5243188, -19459362, -9681747, -11541277, 14015782, -23665757, 1228319, 17544096, -10593782}, - FieldElement{5811932, -1715293, 3442887, -2269310, -18367348, -8359541, -18044043, -15410127, -5565381, 12348900}, - FieldElement{-31399660, 11407555, 25755363, 6891399, -3256938, 14872274, -24849353, 8141295, -10632534, -585479}, - }, - { - FieldElement{-12675304, 694026, -5076145, 13300344, 14015258, -14451394, -9698672, -11329050, 30944593, 1130208}, - FieldElement{8247766, -6710942, -26562381, -7709309, -14401939, -14648910, 4652152, 2488540, 23550156, -271232}, - FieldElement{17294316, -3788438, 7026748, 15626851, 22990044, 113481, 2267737, -5908146, -408818, -137719}, - }, - { - FieldElement{16091085, -16253926, 18599252, 7340678, 2137637, -1221657, -3364161, 14550936, 3260525, -7166271}, - FieldElement{-4910104, -13332887, 18550887, 10864893, -16459325, -7291596, -23028869, -13204905, -12748722, 2701326}, - FieldElement{-8574695, 16099415, 4629974, -16340524, -20786213, -6005432, -10018363, 9276971, 11329923, 1862132}, - }, - { - FieldElement{14763076, -15903608, -30918270, 3689867, 3511892, 10313526, -21951088, 12219231, -9037963, -940300}, - FieldElement{8894987, -3446094, 6150753, 3013931, 301220, 15693451, -31981216, -2909717, -15438168, 11595570}, - FieldElement{15214962, 3537601, -26238722, -14058872, 4418657, -15230761, 13947276, 10730794, -13489462, -4363670}, - }, - { - FieldElement{-2538306, 7682793, 32759013, 263109, -29984731, -7955452, -22332124, -10188635, 977108, 699994}, - FieldElement{-12466472, 4195084, -9211532, 550904, -15565337, 12917920, 19118110, -439841, -30534533, -14337913}, - FieldElement{31788461, -14507657, 4799989, 7372237, 8808585, -14747943, 9408237, -10051775, 12493932, -5409317}, - }, - { - FieldElement{-25680606, 5260744, -19235809, -6284470, -3695942, 16566087, 27218280, 2607121, 29375955, 6024730}, - FieldElement{842132, -2794693, -4763381, -8722815, 26332018, -12405641, 11831880, 6985184, -9940361, 2854096}, - FieldElement{-4847262, -7969331, 2516242, -5847713, 9695691, -7221186, 16512645, 960770, 12121869, 16648078}, - }, - { - FieldElement{-15218652, 14667096, -13336229, 2013717, 30598287, -464137, -31504922, -7882064, 20237806, 2838411}, - FieldElement{-19288047, 4453152, 15298546, -16178388, 22115043, -15972604, 12544294, -13470457, 1068881, -12499905}, - FieldElement{-9558883, -16518835, 33238498, 13506958, 30505848, -1114596, -8486907, -2630053, 12521378, 4845654}, - }, - { - FieldElement{-28198521, 10744108, -2958380, 10199664, 7759311, -13088600, 3409348, -873400, -6482306, -12885870}, - FieldElement{-23561822, 6230156, -20382013, 10655314, -24040585, -11621172, 10477734, -1240216, -3113227, 13974498}, - FieldElement{12966261, 15550616, -32038948, -1615346, 21025980, -629444, 5642325, 7188737, 18895762, 12629579}, - }, - }, - { - { - FieldElement{14741879, -14946887, 22177208, -11721237, 1279741, 8058600, 11758140, 789443, 32195181, 3895677}, - FieldElement{10758205, 15755439, -4509950, 9243698, -4879422, 6879879, -2204575, -3566119, -8982069, 4429647}, - FieldElement{-2453894, 15725973, -20436342, -10410672, -5803908, -11040220, -7135870, -11642895, 18047436, -15281743}, - }, - { - FieldElement{-25173001, -11307165, 29759956, 11776784, -22262383, -15820455, 10993114, -12850837, -17620701, -9408468}, - FieldElement{21987233, 700364, -24505048, 14972008, -7774265, -5718395, 32155026, 2581431, -29958985, 8773375}, - FieldElement{-25568350, 454463, -13211935, 16126715, 25240068, 8594567, 20656846, 12017935, -7874389, -13920155}, - }, - { - FieldElement{6028182, 6263078, -31011806, -11301710, -818919, 2461772, -31841174, -5468042, -1721788, -2776725}, - FieldElement{-12278994, 16624277, 987579, -5922598, 32908203, 1248608, 7719845, -4166698, 28408820, 6816612}, - FieldElement{-10358094, -8237829, 19549651, -12169222, 22082623, 16147817, 20613181, 13982702, -10339570, 5067943}, - }, - { - FieldElement{-30505967, -3821767, 12074681, 13582412, -19877972, 2443951, -19719286, 12746132, 5331210, -10105944}, - FieldElement{30528811, 3601899, -1957090, 4619785, -27361822, -15436388, 24180793, -12570394, 27679908, -1648928}, - FieldElement{9402404, -13957065, 32834043, 10838634, -26580150, -13237195, 26653274, -8685565, 22611444, -12715406}, - }, - { - FieldElement{22190590, 1118029, 22736441, 15130463, -30460692, -5991321, 19189625, -4648942, 4854859, 6622139}, - FieldElement{-8310738, -2953450, -8262579, -3388049, -10401731, -271929, 13424426, -3567227, 26404409, 13001963}, - FieldElement{-31241838, -15415700, -2994250, 8939346, 11562230, -12840670, -26064365, -11621720, -15405155, 11020693}, - }, - { - FieldElement{1866042, -7949489, -7898649, -10301010, 12483315, 13477547, 3175636, -12424163, 28761762, 1406734}, - FieldElement{-448555, -1777666, 13018551, 3194501, -9580420, -11161737, 24760585, -4347088, 25577411, -13378680}, - FieldElement{-24290378, 4759345, -690653, -1852816, 2066747, 10693769, -29595790, 9884936, -9368926, 4745410}, - }, - { - FieldElement{-9141284, 6049714, -19531061, -4341411, -31260798, 9944276, -15462008, -11311852, 10931924, -11931931}, - FieldElement{-16561513, 14112680, -8012645, 4817318, -8040464, -11414606, -22853429, 10856641, -20470770, 13434654}, - FieldElement{22759489, -10073434, -16766264, -1871422, 13637442, -10168091, 1765144, -12654326, 28445307, -5364710}, - }, - { - FieldElement{29875063, 12493613, 2795536, -3786330, 1710620, 15181182, -10195717, -8788675, 9074234, 1167180}, - FieldElement{-26205683, 11014233, -9842651, -2635485, -26908120, 7532294, -18716888, -9535498, 3843903, 9367684}, - FieldElement{-10969595, -6403711, 9591134, 9582310, 11349256, 108879, 16235123, 8601684, -139197, 4242895}, - }, - }, - { - { - FieldElement{22092954, -13191123, -2042793, -11968512, 32186753, -11517388, -6574341, 2470660, -27417366, 16625501}, - FieldElement{-11057722, 3042016, 13770083, -9257922, 584236, -544855, -7770857, 2602725, -27351616, 14247413}, - FieldElement{6314175, -10264892, -32772502, 15957557, -10157730, 168750, -8618807, 14290061, 27108877, -1180880}, - }, - { - FieldElement{-8586597, -7170966, 13241782, 10960156, -32991015, -13794596, 33547976, -11058889, -27148451, 981874}, - FieldElement{22833440, 9293594, -32649448, -13618667, -9136966, 14756819, -22928859, -13970780, -10479804, -16197962}, - FieldElement{-7768587, 3326786, -28111797, 10783824, 19178761, 14905060, 22680049, 13906969, -15933690, 3797899}, - }, - { - FieldElement{21721356, -4212746, -12206123, 9310182, -3882239, -13653110, 23740224, -2709232, 20491983, -8042152}, - FieldElement{9209270, -15135055, -13256557, -6167798, -731016, 15289673, 25947805, 15286587, 30997318, -6703063}, - FieldElement{7392032, 16618386, 23946583, -8039892, -13265164, -1533858, -14197445, -2321576, 17649998, -250080}, - }, - { - FieldElement{-9301088, -14193827, 30609526, -3049543, -25175069, -1283752, -15241566, -9525724, -2233253, 7662146}, - FieldElement{-17558673, 1763594, -33114336, 15908610, -30040870, -12174295, 7335080, -8472199, -3174674, 3440183}, - FieldElement{-19889700, -5977008, -24111293, -9688870, 10799743, -16571957, 40450, -4431835, 4862400, 1133}, - }, - { - FieldElement{-32856209, -7873957, -5422389, 14860950, -16319031, 7956142, 7258061, 311861, -30594991, -7379421}, - FieldElement{-3773428, -1565936, 28985340, 7499440, 24445838, 9325937, 29727763, 16527196, 18278453, 15405622}, - FieldElement{-4381906, 8508652, -19898366, -3674424, -5984453, 15149970, -13313598, 843523, -21875062, 13626197}, - }, - { - FieldElement{2281448, -13487055, -10915418, -2609910, 1879358, 16164207, -10783882, 3953792, 13340839, 15928663}, - FieldElement{31727126, -7179855, -18437503, -8283652, 2875793, -16390330, -25269894, -7014826, -23452306, 5964753}, - FieldElement{4100420, -5959452, -17179337, 6017714, -18705837, 12227141, -26684835, 11344144, 2538215, -7570755}, - }, - { - FieldElement{-9433605, 6123113, 11159803, -2156608, 30016280, 14966241, -20474983, 1485421, -629256, -15958862}, - FieldElement{-26804558, 4260919, 11851389, 9658551, -32017107, 16367492, -20205425, -13191288, 11659922, -11115118}, - FieldElement{26180396, 10015009, -30844224, -8581293, 5418197, 9480663, 2231568, -10170080, 33100372, -1306171}, - }, - { - FieldElement{15121113, -5201871, -10389905, 15427821, -27509937, -15992507, 21670947, 4486675, -5931810, -14466380}, - FieldElement{16166486, -9483733, -11104130, 6023908, -31926798, -1364923, 2340060, -16254968, -10735770, -10039824}, - FieldElement{28042865, -3557089, -12126526, 12259706, -3717498, -6945899, 6766453, -8689599, 18036436, 5803270}, - }, - }, - { - { - FieldElement{-817581, 6763912, 11803561, 1585585, 10958447, -2671165, 23855391, 4598332, -6159431, -14117438}, - FieldElement{-31031306, -14256194, 17332029, -2383520, 31312682, -5967183, 696309, 50292, -20095739, 11763584}, - FieldElement{-594563, -2514283, -32234153, 12643980, 12650761, 14811489, 665117, -12613632, -19773211, -10713562}, - }, - { - FieldElement{30464590, -11262872, -4127476, -12734478, 19835327, -7105613, -24396175, 2075773, -17020157, 992471}, - FieldElement{18357185, -6994433, 7766382, 16342475, -29324918, 411174, 14578841, 8080033, -11574335, -10601610}, - FieldElement{19598397, 10334610, 12555054, 2555664, 18821899, -10339780, 21873263, 16014234, 26224780, 16452269}, - }, - { - FieldElement{-30223925, 5145196, 5944548, 16385966, 3976735, 2009897, -11377804, -7618186, -20533829, 3698650}, - FieldElement{14187449, 3448569, -10636236, -10810935, -22663880, -3433596, 7268410, -10890444, 27394301, 12015369}, - FieldElement{19695761, 16087646, 28032085, 12999827, 6817792, 11427614, 20244189, -1312777, -13259127, -3402461}, - }, - { - FieldElement{30860103, 12735208, -1888245, -4699734, -16974906, 2256940, -8166013, 12298312, -8550524, -10393462}, - FieldElement{-5719826, -11245325, -1910649, 15569035, 26642876, -7587760, -5789354, -15118654, -4976164, 12651793}, - FieldElement{-2848395, 9953421, 11531313, -5282879, 26895123, -12697089, -13118820, -16517902, 9768698, -2533218}, - }, - { - FieldElement{-24719459, 1894651, -287698, -4704085, 15348719, -8156530, 32767513, 12765450, 4940095, 10678226}, - FieldElement{18860224, 15980149, -18987240, -1562570, -26233012, -11071856, -7843882, 13944024, -24372348, 16582019}, - FieldElement{-15504260, 4970268, -29893044, 4175593, -20993212, -2199756, -11704054, 15444560, -11003761, 7989037}, - }, - { - FieldElement{31490452, 5568061, -2412803, 2182383, -32336847, 4531686, -32078269, 6200206, -19686113, -14800171}, - FieldElement{-17308668, -15879940, -31522777, -2831, -32887382, 16375549, 8680158, -16371713, 28550068, -6857132}, - FieldElement{-28126887, -5688091, 16837845, -1820458, -6850681, 12700016, -30039981, 4364038, 1155602, 5988841}, - }, - { - FieldElement{21890435, -13272907, -12624011, 12154349, -7831873, 15300496, 23148983, -4470481, 24618407, 8283181}, - FieldElement{-33136107, -10512751, 9975416, 6841041, -31559793, 16356536, 3070187, -7025928, 1466169, 10740210}, - FieldElement{-1509399, -15488185, -13503385, -10655916, 32799044, 909394, -13938903, -5779719, -32164649, -15327040}, - }, - { - FieldElement{3960823, -14267803, -28026090, -15918051, -19404858, 13146868, 15567327, 951507, -3260321, -573935}, - FieldElement{24740841, 5052253, -30094131, 8961361, 25877428, 6165135, -24368180, 14397372, -7380369, -6144105}, - FieldElement{-28888365, 3510803, -28103278, -1158478, -11238128, -10631454, -15441463, -14453128, -1625486, -6494814}, - }, - }, - { - { - FieldElement{793299, -9230478, 8836302, -6235707, -27360908, -2369593, 33152843, -4885251, -9906200, -621852}, - FieldElement{5666233, 525582, 20782575, -8038419, -24538499, 14657740, 16099374, 1468826, -6171428, -15186581}, - FieldElement{-4859255, -3779343, -2917758, -6748019, 7778750, 11688288, -30404353, -9871238, -1558923, -9863646}, - }, - { - FieldElement{10896332, -7719704, 824275, 472601, -19460308, 3009587, 25248958, 14783338, -30581476, -15757844}, - FieldElement{10566929, 12612572, -31944212, 11118703, -12633376, 12362879, 21752402, 8822496, 24003793, 14264025}, - FieldElement{27713862, -7355973, -11008240, 9227530, 27050101, 2504721, 23886875, -13117525, 13958495, -5732453}, - }, - { - FieldElement{-23481610, 4867226, -27247128, 3900521, 29838369, -8212291, -31889399, -10041781, 7340521, -15410068}, - FieldElement{4646514, -8011124, -22766023, -11532654, 23184553, 8566613, 31366726, -1381061, -15066784, -10375192}, - FieldElement{-17270517, 12723032, -16993061, 14878794, 21619651, -6197576, 27584817, 3093888, -8843694, 3849921}, - }, - { - FieldElement{-9064912, 2103172, 25561640, -15125738, -5239824, 9582958, 32477045, -9017955, 5002294, -15550259}, - FieldElement{-12057553, -11177906, 21115585, -13365155, 8808712, -12030708, 16489530, 13378448, -25845716, 12741426}, - FieldElement{-5946367, 10645103, -30911586, 15390284, -3286982, -7118677, 24306472, 15852464, 28834118, -7646072}, - }, - { - FieldElement{-17335748, -9107057, -24531279, 9434953, -8472084, -583362, -13090771, 455841, 20461858, 5491305}, - FieldElement{13669248, -16095482, -12481974, -10203039, -14569770, -11893198, -24995986, 11293807, -28588204, -9421832}, - FieldElement{28497928, 6272777, -33022994, 14470570, 8906179, -1225630, 18504674, -14165166, 29867745, -8795943}, - }, - { - FieldElement{-16207023, 13517196, -27799630, -13697798, 24009064, -6373891, -6367600, -13175392, 22853429, -4012011}, - FieldElement{24191378, 16712145, -13931797, 15217831, 14542237, 1646131, 18603514, -11037887, 12876623, -2112447}, - FieldElement{17902668, 4518229, -411702, -2829247, 26878217, 5258055, -12860753, 608397, 16031844, 3723494}, - }, - { - FieldElement{-28632773, 12763728, -20446446, 7577504, 33001348, -13017745, 17558842, -7872890, 23896954, -4314245}, - FieldElement{-20005381, -12011952, 31520464, 605201, 2543521, 5991821, -2945064, 7229064, -9919646, -8826859}, - FieldElement{28816045, 298879, -28165016, -15920938, 19000928, -1665890, -12680833, -2949325, -18051778, -2082915}, - }, - { - FieldElement{16000882, -344896, 3493092, -11447198, -29504595, -13159789, 12577740, 16041268, -19715240, 7847707}, - FieldElement{10151868, 10572098, 27312476, 7922682, 14825339, 4723128, -32855931, -6519018, -10020567, 3852848}, - FieldElement{-11430470, 15697596, -21121557, -4420647, 5386314, 15063598, 16514493, -15932110, 29330899, -15076224}, - }, - }, - { - { - FieldElement{-25499735, -4378794, -15222908, -6901211, 16615731, 2051784, 3303702, 15490, -27548796, 12314391}, - FieldElement{15683520, -6003043, 18109120, -9980648, 15337968, -5997823, -16717435, 15921866, 16103996, -3731215}, - FieldElement{-23169824, -10781249, 13588192, -1628807, -3798557, -1074929, -19273607, 5402699, -29815713, -9841101}, - }, - { - FieldElement{23190676, 2384583, -32714340, 3462154, -29903655, -1529132, -11266856, 8911517, -25205859, 2739713}, - FieldElement{21374101, -3554250, -33524649, 9874411, 15377179, 11831242, -33529904, 6134907, 4931255, 11987849}, - FieldElement{-7732, -2978858, -16223486, 7277597, 105524, -322051, -31480539, 13861388, -30076310, 10117930}, - }, - { - FieldElement{-29501170, -10744872, -26163768, 13051539, -25625564, 5089643, -6325503, 6704079, 12890019, 15728940}, - FieldElement{-21972360, -11771379, -951059, -4418840, 14704840, 2695116, 903376, -10428139, 12885167, 8311031}, - FieldElement{-17516482, 5352194, 10384213, -13811658, 7506451, 13453191, 26423267, 4384730, 1888765, -5435404}, - }, - { - FieldElement{-25817338, -3107312, -13494599, -3182506, 30896459, -13921729, -32251644, -12707869, -19464434, -3340243}, - FieldElement{-23607977, -2665774, -526091, 4651136, 5765089, 4618330, 6092245, 14845197, 17151279, -9854116}, - FieldElement{-24830458, -12733720, -15165978, 10367250, -29530908, -265356, 22825805, -7087279, -16866484, 16176525}, - }, - { - FieldElement{-23583256, 6564961, 20063689, 3798228, -4740178, 7359225, 2006182, -10363426, -28746253, -10197509}, - FieldElement{-10626600, -4486402, -13320562, -5125317, 3432136, -6393229, 23632037, -1940610, 32808310, 1099883}, - FieldElement{15030977, 5768825, -27451236, -2887299, -6427378, -15361371, -15277896, -6809350, 2051441, -15225865}, - }, - { - FieldElement{-3362323, -7239372, 7517890, 9824992, 23555850, 295369, 5148398, -14154188, -22686354, 16633660}, - FieldElement{4577086, -16752288, 13249841, -15304328, 19958763, -14537274, 18559670, -10759549, 8402478, -9864273}, - FieldElement{-28406330, -1051581, -26790155, -907698, -17212414, -11030789, 9453451, -14980072, 17983010, 9967138}, - }, - { - FieldElement{-25762494, 6524722, 26585488, 9969270, 24709298, 1220360, -1677990, 7806337, 17507396, 3651560}, - FieldElement{-10420457, -4118111, 14584639, 15971087, -15768321, 8861010, 26556809, -5574557, -18553322, -11357135}, - FieldElement{2839101, 14284142, 4029895, 3472686, 14402957, 12689363, -26642121, 8459447, -5605463, -7621941}, - }, - { - FieldElement{-4839289, -3535444, 9744961, 2871048, 25113978, 3187018, -25110813, -849066, 17258084, -7977739}, - FieldElement{18164541, -10595176, -17154882, -1542417, 19237078, -9745295, 23357533, -15217008, 26908270, 12150756}, - FieldElement{-30264870, -7647865, 5112249, -7036672, -1499807, -6974257, 43168, -5537701, -32302074, 16215819}, - }, - }, - { - { - FieldElement{-6898905, 9824394, -12304779, -4401089, -31397141, -6276835, 32574489, 12532905, -7503072, -8675347}, - FieldElement{-27343522, -16515468, -27151524, -10722951, 946346, 16291093, 254968, 7168080, 21676107, -1943028}, - FieldElement{21260961, -8424752, -16831886, -11920822, -23677961, 3968121, -3651949, -6215466, -3556191, -7913075}, - }, - { - FieldElement{16544754, 13250366, -16804428, 15546242, -4583003, 12757258, -2462308, -8680336, -18907032, -9662799}, - FieldElement{-2415239, -15577728, 18312303, 4964443, -15272530, -12653564, 26820651, 16690659, 25459437, -4564609}, - FieldElement{-25144690, 11425020, 28423002, -11020557, -6144921, -15826224, 9142795, -2391602, -6432418, -1644817}, - }, - { - FieldElement{-23104652, 6253476, 16964147, -3768872, -25113972, -12296437, -27457225, -16344658, 6335692, 7249989}, - FieldElement{-30333227, 13979675, 7503222, -12368314, -11956721, -4621693, -30272269, 2682242, 25993170, -12478523}, - FieldElement{4364628, 5930691, 32304656, -10044554, -8054781, 15091131, 22857016, -10598955, 31820368, 15075278}, - }, - { - FieldElement{31879134, -8918693, 17258761, 90626, -8041836, -4917709, 24162788, -9650886, -17970238, 12833045}, - FieldElement{19073683, 14851414, -24403169, -11860168, 7625278, 11091125, -19619190, 2074449, -9413939, 14905377}, - FieldElement{24483667, -11935567, -2518866, -11547418, -1553130, 15355506, -25282080, 9253129, 27628530, -7555480}, - }, - { - FieldElement{17597607, 8340603, 19355617, 552187, 26198470, -3176583, 4593324, -9157582, -14110875, 15297016}, - FieldElement{510886, 14337390, -31785257, 16638632, 6328095, 2713355, -20217417, -11864220, 8683221, 2921426}, - FieldElement{18606791, 11874196, 27155355, -5281482, -24031742, 6265446, -25178240, -1278924, 4674690, 13890525}, - }, - { - FieldElement{13609624, 13069022, -27372361, -13055908, 24360586, 9592974, 14977157, 9835105, 4389687, 288396}, - FieldElement{9922506, -519394, 13613107, 5883594, -18758345, -434263, -12304062, 8317628, 23388070, 16052080}, - FieldElement{12720016, 11937594, -31970060, -5028689, 26900120, 8561328, -20155687, -11632979, -14754271, -10812892}, - }, - { - FieldElement{15961858, 14150409, 26716931, -665832, -22794328, 13603569, 11829573, 7467844, -28822128, 929275}, - FieldElement{11038231, -11582396, -27310482, -7316562, -10498527, -16307831, -23479533, -9371869, -21393143, 2465074}, - FieldElement{20017163, -4323226, 27915242, 1529148, 12396362, 15675764, 13817261, -9658066, 2463391, -4622140}, - }, - { - FieldElement{-16358878, -12663911, -12065183, 4996454, -1256422, 1073572, 9583558, 12851107, 4003896, 12673717}, - FieldElement{-1731589, -15155870, -3262930, 16143082, 19294135, 13385325, 14741514, -9103726, 7903886, 2348101}, - FieldElement{24536016, -16515207, 12715592, -3862155, 1511293, 10047386, -3842346, -7129159, -28377538, 10048127}, - }, - }, - { - { - FieldElement{-12622226, -6204820, 30718825, 2591312, -10617028, 12192840, 18873298, -7297090, -32297756, 15221632}, - FieldElement{-26478122, -11103864, 11546244, -1852483, 9180880, 7656409, -21343950, 2095755, 29769758, 6593415}, - FieldElement{-31994208, -2907461, 4176912, 3264766, 12538965, -868111, 26312345, -6118678, 30958054, 8292160}, - }, - { - FieldElement{31429822, -13959116, 29173532, 15632448, 12174511, -2760094, 32808831, 3977186, 26143136, -3148876}, - FieldElement{22648901, 1402143, -22799984, 13746059, 7936347, 365344, -8668633, -1674433, -3758243, -2304625}, - FieldElement{-15491917, 8012313, -2514730, -12702462, -23965846, -10254029, -1612713, -1535569, -16664475, 8194478}, - }, - { - FieldElement{27338066, -7507420, -7414224, 10140405, -19026427, -6589889, 27277191, 8855376, 28572286, 3005164}, - FieldElement{26287124, 4821776, 25476601, -4145903, -3764513, -15788984, -18008582, 1182479, -26094821, -13079595}, - FieldElement{-7171154, 3178080, 23970071, 6201893, -17195577, -4489192, -21876275, -13982627, 32208683, -1198248}, - }, - { - FieldElement{-16657702, 2817643, -10286362, 14811298, 6024667, 13349505, -27315504, -10497842, -27672585, -11539858}, - FieldElement{15941029, -9405932, -21367050, 8062055, 31876073, -238629, -15278393, -1444429, 15397331, -4130193}, - FieldElement{8934485, -13485467, -23286397, -13423241, -32446090, 14047986, 31170398, -1441021, -27505566, 15087184}, - }, - { - FieldElement{-18357243, -2156491, 24524913, -16677868, 15520427, -6360776, -15502406, 11461896, 16788528, -5868942}, - FieldElement{-1947386, 16013773, 21750665, 3714552, -17401782, -16055433, -3770287, -10323320, 31322514, -11615635}, - FieldElement{21426655, -5650218, -13648287, -5347537, -28812189, -4920970, -18275391, -14621414, 13040862, -12112948}, - }, - { - FieldElement{11293895, 12478086, -27136401, 15083750, -29307421, 14748872, 14555558, -13417103, 1613711, 4896935}, - FieldElement{-25894883, 15323294, -8489791, -8057900, 25967126, -13425460, 2825960, -4897045, -23971776, -11267415}, - FieldElement{-15924766, -5229880, -17443532, 6410664, 3622847, 10243618, 20615400, 12405433, -23753030, -8436416}, - }, - { - FieldElement{-7091295, 12556208, -20191352, 9025187, -17072479, 4333801, 4378436, 2432030, 23097949, -566018}, - FieldElement{4565804, -16025654, 20084412, -7842817, 1724999, 189254, 24767264, 10103221, -18512313, 2424778}, - FieldElement{366633, -11976806, 8173090, -6890119, 30788634, 5745705, -7168678, 1344109, -3642553, 12412659}, - }, - { - FieldElement{-24001791, 7690286, 14929416, -168257, -32210835, -13412986, 24162697, -15326504, -3141501, 11179385}, - FieldElement{18289522, -14724954, 8056945, 16430056, -21729724, 7842514, -6001441, -1486897, -18684645, -11443503}, - FieldElement{476239, 6601091, -6152790, -9723375, 17503545, -4863900, 27672959, 13403813, 11052904, 5219329}, - }, - }, - { - { - FieldElement{20678546, -8375738, -32671898, 8849123, -5009758, 14574752, 31186971, -3973730, 9014762, -8579056}, - FieldElement{-13644050, -10350239, -15962508, 5075808, -1514661, -11534600, -33102500, 9160280, 8473550, -3256838}, - FieldElement{24900749, 14435722, 17209120, -15292541, -22592275, 9878983, -7689309, -16335821, -24568481, 11788948}, - }, - { - FieldElement{-3118155, -11395194, -13802089, 14797441, 9652448, -6845904, -20037437, 10410733, -24568470, -1458691}, - FieldElement{-15659161, 16736706, -22467150, 10215878, -9097177, 7563911, 11871841, -12505194, -18513325, 8464118}, - FieldElement{-23400612, 8348507, -14585951, -861714, -3950205, -6373419, 14325289, 8628612, 33313881, -8370517}, - }, - { - FieldElement{-20186973, -4967935, 22367356, 5271547, -1097117, -4788838, -24805667, -10236854, -8940735, -5818269}, - FieldElement{-6948785, -1795212, -32625683, -16021179, 32635414, -7374245, 15989197, -12838188, 28358192, -4253904}, - FieldElement{-23561781, -2799059, -32351682, -1661963, -9147719, 10429267, -16637684, 4072016, -5351664, 5596589}, - }, - { - FieldElement{-28236598, -3390048, 12312896, 6213178, 3117142, 16078565, 29266239, 2557221, 1768301, 15373193}, - FieldElement{-7243358, -3246960, -4593467, -7553353, -127927, -912245, -1090902, -4504991, -24660491, 3442910}, - FieldElement{-30210571, 5124043, 14181784, 8197961, 18964734, -11939093, 22597931, 7176455, -18585478, 13365930}, - }, - { - FieldElement{-7877390, -1499958, 8324673, 4690079, 6261860, 890446, 24538107, -8570186, -9689599, -3031667}, - FieldElement{25008904, -10771599, -4305031, -9638010, 16265036, 15721635, 683793, -11823784, 15723479, -15163481}, - FieldElement{-9660625, 12374379, -27006999, -7026148, -7724114, -12314514, 11879682, 5400171, 519526, -1235876}, - }, - { - FieldElement{22258397, -16332233, -7869817, 14613016, -22520255, -2950923, -20353881, 7315967, 16648397, 7605640}, - FieldElement{-8081308, -8464597, -8223311, 9719710, 19259459, -15348212, 23994942, -5281555, -9468848, 4763278}, - FieldElement{-21699244, 9220969, -15730624, 1084137, -25476107, -2852390, 31088447, -7764523, -11356529, 728112}, - }, - { - FieldElement{26047220, -11751471, -6900323, -16521798, 24092068, 9158119, -4273545, -12555558, -29365436, -5498272}, - FieldElement{17510331, -322857, 5854289, 8403524, 17133918, -3112612, -28111007, 12327945, 10750447, 10014012}, - FieldElement{-10312768, 3936952, 9156313, -8897683, 16498692, -994647, -27481051, -666732, 3424691, 7540221}, - }, - { - FieldElement{30322361, -6964110, 11361005, -4143317, 7433304, 4989748, -7071422, -16317219, -9244265, 15258046}, - FieldElement{13054562, -2779497, 19155474, 469045, -12482797, 4566042, 5631406, 2711395, 1062915, -5136345}, - FieldElement{-19240248, -11254599, -29509029, -7499965, -5835763, 13005411, -6066489, 12194497, 32960380, 1459310}, - }, - }, - { - { - FieldElement{19852034, 7027924, 23669353, 10020366, 8586503, -6657907, 394197, -6101885, 18638003, -11174937}, - FieldElement{31395534, 15098109, 26581030, 8030562, -16527914, -5007134, 9012486, -7584354, -6643087, -5442636}, - FieldElement{-9192165, -2347377, -1997099, 4529534, 25766844, 607986, -13222, 9677543, -32294889, -6456008}, - }, - { - FieldElement{-2444496, -149937, 29348902, 8186665, 1873760, 12489863, -30934579, -7839692, -7852844, -8138429}, - FieldElement{-15236356, -15433509, 7766470, 746860, 26346930, -10221762, -27333451, 10754588, -9431476, 5203576}, - FieldElement{31834314, 14135496, -770007, 5159118, 20917671, -16768096, -7467973, -7337524, 31809243, 7347066}, - }, - { - FieldElement{-9606723, -11874240, 20414459, 13033986, 13716524, -11691881, 19797970, -12211255, 15192876, -2087490}, - FieldElement{-12663563, -2181719, 1168162, -3804809, 26747877, -14138091, 10609330, 12694420, 33473243, -13382104}, - FieldElement{33184999, 11180355, 15832085, -11385430, -1633671, 225884, 15089336, -11023903, -6135662, 14480053}, - }, - { - FieldElement{31308717, -5619998, 31030840, -1897099, 15674547, -6582883, 5496208, 13685227, 27595050, 8737275}, - FieldElement{-20318852, -15150239, 10933843, -16178022, 8335352, -7546022, -31008351, -12610604, 26498114, 66511}, - FieldElement{22644454, -8761729, -16671776, 4884562, -3105614, -13559366, 30540766, -4286747, -13327787, -7515095}, - }, - { - FieldElement{-28017847, 9834845, 18617207, -2681312, -3401956, -13307506, 8205540, 13585437, -17127465, 15115439}, - FieldElement{23711543, -672915, 31206561, -8362711, 6164647, -9709987, -33535882, -1426096, 8236921, 16492939}, - FieldElement{-23910559, -13515526, -26299483, -4503841, 25005590, -7687270, 19574902, 10071562, 6708380, -6222424}, - }, - { - FieldElement{2101391, -4930054, 19702731, 2367575, -15427167, 1047675, 5301017, 9328700, 29955601, -11678310}, - FieldElement{3096359, 9271816, -21620864, -15521844, -14847996, -7592937, -25892142, -12635595, -9917575, 6216608}, - FieldElement{-32615849, 338663, -25195611, 2510422, -29213566, -13820213, 24822830, -6146567, -26767480, 7525079}, - }, - { - FieldElement{-23066649, -13985623, 16133487, -7896178, -3389565, 778788, -910336, -2782495, -19386633, 11994101}, - FieldElement{21691500, -13624626, -641331, -14367021, 3285881, -3483596, -25064666, 9718258, -7477437, 13381418}, - FieldElement{18445390, -4202236, 14979846, 11622458, -1727110, -3582980, 23111648, -6375247, 28535282, 15779576}, - }, - { - FieldElement{30098053, 3089662, -9234387, 16662135, -21306940, 11308411, -14068454, 12021730, 9955285, -16303356}, - FieldElement{9734894, -14576830, -7473633, -9138735, 2060392, 11313496, -18426029, 9924399, 20194861, 13380996}, - FieldElement{-26378102, -7965207, -22167821, 15789297, -18055342, -6168792, -1984914, 15707771, 26342023, 10146099}, - }, - }, - { - { - FieldElement{-26016874, -219943, 21339191, -41388, 19745256, -2878700, -29637280, 2227040, 21612326, -545728}, - FieldElement{-13077387, 1184228, 23562814, -5970442, -20351244, -6348714, 25764461, 12243797, -20856566, 11649658}, - FieldElement{-10031494, 11262626, 27384172, 2271902, 26947504, -15997771, 39944, 6114064, 33514190, 2333242}, - }, - { - FieldElement{-21433588, -12421821, 8119782, 7219913, -21830522, -9016134, -6679750, -12670638, 24350578, -13450001}, - FieldElement{-4116307, -11271533, -23886186, 4843615, -30088339, 690623, -31536088, -10406836, 8317860, 12352766}, - FieldElement{18200138, -14475911, -33087759, -2696619, -23702521, -9102511, -23552096, -2287550, 20712163, 6719373}, - }, - { - FieldElement{26656208, 6075253, -7858556, 1886072, -28344043, 4262326, 11117530, -3763210, 26224235, -3297458}, - FieldElement{-17168938, -14854097, -3395676, -16369877, -19954045, 14050420, 21728352, 9493610, 18620611, -16428628}, - FieldElement{-13323321, 13325349, 11432106, 5964811, 18609221, 6062965, -5269471, -9725556, -30701573, -16479657}, - }, - { - FieldElement{-23860538, -11233159, 26961357, 1640861, -32413112, -16737940, 12248509, -5240639, 13735342, 1934062}, - FieldElement{25089769, 6742589, 17081145, -13406266, 21909293, -16067981, -15136294, -3765346, -21277997, 5473616}, - FieldElement{31883677, -7961101, 1083432, -11572403, 22828471, 13290673, -7125085, 12469656, 29111212, -5451014}, - }, - { - FieldElement{24244947, -15050407, -26262976, 2791540, -14997599, 16666678, 24367466, 6388839, -10295587, 452383}, - FieldElement{-25640782, -3417841, 5217916, 16224624, 19987036, -4082269, -24236251, -5915248, 15766062, 8407814}, - FieldElement{-20406999, 13990231, 15495425, 16395525, 5377168, 15166495, -8917023, -4388953, -8067909, 2276718}, - }, - { - FieldElement{30157918, 12924066, -17712050, 9245753, 19895028, 3368142, -23827587, 5096219, 22740376, -7303417}, - FieldElement{2041139, -14256350, 7783687, 13876377, -25946985, -13352459, 24051124, 13742383, -15637599, 13295222}, - FieldElement{33338237, -8505733, 12532113, 7977527, 9106186, -1715251, -17720195, -4612972, -4451357, -14669444}, - }, - { - FieldElement{-20045281, 5454097, -14346548, 6447146, 28862071, 1883651, -2469266, -4141880, 7770569, 9620597}, - FieldElement{23208068, 7979712, 33071466, 8149229, 1758231, -10834995, 30945528, -1694323, -33502340, -14767970}, - FieldElement{1439958, -16270480, -1079989, -793782, 4625402, 10647766, -5043801, 1220118, 30494170, -11440799}, - }, - { - FieldElement{-5037580, -13028295, -2970559, -3061767, 15640974, -6701666, -26739026, 926050, -1684339, -13333647}, - FieldElement{13908495, -3549272, 30919928, -6273825, -21521863, 7989039, 9021034, 9078865, 3353509, 4033511}, - FieldElement{-29663431, -15113610, 32259991, -344482, 24295849, -12912123, 23161163, 8839127, 27485041, 7356032}, - }, - }, - { - { - FieldElement{9661027, 705443, 11980065, -5370154, -1628543, 14661173, -6346142, 2625015, 28431036, -16771834}, - FieldElement{-23839233, -8311415, -25945511, 7480958, -17681669, -8354183, -22545972, 14150565, 15970762, 4099461}, - FieldElement{29262576, 16756590, 26350592, -8793563, 8529671, -11208050, 13617293, -9937143, 11465739, 8317062}, - }, - { - FieldElement{-25493081, -6962928, 32500200, -9419051, -23038724, -2302222, 14898637, 3848455, 20969334, -5157516}, - FieldElement{-20384450, -14347713, -18336405, 13884722, -33039454, 2842114, -21610826, -3649888, 11177095, 14989547}, - FieldElement{-24496721, -11716016, 16959896, 2278463, 12066309, 10137771, 13515641, 2581286, -28487508, 9930240}, - }, - { - FieldElement{-17751622, -2097826, 16544300, -13009300, -15914807, -14949081, 18345767, -13403753, 16291481, -5314038}, - FieldElement{-33229194, 2553288, 32678213, 9875984, 8534129, 6889387, -9676774, 6957617, 4368891, 9788741}, - FieldElement{16660756, 7281060, -10830758, 12911820, 20108584, -8101676, -21722536, -8613148, 16250552, -11111103}, - }, - { - FieldElement{-19765507, 2390526, -16551031, 14161980, 1905286, 6414907, 4689584, 10604807, -30190403, 4782747}, - FieldElement{-1354539, 14736941, -7367442, -13292886, 7710542, -14155590, -9981571, 4383045, 22546403, 437323}, - FieldElement{31665577, -12180464, -16186830, 1491339, -18368625, 3294682, 27343084, 2786261, -30633590, -14097016}, - }, - { - FieldElement{-14467279, -683715, -33374107, 7448552, 19294360, 14334329, -19690631, 2355319, -19284671, -6114373}, - FieldElement{15121312, -15796162, 6377020, -6031361, -10798111, -12957845, 18952177, 15496498, -29380133, 11754228}, - FieldElement{-2637277, -13483075, 8488727, -14303896, 12728761, -1622493, 7141596, 11724556, 22761615, -10134141}, - }, - { - FieldElement{16918416, 11729663, -18083579, 3022987, -31015732, -13339659, -28741185, -12227393, 32851222, 11717399}, - FieldElement{11166634, 7338049, -6722523, 4531520, -29468672, -7302055, 31474879, 3483633, -1193175, -4030831}, - FieldElement{-185635, 9921305, 31456609, -13536438, -12013818, 13348923, 33142652, 6546660, -19985279, -3948376}, - }, - { - FieldElement{-32460596, 11266712, -11197107, -7899103, 31703694, 3855903, -8537131, -12833048, -30772034, -15486313}, - FieldElement{-18006477, 12709068, 3991746, -6479188, -21491523, -10550425, -31135347, -16049879, 10928917, 3011958}, - FieldElement{-6957757, -15594337, 31696059, 334240, 29576716, 14796075, -30831056, -12805180, 18008031, 10258577}, - }, - { - FieldElement{-22448644, 15655569, 7018479, -4410003, -30314266, -1201591, -1853465, 1367120, 25127874, 6671743}, - FieldElement{29701166, -14373934, -10878120, 9279288, -17568, 13127210, 21382910, 11042292, 25838796, 4642684}, - FieldElement{-20430234, 14955537, -24126347, 8124619, -5369288, -5990470, 30468147, -13900640, 18423289, 4177476}, - }, - }, -} diff --git a/vendor/golang.org/x/crypto/ed25519/internal/edwards25519/edwards25519.go b/vendor/golang.org/x/crypto/ed25519/internal/edwards25519/edwards25519.go deleted file mode 100644 index 5f8b994..0000000 --- a/vendor/golang.org/x/crypto/ed25519/internal/edwards25519/edwards25519.go +++ /dev/null @@ -1,1771 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package edwards25519 - -// This code is a port of the public domain, “ref10” implementation of ed25519 -// from SUPERCOP. - -// FieldElement represents an element of the field GF(2^255 - 19). An element -// t, entries t[0]...t[9], represents the integer t[0]+2^26 t[1]+2^51 t[2]+2^77 -// t[3]+2^102 t[4]+...+2^230 t[9]. Bounds on each t[i] vary depending on -// context. -type FieldElement [10]int32 - -var zero FieldElement - -func FeZero(fe *FieldElement) { - copy(fe[:], zero[:]) -} - -func FeOne(fe *FieldElement) { - FeZero(fe) - fe[0] = 1 -} - -func FeAdd(dst, a, b *FieldElement) { - dst[0] = a[0] + b[0] - dst[1] = a[1] + b[1] - dst[2] = a[2] + b[2] - dst[3] = a[3] + b[3] - dst[4] = a[4] + b[4] - dst[5] = a[5] + b[5] - dst[6] = a[6] + b[6] - dst[7] = a[7] + b[7] - dst[8] = a[8] + b[8] - dst[9] = a[9] + b[9] -} - -func FeSub(dst, a, b *FieldElement) { - dst[0] = a[0] - b[0] - dst[1] = a[1] - b[1] - dst[2] = a[2] - b[2] - dst[3] = a[3] - b[3] - dst[4] = a[4] - b[4] - dst[5] = a[5] - b[5] - dst[6] = a[6] - b[6] - dst[7] = a[7] - b[7] - dst[8] = a[8] - b[8] - dst[9] = a[9] - b[9] -} - -func FeCopy(dst, src *FieldElement) { - copy(dst[:], src[:]) -} - -// Replace (f,g) with (g,g) if b == 1; -// replace (f,g) with (f,g) if b == 0. -// -// Preconditions: b in {0,1}. -func FeCMove(f, g *FieldElement, b int32) { - b = -b - f[0] ^= b & (f[0] ^ g[0]) - f[1] ^= b & (f[1] ^ g[1]) - f[2] ^= b & (f[2] ^ g[2]) - f[3] ^= b & (f[3] ^ g[3]) - f[4] ^= b & (f[4] ^ g[4]) - f[5] ^= b & (f[5] ^ g[5]) - f[6] ^= b & (f[6] ^ g[6]) - f[7] ^= b & (f[7] ^ g[7]) - f[8] ^= b & (f[8] ^ g[8]) - f[9] ^= b & (f[9] ^ g[9]) -} - -func load3(in []byte) int64 { - var r int64 - r = int64(in[0]) - r |= int64(in[1]) << 8 - r |= int64(in[2]) << 16 - return r -} - -func load4(in []byte) int64 { - var r int64 - r = int64(in[0]) - r |= int64(in[1]) << 8 - r |= int64(in[2]) << 16 - r |= int64(in[3]) << 24 - return r -} - -func FeFromBytes(dst *FieldElement, src *[32]byte) { - h0 := load4(src[:]) - h1 := load3(src[4:]) << 6 - h2 := load3(src[7:]) << 5 - h3 := load3(src[10:]) << 3 - h4 := load3(src[13:]) << 2 - h5 := load4(src[16:]) - h6 := load3(src[20:]) << 7 - h7 := load3(src[23:]) << 5 - h8 := load3(src[26:]) << 4 - h9 := (load3(src[29:]) & 8388607) << 2 - - FeCombine(dst, h0, h1, h2, h3, h4, h5, h6, h7, h8, h9) -} - -// FeToBytes marshals h to s. -// Preconditions: -// |h| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. -// -// Write p=2^255-19; q=floor(h/p). -// Basic claim: q = floor(2^(-255)(h + 19 2^(-25)h9 + 2^(-1))). -// -// Proof: -// Have |h|<=p so |q|<=1 so |19^2 2^(-255) q|<1/4. -// Also have |h-2^230 h9|<2^230 so |19 2^(-255)(h-2^230 h9)|<1/4. -// -// Write y=2^(-1)-19^2 2^(-255)q-19 2^(-255)(h-2^230 h9). -// Then 0> 25 - q = (h[0] + q) >> 26 - q = (h[1] + q) >> 25 - q = (h[2] + q) >> 26 - q = (h[3] + q) >> 25 - q = (h[4] + q) >> 26 - q = (h[5] + q) >> 25 - q = (h[6] + q) >> 26 - q = (h[7] + q) >> 25 - q = (h[8] + q) >> 26 - q = (h[9] + q) >> 25 - - // Goal: Output h-(2^255-19)q, which is between 0 and 2^255-20. - h[0] += 19 * q - // Goal: Output h-2^255 q, which is between 0 and 2^255-20. - - carry[0] = h[0] >> 26 - h[1] += carry[0] - h[0] -= carry[0] << 26 - carry[1] = h[1] >> 25 - h[2] += carry[1] - h[1] -= carry[1] << 25 - carry[2] = h[2] >> 26 - h[3] += carry[2] - h[2] -= carry[2] << 26 - carry[3] = h[3] >> 25 - h[4] += carry[3] - h[3] -= carry[3] << 25 - carry[4] = h[4] >> 26 - h[5] += carry[4] - h[4] -= carry[4] << 26 - carry[5] = h[5] >> 25 - h[6] += carry[5] - h[5] -= carry[5] << 25 - carry[6] = h[6] >> 26 - h[7] += carry[6] - h[6] -= carry[6] << 26 - carry[7] = h[7] >> 25 - h[8] += carry[7] - h[7] -= carry[7] << 25 - carry[8] = h[8] >> 26 - h[9] += carry[8] - h[8] -= carry[8] << 26 - carry[9] = h[9] >> 25 - h[9] -= carry[9] << 25 - // h10 = carry9 - - // Goal: Output h[0]+...+2^255 h10-2^255 q, which is between 0 and 2^255-20. - // Have h[0]+...+2^230 h[9] between 0 and 2^255-1; - // evidently 2^255 h10-2^255 q = 0. - // Goal: Output h[0]+...+2^230 h[9]. - - s[0] = byte(h[0] >> 0) - s[1] = byte(h[0] >> 8) - s[2] = byte(h[0] >> 16) - s[3] = byte((h[0] >> 24) | (h[1] << 2)) - s[4] = byte(h[1] >> 6) - s[5] = byte(h[1] >> 14) - s[6] = byte((h[1] >> 22) | (h[2] << 3)) - s[7] = byte(h[2] >> 5) - s[8] = byte(h[2] >> 13) - s[9] = byte((h[2] >> 21) | (h[3] << 5)) - s[10] = byte(h[3] >> 3) - s[11] = byte(h[3] >> 11) - s[12] = byte((h[3] >> 19) | (h[4] << 6)) - s[13] = byte(h[4] >> 2) - s[14] = byte(h[4] >> 10) - s[15] = byte(h[4] >> 18) - s[16] = byte(h[5] >> 0) - s[17] = byte(h[5] >> 8) - s[18] = byte(h[5] >> 16) - s[19] = byte((h[5] >> 24) | (h[6] << 1)) - s[20] = byte(h[6] >> 7) - s[21] = byte(h[6] >> 15) - s[22] = byte((h[6] >> 23) | (h[7] << 3)) - s[23] = byte(h[7] >> 5) - s[24] = byte(h[7] >> 13) - s[25] = byte((h[7] >> 21) | (h[8] << 4)) - s[26] = byte(h[8] >> 4) - s[27] = byte(h[8] >> 12) - s[28] = byte((h[8] >> 20) | (h[9] << 6)) - s[29] = byte(h[9] >> 2) - s[30] = byte(h[9] >> 10) - s[31] = byte(h[9] >> 18) -} - -func FeIsNegative(f *FieldElement) byte { - var s [32]byte - FeToBytes(&s, f) - return s[0] & 1 -} - -func FeIsNonZero(f *FieldElement) int32 { - var s [32]byte - FeToBytes(&s, f) - var x uint8 - for _, b := range s { - x |= b - } - x |= x >> 4 - x |= x >> 2 - x |= x >> 1 - return int32(x & 1) -} - -// FeNeg sets h = -f -// -// Preconditions: -// |f| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. -// -// Postconditions: -// |h| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. -func FeNeg(h, f *FieldElement) { - h[0] = -f[0] - h[1] = -f[1] - h[2] = -f[2] - h[3] = -f[3] - h[4] = -f[4] - h[5] = -f[5] - h[6] = -f[6] - h[7] = -f[7] - h[8] = -f[8] - h[9] = -f[9] -} - -func FeCombine(h *FieldElement, h0, h1, h2, h3, h4, h5, h6, h7, h8, h9 int64) { - var c0, c1, c2, c3, c4, c5, c6, c7, c8, c9 int64 - - /* - |h0| <= (1.1*1.1*2^52*(1+19+19+19+19)+1.1*1.1*2^50*(38+38+38+38+38)) - i.e. |h0| <= 1.2*2^59; narrower ranges for h2, h4, h6, h8 - |h1| <= (1.1*1.1*2^51*(1+1+19+19+19+19+19+19+19+19)) - i.e. |h1| <= 1.5*2^58; narrower ranges for h3, h5, h7, h9 - */ - - c0 = (h0 + (1 << 25)) >> 26 - h1 += c0 - h0 -= c0 << 26 - c4 = (h4 + (1 << 25)) >> 26 - h5 += c4 - h4 -= c4 << 26 - /* |h0| <= 2^25 */ - /* |h4| <= 2^25 */ - /* |h1| <= 1.51*2^58 */ - /* |h5| <= 1.51*2^58 */ - - c1 = (h1 + (1 << 24)) >> 25 - h2 += c1 - h1 -= c1 << 25 - c5 = (h5 + (1 << 24)) >> 25 - h6 += c5 - h5 -= c5 << 25 - /* |h1| <= 2^24; from now on fits into int32 */ - /* |h5| <= 2^24; from now on fits into int32 */ - /* |h2| <= 1.21*2^59 */ - /* |h6| <= 1.21*2^59 */ - - c2 = (h2 + (1 << 25)) >> 26 - h3 += c2 - h2 -= c2 << 26 - c6 = (h6 + (1 << 25)) >> 26 - h7 += c6 - h6 -= c6 << 26 - /* |h2| <= 2^25; from now on fits into int32 unchanged */ - /* |h6| <= 2^25; from now on fits into int32 unchanged */ - /* |h3| <= 1.51*2^58 */ - /* |h7| <= 1.51*2^58 */ - - c3 = (h3 + (1 << 24)) >> 25 - h4 += c3 - h3 -= c3 << 25 - c7 = (h7 + (1 << 24)) >> 25 - h8 += c7 - h7 -= c7 << 25 - /* |h3| <= 2^24; from now on fits into int32 unchanged */ - /* |h7| <= 2^24; from now on fits into int32 unchanged */ - /* |h4| <= 1.52*2^33 */ - /* |h8| <= 1.52*2^33 */ - - c4 = (h4 + (1 << 25)) >> 26 - h5 += c4 - h4 -= c4 << 26 - c8 = (h8 + (1 << 25)) >> 26 - h9 += c8 - h8 -= c8 << 26 - /* |h4| <= 2^25; from now on fits into int32 unchanged */ - /* |h8| <= 2^25; from now on fits into int32 unchanged */ - /* |h5| <= 1.01*2^24 */ - /* |h9| <= 1.51*2^58 */ - - c9 = (h9 + (1 << 24)) >> 25 - h0 += c9 * 19 - h9 -= c9 << 25 - /* |h9| <= 2^24; from now on fits into int32 unchanged */ - /* |h0| <= 1.8*2^37 */ - - c0 = (h0 + (1 << 25)) >> 26 - h1 += c0 - h0 -= c0 << 26 - /* |h0| <= 2^25; from now on fits into int32 unchanged */ - /* |h1| <= 1.01*2^24 */ - - h[0] = int32(h0) - h[1] = int32(h1) - h[2] = int32(h2) - h[3] = int32(h3) - h[4] = int32(h4) - h[5] = int32(h5) - h[6] = int32(h6) - h[7] = int32(h7) - h[8] = int32(h8) - h[9] = int32(h9) -} - -// FeMul calculates h = f * g -// Can overlap h with f or g. -// -// Preconditions: -// |f| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. -// |g| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. -// -// Postconditions: -// |h| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. -// -// Notes on implementation strategy: -// -// Using schoolbook multiplication. -// Karatsuba would save a little in some cost models. -// -// Most multiplications by 2 and 19 are 32-bit precomputations; -// cheaper than 64-bit postcomputations. -// -// There is one remaining multiplication by 19 in the carry chain; -// one *19 precomputation can be merged into this, -// but the resulting data flow is considerably less clean. -// -// There are 12 carries below. -// 10 of them are 2-way parallelizable and vectorizable. -// Can get away with 11 carries, but then data flow is much deeper. -// -// With tighter constraints on inputs, can squeeze carries into int32. -func FeMul(h, f, g *FieldElement) { - f0 := int64(f[0]) - f1 := int64(f[1]) - f2 := int64(f[2]) - f3 := int64(f[3]) - f4 := int64(f[4]) - f5 := int64(f[5]) - f6 := int64(f[6]) - f7 := int64(f[7]) - f8 := int64(f[8]) - f9 := int64(f[9]) - - f1_2 := int64(2 * f[1]) - f3_2 := int64(2 * f[3]) - f5_2 := int64(2 * f[5]) - f7_2 := int64(2 * f[7]) - f9_2 := int64(2 * f[9]) - - g0 := int64(g[0]) - g1 := int64(g[1]) - g2 := int64(g[2]) - g3 := int64(g[3]) - g4 := int64(g[4]) - g5 := int64(g[5]) - g6 := int64(g[6]) - g7 := int64(g[7]) - g8 := int64(g[8]) - g9 := int64(g[9]) - - g1_19 := int64(19 * g[1]) /* 1.4*2^29 */ - g2_19 := int64(19 * g[2]) /* 1.4*2^30; still ok */ - g3_19 := int64(19 * g[3]) - g4_19 := int64(19 * g[4]) - g5_19 := int64(19 * g[5]) - g6_19 := int64(19 * g[6]) - g7_19 := int64(19 * g[7]) - g8_19 := int64(19 * g[8]) - g9_19 := int64(19 * g[9]) - - h0 := f0*g0 + f1_2*g9_19 + f2*g8_19 + f3_2*g7_19 + f4*g6_19 + f5_2*g5_19 + f6*g4_19 + f7_2*g3_19 + f8*g2_19 + f9_2*g1_19 - h1 := f0*g1 + f1*g0 + f2*g9_19 + f3*g8_19 + f4*g7_19 + f5*g6_19 + f6*g5_19 + f7*g4_19 + f8*g3_19 + f9*g2_19 - h2 := f0*g2 + f1_2*g1 + f2*g0 + f3_2*g9_19 + f4*g8_19 + f5_2*g7_19 + f6*g6_19 + f7_2*g5_19 + f8*g4_19 + f9_2*g3_19 - h3 := f0*g3 + f1*g2 + f2*g1 + f3*g0 + f4*g9_19 + f5*g8_19 + f6*g7_19 + f7*g6_19 + f8*g5_19 + f9*g4_19 - h4 := f0*g4 + f1_2*g3 + f2*g2 + f3_2*g1 + f4*g0 + f5_2*g9_19 + f6*g8_19 + f7_2*g7_19 + f8*g6_19 + f9_2*g5_19 - h5 := f0*g5 + f1*g4 + f2*g3 + f3*g2 + f4*g1 + f5*g0 + f6*g9_19 + f7*g8_19 + f8*g7_19 + f9*g6_19 - h6 := f0*g6 + f1_2*g5 + f2*g4 + f3_2*g3 + f4*g2 + f5_2*g1 + f6*g0 + f7_2*g9_19 + f8*g8_19 + f9_2*g7_19 - h7 := f0*g7 + f1*g6 + f2*g5 + f3*g4 + f4*g3 + f5*g2 + f6*g1 + f7*g0 + f8*g9_19 + f9*g8_19 - h8 := f0*g8 + f1_2*g7 + f2*g6 + f3_2*g5 + f4*g4 + f5_2*g3 + f6*g2 + f7_2*g1 + f8*g0 + f9_2*g9_19 - h9 := f0*g9 + f1*g8 + f2*g7 + f3*g6 + f4*g5 + f5*g4 + f6*g3 + f7*g2 + f8*g1 + f9*g0 - - FeCombine(h, h0, h1, h2, h3, h4, h5, h6, h7, h8, h9) -} - -func feSquare(f *FieldElement) (h0, h1, h2, h3, h4, h5, h6, h7, h8, h9 int64) { - f0 := int64(f[0]) - f1 := int64(f[1]) - f2 := int64(f[2]) - f3 := int64(f[3]) - f4 := int64(f[4]) - f5 := int64(f[5]) - f6 := int64(f[6]) - f7 := int64(f[7]) - f8 := int64(f[8]) - f9 := int64(f[9]) - f0_2 := int64(2 * f[0]) - f1_2 := int64(2 * f[1]) - f2_2 := int64(2 * f[2]) - f3_2 := int64(2 * f[3]) - f4_2 := int64(2 * f[4]) - f5_2 := int64(2 * f[5]) - f6_2 := int64(2 * f[6]) - f7_2 := int64(2 * f[7]) - f5_38 := 38 * f5 // 1.31*2^30 - f6_19 := 19 * f6 // 1.31*2^30 - f7_38 := 38 * f7 // 1.31*2^30 - f8_19 := 19 * f8 // 1.31*2^30 - f9_38 := 38 * f9 // 1.31*2^30 - - h0 = f0*f0 + f1_2*f9_38 + f2_2*f8_19 + f3_2*f7_38 + f4_2*f6_19 + f5*f5_38 - h1 = f0_2*f1 + f2*f9_38 + f3_2*f8_19 + f4*f7_38 + f5_2*f6_19 - h2 = f0_2*f2 + f1_2*f1 + f3_2*f9_38 + f4_2*f8_19 + f5_2*f7_38 + f6*f6_19 - h3 = f0_2*f3 + f1_2*f2 + f4*f9_38 + f5_2*f8_19 + f6*f7_38 - h4 = f0_2*f4 + f1_2*f3_2 + f2*f2 + f5_2*f9_38 + f6_2*f8_19 + f7*f7_38 - h5 = f0_2*f5 + f1_2*f4 + f2_2*f3 + f6*f9_38 + f7_2*f8_19 - h6 = f0_2*f6 + f1_2*f5_2 + f2_2*f4 + f3_2*f3 + f7_2*f9_38 + f8*f8_19 - h7 = f0_2*f7 + f1_2*f6 + f2_2*f5 + f3_2*f4 + f8*f9_38 - h8 = f0_2*f8 + f1_2*f7_2 + f2_2*f6 + f3_2*f5_2 + f4*f4 + f9*f9_38 - h9 = f0_2*f9 + f1_2*f8 + f2_2*f7 + f3_2*f6 + f4_2*f5 - - return -} - -// FeSquare calculates h = f*f. Can overlap h with f. -// -// Preconditions: -// |f| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. -// -// Postconditions: -// |h| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. -func FeSquare(h, f *FieldElement) { - h0, h1, h2, h3, h4, h5, h6, h7, h8, h9 := feSquare(f) - FeCombine(h, h0, h1, h2, h3, h4, h5, h6, h7, h8, h9) -} - -// FeSquare2 sets h = 2 * f * f -// -// Can overlap h with f. -// -// Preconditions: -// |f| bounded by 1.65*2^26,1.65*2^25,1.65*2^26,1.65*2^25,etc. -// -// Postconditions: -// |h| bounded by 1.01*2^25,1.01*2^24,1.01*2^25,1.01*2^24,etc. -// See fe_mul.c for discussion of implementation strategy. -func FeSquare2(h, f *FieldElement) { - h0, h1, h2, h3, h4, h5, h6, h7, h8, h9 := feSquare(f) - - h0 += h0 - h1 += h1 - h2 += h2 - h3 += h3 - h4 += h4 - h5 += h5 - h6 += h6 - h7 += h7 - h8 += h8 - h9 += h9 - - FeCombine(h, h0, h1, h2, h3, h4, h5, h6, h7, h8, h9) -} - -func FeInvert(out, z *FieldElement) { - var t0, t1, t2, t3 FieldElement - var i int - - FeSquare(&t0, z) // 2^1 - FeSquare(&t1, &t0) // 2^2 - for i = 1; i < 2; i++ { // 2^3 - FeSquare(&t1, &t1) - } - FeMul(&t1, z, &t1) // 2^3 + 2^0 - FeMul(&t0, &t0, &t1) // 2^3 + 2^1 + 2^0 - FeSquare(&t2, &t0) // 2^4 + 2^2 + 2^1 - FeMul(&t1, &t1, &t2) // 2^4 + 2^3 + 2^2 + 2^1 + 2^0 - FeSquare(&t2, &t1) // 5,4,3,2,1 - for i = 1; i < 5; i++ { // 9,8,7,6,5 - FeSquare(&t2, &t2) - } - FeMul(&t1, &t2, &t1) // 9,8,7,6,5,4,3,2,1,0 - FeSquare(&t2, &t1) // 10..1 - for i = 1; i < 10; i++ { // 19..10 - FeSquare(&t2, &t2) - } - FeMul(&t2, &t2, &t1) // 19..0 - FeSquare(&t3, &t2) // 20..1 - for i = 1; i < 20; i++ { // 39..20 - FeSquare(&t3, &t3) - } - FeMul(&t2, &t3, &t2) // 39..0 - FeSquare(&t2, &t2) // 40..1 - for i = 1; i < 10; i++ { // 49..10 - FeSquare(&t2, &t2) - } - FeMul(&t1, &t2, &t1) // 49..0 - FeSquare(&t2, &t1) // 50..1 - for i = 1; i < 50; i++ { // 99..50 - FeSquare(&t2, &t2) - } - FeMul(&t2, &t2, &t1) // 99..0 - FeSquare(&t3, &t2) // 100..1 - for i = 1; i < 100; i++ { // 199..100 - FeSquare(&t3, &t3) - } - FeMul(&t2, &t3, &t2) // 199..0 - FeSquare(&t2, &t2) // 200..1 - for i = 1; i < 50; i++ { // 249..50 - FeSquare(&t2, &t2) - } - FeMul(&t1, &t2, &t1) // 249..0 - FeSquare(&t1, &t1) // 250..1 - for i = 1; i < 5; i++ { // 254..5 - FeSquare(&t1, &t1) - } - FeMul(out, &t1, &t0) // 254..5,3,1,0 -} - -func fePow22523(out, z *FieldElement) { - var t0, t1, t2 FieldElement - var i int - - FeSquare(&t0, z) - for i = 1; i < 1; i++ { - FeSquare(&t0, &t0) - } - FeSquare(&t1, &t0) - for i = 1; i < 2; i++ { - FeSquare(&t1, &t1) - } - FeMul(&t1, z, &t1) - FeMul(&t0, &t0, &t1) - FeSquare(&t0, &t0) - for i = 1; i < 1; i++ { - FeSquare(&t0, &t0) - } - FeMul(&t0, &t1, &t0) - FeSquare(&t1, &t0) - for i = 1; i < 5; i++ { - FeSquare(&t1, &t1) - } - FeMul(&t0, &t1, &t0) - FeSquare(&t1, &t0) - for i = 1; i < 10; i++ { - FeSquare(&t1, &t1) - } - FeMul(&t1, &t1, &t0) - FeSquare(&t2, &t1) - for i = 1; i < 20; i++ { - FeSquare(&t2, &t2) - } - FeMul(&t1, &t2, &t1) - FeSquare(&t1, &t1) - for i = 1; i < 10; i++ { - FeSquare(&t1, &t1) - } - FeMul(&t0, &t1, &t0) - FeSquare(&t1, &t0) - for i = 1; i < 50; i++ { - FeSquare(&t1, &t1) - } - FeMul(&t1, &t1, &t0) - FeSquare(&t2, &t1) - for i = 1; i < 100; i++ { - FeSquare(&t2, &t2) - } - FeMul(&t1, &t2, &t1) - FeSquare(&t1, &t1) - for i = 1; i < 50; i++ { - FeSquare(&t1, &t1) - } - FeMul(&t0, &t1, &t0) - FeSquare(&t0, &t0) - for i = 1; i < 2; i++ { - FeSquare(&t0, &t0) - } - FeMul(out, &t0, z) -} - -// Group elements are members of the elliptic curve -x^2 + y^2 = 1 + d * x^2 * -// y^2 where d = -121665/121666. -// -// Several representations are used: -// ProjectiveGroupElement: (X:Y:Z) satisfying x=X/Z, y=Y/Z -// ExtendedGroupElement: (X:Y:Z:T) satisfying x=X/Z, y=Y/Z, XY=ZT -// CompletedGroupElement: ((X:Z),(Y:T)) satisfying x=X/Z, y=Y/T -// PreComputedGroupElement: (y+x,y-x,2dxy) - -type ProjectiveGroupElement struct { - X, Y, Z FieldElement -} - -type ExtendedGroupElement struct { - X, Y, Z, T FieldElement -} - -type CompletedGroupElement struct { - X, Y, Z, T FieldElement -} - -type PreComputedGroupElement struct { - yPlusX, yMinusX, xy2d FieldElement -} - -type CachedGroupElement struct { - yPlusX, yMinusX, Z, T2d FieldElement -} - -func (p *ProjectiveGroupElement) Zero() { - FeZero(&p.X) - FeOne(&p.Y) - FeOne(&p.Z) -} - -func (p *ProjectiveGroupElement) Double(r *CompletedGroupElement) { - var t0 FieldElement - - FeSquare(&r.X, &p.X) - FeSquare(&r.Z, &p.Y) - FeSquare2(&r.T, &p.Z) - FeAdd(&r.Y, &p.X, &p.Y) - FeSquare(&t0, &r.Y) - FeAdd(&r.Y, &r.Z, &r.X) - FeSub(&r.Z, &r.Z, &r.X) - FeSub(&r.X, &t0, &r.Y) - FeSub(&r.T, &r.T, &r.Z) -} - -func (p *ProjectiveGroupElement) ToBytes(s *[32]byte) { - var recip, x, y FieldElement - - FeInvert(&recip, &p.Z) - FeMul(&x, &p.X, &recip) - FeMul(&y, &p.Y, &recip) - FeToBytes(s, &y) - s[31] ^= FeIsNegative(&x) << 7 -} - -func (p *ExtendedGroupElement) Zero() { - FeZero(&p.X) - FeOne(&p.Y) - FeOne(&p.Z) - FeZero(&p.T) -} - -func (p *ExtendedGroupElement) Double(r *CompletedGroupElement) { - var q ProjectiveGroupElement - p.ToProjective(&q) - q.Double(r) -} - -func (p *ExtendedGroupElement) ToCached(r *CachedGroupElement) { - FeAdd(&r.yPlusX, &p.Y, &p.X) - FeSub(&r.yMinusX, &p.Y, &p.X) - FeCopy(&r.Z, &p.Z) - FeMul(&r.T2d, &p.T, &d2) -} - -func (p *ExtendedGroupElement) ToProjective(r *ProjectiveGroupElement) { - FeCopy(&r.X, &p.X) - FeCopy(&r.Y, &p.Y) - FeCopy(&r.Z, &p.Z) -} - -func (p *ExtendedGroupElement) ToBytes(s *[32]byte) { - var recip, x, y FieldElement - - FeInvert(&recip, &p.Z) - FeMul(&x, &p.X, &recip) - FeMul(&y, &p.Y, &recip) - FeToBytes(s, &y) - s[31] ^= FeIsNegative(&x) << 7 -} - -func (p *ExtendedGroupElement) FromBytes(s *[32]byte) bool { - var u, v, v3, vxx, check FieldElement - - FeFromBytes(&p.Y, s) - FeOne(&p.Z) - FeSquare(&u, &p.Y) - FeMul(&v, &u, &d) - FeSub(&u, &u, &p.Z) // y = y^2-1 - FeAdd(&v, &v, &p.Z) // v = dy^2+1 - - FeSquare(&v3, &v) - FeMul(&v3, &v3, &v) // v3 = v^3 - FeSquare(&p.X, &v3) - FeMul(&p.X, &p.X, &v) - FeMul(&p.X, &p.X, &u) // x = uv^7 - - fePow22523(&p.X, &p.X) // x = (uv^7)^((q-5)/8) - FeMul(&p.X, &p.X, &v3) - FeMul(&p.X, &p.X, &u) // x = uv^3(uv^7)^((q-5)/8) - - var tmpX, tmp2 [32]byte - - FeSquare(&vxx, &p.X) - FeMul(&vxx, &vxx, &v) - FeSub(&check, &vxx, &u) // vx^2-u - if FeIsNonZero(&check) == 1 { - FeAdd(&check, &vxx, &u) // vx^2+u - if FeIsNonZero(&check) == 1 { - return false - } - FeMul(&p.X, &p.X, &SqrtM1) - - FeToBytes(&tmpX, &p.X) - for i, v := range tmpX { - tmp2[31-i] = v - } - } - - if FeIsNegative(&p.X) != (s[31] >> 7) { - FeNeg(&p.X, &p.X) - } - - FeMul(&p.T, &p.X, &p.Y) - return true -} - -func (p *CompletedGroupElement) ToProjective(r *ProjectiveGroupElement) { - FeMul(&r.X, &p.X, &p.T) - FeMul(&r.Y, &p.Y, &p.Z) - FeMul(&r.Z, &p.Z, &p.T) -} - -func (p *CompletedGroupElement) ToExtended(r *ExtendedGroupElement) { - FeMul(&r.X, &p.X, &p.T) - FeMul(&r.Y, &p.Y, &p.Z) - FeMul(&r.Z, &p.Z, &p.T) - FeMul(&r.T, &p.X, &p.Y) -} - -func (p *PreComputedGroupElement) Zero() { - FeOne(&p.yPlusX) - FeOne(&p.yMinusX) - FeZero(&p.xy2d) -} - -func geAdd(r *CompletedGroupElement, p *ExtendedGroupElement, q *CachedGroupElement) { - var t0 FieldElement - - FeAdd(&r.X, &p.Y, &p.X) - FeSub(&r.Y, &p.Y, &p.X) - FeMul(&r.Z, &r.X, &q.yPlusX) - FeMul(&r.Y, &r.Y, &q.yMinusX) - FeMul(&r.T, &q.T2d, &p.T) - FeMul(&r.X, &p.Z, &q.Z) - FeAdd(&t0, &r.X, &r.X) - FeSub(&r.X, &r.Z, &r.Y) - FeAdd(&r.Y, &r.Z, &r.Y) - FeAdd(&r.Z, &t0, &r.T) - FeSub(&r.T, &t0, &r.T) -} - -func geSub(r *CompletedGroupElement, p *ExtendedGroupElement, q *CachedGroupElement) { - var t0 FieldElement - - FeAdd(&r.X, &p.Y, &p.X) - FeSub(&r.Y, &p.Y, &p.X) - FeMul(&r.Z, &r.X, &q.yMinusX) - FeMul(&r.Y, &r.Y, &q.yPlusX) - FeMul(&r.T, &q.T2d, &p.T) - FeMul(&r.X, &p.Z, &q.Z) - FeAdd(&t0, &r.X, &r.X) - FeSub(&r.X, &r.Z, &r.Y) - FeAdd(&r.Y, &r.Z, &r.Y) - FeSub(&r.Z, &t0, &r.T) - FeAdd(&r.T, &t0, &r.T) -} - -func geMixedAdd(r *CompletedGroupElement, p *ExtendedGroupElement, q *PreComputedGroupElement) { - var t0 FieldElement - - FeAdd(&r.X, &p.Y, &p.X) - FeSub(&r.Y, &p.Y, &p.X) - FeMul(&r.Z, &r.X, &q.yPlusX) - FeMul(&r.Y, &r.Y, &q.yMinusX) - FeMul(&r.T, &q.xy2d, &p.T) - FeAdd(&t0, &p.Z, &p.Z) - FeSub(&r.X, &r.Z, &r.Y) - FeAdd(&r.Y, &r.Z, &r.Y) - FeAdd(&r.Z, &t0, &r.T) - FeSub(&r.T, &t0, &r.T) -} - -func geMixedSub(r *CompletedGroupElement, p *ExtendedGroupElement, q *PreComputedGroupElement) { - var t0 FieldElement - - FeAdd(&r.X, &p.Y, &p.X) - FeSub(&r.Y, &p.Y, &p.X) - FeMul(&r.Z, &r.X, &q.yMinusX) - FeMul(&r.Y, &r.Y, &q.yPlusX) - FeMul(&r.T, &q.xy2d, &p.T) - FeAdd(&t0, &p.Z, &p.Z) - FeSub(&r.X, &r.Z, &r.Y) - FeAdd(&r.Y, &r.Z, &r.Y) - FeSub(&r.Z, &t0, &r.T) - FeAdd(&r.T, &t0, &r.T) -} - -func slide(r *[256]int8, a *[32]byte) { - for i := range r { - r[i] = int8(1 & (a[i>>3] >> uint(i&7))) - } - - for i := range r { - if r[i] != 0 { - for b := 1; b <= 6 && i+b < 256; b++ { - if r[i+b] != 0 { - if r[i]+(r[i+b]<= -15 { - r[i] -= r[i+b] << uint(b) - for k := i + b; k < 256; k++ { - if r[k] == 0 { - r[k] = 1 - break - } - r[k] = 0 - } - } else { - break - } - } - } - } - } -} - -// GeDoubleScalarMultVartime sets r = a*A + b*B -// where a = a[0]+256*a[1]+...+256^31 a[31]. -// and b = b[0]+256*b[1]+...+256^31 b[31]. -// B is the Ed25519 base point (x,4/5) with x positive. -func GeDoubleScalarMultVartime(r *ProjectiveGroupElement, a *[32]byte, A *ExtendedGroupElement, b *[32]byte) { - var aSlide, bSlide [256]int8 - var Ai [8]CachedGroupElement // A,3A,5A,7A,9A,11A,13A,15A - var t CompletedGroupElement - var u, A2 ExtendedGroupElement - var i int - - slide(&aSlide, a) - slide(&bSlide, b) - - A.ToCached(&Ai[0]) - A.Double(&t) - t.ToExtended(&A2) - - for i := 0; i < 7; i++ { - geAdd(&t, &A2, &Ai[i]) - t.ToExtended(&u) - u.ToCached(&Ai[i+1]) - } - - r.Zero() - - for i = 255; i >= 0; i-- { - if aSlide[i] != 0 || bSlide[i] != 0 { - break - } - } - - for ; i >= 0; i-- { - r.Double(&t) - - if aSlide[i] > 0 { - t.ToExtended(&u) - geAdd(&t, &u, &Ai[aSlide[i]/2]) - } else if aSlide[i] < 0 { - t.ToExtended(&u) - geSub(&t, &u, &Ai[(-aSlide[i])/2]) - } - - if bSlide[i] > 0 { - t.ToExtended(&u) - geMixedAdd(&t, &u, &bi[bSlide[i]/2]) - } else if bSlide[i] < 0 { - t.ToExtended(&u) - geMixedSub(&t, &u, &bi[(-bSlide[i])/2]) - } - - t.ToProjective(r) - } -} - -// equal returns 1 if b == c and 0 otherwise, assuming that b and c are -// non-negative. -func equal(b, c int32) int32 { - x := uint32(b ^ c) - x-- - return int32(x >> 31) -} - -// negative returns 1 if b < 0 and 0 otherwise. -func negative(b int32) int32 { - return (b >> 31) & 1 -} - -func PreComputedGroupElementCMove(t, u *PreComputedGroupElement, b int32) { - FeCMove(&t.yPlusX, &u.yPlusX, b) - FeCMove(&t.yMinusX, &u.yMinusX, b) - FeCMove(&t.xy2d, &u.xy2d, b) -} - -func selectPoint(t *PreComputedGroupElement, pos int32, b int32) { - var minusT PreComputedGroupElement - bNegative := negative(b) - bAbs := b - (((-bNegative) & b) << 1) - - t.Zero() - for i := int32(0); i < 8; i++ { - PreComputedGroupElementCMove(t, &base[pos][i], equal(bAbs, i+1)) - } - FeCopy(&minusT.yPlusX, &t.yMinusX) - FeCopy(&minusT.yMinusX, &t.yPlusX) - FeNeg(&minusT.xy2d, &t.xy2d) - PreComputedGroupElementCMove(t, &minusT, bNegative) -} - -// GeScalarMultBase computes h = a*B, where -// a = a[0]+256*a[1]+...+256^31 a[31] -// B is the Ed25519 base point (x,4/5) with x positive. -// -// Preconditions: -// a[31] <= 127 -func GeScalarMultBase(h *ExtendedGroupElement, a *[32]byte) { - var e [64]int8 - - for i, v := range a { - e[2*i] = int8(v & 15) - e[2*i+1] = int8((v >> 4) & 15) - } - - // each e[i] is between 0 and 15 and e[63] is between 0 and 7. - - carry := int8(0) - for i := 0; i < 63; i++ { - e[i] += carry - carry = (e[i] + 8) >> 4 - e[i] -= carry << 4 - } - e[63] += carry - // each e[i] is between -8 and 8. - - h.Zero() - var t PreComputedGroupElement - var r CompletedGroupElement - for i := int32(1); i < 64; i += 2 { - selectPoint(&t, i/2, int32(e[i])) - geMixedAdd(&r, h, &t) - r.ToExtended(h) - } - - var s ProjectiveGroupElement - - h.Double(&r) - r.ToProjective(&s) - s.Double(&r) - r.ToProjective(&s) - s.Double(&r) - r.ToProjective(&s) - s.Double(&r) - r.ToExtended(h) - - for i := int32(0); i < 64; i += 2 { - selectPoint(&t, i/2, int32(e[i])) - geMixedAdd(&r, h, &t) - r.ToExtended(h) - } -} - -// The scalars are GF(2^252 + 27742317777372353535851937790883648493). - -// Input: -// a[0]+256*a[1]+...+256^31*a[31] = a -// b[0]+256*b[1]+...+256^31*b[31] = b -// c[0]+256*c[1]+...+256^31*c[31] = c -// -// Output: -// s[0]+256*s[1]+...+256^31*s[31] = (ab+c) mod l -// where l = 2^252 + 27742317777372353535851937790883648493. -func ScMulAdd(s, a, b, c *[32]byte) { - a0 := 2097151 & load3(a[:]) - a1 := 2097151 & (load4(a[2:]) >> 5) - a2 := 2097151 & (load3(a[5:]) >> 2) - a3 := 2097151 & (load4(a[7:]) >> 7) - a4 := 2097151 & (load4(a[10:]) >> 4) - a5 := 2097151 & (load3(a[13:]) >> 1) - a6 := 2097151 & (load4(a[15:]) >> 6) - a7 := 2097151 & (load3(a[18:]) >> 3) - a8 := 2097151 & load3(a[21:]) - a9 := 2097151 & (load4(a[23:]) >> 5) - a10 := 2097151 & (load3(a[26:]) >> 2) - a11 := (load4(a[28:]) >> 7) - b0 := 2097151 & load3(b[:]) - b1 := 2097151 & (load4(b[2:]) >> 5) - b2 := 2097151 & (load3(b[5:]) >> 2) - b3 := 2097151 & (load4(b[7:]) >> 7) - b4 := 2097151 & (load4(b[10:]) >> 4) - b5 := 2097151 & (load3(b[13:]) >> 1) - b6 := 2097151 & (load4(b[15:]) >> 6) - b7 := 2097151 & (load3(b[18:]) >> 3) - b8 := 2097151 & load3(b[21:]) - b9 := 2097151 & (load4(b[23:]) >> 5) - b10 := 2097151 & (load3(b[26:]) >> 2) - b11 := (load4(b[28:]) >> 7) - c0 := 2097151 & load3(c[:]) - c1 := 2097151 & (load4(c[2:]) >> 5) - c2 := 2097151 & (load3(c[5:]) >> 2) - c3 := 2097151 & (load4(c[7:]) >> 7) - c4 := 2097151 & (load4(c[10:]) >> 4) - c5 := 2097151 & (load3(c[13:]) >> 1) - c6 := 2097151 & (load4(c[15:]) >> 6) - c7 := 2097151 & (load3(c[18:]) >> 3) - c8 := 2097151 & load3(c[21:]) - c9 := 2097151 & (load4(c[23:]) >> 5) - c10 := 2097151 & (load3(c[26:]) >> 2) - c11 := (load4(c[28:]) >> 7) - var carry [23]int64 - - s0 := c0 + a0*b0 - s1 := c1 + a0*b1 + a1*b0 - s2 := c2 + a0*b2 + a1*b1 + a2*b0 - s3 := c3 + a0*b3 + a1*b2 + a2*b1 + a3*b0 - s4 := c4 + a0*b4 + a1*b3 + a2*b2 + a3*b1 + a4*b0 - s5 := c5 + a0*b5 + a1*b4 + a2*b3 + a3*b2 + a4*b1 + a5*b0 - s6 := c6 + a0*b6 + a1*b5 + a2*b4 + a3*b3 + a4*b2 + a5*b1 + a6*b0 - s7 := c7 + a0*b7 + a1*b6 + a2*b5 + a3*b4 + a4*b3 + a5*b2 + a6*b1 + a7*b0 - s8 := c8 + a0*b8 + a1*b7 + a2*b6 + a3*b5 + a4*b4 + a5*b3 + a6*b2 + a7*b1 + a8*b0 - s9 := c9 + a0*b9 + a1*b8 + a2*b7 + a3*b6 + a4*b5 + a5*b4 + a6*b3 + a7*b2 + a8*b1 + a9*b0 - s10 := c10 + a0*b10 + a1*b9 + a2*b8 + a3*b7 + a4*b6 + a5*b5 + a6*b4 + a7*b3 + a8*b2 + a9*b1 + a10*b0 - s11 := c11 + a0*b11 + a1*b10 + a2*b9 + a3*b8 + a4*b7 + a5*b6 + a6*b5 + a7*b4 + a8*b3 + a9*b2 + a10*b1 + a11*b0 - s12 := a1*b11 + a2*b10 + a3*b9 + a4*b8 + a5*b7 + a6*b6 + a7*b5 + a8*b4 + a9*b3 + a10*b2 + a11*b1 - s13 := a2*b11 + a3*b10 + a4*b9 + a5*b8 + a6*b7 + a7*b6 + a8*b5 + a9*b4 + a10*b3 + a11*b2 - s14 := a3*b11 + a4*b10 + a5*b9 + a6*b8 + a7*b7 + a8*b6 + a9*b5 + a10*b4 + a11*b3 - s15 := a4*b11 + a5*b10 + a6*b9 + a7*b8 + a8*b7 + a9*b6 + a10*b5 + a11*b4 - s16 := a5*b11 + a6*b10 + a7*b9 + a8*b8 + a9*b7 + a10*b6 + a11*b5 - s17 := a6*b11 + a7*b10 + a8*b9 + a9*b8 + a10*b7 + a11*b6 - s18 := a7*b11 + a8*b10 + a9*b9 + a10*b8 + a11*b7 - s19 := a8*b11 + a9*b10 + a10*b9 + a11*b8 - s20 := a9*b11 + a10*b10 + a11*b9 - s21 := a10*b11 + a11*b10 - s22 := a11 * b11 - s23 := int64(0) - - carry[0] = (s0 + (1 << 20)) >> 21 - s1 += carry[0] - s0 -= carry[0] << 21 - carry[2] = (s2 + (1 << 20)) >> 21 - s3 += carry[2] - s2 -= carry[2] << 21 - carry[4] = (s4 + (1 << 20)) >> 21 - s5 += carry[4] - s4 -= carry[4] << 21 - carry[6] = (s6 + (1 << 20)) >> 21 - s7 += carry[6] - s6 -= carry[6] << 21 - carry[8] = (s8 + (1 << 20)) >> 21 - s9 += carry[8] - s8 -= carry[8] << 21 - carry[10] = (s10 + (1 << 20)) >> 21 - s11 += carry[10] - s10 -= carry[10] << 21 - carry[12] = (s12 + (1 << 20)) >> 21 - s13 += carry[12] - s12 -= carry[12] << 21 - carry[14] = (s14 + (1 << 20)) >> 21 - s15 += carry[14] - s14 -= carry[14] << 21 - carry[16] = (s16 + (1 << 20)) >> 21 - s17 += carry[16] - s16 -= carry[16] << 21 - carry[18] = (s18 + (1 << 20)) >> 21 - s19 += carry[18] - s18 -= carry[18] << 21 - carry[20] = (s20 + (1 << 20)) >> 21 - s21 += carry[20] - s20 -= carry[20] << 21 - carry[22] = (s22 + (1 << 20)) >> 21 - s23 += carry[22] - s22 -= carry[22] << 21 - - carry[1] = (s1 + (1 << 20)) >> 21 - s2 += carry[1] - s1 -= carry[1] << 21 - carry[3] = (s3 + (1 << 20)) >> 21 - s4 += carry[3] - s3 -= carry[3] << 21 - carry[5] = (s5 + (1 << 20)) >> 21 - s6 += carry[5] - s5 -= carry[5] << 21 - carry[7] = (s7 + (1 << 20)) >> 21 - s8 += carry[7] - s7 -= carry[7] << 21 - carry[9] = (s9 + (1 << 20)) >> 21 - s10 += carry[9] - s9 -= carry[9] << 21 - carry[11] = (s11 + (1 << 20)) >> 21 - s12 += carry[11] - s11 -= carry[11] << 21 - carry[13] = (s13 + (1 << 20)) >> 21 - s14 += carry[13] - s13 -= carry[13] << 21 - carry[15] = (s15 + (1 << 20)) >> 21 - s16 += carry[15] - s15 -= carry[15] << 21 - carry[17] = (s17 + (1 << 20)) >> 21 - s18 += carry[17] - s17 -= carry[17] << 21 - carry[19] = (s19 + (1 << 20)) >> 21 - s20 += carry[19] - s19 -= carry[19] << 21 - carry[21] = (s21 + (1 << 20)) >> 21 - s22 += carry[21] - s21 -= carry[21] << 21 - - s11 += s23 * 666643 - s12 += s23 * 470296 - s13 += s23 * 654183 - s14 -= s23 * 997805 - s15 += s23 * 136657 - s16 -= s23 * 683901 - s23 = 0 - - s10 += s22 * 666643 - s11 += s22 * 470296 - s12 += s22 * 654183 - s13 -= s22 * 997805 - s14 += s22 * 136657 - s15 -= s22 * 683901 - s22 = 0 - - s9 += s21 * 666643 - s10 += s21 * 470296 - s11 += s21 * 654183 - s12 -= s21 * 997805 - s13 += s21 * 136657 - s14 -= s21 * 683901 - s21 = 0 - - s8 += s20 * 666643 - s9 += s20 * 470296 - s10 += s20 * 654183 - s11 -= s20 * 997805 - s12 += s20 * 136657 - s13 -= s20 * 683901 - s20 = 0 - - s7 += s19 * 666643 - s8 += s19 * 470296 - s9 += s19 * 654183 - s10 -= s19 * 997805 - s11 += s19 * 136657 - s12 -= s19 * 683901 - s19 = 0 - - s6 += s18 * 666643 - s7 += s18 * 470296 - s8 += s18 * 654183 - s9 -= s18 * 997805 - s10 += s18 * 136657 - s11 -= s18 * 683901 - s18 = 0 - - carry[6] = (s6 + (1 << 20)) >> 21 - s7 += carry[6] - s6 -= carry[6] << 21 - carry[8] = (s8 + (1 << 20)) >> 21 - s9 += carry[8] - s8 -= carry[8] << 21 - carry[10] = (s10 + (1 << 20)) >> 21 - s11 += carry[10] - s10 -= carry[10] << 21 - carry[12] = (s12 + (1 << 20)) >> 21 - s13 += carry[12] - s12 -= carry[12] << 21 - carry[14] = (s14 + (1 << 20)) >> 21 - s15 += carry[14] - s14 -= carry[14] << 21 - carry[16] = (s16 + (1 << 20)) >> 21 - s17 += carry[16] - s16 -= carry[16] << 21 - - carry[7] = (s7 + (1 << 20)) >> 21 - s8 += carry[7] - s7 -= carry[7] << 21 - carry[9] = (s9 + (1 << 20)) >> 21 - s10 += carry[9] - s9 -= carry[9] << 21 - carry[11] = (s11 + (1 << 20)) >> 21 - s12 += carry[11] - s11 -= carry[11] << 21 - carry[13] = (s13 + (1 << 20)) >> 21 - s14 += carry[13] - s13 -= carry[13] << 21 - carry[15] = (s15 + (1 << 20)) >> 21 - s16 += carry[15] - s15 -= carry[15] << 21 - - s5 += s17 * 666643 - s6 += s17 * 470296 - s7 += s17 * 654183 - s8 -= s17 * 997805 - s9 += s17 * 136657 - s10 -= s17 * 683901 - s17 = 0 - - s4 += s16 * 666643 - s5 += s16 * 470296 - s6 += s16 * 654183 - s7 -= s16 * 997805 - s8 += s16 * 136657 - s9 -= s16 * 683901 - s16 = 0 - - s3 += s15 * 666643 - s4 += s15 * 470296 - s5 += s15 * 654183 - s6 -= s15 * 997805 - s7 += s15 * 136657 - s8 -= s15 * 683901 - s15 = 0 - - s2 += s14 * 666643 - s3 += s14 * 470296 - s4 += s14 * 654183 - s5 -= s14 * 997805 - s6 += s14 * 136657 - s7 -= s14 * 683901 - s14 = 0 - - s1 += s13 * 666643 - s2 += s13 * 470296 - s3 += s13 * 654183 - s4 -= s13 * 997805 - s5 += s13 * 136657 - s6 -= s13 * 683901 - s13 = 0 - - s0 += s12 * 666643 - s1 += s12 * 470296 - s2 += s12 * 654183 - s3 -= s12 * 997805 - s4 += s12 * 136657 - s5 -= s12 * 683901 - s12 = 0 - - carry[0] = (s0 + (1 << 20)) >> 21 - s1 += carry[0] - s0 -= carry[0] << 21 - carry[2] = (s2 + (1 << 20)) >> 21 - s3 += carry[2] - s2 -= carry[2] << 21 - carry[4] = (s4 + (1 << 20)) >> 21 - s5 += carry[4] - s4 -= carry[4] << 21 - carry[6] = (s6 + (1 << 20)) >> 21 - s7 += carry[6] - s6 -= carry[6] << 21 - carry[8] = (s8 + (1 << 20)) >> 21 - s9 += carry[8] - s8 -= carry[8] << 21 - carry[10] = (s10 + (1 << 20)) >> 21 - s11 += carry[10] - s10 -= carry[10] << 21 - - carry[1] = (s1 + (1 << 20)) >> 21 - s2 += carry[1] - s1 -= carry[1] << 21 - carry[3] = (s3 + (1 << 20)) >> 21 - s4 += carry[3] - s3 -= carry[3] << 21 - carry[5] = (s5 + (1 << 20)) >> 21 - s6 += carry[5] - s5 -= carry[5] << 21 - carry[7] = (s7 + (1 << 20)) >> 21 - s8 += carry[7] - s7 -= carry[7] << 21 - carry[9] = (s9 + (1 << 20)) >> 21 - s10 += carry[9] - s9 -= carry[9] << 21 - carry[11] = (s11 + (1 << 20)) >> 21 - s12 += carry[11] - s11 -= carry[11] << 21 - - s0 += s12 * 666643 - s1 += s12 * 470296 - s2 += s12 * 654183 - s3 -= s12 * 997805 - s4 += s12 * 136657 - s5 -= s12 * 683901 - s12 = 0 - - carry[0] = s0 >> 21 - s1 += carry[0] - s0 -= carry[0] << 21 - carry[1] = s1 >> 21 - s2 += carry[1] - s1 -= carry[1] << 21 - carry[2] = s2 >> 21 - s3 += carry[2] - s2 -= carry[2] << 21 - carry[3] = s3 >> 21 - s4 += carry[3] - s3 -= carry[3] << 21 - carry[4] = s4 >> 21 - s5 += carry[4] - s4 -= carry[4] << 21 - carry[5] = s5 >> 21 - s6 += carry[5] - s5 -= carry[5] << 21 - carry[6] = s6 >> 21 - s7 += carry[6] - s6 -= carry[6] << 21 - carry[7] = s7 >> 21 - s8 += carry[7] - s7 -= carry[7] << 21 - carry[8] = s8 >> 21 - s9 += carry[8] - s8 -= carry[8] << 21 - carry[9] = s9 >> 21 - s10 += carry[9] - s9 -= carry[9] << 21 - carry[10] = s10 >> 21 - s11 += carry[10] - s10 -= carry[10] << 21 - carry[11] = s11 >> 21 - s12 += carry[11] - s11 -= carry[11] << 21 - - s0 += s12 * 666643 - s1 += s12 * 470296 - s2 += s12 * 654183 - s3 -= s12 * 997805 - s4 += s12 * 136657 - s5 -= s12 * 683901 - s12 = 0 - - carry[0] = s0 >> 21 - s1 += carry[0] - s0 -= carry[0] << 21 - carry[1] = s1 >> 21 - s2 += carry[1] - s1 -= carry[1] << 21 - carry[2] = s2 >> 21 - s3 += carry[2] - s2 -= carry[2] << 21 - carry[3] = s3 >> 21 - s4 += carry[3] - s3 -= carry[3] << 21 - carry[4] = s4 >> 21 - s5 += carry[4] - s4 -= carry[4] << 21 - carry[5] = s5 >> 21 - s6 += carry[5] - s5 -= carry[5] << 21 - carry[6] = s6 >> 21 - s7 += carry[6] - s6 -= carry[6] << 21 - carry[7] = s7 >> 21 - s8 += carry[7] - s7 -= carry[7] << 21 - carry[8] = s8 >> 21 - s9 += carry[8] - s8 -= carry[8] << 21 - carry[9] = s9 >> 21 - s10 += carry[9] - s9 -= carry[9] << 21 - carry[10] = s10 >> 21 - s11 += carry[10] - s10 -= carry[10] << 21 - - s[0] = byte(s0 >> 0) - s[1] = byte(s0 >> 8) - s[2] = byte((s0 >> 16) | (s1 << 5)) - s[3] = byte(s1 >> 3) - s[4] = byte(s1 >> 11) - s[5] = byte((s1 >> 19) | (s2 << 2)) - s[6] = byte(s2 >> 6) - s[7] = byte((s2 >> 14) | (s3 << 7)) - s[8] = byte(s3 >> 1) - s[9] = byte(s3 >> 9) - s[10] = byte((s3 >> 17) | (s4 << 4)) - s[11] = byte(s4 >> 4) - s[12] = byte(s4 >> 12) - s[13] = byte((s4 >> 20) | (s5 << 1)) - s[14] = byte(s5 >> 7) - s[15] = byte((s5 >> 15) | (s6 << 6)) - s[16] = byte(s6 >> 2) - s[17] = byte(s6 >> 10) - s[18] = byte((s6 >> 18) | (s7 << 3)) - s[19] = byte(s7 >> 5) - s[20] = byte(s7 >> 13) - s[21] = byte(s8 >> 0) - s[22] = byte(s8 >> 8) - s[23] = byte((s8 >> 16) | (s9 << 5)) - s[24] = byte(s9 >> 3) - s[25] = byte(s9 >> 11) - s[26] = byte((s9 >> 19) | (s10 << 2)) - s[27] = byte(s10 >> 6) - s[28] = byte((s10 >> 14) | (s11 << 7)) - s[29] = byte(s11 >> 1) - s[30] = byte(s11 >> 9) - s[31] = byte(s11 >> 17) -} - -// Input: -// s[0]+256*s[1]+...+256^63*s[63] = s -// -// Output: -// s[0]+256*s[1]+...+256^31*s[31] = s mod l -// where l = 2^252 + 27742317777372353535851937790883648493. -func ScReduce(out *[32]byte, s *[64]byte) { - s0 := 2097151 & load3(s[:]) - s1 := 2097151 & (load4(s[2:]) >> 5) - s2 := 2097151 & (load3(s[5:]) >> 2) - s3 := 2097151 & (load4(s[7:]) >> 7) - s4 := 2097151 & (load4(s[10:]) >> 4) - s5 := 2097151 & (load3(s[13:]) >> 1) - s6 := 2097151 & (load4(s[15:]) >> 6) - s7 := 2097151 & (load3(s[18:]) >> 3) - s8 := 2097151 & load3(s[21:]) - s9 := 2097151 & (load4(s[23:]) >> 5) - s10 := 2097151 & (load3(s[26:]) >> 2) - s11 := 2097151 & (load4(s[28:]) >> 7) - s12 := 2097151 & (load4(s[31:]) >> 4) - s13 := 2097151 & (load3(s[34:]) >> 1) - s14 := 2097151 & (load4(s[36:]) >> 6) - s15 := 2097151 & (load3(s[39:]) >> 3) - s16 := 2097151 & load3(s[42:]) - s17 := 2097151 & (load4(s[44:]) >> 5) - s18 := 2097151 & (load3(s[47:]) >> 2) - s19 := 2097151 & (load4(s[49:]) >> 7) - s20 := 2097151 & (load4(s[52:]) >> 4) - s21 := 2097151 & (load3(s[55:]) >> 1) - s22 := 2097151 & (load4(s[57:]) >> 6) - s23 := (load4(s[60:]) >> 3) - - s11 += s23 * 666643 - s12 += s23 * 470296 - s13 += s23 * 654183 - s14 -= s23 * 997805 - s15 += s23 * 136657 - s16 -= s23 * 683901 - s23 = 0 - - s10 += s22 * 666643 - s11 += s22 * 470296 - s12 += s22 * 654183 - s13 -= s22 * 997805 - s14 += s22 * 136657 - s15 -= s22 * 683901 - s22 = 0 - - s9 += s21 * 666643 - s10 += s21 * 470296 - s11 += s21 * 654183 - s12 -= s21 * 997805 - s13 += s21 * 136657 - s14 -= s21 * 683901 - s21 = 0 - - s8 += s20 * 666643 - s9 += s20 * 470296 - s10 += s20 * 654183 - s11 -= s20 * 997805 - s12 += s20 * 136657 - s13 -= s20 * 683901 - s20 = 0 - - s7 += s19 * 666643 - s8 += s19 * 470296 - s9 += s19 * 654183 - s10 -= s19 * 997805 - s11 += s19 * 136657 - s12 -= s19 * 683901 - s19 = 0 - - s6 += s18 * 666643 - s7 += s18 * 470296 - s8 += s18 * 654183 - s9 -= s18 * 997805 - s10 += s18 * 136657 - s11 -= s18 * 683901 - s18 = 0 - - var carry [17]int64 - - carry[6] = (s6 + (1 << 20)) >> 21 - s7 += carry[6] - s6 -= carry[6] << 21 - carry[8] = (s8 + (1 << 20)) >> 21 - s9 += carry[8] - s8 -= carry[8] << 21 - carry[10] = (s10 + (1 << 20)) >> 21 - s11 += carry[10] - s10 -= carry[10] << 21 - carry[12] = (s12 + (1 << 20)) >> 21 - s13 += carry[12] - s12 -= carry[12] << 21 - carry[14] = (s14 + (1 << 20)) >> 21 - s15 += carry[14] - s14 -= carry[14] << 21 - carry[16] = (s16 + (1 << 20)) >> 21 - s17 += carry[16] - s16 -= carry[16] << 21 - - carry[7] = (s7 + (1 << 20)) >> 21 - s8 += carry[7] - s7 -= carry[7] << 21 - carry[9] = (s9 + (1 << 20)) >> 21 - s10 += carry[9] - s9 -= carry[9] << 21 - carry[11] = (s11 + (1 << 20)) >> 21 - s12 += carry[11] - s11 -= carry[11] << 21 - carry[13] = (s13 + (1 << 20)) >> 21 - s14 += carry[13] - s13 -= carry[13] << 21 - carry[15] = (s15 + (1 << 20)) >> 21 - s16 += carry[15] - s15 -= carry[15] << 21 - - s5 += s17 * 666643 - s6 += s17 * 470296 - s7 += s17 * 654183 - s8 -= s17 * 997805 - s9 += s17 * 136657 - s10 -= s17 * 683901 - s17 = 0 - - s4 += s16 * 666643 - s5 += s16 * 470296 - s6 += s16 * 654183 - s7 -= s16 * 997805 - s8 += s16 * 136657 - s9 -= s16 * 683901 - s16 = 0 - - s3 += s15 * 666643 - s4 += s15 * 470296 - s5 += s15 * 654183 - s6 -= s15 * 997805 - s7 += s15 * 136657 - s8 -= s15 * 683901 - s15 = 0 - - s2 += s14 * 666643 - s3 += s14 * 470296 - s4 += s14 * 654183 - s5 -= s14 * 997805 - s6 += s14 * 136657 - s7 -= s14 * 683901 - s14 = 0 - - s1 += s13 * 666643 - s2 += s13 * 470296 - s3 += s13 * 654183 - s4 -= s13 * 997805 - s5 += s13 * 136657 - s6 -= s13 * 683901 - s13 = 0 - - s0 += s12 * 666643 - s1 += s12 * 470296 - s2 += s12 * 654183 - s3 -= s12 * 997805 - s4 += s12 * 136657 - s5 -= s12 * 683901 - s12 = 0 - - carry[0] = (s0 + (1 << 20)) >> 21 - s1 += carry[0] - s0 -= carry[0] << 21 - carry[2] = (s2 + (1 << 20)) >> 21 - s3 += carry[2] - s2 -= carry[2] << 21 - carry[4] = (s4 + (1 << 20)) >> 21 - s5 += carry[4] - s4 -= carry[4] << 21 - carry[6] = (s6 + (1 << 20)) >> 21 - s7 += carry[6] - s6 -= carry[6] << 21 - carry[8] = (s8 + (1 << 20)) >> 21 - s9 += carry[8] - s8 -= carry[8] << 21 - carry[10] = (s10 + (1 << 20)) >> 21 - s11 += carry[10] - s10 -= carry[10] << 21 - - carry[1] = (s1 + (1 << 20)) >> 21 - s2 += carry[1] - s1 -= carry[1] << 21 - carry[3] = (s3 + (1 << 20)) >> 21 - s4 += carry[3] - s3 -= carry[3] << 21 - carry[5] = (s5 + (1 << 20)) >> 21 - s6 += carry[5] - s5 -= carry[5] << 21 - carry[7] = (s7 + (1 << 20)) >> 21 - s8 += carry[7] - s7 -= carry[7] << 21 - carry[9] = (s9 + (1 << 20)) >> 21 - s10 += carry[9] - s9 -= carry[9] << 21 - carry[11] = (s11 + (1 << 20)) >> 21 - s12 += carry[11] - s11 -= carry[11] << 21 - - s0 += s12 * 666643 - s1 += s12 * 470296 - s2 += s12 * 654183 - s3 -= s12 * 997805 - s4 += s12 * 136657 - s5 -= s12 * 683901 - s12 = 0 - - carry[0] = s0 >> 21 - s1 += carry[0] - s0 -= carry[0] << 21 - carry[1] = s1 >> 21 - s2 += carry[1] - s1 -= carry[1] << 21 - carry[2] = s2 >> 21 - s3 += carry[2] - s2 -= carry[2] << 21 - carry[3] = s3 >> 21 - s4 += carry[3] - s3 -= carry[3] << 21 - carry[4] = s4 >> 21 - s5 += carry[4] - s4 -= carry[4] << 21 - carry[5] = s5 >> 21 - s6 += carry[5] - s5 -= carry[5] << 21 - carry[6] = s6 >> 21 - s7 += carry[6] - s6 -= carry[6] << 21 - carry[7] = s7 >> 21 - s8 += carry[7] - s7 -= carry[7] << 21 - carry[8] = s8 >> 21 - s9 += carry[8] - s8 -= carry[8] << 21 - carry[9] = s9 >> 21 - s10 += carry[9] - s9 -= carry[9] << 21 - carry[10] = s10 >> 21 - s11 += carry[10] - s10 -= carry[10] << 21 - carry[11] = s11 >> 21 - s12 += carry[11] - s11 -= carry[11] << 21 - - s0 += s12 * 666643 - s1 += s12 * 470296 - s2 += s12 * 654183 - s3 -= s12 * 997805 - s4 += s12 * 136657 - s5 -= s12 * 683901 - s12 = 0 - - carry[0] = s0 >> 21 - s1 += carry[0] - s0 -= carry[0] << 21 - carry[1] = s1 >> 21 - s2 += carry[1] - s1 -= carry[1] << 21 - carry[2] = s2 >> 21 - s3 += carry[2] - s2 -= carry[2] << 21 - carry[3] = s3 >> 21 - s4 += carry[3] - s3 -= carry[3] << 21 - carry[4] = s4 >> 21 - s5 += carry[4] - s4 -= carry[4] << 21 - carry[5] = s5 >> 21 - s6 += carry[5] - s5 -= carry[5] << 21 - carry[6] = s6 >> 21 - s7 += carry[6] - s6 -= carry[6] << 21 - carry[7] = s7 >> 21 - s8 += carry[7] - s7 -= carry[7] << 21 - carry[8] = s8 >> 21 - s9 += carry[8] - s8 -= carry[8] << 21 - carry[9] = s9 >> 21 - s10 += carry[9] - s9 -= carry[9] << 21 - carry[10] = s10 >> 21 - s11 += carry[10] - s10 -= carry[10] << 21 - - out[0] = byte(s0 >> 0) - out[1] = byte(s0 >> 8) - out[2] = byte((s0 >> 16) | (s1 << 5)) - out[3] = byte(s1 >> 3) - out[4] = byte(s1 >> 11) - out[5] = byte((s1 >> 19) | (s2 << 2)) - out[6] = byte(s2 >> 6) - out[7] = byte((s2 >> 14) | (s3 << 7)) - out[8] = byte(s3 >> 1) - out[9] = byte(s3 >> 9) - out[10] = byte((s3 >> 17) | (s4 << 4)) - out[11] = byte(s4 >> 4) - out[12] = byte(s4 >> 12) - out[13] = byte((s4 >> 20) | (s5 << 1)) - out[14] = byte(s5 >> 7) - out[15] = byte((s5 >> 15) | (s6 << 6)) - out[16] = byte(s6 >> 2) - out[17] = byte(s6 >> 10) - out[18] = byte((s6 >> 18) | (s7 << 3)) - out[19] = byte(s7 >> 5) - out[20] = byte(s7 >> 13) - out[21] = byte(s8 >> 0) - out[22] = byte(s8 >> 8) - out[23] = byte((s8 >> 16) | (s9 << 5)) - out[24] = byte(s9 >> 3) - out[25] = byte(s9 >> 11) - out[26] = byte((s9 >> 19) | (s10 << 2)) - out[27] = byte(s10 >> 6) - out[28] = byte((s10 >> 14) | (s11 << 7)) - out[29] = byte(s11 >> 1) - out[30] = byte(s11 >> 9) - out[31] = byte(s11 >> 17) -} diff --git a/vendor/golang.org/x/crypto/ssh/agent/client.go b/vendor/golang.org/x/crypto/ssh/agent/client.go deleted file mode 100644 index ecfd7c5..0000000 --- a/vendor/golang.org/x/crypto/ssh/agent/client.go +++ /dev/null @@ -1,659 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package agent implements the ssh-agent protocol, and provides both -// a client and a server. The client can talk to a standard ssh-agent -// that uses UNIX sockets, and one could implement an alternative -// ssh-agent process using the sample server. -// -// References: -// [PROTOCOL.agent]: http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/PROTOCOL.agent?rev=HEAD -package agent // import "golang.org/x/crypto/ssh/agent" - -import ( - "bytes" - "crypto/dsa" - "crypto/ecdsa" - "crypto/elliptic" - "crypto/rsa" - "encoding/base64" - "encoding/binary" - "errors" - "fmt" - "io" - "math/big" - "sync" - - "golang.org/x/crypto/ed25519" - "golang.org/x/crypto/ssh" -) - -// Agent represents the capabilities of an ssh-agent. -type Agent interface { - // List returns the identities known to the agent. - List() ([]*Key, error) - - // Sign has the agent sign the data using a protocol 2 key as defined - // in [PROTOCOL.agent] section 2.6.2. - Sign(key ssh.PublicKey, data []byte) (*ssh.Signature, error) - - // Add adds a private key to the agent. - Add(key AddedKey) error - - // Remove removes all identities with the given public key. - Remove(key ssh.PublicKey) error - - // RemoveAll removes all identities. - RemoveAll() error - - // Lock locks the agent. Sign and Remove will fail, and List will empty an empty list. - Lock(passphrase []byte) error - - // Unlock undoes the effect of Lock - Unlock(passphrase []byte) error - - // Signers returns signers for all the known keys. - Signers() ([]ssh.Signer, error) -} - -// AddedKey describes an SSH key to be added to an Agent. -type AddedKey struct { - // PrivateKey must be a *rsa.PrivateKey, *dsa.PrivateKey or - // *ecdsa.PrivateKey, which will be inserted into the agent. - PrivateKey interface{} - // Certificate, if not nil, is communicated to the agent and will be - // stored with the key. - Certificate *ssh.Certificate - // Comment is an optional, free-form string. - Comment string - // LifetimeSecs, if not zero, is the number of seconds that the - // agent will store the key for. - LifetimeSecs uint32 - // ConfirmBeforeUse, if true, requests that the agent confirm with the - // user before each use of this key. - ConfirmBeforeUse bool -} - -// See [PROTOCOL.agent], section 3. -const ( - agentRequestV1Identities = 1 - agentRemoveAllV1Identities = 9 - - // 3.2 Requests from client to agent for protocol 2 key operations - agentAddIdentity = 17 - agentRemoveIdentity = 18 - agentRemoveAllIdentities = 19 - agentAddIdConstrained = 25 - - // 3.3 Key-type independent requests from client to agent - agentAddSmartcardKey = 20 - agentRemoveSmartcardKey = 21 - agentLock = 22 - agentUnlock = 23 - agentAddSmartcardKeyConstrained = 26 - - // 3.7 Key constraint identifiers - agentConstrainLifetime = 1 - agentConstrainConfirm = 2 -) - -// maxAgentResponseBytes is the maximum agent reply size that is accepted. This -// is a sanity check, not a limit in the spec. -const maxAgentResponseBytes = 16 << 20 - -// Agent messages: -// These structures mirror the wire format of the corresponding ssh agent -// messages found in [PROTOCOL.agent]. - -// 3.4 Generic replies from agent to client -const agentFailure = 5 - -type failureAgentMsg struct{} - -const agentSuccess = 6 - -type successAgentMsg struct{} - -// See [PROTOCOL.agent], section 2.5.2. -const agentRequestIdentities = 11 - -type requestIdentitiesAgentMsg struct{} - -// See [PROTOCOL.agent], section 2.5.2. -const agentIdentitiesAnswer = 12 - -type identitiesAnswerAgentMsg struct { - NumKeys uint32 `sshtype:"12"` - Keys []byte `ssh:"rest"` -} - -// See [PROTOCOL.agent], section 2.6.2. -const agentSignRequest = 13 - -type signRequestAgentMsg struct { - KeyBlob []byte `sshtype:"13"` - Data []byte - Flags uint32 -} - -// See [PROTOCOL.agent], section 2.6.2. - -// 3.6 Replies from agent to client for protocol 2 key operations -const agentSignResponse = 14 - -type signResponseAgentMsg struct { - SigBlob []byte `sshtype:"14"` -} - -type publicKey struct { - Format string - Rest []byte `ssh:"rest"` -} - -// Key represents a protocol 2 public key as defined in -// [PROTOCOL.agent], section 2.5.2. -type Key struct { - Format string - Blob []byte - Comment string -} - -func clientErr(err error) error { - return fmt.Errorf("agent: client error: %v", err) -} - -// String returns the storage form of an agent key with the format, base64 -// encoded serialized key, and the comment if it is not empty. -func (k *Key) String() string { - s := string(k.Format) + " " + base64.StdEncoding.EncodeToString(k.Blob) - - if k.Comment != "" { - s += " " + k.Comment - } - - return s -} - -// Type returns the public key type. -func (k *Key) Type() string { - return k.Format -} - -// Marshal returns key blob to satisfy the ssh.PublicKey interface. -func (k *Key) Marshal() []byte { - return k.Blob -} - -// Verify satisfies the ssh.PublicKey interface. -func (k *Key) Verify(data []byte, sig *ssh.Signature) error { - pubKey, err := ssh.ParsePublicKey(k.Blob) - if err != nil { - return fmt.Errorf("agent: bad public key: %v", err) - } - return pubKey.Verify(data, sig) -} - -type wireKey struct { - Format string - Rest []byte `ssh:"rest"` -} - -func parseKey(in []byte) (out *Key, rest []byte, err error) { - var record struct { - Blob []byte - Comment string - Rest []byte `ssh:"rest"` - } - - if err := ssh.Unmarshal(in, &record); err != nil { - return nil, nil, err - } - - var wk wireKey - if err := ssh.Unmarshal(record.Blob, &wk); err != nil { - return nil, nil, err - } - - return &Key{ - Format: wk.Format, - Blob: record.Blob, - Comment: record.Comment, - }, record.Rest, nil -} - -// client is a client for an ssh-agent process. -type client struct { - // conn is typically a *net.UnixConn - conn io.ReadWriter - // mu is used to prevent concurrent access to the agent - mu sync.Mutex -} - -// NewClient returns an Agent that talks to an ssh-agent process over -// the given connection. -func NewClient(rw io.ReadWriter) Agent { - return &client{conn: rw} -} - -// call sends an RPC to the agent. On success, the reply is -// unmarshaled into reply and replyType is set to the first byte of -// the reply, which contains the type of the message. -func (c *client) call(req []byte) (reply interface{}, err error) { - c.mu.Lock() - defer c.mu.Unlock() - - msg := make([]byte, 4+len(req)) - binary.BigEndian.PutUint32(msg, uint32(len(req))) - copy(msg[4:], req) - if _, err = c.conn.Write(msg); err != nil { - return nil, clientErr(err) - } - - var respSizeBuf [4]byte - if _, err = io.ReadFull(c.conn, respSizeBuf[:]); err != nil { - return nil, clientErr(err) - } - respSize := binary.BigEndian.Uint32(respSizeBuf[:]) - if respSize > maxAgentResponseBytes { - return nil, clientErr(err) - } - - buf := make([]byte, respSize) - if _, err = io.ReadFull(c.conn, buf); err != nil { - return nil, clientErr(err) - } - reply, err = unmarshal(buf) - if err != nil { - return nil, clientErr(err) - } - return reply, err -} - -func (c *client) simpleCall(req []byte) error { - resp, err := c.call(req) - if err != nil { - return err - } - if _, ok := resp.(*successAgentMsg); ok { - return nil - } - return errors.New("agent: failure") -} - -func (c *client) RemoveAll() error { - return c.simpleCall([]byte{agentRemoveAllIdentities}) -} - -func (c *client) Remove(key ssh.PublicKey) error { - req := ssh.Marshal(&agentRemoveIdentityMsg{ - KeyBlob: key.Marshal(), - }) - return c.simpleCall(req) -} - -func (c *client) Lock(passphrase []byte) error { - req := ssh.Marshal(&agentLockMsg{ - Passphrase: passphrase, - }) - return c.simpleCall(req) -} - -func (c *client) Unlock(passphrase []byte) error { - req := ssh.Marshal(&agentUnlockMsg{ - Passphrase: passphrase, - }) - return c.simpleCall(req) -} - -// List returns the identities known to the agent. -func (c *client) List() ([]*Key, error) { - // see [PROTOCOL.agent] section 2.5.2. - req := []byte{agentRequestIdentities} - - msg, err := c.call(req) - if err != nil { - return nil, err - } - - switch msg := msg.(type) { - case *identitiesAnswerAgentMsg: - if msg.NumKeys > maxAgentResponseBytes/8 { - return nil, errors.New("agent: too many keys in agent reply") - } - keys := make([]*Key, msg.NumKeys) - data := msg.Keys - for i := uint32(0); i < msg.NumKeys; i++ { - var key *Key - var err error - if key, data, err = parseKey(data); err != nil { - return nil, err - } - keys[i] = key - } - return keys, nil - case *failureAgentMsg: - return nil, errors.New("agent: failed to list keys") - } - panic("unreachable") -} - -// Sign has the agent sign the data using a protocol 2 key as defined -// in [PROTOCOL.agent] section 2.6.2. -func (c *client) Sign(key ssh.PublicKey, data []byte) (*ssh.Signature, error) { - req := ssh.Marshal(signRequestAgentMsg{ - KeyBlob: key.Marshal(), - Data: data, - }) - - msg, err := c.call(req) - if err != nil { - return nil, err - } - - switch msg := msg.(type) { - case *signResponseAgentMsg: - var sig ssh.Signature - if err := ssh.Unmarshal(msg.SigBlob, &sig); err != nil { - return nil, err - } - - return &sig, nil - case *failureAgentMsg: - return nil, errors.New("agent: failed to sign challenge") - } - panic("unreachable") -} - -// unmarshal parses an agent message in packet, returning the parsed -// form and the message type of packet. -func unmarshal(packet []byte) (interface{}, error) { - if len(packet) < 1 { - return nil, errors.New("agent: empty packet") - } - var msg interface{} - switch packet[0] { - case agentFailure: - return new(failureAgentMsg), nil - case agentSuccess: - return new(successAgentMsg), nil - case agentIdentitiesAnswer: - msg = new(identitiesAnswerAgentMsg) - case agentSignResponse: - msg = new(signResponseAgentMsg) - case agentV1IdentitiesAnswer: - msg = new(agentV1IdentityMsg) - default: - return nil, fmt.Errorf("agent: unknown type tag %d", packet[0]) - } - if err := ssh.Unmarshal(packet, msg); err != nil { - return nil, err - } - return msg, nil -} - -type rsaKeyMsg struct { - Type string `sshtype:"17|25"` - N *big.Int - E *big.Int - D *big.Int - Iqmp *big.Int // IQMP = Inverse Q Mod P - P *big.Int - Q *big.Int - Comments string - Constraints []byte `ssh:"rest"` -} - -type dsaKeyMsg struct { - Type string `sshtype:"17|25"` - P *big.Int - Q *big.Int - G *big.Int - Y *big.Int - X *big.Int - Comments string - Constraints []byte `ssh:"rest"` -} - -type ecdsaKeyMsg struct { - Type string `sshtype:"17|25"` - Curve string - KeyBytes []byte - D *big.Int - Comments string - Constraints []byte `ssh:"rest"` -} - -type ed25519KeyMsg struct { - Type string `sshtype:"17|25"` - Pub []byte - Priv []byte - Comments string - Constraints []byte `ssh:"rest"` -} - -// Insert adds a private key to the agent. -func (c *client) insertKey(s interface{}, comment string, constraints []byte) error { - var req []byte - switch k := s.(type) { - case *rsa.PrivateKey: - if len(k.Primes) != 2 { - return fmt.Errorf("agent: unsupported RSA key with %d primes", len(k.Primes)) - } - k.Precompute() - req = ssh.Marshal(rsaKeyMsg{ - Type: ssh.KeyAlgoRSA, - N: k.N, - E: big.NewInt(int64(k.E)), - D: k.D, - Iqmp: k.Precomputed.Qinv, - P: k.Primes[0], - Q: k.Primes[1], - Comments: comment, - Constraints: constraints, - }) - case *dsa.PrivateKey: - req = ssh.Marshal(dsaKeyMsg{ - Type: ssh.KeyAlgoDSA, - P: k.P, - Q: k.Q, - G: k.G, - Y: k.Y, - X: k.X, - Comments: comment, - Constraints: constraints, - }) - case *ecdsa.PrivateKey: - nistID := fmt.Sprintf("nistp%d", k.Params().BitSize) - req = ssh.Marshal(ecdsaKeyMsg{ - Type: "ecdsa-sha2-" + nistID, - Curve: nistID, - KeyBytes: elliptic.Marshal(k.Curve, k.X, k.Y), - D: k.D, - Comments: comment, - Constraints: constraints, - }) - case *ed25519.PrivateKey: - req = ssh.Marshal(ed25519KeyMsg{ - Type: ssh.KeyAlgoED25519, - Pub: []byte(*k)[32:], - Priv: []byte(*k), - Comments: comment, - Constraints: constraints, - }) - default: - return fmt.Errorf("agent: unsupported key type %T", s) - } - - // if constraints are present then the message type needs to be changed. - if len(constraints) != 0 { - req[0] = agentAddIdConstrained - } - - resp, err := c.call(req) - if err != nil { - return err - } - if _, ok := resp.(*successAgentMsg); ok { - return nil - } - return errors.New("agent: failure") -} - -type rsaCertMsg struct { - Type string `sshtype:"17|25"` - CertBytes []byte - D *big.Int - Iqmp *big.Int // IQMP = Inverse Q Mod P - P *big.Int - Q *big.Int - Comments string - Constraints []byte `ssh:"rest"` -} - -type dsaCertMsg struct { - Type string `sshtype:"17|25"` - CertBytes []byte - X *big.Int - Comments string - Constraints []byte `ssh:"rest"` -} - -type ecdsaCertMsg struct { - Type string `sshtype:"17|25"` - CertBytes []byte - D *big.Int - Comments string - Constraints []byte `ssh:"rest"` -} - -type ed25519CertMsg struct { - Type string `sshtype:"17|25"` - CertBytes []byte - Pub []byte - Priv []byte - Comments string - Constraints []byte `ssh:"rest"` -} - -// Add adds a private key to the agent. If a certificate is given, -// that certificate is added instead as public key. -func (c *client) Add(key AddedKey) error { - var constraints []byte - - if secs := key.LifetimeSecs; secs != 0 { - constraints = append(constraints, agentConstrainLifetime) - - var secsBytes [4]byte - binary.BigEndian.PutUint32(secsBytes[:], secs) - constraints = append(constraints, secsBytes[:]...) - } - - if key.ConfirmBeforeUse { - constraints = append(constraints, agentConstrainConfirm) - } - - if cert := key.Certificate; cert == nil { - return c.insertKey(key.PrivateKey, key.Comment, constraints) - } else { - return c.insertCert(key.PrivateKey, cert, key.Comment, constraints) - } -} - -func (c *client) insertCert(s interface{}, cert *ssh.Certificate, comment string, constraints []byte) error { - var req []byte - switch k := s.(type) { - case *rsa.PrivateKey: - if len(k.Primes) != 2 { - return fmt.Errorf("agent: unsupported RSA key with %d primes", len(k.Primes)) - } - k.Precompute() - req = ssh.Marshal(rsaCertMsg{ - Type: cert.Type(), - CertBytes: cert.Marshal(), - D: k.D, - Iqmp: k.Precomputed.Qinv, - P: k.Primes[0], - Q: k.Primes[1], - Comments: comment, - Constraints: constraints, - }) - case *dsa.PrivateKey: - req = ssh.Marshal(dsaCertMsg{ - Type: cert.Type(), - CertBytes: cert.Marshal(), - X: k.X, - Comments: comment, - Constraints: constraints, - }) - case *ecdsa.PrivateKey: - req = ssh.Marshal(ecdsaCertMsg{ - Type: cert.Type(), - CertBytes: cert.Marshal(), - D: k.D, - Comments: comment, - Constraints: constraints, - }) - case *ed25519.PrivateKey: - req = ssh.Marshal(ed25519CertMsg{ - Type: cert.Type(), - CertBytes: cert.Marshal(), - Pub: []byte(*k)[32:], - Priv: []byte(*k), - Comments: comment, - Constraints: constraints, - }) - default: - return fmt.Errorf("agent: unsupported key type %T", s) - } - - // if constraints are present then the message type needs to be changed. - if len(constraints) != 0 { - req[0] = agentAddIdConstrained - } - - signer, err := ssh.NewSignerFromKey(s) - if err != nil { - return err - } - if bytes.Compare(cert.Key.Marshal(), signer.PublicKey().Marshal()) != 0 { - return errors.New("agent: signer and cert have different public key") - } - - resp, err := c.call(req) - if err != nil { - return err - } - if _, ok := resp.(*successAgentMsg); ok { - return nil - } - return errors.New("agent: failure") -} - -// Signers provides a callback for client authentication. -func (c *client) Signers() ([]ssh.Signer, error) { - keys, err := c.List() - if err != nil { - return nil, err - } - - var result []ssh.Signer - for _, k := range keys { - result = append(result, &agentKeyringSigner{c, k}) - } - return result, nil -} - -type agentKeyringSigner struct { - agent *client - pub ssh.PublicKey -} - -func (s *agentKeyringSigner) PublicKey() ssh.PublicKey { - return s.pub -} - -func (s *agentKeyringSigner) Sign(rand io.Reader, data []byte) (*ssh.Signature, error) { - // The agent has its own entropy source, so the rand argument is ignored. - return s.agent.Sign(s.pub, data) -} diff --git a/vendor/golang.org/x/crypto/ssh/agent/forward.go b/vendor/golang.org/x/crypto/ssh/agent/forward.go deleted file mode 100644 index fd24ba9..0000000 --- a/vendor/golang.org/x/crypto/ssh/agent/forward.go +++ /dev/null @@ -1,103 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package agent - -import ( - "errors" - "io" - "net" - "sync" - - "golang.org/x/crypto/ssh" -) - -// RequestAgentForwarding sets up agent forwarding for the session. -// ForwardToAgent or ForwardToRemote should be called to route -// the authentication requests. -func RequestAgentForwarding(session *ssh.Session) error { - ok, err := session.SendRequest("auth-agent-req@openssh.com", true, nil) - if err != nil { - return err - } - if !ok { - return errors.New("forwarding request denied") - } - return nil -} - -// ForwardToAgent routes authentication requests to the given keyring. -func ForwardToAgent(client *ssh.Client, keyring Agent) error { - channels := client.HandleChannelOpen(channelType) - if channels == nil { - return errors.New("agent: already have handler for " + channelType) - } - - go func() { - for ch := range channels { - channel, reqs, err := ch.Accept() - if err != nil { - continue - } - go ssh.DiscardRequests(reqs) - go func() { - ServeAgent(keyring, channel) - channel.Close() - }() - } - }() - return nil -} - -const channelType = "auth-agent@openssh.com" - -// ForwardToRemote routes authentication requests to the ssh-agent -// process serving on the given unix socket. -func ForwardToRemote(client *ssh.Client, addr string) error { - channels := client.HandleChannelOpen(channelType) - if channels == nil { - return errors.New("agent: already have handler for " + channelType) - } - conn, err := net.Dial("unix", addr) - if err != nil { - return err - } - conn.Close() - - go func() { - for ch := range channels { - channel, reqs, err := ch.Accept() - if err != nil { - continue - } - go ssh.DiscardRequests(reqs) - go forwardUnixSocket(channel, addr) - } - }() - return nil -} - -func forwardUnixSocket(channel ssh.Channel, addr string) { - conn, err := net.Dial("unix", addr) - if err != nil { - return - } - - var wg sync.WaitGroup - wg.Add(2) - go func() { - io.Copy(conn, channel) - conn.(*net.UnixConn).CloseWrite() - wg.Done() - }() - go func() { - io.Copy(channel, conn) - channel.CloseWrite() - wg.Done() - }() - - wg.Wait() - conn.Close() - channel.Close() -} diff --git a/vendor/golang.org/x/crypto/ssh/agent/keyring.go b/vendor/golang.org/x/crypto/ssh/agent/keyring.go deleted file mode 100644 index a6ba06a..0000000 --- a/vendor/golang.org/x/crypto/ssh/agent/keyring.go +++ /dev/null @@ -1,215 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package agent - -import ( - "bytes" - "crypto/rand" - "crypto/subtle" - "errors" - "fmt" - "sync" - "time" - - "golang.org/x/crypto/ssh" -) - -type privKey struct { - signer ssh.Signer - comment string - expire *time.Time -} - -type keyring struct { - mu sync.Mutex - keys []privKey - - locked bool - passphrase []byte -} - -var errLocked = errors.New("agent: locked") - -// NewKeyring returns an Agent that holds keys in memory. It is safe -// for concurrent use by multiple goroutines. -func NewKeyring() Agent { - return &keyring{} -} - -// RemoveAll removes all identities. -func (r *keyring) RemoveAll() error { - r.mu.Lock() - defer r.mu.Unlock() - if r.locked { - return errLocked - } - - r.keys = nil - return nil -} - -// removeLocked does the actual key removal. The caller must already be holding the -// keyring mutex. -func (r *keyring) removeLocked(want []byte) error { - found := false - for i := 0; i < len(r.keys); { - if bytes.Equal(r.keys[i].signer.PublicKey().Marshal(), want) { - found = true - r.keys[i] = r.keys[len(r.keys)-1] - r.keys = r.keys[:len(r.keys)-1] - continue - } else { - i++ - } - } - - if !found { - return errors.New("agent: key not found") - } - return nil -} - -// Remove removes all identities with the given public key. -func (r *keyring) Remove(key ssh.PublicKey) error { - r.mu.Lock() - defer r.mu.Unlock() - if r.locked { - return errLocked - } - - return r.removeLocked(key.Marshal()) -} - -// Lock locks the agent. Sign and Remove will fail, and List will return an empty list. -func (r *keyring) Lock(passphrase []byte) error { - r.mu.Lock() - defer r.mu.Unlock() - if r.locked { - return errLocked - } - - r.locked = true - r.passphrase = passphrase - return nil -} - -// Unlock undoes the effect of Lock -func (r *keyring) Unlock(passphrase []byte) error { - r.mu.Lock() - defer r.mu.Unlock() - if !r.locked { - return errors.New("agent: not locked") - } - if len(passphrase) != len(r.passphrase) || 1 != subtle.ConstantTimeCompare(passphrase, r.passphrase) { - return fmt.Errorf("agent: incorrect passphrase") - } - - r.locked = false - r.passphrase = nil - return nil -} - -// expireKeysLocked removes expired keys from the keyring. If a key was added -// with a lifetimesecs contraint and seconds >= lifetimesecs seconds have -// ellapsed, it is removed. The caller *must* be holding the keyring mutex. -func (r *keyring) expireKeysLocked() { - for _, k := range r.keys { - if k.expire != nil && time.Now().After(*k.expire) { - r.removeLocked(k.signer.PublicKey().Marshal()) - } - } -} - -// List returns the identities known to the agent. -func (r *keyring) List() ([]*Key, error) { - r.mu.Lock() - defer r.mu.Unlock() - if r.locked { - // section 2.7: locked agents return empty. - return nil, nil - } - - r.expireKeysLocked() - var ids []*Key - for _, k := range r.keys { - pub := k.signer.PublicKey() - ids = append(ids, &Key{ - Format: pub.Type(), - Blob: pub.Marshal(), - Comment: k.comment}) - } - return ids, nil -} - -// Insert adds a private key to the keyring. If a certificate -// is given, that certificate is added as public key. Note that -// any constraints given are ignored. -func (r *keyring) Add(key AddedKey) error { - r.mu.Lock() - defer r.mu.Unlock() - if r.locked { - return errLocked - } - signer, err := ssh.NewSignerFromKey(key.PrivateKey) - - if err != nil { - return err - } - - if cert := key.Certificate; cert != nil { - signer, err = ssh.NewCertSigner(cert, signer) - if err != nil { - return err - } - } - - p := privKey{ - signer: signer, - comment: key.Comment, - } - - if key.LifetimeSecs > 0 { - t := time.Now().Add(time.Duration(key.LifetimeSecs) * time.Second) - p.expire = &t - } - - r.keys = append(r.keys, p) - - return nil -} - -// Sign returns a signature for the data. -func (r *keyring) Sign(key ssh.PublicKey, data []byte) (*ssh.Signature, error) { - r.mu.Lock() - defer r.mu.Unlock() - if r.locked { - return nil, errLocked - } - - r.expireKeysLocked() - wanted := key.Marshal() - for _, k := range r.keys { - if bytes.Equal(k.signer.PublicKey().Marshal(), wanted) { - return k.signer.Sign(rand.Reader, data) - } - } - return nil, errors.New("not found") -} - -// Signers returns signers for all the known keys. -func (r *keyring) Signers() ([]ssh.Signer, error) { - r.mu.Lock() - defer r.mu.Unlock() - if r.locked { - return nil, errLocked - } - - r.expireKeysLocked() - s := make([]ssh.Signer, 0, len(r.keys)) - for _, k := range r.keys { - s = append(s, k.signer) - } - return s, nil -} diff --git a/vendor/golang.org/x/crypto/ssh/agent/server.go b/vendor/golang.org/x/crypto/ssh/agent/server.go deleted file mode 100644 index 68a333f..0000000 --- a/vendor/golang.org/x/crypto/ssh/agent/server.go +++ /dev/null @@ -1,451 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package agent - -import ( - "crypto/dsa" - "crypto/ecdsa" - "crypto/elliptic" - "crypto/rsa" - "encoding/binary" - "errors" - "fmt" - "io" - "log" - "math/big" - - "golang.org/x/crypto/ed25519" - "golang.org/x/crypto/ssh" -) - -// Server wraps an Agent and uses it to implement the agent side of -// the SSH-agent, wire protocol. -type server struct { - agent Agent -} - -func (s *server) processRequestBytes(reqData []byte) []byte { - rep, err := s.processRequest(reqData) - if err != nil { - if err != errLocked { - // TODO(hanwen): provide better logging interface? - log.Printf("agent %d: %v", reqData[0], err) - } - return []byte{agentFailure} - } - - if err == nil && rep == nil { - return []byte{agentSuccess} - } - - return ssh.Marshal(rep) -} - -func marshalKey(k *Key) []byte { - var record struct { - Blob []byte - Comment string - } - record.Blob = k.Marshal() - record.Comment = k.Comment - - return ssh.Marshal(&record) -} - -// See [PROTOCOL.agent], section 2.5.1. -const agentV1IdentitiesAnswer = 2 - -type agentV1IdentityMsg struct { - Numkeys uint32 `sshtype:"2"` -} - -type agentRemoveIdentityMsg struct { - KeyBlob []byte `sshtype:"18"` -} - -type agentLockMsg struct { - Passphrase []byte `sshtype:"22"` -} - -type agentUnlockMsg struct { - Passphrase []byte `sshtype:"23"` -} - -func (s *server) processRequest(data []byte) (interface{}, error) { - switch data[0] { - case agentRequestV1Identities: - return &agentV1IdentityMsg{0}, nil - - case agentRemoveAllV1Identities: - return nil, nil - - case agentRemoveIdentity: - var req agentRemoveIdentityMsg - if err := ssh.Unmarshal(data, &req); err != nil { - return nil, err - } - - var wk wireKey - if err := ssh.Unmarshal(req.KeyBlob, &wk); err != nil { - return nil, err - } - - return nil, s.agent.Remove(&Key{Format: wk.Format, Blob: req.KeyBlob}) - - case agentRemoveAllIdentities: - return nil, s.agent.RemoveAll() - - case agentLock: - var req agentLockMsg - if err := ssh.Unmarshal(data, &req); err != nil { - return nil, err - } - - return nil, s.agent.Lock(req.Passphrase) - - case agentUnlock: - var req agentLockMsg - if err := ssh.Unmarshal(data, &req); err != nil { - return nil, err - } - return nil, s.agent.Unlock(req.Passphrase) - - case agentSignRequest: - var req signRequestAgentMsg - if err := ssh.Unmarshal(data, &req); err != nil { - return nil, err - } - - var wk wireKey - if err := ssh.Unmarshal(req.KeyBlob, &wk); err != nil { - return nil, err - } - - k := &Key{ - Format: wk.Format, - Blob: req.KeyBlob, - } - - sig, err := s.agent.Sign(k, req.Data) // TODO(hanwen): flags. - if err != nil { - return nil, err - } - return &signResponseAgentMsg{SigBlob: ssh.Marshal(sig)}, nil - - case agentRequestIdentities: - keys, err := s.agent.List() - if err != nil { - return nil, err - } - - rep := identitiesAnswerAgentMsg{ - NumKeys: uint32(len(keys)), - } - for _, k := range keys { - rep.Keys = append(rep.Keys, marshalKey(k)...) - } - return rep, nil - - case agentAddIdConstrained, agentAddIdentity: - return nil, s.insertIdentity(data) - } - - return nil, fmt.Errorf("unknown opcode %d", data[0]) -} - -func parseRSAKey(req []byte) (*AddedKey, error) { - var k rsaKeyMsg - if err := ssh.Unmarshal(req, &k); err != nil { - return nil, err - } - if k.E.BitLen() > 30 { - return nil, errors.New("agent: RSA public exponent too large") - } - priv := &rsa.PrivateKey{ - PublicKey: rsa.PublicKey{ - E: int(k.E.Int64()), - N: k.N, - }, - D: k.D, - Primes: []*big.Int{k.P, k.Q}, - } - priv.Precompute() - - return &AddedKey{PrivateKey: priv, Comment: k.Comments}, nil -} - -func parseEd25519Key(req []byte) (*AddedKey, error) { - var k ed25519KeyMsg - if err := ssh.Unmarshal(req, &k); err != nil { - return nil, err - } - priv := ed25519.PrivateKey(k.Priv) - return &AddedKey{PrivateKey: &priv, Comment: k.Comments}, nil -} - -func parseDSAKey(req []byte) (*AddedKey, error) { - var k dsaKeyMsg - if err := ssh.Unmarshal(req, &k); err != nil { - return nil, err - } - priv := &dsa.PrivateKey{ - PublicKey: dsa.PublicKey{ - Parameters: dsa.Parameters{ - P: k.P, - Q: k.Q, - G: k.G, - }, - Y: k.Y, - }, - X: k.X, - } - - return &AddedKey{PrivateKey: priv, Comment: k.Comments}, nil -} - -func unmarshalECDSA(curveName string, keyBytes []byte, privScalar *big.Int) (priv *ecdsa.PrivateKey, err error) { - priv = &ecdsa.PrivateKey{ - D: privScalar, - } - - switch curveName { - case "nistp256": - priv.Curve = elliptic.P256() - case "nistp384": - priv.Curve = elliptic.P384() - case "nistp521": - priv.Curve = elliptic.P521() - default: - return nil, fmt.Errorf("agent: unknown curve %q", curveName) - } - - priv.X, priv.Y = elliptic.Unmarshal(priv.Curve, keyBytes) - if priv.X == nil || priv.Y == nil { - return nil, errors.New("agent: point not on curve") - } - - return priv, nil -} - -func parseEd25519Cert(req []byte) (*AddedKey, error) { - var k ed25519CertMsg - if err := ssh.Unmarshal(req, &k); err != nil { - return nil, err - } - pubKey, err := ssh.ParsePublicKey(k.CertBytes) - if err != nil { - return nil, err - } - priv := ed25519.PrivateKey(k.Priv) - cert, ok := pubKey.(*ssh.Certificate) - if !ok { - return nil, errors.New("agent: bad ED25519 certificate") - } - return &AddedKey{PrivateKey: &priv, Certificate: cert, Comment: k.Comments}, nil -} - -func parseECDSAKey(req []byte) (*AddedKey, error) { - var k ecdsaKeyMsg - if err := ssh.Unmarshal(req, &k); err != nil { - return nil, err - } - - priv, err := unmarshalECDSA(k.Curve, k.KeyBytes, k.D) - if err != nil { - return nil, err - } - - return &AddedKey{PrivateKey: priv, Comment: k.Comments}, nil -} - -func parseRSACert(req []byte) (*AddedKey, error) { - var k rsaCertMsg - if err := ssh.Unmarshal(req, &k); err != nil { - return nil, err - } - - pubKey, err := ssh.ParsePublicKey(k.CertBytes) - if err != nil { - return nil, err - } - - cert, ok := pubKey.(*ssh.Certificate) - if !ok { - return nil, errors.New("agent: bad RSA certificate") - } - - // An RSA publickey as marshaled by rsaPublicKey.Marshal() in keys.go - var rsaPub struct { - Name string - E *big.Int - N *big.Int - } - if err := ssh.Unmarshal(cert.Key.Marshal(), &rsaPub); err != nil { - return nil, fmt.Errorf("agent: Unmarshal failed to parse public key: %v", err) - } - - if rsaPub.E.BitLen() > 30 { - return nil, errors.New("agent: RSA public exponent too large") - } - - priv := rsa.PrivateKey{ - PublicKey: rsa.PublicKey{ - E: int(rsaPub.E.Int64()), - N: rsaPub.N, - }, - D: k.D, - Primes: []*big.Int{k.Q, k.P}, - } - priv.Precompute() - - return &AddedKey{PrivateKey: &priv, Certificate: cert, Comment: k.Comments}, nil -} - -func parseDSACert(req []byte) (*AddedKey, error) { - var k dsaCertMsg - if err := ssh.Unmarshal(req, &k); err != nil { - return nil, err - } - pubKey, err := ssh.ParsePublicKey(k.CertBytes) - if err != nil { - return nil, err - } - cert, ok := pubKey.(*ssh.Certificate) - if !ok { - return nil, errors.New("agent: bad DSA certificate") - } - - // A DSA publickey as marshaled by dsaPublicKey.Marshal() in keys.go - var w struct { - Name string - P, Q, G, Y *big.Int - } - if err := ssh.Unmarshal(cert.Key.Marshal(), &w); err != nil { - return nil, fmt.Errorf("agent: Unmarshal failed to parse public key: %v", err) - } - - priv := &dsa.PrivateKey{ - PublicKey: dsa.PublicKey{ - Parameters: dsa.Parameters{ - P: w.P, - Q: w.Q, - G: w.G, - }, - Y: w.Y, - }, - X: k.X, - } - - return &AddedKey{PrivateKey: priv, Certificate: cert, Comment: k.Comments}, nil -} - -func parseECDSACert(req []byte) (*AddedKey, error) { - var k ecdsaCertMsg - if err := ssh.Unmarshal(req, &k); err != nil { - return nil, err - } - - pubKey, err := ssh.ParsePublicKey(k.CertBytes) - if err != nil { - return nil, err - } - cert, ok := pubKey.(*ssh.Certificate) - if !ok { - return nil, errors.New("agent: bad ECDSA certificate") - } - - // An ECDSA publickey as marshaled by ecdsaPublicKey.Marshal() in keys.go - var ecdsaPub struct { - Name string - ID string - Key []byte - } - if err := ssh.Unmarshal(cert.Key.Marshal(), &ecdsaPub); err != nil { - return nil, err - } - - priv, err := unmarshalECDSA(ecdsaPub.ID, ecdsaPub.Key, k.D) - if err != nil { - return nil, err - } - - return &AddedKey{PrivateKey: priv, Certificate: cert, Comment: k.Comments}, nil -} - -func (s *server) insertIdentity(req []byte) error { - var record struct { - Type string `sshtype:"17|25"` - Rest []byte `ssh:"rest"` - } - - if err := ssh.Unmarshal(req, &record); err != nil { - return err - } - - var addedKey *AddedKey - var err error - - switch record.Type { - case ssh.KeyAlgoRSA: - addedKey, err = parseRSAKey(req) - case ssh.KeyAlgoDSA: - addedKey, err = parseDSAKey(req) - case ssh.KeyAlgoECDSA256, ssh.KeyAlgoECDSA384, ssh.KeyAlgoECDSA521: - addedKey, err = parseECDSAKey(req) - case ssh.KeyAlgoED25519: - addedKey, err = parseEd25519Key(req) - case ssh.CertAlgoRSAv01: - addedKey, err = parseRSACert(req) - case ssh.CertAlgoDSAv01: - addedKey, err = parseDSACert(req) - case ssh.CertAlgoECDSA256v01, ssh.CertAlgoECDSA384v01, ssh.CertAlgoECDSA521v01: - addedKey, err = parseECDSACert(req) - case ssh.CertAlgoED25519v01: - addedKey, err = parseEd25519Cert(req) - default: - return fmt.Errorf("agent: not implemented: %q", record.Type) - } - - if err != nil { - return err - } - return s.agent.Add(*addedKey) -} - -// ServeAgent serves the agent protocol on the given connection. It -// returns when an I/O error occurs. -func ServeAgent(agent Agent, c io.ReadWriter) error { - s := &server{agent} - - var length [4]byte - for { - if _, err := io.ReadFull(c, length[:]); err != nil { - return err - } - l := binary.BigEndian.Uint32(length[:]) - if l > maxAgentResponseBytes { - // We also cap requests. - return fmt.Errorf("agent: request too large: %d", l) - } - - req := make([]byte, l) - if _, err := io.ReadFull(c, req); err != nil { - return err - } - - repData := s.processRequestBytes(req) - if len(repData) > maxAgentResponseBytes { - return fmt.Errorf("agent: reply too large: %d bytes", len(repData)) - } - - binary.BigEndian.PutUint32(length[:], uint32(len(repData))) - if _, err := c.Write(length[:]); err != nil { - return err - } - if _, err := c.Write(repData); err != nil { - return err - } - } -} diff --git a/vendor/golang.org/x/crypto/ssh/buffer.go b/vendor/golang.org/x/crypto/ssh/buffer.go deleted file mode 100644 index 6931b51..0000000 --- a/vendor/golang.org/x/crypto/ssh/buffer.go +++ /dev/null @@ -1,98 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "io" - "sync" -) - -// buffer provides a linked list buffer for data exchange -// between producer and consumer. Theoretically the buffer is -// of unlimited capacity as it does no allocation of its own. -type buffer struct { - // protects concurrent access to head, tail and closed - *sync.Cond - - head *element // the buffer that will be read first - tail *element // the buffer that will be read last - - closed bool -} - -// An element represents a single link in a linked list. -type element struct { - buf []byte - next *element -} - -// newBuffer returns an empty buffer that is not closed. -func newBuffer() *buffer { - e := new(element) - b := &buffer{ - Cond: newCond(), - head: e, - tail: e, - } - return b -} - -// write makes buf available for Read to receive. -// buf must not be modified after the call to write. -func (b *buffer) write(buf []byte) { - b.Cond.L.Lock() - e := &element{buf: buf} - b.tail.next = e - b.tail = e - b.Cond.Signal() - b.Cond.L.Unlock() -} - -// eof closes the buffer. Reads from the buffer once all -// the data has been consumed will receive os.EOF. -func (b *buffer) eof() error { - b.Cond.L.Lock() - b.closed = true - b.Cond.Signal() - b.Cond.L.Unlock() - return nil -} - -// Read reads data from the internal buffer in buf. Reads will block -// if no data is available, or until the buffer is closed. -func (b *buffer) Read(buf []byte) (n int, err error) { - b.Cond.L.Lock() - defer b.Cond.L.Unlock() - - for len(buf) > 0 { - // if there is data in b.head, copy it - if len(b.head.buf) > 0 { - r := copy(buf, b.head.buf) - buf, b.head.buf = buf[r:], b.head.buf[r:] - n += r - continue - } - // if there is a next buffer, make it the head - if len(b.head.buf) == 0 && b.head != b.tail { - b.head = b.head.next - continue - } - - // if at least one byte has been copied, return - if n > 0 { - break - } - - // if nothing was read, and there is nothing outstanding - // check to see if the buffer is closed. - if b.closed { - err = io.EOF - break - } - // out of buffers, wait for producer - b.Cond.Wait() - } - return -} diff --git a/vendor/golang.org/x/crypto/ssh/certs.go b/vendor/golang.org/x/crypto/ssh/certs.go deleted file mode 100644 index 6331c94..0000000 --- a/vendor/golang.org/x/crypto/ssh/certs.go +++ /dev/null @@ -1,503 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "bytes" - "errors" - "fmt" - "io" - "net" - "sort" - "time" -) - -// These constants from [PROTOCOL.certkeys] represent the algorithm names -// for certificate types supported by this package. -const ( - CertAlgoRSAv01 = "ssh-rsa-cert-v01@openssh.com" - CertAlgoDSAv01 = "ssh-dss-cert-v01@openssh.com" - CertAlgoECDSA256v01 = "ecdsa-sha2-nistp256-cert-v01@openssh.com" - CertAlgoECDSA384v01 = "ecdsa-sha2-nistp384-cert-v01@openssh.com" - CertAlgoECDSA521v01 = "ecdsa-sha2-nistp521-cert-v01@openssh.com" - CertAlgoED25519v01 = "ssh-ed25519-cert-v01@openssh.com" -) - -// Certificate types distinguish between host and user -// certificates. The values can be set in the CertType field of -// Certificate. -const ( - UserCert = 1 - HostCert = 2 -) - -// Signature represents a cryptographic signature. -type Signature struct { - Format string - Blob []byte -} - -// CertTimeInfinity can be used for OpenSSHCertV01.ValidBefore to indicate that -// a certificate does not expire. -const CertTimeInfinity = 1<<64 - 1 - -// An Certificate represents an OpenSSH certificate as defined in -// [PROTOCOL.certkeys]?rev=1.8. -type Certificate struct { - Nonce []byte - Key PublicKey - Serial uint64 - CertType uint32 - KeyId string - ValidPrincipals []string - ValidAfter uint64 - ValidBefore uint64 - Permissions - Reserved []byte - SignatureKey PublicKey - Signature *Signature -} - -// genericCertData holds the key-independent part of the certificate data. -// Overall, certificates contain an nonce, public key fields and -// key-independent fields. -type genericCertData struct { - Serial uint64 - CertType uint32 - KeyId string - ValidPrincipals []byte - ValidAfter uint64 - ValidBefore uint64 - CriticalOptions []byte - Extensions []byte - Reserved []byte - SignatureKey []byte - Signature []byte -} - -func marshalStringList(namelist []string) []byte { - var to []byte - for _, name := range namelist { - s := struct{ N string }{name} - to = append(to, Marshal(&s)...) - } - return to -} - -type optionsTuple struct { - Key string - Value []byte -} - -type optionsTupleValue struct { - Value string -} - -// serialize a map of critical options or extensions -// issue #10569 - per [PROTOCOL.certkeys] and SSH implementation, -// we need two length prefixes for a non-empty string value -func marshalTuples(tups map[string]string) []byte { - keys := make([]string, 0, len(tups)) - for key := range tups { - keys = append(keys, key) - } - sort.Strings(keys) - - var ret []byte - for _, key := range keys { - s := optionsTuple{Key: key} - if value := tups[key]; len(value) > 0 { - s.Value = Marshal(&optionsTupleValue{value}) - } - ret = append(ret, Marshal(&s)...) - } - return ret -} - -// issue #10569 - per [PROTOCOL.certkeys] and SSH implementation, -// we need two length prefixes for a non-empty option value -func parseTuples(in []byte) (map[string]string, error) { - tups := map[string]string{} - var lastKey string - var haveLastKey bool - - for len(in) > 0 { - var key, val, extra []byte - var ok bool - - if key, in, ok = parseString(in); !ok { - return nil, errShortRead - } - keyStr := string(key) - // according to [PROTOCOL.certkeys], the names must be in - // lexical order. - if haveLastKey && keyStr <= lastKey { - return nil, fmt.Errorf("ssh: certificate options are not in lexical order") - } - lastKey, haveLastKey = keyStr, true - // the next field is a data field, which if non-empty has a string embedded - if val, in, ok = parseString(in); !ok { - return nil, errShortRead - } - if len(val) > 0 { - val, extra, ok = parseString(val) - if !ok { - return nil, errShortRead - } - if len(extra) > 0 { - return nil, fmt.Errorf("ssh: unexpected trailing data after certificate option value") - } - tups[keyStr] = string(val) - } else { - tups[keyStr] = "" - } - } - return tups, nil -} - -func parseCert(in []byte, privAlgo string) (*Certificate, error) { - nonce, rest, ok := parseString(in) - if !ok { - return nil, errShortRead - } - - key, rest, err := parsePubKey(rest, privAlgo) - if err != nil { - return nil, err - } - - var g genericCertData - if err := Unmarshal(rest, &g); err != nil { - return nil, err - } - - c := &Certificate{ - Nonce: nonce, - Key: key, - Serial: g.Serial, - CertType: g.CertType, - KeyId: g.KeyId, - ValidAfter: g.ValidAfter, - ValidBefore: g.ValidBefore, - } - - for principals := g.ValidPrincipals; len(principals) > 0; { - principal, rest, ok := parseString(principals) - if !ok { - return nil, errShortRead - } - c.ValidPrincipals = append(c.ValidPrincipals, string(principal)) - principals = rest - } - - c.CriticalOptions, err = parseTuples(g.CriticalOptions) - if err != nil { - return nil, err - } - c.Extensions, err = parseTuples(g.Extensions) - if err != nil { - return nil, err - } - c.Reserved = g.Reserved - k, err := ParsePublicKey(g.SignatureKey) - if err != nil { - return nil, err - } - - c.SignatureKey = k - c.Signature, rest, ok = parseSignatureBody(g.Signature) - if !ok || len(rest) > 0 { - return nil, errors.New("ssh: signature parse error") - } - - return c, nil -} - -type openSSHCertSigner struct { - pub *Certificate - signer Signer -} - -// NewCertSigner returns a Signer that signs with the given Certificate, whose -// private key is held by signer. It returns an error if the public key in cert -// doesn't match the key used by signer. -func NewCertSigner(cert *Certificate, signer Signer) (Signer, error) { - if bytes.Compare(cert.Key.Marshal(), signer.PublicKey().Marshal()) != 0 { - return nil, errors.New("ssh: signer and cert have different public key") - } - - return &openSSHCertSigner{cert, signer}, nil -} - -func (s *openSSHCertSigner) Sign(rand io.Reader, data []byte) (*Signature, error) { - return s.signer.Sign(rand, data) -} - -func (s *openSSHCertSigner) PublicKey() PublicKey { - return s.pub -} - -const sourceAddressCriticalOption = "source-address" - -// CertChecker does the work of verifying a certificate. Its methods -// can be plugged into ClientConfig.HostKeyCallback and -// ServerConfig.PublicKeyCallback. For the CertChecker to work, -// minimally, the IsAuthority callback should be set. -type CertChecker struct { - // SupportedCriticalOptions lists the CriticalOptions that the - // server application layer understands. These are only used - // for user certificates. - SupportedCriticalOptions []string - - // IsAuthority should return true if the key is recognized as - // an authority. This allows for certificates to be signed by other - // certificates. - IsAuthority func(auth PublicKey) bool - - // Clock is used for verifying time stamps. If nil, time.Now - // is used. - Clock func() time.Time - - // UserKeyFallback is called when CertChecker.Authenticate encounters a - // public key that is not a certificate. It must implement validation - // of user keys or else, if nil, all such keys are rejected. - UserKeyFallback func(conn ConnMetadata, key PublicKey) (*Permissions, error) - - // HostKeyFallback is called when CertChecker.CheckHostKey encounters a - // public key that is not a certificate. It must implement host key - // validation or else, if nil, all such keys are rejected. - HostKeyFallback func(addr string, remote net.Addr, key PublicKey) error - - // IsRevoked is called for each certificate so that revocation checking - // can be implemented. It should return true if the given certificate - // is revoked and false otherwise. If nil, no certificates are - // considered to have been revoked. - IsRevoked func(cert *Certificate) bool -} - -// CheckHostKey checks a host key certificate. This method can be -// plugged into ClientConfig.HostKeyCallback. -func (c *CertChecker) CheckHostKey(addr string, remote net.Addr, key PublicKey) error { - cert, ok := key.(*Certificate) - if !ok { - if c.HostKeyFallback != nil { - return c.HostKeyFallback(addr, remote, key) - } - return errors.New("ssh: non-certificate host key") - } - if cert.CertType != HostCert { - return fmt.Errorf("ssh: certificate presented as a host key has type %d", cert.CertType) - } - - return c.CheckCert(addr, cert) -} - -// Authenticate checks a user certificate. Authenticate can be used as -// a value for ServerConfig.PublicKeyCallback. -func (c *CertChecker) Authenticate(conn ConnMetadata, pubKey PublicKey) (*Permissions, error) { - cert, ok := pubKey.(*Certificate) - if !ok { - if c.UserKeyFallback != nil { - return c.UserKeyFallback(conn, pubKey) - } - return nil, errors.New("ssh: normal key pairs not accepted") - } - - if cert.CertType != UserCert { - return nil, fmt.Errorf("ssh: cert has type %d", cert.CertType) - } - - if err := c.CheckCert(conn.User(), cert); err != nil { - return nil, err - } - - return &cert.Permissions, nil -} - -// CheckCert checks CriticalOptions, ValidPrincipals, revocation, timestamp and -// the signature of the certificate. -func (c *CertChecker) CheckCert(principal string, cert *Certificate) error { - if c.IsRevoked != nil && c.IsRevoked(cert) { - return fmt.Errorf("ssh: certicate serial %d revoked", cert.Serial) - } - - for opt, _ := range cert.CriticalOptions { - // sourceAddressCriticalOption will be enforced by - // serverAuthenticate - if opt == sourceAddressCriticalOption { - continue - } - - found := false - for _, supp := range c.SupportedCriticalOptions { - if supp == opt { - found = true - break - } - } - if !found { - return fmt.Errorf("ssh: unsupported critical option %q in certificate", opt) - } - } - - if len(cert.ValidPrincipals) > 0 { - // By default, certs are valid for all users/hosts. - found := false - for _, p := range cert.ValidPrincipals { - if p == principal { - found = true - break - } - } - if !found { - return fmt.Errorf("ssh: principal %q not in the set of valid principals for given certificate: %q", principal, cert.ValidPrincipals) - } - } - - if !c.IsAuthority(cert.SignatureKey) { - return fmt.Errorf("ssh: certificate signed by unrecognized authority") - } - - clock := c.Clock - if clock == nil { - clock = time.Now - } - - unixNow := clock().Unix() - if after := int64(cert.ValidAfter); after < 0 || unixNow < int64(cert.ValidAfter) { - return fmt.Errorf("ssh: cert is not yet valid") - } - if before := int64(cert.ValidBefore); cert.ValidBefore != uint64(CertTimeInfinity) && (unixNow >= before || before < 0) { - return fmt.Errorf("ssh: cert has expired") - } - if err := cert.SignatureKey.Verify(cert.bytesForSigning(), cert.Signature); err != nil { - return fmt.Errorf("ssh: certificate signature does not verify") - } - - return nil -} - -// SignCert sets c.SignatureKey to the authority's public key and stores a -// Signature, by authority, in the certificate. -func (c *Certificate) SignCert(rand io.Reader, authority Signer) error { - c.Nonce = make([]byte, 32) - if _, err := io.ReadFull(rand, c.Nonce); err != nil { - return err - } - c.SignatureKey = authority.PublicKey() - - sig, err := authority.Sign(rand, c.bytesForSigning()) - if err != nil { - return err - } - c.Signature = sig - return nil -} - -var certAlgoNames = map[string]string{ - KeyAlgoRSA: CertAlgoRSAv01, - KeyAlgoDSA: CertAlgoDSAv01, - KeyAlgoECDSA256: CertAlgoECDSA256v01, - KeyAlgoECDSA384: CertAlgoECDSA384v01, - KeyAlgoECDSA521: CertAlgoECDSA521v01, - KeyAlgoED25519: CertAlgoED25519v01, -} - -// certToPrivAlgo returns the underlying algorithm for a certificate algorithm. -// Panics if a non-certificate algorithm is passed. -func certToPrivAlgo(algo string) string { - for privAlgo, pubAlgo := range certAlgoNames { - if pubAlgo == algo { - return privAlgo - } - } - panic("unknown cert algorithm") -} - -func (cert *Certificate) bytesForSigning() []byte { - c2 := *cert - c2.Signature = nil - out := c2.Marshal() - // Drop trailing signature length. - return out[:len(out)-4] -} - -// Marshal serializes c into OpenSSH's wire format. It is part of the -// PublicKey interface. -func (c *Certificate) Marshal() []byte { - generic := genericCertData{ - Serial: c.Serial, - CertType: c.CertType, - KeyId: c.KeyId, - ValidPrincipals: marshalStringList(c.ValidPrincipals), - ValidAfter: uint64(c.ValidAfter), - ValidBefore: uint64(c.ValidBefore), - CriticalOptions: marshalTuples(c.CriticalOptions), - Extensions: marshalTuples(c.Extensions), - Reserved: c.Reserved, - SignatureKey: c.SignatureKey.Marshal(), - } - if c.Signature != nil { - generic.Signature = Marshal(c.Signature) - } - genericBytes := Marshal(&generic) - keyBytes := c.Key.Marshal() - _, keyBytes, _ = parseString(keyBytes) - prefix := Marshal(&struct { - Name string - Nonce []byte - Key []byte `ssh:"rest"` - }{c.Type(), c.Nonce, keyBytes}) - - result := make([]byte, 0, len(prefix)+len(genericBytes)) - result = append(result, prefix...) - result = append(result, genericBytes...) - return result -} - -// Type returns the key name. It is part of the PublicKey interface. -func (c *Certificate) Type() string { - algo, ok := certAlgoNames[c.Key.Type()] - if !ok { - panic("unknown cert key type " + c.Key.Type()) - } - return algo -} - -// Verify verifies a signature against the certificate's public -// key. It is part of the PublicKey interface. -func (c *Certificate) Verify(data []byte, sig *Signature) error { - return c.Key.Verify(data, sig) -} - -func parseSignatureBody(in []byte) (out *Signature, rest []byte, ok bool) { - format, in, ok := parseString(in) - if !ok { - return - } - - out = &Signature{ - Format: string(format), - } - - if out.Blob, in, ok = parseString(in); !ok { - return - } - - return out, in, ok -} - -func parseSignature(in []byte) (out *Signature, rest []byte, ok bool) { - sigBytes, rest, ok := parseString(in) - if !ok { - return - } - - out, trailing, ok := parseSignatureBody(sigBytes) - if !ok || len(trailing) > 0 { - return nil, nil, false - } - return -} diff --git a/vendor/golang.org/x/crypto/ssh/channel.go b/vendor/golang.org/x/crypto/ssh/channel.go deleted file mode 100644 index 6d709b5..0000000 --- a/vendor/golang.org/x/crypto/ssh/channel.go +++ /dev/null @@ -1,633 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "encoding/binary" - "errors" - "fmt" - "io" - "log" - "sync" -) - -const ( - minPacketLength = 9 - // channelMaxPacket contains the maximum number of bytes that will be - // sent in a single packet. As per RFC 4253, section 6.1, 32k is also - // the minimum. - channelMaxPacket = 1 << 15 - // We follow OpenSSH here. - channelWindowSize = 64 * channelMaxPacket -) - -// NewChannel represents an incoming request to a channel. It must either be -// accepted for use by calling Accept, or rejected by calling Reject. -type NewChannel interface { - // Accept accepts the channel creation request. It returns the Channel - // and a Go channel containing SSH requests. The Go channel must be - // serviced otherwise the Channel will hang. - Accept() (Channel, <-chan *Request, error) - - // Reject rejects the channel creation request. After calling - // this, no other methods on the Channel may be called. - Reject(reason RejectionReason, message string) error - - // ChannelType returns the type of the channel, as supplied by the - // client. - ChannelType() string - - // ExtraData returns the arbitrary payload for this channel, as supplied - // by the client. This data is specific to the channel type. - ExtraData() []byte -} - -// A Channel is an ordered, reliable, flow-controlled, duplex stream -// that is multiplexed over an SSH connection. -type Channel interface { - // Read reads up to len(data) bytes from the channel. - Read(data []byte) (int, error) - - // Write writes len(data) bytes to the channel. - Write(data []byte) (int, error) - - // Close signals end of channel use. No data may be sent after this - // call. - Close() error - - // CloseWrite signals the end of sending in-band - // data. Requests may still be sent, and the other side may - // still send data - CloseWrite() error - - // SendRequest sends a channel request. If wantReply is true, - // it will wait for a reply and return the result as a - // boolean, otherwise the return value will be false. Channel - // requests are out-of-band messages so they may be sent even - // if the data stream is closed or blocked by flow control. - // If the channel is closed before a reply is returned, io.EOF - // is returned. - SendRequest(name string, wantReply bool, payload []byte) (bool, error) - - // Stderr returns an io.ReadWriter that writes to this channel - // with the extended data type set to stderr. Stderr may - // safely be read and written from a different goroutine than - // Read and Write respectively. - Stderr() io.ReadWriter -} - -// Request is a request sent outside of the normal stream of -// data. Requests can either be specific to an SSH channel, or they -// can be global. -type Request struct { - Type string - WantReply bool - Payload []byte - - ch *channel - mux *mux -} - -// Reply sends a response to a request. It must be called for all requests -// where WantReply is true and is a no-op otherwise. The payload argument is -// ignored for replies to channel-specific requests. -func (r *Request) Reply(ok bool, payload []byte) error { - if !r.WantReply { - return nil - } - - if r.ch == nil { - return r.mux.ackRequest(ok, payload) - } - - return r.ch.ackRequest(ok) -} - -// RejectionReason is an enumeration used when rejecting channel creation -// requests. See RFC 4254, section 5.1. -type RejectionReason uint32 - -const ( - Prohibited RejectionReason = iota + 1 - ConnectionFailed - UnknownChannelType - ResourceShortage -) - -// String converts the rejection reason to human readable form. -func (r RejectionReason) String() string { - switch r { - case Prohibited: - return "administratively prohibited" - case ConnectionFailed: - return "connect failed" - case UnknownChannelType: - return "unknown channel type" - case ResourceShortage: - return "resource shortage" - } - return fmt.Sprintf("unknown reason %d", int(r)) -} - -func min(a uint32, b int) uint32 { - if a < uint32(b) { - return a - } - return uint32(b) -} - -type channelDirection uint8 - -const ( - channelInbound channelDirection = iota - channelOutbound -) - -// channel is an implementation of the Channel interface that works -// with the mux class. -type channel struct { - // R/O after creation - chanType string - extraData []byte - localId, remoteId uint32 - - // maxIncomingPayload and maxRemotePayload are the maximum - // payload sizes of normal and extended data packets for - // receiving and sending, respectively. The wire packet will - // be 9 or 13 bytes larger (excluding encryption overhead). - maxIncomingPayload uint32 - maxRemotePayload uint32 - - mux *mux - - // decided is set to true if an accept or reject message has been sent - // (for outbound channels) or received (for inbound channels). - decided bool - - // direction contains either channelOutbound, for channels created - // locally, or channelInbound, for channels created by the peer. - direction channelDirection - - // Pending internal channel messages. - msg chan interface{} - - // Since requests have no ID, there can be only one request - // with WantReply=true outstanding. This lock is held by a - // goroutine that has such an outgoing request pending. - sentRequestMu sync.Mutex - - incomingRequests chan *Request - - sentEOF bool - - // thread-safe data - remoteWin window - pending *buffer - extPending *buffer - - // windowMu protects myWindow, the flow-control window. - windowMu sync.Mutex - myWindow uint32 - - // writeMu serializes calls to mux.conn.writePacket() and - // protects sentClose and packetPool. This mutex must be - // different from windowMu, as writePacket can block if there - // is a key exchange pending. - writeMu sync.Mutex - sentClose bool - - // packetPool has a buffer for each extended channel ID to - // save allocations during writes. - packetPool map[uint32][]byte -} - -// writePacket sends a packet. If the packet is a channel close, it updates -// sentClose. This method takes the lock c.writeMu. -func (c *channel) writePacket(packet []byte) error { - c.writeMu.Lock() - if c.sentClose { - c.writeMu.Unlock() - return io.EOF - } - c.sentClose = (packet[0] == msgChannelClose) - err := c.mux.conn.writePacket(packet) - c.writeMu.Unlock() - return err -} - -func (c *channel) sendMessage(msg interface{}) error { - if debugMux { - log.Printf("send(%d): %#v", c.mux.chanList.offset, msg) - } - - p := Marshal(msg) - binary.BigEndian.PutUint32(p[1:], c.remoteId) - return c.writePacket(p) -} - -// WriteExtended writes data to a specific extended stream. These streams are -// used, for example, for stderr. -func (c *channel) WriteExtended(data []byte, extendedCode uint32) (n int, err error) { - if c.sentEOF { - return 0, io.EOF - } - // 1 byte message type, 4 bytes remoteId, 4 bytes data length - opCode := byte(msgChannelData) - headerLength := uint32(9) - if extendedCode > 0 { - headerLength += 4 - opCode = msgChannelExtendedData - } - - c.writeMu.Lock() - packet := c.packetPool[extendedCode] - // We don't remove the buffer from packetPool, so - // WriteExtended calls from different goroutines will be - // flagged as errors by the race detector. - c.writeMu.Unlock() - - for len(data) > 0 { - space := min(c.maxRemotePayload, len(data)) - if space, err = c.remoteWin.reserve(space); err != nil { - return n, err - } - if want := headerLength + space; uint32(cap(packet)) < want { - packet = make([]byte, want) - } else { - packet = packet[:want] - } - - todo := data[:space] - - packet[0] = opCode - binary.BigEndian.PutUint32(packet[1:], c.remoteId) - if extendedCode > 0 { - binary.BigEndian.PutUint32(packet[5:], uint32(extendedCode)) - } - binary.BigEndian.PutUint32(packet[headerLength-4:], uint32(len(todo))) - copy(packet[headerLength:], todo) - if err = c.writePacket(packet); err != nil { - return n, err - } - - n += len(todo) - data = data[len(todo):] - } - - c.writeMu.Lock() - c.packetPool[extendedCode] = packet - c.writeMu.Unlock() - - return n, err -} - -func (c *channel) handleData(packet []byte) error { - headerLen := 9 - isExtendedData := packet[0] == msgChannelExtendedData - if isExtendedData { - headerLen = 13 - } - if len(packet) < headerLen { - // malformed data packet - return parseError(packet[0]) - } - - var extended uint32 - if isExtendedData { - extended = binary.BigEndian.Uint32(packet[5:]) - } - - length := binary.BigEndian.Uint32(packet[headerLen-4 : headerLen]) - if length == 0 { - return nil - } - if length > c.maxIncomingPayload { - // TODO(hanwen): should send Disconnect? - return errors.New("ssh: incoming packet exceeds maximum payload size") - } - - data := packet[headerLen:] - if length != uint32(len(data)) { - return errors.New("ssh: wrong packet length") - } - - c.windowMu.Lock() - if c.myWindow < length { - c.windowMu.Unlock() - // TODO(hanwen): should send Disconnect with reason? - return errors.New("ssh: remote side wrote too much") - } - c.myWindow -= length - c.windowMu.Unlock() - - if extended == 1 { - c.extPending.write(data) - } else if extended > 0 { - // discard other extended data. - } else { - c.pending.write(data) - } - return nil -} - -func (c *channel) adjustWindow(n uint32) error { - c.windowMu.Lock() - // Since myWindow is managed on our side, and can never exceed - // the initial window setting, we don't worry about overflow. - c.myWindow += uint32(n) - c.windowMu.Unlock() - return c.sendMessage(windowAdjustMsg{ - AdditionalBytes: uint32(n), - }) -} - -func (c *channel) ReadExtended(data []byte, extended uint32) (n int, err error) { - switch extended { - case 1: - n, err = c.extPending.Read(data) - case 0: - n, err = c.pending.Read(data) - default: - return 0, fmt.Errorf("ssh: extended code %d unimplemented", extended) - } - - if n > 0 { - err = c.adjustWindow(uint32(n)) - // sendWindowAdjust can return io.EOF if the remote - // peer has closed the connection, however we want to - // defer forwarding io.EOF to the caller of Read until - // the buffer has been drained. - if n > 0 && err == io.EOF { - err = nil - } - } - - return n, err -} - -func (c *channel) close() { - c.pending.eof() - c.extPending.eof() - close(c.msg) - close(c.incomingRequests) - c.writeMu.Lock() - // This is not necessary for a normal channel teardown, but if - // there was another error, it is. - c.sentClose = true - c.writeMu.Unlock() - // Unblock writers. - c.remoteWin.close() -} - -// responseMessageReceived is called when a success or failure message is -// received on a channel to check that such a message is reasonable for the -// given channel. -func (c *channel) responseMessageReceived() error { - if c.direction == channelInbound { - return errors.New("ssh: channel response message received on inbound channel") - } - if c.decided { - return errors.New("ssh: duplicate response received for channel") - } - c.decided = true - return nil -} - -func (c *channel) handlePacket(packet []byte) error { - switch packet[0] { - case msgChannelData, msgChannelExtendedData: - return c.handleData(packet) - case msgChannelClose: - c.sendMessage(channelCloseMsg{PeersId: c.remoteId}) - c.mux.chanList.remove(c.localId) - c.close() - return nil - case msgChannelEOF: - // RFC 4254 is mute on how EOF affects dataExt messages but - // it is logical to signal EOF at the same time. - c.extPending.eof() - c.pending.eof() - return nil - } - - decoded, err := decode(packet) - if err != nil { - return err - } - - switch msg := decoded.(type) { - case *channelOpenFailureMsg: - if err := c.responseMessageReceived(); err != nil { - return err - } - c.mux.chanList.remove(msg.PeersId) - c.msg <- msg - case *channelOpenConfirmMsg: - if err := c.responseMessageReceived(); err != nil { - return err - } - if msg.MaxPacketSize < minPacketLength || msg.MaxPacketSize > 1<<31 { - return fmt.Errorf("ssh: invalid MaxPacketSize %d from peer", msg.MaxPacketSize) - } - c.remoteId = msg.MyId - c.maxRemotePayload = msg.MaxPacketSize - c.remoteWin.add(msg.MyWindow) - c.msg <- msg - case *windowAdjustMsg: - if !c.remoteWin.add(msg.AdditionalBytes) { - return fmt.Errorf("ssh: invalid window update for %d bytes", msg.AdditionalBytes) - } - case *channelRequestMsg: - req := Request{ - Type: msg.Request, - WantReply: msg.WantReply, - Payload: msg.RequestSpecificData, - ch: c, - } - - c.incomingRequests <- &req - default: - c.msg <- msg - } - return nil -} - -func (m *mux) newChannel(chanType string, direction channelDirection, extraData []byte) *channel { - ch := &channel{ - remoteWin: window{Cond: newCond()}, - myWindow: channelWindowSize, - pending: newBuffer(), - extPending: newBuffer(), - direction: direction, - incomingRequests: make(chan *Request, 16), - msg: make(chan interface{}, 16), - chanType: chanType, - extraData: extraData, - mux: m, - packetPool: make(map[uint32][]byte), - } - ch.localId = m.chanList.add(ch) - return ch -} - -var errUndecided = errors.New("ssh: must Accept or Reject channel") -var errDecidedAlready = errors.New("ssh: can call Accept or Reject only once") - -type extChannel struct { - code uint32 - ch *channel -} - -func (e *extChannel) Write(data []byte) (n int, err error) { - return e.ch.WriteExtended(data, e.code) -} - -func (e *extChannel) Read(data []byte) (n int, err error) { - return e.ch.ReadExtended(data, e.code) -} - -func (c *channel) Accept() (Channel, <-chan *Request, error) { - if c.decided { - return nil, nil, errDecidedAlready - } - c.maxIncomingPayload = channelMaxPacket - confirm := channelOpenConfirmMsg{ - PeersId: c.remoteId, - MyId: c.localId, - MyWindow: c.myWindow, - MaxPacketSize: c.maxIncomingPayload, - } - c.decided = true - if err := c.sendMessage(confirm); err != nil { - return nil, nil, err - } - - return c, c.incomingRequests, nil -} - -func (ch *channel) Reject(reason RejectionReason, message string) error { - if ch.decided { - return errDecidedAlready - } - reject := channelOpenFailureMsg{ - PeersId: ch.remoteId, - Reason: reason, - Message: message, - Language: "en", - } - ch.decided = true - return ch.sendMessage(reject) -} - -func (ch *channel) Read(data []byte) (int, error) { - if !ch.decided { - return 0, errUndecided - } - return ch.ReadExtended(data, 0) -} - -func (ch *channel) Write(data []byte) (int, error) { - if !ch.decided { - return 0, errUndecided - } - return ch.WriteExtended(data, 0) -} - -func (ch *channel) CloseWrite() error { - if !ch.decided { - return errUndecided - } - ch.sentEOF = true - return ch.sendMessage(channelEOFMsg{ - PeersId: ch.remoteId}) -} - -func (ch *channel) Close() error { - if !ch.decided { - return errUndecided - } - - return ch.sendMessage(channelCloseMsg{ - PeersId: ch.remoteId}) -} - -// Extended returns an io.ReadWriter that sends and receives data on the given, -// SSH extended stream. Such streams are used, for example, for stderr. -func (ch *channel) Extended(code uint32) io.ReadWriter { - if !ch.decided { - return nil - } - return &extChannel{code, ch} -} - -func (ch *channel) Stderr() io.ReadWriter { - return ch.Extended(1) -} - -func (ch *channel) SendRequest(name string, wantReply bool, payload []byte) (bool, error) { - if !ch.decided { - return false, errUndecided - } - - if wantReply { - ch.sentRequestMu.Lock() - defer ch.sentRequestMu.Unlock() - } - - msg := channelRequestMsg{ - PeersId: ch.remoteId, - Request: name, - WantReply: wantReply, - RequestSpecificData: payload, - } - - if err := ch.sendMessage(msg); err != nil { - return false, err - } - - if wantReply { - m, ok := (<-ch.msg) - if !ok { - return false, io.EOF - } - switch m.(type) { - case *channelRequestFailureMsg: - return false, nil - case *channelRequestSuccessMsg: - return true, nil - default: - return false, fmt.Errorf("ssh: unexpected response to channel request: %#v", m) - } - } - - return false, nil -} - -// ackRequest either sends an ack or nack to the channel request. -func (ch *channel) ackRequest(ok bool) error { - if !ch.decided { - return errUndecided - } - - var msg interface{} - if !ok { - msg = channelRequestFailureMsg{ - PeersId: ch.remoteId, - } - } else { - msg = channelRequestSuccessMsg{ - PeersId: ch.remoteId, - } - } - return ch.sendMessage(msg) -} - -func (ch *channel) ChannelType() string { - return ch.chanType -} - -func (ch *channel) ExtraData() []byte { - return ch.extraData -} diff --git a/vendor/golang.org/x/crypto/ssh/cipher.go b/vendor/golang.org/x/crypto/ssh/cipher.go deleted file mode 100644 index 34d3917..0000000 --- a/vendor/golang.org/x/crypto/ssh/cipher.go +++ /dev/null @@ -1,579 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "crypto/aes" - "crypto/cipher" - "crypto/des" - "crypto/rc4" - "crypto/subtle" - "encoding/binary" - "errors" - "fmt" - "hash" - "io" - "io/ioutil" -) - -const ( - packetSizeMultiple = 16 // TODO(huin) this should be determined by the cipher. - - // RFC 4253 section 6.1 defines a minimum packet size of 32768 that implementations - // MUST be able to process (plus a few more kilobytes for padding and mac). The RFC - // indicates implementations SHOULD be able to handle larger packet sizes, but then - // waffles on about reasonable limits. - // - // OpenSSH caps their maxPacket at 256kB so we choose to do - // the same. maxPacket is also used to ensure that uint32 - // length fields do not overflow, so it should remain well - // below 4G. - maxPacket = 256 * 1024 -) - -// noneCipher implements cipher.Stream and provides no encryption. It is used -// by the transport before the first key-exchange. -type noneCipher struct{} - -func (c noneCipher) XORKeyStream(dst, src []byte) { - copy(dst, src) -} - -func newAESCTR(key, iv []byte) (cipher.Stream, error) { - c, err := aes.NewCipher(key) - if err != nil { - return nil, err - } - return cipher.NewCTR(c, iv), nil -} - -func newRC4(key, iv []byte) (cipher.Stream, error) { - return rc4.NewCipher(key) -} - -type streamCipherMode struct { - keySize int - ivSize int - skip int - createFunc func(key, iv []byte) (cipher.Stream, error) -} - -func (c *streamCipherMode) createStream(key, iv []byte) (cipher.Stream, error) { - if len(key) < c.keySize { - panic("ssh: key length too small for cipher") - } - if len(iv) < c.ivSize { - panic("ssh: iv too small for cipher") - } - - stream, err := c.createFunc(key[:c.keySize], iv[:c.ivSize]) - if err != nil { - return nil, err - } - - var streamDump []byte - if c.skip > 0 { - streamDump = make([]byte, 512) - } - - for remainingToDump := c.skip; remainingToDump > 0; { - dumpThisTime := remainingToDump - if dumpThisTime > len(streamDump) { - dumpThisTime = len(streamDump) - } - stream.XORKeyStream(streamDump[:dumpThisTime], streamDump[:dumpThisTime]) - remainingToDump -= dumpThisTime - } - - return stream, nil -} - -// cipherModes documents properties of supported ciphers. Ciphers not included -// are not supported and will not be negotiated, even if explicitly requested in -// ClientConfig.Crypto.Ciphers. -var cipherModes = map[string]*streamCipherMode{ - // Ciphers from RFC4344, which introduced many CTR-based ciphers. Algorithms - // are defined in the order specified in the RFC. - "aes128-ctr": {16, aes.BlockSize, 0, newAESCTR}, - "aes192-ctr": {24, aes.BlockSize, 0, newAESCTR}, - "aes256-ctr": {32, aes.BlockSize, 0, newAESCTR}, - - // Ciphers from RFC4345, which introduces security-improved arcfour ciphers. - // They are defined in the order specified in the RFC. - "arcfour128": {16, 0, 1536, newRC4}, - "arcfour256": {32, 0, 1536, newRC4}, - - // Cipher defined in RFC 4253, which describes SSH Transport Layer Protocol. - // Note that this cipher is not safe, as stated in RFC 4253: "Arcfour (and - // RC4) has problems with weak keys, and should be used with caution." - // RFC4345 introduces improved versions of Arcfour. - "arcfour": {16, 0, 0, newRC4}, - - // AES-GCM is not a stream cipher, so it is constructed with a - // special case. If we add any more non-stream ciphers, we - // should invest a cleaner way to do this. - gcmCipherID: {16, 12, 0, nil}, - - // CBC mode is insecure and so is not included in the default config. - // (See http://www.isg.rhul.ac.uk/~kp/SandPfinal.pdf). If absolutely - // needed, it's possible to specify a custom Config to enable it. - // You should expect that an active attacker can recover plaintext if - // you do. - aes128cbcID: {16, aes.BlockSize, 0, nil}, - - // 3des-cbc is insecure and is disabled by default. - tripledescbcID: {24, des.BlockSize, 0, nil}, -} - -// prefixLen is the length of the packet prefix that contains the packet length -// and number of padding bytes. -const prefixLen = 5 - -// streamPacketCipher is a packetCipher using a stream cipher. -type streamPacketCipher struct { - mac hash.Hash - cipher cipher.Stream - - // The following members are to avoid per-packet allocations. - prefix [prefixLen]byte - seqNumBytes [4]byte - padding [2 * packetSizeMultiple]byte - packetData []byte - macResult []byte -} - -// readPacket reads and decrypt a single packet from the reader argument. -func (s *streamPacketCipher) readPacket(seqNum uint32, r io.Reader) ([]byte, error) { - if _, err := io.ReadFull(r, s.prefix[:]); err != nil { - return nil, err - } - - s.cipher.XORKeyStream(s.prefix[:], s.prefix[:]) - length := binary.BigEndian.Uint32(s.prefix[0:4]) - paddingLength := uint32(s.prefix[4]) - - var macSize uint32 - if s.mac != nil { - s.mac.Reset() - binary.BigEndian.PutUint32(s.seqNumBytes[:], seqNum) - s.mac.Write(s.seqNumBytes[:]) - s.mac.Write(s.prefix[:]) - macSize = uint32(s.mac.Size()) - } - - if length <= paddingLength+1 { - return nil, errors.New("ssh: invalid packet length, packet too small") - } - - if length > maxPacket { - return nil, errors.New("ssh: invalid packet length, packet too large") - } - - // the maxPacket check above ensures that length-1+macSize - // does not overflow. - if uint32(cap(s.packetData)) < length-1+macSize { - s.packetData = make([]byte, length-1+macSize) - } else { - s.packetData = s.packetData[:length-1+macSize] - } - - if _, err := io.ReadFull(r, s.packetData); err != nil { - return nil, err - } - mac := s.packetData[length-1:] - data := s.packetData[:length-1] - s.cipher.XORKeyStream(data, data) - - if s.mac != nil { - s.mac.Write(data) - s.macResult = s.mac.Sum(s.macResult[:0]) - if subtle.ConstantTimeCompare(s.macResult, mac) != 1 { - return nil, errors.New("ssh: MAC failure") - } - } - - return s.packetData[:length-paddingLength-1], nil -} - -// writePacket encrypts and sends a packet of data to the writer argument -func (s *streamPacketCipher) writePacket(seqNum uint32, w io.Writer, rand io.Reader, packet []byte) error { - if len(packet) > maxPacket { - return errors.New("ssh: packet too large") - } - - paddingLength := packetSizeMultiple - (prefixLen+len(packet))%packetSizeMultiple - if paddingLength < 4 { - paddingLength += packetSizeMultiple - } - - length := len(packet) + 1 + paddingLength - binary.BigEndian.PutUint32(s.prefix[:], uint32(length)) - s.prefix[4] = byte(paddingLength) - padding := s.padding[:paddingLength] - if _, err := io.ReadFull(rand, padding); err != nil { - return err - } - - if s.mac != nil { - s.mac.Reset() - binary.BigEndian.PutUint32(s.seqNumBytes[:], seqNum) - s.mac.Write(s.seqNumBytes[:]) - s.mac.Write(s.prefix[:]) - s.mac.Write(packet) - s.mac.Write(padding) - } - - s.cipher.XORKeyStream(s.prefix[:], s.prefix[:]) - s.cipher.XORKeyStream(packet, packet) - s.cipher.XORKeyStream(padding, padding) - - if _, err := w.Write(s.prefix[:]); err != nil { - return err - } - if _, err := w.Write(packet); err != nil { - return err - } - if _, err := w.Write(padding); err != nil { - return err - } - - if s.mac != nil { - s.macResult = s.mac.Sum(s.macResult[:0]) - if _, err := w.Write(s.macResult); err != nil { - return err - } - } - - return nil -} - -type gcmCipher struct { - aead cipher.AEAD - prefix [4]byte - iv []byte - buf []byte -} - -func newGCMCipher(iv, key, macKey []byte) (packetCipher, error) { - c, err := aes.NewCipher(key) - if err != nil { - return nil, err - } - - aead, err := cipher.NewGCM(c) - if err != nil { - return nil, err - } - - return &gcmCipher{ - aead: aead, - iv: iv, - }, nil -} - -const gcmTagSize = 16 - -func (c *gcmCipher) writePacket(seqNum uint32, w io.Writer, rand io.Reader, packet []byte) error { - // Pad out to multiple of 16 bytes. This is different from the - // stream cipher because that encrypts the length too. - padding := byte(packetSizeMultiple - (1+len(packet))%packetSizeMultiple) - if padding < 4 { - padding += packetSizeMultiple - } - - length := uint32(len(packet) + int(padding) + 1) - binary.BigEndian.PutUint32(c.prefix[:], length) - if _, err := w.Write(c.prefix[:]); err != nil { - return err - } - - if cap(c.buf) < int(length) { - c.buf = make([]byte, length) - } else { - c.buf = c.buf[:length] - } - - c.buf[0] = padding - copy(c.buf[1:], packet) - if _, err := io.ReadFull(rand, c.buf[1+len(packet):]); err != nil { - return err - } - c.buf = c.aead.Seal(c.buf[:0], c.iv, c.buf, c.prefix[:]) - if _, err := w.Write(c.buf); err != nil { - return err - } - c.incIV() - - return nil -} - -func (c *gcmCipher) incIV() { - for i := 4 + 7; i >= 4; i-- { - c.iv[i]++ - if c.iv[i] != 0 { - break - } - } -} - -func (c *gcmCipher) readPacket(seqNum uint32, r io.Reader) ([]byte, error) { - if _, err := io.ReadFull(r, c.prefix[:]); err != nil { - return nil, err - } - length := binary.BigEndian.Uint32(c.prefix[:]) - if length > maxPacket { - return nil, errors.New("ssh: max packet length exceeded.") - } - - if cap(c.buf) < int(length+gcmTagSize) { - c.buf = make([]byte, length+gcmTagSize) - } else { - c.buf = c.buf[:length+gcmTagSize] - } - - if _, err := io.ReadFull(r, c.buf); err != nil { - return nil, err - } - - plain, err := c.aead.Open(c.buf[:0], c.iv, c.buf, c.prefix[:]) - if err != nil { - return nil, err - } - c.incIV() - - padding := plain[0] - if padding < 4 || padding >= 20 { - return nil, fmt.Errorf("ssh: illegal padding %d", padding) - } - - if int(padding+1) >= len(plain) { - return nil, fmt.Errorf("ssh: padding %d too large", padding) - } - plain = plain[1 : length-uint32(padding)] - return plain, nil -} - -// cbcCipher implements aes128-cbc cipher defined in RFC 4253 section 6.1 -type cbcCipher struct { - mac hash.Hash - macSize uint32 - decrypter cipher.BlockMode - encrypter cipher.BlockMode - - // The following members are to avoid per-packet allocations. - seqNumBytes [4]byte - packetData []byte - macResult []byte - - // Amount of data we should still read to hide which - // verification error triggered. - oracleCamouflage uint32 -} - -func newCBCCipher(c cipher.Block, iv, key, macKey []byte, algs directionAlgorithms) (packetCipher, error) { - cbc := &cbcCipher{ - mac: macModes[algs.MAC].new(macKey), - decrypter: cipher.NewCBCDecrypter(c, iv), - encrypter: cipher.NewCBCEncrypter(c, iv), - packetData: make([]byte, 1024), - } - if cbc.mac != nil { - cbc.macSize = uint32(cbc.mac.Size()) - } - - return cbc, nil -} - -func newAESCBCCipher(iv, key, macKey []byte, algs directionAlgorithms) (packetCipher, error) { - c, err := aes.NewCipher(key) - if err != nil { - return nil, err - } - - cbc, err := newCBCCipher(c, iv, key, macKey, algs) - if err != nil { - return nil, err - } - - return cbc, nil -} - -func newTripleDESCBCCipher(iv, key, macKey []byte, algs directionAlgorithms) (packetCipher, error) { - c, err := des.NewTripleDESCipher(key) - if err != nil { - return nil, err - } - - cbc, err := newCBCCipher(c, iv, key, macKey, algs) - if err != nil { - return nil, err - } - - return cbc, nil -} - -func maxUInt32(a, b int) uint32 { - if a > b { - return uint32(a) - } - return uint32(b) -} - -const ( - cbcMinPacketSizeMultiple = 8 - cbcMinPacketSize = 16 - cbcMinPaddingSize = 4 -) - -// cbcError represents a verification error that may leak information. -type cbcError string - -func (e cbcError) Error() string { return string(e) } - -func (c *cbcCipher) readPacket(seqNum uint32, r io.Reader) ([]byte, error) { - p, err := c.readPacketLeaky(seqNum, r) - if err != nil { - if _, ok := err.(cbcError); ok { - // Verification error: read a fixed amount of - // data, to make distinguishing between - // failing MAC and failing length check more - // difficult. - io.CopyN(ioutil.Discard, r, int64(c.oracleCamouflage)) - } - } - return p, err -} - -func (c *cbcCipher) readPacketLeaky(seqNum uint32, r io.Reader) ([]byte, error) { - blockSize := c.decrypter.BlockSize() - - // Read the header, which will include some of the subsequent data in the - // case of block ciphers - this is copied back to the payload later. - // How many bytes of payload/padding will be read with this first read. - firstBlockLength := uint32((prefixLen + blockSize - 1) / blockSize * blockSize) - firstBlock := c.packetData[:firstBlockLength] - if _, err := io.ReadFull(r, firstBlock); err != nil { - return nil, err - } - - c.oracleCamouflage = maxPacket + 4 + c.macSize - firstBlockLength - - c.decrypter.CryptBlocks(firstBlock, firstBlock) - length := binary.BigEndian.Uint32(firstBlock[:4]) - if length > maxPacket { - return nil, cbcError("ssh: packet too large") - } - if length+4 < maxUInt32(cbcMinPacketSize, blockSize) { - // The minimum size of a packet is 16 (or the cipher block size, whichever - // is larger) bytes. - return nil, cbcError("ssh: packet too small") - } - // The length of the packet (including the length field but not the MAC) must - // be a multiple of the block size or 8, whichever is larger. - if (length+4)%maxUInt32(cbcMinPacketSizeMultiple, blockSize) != 0 { - return nil, cbcError("ssh: invalid packet length multiple") - } - - paddingLength := uint32(firstBlock[4]) - if paddingLength < cbcMinPaddingSize || length <= paddingLength+1 { - return nil, cbcError("ssh: invalid packet length") - } - - // Positions within the c.packetData buffer: - macStart := 4 + length - paddingStart := macStart - paddingLength - - // Entire packet size, starting before length, ending at end of mac. - entirePacketSize := macStart + c.macSize - - // Ensure c.packetData is large enough for the entire packet data. - if uint32(cap(c.packetData)) < entirePacketSize { - // Still need to upsize and copy, but this should be rare at runtime, only - // on upsizing the packetData buffer. - c.packetData = make([]byte, entirePacketSize) - copy(c.packetData, firstBlock) - } else { - c.packetData = c.packetData[:entirePacketSize] - } - - if n, err := io.ReadFull(r, c.packetData[firstBlockLength:]); err != nil { - return nil, err - } else { - c.oracleCamouflage -= uint32(n) - } - - remainingCrypted := c.packetData[firstBlockLength:macStart] - c.decrypter.CryptBlocks(remainingCrypted, remainingCrypted) - - mac := c.packetData[macStart:] - if c.mac != nil { - c.mac.Reset() - binary.BigEndian.PutUint32(c.seqNumBytes[:], seqNum) - c.mac.Write(c.seqNumBytes[:]) - c.mac.Write(c.packetData[:macStart]) - c.macResult = c.mac.Sum(c.macResult[:0]) - if subtle.ConstantTimeCompare(c.macResult, mac) != 1 { - return nil, cbcError("ssh: MAC failure") - } - } - - return c.packetData[prefixLen:paddingStart], nil -} - -func (c *cbcCipher) writePacket(seqNum uint32, w io.Writer, rand io.Reader, packet []byte) error { - effectiveBlockSize := maxUInt32(cbcMinPacketSizeMultiple, c.encrypter.BlockSize()) - - // Length of encrypted portion of the packet (header, payload, padding). - // Enforce minimum padding and packet size. - encLength := maxUInt32(prefixLen+len(packet)+cbcMinPaddingSize, cbcMinPaddingSize) - // Enforce block size. - encLength = (encLength + effectiveBlockSize - 1) / effectiveBlockSize * effectiveBlockSize - - length := encLength - 4 - paddingLength := int(length) - (1 + len(packet)) - - // Overall buffer contains: header, payload, padding, mac. - // Space for the MAC is reserved in the capacity but not the slice length. - bufferSize := encLength + c.macSize - if uint32(cap(c.packetData)) < bufferSize { - c.packetData = make([]byte, encLength, bufferSize) - } else { - c.packetData = c.packetData[:encLength] - } - - p := c.packetData - - // Packet header. - binary.BigEndian.PutUint32(p, length) - p = p[4:] - p[0] = byte(paddingLength) - - // Payload. - p = p[1:] - copy(p, packet) - - // Padding. - p = p[len(packet):] - if _, err := io.ReadFull(rand, p); err != nil { - return err - } - - if c.mac != nil { - c.mac.Reset() - binary.BigEndian.PutUint32(c.seqNumBytes[:], seqNum) - c.mac.Write(c.seqNumBytes[:]) - c.mac.Write(c.packetData) - // The MAC is now appended into the capacity reserved for it earlier. - c.packetData = c.mac.Sum(c.packetData) - } - - c.encrypter.CryptBlocks(c.packetData[:encLength], c.packetData[:encLength]) - - if _, err := w.Write(c.packetData); err != nil { - return err - } - - return nil -} diff --git a/vendor/golang.org/x/crypto/ssh/client.go b/vendor/golang.org/x/crypto/ssh/client.go deleted file mode 100644 index 0212a20..0000000 --- a/vendor/golang.org/x/crypto/ssh/client.go +++ /dev/null @@ -1,213 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "errors" - "fmt" - "net" - "sync" - "time" -) - -// Client implements a traditional SSH client that supports shells, -// subprocesses, port forwarding and tunneled dialing. -type Client struct { - Conn - - forwards forwardList // forwarded tcpip connections from the remote side - mu sync.Mutex - channelHandlers map[string]chan NewChannel -} - -// HandleChannelOpen returns a channel on which NewChannel requests -// for the given type are sent. If the type already is being handled, -// nil is returned. The channel is closed when the connection is closed. -func (c *Client) HandleChannelOpen(channelType string) <-chan NewChannel { - c.mu.Lock() - defer c.mu.Unlock() - if c.channelHandlers == nil { - // The SSH channel has been closed. - c := make(chan NewChannel) - close(c) - return c - } - - ch := c.channelHandlers[channelType] - if ch != nil { - return nil - } - - ch = make(chan NewChannel, 16) - c.channelHandlers[channelType] = ch - return ch -} - -// NewClient creates a Client on top of the given connection. -func NewClient(c Conn, chans <-chan NewChannel, reqs <-chan *Request) *Client { - conn := &Client{ - Conn: c, - channelHandlers: make(map[string]chan NewChannel, 1), - } - - go conn.handleGlobalRequests(reqs) - go conn.handleChannelOpens(chans) - go func() { - conn.Wait() - conn.forwards.closeAll() - }() - go conn.forwards.handleChannels(conn.HandleChannelOpen("forwarded-tcpip")) - return conn -} - -// NewClientConn establishes an authenticated SSH connection using c -// as the underlying transport. The Request and NewChannel channels -// must be serviced or the connection will hang. -func NewClientConn(c net.Conn, addr string, config *ClientConfig) (Conn, <-chan NewChannel, <-chan *Request, error) { - fullConf := *config - fullConf.SetDefaults() - conn := &connection{ - sshConn: sshConn{conn: c}, - } - - if err := conn.clientHandshake(addr, &fullConf); err != nil { - c.Close() - return nil, nil, nil, fmt.Errorf("ssh: handshake failed: %v", err) - } - conn.mux = newMux(conn.transport) - return conn, conn.mux.incomingChannels, conn.mux.incomingRequests, nil -} - -// clientHandshake performs the client side key exchange. See RFC 4253 Section -// 7. -func (c *connection) clientHandshake(dialAddress string, config *ClientConfig) error { - if config.ClientVersion != "" { - c.clientVersion = []byte(config.ClientVersion) - } else { - c.clientVersion = []byte(packageVersion) - } - var err error - c.serverVersion, err = exchangeVersions(c.sshConn.conn, c.clientVersion) - if err != nil { - return err - } - - c.transport = newClientTransport( - newTransport(c.sshConn.conn, config.Rand, true /* is client */), - c.clientVersion, c.serverVersion, config, dialAddress, c.sshConn.RemoteAddr()) - if err := c.transport.requestInitialKeyChange(); err != nil { - return err - } - - // We just did the key change, so the session ID is established. - c.sessionID = c.transport.getSessionID() - - return c.clientAuthenticate(config) -} - -// verifyHostKeySignature verifies the host key obtained in the key -// exchange. -func verifyHostKeySignature(hostKey PublicKey, result *kexResult) error { - sig, rest, ok := parseSignatureBody(result.Signature) - if len(rest) > 0 || !ok { - return errors.New("ssh: signature parse error") - } - - return hostKey.Verify(result.H, sig) -} - -// NewSession opens a new Session for this client. (A session is a remote -// execution of a program.) -func (c *Client) NewSession() (*Session, error) { - ch, in, err := c.OpenChannel("session", nil) - if err != nil { - return nil, err - } - return newSession(ch, in) -} - -func (c *Client) handleGlobalRequests(incoming <-chan *Request) { - for r := range incoming { - // This handles keepalive messages and matches - // the behaviour of OpenSSH. - r.Reply(false, nil) - } -} - -// handleChannelOpens channel open messages from the remote side. -func (c *Client) handleChannelOpens(in <-chan NewChannel) { - for ch := range in { - c.mu.Lock() - handler := c.channelHandlers[ch.ChannelType()] - c.mu.Unlock() - - if handler != nil { - handler <- ch - } else { - ch.Reject(UnknownChannelType, fmt.Sprintf("unknown channel type: %v", ch.ChannelType())) - } - } - - c.mu.Lock() - for _, ch := range c.channelHandlers { - close(ch) - } - c.channelHandlers = nil - c.mu.Unlock() -} - -// Dial starts a client connection to the given SSH server. It is a -// convenience function that connects to the given network address, -// initiates the SSH handshake, and then sets up a Client. For access -// to incoming channels and requests, use net.Dial with NewClientConn -// instead. -func Dial(network, addr string, config *ClientConfig) (*Client, error) { - conn, err := net.DialTimeout(network, addr, config.Timeout) - if err != nil { - return nil, err - } - c, chans, reqs, err := NewClientConn(conn, addr, config) - if err != nil { - return nil, err - } - return NewClient(c, chans, reqs), nil -} - -// A ClientConfig structure is used to configure a Client. It must not be -// modified after having been passed to an SSH function. -type ClientConfig struct { - // Config contains configuration that is shared between clients and - // servers. - Config - - // User contains the username to authenticate as. - User string - - // Auth contains possible authentication methods to use with the - // server. Only the first instance of a particular RFC 4252 method will - // be used during authentication. - Auth []AuthMethod - - // HostKeyCallback, if not nil, is called during the cryptographic - // handshake to validate the server's host key. A nil HostKeyCallback - // implies that all host keys are accepted. - HostKeyCallback func(hostname string, remote net.Addr, key PublicKey) error - - // ClientVersion contains the version identification string that will - // be used for the connection. If empty, a reasonable default is used. - ClientVersion string - - // HostKeyAlgorithms lists the key types that the client will - // accept from the server as host key, in order of - // preference. If empty, a reasonable default is used. Any - // string returned from PublicKey.Type method may be used, or - // any of the CertAlgoXxxx and KeyAlgoXxxx constants. - HostKeyAlgorithms []string - - // Timeout is the maximum amount of time for the TCP connection to establish. - // - // A Timeout of zero means no timeout. - Timeout time.Duration -} diff --git a/vendor/golang.org/x/crypto/ssh/client_auth.go b/vendor/golang.org/x/crypto/ssh/client_auth.go deleted file mode 100644 index 294af0d..0000000 --- a/vendor/golang.org/x/crypto/ssh/client_auth.go +++ /dev/null @@ -1,473 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "bytes" - "errors" - "fmt" - "io" -) - -// clientAuthenticate authenticates with the remote server. See RFC 4252. -func (c *connection) clientAuthenticate(config *ClientConfig) error { - // initiate user auth session - if err := c.transport.writePacket(Marshal(&serviceRequestMsg{serviceUserAuth})); err != nil { - return err - } - packet, err := c.transport.readPacket() - if err != nil { - return err - } - var serviceAccept serviceAcceptMsg - if err := Unmarshal(packet, &serviceAccept); err != nil { - return err - } - - // during the authentication phase the client first attempts the "none" method - // then any untried methods suggested by the server. - tried := make(map[string]bool) - var lastMethods []string - for auth := AuthMethod(new(noneAuth)); auth != nil; { - ok, methods, err := auth.auth(c.transport.getSessionID(), config.User, c.transport, config.Rand) - if err != nil { - return err - } - if ok { - // success - return nil - } - tried[auth.method()] = true - if methods == nil { - methods = lastMethods - } - lastMethods = methods - - auth = nil - - findNext: - for _, a := range config.Auth { - candidateMethod := a.method() - if tried[candidateMethod] { - continue - } - for _, meth := range methods { - if meth == candidateMethod { - auth = a - break findNext - } - } - } - } - return fmt.Errorf("ssh: unable to authenticate, attempted methods %v, no supported methods remain", keys(tried)) -} - -func keys(m map[string]bool) []string { - s := make([]string, 0, len(m)) - - for key := range m { - s = append(s, key) - } - return s -} - -// An AuthMethod represents an instance of an RFC 4252 authentication method. -type AuthMethod interface { - // auth authenticates user over transport t. - // Returns true if authentication is successful. - // If authentication is not successful, a []string of alternative - // method names is returned. If the slice is nil, it will be ignored - // and the previous set of possible methods will be reused. - auth(session []byte, user string, p packetConn, rand io.Reader) (bool, []string, error) - - // method returns the RFC 4252 method name. - method() string -} - -// "none" authentication, RFC 4252 section 5.2. -type noneAuth int - -func (n *noneAuth) auth(session []byte, user string, c packetConn, rand io.Reader) (bool, []string, error) { - if err := c.writePacket(Marshal(&userAuthRequestMsg{ - User: user, - Service: serviceSSH, - Method: "none", - })); err != nil { - return false, nil, err - } - - return handleAuthResponse(c) -} - -func (n *noneAuth) method() string { - return "none" -} - -// passwordCallback is an AuthMethod that fetches the password through -// a function call, e.g. by prompting the user. -type passwordCallback func() (password string, err error) - -func (cb passwordCallback) auth(session []byte, user string, c packetConn, rand io.Reader) (bool, []string, error) { - type passwordAuthMsg struct { - User string `sshtype:"50"` - Service string - Method string - Reply bool - Password string - } - - pw, err := cb() - // REVIEW NOTE: is there a need to support skipping a password attempt? - // The program may only find out that the user doesn't have a password - // when prompting. - if err != nil { - return false, nil, err - } - - if err := c.writePacket(Marshal(&passwordAuthMsg{ - User: user, - Service: serviceSSH, - Method: cb.method(), - Reply: false, - Password: pw, - })); err != nil { - return false, nil, err - } - - return handleAuthResponse(c) -} - -func (cb passwordCallback) method() string { - return "password" -} - -// Password returns an AuthMethod using the given password. -func Password(secret string) AuthMethod { - return passwordCallback(func() (string, error) { return secret, nil }) -} - -// PasswordCallback returns an AuthMethod that uses a callback for -// fetching a password. -func PasswordCallback(prompt func() (secret string, err error)) AuthMethod { - return passwordCallback(prompt) -} - -type publickeyAuthMsg struct { - User string `sshtype:"50"` - Service string - Method string - // HasSig indicates to the receiver packet that the auth request is signed and - // should be used for authentication of the request. - HasSig bool - Algoname string - PubKey []byte - // Sig is tagged with "rest" so Marshal will exclude it during - // validateKey - Sig []byte `ssh:"rest"` -} - -// publicKeyCallback is an AuthMethod that uses a set of key -// pairs for authentication. -type publicKeyCallback func() ([]Signer, error) - -func (cb publicKeyCallback) method() string { - return "publickey" -} - -func (cb publicKeyCallback) auth(session []byte, user string, c packetConn, rand io.Reader) (bool, []string, error) { - // Authentication is performed in two stages. The first stage sends an - // enquiry to test if each key is acceptable to the remote. The second - // stage attempts to authenticate with the valid keys obtained in the - // first stage. - - signers, err := cb() - if err != nil { - return false, nil, err - } - var validKeys []Signer - for _, signer := range signers { - if ok, err := validateKey(signer.PublicKey(), user, c); ok { - validKeys = append(validKeys, signer) - } else { - if err != nil { - return false, nil, err - } - } - } - - // methods that may continue if this auth is not successful. - var methods []string - for _, signer := range validKeys { - pub := signer.PublicKey() - - pubKey := pub.Marshal() - sign, err := signer.Sign(rand, buildDataSignedForAuth(session, userAuthRequestMsg{ - User: user, - Service: serviceSSH, - Method: cb.method(), - }, []byte(pub.Type()), pubKey)) - if err != nil { - return false, nil, err - } - - // manually wrap the serialized signature in a string - s := Marshal(sign) - sig := make([]byte, stringLength(len(s))) - marshalString(sig, s) - msg := publickeyAuthMsg{ - User: user, - Service: serviceSSH, - Method: cb.method(), - HasSig: true, - Algoname: pub.Type(), - PubKey: pubKey, - Sig: sig, - } - p := Marshal(&msg) - if err := c.writePacket(p); err != nil { - return false, nil, err - } - var success bool - success, methods, err = handleAuthResponse(c) - if err != nil { - return false, nil, err - } - if success { - return success, methods, err - } - } - return false, methods, nil -} - -// validateKey validates the key provided is acceptable to the server. -func validateKey(key PublicKey, user string, c packetConn) (bool, error) { - pubKey := key.Marshal() - msg := publickeyAuthMsg{ - User: user, - Service: serviceSSH, - Method: "publickey", - HasSig: false, - Algoname: key.Type(), - PubKey: pubKey, - } - if err := c.writePacket(Marshal(&msg)); err != nil { - return false, err - } - - return confirmKeyAck(key, c) -} - -func confirmKeyAck(key PublicKey, c packetConn) (bool, error) { - pubKey := key.Marshal() - algoname := key.Type() - - for { - packet, err := c.readPacket() - if err != nil { - return false, err - } - switch packet[0] { - case msgUserAuthBanner: - // TODO(gpaul): add callback to present the banner to the user - case msgUserAuthPubKeyOk: - var msg userAuthPubKeyOkMsg - if err := Unmarshal(packet, &msg); err != nil { - return false, err - } - if msg.Algo != algoname || !bytes.Equal(msg.PubKey, pubKey) { - return false, nil - } - return true, nil - case msgUserAuthFailure: - return false, nil - default: - return false, unexpectedMessageError(msgUserAuthSuccess, packet[0]) - } - } -} - -// PublicKeys returns an AuthMethod that uses the given key -// pairs. -func PublicKeys(signers ...Signer) AuthMethod { - return publicKeyCallback(func() ([]Signer, error) { return signers, nil }) -} - -// PublicKeysCallback returns an AuthMethod that runs the given -// function to obtain a list of key pairs. -func PublicKeysCallback(getSigners func() (signers []Signer, err error)) AuthMethod { - return publicKeyCallback(getSigners) -} - -// handleAuthResponse returns whether the preceding authentication request succeeded -// along with a list of remaining authentication methods to try next and -// an error if an unexpected response was received. -func handleAuthResponse(c packetConn) (bool, []string, error) { - for { - packet, err := c.readPacket() - if err != nil { - return false, nil, err - } - - switch packet[0] { - case msgUserAuthBanner: - // TODO: add callback to present the banner to the user - case msgUserAuthFailure: - var msg userAuthFailureMsg - if err := Unmarshal(packet, &msg); err != nil { - return false, nil, err - } - return false, msg.Methods, nil - case msgUserAuthSuccess: - return true, nil, nil - default: - return false, nil, unexpectedMessageError(msgUserAuthSuccess, packet[0]) - } - } -} - -// KeyboardInteractiveChallenge should print questions, optionally -// disabling echoing (e.g. for passwords), and return all the answers. -// Challenge may be called multiple times in a single session. After -// successful authentication, the server may send a challenge with no -// questions, for which the user and instruction messages should be -// printed. RFC 4256 section 3.3 details how the UI should behave for -// both CLI and GUI environments. -type KeyboardInteractiveChallenge func(user, instruction string, questions []string, echos []bool) (answers []string, err error) - -// KeyboardInteractive returns a AuthMethod using a prompt/response -// sequence controlled by the server. -func KeyboardInteractive(challenge KeyboardInteractiveChallenge) AuthMethod { - return challenge -} - -func (cb KeyboardInteractiveChallenge) method() string { - return "keyboard-interactive" -} - -func (cb KeyboardInteractiveChallenge) auth(session []byte, user string, c packetConn, rand io.Reader) (bool, []string, error) { - type initiateMsg struct { - User string `sshtype:"50"` - Service string - Method string - Language string - Submethods string - } - - if err := c.writePacket(Marshal(&initiateMsg{ - User: user, - Service: serviceSSH, - Method: "keyboard-interactive", - })); err != nil { - return false, nil, err - } - - for { - packet, err := c.readPacket() - if err != nil { - return false, nil, err - } - - // like handleAuthResponse, but with less options. - switch packet[0] { - case msgUserAuthBanner: - // TODO: Print banners during userauth. - continue - case msgUserAuthInfoRequest: - // OK - case msgUserAuthFailure: - var msg userAuthFailureMsg - if err := Unmarshal(packet, &msg); err != nil { - return false, nil, err - } - return false, msg.Methods, nil - case msgUserAuthSuccess: - return true, nil, nil - default: - return false, nil, unexpectedMessageError(msgUserAuthInfoRequest, packet[0]) - } - - var msg userAuthInfoRequestMsg - if err := Unmarshal(packet, &msg); err != nil { - return false, nil, err - } - - // Manually unpack the prompt/echo pairs. - rest := msg.Prompts - var prompts []string - var echos []bool - for i := 0; i < int(msg.NumPrompts); i++ { - prompt, r, ok := parseString(rest) - if !ok || len(r) == 0 { - return false, nil, errors.New("ssh: prompt format error") - } - prompts = append(prompts, string(prompt)) - echos = append(echos, r[0] != 0) - rest = r[1:] - } - - if len(rest) != 0 { - return false, nil, errors.New("ssh: extra data following keyboard-interactive pairs") - } - - answers, err := cb(msg.User, msg.Instruction, prompts, echos) - if err != nil { - return false, nil, err - } - - if len(answers) != len(prompts) { - return false, nil, errors.New("ssh: not enough answers from keyboard-interactive callback") - } - responseLength := 1 + 4 - for _, a := range answers { - responseLength += stringLength(len(a)) - } - serialized := make([]byte, responseLength) - p := serialized - p[0] = msgUserAuthInfoResponse - p = p[1:] - p = marshalUint32(p, uint32(len(answers))) - for _, a := range answers { - p = marshalString(p, []byte(a)) - } - - if err := c.writePacket(serialized); err != nil { - return false, nil, err - } - } -} - -type retryableAuthMethod struct { - authMethod AuthMethod - maxTries int -} - -func (r *retryableAuthMethod) auth(session []byte, user string, c packetConn, rand io.Reader) (ok bool, methods []string, err error) { - for i := 0; r.maxTries <= 0 || i < r.maxTries; i++ { - ok, methods, err = r.authMethod.auth(session, user, c, rand) - if ok || err != nil { // either success or error terminate - return ok, methods, err - } - } - return ok, methods, err -} - -func (r *retryableAuthMethod) method() string { - return r.authMethod.method() -} - -// RetryableAuthMethod is a decorator for other auth methods enabling them to -// be retried up to maxTries before considering that AuthMethod itself failed. -// If maxTries is <= 0, will retry indefinitely -// -// This is useful for interactive clients using challenge/response type -// authentication (e.g. Keyboard-Interactive, Password, etc) where the user -// could mistype their response resulting in the server issuing a -// SSH_MSG_USERAUTH_FAILURE (rfc4252 #8 [password] and rfc4256 #3.4 -// [keyboard-interactive]); Without this decorator, the non-retryable -// AuthMethod would be removed from future consideration, and never tried again -// (and so the user would never be able to retry their entry). -func RetryableAuthMethod(auth AuthMethod, maxTries int) AuthMethod { - return &retryableAuthMethod{authMethod: auth, maxTries: maxTries} -} diff --git a/vendor/golang.org/x/crypto/ssh/common.go b/vendor/golang.org/x/crypto/ssh/common.go deleted file mode 100644 index 2c72ab5..0000000 --- a/vendor/golang.org/x/crypto/ssh/common.go +++ /dev/null @@ -1,356 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "crypto" - "crypto/rand" - "fmt" - "io" - "sync" - - _ "crypto/sha1" - _ "crypto/sha256" - _ "crypto/sha512" -) - -// These are string constants in the SSH protocol. -const ( - compressionNone = "none" - serviceUserAuth = "ssh-userauth" - serviceSSH = "ssh-connection" -) - -// supportedCiphers specifies the supported ciphers in preference order. -var supportedCiphers = []string{ - "aes128-ctr", "aes192-ctr", "aes256-ctr", - "aes128-gcm@openssh.com", - "arcfour256", "arcfour128", -} - -// supportedKexAlgos specifies the supported key-exchange algorithms in -// preference order. -var supportedKexAlgos = []string{ - kexAlgoCurve25519SHA256, - // P384 and P521 are not constant-time yet, but since we don't - // reuse ephemeral keys, using them for ECDH should be OK. - kexAlgoECDH256, kexAlgoECDH384, kexAlgoECDH521, - kexAlgoDH14SHA1, kexAlgoDH1SHA1, -} - -// supportedKexAlgos specifies the supported host-key algorithms (i.e. methods -// of authenticating servers) in preference order. -var supportedHostKeyAlgos = []string{ - CertAlgoRSAv01, CertAlgoDSAv01, CertAlgoECDSA256v01, - CertAlgoECDSA384v01, CertAlgoECDSA521v01, CertAlgoED25519v01, - - KeyAlgoECDSA256, KeyAlgoECDSA384, KeyAlgoECDSA521, - KeyAlgoRSA, KeyAlgoDSA, - - KeyAlgoED25519, -} - -// supportedMACs specifies a default set of MAC algorithms in preference order. -// This is based on RFC 4253, section 6.4, but with hmac-md5 variants removed -// because they have reached the end of their useful life. -var supportedMACs = []string{ - "hmac-sha2-256", "hmac-sha1", "hmac-sha1-96", -} - -var supportedCompressions = []string{compressionNone} - -// hashFuncs keeps the mapping of supported algorithms to their respective -// hashes needed for signature verification. -var hashFuncs = map[string]crypto.Hash{ - KeyAlgoRSA: crypto.SHA1, - KeyAlgoDSA: crypto.SHA1, - KeyAlgoECDSA256: crypto.SHA256, - KeyAlgoECDSA384: crypto.SHA384, - KeyAlgoECDSA521: crypto.SHA512, - CertAlgoRSAv01: crypto.SHA1, - CertAlgoDSAv01: crypto.SHA1, - CertAlgoECDSA256v01: crypto.SHA256, - CertAlgoECDSA384v01: crypto.SHA384, - CertAlgoECDSA521v01: crypto.SHA512, -} - -// unexpectedMessageError results when the SSH message that we received didn't -// match what we wanted. -func unexpectedMessageError(expected, got uint8) error { - return fmt.Errorf("ssh: unexpected message type %d (expected %d)", got, expected) -} - -// parseError results from a malformed SSH message. -func parseError(tag uint8) error { - return fmt.Errorf("ssh: parse error in message type %d", tag) -} - -func findCommon(what string, client []string, server []string) (common string, err error) { - for _, c := range client { - for _, s := range server { - if c == s { - return c, nil - } - } - } - return "", fmt.Errorf("ssh: no common algorithm for %s; client offered: %v, server offered: %v", what, client, server) -} - -type directionAlgorithms struct { - Cipher string - MAC string - Compression string -} - -type algorithms struct { - kex string - hostKey string - w directionAlgorithms - r directionAlgorithms -} - -func findAgreedAlgorithms(clientKexInit, serverKexInit *kexInitMsg) (algs *algorithms, err error) { - result := &algorithms{} - - result.kex, err = findCommon("key exchange", clientKexInit.KexAlgos, serverKexInit.KexAlgos) - if err != nil { - return - } - - result.hostKey, err = findCommon("host key", clientKexInit.ServerHostKeyAlgos, serverKexInit.ServerHostKeyAlgos) - if err != nil { - return - } - - result.w.Cipher, err = findCommon("client to server cipher", clientKexInit.CiphersClientServer, serverKexInit.CiphersClientServer) - if err != nil { - return - } - - result.r.Cipher, err = findCommon("server to client cipher", clientKexInit.CiphersServerClient, serverKexInit.CiphersServerClient) - if err != nil { - return - } - - result.w.MAC, err = findCommon("client to server MAC", clientKexInit.MACsClientServer, serverKexInit.MACsClientServer) - if err != nil { - return - } - - result.r.MAC, err = findCommon("server to client MAC", clientKexInit.MACsServerClient, serverKexInit.MACsServerClient) - if err != nil { - return - } - - result.w.Compression, err = findCommon("client to server compression", clientKexInit.CompressionClientServer, serverKexInit.CompressionClientServer) - if err != nil { - return - } - - result.r.Compression, err = findCommon("server to client compression", clientKexInit.CompressionServerClient, serverKexInit.CompressionServerClient) - if err != nil { - return - } - - return result, nil -} - -// If rekeythreshold is too small, we can't make any progress sending -// stuff. -const minRekeyThreshold uint64 = 256 - -// Config contains configuration data common to both ServerConfig and -// ClientConfig. -type Config struct { - // Rand provides the source of entropy for cryptographic - // primitives. If Rand is nil, the cryptographic random reader - // in package crypto/rand will be used. - Rand io.Reader - - // The maximum number of bytes sent or received after which a - // new key is negotiated. It must be at least 256. If - // unspecified, 1 gigabyte is used. - RekeyThreshold uint64 - - // The allowed key exchanges algorithms. If unspecified then a - // default set of algorithms is used. - KeyExchanges []string - - // The allowed cipher algorithms. If unspecified then a sensible - // default is used. - Ciphers []string - - // The allowed MAC algorithms. If unspecified then a sensible default - // is used. - MACs []string -} - -// SetDefaults sets sensible values for unset fields in config. This is -// exported for testing: Configs passed to SSH functions are copied and have -// default values set automatically. -func (c *Config) SetDefaults() { - if c.Rand == nil { - c.Rand = rand.Reader - } - if c.Ciphers == nil { - c.Ciphers = supportedCiphers - } - var ciphers []string - for _, c := range c.Ciphers { - if cipherModes[c] != nil { - // reject the cipher if we have no cipherModes definition - ciphers = append(ciphers, c) - } - } - c.Ciphers = ciphers - - if c.KeyExchanges == nil { - c.KeyExchanges = supportedKexAlgos - } - - if c.MACs == nil { - c.MACs = supportedMACs - } - - if c.RekeyThreshold == 0 { - // RFC 4253, section 9 suggests rekeying after 1G. - c.RekeyThreshold = 1 << 30 - } - if c.RekeyThreshold < minRekeyThreshold { - c.RekeyThreshold = minRekeyThreshold - } -} - -// buildDataSignedForAuth returns the data that is signed in order to prove -// possession of a private key. See RFC 4252, section 7. -func buildDataSignedForAuth(sessionId []byte, req userAuthRequestMsg, algo, pubKey []byte) []byte { - data := struct { - Session []byte - Type byte - User string - Service string - Method string - Sign bool - Algo []byte - PubKey []byte - }{ - sessionId, - msgUserAuthRequest, - req.User, - req.Service, - req.Method, - true, - algo, - pubKey, - } - return Marshal(data) -} - -func appendU16(buf []byte, n uint16) []byte { - return append(buf, byte(n>>8), byte(n)) -} - -func appendU32(buf []byte, n uint32) []byte { - return append(buf, byte(n>>24), byte(n>>16), byte(n>>8), byte(n)) -} - -func appendU64(buf []byte, n uint64) []byte { - return append(buf, - byte(n>>56), byte(n>>48), byte(n>>40), byte(n>>32), - byte(n>>24), byte(n>>16), byte(n>>8), byte(n)) -} - -func appendInt(buf []byte, n int) []byte { - return appendU32(buf, uint32(n)) -} - -func appendString(buf []byte, s string) []byte { - buf = appendU32(buf, uint32(len(s))) - buf = append(buf, s...) - return buf -} - -func appendBool(buf []byte, b bool) []byte { - if b { - return append(buf, 1) - } - return append(buf, 0) -} - -// newCond is a helper to hide the fact that there is no usable zero -// value for sync.Cond. -func newCond() *sync.Cond { return sync.NewCond(new(sync.Mutex)) } - -// window represents the buffer available to clients -// wishing to write to a channel. -type window struct { - *sync.Cond - win uint32 // RFC 4254 5.2 says the window size can grow to 2^32-1 - writeWaiters int - closed bool -} - -// add adds win to the amount of window available -// for consumers. -func (w *window) add(win uint32) bool { - // a zero sized window adjust is a noop. - if win == 0 { - return true - } - w.L.Lock() - if w.win+win < win { - w.L.Unlock() - return false - } - w.win += win - // It is unusual that multiple goroutines would be attempting to reserve - // window space, but not guaranteed. Use broadcast to notify all waiters - // that additional window is available. - w.Broadcast() - w.L.Unlock() - return true -} - -// close sets the window to closed, so all reservations fail -// immediately. -func (w *window) close() { - w.L.Lock() - w.closed = true - w.Broadcast() - w.L.Unlock() -} - -// reserve reserves win from the available window capacity. -// If no capacity remains, reserve will block. reserve may -// return less than requested. -func (w *window) reserve(win uint32) (uint32, error) { - var err error - w.L.Lock() - w.writeWaiters++ - w.Broadcast() - for w.win == 0 && !w.closed { - w.Wait() - } - w.writeWaiters-- - if w.win < win { - win = w.win - } - w.win -= win - if w.closed { - err = io.EOF - } - w.L.Unlock() - return win, err -} - -// waitWriterBlocked waits until some goroutine is blocked for further -// writes. It is used in tests only. -func (w *window) waitWriterBlocked() { - w.Cond.L.Lock() - for w.writeWaiters == 0 { - w.Cond.Wait() - } - w.Cond.L.Unlock() -} diff --git a/vendor/golang.org/x/crypto/ssh/connection.go b/vendor/golang.org/x/crypto/ssh/connection.go deleted file mode 100644 index e786f2f..0000000 --- a/vendor/golang.org/x/crypto/ssh/connection.go +++ /dev/null @@ -1,143 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "fmt" - "net" -) - -// OpenChannelError is returned if the other side rejects an -// OpenChannel request. -type OpenChannelError struct { - Reason RejectionReason - Message string -} - -func (e *OpenChannelError) Error() string { - return fmt.Sprintf("ssh: rejected: %s (%s)", e.Reason, e.Message) -} - -// ConnMetadata holds metadata for the connection. -type ConnMetadata interface { - // User returns the user ID for this connection. - User() string - - // SessionID returns the sesson hash, also denoted by H. - SessionID() []byte - - // ClientVersion returns the client's version string as hashed - // into the session ID. - ClientVersion() []byte - - // ServerVersion returns the server's version string as hashed - // into the session ID. - ServerVersion() []byte - - // RemoteAddr returns the remote address for this connection. - RemoteAddr() net.Addr - - // LocalAddr returns the local address for this connection. - LocalAddr() net.Addr -} - -// Conn represents an SSH connection for both server and client roles. -// Conn is the basis for implementing an application layer, such -// as ClientConn, which implements the traditional shell access for -// clients. -type Conn interface { - ConnMetadata - - // SendRequest sends a global request, and returns the - // reply. If wantReply is true, it returns the response status - // and payload. See also RFC4254, section 4. - SendRequest(name string, wantReply bool, payload []byte) (bool, []byte, error) - - // OpenChannel tries to open an channel. If the request is - // rejected, it returns *OpenChannelError. On success it returns - // the SSH Channel and a Go channel for incoming, out-of-band - // requests. The Go channel must be serviced, or the - // connection will hang. - OpenChannel(name string, data []byte) (Channel, <-chan *Request, error) - - // Close closes the underlying network connection - Close() error - - // Wait blocks until the connection has shut down, and returns the - // error causing the shutdown. - Wait() error - - // TODO(hanwen): consider exposing: - // RequestKeyChange - // Disconnect -} - -// DiscardRequests consumes and rejects all requests from the -// passed-in channel. -func DiscardRequests(in <-chan *Request) { - for req := range in { - if req.WantReply { - req.Reply(false, nil) - } - } -} - -// A connection represents an incoming connection. -type connection struct { - transport *handshakeTransport - sshConn - - // The connection protocol. - *mux -} - -func (c *connection) Close() error { - return c.sshConn.conn.Close() -} - -// sshconn provides net.Conn metadata, but disallows direct reads and -// writes. -type sshConn struct { - conn net.Conn - - user string - sessionID []byte - clientVersion []byte - serverVersion []byte -} - -func dup(src []byte) []byte { - dst := make([]byte, len(src)) - copy(dst, src) - return dst -} - -func (c *sshConn) User() string { - return c.user -} - -func (c *sshConn) RemoteAddr() net.Addr { - return c.conn.RemoteAddr() -} - -func (c *sshConn) Close() error { - return c.conn.Close() -} - -func (c *sshConn) LocalAddr() net.Addr { - return c.conn.LocalAddr() -} - -func (c *sshConn) SessionID() []byte { - return dup(c.sessionID) -} - -func (c *sshConn) ClientVersion() []byte { - return dup(c.clientVersion) -} - -func (c *sshConn) ServerVersion() []byte { - return dup(c.serverVersion) -} diff --git a/vendor/golang.org/x/crypto/ssh/doc.go b/vendor/golang.org/x/crypto/ssh/doc.go deleted file mode 100644 index d6be894..0000000 --- a/vendor/golang.org/x/crypto/ssh/doc.go +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -/* -Package ssh implements an SSH client and server. - -SSH is a transport security protocol, an authentication protocol and a -family of application protocols. The most typical application level -protocol is a remote shell and this is specifically implemented. However, -the multiplexed nature of SSH is exposed to users that wish to support -others. - -References: - [PROTOCOL.certkeys]: http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/PROTOCOL.certkeys?rev=HEAD - [SSH-PARAMETERS]: http://www.iana.org/assignments/ssh-parameters/ssh-parameters.xml#ssh-parameters-1 -*/ -package ssh // import "golang.org/x/crypto/ssh" diff --git a/vendor/golang.org/x/crypto/ssh/handshake.go b/vendor/golang.org/x/crypto/ssh/handshake.go deleted file mode 100644 index 37d42e4..0000000 --- a/vendor/golang.org/x/crypto/ssh/handshake.go +++ /dev/null @@ -1,460 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "crypto/rand" - "errors" - "fmt" - "io" - "log" - "net" - "sync" -) - -// debugHandshake, if set, prints messages sent and received. Key -// exchange messages are printed as if DH were used, so the debug -// messages are wrong when using ECDH. -const debugHandshake = false - -// keyingTransport is a packet based transport that supports key -// changes. It need not be thread-safe. It should pass through -// msgNewKeys in both directions. -type keyingTransport interface { - packetConn - - // prepareKeyChange sets up a key change. The key change for a - // direction will be effected if a msgNewKeys message is sent - // or received. - prepareKeyChange(*algorithms, *kexResult) error -} - -// handshakeTransport implements rekeying on top of a keyingTransport -// and offers a thread-safe writePacket() interface. -type handshakeTransport struct { - conn keyingTransport - config *Config - - serverVersion []byte - clientVersion []byte - - // hostKeys is non-empty if we are the server. In that case, - // it contains all host keys that can be used to sign the - // connection. - hostKeys []Signer - - // hostKeyAlgorithms is non-empty if we are the client. In that case, - // we accept these key types from the server as host key. - hostKeyAlgorithms []string - - // On read error, incoming is closed, and readError is set. - incoming chan []byte - readError error - - // data for host key checking - hostKeyCallback func(hostname string, remote net.Addr, key PublicKey) error - dialAddress string - remoteAddr net.Addr - - readSinceKex uint64 - - // Protects the writing side of the connection - mu sync.Mutex - cond *sync.Cond - sentInitPacket []byte - sentInitMsg *kexInitMsg - writtenSinceKex uint64 - writeError error - - // The session ID or nil if first kex did not complete yet. - sessionID []byte -} - -func newHandshakeTransport(conn keyingTransport, config *Config, clientVersion, serverVersion []byte) *handshakeTransport { - t := &handshakeTransport{ - conn: conn, - serverVersion: serverVersion, - clientVersion: clientVersion, - incoming: make(chan []byte, 16), - config: config, - } - t.cond = sync.NewCond(&t.mu) - return t -} - -func newClientTransport(conn keyingTransport, clientVersion, serverVersion []byte, config *ClientConfig, dialAddr string, addr net.Addr) *handshakeTransport { - t := newHandshakeTransport(conn, &config.Config, clientVersion, serverVersion) - t.dialAddress = dialAddr - t.remoteAddr = addr - t.hostKeyCallback = config.HostKeyCallback - if config.HostKeyAlgorithms != nil { - t.hostKeyAlgorithms = config.HostKeyAlgorithms - } else { - t.hostKeyAlgorithms = supportedHostKeyAlgos - } - go t.readLoop() - return t -} - -func newServerTransport(conn keyingTransport, clientVersion, serverVersion []byte, config *ServerConfig) *handshakeTransport { - t := newHandshakeTransport(conn, &config.Config, clientVersion, serverVersion) - t.hostKeys = config.hostKeys - go t.readLoop() - return t -} - -func (t *handshakeTransport) getSessionID() []byte { - return t.sessionID -} - -func (t *handshakeTransport) id() string { - if len(t.hostKeys) > 0 { - return "server" - } - return "client" -} - -func (t *handshakeTransport) readPacket() ([]byte, error) { - p, ok := <-t.incoming - if !ok { - return nil, t.readError - } - return p, nil -} - -func (t *handshakeTransport) readLoop() { - for { - p, err := t.readOnePacket() - if err != nil { - t.readError = err - close(t.incoming) - break - } - if p[0] == msgIgnore || p[0] == msgDebug { - continue - } - t.incoming <- p - } - - // If we can't read, declare the writing part dead too. - t.mu.Lock() - defer t.mu.Unlock() - if t.writeError == nil { - t.writeError = t.readError - } - t.cond.Broadcast() -} - -func (t *handshakeTransport) readOnePacket() ([]byte, error) { - if t.readSinceKex > t.config.RekeyThreshold { - if err := t.requestKeyChange(); err != nil { - return nil, err - } - } - - p, err := t.conn.readPacket() - if err != nil { - return nil, err - } - - t.readSinceKex += uint64(len(p)) - if debugHandshake { - if p[0] == msgChannelData || p[0] == msgChannelExtendedData { - log.Printf("%s got data (packet %d bytes)", t.id(), len(p)) - } else { - msg, err := decode(p) - log.Printf("%s got %T %v (%v)", t.id(), msg, msg, err) - } - } - if p[0] != msgKexInit { - return p, nil - } - - t.mu.Lock() - - firstKex := t.sessionID == nil - - err = t.enterKeyExchangeLocked(p) - if err != nil { - // drop connection - t.conn.Close() - t.writeError = err - } - - if debugHandshake { - log.Printf("%s exited key exchange (first %v), err %v", t.id(), firstKex, err) - } - - // Unblock writers. - t.sentInitMsg = nil - t.sentInitPacket = nil - t.cond.Broadcast() - t.writtenSinceKex = 0 - t.mu.Unlock() - - if err != nil { - return nil, err - } - - t.readSinceKex = 0 - - // By default, a key exchange is hidden from higher layers by - // translating it into msgIgnore. - successPacket := []byte{msgIgnore} - if firstKex { - // sendKexInit() for the first kex waits for - // msgNewKeys so the authentication process is - // guaranteed to happen over an encrypted transport. - successPacket = []byte{msgNewKeys} - } - - return successPacket, nil -} - -// keyChangeCategory describes whether a key exchange is the first on a -// connection, or a subsequent one. -type keyChangeCategory bool - -const ( - firstKeyExchange keyChangeCategory = true - subsequentKeyExchange keyChangeCategory = false -) - -// sendKexInit sends a key change message, and returns the message -// that was sent. After initiating the key change, all writes will be -// blocked until the change is done, and a failed key change will -// close the underlying transport. This function is safe for -// concurrent use by multiple goroutines. -func (t *handshakeTransport) sendKexInit(isFirst keyChangeCategory) error { - var err error - - t.mu.Lock() - // If this is the initial key change, but we already have a sessionID, - // then do nothing because the key exchange has already completed - // asynchronously. - if !isFirst || t.sessionID == nil { - _, _, err = t.sendKexInitLocked(isFirst) - } - t.mu.Unlock() - if err != nil { - return err - } - if isFirst { - if packet, err := t.readPacket(); err != nil { - return err - } else if packet[0] != msgNewKeys { - return unexpectedMessageError(msgNewKeys, packet[0]) - } - } - return nil -} - -func (t *handshakeTransport) requestInitialKeyChange() error { - return t.sendKexInit(firstKeyExchange) -} - -func (t *handshakeTransport) requestKeyChange() error { - return t.sendKexInit(subsequentKeyExchange) -} - -// sendKexInitLocked sends a key change message. t.mu must be locked -// while this happens. -func (t *handshakeTransport) sendKexInitLocked(isFirst keyChangeCategory) (*kexInitMsg, []byte, error) { - // kexInits may be sent either in response to the other side, - // or because our side wants to initiate a key change, so we - // may have already sent a kexInit. In that case, don't send a - // second kexInit. - if t.sentInitMsg != nil { - return t.sentInitMsg, t.sentInitPacket, nil - } - - msg := &kexInitMsg{ - KexAlgos: t.config.KeyExchanges, - CiphersClientServer: t.config.Ciphers, - CiphersServerClient: t.config.Ciphers, - MACsClientServer: t.config.MACs, - MACsServerClient: t.config.MACs, - CompressionClientServer: supportedCompressions, - CompressionServerClient: supportedCompressions, - } - io.ReadFull(rand.Reader, msg.Cookie[:]) - - if len(t.hostKeys) > 0 { - for _, k := range t.hostKeys { - msg.ServerHostKeyAlgos = append( - msg.ServerHostKeyAlgos, k.PublicKey().Type()) - } - } else { - msg.ServerHostKeyAlgos = t.hostKeyAlgorithms - } - packet := Marshal(msg) - - // writePacket destroys the contents, so save a copy. - packetCopy := make([]byte, len(packet)) - copy(packetCopy, packet) - - if err := t.conn.writePacket(packetCopy); err != nil { - return nil, nil, err - } - - t.sentInitMsg = msg - t.sentInitPacket = packet - return msg, packet, nil -} - -func (t *handshakeTransport) writePacket(p []byte) error { - t.mu.Lock() - defer t.mu.Unlock() - - if t.writtenSinceKex > t.config.RekeyThreshold { - t.sendKexInitLocked(subsequentKeyExchange) - } - for t.sentInitMsg != nil && t.writeError == nil { - t.cond.Wait() - } - if t.writeError != nil { - return t.writeError - } - t.writtenSinceKex += uint64(len(p)) - - switch p[0] { - case msgKexInit: - return errors.New("ssh: only handshakeTransport can send kexInit") - case msgNewKeys: - return errors.New("ssh: only handshakeTransport can send newKeys") - default: - return t.conn.writePacket(p) - } -} - -func (t *handshakeTransport) Close() error { - return t.conn.Close() -} - -// enterKeyExchange runs the key exchange. t.mu must be held while running this. -func (t *handshakeTransport) enterKeyExchangeLocked(otherInitPacket []byte) error { - if debugHandshake { - log.Printf("%s entered key exchange", t.id()) - } - myInit, myInitPacket, err := t.sendKexInitLocked(subsequentKeyExchange) - if err != nil { - return err - } - - otherInit := &kexInitMsg{} - if err := Unmarshal(otherInitPacket, otherInit); err != nil { - return err - } - - magics := handshakeMagics{ - clientVersion: t.clientVersion, - serverVersion: t.serverVersion, - clientKexInit: otherInitPacket, - serverKexInit: myInitPacket, - } - - clientInit := otherInit - serverInit := myInit - if len(t.hostKeys) == 0 { - clientInit = myInit - serverInit = otherInit - - magics.clientKexInit = myInitPacket - magics.serverKexInit = otherInitPacket - } - - algs, err := findAgreedAlgorithms(clientInit, serverInit) - if err != nil { - return err - } - - // We don't send FirstKexFollows, but we handle receiving it. - // - // RFC 4253 section 7 defines the kex and the agreement method for - // first_kex_packet_follows. It states that the guessed packet - // should be ignored if the "kex algorithm and/or the host - // key algorithm is guessed wrong (server and client have - // different preferred algorithm), or if any of the other - // algorithms cannot be agreed upon". The other algorithms have - // already been checked above so the kex algorithm and host key - // algorithm are checked here. - if otherInit.FirstKexFollows && (clientInit.KexAlgos[0] != serverInit.KexAlgos[0] || clientInit.ServerHostKeyAlgos[0] != serverInit.ServerHostKeyAlgos[0]) { - // other side sent a kex message for the wrong algorithm, - // which we have to ignore. - if _, err := t.conn.readPacket(); err != nil { - return err - } - } - - kex, ok := kexAlgoMap[algs.kex] - if !ok { - return fmt.Errorf("ssh: unexpected key exchange algorithm %v", algs.kex) - } - - var result *kexResult - if len(t.hostKeys) > 0 { - result, err = t.server(kex, algs, &magics) - } else { - result, err = t.client(kex, algs, &magics) - } - - if err != nil { - return err - } - - if t.sessionID == nil { - t.sessionID = result.H - } - result.SessionID = t.sessionID - - t.conn.prepareKeyChange(algs, result) - if err = t.conn.writePacket([]byte{msgNewKeys}); err != nil { - return err - } - if packet, err := t.conn.readPacket(); err != nil { - return err - } else if packet[0] != msgNewKeys { - return unexpectedMessageError(msgNewKeys, packet[0]) - } - - return nil -} - -func (t *handshakeTransport) server(kex kexAlgorithm, algs *algorithms, magics *handshakeMagics) (*kexResult, error) { - var hostKey Signer - for _, k := range t.hostKeys { - if algs.hostKey == k.PublicKey().Type() { - hostKey = k - } - } - - r, err := kex.Server(t.conn, t.config.Rand, magics, hostKey) - return r, err -} - -func (t *handshakeTransport) client(kex kexAlgorithm, algs *algorithms, magics *handshakeMagics) (*kexResult, error) { - result, err := kex.Client(t.conn, t.config.Rand, magics) - if err != nil { - return nil, err - } - - hostKey, err := ParsePublicKey(result.HostKey) - if err != nil { - return nil, err - } - - if err := verifyHostKeySignature(hostKey, result); err != nil { - return nil, err - } - - if t.hostKeyCallback != nil { - err = t.hostKeyCallback(t.dialAddress, t.remoteAddr, hostKey) - if err != nil { - return nil, err - } - } - - return result, nil -} diff --git a/vendor/golang.org/x/crypto/ssh/kex.go b/vendor/golang.org/x/crypto/ssh/kex.go deleted file mode 100644 index 9285ee3..0000000 --- a/vendor/golang.org/x/crypto/ssh/kex.go +++ /dev/null @@ -1,526 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "crypto" - "crypto/ecdsa" - "crypto/elliptic" - "crypto/rand" - "crypto/subtle" - "errors" - "io" - "math/big" - - "golang.org/x/crypto/curve25519" -) - -const ( - kexAlgoDH1SHA1 = "diffie-hellman-group1-sha1" - kexAlgoDH14SHA1 = "diffie-hellman-group14-sha1" - kexAlgoECDH256 = "ecdh-sha2-nistp256" - kexAlgoECDH384 = "ecdh-sha2-nistp384" - kexAlgoECDH521 = "ecdh-sha2-nistp521" - kexAlgoCurve25519SHA256 = "curve25519-sha256@libssh.org" -) - -// kexResult captures the outcome of a key exchange. -type kexResult struct { - // Session hash. See also RFC 4253, section 8. - H []byte - - // Shared secret. See also RFC 4253, section 8. - K []byte - - // Host key as hashed into H. - HostKey []byte - - // Signature of H. - Signature []byte - - // A cryptographic hash function that matches the security - // level of the key exchange algorithm. It is used for - // calculating H, and for deriving keys from H and K. - Hash crypto.Hash - - // The session ID, which is the first H computed. This is used - // to derive key material inside the transport. - SessionID []byte -} - -// handshakeMagics contains data that is always included in the -// session hash. -type handshakeMagics struct { - clientVersion, serverVersion []byte - clientKexInit, serverKexInit []byte -} - -func (m *handshakeMagics) write(w io.Writer) { - writeString(w, m.clientVersion) - writeString(w, m.serverVersion) - writeString(w, m.clientKexInit) - writeString(w, m.serverKexInit) -} - -// kexAlgorithm abstracts different key exchange algorithms. -type kexAlgorithm interface { - // Server runs server-side key agreement, signing the result - // with a hostkey. - Server(p packetConn, rand io.Reader, magics *handshakeMagics, s Signer) (*kexResult, error) - - // Client runs the client-side key agreement. Caller is - // responsible for verifying the host key signature. - Client(p packetConn, rand io.Reader, magics *handshakeMagics) (*kexResult, error) -} - -// dhGroup is a multiplicative group suitable for implementing Diffie-Hellman key agreement. -type dhGroup struct { - g, p *big.Int -} - -func (group *dhGroup) diffieHellman(theirPublic, myPrivate *big.Int) (*big.Int, error) { - if theirPublic.Sign() <= 0 || theirPublic.Cmp(group.p) >= 0 { - return nil, errors.New("ssh: DH parameter out of bounds") - } - return new(big.Int).Exp(theirPublic, myPrivate, group.p), nil -} - -func (group *dhGroup) Client(c packetConn, randSource io.Reader, magics *handshakeMagics) (*kexResult, error) { - hashFunc := crypto.SHA1 - - x, err := rand.Int(randSource, group.p) - if err != nil { - return nil, err - } - X := new(big.Int).Exp(group.g, x, group.p) - kexDHInit := kexDHInitMsg{ - X: X, - } - if err := c.writePacket(Marshal(&kexDHInit)); err != nil { - return nil, err - } - - packet, err := c.readPacket() - if err != nil { - return nil, err - } - - var kexDHReply kexDHReplyMsg - if err = Unmarshal(packet, &kexDHReply); err != nil { - return nil, err - } - - kInt, err := group.diffieHellman(kexDHReply.Y, x) - if err != nil { - return nil, err - } - - h := hashFunc.New() - magics.write(h) - writeString(h, kexDHReply.HostKey) - writeInt(h, X) - writeInt(h, kexDHReply.Y) - K := make([]byte, intLength(kInt)) - marshalInt(K, kInt) - h.Write(K) - - return &kexResult{ - H: h.Sum(nil), - K: K, - HostKey: kexDHReply.HostKey, - Signature: kexDHReply.Signature, - Hash: crypto.SHA1, - }, nil -} - -func (group *dhGroup) Server(c packetConn, randSource io.Reader, magics *handshakeMagics, priv Signer) (result *kexResult, err error) { - hashFunc := crypto.SHA1 - packet, err := c.readPacket() - if err != nil { - return - } - var kexDHInit kexDHInitMsg - if err = Unmarshal(packet, &kexDHInit); err != nil { - return - } - - y, err := rand.Int(randSource, group.p) - if err != nil { - return - } - - Y := new(big.Int).Exp(group.g, y, group.p) - kInt, err := group.diffieHellman(kexDHInit.X, y) - if err != nil { - return nil, err - } - - hostKeyBytes := priv.PublicKey().Marshal() - - h := hashFunc.New() - magics.write(h) - writeString(h, hostKeyBytes) - writeInt(h, kexDHInit.X) - writeInt(h, Y) - - K := make([]byte, intLength(kInt)) - marshalInt(K, kInt) - h.Write(K) - - H := h.Sum(nil) - - // H is already a hash, but the hostkey signing will apply its - // own key-specific hash algorithm. - sig, err := signAndMarshal(priv, randSource, H) - if err != nil { - return nil, err - } - - kexDHReply := kexDHReplyMsg{ - HostKey: hostKeyBytes, - Y: Y, - Signature: sig, - } - packet = Marshal(&kexDHReply) - - err = c.writePacket(packet) - return &kexResult{ - H: H, - K: K, - HostKey: hostKeyBytes, - Signature: sig, - Hash: crypto.SHA1, - }, nil -} - -// ecdh performs Elliptic Curve Diffie-Hellman key exchange as -// described in RFC 5656, section 4. -type ecdh struct { - curve elliptic.Curve -} - -func (kex *ecdh) Client(c packetConn, rand io.Reader, magics *handshakeMagics) (*kexResult, error) { - ephKey, err := ecdsa.GenerateKey(kex.curve, rand) - if err != nil { - return nil, err - } - - kexInit := kexECDHInitMsg{ - ClientPubKey: elliptic.Marshal(kex.curve, ephKey.PublicKey.X, ephKey.PublicKey.Y), - } - - serialized := Marshal(&kexInit) - if err := c.writePacket(serialized); err != nil { - return nil, err - } - - packet, err := c.readPacket() - if err != nil { - return nil, err - } - - var reply kexECDHReplyMsg - if err = Unmarshal(packet, &reply); err != nil { - return nil, err - } - - x, y, err := unmarshalECKey(kex.curve, reply.EphemeralPubKey) - if err != nil { - return nil, err - } - - // generate shared secret - secret, _ := kex.curve.ScalarMult(x, y, ephKey.D.Bytes()) - - h := ecHash(kex.curve).New() - magics.write(h) - writeString(h, reply.HostKey) - writeString(h, kexInit.ClientPubKey) - writeString(h, reply.EphemeralPubKey) - K := make([]byte, intLength(secret)) - marshalInt(K, secret) - h.Write(K) - - return &kexResult{ - H: h.Sum(nil), - K: K, - HostKey: reply.HostKey, - Signature: reply.Signature, - Hash: ecHash(kex.curve), - }, nil -} - -// unmarshalECKey parses and checks an EC key. -func unmarshalECKey(curve elliptic.Curve, pubkey []byte) (x, y *big.Int, err error) { - x, y = elliptic.Unmarshal(curve, pubkey) - if x == nil { - return nil, nil, errors.New("ssh: elliptic.Unmarshal failure") - } - if !validateECPublicKey(curve, x, y) { - return nil, nil, errors.New("ssh: public key not on curve") - } - return x, y, nil -} - -// validateECPublicKey checks that the point is a valid public key for -// the given curve. See [SEC1], 3.2.2 -func validateECPublicKey(curve elliptic.Curve, x, y *big.Int) bool { - if x.Sign() == 0 && y.Sign() == 0 { - return false - } - - if x.Cmp(curve.Params().P) >= 0 { - return false - } - - if y.Cmp(curve.Params().P) >= 0 { - return false - } - - if !curve.IsOnCurve(x, y) { - return false - } - - // We don't check if N * PubKey == 0, since - // - // - the NIST curves have cofactor = 1, so this is implicit. - // (We don't foresee an implementation that supports non NIST - // curves) - // - // - for ephemeral keys, we don't need to worry about small - // subgroup attacks. - return true -} - -func (kex *ecdh) Server(c packetConn, rand io.Reader, magics *handshakeMagics, priv Signer) (result *kexResult, err error) { - packet, err := c.readPacket() - if err != nil { - return nil, err - } - - var kexECDHInit kexECDHInitMsg - if err = Unmarshal(packet, &kexECDHInit); err != nil { - return nil, err - } - - clientX, clientY, err := unmarshalECKey(kex.curve, kexECDHInit.ClientPubKey) - if err != nil { - return nil, err - } - - // We could cache this key across multiple users/multiple - // connection attempts, but the benefit is small. OpenSSH - // generates a new key for each incoming connection. - ephKey, err := ecdsa.GenerateKey(kex.curve, rand) - if err != nil { - return nil, err - } - - hostKeyBytes := priv.PublicKey().Marshal() - - serializedEphKey := elliptic.Marshal(kex.curve, ephKey.PublicKey.X, ephKey.PublicKey.Y) - - // generate shared secret - secret, _ := kex.curve.ScalarMult(clientX, clientY, ephKey.D.Bytes()) - - h := ecHash(kex.curve).New() - magics.write(h) - writeString(h, hostKeyBytes) - writeString(h, kexECDHInit.ClientPubKey) - writeString(h, serializedEphKey) - - K := make([]byte, intLength(secret)) - marshalInt(K, secret) - h.Write(K) - - H := h.Sum(nil) - - // H is already a hash, but the hostkey signing will apply its - // own key-specific hash algorithm. - sig, err := signAndMarshal(priv, rand, H) - if err != nil { - return nil, err - } - - reply := kexECDHReplyMsg{ - EphemeralPubKey: serializedEphKey, - HostKey: hostKeyBytes, - Signature: sig, - } - - serialized := Marshal(&reply) - if err := c.writePacket(serialized); err != nil { - return nil, err - } - - return &kexResult{ - H: H, - K: K, - HostKey: reply.HostKey, - Signature: sig, - Hash: ecHash(kex.curve), - }, nil -} - -var kexAlgoMap = map[string]kexAlgorithm{} - -func init() { - // This is the group called diffie-hellman-group1-sha1 in RFC - // 4253 and Oakley Group 2 in RFC 2409. - p, _ := new(big.Int).SetString("FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE65381FFFFFFFFFFFFFFFF", 16) - kexAlgoMap[kexAlgoDH1SHA1] = &dhGroup{ - g: new(big.Int).SetInt64(2), - p: p, - } - - // This is the group called diffie-hellman-group14-sha1 in RFC - // 4253 and Oakley Group 14 in RFC 3526. - p, _ = new(big.Int).SetString("FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AACAA68FFFFFFFFFFFFFFFF", 16) - - kexAlgoMap[kexAlgoDH14SHA1] = &dhGroup{ - g: new(big.Int).SetInt64(2), - p: p, - } - - kexAlgoMap[kexAlgoECDH521] = &ecdh{elliptic.P521()} - kexAlgoMap[kexAlgoECDH384] = &ecdh{elliptic.P384()} - kexAlgoMap[kexAlgoECDH256] = &ecdh{elliptic.P256()} - kexAlgoMap[kexAlgoCurve25519SHA256] = &curve25519sha256{} -} - -// curve25519sha256 implements the curve25519-sha256@libssh.org key -// agreement protocol, as described in -// https://git.libssh.org/projects/libssh.git/tree/doc/curve25519-sha256@libssh.org.txt -type curve25519sha256 struct{} - -type curve25519KeyPair struct { - priv [32]byte - pub [32]byte -} - -func (kp *curve25519KeyPair) generate(rand io.Reader) error { - if _, err := io.ReadFull(rand, kp.priv[:]); err != nil { - return err - } - curve25519.ScalarBaseMult(&kp.pub, &kp.priv) - return nil -} - -// curve25519Zeros is just an array of 32 zero bytes so that we have something -// convenient to compare against in order to reject curve25519 points with the -// wrong order. -var curve25519Zeros [32]byte - -func (kex *curve25519sha256) Client(c packetConn, rand io.Reader, magics *handshakeMagics) (*kexResult, error) { - var kp curve25519KeyPair - if err := kp.generate(rand); err != nil { - return nil, err - } - if err := c.writePacket(Marshal(&kexECDHInitMsg{kp.pub[:]})); err != nil { - return nil, err - } - - packet, err := c.readPacket() - if err != nil { - return nil, err - } - - var reply kexECDHReplyMsg - if err = Unmarshal(packet, &reply); err != nil { - return nil, err - } - if len(reply.EphemeralPubKey) != 32 { - return nil, errors.New("ssh: peer's curve25519 public value has wrong length") - } - - var servPub, secret [32]byte - copy(servPub[:], reply.EphemeralPubKey) - curve25519.ScalarMult(&secret, &kp.priv, &servPub) - if subtle.ConstantTimeCompare(secret[:], curve25519Zeros[:]) == 1 { - return nil, errors.New("ssh: peer's curve25519 public value has wrong order") - } - - h := crypto.SHA256.New() - magics.write(h) - writeString(h, reply.HostKey) - writeString(h, kp.pub[:]) - writeString(h, reply.EphemeralPubKey) - - kInt := new(big.Int).SetBytes(secret[:]) - K := make([]byte, intLength(kInt)) - marshalInt(K, kInt) - h.Write(K) - - return &kexResult{ - H: h.Sum(nil), - K: K, - HostKey: reply.HostKey, - Signature: reply.Signature, - Hash: crypto.SHA256, - }, nil -} - -func (kex *curve25519sha256) Server(c packetConn, rand io.Reader, magics *handshakeMagics, priv Signer) (result *kexResult, err error) { - packet, err := c.readPacket() - if err != nil { - return - } - var kexInit kexECDHInitMsg - if err = Unmarshal(packet, &kexInit); err != nil { - return - } - - if len(kexInit.ClientPubKey) != 32 { - return nil, errors.New("ssh: peer's curve25519 public value has wrong length") - } - - var kp curve25519KeyPair - if err := kp.generate(rand); err != nil { - return nil, err - } - - var clientPub, secret [32]byte - copy(clientPub[:], kexInit.ClientPubKey) - curve25519.ScalarMult(&secret, &kp.priv, &clientPub) - if subtle.ConstantTimeCompare(secret[:], curve25519Zeros[:]) == 1 { - return nil, errors.New("ssh: peer's curve25519 public value has wrong order") - } - - hostKeyBytes := priv.PublicKey().Marshal() - - h := crypto.SHA256.New() - magics.write(h) - writeString(h, hostKeyBytes) - writeString(h, kexInit.ClientPubKey) - writeString(h, kp.pub[:]) - - kInt := new(big.Int).SetBytes(secret[:]) - K := make([]byte, intLength(kInt)) - marshalInt(K, kInt) - h.Write(K) - - H := h.Sum(nil) - - sig, err := signAndMarshal(priv, rand, H) - if err != nil { - return nil, err - } - - reply := kexECDHReplyMsg{ - EphemeralPubKey: kp.pub[:], - HostKey: hostKeyBytes, - Signature: sig, - } - if err := c.writePacket(Marshal(&reply)); err != nil { - return nil, err - } - return &kexResult{ - H: H, - K: K, - HostKey: hostKeyBytes, - Signature: sig, - Hash: crypto.SHA256, - }, nil -} diff --git a/vendor/golang.org/x/crypto/ssh/keys.go b/vendor/golang.org/x/crypto/ssh/keys.go deleted file mode 100644 index 0324e12..0000000 --- a/vendor/golang.org/x/crypto/ssh/keys.go +++ /dev/null @@ -1,846 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "bytes" - "crypto" - "crypto/dsa" - "crypto/ecdsa" - "crypto/elliptic" - "crypto/rsa" - "crypto/x509" - "encoding/asn1" - "encoding/base64" - "encoding/pem" - "errors" - "fmt" - "io" - "math/big" - "strings" - - "golang.org/x/crypto/ed25519" -) - -// These constants represent the algorithm names for key types supported by this -// package. -const ( - KeyAlgoRSA = "ssh-rsa" - KeyAlgoDSA = "ssh-dss" - KeyAlgoECDSA256 = "ecdsa-sha2-nistp256" - KeyAlgoECDSA384 = "ecdsa-sha2-nistp384" - KeyAlgoECDSA521 = "ecdsa-sha2-nistp521" - KeyAlgoED25519 = "ssh-ed25519" -) - -// parsePubKey parses a public key of the given algorithm. -// Use ParsePublicKey for keys with prepended algorithm. -func parsePubKey(in []byte, algo string) (pubKey PublicKey, rest []byte, err error) { - switch algo { - case KeyAlgoRSA: - return parseRSA(in) - case KeyAlgoDSA: - return parseDSA(in) - case KeyAlgoECDSA256, KeyAlgoECDSA384, KeyAlgoECDSA521: - return parseECDSA(in) - case KeyAlgoED25519: - return parseED25519(in) - case CertAlgoRSAv01, CertAlgoDSAv01, CertAlgoECDSA256v01, CertAlgoECDSA384v01, CertAlgoECDSA521v01, CertAlgoED25519v01: - cert, err := parseCert(in, certToPrivAlgo(algo)) - if err != nil { - return nil, nil, err - } - return cert, nil, nil - } - return nil, nil, fmt.Errorf("ssh: unknown key algorithm: %v", algo) -} - -// parseAuthorizedKey parses a public key in OpenSSH authorized_keys format -// (see sshd(8) manual page) once the options and key type fields have been -// removed. -func parseAuthorizedKey(in []byte) (out PublicKey, comment string, err error) { - in = bytes.TrimSpace(in) - - i := bytes.IndexAny(in, " \t") - if i == -1 { - i = len(in) - } - base64Key := in[:i] - - key := make([]byte, base64.StdEncoding.DecodedLen(len(base64Key))) - n, err := base64.StdEncoding.Decode(key, base64Key) - if err != nil { - return nil, "", err - } - key = key[:n] - out, err = ParsePublicKey(key) - if err != nil { - return nil, "", err - } - comment = string(bytes.TrimSpace(in[i:])) - return out, comment, nil -} - -// ParseKnownHosts parses an entry in the format of the known_hosts file. -// -// The known_hosts format is documented in the sshd(8) manual page. This -// function will parse a single entry from in. On successful return, marker -// will contain the optional marker value (i.e. "cert-authority" or "revoked") -// or else be empty, hosts will contain the hosts that this entry matches, -// pubKey will contain the public key and comment will contain any trailing -// comment at the end of the line. See the sshd(8) manual page for the various -// forms that a host string can take. -// -// The unparsed remainder of the input will be returned in rest. This function -// can be called repeatedly to parse multiple entries. -// -// If no entries were found in the input then err will be io.EOF. Otherwise a -// non-nil err value indicates a parse error. -func ParseKnownHosts(in []byte) (marker string, hosts []string, pubKey PublicKey, comment string, rest []byte, err error) { - for len(in) > 0 { - end := bytes.IndexByte(in, '\n') - if end != -1 { - rest = in[end+1:] - in = in[:end] - } else { - rest = nil - } - - end = bytes.IndexByte(in, '\r') - if end != -1 { - in = in[:end] - } - - in = bytes.TrimSpace(in) - if len(in) == 0 || in[0] == '#' { - in = rest - continue - } - - i := bytes.IndexAny(in, " \t") - if i == -1 { - in = rest - continue - } - - // Strip out the beginning of the known_host key. - // This is either an optional marker or a (set of) hostname(s). - keyFields := bytes.Fields(in) - if len(keyFields) < 3 || len(keyFields) > 5 { - return "", nil, nil, "", nil, errors.New("ssh: invalid entry in known_hosts data") - } - - // keyFields[0] is either "@cert-authority", "@revoked" or a comma separated - // list of hosts - marker := "" - if keyFields[0][0] == '@' { - marker = string(keyFields[0][1:]) - keyFields = keyFields[1:] - } - - hosts := string(keyFields[0]) - // keyFields[1] contains the key type (e.g. “ssh-rsa”). - // However, that information is duplicated inside the - // base64-encoded key and so is ignored here. - - key := bytes.Join(keyFields[2:], []byte(" ")) - if pubKey, comment, err = parseAuthorizedKey(key); err != nil { - return "", nil, nil, "", nil, err - } - - return marker, strings.Split(hosts, ","), pubKey, comment, rest, nil - } - - return "", nil, nil, "", nil, io.EOF -} - -// ParseAuthorizedKeys parses a public key from an authorized_keys -// file used in OpenSSH according to the sshd(8) manual page. -func ParseAuthorizedKey(in []byte) (out PublicKey, comment string, options []string, rest []byte, err error) { - for len(in) > 0 { - end := bytes.IndexByte(in, '\n') - if end != -1 { - rest = in[end+1:] - in = in[:end] - } else { - rest = nil - } - - end = bytes.IndexByte(in, '\r') - if end != -1 { - in = in[:end] - } - - in = bytes.TrimSpace(in) - if len(in) == 0 || in[0] == '#' { - in = rest - continue - } - - i := bytes.IndexAny(in, " \t") - if i == -1 { - in = rest - continue - } - - if out, comment, err = parseAuthorizedKey(in[i:]); err == nil { - return out, comment, options, rest, nil - } - - // No key type recognised. Maybe there's an options field at - // the beginning. - var b byte - inQuote := false - var candidateOptions []string - optionStart := 0 - for i, b = range in { - isEnd := !inQuote && (b == ' ' || b == '\t') - if (b == ',' && !inQuote) || isEnd { - if i-optionStart > 0 { - candidateOptions = append(candidateOptions, string(in[optionStart:i])) - } - optionStart = i + 1 - } - if isEnd { - break - } - if b == '"' && (i == 0 || (i > 0 && in[i-1] != '\\')) { - inQuote = !inQuote - } - } - for i < len(in) && (in[i] == ' ' || in[i] == '\t') { - i++ - } - if i == len(in) { - // Invalid line: unmatched quote - in = rest - continue - } - - in = in[i:] - i = bytes.IndexAny(in, " \t") - if i == -1 { - in = rest - continue - } - - if out, comment, err = parseAuthorizedKey(in[i:]); err == nil { - options = candidateOptions - return out, comment, options, rest, nil - } - - in = rest - continue - } - - return nil, "", nil, nil, errors.New("ssh: no key found") -} - -// ParsePublicKey parses an SSH public key formatted for use in -// the SSH wire protocol according to RFC 4253, section 6.6. -func ParsePublicKey(in []byte) (out PublicKey, err error) { - algo, in, ok := parseString(in) - if !ok { - return nil, errShortRead - } - var rest []byte - out, rest, err = parsePubKey(in, string(algo)) - if len(rest) > 0 { - return nil, errors.New("ssh: trailing junk in public key") - } - - return out, err -} - -// MarshalAuthorizedKey serializes key for inclusion in an OpenSSH -// authorized_keys file. The return value ends with newline. -func MarshalAuthorizedKey(key PublicKey) []byte { - b := &bytes.Buffer{} - b.WriteString(key.Type()) - b.WriteByte(' ') - e := base64.NewEncoder(base64.StdEncoding, b) - e.Write(key.Marshal()) - e.Close() - b.WriteByte('\n') - return b.Bytes() -} - -// PublicKey is an abstraction of different types of public keys. -type PublicKey interface { - // Type returns the key's type, e.g. "ssh-rsa". - Type() string - - // Marshal returns the serialized key data in SSH wire format, - // with the name prefix. - Marshal() []byte - - // Verify that sig is a signature on the given data using this - // key. This function will hash the data appropriately first. - Verify(data []byte, sig *Signature) error -} - -// A Signer can create signatures that verify against a public key. -type Signer interface { - // PublicKey returns an associated PublicKey instance. - PublicKey() PublicKey - - // Sign returns raw signature for the given data. This method - // will apply the hash specified for the keytype to the data. - Sign(rand io.Reader, data []byte) (*Signature, error) -} - -type rsaPublicKey rsa.PublicKey - -func (r *rsaPublicKey) Type() string { - return "ssh-rsa" -} - -// parseRSA parses an RSA key according to RFC 4253, section 6.6. -func parseRSA(in []byte) (out PublicKey, rest []byte, err error) { - var w struct { - E *big.Int - N *big.Int - Rest []byte `ssh:"rest"` - } - if err := Unmarshal(in, &w); err != nil { - return nil, nil, err - } - - if w.E.BitLen() > 24 { - return nil, nil, errors.New("ssh: exponent too large") - } - e := w.E.Int64() - if e < 3 || e&1 == 0 { - return nil, nil, errors.New("ssh: incorrect exponent") - } - - var key rsa.PublicKey - key.E = int(e) - key.N = w.N - return (*rsaPublicKey)(&key), w.Rest, nil -} - -func (r *rsaPublicKey) Marshal() []byte { - e := new(big.Int).SetInt64(int64(r.E)) - // RSA publickey struct layout should match the struct used by - // parseRSACert in the x/crypto/ssh/agent package. - wirekey := struct { - Name string - E *big.Int - N *big.Int - }{ - KeyAlgoRSA, - e, - r.N, - } - return Marshal(&wirekey) -} - -func (r *rsaPublicKey) Verify(data []byte, sig *Signature) error { - if sig.Format != r.Type() { - return fmt.Errorf("ssh: signature type %s for key type %s", sig.Format, r.Type()) - } - h := crypto.SHA1.New() - h.Write(data) - digest := h.Sum(nil) - return rsa.VerifyPKCS1v15((*rsa.PublicKey)(r), crypto.SHA1, digest, sig.Blob) -} - -type dsaPublicKey dsa.PublicKey - -func (r *dsaPublicKey) Type() string { - return "ssh-dss" -} - -// parseDSA parses an DSA key according to RFC 4253, section 6.6. -func parseDSA(in []byte) (out PublicKey, rest []byte, err error) { - var w struct { - P, Q, G, Y *big.Int - Rest []byte `ssh:"rest"` - } - if err := Unmarshal(in, &w); err != nil { - return nil, nil, err - } - - key := &dsaPublicKey{ - Parameters: dsa.Parameters{ - P: w.P, - Q: w.Q, - G: w.G, - }, - Y: w.Y, - } - return key, w.Rest, nil -} - -func (k *dsaPublicKey) Marshal() []byte { - // DSA publickey struct layout should match the struct used by - // parseDSACert in the x/crypto/ssh/agent package. - w := struct { - Name string - P, Q, G, Y *big.Int - }{ - k.Type(), - k.P, - k.Q, - k.G, - k.Y, - } - - return Marshal(&w) -} - -func (k *dsaPublicKey) Verify(data []byte, sig *Signature) error { - if sig.Format != k.Type() { - return fmt.Errorf("ssh: signature type %s for key type %s", sig.Format, k.Type()) - } - h := crypto.SHA1.New() - h.Write(data) - digest := h.Sum(nil) - - // Per RFC 4253, section 6.6, - // The value for 'dss_signature_blob' is encoded as a string containing - // r, followed by s (which are 160-bit integers, without lengths or - // padding, unsigned, and in network byte order). - // For DSS purposes, sig.Blob should be exactly 40 bytes in length. - if len(sig.Blob) != 40 { - return errors.New("ssh: DSA signature parse error") - } - r := new(big.Int).SetBytes(sig.Blob[:20]) - s := new(big.Int).SetBytes(sig.Blob[20:]) - if dsa.Verify((*dsa.PublicKey)(k), digest, r, s) { - return nil - } - return errors.New("ssh: signature did not verify") -} - -type dsaPrivateKey struct { - *dsa.PrivateKey -} - -func (k *dsaPrivateKey) PublicKey() PublicKey { - return (*dsaPublicKey)(&k.PrivateKey.PublicKey) -} - -func (k *dsaPrivateKey) Sign(rand io.Reader, data []byte) (*Signature, error) { - h := crypto.SHA1.New() - h.Write(data) - digest := h.Sum(nil) - r, s, err := dsa.Sign(rand, k.PrivateKey, digest) - if err != nil { - return nil, err - } - - sig := make([]byte, 40) - rb := r.Bytes() - sb := s.Bytes() - - copy(sig[20-len(rb):20], rb) - copy(sig[40-len(sb):], sb) - - return &Signature{ - Format: k.PublicKey().Type(), - Blob: sig, - }, nil -} - -type ecdsaPublicKey ecdsa.PublicKey - -func (key *ecdsaPublicKey) Type() string { - return "ecdsa-sha2-" + key.nistID() -} - -func (key *ecdsaPublicKey) nistID() string { - switch key.Params().BitSize { - case 256: - return "nistp256" - case 384: - return "nistp384" - case 521: - return "nistp521" - } - panic("ssh: unsupported ecdsa key size") -} - -type ed25519PublicKey ed25519.PublicKey - -func (key ed25519PublicKey) Type() string { - return KeyAlgoED25519 -} - -func parseED25519(in []byte) (out PublicKey, rest []byte, err error) { - var w struct { - KeyBytes []byte - Rest []byte `ssh:"rest"` - } - - if err := Unmarshal(in, &w); err != nil { - return nil, nil, err - } - - key := ed25519.PublicKey(w.KeyBytes) - - return (ed25519PublicKey)(key), w.Rest, nil -} - -func (key ed25519PublicKey) Marshal() []byte { - w := struct { - Name string - KeyBytes []byte - }{ - KeyAlgoED25519, - []byte(key), - } - return Marshal(&w) -} - -func (key ed25519PublicKey) Verify(b []byte, sig *Signature) error { - if sig.Format != key.Type() { - return fmt.Errorf("ssh: signature type %s for key type %s", sig.Format, key.Type()) - } - - edKey := (ed25519.PublicKey)(key) - if ok := ed25519.Verify(edKey, b, sig.Blob); !ok { - return errors.New("ssh: signature did not verify") - } - - return nil -} - -func supportedEllipticCurve(curve elliptic.Curve) bool { - return curve == elliptic.P256() || curve == elliptic.P384() || curve == elliptic.P521() -} - -// ecHash returns the hash to match the given elliptic curve, see RFC -// 5656, section 6.2.1 -func ecHash(curve elliptic.Curve) crypto.Hash { - bitSize := curve.Params().BitSize - switch { - case bitSize <= 256: - return crypto.SHA256 - case bitSize <= 384: - return crypto.SHA384 - } - return crypto.SHA512 -} - -// parseECDSA parses an ECDSA key according to RFC 5656, section 3.1. -func parseECDSA(in []byte) (out PublicKey, rest []byte, err error) { - var w struct { - Curve string - KeyBytes []byte - Rest []byte `ssh:"rest"` - } - - if err := Unmarshal(in, &w); err != nil { - return nil, nil, err - } - - key := new(ecdsa.PublicKey) - - switch w.Curve { - case "nistp256": - key.Curve = elliptic.P256() - case "nistp384": - key.Curve = elliptic.P384() - case "nistp521": - key.Curve = elliptic.P521() - default: - return nil, nil, errors.New("ssh: unsupported curve") - } - - key.X, key.Y = elliptic.Unmarshal(key.Curve, w.KeyBytes) - if key.X == nil || key.Y == nil { - return nil, nil, errors.New("ssh: invalid curve point") - } - return (*ecdsaPublicKey)(key), w.Rest, nil -} - -func (key *ecdsaPublicKey) Marshal() []byte { - // See RFC 5656, section 3.1. - keyBytes := elliptic.Marshal(key.Curve, key.X, key.Y) - // ECDSA publickey struct layout should match the struct used by - // parseECDSACert in the x/crypto/ssh/agent package. - w := struct { - Name string - ID string - Key []byte - }{ - key.Type(), - key.nistID(), - keyBytes, - } - - return Marshal(&w) -} - -func (key *ecdsaPublicKey) Verify(data []byte, sig *Signature) error { - if sig.Format != key.Type() { - return fmt.Errorf("ssh: signature type %s for key type %s", sig.Format, key.Type()) - } - - h := ecHash(key.Curve).New() - h.Write(data) - digest := h.Sum(nil) - - // Per RFC 5656, section 3.1.2, - // The ecdsa_signature_blob value has the following specific encoding: - // mpint r - // mpint s - var ecSig struct { - R *big.Int - S *big.Int - } - - if err := Unmarshal(sig.Blob, &ecSig); err != nil { - return err - } - - if ecdsa.Verify((*ecdsa.PublicKey)(key), digest, ecSig.R, ecSig.S) { - return nil - } - return errors.New("ssh: signature did not verify") -} - -// NewSignerFromKey takes an *rsa.PrivateKey, *dsa.PrivateKey, -// *ecdsa.PrivateKey or any other crypto.Signer and returns a corresponding -// Signer instance. ECDSA keys must use P-256, P-384 or P-521. -func NewSignerFromKey(key interface{}) (Signer, error) { - switch key := key.(type) { - case crypto.Signer: - return NewSignerFromSigner(key) - case *dsa.PrivateKey: - return &dsaPrivateKey{key}, nil - default: - return nil, fmt.Errorf("ssh: unsupported key type %T", key) - } -} - -type wrappedSigner struct { - signer crypto.Signer - pubKey PublicKey -} - -// NewSignerFromSigner takes any crypto.Signer implementation and -// returns a corresponding Signer interface. This can be used, for -// example, with keys kept in hardware modules. -func NewSignerFromSigner(signer crypto.Signer) (Signer, error) { - pubKey, err := NewPublicKey(signer.Public()) - if err != nil { - return nil, err - } - - return &wrappedSigner{signer, pubKey}, nil -} - -func (s *wrappedSigner) PublicKey() PublicKey { - return s.pubKey -} - -func (s *wrappedSigner) Sign(rand io.Reader, data []byte) (*Signature, error) { - var hashFunc crypto.Hash - - switch key := s.pubKey.(type) { - case *rsaPublicKey, *dsaPublicKey: - hashFunc = crypto.SHA1 - case *ecdsaPublicKey: - hashFunc = ecHash(key.Curve) - case ed25519PublicKey: - default: - return nil, fmt.Errorf("ssh: unsupported key type %T", key) - } - - var digest []byte - if hashFunc != 0 { - h := hashFunc.New() - h.Write(data) - digest = h.Sum(nil) - } else { - digest = data - } - - signature, err := s.signer.Sign(rand, digest, hashFunc) - if err != nil { - return nil, err - } - - // crypto.Signer.Sign is expected to return an ASN.1-encoded signature - // for ECDSA and DSA, but that's not the encoding expected by SSH, so - // re-encode. - switch s.pubKey.(type) { - case *ecdsaPublicKey, *dsaPublicKey: - type asn1Signature struct { - R, S *big.Int - } - asn1Sig := new(asn1Signature) - _, err := asn1.Unmarshal(signature, asn1Sig) - if err != nil { - return nil, err - } - - switch s.pubKey.(type) { - case *ecdsaPublicKey: - signature = Marshal(asn1Sig) - - case *dsaPublicKey: - signature = make([]byte, 40) - r := asn1Sig.R.Bytes() - s := asn1Sig.S.Bytes() - copy(signature[20-len(r):20], r) - copy(signature[40-len(s):40], s) - } - } - - return &Signature{ - Format: s.pubKey.Type(), - Blob: signature, - }, nil -} - -// NewPublicKey takes an *rsa.PublicKey, *dsa.PublicKey, *ecdsa.PublicKey, -// ed25519.PublicKey, or any other crypto.Signer and returns a corresponding -// Signer instance. ECDSA keys must use P-256, P-384 or P-521. -func NewPublicKey(key interface{}) (PublicKey, error) { - switch key := key.(type) { - case *rsa.PublicKey: - return (*rsaPublicKey)(key), nil - case *ecdsa.PublicKey: - if !supportedEllipticCurve(key.Curve) { - return nil, errors.New("ssh: only P-256, P-384 and P-521 EC keys are supported.") - } - return (*ecdsaPublicKey)(key), nil - case *dsa.PublicKey: - return (*dsaPublicKey)(key), nil - case ed25519.PublicKey: - return (ed25519PublicKey)(key), nil - default: - return nil, fmt.Errorf("ssh: unsupported key type %T", key) - } -} - -// ParsePrivateKey returns a Signer from a PEM encoded private key. It supports -// the same keys as ParseRawPrivateKey. -func ParsePrivateKey(pemBytes []byte) (Signer, error) { - key, err := ParseRawPrivateKey(pemBytes) - if err != nil { - return nil, err - } - - return NewSignerFromKey(key) -} - -// ParseRawPrivateKey returns a private key from a PEM encoded private key. It -// supports RSA (PKCS#1), DSA (OpenSSL), and ECDSA private keys. -func ParseRawPrivateKey(pemBytes []byte) (interface{}, error) { - block, _ := pem.Decode(pemBytes) - if block == nil { - return nil, errors.New("ssh: no key found") - } - - switch block.Type { - case "RSA PRIVATE KEY": - return x509.ParsePKCS1PrivateKey(block.Bytes) - case "EC PRIVATE KEY": - return x509.ParseECPrivateKey(block.Bytes) - case "DSA PRIVATE KEY": - return ParseDSAPrivateKey(block.Bytes) - case "OPENSSH PRIVATE KEY": - return parseOpenSSHPrivateKey(block.Bytes) - default: - return nil, fmt.Errorf("ssh: unsupported key type %q", block.Type) - } -} - -// ParseDSAPrivateKey returns a DSA private key from its ASN.1 DER encoding, as -// specified by the OpenSSL DSA man page. -func ParseDSAPrivateKey(der []byte) (*dsa.PrivateKey, error) { - var k struct { - Version int - P *big.Int - Q *big.Int - G *big.Int - Priv *big.Int - Pub *big.Int - } - rest, err := asn1.Unmarshal(der, &k) - if err != nil { - return nil, errors.New("ssh: failed to parse DSA key: " + err.Error()) - } - if len(rest) > 0 { - return nil, errors.New("ssh: garbage after DSA key") - } - - return &dsa.PrivateKey{ - PublicKey: dsa.PublicKey{ - Parameters: dsa.Parameters{ - P: k.P, - Q: k.Q, - G: k.G, - }, - Y: k.Priv, - }, - X: k.Pub, - }, nil -} - -// Implemented based on the documentation at -// https://github.com/openssh/openssh-portable/blob/master/PROTOCOL.key -func parseOpenSSHPrivateKey(key []byte) (*ed25519.PrivateKey, error) { - magic := append([]byte("openssh-key-v1"), 0) - if !bytes.Equal(magic, key[0:len(magic)]) { - return nil, errors.New("ssh: invalid openssh private key format") - } - remaining := key[len(magic):] - - var w struct { - CipherName string - KdfName string - KdfOpts string - NumKeys uint32 - PubKey []byte - PrivKeyBlock []byte - } - - if err := Unmarshal(remaining, &w); err != nil { - return nil, err - } - - pk1 := struct { - Check1 uint32 - Check2 uint32 - Keytype string - Pub []byte - Priv []byte - Comment string - Pad []byte `ssh:"rest"` - }{} - - if err := Unmarshal(w.PrivKeyBlock, &pk1); err != nil { - return nil, err - } - - if pk1.Check1 != pk1.Check2 { - return nil, errors.New("ssh: checkint mismatch") - } - - // we only handle ed25519 keys currently - if pk1.Keytype != KeyAlgoED25519 { - return nil, errors.New("ssh: unhandled key type") - } - - for i, b := range pk1.Pad { - if int(b) != i+1 { - return nil, errors.New("ssh: padding not as expected") - } - } - - if len(pk1.Priv) != ed25519.PrivateKeySize { - return nil, errors.New("ssh: private key unexpected length") - } - - pk := ed25519.PrivateKey(make([]byte, ed25519.PrivateKeySize)) - copy(pk, pk1.Priv) - return &pk, nil -} diff --git a/vendor/golang.org/x/crypto/ssh/mac.go b/vendor/golang.org/x/crypto/ssh/mac.go deleted file mode 100644 index 07744ad..0000000 --- a/vendor/golang.org/x/crypto/ssh/mac.go +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -// Message authentication support - -import ( - "crypto/hmac" - "crypto/sha1" - "crypto/sha256" - "hash" -) - -type macMode struct { - keySize int - new func(key []byte) hash.Hash -} - -// truncatingMAC wraps around a hash.Hash and truncates the output digest to -// a given size. -type truncatingMAC struct { - length int - hmac hash.Hash -} - -func (t truncatingMAC) Write(data []byte) (int, error) { - return t.hmac.Write(data) -} - -func (t truncatingMAC) Sum(in []byte) []byte { - out := t.hmac.Sum(in) - return out[:len(in)+t.length] -} - -func (t truncatingMAC) Reset() { - t.hmac.Reset() -} - -func (t truncatingMAC) Size() int { - return t.length -} - -func (t truncatingMAC) BlockSize() int { return t.hmac.BlockSize() } - -var macModes = map[string]*macMode{ - "hmac-sha2-256": {32, func(key []byte) hash.Hash { - return hmac.New(sha256.New, key) - }}, - "hmac-sha1": {20, func(key []byte) hash.Hash { - return hmac.New(sha1.New, key) - }}, - "hmac-sha1-96": {20, func(key []byte) hash.Hash { - return truncatingMAC{12, hmac.New(sha1.New, key)} - }}, -} diff --git a/vendor/golang.org/x/crypto/ssh/messages.go b/vendor/golang.org/x/crypto/ssh/messages.go deleted file mode 100644 index e6ecd3a..0000000 --- a/vendor/golang.org/x/crypto/ssh/messages.go +++ /dev/null @@ -1,758 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "bytes" - "encoding/binary" - "errors" - "fmt" - "io" - "math/big" - "reflect" - "strconv" - "strings" -) - -// These are SSH message type numbers. They are scattered around several -// documents but many were taken from [SSH-PARAMETERS]. -const ( - msgIgnore = 2 - msgUnimplemented = 3 - msgDebug = 4 - msgNewKeys = 21 - - // Standard authentication messages - msgUserAuthSuccess = 52 - msgUserAuthBanner = 53 -) - -// SSH messages: -// -// These structures mirror the wire format of the corresponding SSH messages. -// They are marshaled using reflection with the marshal and unmarshal functions -// in this file. The only wrinkle is that a final member of type []byte with a -// ssh tag of "rest" receives the remainder of a packet when unmarshaling. - -// See RFC 4253, section 11.1. -const msgDisconnect = 1 - -// disconnectMsg is the message that signals a disconnect. It is also -// the error type returned from mux.Wait() -type disconnectMsg struct { - Reason uint32 `sshtype:"1"` - Message string - Language string -} - -func (d *disconnectMsg) Error() string { - return fmt.Sprintf("ssh: disconnect, reason %d: %s", d.Reason, d.Message) -} - -// See RFC 4253, section 7.1. -const msgKexInit = 20 - -type kexInitMsg struct { - Cookie [16]byte `sshtype:"20"` - KexAlgos []string - ServerHostKeyAlgos []string - CiphersClientServer []string - CiphersServerClient []string - MACsClientServer []string - MACsServerClient []string - CompressionClientServer []string - CompressionServerClient []string - LanguagesClientServer []string - LanguagesServerClient []string - FirstKexFollows bool - Reserved uint32 -} - -// See RFC 4253, section 8. - -// Diffie-Helman -const msgKexDHInit = 30 - -type kexDHInitMsg struct { - X *big.Int `sshtype:"30"` -} - -const msgKexECDHInit = 30 - -type kexECDHInitMsg struct { - ClientPubKey []byte `sshtype:"30"` -} - -const msgKexECDHReply = 31 - -type kexECDHReplyMsg struct { - HostKey []byte `sshtype:"31"` - EphemeralPubKey []byte - Signature []byte -} - -const msgKexDHReply = 31 - -type kexDHReplyMsg struct { - HostKey []byte `sshtype:"31"` - Y *big.Int - Signature []byte -} - -// See RFC 4253, section 10. -const msgServiceRequest = 5 - -type serviceRequestMsg struct { - Service string `sshtype:"5"` -} - -// See RFC 4253, section 10. -const msgServiceAccept = 6 - -type serviceAcceptMsg struct { - Service string `sshtype:"6"` -} - -// See RFC 4252, section 5. -const msgUserAuthRequest = 50 - -type userAuthRequestMsg struct { - User string `sshtype:"50"` - Service string - Method string - Payload []byte `ssh:"rest"` -} - -// Used for debug printouts of packets. -type userAuthSuccessMsg struct { -} - -// See RFC 4252, section 5.1 -const msgUserAuthFailure = 51 - -type userAuthFailureMsg struct { - Methods []string `sshtype:"51"` - PartialSuccess bool -} - -// See RFC 4256, section 3.2 -const msgUserAuthInfoRequest = 60 -const msgUserAuthInfoResponse = 61 - -type userAuthInfoRequestMsg struct { - User string `sshtype:"60"` - Instruction string - DeprecatedLanguage string - NumPrompts uint32 - Prompts []byte `ssh:"rest"` -} - -// See RFC 4254, section 5.1. -const msgChannelOpen = 90 - -type channelOpenMsg struct { - ChanType string `sshtype:"90"` - PeersId uint32 - PeersWindow uint32 - MaxPacketSize uint32 - TypeSpecificData []byte `ssh:"rest"` -} - -const msgChannelExtendedData = 95 -const msgChannelData = 94 - -// Used for debug print outs of packets. -type channelDataMsg struct { - PeersId uint32 `sshtype:"94"` - Length uint32 - Rest []byte `ssh:"rest"` -} - -// See RFC 4254, section 5.1. -const msgChannelOpenConfirm = 91 - -type channelOpenConfirmMsg struct { - PeersId uint32 `sshtype:"91"` - MyId uint32 - MyWindow uint32 - MaxPacketSize uint32 - TypeSpecificData []byte `ssh:"rest"` -} - -// See RFC 4254, section 5.1. -const msgChannelOpenFailure = 92 - -type channelOpenFailureMsg struct { - PeersId uint32 `sshtype:"92"` - Reason RejectionReason - Message string - Language string -} - -const msgChannelRequest = 98 - -type channelRequestMsg struct { - PeersId uint32 `sshtype:"98"` - Request string - WantReply bool - RequestSpecificData []byte `ssh:"rest"` -} - -// See RFC 4254, section 5.4. -const msgChannelSuccess = 99 - -type channelRequestSuccessMsg struct { - PeersId uint32 `sshtype:"99"` -} - -// See RFC 4254, section 5.4. -const msgChannelFailure = 100 - -type channelRequestFailureMsg struct { - PeersId uint32 `sshtype:"100"` -} - -// See RFC 4254, section 5.3 -const msgChannelClose = 97 - -type channelCloseMsg struct { - PeersId uint32 `sshtype:"97"` -} - -// See RFC 4254, section 5.3 -const msgChannelEOF = 96 - -type channelEOFMsg struct { - PeersId uint32 `sshtype:"96"` -} - -// See RFC 4254, section 4 -const msgGlobalRequest = 80 - -type globalRequestMsg struct { - Type string `sshtype:"80"` - WantReply bool - Data []byte `ssh:"rest"` -} - -// See RFC 4254, section 4 -const msgRequestSuccess = 81 - -type globalRequestSuccessMsg struct { - Data []byte `ssh:"rest" sshtype:"81"` -} - -// See RFC 4254, section 4 -const msgRequestFailure = 82 - -type globalRequestFailureMsg struct { - Data []byte `ssh:"rest" sshtype:"82"` -} - -// See RFC 4254, section 5.2 -const msgChannelWindowAdjust = 93 - -type windowAdjustMsg struct { - PeersId uint32 `sshtype:"93"` - AdditionalBytes uint32 -} - -// See RFC 4252, section 7 -const msgUserAuthPubKeyOk = 60 - -type userAuthPubKeyOkMsg struct { - Algo string `sshtype:"60"` - PubKey []byte -} - -// typeTags returns the possible type bytes for the given reflect.Type, which -// should be a struct. The possible values are separated by a '|' character. -func typeTags(structType reflect.Type) (tags []byte) { - tagStr := structType.Field(0).Tag.Get("sshtype") - - for _, tag := range strings.Split(tagStr, "|") { - i, err := strconv.Atoi(tag) - if err == nil { - tags = append(tags, byte(i)) - } - } - - return tags -} - -func fieldError(t reflect.Type, field int, problem string) error { - if problem != "" { - problem = ": " + problem - } - return fmt.Errorf("ssh: unmarshal error for field %s of type %s%s", t.Field(field).Name, t.Name(), problem) -} - -var errShortRead = errors.New("ssh: short read") - -// Unmarshal parses data in SSH wire format into a structure. The out -// argument should be a pointer to struct. If the first member of the -// struct has the "sshtype" tag set to a '|'-separated set of numbers -// in decimal, the packet must start with one of those numbers. In -// case of error, Unmarshal returns a ParseError or -// UnexpectedMessageError. -func Unmarshal(data []byte, out interface{}) error { - v := reflect.ValueOf(out).Elem() - structType := v.Type() - expectedTypes := typeTags(structType) - - var expectedType byte - if len(expectedTypes) > 0 { - expectedType = expectedTypes[0] - } - - if len(data) == 0 { - return parseError(expectedType) - } - - if len(expectedTypes) > 0 { - goodType := false - for _, e := range expectedTypes { - if e > 0 && data[0] == e { - goodType = true - break - } - } - if !goodType { - return fmt.Errorf("ssh: unexpected message type %d (expected one of %v)", data[0], expectedTypes) - } - data = data[1:] - } - - var ok bool - for i := 0; i < v.NumField(); i++ { - field := v.Field(i) - t := field.Type() - switch t.Kind() { - case reflect.Bool: - if len(data) < 1 { - return errShortRead - } - field.SetBool(data[0] != 0) - data = data[1:] - case reflect.Array: - if t.Elem().Kind() != reflect.Uint8 { - return fieldError(structType, i, "array of unsupported type") - } - if len(data) < t.Len() { - return errShortRead - } - for j, n := 0, t.Len(); j < n; j++ { - field.Index(j).Set(reflect.ValueOf(data[j])) - } - data = data[t.Len():] - case reflect.Uint64: - var u64 uint64 - if u64, data, ok = parseUint64(data); !ok { - return errShortRead - } - field.SetUint(u64) - case reflect.Uint32: - var u32 uint32 - if u32, data, ok = parseUint32(data); !ok { - return errShortRead - } - field.SetUint(uint64(u32)) - case reflect.Uint8: - if len(data) < 1 { - return errShortRead - } - field.SetUint(uint64(data[0])) - data = data[1:] - case reflect.String: - var s []byte - if s, data, ok = parseString(data); !ok { - return fieldError(structType, i, "") - } - field.SetString(string(s)) - case reflect.Slice: - switch t.Elem().Kind() { - case reflect.Uint8: - if structType.Field(i).Tag.Get("ssh") == "rest" { - field.Set(reflect.ValueOf(data)) - data = nil - } else { - var s []byte - if s, data, ok = parseString(data); !ok { - return errShortRead - } - field.Set(reflect.ValueOf(s)) - } - case reflect.String: - var nl []string - if nl, data, ok = parseNameList(data); !ok { - return errShortRead - } - field.Set(reflect.ValueOf(nl)) - default: - return fieldError(structType, i, "slice of unsupported type") - } - case reflect.Ptr: - if t == bigIntType { - var n *big.Int - if n, data, ok = parseInt(data); !ok { - return errShortRead - } - field.Set(reflect.ValueOf(n)) - } else { - return fieldError(structType, i, "pointer to unsupported type") - } - default: - return fieldError(structType, i, fmt.Sprintf("unsupported type: %v", t)) - } - } - - if len(data) != 0 { - return parseError(expectedType) - } - - return nil -} - -// Marshal serializes the message in msg to SSH wire format. The msg -// argument should be a struct or pointer to struct. If the first -// member has the "sshtype" tag set to a number in decimal, that -// number is prepended to the result. If the last of member has the -// "ssh" tag set to "rest", its contents are appended to the output. -func Marshal(msg interface{}) []byte { - out := make([]byte, 0, 64) - return marshalStruct(out, msg) -} - -func marshalStruct(out []byte, msg interface{}) []byte { - v := reflect.Indirect(reflect.ValueOf(msg)) - msgTypes := typeTags(v.Type()) - if len(msgTypes) > 0 { - out = append(out, msgTypes[0]) - } - - for i, n := 0, v.NumField(); i < n; i++ { - field := v.Field(i) - switch t := field.Type(); t.Kind() { - case reflect.Bool: - var v uint8 - if field.Bool() { - v = 1 - } - out = append(out, v) - case reflect.Array: - if t.Elem().Kind() != reflect.Uint8 { - panic(fmt.Sprintf("array of non-uint8 in field %d: %T", i, field.Interface())) - } - for j, l := 0, t.Len(); j < l; j++ { - out = append(out, uint8(field.Index(j).Uint())) - } - case reflect.Uint32: - out = appendU32(out, uint32(field.Uint())) - case reflect.Uint64: - out = appendU64(out, uint64(field.Uint())) - case reflect.Uint8: - out = append(out, uint8(field.Uint())) - case reflect.String: - s := field.String() - out = appendInt(out, len(s)) - out = append(out, s...) - case reflect.Slice: - switch t.Elem().Kind() { - case reflect.Uint8: - if v.Type().Field(i).Tag.Get("ssh") != "rest" { - out = appendInt(out, field.Len()) - } - out = append(out, field.Bytes()...) - case reflect.String: - offset := len(out) - out = appendU32(out, 0) - if n := field.Len(); n > 0 { - for j := 0; j < n; j++ { - f := field.Index(j) - if j != 0 { - out = append(out, ',') - } - out = append(out, f.String()...) - } - // overwrite length value - binary.BigEndian.PutUint32(out[offset:], uint32(len(out)-offset-4)) - } - default: - panic(fmt.Sprintf("slice of unknown type in field %d: %T", i, field.Interface())) - } - case reflect.Ptr: - if t == bigIntType { - var n *big.Int - nValue := reflect.ValueOf(&n) - nValue.Elem().Set(field) - needed := intLength(n) - oldLength := len(out) - - if cap(out)-len(out) < needed { - newOut := make([]byte, len(out), 2*(len(out)+needed)) - copy(newOut, out) - out = newOut - } - out = out[:oldLength+needed] - marshalInt(out[oldLength:], n) - } else { - panic(fmt.Sprintf("pointer to unknown type in field %d: %T", i, field.Interface())) - } - } - } - - return out -} - -var bigOne = big.NewInt(1) - -func parseString(in []byte) (out, rest []byte, ok bool) { - if len(in) < 4 { - return - } - length := binary.BigEndian.Uint32(in) - in = in[4:] - if uint32(len(in)) < length { - return - } - out = in[:length] - rest = in[length:] - ok = true - return -} - -var ( - comma = []byte{','} - emptyNameList = []string{} -) - -func parseNameList(in []byte) (out []string, rest []byte, ok bool) { - contents, rest, ok := parseString(in) - if !ok { - return - } - if len(contents) == 0 { - out = emptyNameList - return - } - parts := bytes.Split(contents, comma) - out = make([]string, len(parts)) - for i, part := range parts { - out[i] = string(part) - } - return -} - -func parseInt(in []byte) (out *big.Int, rest []byte, ok bool) { - contents, rest, ok := parseString(in) - if !ok { - return - } - out = new(big.Int) - - if len(contents) > 0 && contents[0]&0x80 == 0x80 { - // This is a negative number - notBytes := make([]byte, len(contents)) - for i := range notBytes { - notBytes[i] = ^contents[i] - } - out.SetBytes(notBytes) - out.Add(out, bigOne) - out.Neg(out) - } else { - // Positive number - out.SetBytes(contents) - } - ok = true - return -} - -func parseUint32(in []byte) (uint32, []byte, bool) { - if len(in) < 4 { - return 0, nil, false - } - return binary.BigEndian.Uint32(in), in[4:], true -} - -func parseUint64(in []byte) (uint64, []byte, bool) { - if len(in) < 8 { - return 0, nil, false - } - return binary.BigEndian.Uint64(in), in[8:], true -} - -func intLength(n *big.Int) int { - length := 4 /* length bytes */ - if n.Sign() < 0 { - nMinus1 := new(big.Int).Neg(n) - nMinus1.Sub(nMinus1, bigOne) - bitLen := nMinus1.BitLen() - if bitLen%8 == 0 { - // The number will need 0xff padding - length++ - } - length += (bitLen + 7) / 8 - } else if n.Sign() == 0 { - // A zero is the zero length string - } else { - bitLen := n.BitLen() - if bitLen%8 == 0 { - // The number will need 0x00 padding - length++ - } - length += (bitLen + 7) / 8 - } - - return length -} - -func marshalUint32(to []byte, n uint32) []byte { - binary.BigEndian.PutUint32(to, n) - return to[4:] -} - -func marshalUint64(to []byte, n uint64) []byte { - binary.BigEndian.PutUint64(to, n) - return to[8:] -} - -func marshalInt(to []byte, n *big.Int) []byte { - lengthBytes := to - to = to[4:] - length := 0 - - if n.Sign() < 0 { - // A negative number has to be converted to two's-complement - // form. So we'll subtract 1 and invert. If the - // most-significant-bit isn't set then we'll need to pad the - // beginning with 0xff in order to keep the number negative. - nMinus1 := new(big.Int).Neg(n) - nMinus1.Sub(nMinus1, bigOne) - bytes := nMinus1.Bytes() - for i := range bytes { - bytes[i] ^= 0xff - } - if len(bytes) == 0 || bytes[0]&0x80 == 0 { - to[0] = 0xff - to = to[1:] - length++ - } - nBytes := copy(to, bytes) - to = to[nBytes:] - length += nBytes - } else if n.Sign() == 0 { - // A zero is the zero length string - } else { - bytes := n.Bytes() - if len(bytes) > 0 && bytes[0]&0x80 != 0 { - // We'll have to pad this with a 0x00 in order to - // stop it looking like a negative number. - to[0] = 0 - to = to[1:] - length++ - } - nBytes := copy(to, bytes) - to = to[nBytes:] - length += nBytes - } - - lengthBytes[0] = byte(length >> 24) - lengthBytes[1] = byte(length >> 16) - lengthBytes[2] = byte(length >> 8) - lengthBytes[3] = byte(length) - return to -} - -func writeInt(w io.Writer, n *big.Int) { - length := intLength(n) - buf := make([]byte, length) - marshalInt(buf, n) - w.Write(buf) -} - -func writeString(w io.Writer, s []byte) { - var lengthBytes [4]byte - lengthBytes[0] = byte(len(s) >> 24) - lengthBytes[1] = byte(len(s) >> 16) - lengthBytes[2] = byte(len(s) >> 8) - lengthBytes[3] = byte(len(s)) - w.Write(lengthBytes[:]) - w.Write(s) -} - -func stringLength(n int) int { - return 4 + n -} - -func marshalString(to []byte, s []byte) []byte { - to[0] = byte(len(s) >> 24) - to[1] = byte(len(s) >> 16) - to[2] = byte(len(s) >> 8) - to[3] = byte(len(s)) - to = to[4:] - copy(to, s) - return to[len(s):] -} - -var bigIntType = reflect.TypeOf((*big.Int)(nil)) - -// Decode a packet into its corresponding message. -func decode(packet []byte) (interface{}, error) { - var msg interface{} - switch packet[0] { - case msgDisconnect: - msg = new(disconnectMsg) - case msgServiceRequest: - msg = new(serviceRequestMsg) - case msgServiceAccept: - msg = new(serviceAcceptMsg) - case msgKexInit: - msg = new(kexInitMsg) - case msgKexDHInit: - msg = new(kexDHInitMsg) - case msgKexDHReply: - msg = new(kexDHReplyMsg) - case msgUserAuthRequest: - msg = new(userAuthRequestMsg) - case msgUserAuthSuccess: - return new(userAuthSuccessMsg), nil - case msgUserAuthFailure: - msg = new(userAuthFailureMsg) - case msgUserAuthPubKeyOk: - msg = new(userAuthPubKeyOkMsg) - case msgGlobalRequest: - msg = new(globalRequestMsg) - case msgRequestSuccess: - msg = new(globalRequestSuccessMsg) - case msgRequestFailure: - msg = new(globalRequestFailureMsg) - case msgChannelOpen: - msg = new(channelOpenMsg) - case msgChannelData: - msg = new(channelDataMsg) - case msgChannelOpenConfirm: - msg = new(channelOpenConfirmMsg) - case msgChannelOpenFailure: - msg = new(channelOpenFailureMsg) - case msgChannelWindowAdjust: - msg = new(windowAdjustMsg) - case msgChannelEOF: - msg = new(channelEOFMsg) - case msgChannelClose: - msg = new(channelCloseMsg) - case msgChannelRequest: - msg = new(channelRequestMsg) - case msgChannelSuccess: - msg = new(channelRequestSuccessMsg) - case msgChannelFailure: - msg = new(channelRequestFailureMsg) - default: - return nil, unexpectedMessageError(0, packet[0]) - } - if err := Unmarshal(packet, msg); err != nil { - return nil, err - } - return msg, nil -} diff --git a/vendor/golang.org/x/crypto/ssh/mux.go b/vendor/golang.org/x/crypto/ssh/mux.go deleted file mode 100644 index f3a3ddd..0000000 --- a/vendor/golang.org/x/crypto/ssh/mux.go +++ /dev/null @@ -1,330 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "encoding/binary" - "fmt" - "io" - "log" - "sync" - "sync/atomic" -) - -// debugMux, if set, causes messages in the connection protocol to be -// logged. -const debugMux = false - -// chanList is a thread safe channel list. -type chanList struct { - // protects concurrent access to chans - sync.Mutex - - // chans are indexed by the local id of the channel, which the - // other side should send in the PeersId field. - chans []*channel - - // This is a debugging aid: it offsets all IDs by this - // amount. This helps distinguish otherwise identical - // server/client muxes - offset uint32 -} - -// Assigns a channel ID to the given channel. -func (c *chanList) add(ch *channel) uint32 { - c.Lock() - defer c.Unlock() - for i := range c.chans { - if c.chans[i] == nil { - c.chans[i] = ch - return uint32(i) + c.offset - } - } - c.chans = append(c.chans, ch) - return uint32(len(c.chans)-1) + c.offset -} - -// getChan returns the channel for the given ID. -func (c *chanList) getChan(id uint32) *channel { - id -= c.offset - - c.Lock() - defer c.Unlock() - if id < uint32(len(c.chans)) { - return c.chans[id] - } - return nil -} - -func (c *chanList) remove(id uint32) { - id -= c.offset - c.Lock() - if id < uint32(len(c.chans)) { - c.chans[id] = nil - } - c.Unlock() -} - -// dropAll forgets all channels it knows, returning them in a slice. -func (c *chanList) dropAll() []*channel { - c.Lock() - defer c.Unlock() - var r []*channel - - for _, ch := range c.chans { - if ch == nil { - continue - } - r = append(r, ch) - } - c.chans = nil - return r -} - -// mux represents the state for the SSH connection protocol, which -// multiplexes many channels onto a single packet transport. -type mux struct { - conn packetConn - chanList chanList - - incomingChannels chan NewChannel - - globalSentMu sync.Mutex - globalResponses chan interface{} - incomingRequests chan *Request - - errCond *sync.Cond - err error -} - -// When debugging, each new chanList instantiation has a different -// offset. -var globalOff uint32 - -func (m *mux) Wait() error { - m.errCond.L.Lock() - defer m.errCond.L.Unlock() - for m.err == nil { - m.errCond.Wait() - } - return m.err -} - -// newMux returns a mux that runs over the given connection. -func newMux(p packetConn) *mux { - m := &mux{ - conn: p, - incomingChannels: make(chan NewChannel, 16), - globalResponses: make(chan interface{}, 1), - incomingRequests: make(chan *Request, 16), - errCond: newCond(), - } - if debugMux { - m.chanList.offset = atomic.AddUint32(&globalOff, 1) - } - - go m.loop() - return m -} - -func (m *mux) sendMessage(msg interface{}) error { - p := Marshal(msg) - if debugMux { - log.Printf("send global(%d): %#v", m.chanList.offset, msg) - } - return m.conn.writePacket(p) -} - -func (m *mux) SendRequest(name string, wantReply bool, payload []byte) (bool, []byte, error) { - if wantReply { - m.globalSentMu.Lock() - defer m.globalSentMu.Unlock() - } - - if err := m.sendMessage(globalRequestMsg{ - Type: name, - WantReply: wantReply, - Data: payload, - }); err != nil { - return false, nil, err - } - - if !wantReply { - return false, nil, nil - } - - msg, ok := <-m.globalResponses - if !ok { - return false, nil, io.EOF - } - switch msg := msg.(type) { - case *globalRequestFailureMsg: - return false, msg.Data, nil - case *globalRequestSuccessMsg: - return true, msg.Data, nil - default: - return false, nil, fmt.Errorf("ssh: unexpected response to request: %#v", msg) - } -} - -// ackRequest must be called after processing a global request that -// has WantReply set. -func (m *mux) ackRequest(ok bool, data []byte) error { - if ok { - return m.sendMessage(globalRequestSuccessMsg{Data: data}) - } - return m.sendMessage(globalRequestFailureMsg{Data: data}) -} - -func (m *mux) Close() error { - return m.conn.Close() -} - -// loop runs the connection machine. It will process packets until an -// error is encountered. To synchronize on loop exit, use mux.Wait. -func (m *mux) loop() { - var err error - for err == nil { - err = m.onePacket() - } - - for _, ch := range m.chanList.dropAll() { - ch.close() - } - - close(m.incomingChannels) - close(m.incomingRequests) - close(m.globalResponses) - - m.conn.Close() - - m.errCond.L.Lock() - m.err = err - m.errCond.Broadcast() - m.errCond.L.Unlock() - - if debugMux { - log.Println("loop exit", err) - } -} - -// onePacket reads and processes one packet. -func (m *mux) onePacket() error { - packet, err := m.conn.readPacket() - if err != nil { - return err - } - - if debugMux { - if packet[0] == msgChannelData || packet[0] == msgChannelExtendedData { - log.Printf("decoding(%d): data packet - %d bytes", m.chanList.offset, len(packet)) - } else { - p, _ := decode(packet) - log.Printf("decoding(%d): %d %#v - %d bytes", m.chanList.offset, packet[0], p, len(packet)) - } - } - - switch packet[0] { - case msgChannelOpen: - return m.handleChannelOpen(packet) - case msgGlobalRequest, msgRequestSuccess, msgRequestFailure: - return m.handleGlobalPacket(packet) - } - - // assume a channel packet. - if len(packet) < 5 { - return parseError(packet[0]) - } - id := binary.BigEndian.Uint32(packet[1:]) - ch := m.chanList.getChan(id) - if ch == nil { - return fmt.Errorf("ssh: invalid channel %d", id) - } - - return ch.handlePacket(packet) -} - -func (m *mux) handleGlobalPacket(packet []byte) error { - msg, err := decode(packet) - if err != nil { - return err - } - - switch msg := msg.(type) { - case *globalRequestMsg: - m.incomingRequests <- &Request{ - Type: msg.Type, - WantReply: msg.WantReply, - Payload: msg.Data, - mux: m, - } - case *globalRequestSuccessMsg, *globalRequestFailureMsg: - m.globalResponses <- msg - default: - panic(fmt.Sprintf("not a global message %#v", msg)) - } - - return nil -} - -// handleChannelOpen schedules a channel to be Accept()ed. -func (m *mux) handleChannelOpen(packet []byte) error { - var msg channelOpenMsg - if err := Unmarshal(packet, &msg); err != nil { - return err - } - - if msg.MaxPacketSize < minPacketLength || msg.MaxPacketSize > 1<<31 { - failMsg := channelOpenFailureMsg{ - PeersId: msg.PeersId, - Reason: ConnectionFailed, - Message: "invalid request", - Language: "en_US.UTF-8", - } - return m.sendMessage(failMsg) - } - - c := m.newChannel(msg.ChanType, channelInbound, msg.TypeSpecificData) - c.remoteId = msg.PeersId - c.maxRemotePayload = msg.MaxPacketSize - c.remoteWin.add(msg.PeersWindow) - m.incomingChannels <- c - return nil -} - -func (m *mux) OpenChannel(chanType string, extra []byte) (Channel, <-chan *Request, error) { - ch, err := m.openChannel(chanType, extra) - if err != nil { - return nil, nil, err - } - - return ch, ch.incomingRequests, nil -} - -func (m *mux) openChannel(chanType string, extra []byte) (*channel, error) { - ch := m.newChannel(chanType, channelOutbound, extra) - - ch.maxIncomingPayload = channelMaxPacket - - open := channelOpenMsg{ - ChanType: chanType, - PeersWindow: ch.myWindow, - MaxPacketSize: ch.maxIncomingPayload, - TypeSpecificData: extra, - PeersId: ch.localId, - } - if err := m.sendMessage(open); err != nil { - return nil, err - } - - switch msg := (<-ch.msg).(type) { - case *channelOpenConfirmMsg: - return ch, nil - case *channelOpenFailureMsg: - return nil, &OpenChannelError{msg.Reason, msg.Message} - default: - return nil, fmt.Errorf("ssh: unexpected packet in response to channel open: %T", msg) - } -} diff --git a/vendor/golang.org/x/crypto/ssh/server.go b/vendor/golang.org/x/crypto/ssh/server.go deleted file mode 100644 index 37df1b3..0000000 --- a/vendor/golang.org/x/crypto/ssh/server.go +++ /dev/null @@ -1,488 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "bytes" - "errors" - "fmt" - "io" - "net" -) - -// The Permissions type holds fine-grained permissions that are -// specific to a user or a specific authentication method for a -// user. Permissions, except for "source-address", must be enforced in -// the server application layer, after successful authentication. The -// Permissions are passed on in ServerConn so a server implementation -// can honor them. -type Permissions struct { - // Critical options restrict default permissions. Common - // restrictions are "source-address" and "force-command". If - // the server cannot enforce the restriction, or does not - // recognize it, the user should not authenticate. - CriticalOptions map[string]string - - // Extensions are extra functionality that the server may - // offer on authenticated connections. Common extensions are - // "permit-agent-forwarding", "permit-X11-forwarding". Lack of - // support for an extension does not preclude authenticating a - // user. - Extensions map[string]string -} - -// ServerConfig holds server specific configuration data. -type ServerConfig struct { - // Config contains configuration shared between client and server. - Config - - hostKeys []Signer - - // NoClientAuth is true if clients are allowed to connect without - // authenticating. - NoClientAuth bool - - // PasswordCallback, if non-nil, is called when a user - // attempts to authenticate using a password. - PasswordCallback func(conn ConnMetadata, password []byte) (*Permissions, error) - - // PublicKeyCallback, if non-nil, is called when a client attempts public - // key authentication. It must return true if the given public key is - // valid for the given user. For example, see CertChecker.Authenticate. - PublicKeyCallback func(conn ConnMetadata, key PublicKey) (*Permissions, error) - - // KeyboardInteractiveCallback, if non-nil, is called when - // keyboard-interactive authentication is selected (RFC - // 4256). The client object's Challenge function should be - // used to query the user. The callback may offer multiple - // Challenge rounds. To avoid information leaks, the client - // should be presented a challenge even if the user is - // unknown. - KeyboardInteractiveCallback func(conn ConnMetadata, client KeyboardInteractiveChallenge) (*Permissions, error) - - // AuthLogCallback, if non-nil, is called to log all authentication - // attempts. - AuthLogCallback func(conn ConnMetadata, method string, err error) - - // ServerVersion is the version identification string to announce in - // the public handshake. - // If empty, a reasonable default is used. - // Note that RFC 4253 section 4.2 requires that this string start with - // "SSH-2.0-". - ServerVersion string -} - -// AddHostKey adds a private key as a host key. If an existing host -// key exists with the same algorithm, it is overwritten. Each server -// config must have at least one host key. -func (s *ServerConfig) AddHostKey(key Signer) { - for i, k := range s.hostKeys { - if k.PublicKey().Type() == key.PublicKey().Type() { - s.hostKeys[i] = key - return - } - } - - s.hostKeys = append(s.hostKeys, key) -} - -// cachedPubKey contains the results of querying whether a public key is -// acceptable for a user. -type cachedPubKey struct { - user string - pubKeyData []byte - result error - perms *Permissions -} - -const maxCachedPubKeys = 16 - -// pubKeyCache caches tests for public keys. Since SSH clients -// will query whether a public key is acceptable before attempting to -// authenticate with it, we end up with duplicate queries for public -// key validity. The cache only applies to a single ServerConn. -type pubKeyCache struct { - keys []cachedPubKey -} - -// get returns the result for a given user/algo/key tuple. -func (c *pubKeyCache) get(user string, pubKeyData []byte) (cachedPubKey, bool) { - for _, k := range c.keys { - if k.user == user && bytes.Equal(k.pubKeyData, pubKeyData) { - return k, true - } - } - return cachedPubKey{}, false -} - -// add adds the given tuple to the cache. -func (c *pubKeyCache) add(candidate cachedPubKey) { - if len(c.keys) < maxCachedPubKeys { - c.keys = append(c.keys, candidate) - } -} - -// ServerConn is an authenticated SSH connection, as seen from the -// server -type ServerConn struct { - Conn - - // If the succeeding authentication callback returned a - // non-nil Permissions pointer, it is stored here. - Permissions *Permissions -} - -// NewServerConn starts a new SSH server with c as the underlying -// transport. It starts with a handshake and, if the handshake is -// unsuccessful, it closes the connection and returns an error. The -// Request and NewChannel channels must be serviced, or the connection -// will hang. -func NewServerConn(c net.Conn, config *ServerConfig) (*ServerConn, <-chan NewChannel, <-chan *Request, error) { - fullConf := *config - fullConf.SetDefaults() - s := &connection{ - sshConn: sshConn{conn: c}, - } - perms, err := s.serverHandshake(&fullConf) - if err != nil { - c.Close() - return nil, nil, nil, err - } - return &ServerConn{s, perms}, s.mux.incomingChannels, s.mux.incomingRequests, nil -} - -// signAndMarshal signs the data with the appropriate algorithm, -// and serializes the result in SSH wire format. -func signAndMarshal(k Signer, rand io.Reader, data []byte) ([]byte, error) { - sig, err := k.Sign(rand, data) - if err != nil { - return nil, err - } - - return Marshal(sig), nil -} - -// handshake performs key exchange and user authentication. -func (s *connection) serverHandshake(config *ServerConfig) (*Permissions, error) { - if len(config.hostKeys) == 0 { - return nil, errors.New("ssh: server has no host keys") - } - - if !config.NoClientAuth && config.PasswordCallback == nil && config.PublicKeyCallback == nil && config.KeyboardInteractiveCallback == nil { - return nil, errors.New("ssh: no authentication methods configured but NoClientAuth is also false") - } - - if config.ServerVersion != "" { - s.serverVersion = []byte(config.ServerVersion) - } else { - s.serverVersion = []byte(packageVersion) - } - var err error - s.clientVersion, err = exchangeVersions(s.sshConn.conn, s.serverVersion) - if err != nil { - return nil, err - } - - tr := newTransport(s.sshConn.conn, config.Rand, false /* not client */) - s.transport = newServerTransport(tr, s.clientVersion, s.serverVersion, config) - - if err := s.transport.requestInitialKeyChange(); err != nil { - return nil, err - } - - // We just did the key change, so the session ID is established. - s.sessionID = s.transport.getSessionID() - - var packet []byte - if packet, err = s.transport.readPacket(); err != nil { - return nil, err - } - - var serviceRequest serviceRequestMsg - if err = Unmarshal(packet, &serviceRequest); err != nil { - return nil, err - } - if serviceRequest.Service != serviceUserAuth { - return nil, errors.New("ssh: requested service '" + serviceRequest.Service + "' before authenticating") - } - serviceAccept := serviceAcceptMsg{ - Service: serviceUserAuth, - } - if err := s.transport.writePacket(Marshal(&serviceAccept)); err != nil { - return nil, err - } - - perms, err := s.serverAuthenticate(config) - if err != nil { - return nil, err - } - s.mux = newMux(s.transport) - return perms, err -} - -func isAcceptableAlgo(algo string) bool { - switch algo { - case KeyAlgoRSA, KeyAlgoDSA, KeyAlgoECDSA256, KeyAlgoECDSA384, KeyAlgoECDSA521, KeyAlgoED25519, - CertAlgoRSAv01, CertAlgoDSAv01, CertAlgoECDSA256v01, CertAlgoECDSA384v01, CertAlgoECDSA521v01: - return true - } - return false -} - -func checkSourceAddress(addr net.Addr, sourceAddr string) error { - if addr == nil { - return errors.New("ssh: no address known for client, but source-address match required") - } - - tcpAddr, ok := addr.(*net.TCPAddr) - if !ok { - return fmt.Errorf("ssh: remote address %v is not an TCP address when checking source-address match", addr) - } - - if allowedIP := net.ParseIP(sourceAddr); allowedIP != nil { - if bytes.Equal(allowedIP, tcpAddr.IP) { - return nil - } - } else { - _, ipNet, err := net.ParseCIDR(sourceAddr) - if err != nil { - return fmt.Errorf("ssh: error parsing source-address restriction %q: %v", sourceAddr, err) - } - - if ipNet.Contains(tcpAddr.IP) { - return nil - } - } - - return fmt.Errorf("ssh: remote address %v is not allowed because of source-address restriction", addr) -} - -func (s *connection) serverAuthenticate(config *ServerConfig) (*Permissions, error) { - var err error - var cache pubKeyCache - var perms *Permissions - -userAuthLoop: - for { - var userAuthReq userAuthRequestMsg - if packet, err := s.transport.readPacket(); err != nil { - return nil, err - } else if err = Unmarshal(packet, &userAuthReq); err != nil { - return nil, err - } - - if userAuthReq.Service != serviceSSH { - return nil, errors.New("ssh: client attempted to negotiate for unknown service: " + userAuthReq.Service) - } - - s.user = userAuthReq.User - perms = nil - authErr := errors.New("no auth passed yet") - - switch userAuthReq.Method { - case "none": - if config.NoClientAuth { - authErr = nil - } - case "password": - if config.PasswordCallback == nil { - authErr = errors.New("ssh: password auth not configured") - break - } - payload := userAuthReq.Payload - if len(payload) < 1 || payload[0] != 0 { - return nil, parseError(msgUserAuthRequest) - } - payload = payload[1:] - password, payload, ok := parseString(payload) - if !ok || len(payload) > 0 { - return nil, parseError(msgUserAuthRequest) - } - - perms, authErr = config.PasswordCallback(s, password) - case "keyboard-interactive": - if config.KeyboardInteractiveCallback == nil { - authErr = errors.New("ssh: keyboard-interactive auth not configubred") - break - } - - prompter := &sshClientKeyboardInteractive{s} - perms, authErr = config.KeyboardInteractiveCallback(s, prompter.Challenge) - case "publickey": - if config.PublicKeyCallback == nil { - authErr = errors.New("ssh: publickey auth not configured") - break - } - payload := userAuthReq.Payload - if len(payload) < 1 { - return nil, parseError(msgUserAuthRequest) - } - isQuery := payload[0] == 0 - payload = payload[1:] - algoBytes, payload, ok := parseString(payload) - if !ok { - return nil, parseError(msgUserAuthRequest) - } - algo := string(algoBytes) - if !isAcceptableAlgo(algo) { - authErr = fmt.Errorf("ssh: algorithm %q not accepted", algo) - break - } - - pubKeyData, payload, ok := parseString(payload) - if !ok { - return nil, parseError(msgUserAuthRequest) - } - - pubKey, err := ParsePublicKey(pubKeyData) - if err != nil { - return nil, err - } - - candidate, ok := cache.get(s.user, pubKeyData) - if !ok { - candidate.user = s.user - candidate.pubKeyData = pubKeyData - candidate.perms, candidate.result = config.PublicKeyCallback(s, pubKey) - if candidate.result == nil && candidate.perms != nil && candidate.perms.CriticalOptions != nil && candidate.perms.CriticalOptions[sourceAddressCriticalOption] != "" { - candidate.result = checkSourceAddress( - s.RemoteAddr(), - candidate.perms.CriticalOptions[sourceAddressCriticalOption]) - } - cache.add(candidate) - } - - if isQuery { - // The client can query if the given public key - // would be okay. - if len(payload) > 0 { - return nil, parseError(msgUserAuthRequest) - } - - if candidate.result == nil { - okMsg := userAuthPubKeyOkMsg{ - Algo: algo, - PubKey: pubKeyData, - } - if err = s.transport.writePacket(Marshal(&okMsg)); err != nil { - return nil, err - } - continue userAuthLoop - } - authErr = candidate.result - } else { - sig, payload, ok := parseSignature(payload) - if !ok || len(payload) > 0 { - return nil, parseError(msgUserAuthRequest) - } - // Ensure the public key algo and signature algo - // are supported. Compare the private key - // algorithm name that corresponds to algo with - // sig.Format. This is usually the same, but - // for certs, the names differ. - if !isAcceptableAlgo(sig.Format) { - break - } - signedData := buildDataSignedForAuth(s.transport.getSessionID(), userAuthReq, algoBytes, pubKeyData) - - if err := pubKey.Verify(signedData, sig); err != nil { - return nil, err - } - - authErr = candidate.result - perms = candidate.perms - } - default: - authErr = fmt.Errorf("ssh: unknown method %q", userAuthReq.Method) - } - - if config.AuthLogCallback != nil { - config.AuthLogCallback(s, userAuthReq.Method, authErr) - } - - if authErr == nil { - break userAuthLoop - } - - var failureMsg userAuthFailureMsg - if config.PasswordCallback != nil { - failureMsg.Methods = append(failureMsg.Methods, "password") - } - if config.PublicKeyCallback != nil { - failureMsg.Methods = append(failureMsg.Methods, "publickey") - } - if config.KeyboardInteractiveCallback != nil { - failureMsg.Methods = append(failureMsg.Methods, "keyboard-interactive") - } - - if len(failureMsg.Methods) == 0 { - return nil, errors.New("ssh: no authentication methods configured but NoClientAuth is also false") - } - - if err = s.transport.writePacket(Marshal(&failureMsg)); err != nil { - return nil, err - } - } - - if err = s.transport.writePacket([]byte{msgUserAuthSuccess}); err != nil { - return nil, err - } - return perms, nil -} - -// sshClientKeyboardInteractive implements a ClientKeyboardInteractive by -// asking the client on the other side of a ServerConn. -type sshClientKeyboardInteractive struct { - *connection -} - -func (c *sshClientKeyboardInteractive) Challenge(user, instruction string, questions []string, echos []bool) (answers []string, err error) { - if len(questions) != len(echos) { - return nil, errors.New("ssh: echos and questions must have equal length") - } - - var prompts []byte - for i := range questions { - prompts = appendString(prompts, questions[i]) - prompts = appendBool(prompts, echos[i]) - } - - if err := c.transport.writePacket(Marshal(&userAuthInfoRequestMsg{ - Instruction: instruction, - NumPrompts: uint32(len(questions)), - Prompts: prompts, - })); err != nil { - return nil, err - } - - packet, err := c.transport.readPacket() - if err != nil { - return nil, err - } - if packet[0] != msgUserAuthInfoResponse { - return nil, unexpectedMessageError(msgUserAuthInfoResponse, packet[0]) - } - packet = packet[1:] - - n, packet, ok := parseUint32(packet) - if !ok || int(n) != len(questions) { - return nil, parseError(msgUserAuthInfoResponse) - } - - for i := uint32(0); i < n; i++ { - ans, rest, ok := parseString(packet) - if !ok { - return nil, parseError(msgUserAuthInfoResponse) - } - - answers = append(answers, string(ans)) - packet = rest - } - if len(packet) != 0 { - return nil, errors.New("ssh: junk at end of message") - } - - return answers, nil -} diff --git a/vendor/golang.org/x/crypto/ssh/session.go b/vendor/golang.org/x/crypto/ssh/session.go deleted file mode 100644 index 17e2aa8..0000000 --- a/vendor/golang.org/x/crypto/ssh/session.go +++ /dev/null @@ -1,627 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -// Session implements an interactive session described in -// "RFC 4254, section 6". - -import ( - "bytes" - "encoding/binary" - "errors" - "fmt" - "io" - "io/ioutil" - "sync" -) - -type Signal string - -// POSIX signals as listed in RFC 4254 Section 6.10. -const ( - SIGABRT Signal = "ABRT" - SIGALRM Signal = "ALRM" - SIGFPE Signal = "FPE" - SIGHUP Signal = "HUP" - SIGILL Signal = "ILL" - SIGINT Signal = "INT" - SIGKILL Signal = "KILL" - SIGPIPE Signal = "PIPE" - SIGQUIT Signal = "QUIT" - SIGSEGV Signal = "SEGV" - SIGTERM Signal = "TERM" - SIGUSR1 Signal = "USR1" - SIGUSR2 Signal = "USR2" -) - -var signals = map[Signal]int{ - SIGABRT: 6, - SIGALRM: 14, - SIGFPE: 8, - SIGHUP: 1, - SIGILL: 4, - SIGINT: 2, - SIGKILL: 9, - SIGPIPE: 13, - SIGQUIT: 3, - SIGSEGV: 11, - SIGTERM: 15, -} - -type TerminalModes map[uint8]uint32 - -// POSIX terminal mode flags as listed in RFC 4254 Section 8. -const ( - tty_OP_END = 0 - VINTR = 1 - VQUIT = 2 - VERASE = 3 - VKILL = 4 - VEOF = 5 - VEOL = 6 - VEOL2 = 7 - VSTART = 8 - VSTOP = 9 - VSUSP = 10 - VDSUSP = 11 - VREPRINT = 12 - VWERASE = 13 - VLNEXT = 14 - VFLUSH = 15 - VSWTCH = 16 - VSTATUS = 17 - VDISCARD = 18 - IGNPAR = 30 - PARMRK = 31 - INPCK = 32 - ISTRIP = 33 - INLCR = 34 - IGNCR = 35 - ICRNL = 36 - IUCLC = 37 - IXON = 38 - IXANY = 39 - IXOFF = 40 - IMAXBEL = 41 - ISIG = 50 - ICANON = 51 - XCASE = 52 - ECHO = 53 - ECHOE = 54 - ECHOK = 55 - ECHONL = 56 - NOFLSH = 57 - TOSTOP = 58 - IEXTEN = 59 - ECHOCTL = 60 - ECHOKE = 61 - PENDIN = 62 - OPOST = 70 - OLCUC = 71 - ONLCR = 72 - OCRNL = 73 - ONOCR = 74 - ONLRET = 75 - CS7 = 90 - CS8 = 91 - PARENB = 92 - PARODD = 93 - TTY_OP_ISPEED = 128 - TTY_OP_OSPEED = 129 -) - -// A Session represents a connection to a remote command or shell. -type Session struct { - // Stdin specifies the remote process's standard input. - // If Stdin is nil, the remote process reads from an empty - // bytes.Buffer. - Stdin io.Reader - - // Stdout and Stderr specify the remote process's standard - // output and error. - // - // If either is nil, Run connects the corresponding file - // descriptor to an instance of ioutil.Discard. There is a - // fixed amount of buffering that is shared for the two streams. - // If either blocks it may eventually cause the remote - // command to block. - Stdout io.Writer - Stderr io.Writer - - ch Channel // the channel backing this session - started bool // true once Start, Run or Shell is invoked. - copyFuncs []func() error - errors chan error // one send per copyFunc - - // true if pipe method is active - stdinpipe, stdoutpipe, stderrpipe bool - - // stdinPipeWriter is non-nil if StdinPipe has not been called - // and Stdin was specified by the user; it is the write end of - // a pipe connecting Session.Stdin to the stdin channel. - stdinPipeWriter io.WriteCloser - - exitStatus chan error -} - -// SendRequest sends an out-of-band channel request on the SSH channel -// underlying the session. -func (s *Session) SendRequest(name string, wantReply bool, payload []byte) (bool, error) { - return s.ch.SendRequest(name, wantReply, payload) -} - -func (s *Session) Close() error { - return s.ch.Close() -} - -// RFC 4254 Section 6.4. -type setenvRequest struct { - Name string - Value string -} - -// Setenv sets an environment variable that will be applied to any -// command executed by Shell or Run. -func (s *Session) Setenv(name, value string) error { - msg := setenvRequest{ - Name: name, - Value: value, - } - ok, err := s.ch.SendRequest("env", true, Marshal(&msg)) - if err == nil && !ok { - err = errors.New("ssh: setenv failed") - } - return err -} - -// RFC 4254 Section 6.2. -type ptyRequestMsg struct { - Term string - Columns uint32 - Rows uint32 - Width uint32 - Height uint32 - Modelist string -} - -// RequestPty requests the association of a pty with the session on the remote host. -func (s *Session) RequestPty(term string, h, w int, termmodes TerminalModes) error { - var tm []byte - for k, v := range termmodes { - kv := struct { - Key byte - Val uint32 - }{k, v} - - tm = append(tm, Marshal(&kv)...) - } - tm = append(tm, tty_OP_END) - req := ptyRequestMsg{ - Term: term, - Columns: uint32(w), - Rows: uint32(h), - Width: uint32(w * 8), - Height: uint32(h * 8), - Modelist: string(tm), - } - ok, err := s.ch.SendRequest("pty-req", true, Marshal(&req)) - if err == nil && !ok { - err = errors.New("ssh: pty-req failed") - } - return err -} - -// RFC 4254 Section 6.5. -type subsystemRequestMsg struct { - Subsystem string -} - -// RequestSubsystem requests the association of a subsystem with the session on the remote host. -// A subsystem is a predefined command that runs in the background when the ssh session is initiated -func (s *Session) RequestSubsystem(subsystem string) error { - msg := subsystemRequestMsg{ - Subsystem: subsystem, - } - ok, err := s.ch.SendRequest("subsystem", true, Marshal(&msg)) - if err == nil && !ok { - err = errors.New("ssh: subsystem request failed") - } - return err -} - -// RFC 4254 Section 6.9. -type signalMsg struct { - Signal string -} - -// Signal sends the given signal to the remote process. -// sig is one of the SIG* constants. -func (s *Session) Signal(sig Signal) error { - msg := signalMsg{ - Signal: string(sig), - } - - _, err := s.ch.SendRequest("signal", false, Marshal(&msg)) - return err -} - -// RFC 4254 Section 6.5. -type execMsg struct { - Command string -} - -// Start runs cmd on the remote host. Typically, the remote -// server passes cmd to the shell for interpretation. -// A Session only accepts one call to Run, Start or Shell. -func (s *Session) Start(cmd string) error { - if s.started { - return errors.New("ssh: session already started") - } - req := execMsg{ - Command: cmd, - } - - ok, err := s.ch.SendRequest("exec", true, Marshal(&req)) - if err == nil && !ok { - err = fmt.Errorf("ssh: command %v failed", cmd) - } - if err != nil { - return err - } - return s.start() -} - -// Run runs cmd on the remote host. Typically, the remote -// server passes cmd to the shell for interpretation. -// A Session only accepts one call to Run, Start, Shell, Output, -// or CombinedOutput. -// -// The returned error is nil if the command runs, has no problems -// copying stdin, stdout, and stderr, and exits with a zero exit -// status. -// -// If the remote server does not send an exit status, an error of type -// *ExitMissingError is returned. If the command completes -// unsuccessfully or is interrupted by a signal, the error is of type -// *ExitError. Other error types may be returned for I/O problems. -func (s *Session) Run(cmd string) error { - err := s.Start(cmd) - if err != nil { - return err - } - return s.Wait() -} - -// Output runs cmd on the remote host and returns its standard output. -func (s *Session) Output(cmd string) ([]byte, error) { - if s.Stdout != nil { - return nil, errors.New("ssh: Stdout already set") - } - var b bytes.Buffer - s.Stdout = &b - err := s.Run(cmd) - return b.Bytes(), err -} - -type singleWriter struct { - b bytes.Buffer - mu sync.Mutex -} - -func (w *singleWriter) Write(p []byte) (int, error) { - w.mu.Lock() - defer w.mu.Unlock() - return w.b.Write(p) -} - -// CombinedOutput runs cmd on the remote host and returns its combined -// standard output and standard error. -func (s *Session) CombinedOutput(cmd string) ([]byte, error) { - if s.Stdout != nil { - return nil, errors.New("ssh: Stdout already set") - } - if s.Stderr != nil { - return nil, errors.New("ssh: Stderr already set") - } - var b singleWriter - s.Stdout = &b - s.Stderr = &b - err := s.Run(cmd) - return b.b.Bytes(), err -} - -// Shell starts a login shell on the remote host. A Session only -// accepts one call to Run, Start, Shell, Output, or CombinedOutput. -func (s *Session) Shell() error { - if s.started { - return errors.New("ssh: session already started") - } - - ok, err := s.ch.SendRequest("shell", true, nil) - if err == nil && !ok { - return errors.New("ssh: could not start shell") - } - if err != nil { - return err - } - return s.start() -} - -func (s *Session) start() error { - s.started = true - - type F func(*Session) - for _, setupFd := range []F{(*Session).stdin, (*Session).stdout, (*Session).stderr} { - setupFd(s) - } - - s.errors = make(chan error, len(s.copyFuncs)) - for _, fn := range s.copyFuncs { - go func(fn func() error) { - s.errors <- fn() - }(fn) - } - return nil -} - -// Wait waits for the remote command to exit. -// -// The returned error is nil if the command runs, has no problems -// copying stdin, stdout, and stderr, and exits with a zero exit -// status. -// -// If the remote server does not send an exit status, an error of type -// *ExitMissingError is returned. If the command completes -// unsuccessfully or is interrupted by a signal, the error is of type -// *ExitError. Other error types may be returned for I/O problems. -func (s *Session) Wait() error { - if !s.started { - return errors.New("ssh: session not started") - } - waitErr := <-s.exitStatus - - if s.stdinPipeWriter != nil { - s.stdinPipeWriter.Close() - } - var copyError error - for _ = range s.copyFuncs { - if err := <-s.errors; err != nil && copyError == nil { - copyError = err - } - } - if waitErr != nil { - return waitErr - } - return copyError -} - -func (s *Session) wait(reqs <-chan *Request) error { - wm := Waitmsg{status: -1} - // Wait for msg channel to be closed before returning. - for msg := range reqs { - switch msg.Type { - case "exit-status": - wm.status = int(binary.BigEndian.Uint32(msg.Payload)) - case "exit-signal": - var sigval struct { - Signal string - CoreDumped bool - Error string - Lang string - } - if err := Unmarshal(msg.Payload, &sigval); err != nil { - return err - } - - // Must sanitize strings? - wm.signal = sigval.Signal - wm.msg = sigval.Error - wm.lang = sigval.Lang - default: - // This handles keepalives and matches - // OpenSSH's behaviour. - if msg.WantReply { - msg.Reply(false, nil) - } - } - } - if wm.status == 0 { - return nil - } - if wm.status == -1 { - // exit-status was never sent from server - if wm.signal == "" { - // signal was not sent either. RFC 4254 - // section 6.10 recommends against this - // behavior, but it is allowed, so we let - // clients handle it. - return &ExitMissingError{} - } - wm.status = 128 - if _, ok := signals[Signal(wm.signal)]; ok { - wm.status += signals[Signal(wm.signal)] - } - } - - return &ExitError{wm} -} - -// ExitMissingError is returned if a session is torn down cleanly, but -// the server sends no confirmation of the exit status. -type ExitMissingError struct{} - -func (e *ExitMissingError) Error() string { - return "wait: remote command exited without exit status or exit signal" -} - -func (s *Session) stdin() { - if s.stdinpipe { - return - } - var stdin io.Reader - if s.Stdin == nil { - stdin = new(bytes.Buffer) - } else { - r, w := io.Pipe() - go func() { - _, err := io.Copy(w, s.Stdin) - w.CloseWithError(err) - }() - stdin, s.stdinPipeWriter = r, w - } - s.copyFuncs = append(s.copyFuncs, func() error { - _, err := io.Copy(s.ch, stdin) - if err1 := s.ch.CloseWrite(); err == nil && err1 != io.EOF { - err = err1 - } - return err - }) -} - -func (s *Session) stdout() { - if s.stdoutpipe { - return - } - if s.Stdout == nil { - s.Stdout = ioutil.Discard - } - s.copyFuncs = append(s.copyFuncs, func() error { - _, err := io.Copy(s.Stdout, s.ch) - return err - }) -} - -func (s *Session) stderr() { - if s.stderrpipe { - return - } - if s.Stderr == nil { - s.Stderr = ioutil.Discard - } - s.copyFuncs = append(s.copyFuncs, func() error { - _, err := io.Copy(s.Stderr, s.ch.Stderr()) - return err - }) -} - -// sessionStdin reroutes Close to CloseWrite. -type sessionStdin struct { - io.Writer - ch Channel -} - -func (s *sessionStdin) Close() error { - return s.ch.CloseWrite() -} - -// StdinPipe returns a pipe that will be connected to the -// remote command's standard input when the command starts. -func (s *Session) StdinPipe() (io.WriteCloser, error) { - if s.Stdin != nil { - return nil, errors.New("ssh: Stdin already set") - } - if s.started { - return nil, errors.New("ssh: StdinPipe after process started") - } - s.stdinpipe = true - return &sessionStdin{s.ch, s.ch}, nil -} - -// StdoutPipe returns a pipe that will be connected to the -// remote command's standard output when the command starts. -// There is a fixed amount of buffering that is shared between -// stdout and stderr streams. If the StdoutPipe reader is -// not serviced fast enough it may eventually cause the -// remote command to block. -func (s *Session) StdoutPipe() (io.Reader, error) { - if s.Stdout != nil { - return nil, errors.New("ssh: Stdout already set") - } - if s.started { - return nil, errors.New("ssh: StdoutPipe after process started") - } - s.stdoutpipe = true - return s.ch, nil -} - -// StderrPipe returns a pipe that will be connected to the -// remote command's standard error when the command starts. -// There is a fixed amount of buffering that is shared between -// stdout and stderr streams. If the StderrPipe reader is -// not serviced fast enough it may eventually cause the -// remote command to block. -func (s *Session) StderrPipe() (io.Reader, error) { - if s.Stderr != nil { - return nil, errors.New("ssh: Stderr already set") - } - if s.started { - return nil, errors.New("ssh: StderrPipe after process started") - } - s.stderrpipe = true - return s.ch.Stderr(), nil -} - -// newSession returns a new interactive session on the remote host. -func newSession(ch Channel, reqs <-chan *Request) (*Session, error) { - s := &Session{ - ch: ch, - } - s.exitStatus = make(chan error, 1) - go func() { - s.exitStatus <- s.wait(reqs) - }() - - return s, nil -} - -// An ExitError reports unsuccessful completion of a remote command. -type ExitError struct { - Waitmsg -} - -func (e *ExitError) Error() string { - return e.Waitmsg.String() -} - -// Waitmsg stores the information about an exited remote command -// as reported by Wait. -type Waitmsg struct { - status int - signal string - msg string - lang string -} - -// ExitStatus returns the exit status of the remote command. -func (w Waitmsg) ExitStatus() int { - return w.status -} - -// Signal returns the exit signal of the remote command if -// it was terminated violently. -func (w Waitmsg) Signal() string { - return w.signal -} - -// Msg returns the exit message given by the remote command -func (w Waitmsg) Msg() string { - return w.msg -} - -// Lang returns the language tag. See RFC 3066 -func (w Waitmsg) Lang() string { - return w.lang -} - -func (w Waitmsg) String() string { - str := fmt.Sprintf("Process exited with status %v", w.status) - if w.signal != "" { - str += fmt.Sprintf(" from signal %v", w.signal) - } - if w.msg != "" { - str += fmt.Sprintf(". Reason was: %v", w.msg) - } - return str -} diff --git a/vendor/golang.org/x/crypto/ssh/tcpip.go b/vendor/golang.org/x/crypto/ssh/tcpip.go deleted file mode 100644 index 6151241..0000000 --- a/vendor/golang.org/x/crypto/ssh/tcpip.go +++ /dev/null @@ -1,407 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "errors" - "fmt" - "io" - "math/rand" - "net" - "strconv" - "strings" - "sync" - "time" -) - -// Listen requests the remote peer open a listening socket on -// addr. Incoming connections will be available by calling Accept on -// the returned net.Listener. The listener must be serviced, or the -// SSH connection may hang. -func (c *Client) Listen(n, addr string) (net.Listener, error) { - laddr, err := net.ResolveTCPAddr(n, addr) - if err != nil { - return nil, err - } - return c.ListenTCP(laddr) -} - -// Automatic port allocation is broken with OpenSSH before 6.0. See -// also https://bugzilla.mindrot.org/show_bug.cgi?id=2017. In -// particular, OpenSSH 5.9 sends a channelOpenMsg with port number 0, -// rather than the actual port number. This means you can never open -// two different listeners with auto allocated ports. We work around -// this by trying explicit ports until we succeed. - -const openSSHPrefix = "OpenSSH_" - -var portRandomizer = rand.New(rand.NewSource(time.Now().UnixNano())) - -// isBrokenOpenSSHVersion returns true if the given version string -// specifies a version of OpenSSH that is known to have a bug in port -// forwarding. -func isBrokenOpenSSHVersion(versionStr string) bool { - i := strings.Index(versionStr, openSSHPrefix) - if i < 0 { - return false - } - i += len(openSSHPrefix) - j := i - for ; j < len(versionStr); j++ { - if versionStr[j] < '0' || versionStr[j] > '9' { - break - } - } - version, _ := strconv.Atoi(versionStr[i:j]) - return version < 6 -} - -// autoPortListenWorkaround simulates automatic port allocation by -// trying random ports repeatedly. -func (c *Client) autoPortListenWorkaround(laddr *net.TCPAddr) (net.Listener, error) { - var sshListener net.Listener - var err error - const tries = 10 - for i := 0; i < tries; i++ { - addr := *laddr - addr.Port = 1024 + portRandomizer.Intn(60000) - sshListener, err = c.ListenTCP(&addr) - if err == nil { - laddr.Port = addr.Port - return sshListener, err - } - } - return nil, fmt.Errorf("ssh: listen on random port failed after %d tries: %v", tries, err) -} - -// RFC 4254 7.1 -type channelForwardMsg struct { - addr string - rport uint32 -} - -// ListenTCP requests the remote peer open a listening socket -// on laddr. Incoming connections will be available by calling -// Accept on the returned net.Listener. -func (c *Client) ListenTCP(laddr *net.TCPAddr) (net.Listener, error) { - if laddr.Port == 0 && isBrokenOpenSSHVersion(string(c.ServerVersion())) { - return c.autoPortListenWorkaround(laddr) - } - - m := channelForwardMsg{ - laddr.IP.String(), - uint32(laddr.Port), - } - // send message - ok, resp, err := c.SendRequest("tcpip-forward", true, Marshal(&m)) - if err != nil { - return nil, err - } - if !ok { - return nil, errors.New("ssh: tcpip-forward request denied by peer") - } - - // If the original port was 0, then the remote side will - // supply a real port number in the response. - if laddr.Port == 0 { - var p struct { - Port uint32 - } - if err := Unmarshal(resp, &p); err != nil { - return nil, err - } - laddr.Port = int(p.Port) - } - - // Register this forward, using the port number we obtained. - ch := c.forwards.add(*laddr) - - return &tcpListener{laddr, c, ch}, nil -} - -// forwardList stores a mapping between remote -// forward requests and the tcpListeners. -type forwardList struct { - sync.Mutex - entries []forwardEntry -} - -// forwardEntry represents an established mapping of a laddr on a -// remote ssh server to a channel connected to a tcpListener. -type forwardEntry struct { - laddr net.TCPAddr - c chan forward -} - -// forward represents an incoming forwarded tcpip connection. The -// arguments to add/remove/lookup should be address as specified in -// the original forward-request. -type forward struct { - newCh NewChannel // the ssh client channel underlying this forward - raddr *net.TCPAddr // the raddr of the incoming connection -} - -func (l *forwardList) add(addr net.TCPAddr) chan forward { - l.Lock() - defer l.Unlock() - f := forwardEntry{ - addr, - make(chan forward, 1), - } - l.entries = append(l.entries, f) - return f.c -} - -// See RFC 4254, section 7.2 -type forwardedTCPPayload struct { - Addr string - Port uint32 - OriginAddr string - OriginPort uint32 -} - -// parseTCPAddr parses the originating address from the remote into a *net.TCPAddr. -func parseTCPAddr(addr string, port uint32) (*net.TCPAddr, error) { - if port == 0 || port > 65535 { - return nil, fmt.Errorf("ssh: port number out of range: %d", port) - } - ip := net.ParseIP(string(addr)) - if ip == nil { - return nil, fmt.Errorf("ssh: cannot parse IP address %q", addr) - } - return &net.TCPAddr{IP: ip, Port: int(port)}, nil -} - -func (l *forwardList) handleChannels(in <-chan NewChannel) { - for ch := range in { - var payload forwardedTCPPayload - if err := Unmarshal(ch.ExtraData(), &payload); err != nil { - ch.Reject(ConnectionFailed, "could not parse forwarded-tcpip payload: "+err.Error()) - continue - } - - // RFC 4254 section 7.2 specifies that incoming - // addresses should list the address, in string - // format. It is implied that this should be an IP - // address, as it would be impossible to connect to it - // otherwise. - laddr, err := parseTCPAddr(payload.Addr, payload.Port) - if err != nil { - ch.Reject(ConnectionFailed, err.Error()) - continue - } - raddr, err := parseTCPAddr(payload.OriginAddr, payload.OriginPort) - if err != nil { - ch.Reject(ConnectionFailed, err.Error()) - continue - } - - if ok := l.forward(*laddr, *raddr, ch); !ok { - // Section 7.2, implementations MUST reject spurious incoming - // connections. - ch.Reject(Prohibited, "no forward for address") - continue - } - } -} - -// remove removes the forward entry, and the channel feeding its -// listener. -func (l *forwardList) remove(addr net.TCPAddr) { - l.Lock() - defer l.Unlock() - for i, f := range l.entries { - if addr.IP.Equal(f.laddr.IP) && addr.Port == f.laddr.Port { - l.entries = append(l.entries[:i], l.entries[i+1:]...) - close(f.c) - return - } - } -} - -// closeAll closes and clears all forwards. -func (l *forwardList) closeAll() { - l.Lock() - defer l.Unlock() - for _, f := range l.entries { - close(f.c) - } - l.entries = nil -} - -func (l *forwardList) forward(laddr, raddr net.TCPAddr, ch NewChannel) bool { - l.Lock() - defer l.Unlock() - for _, f := range l.entries { - if laddr.IP.Equal(f.laddr.IP) && laddr.Port == f.laddr.Port { - f.c <- forward{ch, &raddr} - return true - } - } - return false -} - -type tcpListener struct { - laddr *net.TCPAddr - - conn *Client - in <-chan forward -} - -// Accept waits for and returns the next connection to the listener. -func (l *tcpListener) Accept() (net.Conn, error) { - s, ok := <-l.in - if !ok { - return nil, io.EOF - } - ch, incoming, err := s.newCh.Accept() - if err != nil { - return nil, err - } - go DiscardRequests(incoming) - - return &tcpChanConn{ - Channel: ch, - laddr: l.laddr, - raddr: s.raddr, - }, nil -} - -// Close closes the listener. -func (l *tcpListener) Close() error { - m := channelForwardMsg{ - l.laddr.IP.String(), - uint32(l.laddr.Port), - } - - // this also closes the listener. - l.conn.forwards.remove(*l.laddr) - ok, _, err := l.conn.SendRequest("cancel-tcpip-forward", true, Marshal(&m)) - if err == nil && !ok { - err = errors.New("ssh: cancel-tcpip-forward failed") - } - return err -} - -// Addr returns the listener's network address. -func (l *tcpListener) Addr() net.Addr { - return l.laddr -} - -// Dial initiates a connection to the addr from the remote host. -// The resulting connection has a zero LocalAddr() and RemoteAddr(). -func (c *Client) Dial(n, addr string) (net.Conn, error) { - // Parse the address into host and numeric port. - host, portString, err := net.SplitHostPort(addr) - if err != nil { - return nil, err - } - port, err := strconv.ParseUint(portString, 10, 16) - if err != nil { - return nil, err - } - // Use a zero address for local and remote address. - zeroAddr := &net.TCPAddr{ - IP: net.IPv4zero, - Port: 0, - } - ch, err := c.dial(net.IPv4zero.String(), 0, host, int(port)) - if err != nil { - return nil, err - } - return &tcpChanConn{ - Channel: ch, - laddr: zeroAddr, - raddr: zeroAddr, - }, nil -} - -// DialTCP connects to the remote address raddr on the network net, -// which must be "tcp", "tcp4", or "tcp6". If laddr is not nil, it is used -// as the local address for the connection. -func (c *Client) DialTCP(n string, laddr, raddr *net.TCPAddr) (net.Conn, error) { - if laddr == nil { - laddr = &net.TCPAddr{ - IP: net.IPv4zero, - Port: 0, - } - } - ch, err := c.dial(laddr.IP.String(), laddr.Port, raddr.IP.String(), raddr.Port) - if err != nil { - return nil, err - } - return &tcpChanConn{ - Channel: ch, - laddr: laddr, - raddr: raddr, - }, nil -} - -// RFC 4254 7.2 -type channelOpenDirectMsg struct { - raddr string - rport uint32 - laddr string - lport uint32 -} - -func (c *Client) dial(laddr string, lport int, raddr string, rport int) (Channel, error) { - msg := channelOpenDirectMsg{ - raddr: raddr, - rport: uint32(rport), - laddr: laddr, - lport: uint32(lport), - } - ch, in, err := c.OpenChannel("direct-tcpip", Marshal(&msg)) - if err != nil { - return nil, err - } - go DiscardRequests(in) - return ch, err -} - -type tcpChan struct { - Channel // the backing channel -} - -// tcpChanConn fulfills the net.Conn interface without -// the tcpChan having to hold laddr or raddr directly. -type tcpChanConn struct { - Channel - laddr, raddr net.Addr -} - -// LocalAddr returns the local network address. -func (t *tcpChanConn) LocalAddr() net.Addr { - return t.laddr -} - -// RemoteAddr returns the remote network address. -func (t *tcpChanConn) RemoteAddr() net.Addr { - return t.raddr -} - -// SetDeadline sets the read and write deadlines associated -// with the connection. -func (t *tcpChanConn) SetDeadline(deadline time.Time) error { - if err := t.SetReadDeadline(deadline); err != nil { - return err - } - return t.SetWriteDeadline(deadline) -} - -// SetReadDeadline sets the read deadline. -// A zero value for t means Read will not time out. -// After the deadline, the error from Read will implement net.Error -// with Timeout() == true. -func (t *tcpChanConn) SetReadDeadline(deadline time.Time) error { - return errors.New("ssh: tcpChan: deadline not supported") -} - -// SetWriteDeadline exists to satisfy the net.Conn interface -// but is not implemented by this type. It always returns an error. -func (t *tcpChanConn) SetWriteDeadline(deadline time.Time) error { - return errors.New("ssh: tcpChan: deadline not supported") -} diff --git a/vendor/golang.org/x/crypto/ssh/transport.go b/vendor/golang.org/x/crypto/ssh/transport.go deleted file mode 100644 index 62fba62..0000000 --- a/vendor/golang.org/x/crypto/ssh/transport.go +++ /dev/null @@ -1,333 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "bufio" - "errors" - "io" -) - -const ( - gcmCipherID = "aes128-gcm@openssh.com" - aes128cbcID = "aes128-cbc" - tripledescbcID = "3des-cbc" -) - -// packetConn represents a transport that implements packet based -// operations. -type packetConn interface { - // Encrypt and send a packet of data to the remote peer. - writePacket(packet []byte) error - - // Read a packet from the connection - readPacket() ([]byte, error) - - // Close closes the write-side of the connection. - Close() error -} - -// transport is the keyingTransport that implements the SSH packet -// protocol. -type transport struct { - reader connectionState - writer connectionState - - bufReader *bufio.Reader - bufWriter *bufio.Writer - rand io.Reader - - io.Closer -} - -// packetCipher represents a combination of SSH encryption/MAC -// protocol. A single instance should be used for one direction only. -type packetCipher interface { - // writePacket encrypts the packet and writes it to w. The - // contents of the packet are generally scrambled. - writePacket(seqnum uint32, w io.Writer, rand io.Reader, packet []byte) error - - // readPacket reads and decrypts a packet of data. The - // returned packet may be overwritten by future calls of - // readPacket. - readPacket(seqnum uint32, r io.Reader) ([]byte, error) -} - -// connectionState represents one side (read or write) of the -// connection. This is necessary because each direction has its own -// keys, and can even have its own algorithms -type connectionState struct { - packetCipher - seqNum uint32 - dir direction - pendingKeyChange chan packetCipher -} - -// prepareKeyChange sets up key material for a keychange. The key changes in -// both directions are triggered by reading and writing a msgNewKey packet -// respectively. -func (t *transport) prepareKeyChange(algs *algorithms, kexResult *kexResult) error { - if ciph, err := newPacketCipher(t.reader.dir, algs.r, kexResult); err != nil { - return err - } else { - t.reader.pendingKeyChange <- ciph - } - - if ciph, err := newPacketCipher(t.writer.dir, algs.w, kexResult); err != nil { - return err - } else { - t.writer.pendingKeyChange <- ciph - } - - return nil -} - -// Read and decrypt next packet. -func (t *transport) readPacket() ([]byte, error) { - return t.reader.readPacket(t.bufReader) -} - -func (s *connectionState) readPacket(r *bufio.Reader) ([]byte, error) { - packet, err := s.packetCipher.readPacket(s.seqNum, r) - s.seqNum++ - if err == nil && len(packet) == 0 { - err = errors.New("ssh: zero length packet") - } - - if len(packet) > 0 { - switch packet[0] { - case msgNewKeys: - select { - case cipher := <-s.pendingKeyChange: - s.packetCipher = cipher - default: - return nil, errors.New("ssh: got bogus newkeys message.") - } - - case msgDisconnect: - // Transform a disconnect message into an - // error. Since this is lowest level at which - // we interpret message types, doing it here - // ensures that we don't have to handle it - // elsewhere. - var msg disconnectMsg - if err := Unmarshal(packet, &msg); err != nil { - return nil, err - } - return nil, &msg - } - } - - // The packet may point to an internal buffer, so copy the - // packet out here. - fresh := make([]byte, len(packet)) - copy(fresh, packet) - - return fresh, err -} - -func (t *transport) writePacket(packet []byte) error { - return t.writer.writePacket(t.bufWriter, t.rand, packet) -} - -func (s *connectionState) writePacket(w *bufio.Writer, rand io.Reader, packet []byte) error { - changeKeys := len(packet) > 0 && packet[0] == msgNewKeys - - err := s.packetCipher.writePacket(s.seqNum, w, rand, packet) - if err != nil { - return err - } - if err = w.Flush(); err != nil { - return err - } - s.seqNum++ - if changeKeys { - select { - case cipher := <-s.pendingKeyChange: - s.packetCipher = cipher - default: - panic("ssh: no key material for msgNewKeys") - } - } - return err -} - -func newTransport(rwc io.ReadWriteCloser, rand io.Reader, isClient bool) *transport { - t := &transport{ - bufReader: bufio.NewReader(rwc), - bufWriter: bufio.NewWriter(rwc), - rand: rand, - reader: connectionState{ - packetCipher: &streamPacketCipher{cipher: noneCipher{}}, - pendingKeyChange: make(chan packetCipher, 1), - }, - writer: connectionState{ - packetCipher: &streamPacketCipher{cipher: noneCipher{}}, - pendingKeyChange: make(chan packetCipher, 1), - }, - Closer: rwc, - } - if isClient { - t.reader.dir = serverKeys - t.writer.dir = clientKeys - } else { - t.reader.dir = clientKeys - t.writer.dir = serverKeys - } - - return t -} - -type direction struct { - ivTag []byte - keyTag []byte - macKeyTag []byte -} - -var ( - serverKeys = direction{[]byte{'B'}, []byte{'D'}, []byte{'F'}} - clientKeys = direction{[]byte{'A'}, []byte{'C'}, []byte{'E'}} -) - -// generateKeys generates key material for IV, MAC and encryption. -func generateKeys(d direction, algs directionAlgorithms, kex *kexResult) (iv, key, macKey []byte) { - cipherMode := cipherModes[algs.Cipher] - macMode := macModes[algs.MAC] - - iv = make([]byte, cipherMode.ivSize) - key = make([]byte, cipherMode.keySize) - macKey = make([]byte, macMode.keySize) - - generateKeyMaterial(iv, d.ivTag, kex) - generateKeyMaterial(key, d.keyTag, kex) - generateKeyMaterial(macKey, d.macKeyTag, kex) - return -} - -// setupKeys sets the cipher and MAC keys from kex.K, kex.H and sessionId, as -// described in RFC 4253, section 6.4. direction should either be serverKeys -// (to setup server->client keys) or clientKeys (for client->server keys). -func newPacketCipher(d direction, algs directionAlgorithms, kex *kexResult) (packetCipher, error) { - iv, key, macKey := generateKeys(d, algs, kex) - - if algs.Cipher == gcmCipherID { - return newGCMCipher(iv, key, macKey) - } - - if algs.Cipher == aes128cbcID { - return newAESCBCCipher(iv, key, macKey, algs) - } - - if algs.Cipher == tripledescbcID { - return newTripleDESCBCCipher(iv, key, macKey, algs) - } - - c := &streamPacketCipher{ - mac: macModes[algs.MAC].new(macKey), - } - c.macResult = make([]byte, c.mac.Size()) - - var err error - c.cipher, err = cipherModes[algs.Cipher].createStream(key, iv) - if err != nil { - return nil, err - } - - return c, nil -} - -// generateKeyMaterial fills out with key material generated from tag, K, H -// and sessionId, as specified in RFC 4253, section 7.2. -func generateKeyMaterial(out, tag []byte, r *kexResult) { - var digestsSoFar []byte - - h := r.Hash.New() - for len(out) > 0 { - h.Reset() - h.Write(r.K) - h.Write(r.H) - - if len(digestsSoFar) == 0 { - h.Write(tag) - h.Write(r.SessionID) - } else { - h.Write(digestsSoFar) - } - - digest := h.Sum(nil) - n := copy(out, digest) - out = out[n:] - if len(out) > 0 { - digestsSoFar = append(digestsSoFar, digest...) - } - } -} - -const packageVersion = "SSH-2.0-Go" - -// Sends and receives a version line. The versionLine string should -// be US ASCII, start with "SSH-2.0-", and should not include a -// newline. exchangeVersions returns the other side's version line. -func exchangeVersions(rw io.ReadWriter, versionLine []byte) (them []byte, err error) { - // Contrary to the RFC, we do not ignore lines that don't - // start with "SSH-2.0-" to make the library usable with - // nonconforming servers. - for _, c := range versionLine { - // The spec disallows non US-ASCII chars, and - // specifically forbids null chars. - if c < 32 { - return nil, errors.New("ssh: junk character in version line") - } - } - if _, err = rw.Write(append(versionLine, '\r', '\n')); err != nil { - return - } - - them, err = readVersion(rw) - return them, err -} - -// maxVersionStringBytes is the maximum number of bytes that we'll -// accept as a version string. RFC 4253 section 4.2 limits this at 255 -// chars -const maxVersionStringBytes = 255 - -// Read version string as specified by RFC 4253, section 4.2. -func readVersion(r io.Reader) ([]byte, error) { - versionString := make([]byte, 0, 64) - var ok bool - var buf [1]byte - - for len(versionString) < maxVersionStringBytes { - _, err := io.ReadFull(r, buf[:]) - if err != nil { - return nil, err - } - // The RFC says that the version should be terminated with \r\n - // but several SSH servers actually only send a \n. - if buf[0] == '\n' { - ok = true - break - } - - // non ASCII chars are disallowed, but we are lenient, - // since Go doesn't use null-terminated strings. - - // The RFC allows a comment after a space, however, - // all of it (version and comments) goes into the - // session hash. - versionString = append(versionString, buf[0]) - } - - if !ok { - return nil, errors.New("ssh: overflow reading version string") - } - - // There might be a '\r' on the end which we should remove. - if len(versionString) > 0 && versionString[len(versionString)-1] == '\r' { - versionString = versionString[:len(versionString)-1] - } - return versionString, nil -} diff --git a/vendor/golang.org/x/sys/LICENSE b/vendor/golang.org/x/sys/LICENSE deleted file mode 100644 index 6a66aea..0000000 --- a/vendor/golang.org/x/sys/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2009 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/golang.org/x/sys/PATENTS b/vendor/golang.org/x/sys/PATENTS deleted file mode 100644 index 7330990..0000000 --- a/vendor/golang.org/x/sys/PATENTS +++ /dev/null @@ -1,22 +0,0 @@ -Additional IP Rights Grant (Patents) - -"This implementation" means the copyrightable works distributed by -Google as part of the Go project. - -Google hereby grants to You a perpetual, worldwide, non-exclusive, -no-charge, royalty-free, irrevocable (except as stated in this section) -patent license to make, have made, use, offer to sell, sell, import, -transfer and otherwise run, modify and propagate the contents of this -implementation of Go, where such license applies only to those patent -claims, both currently owned or controlled by Google and acquired in -the future, licensable by Google that are necessarily infringed by this -implementation of Go. This grant does not include claims that would be -infringed only as a consequence of further modification of this -implementation. If you or your agent or exclusive licensee institute or -order or agree to the institution of patent litigation against any -entity (including a cross-claim or counterclaim in a lawsuit) alleging -that this implementation of Go or any code incorporated within this -implementation of Go constitutes direct or contributory patent -infringement, or inducement of patent infringement, then any patent -rights granted to you under this License for this implementation of Go -shall terminate as of the date such litigation is filed. diff --git a/vendor/golang.org/x/sys/unix/README.md b/vendor/golang.org/x/sys/unix/README.md deleted file mode 100644 index bc6f603..0000000 --- a/vendor/golang.org/x/sys/unix/README.md +++ /dev/null @@ -1,173 +0,0 @@ -# Building `sys/unix` - -The sys/unix package provides access to the raw system call interface of the -underlying operating system. See: https://godoc.org/golang.org/x/sys/unix - -Porting Go to a new architecture/OS combination or adding syscalls, types, or -constants to an existing architecture/OS pair requires some manual effort; -however, there are tools that automate much of the process. - -## Build Systems - -There are currently two ways we generate the necessary files. We are currently -migrating the build system to use containers so the builds are reproducible. -This is being done on an OS-by-OS basis. Please update this documentation as -components of the build system change. - -### Old Build System (currently for `GOOS != "Linux" || GOARCH == "sparc64"`) - -The old build system generates the Go files based on the C header files -present on your system. This means that files -for a given GOOS/GOARCH pair must be generated on a system with that OS and -architecture. This also means that the generated code can differ from system -to system, based on differences in the header files. - -To avoid this, if you are using the old build system, only generate the Go -files on an installation with unmodified header files. It is also important to -keep track of which version of the OS the files were generated from (ex. -Darwin 14 vs Darwin 15). This makes it easier to track the progress of changes -and have each OS upgrade correspond to a single change. - -To build the files for your current OS and architecture, make sure GOOS and -GOARCH are set correctly and run `mkall.sh`. This will generate the files for -your specific system. Running `mkall.sh -n` shows the commands that will be run. - -Requirements: bash, perl, go - -### New Build System (currently for `GOOS == "Linux" && GOARCH != "sparc64"`) - -The new build system uses a Docker container to generate the go files directly -from source checkouts of the kernel and various system libraries. This means -that on any platform that supports Docker, all the files using the new build -system can be generated at once, and generated files will not change based on -what the person running the scripts has installed on their computer. - -The OS specific files for the new build system are located in the `${GOOS}` -directory, and the build is coordinated by the `${GOOS}/mkall.go` program. When -the kernel or system library updates, modify the Dockerfile at -`${GOOS}/Dockerfile` to checkout the new release of the source. - -To build all the files under the new build system, you must be on an amd64/Linux -system and have your GOOS and GOARCH set accordingly. Running `mkall.sh` will -then generate all of the files for all of the GOOS/GOARCH pairs in the new build -system. Running `mkall.sh -n` shows the commands that will be run. - -Requirements: bash, perl, go, docker - -## Component files - -This section describes the various files used in the code generation process. -It also contains instructions on how to modify these files to add a new -architecture/OS or to add additional syscalls, types, or constants. Note that -if you are using the new build system, the scripts cannot be called normally. -They must be called from within the docker container. - -### asm files - -The hand-written assembly file at `asm_${GOOS}_${GOARCH}.s` implements system -call dispatch. There are three entry points: -``` - func Syscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr) - func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr) - func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr) -``` -The first and second are the standard ones; they differ only in how many -arguments can be passed to the kernel. The third is for low-level use by the -ForkExec wrapper. Unlike the first two, it does not call into the scheduler to -let it know that a system call is running. - -When porting Go to an new architecture/OS, this file must be implemented for -each GOOS/GOARCH pair. - -### mksysnum - -Mksysnum is a script located at `${GOOS}/mksysnum.pl` (or `mksysnum_${GOOS}.pl` -for the old system). This script takes in a list of header files containing the -syscall number declarations and parses them to produce the corresponding list of -Go numeric constants. See `zsysnum_${GOOS}_${GOARCH}.go` for the generated -constants. - -Adding new syscall numbers is mostly done by running the build on a sufficiently -new installation of the target OS (or updating the source checkouts for the -new build system). However, depending on the OS, you make need to update the -parsing in mksysnum. - -### mksyscall.pl - -The `syscall.go`, `syscall_${GOOS}.go`, `syscall_${GOOS}_${GOARCH}.go` are -hand-written Go files which implement system calls (for unix, the specific OS, -or the specific OS/Architecture pair respectively) that need special handling -and list `//sys` comments giving prototypes for ones that can be generated. - -The mksyscall.pl script takes the `//sys` and `//sysnb` comments and converts -them into syscalls. This requires the name of the prototype in the comment to -match a syscall number in the `zsysnum_${GOOS}_${GOARCH}.go` file. The function -prototype can be exported (capitalized) or not. - -Adding a new syscall often just requires adding a new `//sys` function prototype -with the desired arguments and a capitalized name so it is exported. However, if -you want the interface to the syscall to be different, often one will make an -unexported `//sys` prototype, an then write a custom wrapper in -`syscall_${GOOS}.go`. - -### types files - -For each OS, there is a hand-written Go file at `${GOOS}/types.go` (or -`types_${GOOS}.go` on the old system). This file includes standard C headers and -creates Go type aliases to the corresponding C types. The file is then fed -through godef to get the Go compatible definitions. Finally, the generated code -is fed though mkpost.go to format the code correctly and remove any hidden or -private identifiers. This cleaned-up code is written to -`ztypes_${GOOS}_${GOARCH}.go`. - -The hardest part about preparing this file is figuring out which headers to -include and which symbols need to be `#define`d to get the actual data -structures that pass through to the kernel system calls. Some C libraries -preset alternate versions for binary compatibility and translate them on the -way in and out of system calls, but there is almost always a `#define` that can -get the real ones. -See `types_darwin.go` and `linux/types.go` for examples. - -To add a new type, add in the necessary include statement at the top of the -file (if it is not already there) and add in a type alias line. Note that if -your type is significantly different on different architectures, you may need -some `#if/#elif` macros in your include statements. - -### mkerrors.sh - -This script is used to generate the system's various constants. This doesn't -just include the error numbers and error strings, but also the signal numbers -an a wide variety of miscellaneous constants. The constants come from the list -of include files in the `includes_${uname}` variable. A regex then picks out -the desired `#define` statements, and generates the corresponding Go constants. -The error numbers and strings are generated from `#include `, and the -signal numbers and strings are generated from `#include `. All of -these constants are written to `zerrors_${GOOS}_${GOARCH}.go` via a C program, -`_errors.c`, which prints out all the constants. - -To add a constant, add the header that includes it to the appropriate variable. -Then, edit the regex (if necessary) to match the desired constant. Avoid making -the regex too broad to avoid matching unintended constants. - - -## Generated files - -### `zerror_${GOOS}_${GOARCH}.go` - -A file containing all of the system's generated error numbers, error strings, -signal numbers, and constants. Generated by `mkerrors.sh` (see above). - -### `zsyscall_${GOOS}_${GOARCH}.go` - -A file containing all the generated syscalls for a specific GOOS and GOARCH. -Generated by `mksyscall.pl` (see above). - -### `zsysnum_${GOOS}_${GOARCH}.go` - -A list of numeric constants for all the syscall number of the specific GOOS -and GOARCH. Generated by mksysnum (see above). - -### `ztypes_${GOOS}_${GOARCH}.go` - -A file containing Go types for passing into (or returning from) syscalls. -Generated by godefs and the types file (see above). diff --git a/vendor/golang.org/x/sys/unix/asm_darwin_386.s b/vendor/golang.org/x/sys/unix/asm_darwin_386.s deleted file mode 100644 index 8a72783..0000000 --- a/vendor/golang.org/x/sys/unix/asm_darwin_386.s +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !gccgo - -#include "textflag.h" - -// -// System call support for 386, Darwin -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-28 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-40 - JMP syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-52 - JMP syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-28 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 - JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_darwin_amd64.s b/vendor/golang.org/x/sys/unix/asm_darwin_amd64.s deleted file mode 100644 index 6321421..0000000 --- a/vendor/golang.org/x/sys/unix/asm_darwin_amd64.s +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !gccgo - -#include "textflag.h" - -// -// System call support for AMD64, Darwin -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-56 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-80 - JMP syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-104 - JMP syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-56 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 - JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_darwin_arm.s b/vendor/golang.org/x/sys/unix/asm_darwin_arm.s deleted file mode 100644 index 333242d..0000000 --- a/vendor/golang.org/x/sys/unix/asm_darwin_arm.s +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !gccgo -// +build arm,darwin - -#include "textflag.h" - -// -// System call support for ARM, Darwin -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-28 - B syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-40 - B syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-52 - B syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-28 - B syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 - B syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_darwin_arm64.s b/vendor/golang.org/x/sys/unix/asm_darwin_arm64.s deleted file mode 100644 index 97e0174..0000000 --- a/vendor/golang.org/x/sys/unix/asm_darwin_arm64.s +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !gccgo -// +build arm64,darwin - -#include "textflag.h" - -// -// System call support for AMD64, Darwin -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-56 - B syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-80 - B syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-104 - B syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-56 - B syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 - B syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_dragonfly_amd64.s b/vendor/golang.org/x/sys/unix/asm_dragonfly_amd64.s deleted file mode 100644 index d5ed672..0000000 --- a/vendor/golang.org/x/sys/unix/asm_dragonfly_amd64.s +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !gccgo - -#include "textflag.h" - -// -// System call support for AMD64, DragonFly -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-64 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-88 - JMP syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-112 - JMP syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-64 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-88 - JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_freebsd_386.s b/vendor/golang.org/x/sys/unix/asm_freebsd_386.s deleted file mode 100644 index c9a0a26..0000000 --- a/vendor/golang.org/x/sys/unix/asm_freebsd_386.s +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !gccgo - -#include "textflag.h" - -// -// System call support for 386, FreeBSD -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-28 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-40 - JMP syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-52 - JMP syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-28 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 - JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_freebsd_amd64.s b/vendor/golang.org/x/sys/unix/asm_freebsd_amd64.s deleted file mode 100644 index 3517247..0000000 --- a/vendor/golang.org/x/sys/unix/asm_freebsd_amd64.s +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !gccgo - -#include "textflag.h" - -// -// System call support for AMD64, FreeBSD -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-56 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-80 - JMP syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-104 - JMP syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-56 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 - JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_freebsd_arm.s b/vendor/golang.org/x/sys/unix/asm_freebsd_arm.s deleted file mode 100644 index 9227c87..0000000 --- a/vendor/golang.org/x/sys/unix/asm_freebsd_arm.s +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !gccgo - -#include "textflag.h" - -// -// System call support for ARM, FreeBSD -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-28 - B syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-40 - B syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-52 - B syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-28 - B syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 - B syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_linux_386.s b/vendor/golang.org/x/sys/unix/asm_linux_386.s deleted file mode 100644 index 4db2909..0000000 --- a/vendor/golang.org/x/sys/unix/asm_linux_386.s +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !gccgo - -#include "textflag.h" - -// -// System calls for 386, Linux -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-28 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-40 - JMP syscall·Syscall6(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-28 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 - JMP syscall·RawSyscall6(SB) - -TEXT ·socketcall(SB),NOSPLIT,$0-36 - JMP syscall·socketcall(SB) - -TEXT ·rawsocketcall(SB),NOSPLIT,$0-36 - JMP syscall·rawsocketcall(SB) - -TEXT ·seek(SB),NOSPLIT,$0-28 - JMP syscall·seek(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_linux_amd64.s b/vendor/golang.org/x/sys/unix/asm_linux_amd64.s deleted file mode 100644 index 44e25c6..0000000 --- a/vendor/golang.org/x/sys/unix/asm_linux_amd64.s +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !gccgo - -#include "textflag.h" - -// -// System calls for AMD64, Linux -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-56 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-80 - JMP syscall·Syscall6(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-56 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 - JMP syscall·RawSyscall6(SB) - -TEXT ·gettimeofday(SB),NOSPLIT,$0-16 - JMP syscall·gettimeofday(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_linux_arm.s b/vendor/golang.org/x/sys/unix/asm_linux_arm.s deleted file mode 100644 index cf0b574..0000000 --- a/vendor/golang.org/x/sys/unix/asm_linux_arm.s +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !gccgo - -#include "textflag.h" - -// -// System calls for arm, Linux -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-28 - B syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-40 - B syscall·Syscall6(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-28 - B syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 - B syscall·RawSyscall6(SB) - -TEXT ·seek(SB),NOSPLIT,$0-32 - B syscall·seek(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_linux_arm64.s b/vendor/golang.org/x/sys/unix/asm_linux_arm64.s deleted file mode 100644 index 4be9bfe..0000000 --- a/vendor/golang.org/x/sys/unix/asm_linux_arm64.s +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build linux -// +build arm64 -// +build !gccgo - -#include "textflag.h" - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-56 - B syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-80 - B syscall·Syscall6(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-56 - B syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 - B syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s b/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s deleted file mode 100644 index 724e580..0000000 --- a/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build linux -// +build mips64 mips64le -// +build !gccgo - -#include "textflag.h" - -// -// System calls for mips64, Linux -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-56 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-80 - JMP syscall·Syscall6(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-56 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 - JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s b/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s deleted file mode 100644 index 2ea4257..0000000 --- a/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build linux -// +build mips mipsle -// +build !gccgo - -#include "textflag.h" - -// -// System calls for mips, Linux -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-28 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-40 - JMP syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-52 - JMP syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-28 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 - JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s b/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s deleted file mode 100644 index 8d231fe..0000000 --- a/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build linux -// +build ppc64 ppc64le -// +build !gccgo - -#include "textflag.h" - -// -// System calls for ppc64, Linux -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-56 - BR syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-80 - BR syscall·Syscall6(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-56 - BR syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 - BR syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_linux_s390x.s b/vendor/golang.org/x/sys/unix/asm_linux_s390x.s deleted file mode 100644 index 1188985..0000000 --- a/vendor/golang.org/x/sys/unix/asm_linux_s390x.s +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build s390x -// +build linux -// +build !gccgo - -#include "textflag.h" - -// -// System calls for s390x, Linux -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-56 - BR syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-80 - BR syscall·Syscall6(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-56 - BR syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 - BR syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_netbsd_386.s b/vendor/golang.org/x/sys/unix/asm_netbsd_386.s deleted file mode 100644 index 48bdcd7..0000000 --- a/vendor/golang.org/x/sys/unix/asm_netbsd_386.s +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !gccgo - -#include "textflag.h" - -// -// System call support for 386, NetBSD -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-28 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-40 - JMP syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-52 - JMP syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-28 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 - JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_netbsd_amd64.s b/vendor/golang.org/x/sys/unix/asm_netbsd_amd64.s deleted file mode 100644 index 2ede05c..0000000 --- a/vendor/golang.org/x/sys/unix/asm_netbsd_amd64.s +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !gccgo - -#include "textflag.h" - -// -// System call support for AMD64, NetBSD -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-56 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-80 - JMP syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-104 - JMP syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-56 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 - JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_netbsd_arm.s b/vendor/golang.org/x/sys/unix/asm_netbsd_arm.s deleted file mode 100644 index e892857..0000000 --- a/vendor/golang.org/x/sys/unix/asm_netbsd_arm.s +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !gccgo - -#include "textflag.h" - -// -// System call support for ARM, NetBSD -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-28 - B syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-40 - B syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-52 - B syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-28 - B syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 - B syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_openbsd_386.s b/vendor/golang.org/x/sys/unix/asm_openbsd_386.s deleted file mode 100644 index 00576f3..0000000 --- a/vendor/golang.org/x/sys/unix/asm_openbsd_386.s +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !gccgo - -#include "textflag.h" - -// -// System call support for 386, OpenBSD -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-28 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-40 - JMP syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-52 - JMP syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-28 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 - JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_openbsd_amd64.s b/vendor/golang.org/x/sys/unix/asm_openbsd_amd64.s deleted file mode 100644 index 790ef77..0000000 --- a/vendor/golang.org/x/sys/unix/asm_openbsd_amd64.s +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !gccgo - -#include "textflag.h" - -// -// System call support for AMD64, OpenBSD -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-56 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-80 - JMP syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-104 - JMP syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-56 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 - JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_openbsd_arm.s b/vendor/golang.org/x/sys/unix/asm_openbsd_arm.s deleted file mode 100644 index 469bfa1..0000000 --- a/vendor/golang.org/x/sys/unix/asm_openbsd_arm.s +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !gccgo - -#include "textflag.h" - -// -// System call support for ARM, OpenBSD -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-28 - B syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-40 - B syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-52 - B syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-28 - B syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 - B syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s b/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s deleted file mode 100644 index ded8260..0000000 --- a/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !gccgo - -#include "textflag.h" - -// -// System calls for amd64, Solaris are implemented in runtime/syscall_solaris.go -// - -TEXT ·sysvicall6(SB),NOSPLIT,$0-88 - JMP syscall·sysvicall6(SB) - -TEXT ·rawSysvicall6(SB),NOSPLIT,$0-88 - JMP syscall·rawSysvicall6(SB) diff --git a/vendor/golang.org/x/sys/unix/bluetooth_linux.go b/vendor/golang.org/x/sys/unix/bluetooth_linux.go deleted file mode 100644 index 6e32296..0000000 --- a/vendor/golang.org/x/sys/unix/bluetooth_linux.go +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Bluetooth sockets and messages - -package unix - -// Bluetooth Protocols -const ( - BTPROTO_L2CAP = 0 - BTPROTO_HCI = 1 - BTPROTO_SCO = 2 - BTPROTO_RFCOMM = 3 - BTPROTO_BNEP = 4 - BTPROTO_CMTP = 5 - BTPROTO_HIDP = 6 - BTPROTO_AVDTP = 7 -) - -const ( - HCI_CHANNEL_RAW = 0 - HCI_CHANNEL_USER = 1 - HCI_CHANNEL_MONITOR = 2 - HCI_CHANNEL_CONTROL = 3 -) - -// Socketoption Level -const ( - SOL_BLUETOOTH = 0x112 - SOL_HCI = 0x0 - SOL_L2CAP = 0x6 - SOL_RFCOMM = 0x12 - SOL_SCO = 0x11 -) diff --git a/vendor/golang.org/x/sys/unix/cap_freebsd.go b/vendor/golang.org/x/sys/unix/cap_freebsd.go deleted file mode 100644 index 83b6bce..0000000 --- a/vendor/golang.org/x/sys/unix/cap_freebsd.go +++ /dev/null @@ -1,195 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build freebsd - -package unix - -import ( - errorspkg "errors" - "fmt" -) - -// Go implementation of C mostly found in /usr/src/sys/kern/subr_capability.c - -const ( - // This is the version of CapRights this package understands. See C implementation for parallels. - capRightsGoVersion = CAP_RIGHTS_VERSION_00 - capArSizeMin = CAP_RIGHTS_VERSION_00 + 2 - capArSizeMax = capRightsGoVersion + 2 -) - -var ( - bit2idx = []int{ - -1, 0, 1, -1, 2, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, - 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - } -) - -func capidxbit(right uint64) int { - return int((right >> 57) & 0x1f) -} - -func rightToIndex(right uint64) (int, error) { - idx := capidxbit(right) - if idx < 0 || idx >= len(bit2idx) { - return -2, fmt.Errorf("index for right 0x%x out of range", right) - } - return bit2idx[idx], nil -} - -func caprver(right uint64) int { - return int(right >> 62) -} - -func capver(rights *CapRights) int { - return caprver(rights.Rights[0]) -} - -func caparsize(rights *CapRights) int { - return capver(rights) + 2 -} - -// CapRightsSet sets the permissions in setrights in rights. -func CapRightsSet(rights *CapRights, setrights []uint64) error { - // This is essentially a copy of cap_rights_vset() - if capver(rights) != CAP_RIGHTS_VERSION_00 { - return fmt.Errorf("bad rights version %d", capver(rights)) - } - - n := caparsize(rights) - if n < capArSizeMin || n > capArSizeMax { - return errorspkg.New("bad rights size") - } - - for _, right := range setrights { - if caprver(right) != CAP_RIGHTS_VERSION_00 { - return errorspkg.New("bad right version") - } - i, err := rightToIndex(right) - if err != nil { - return err - } - if i >= n { - return errorspkg.New("index overflow") - } - if capidxbit(rights.Rights[i]) != capidxbit(right) { - return errorspkg.New("index mismatch") - } - rights.Rights[i] |= right - if capidxbit(rights.Rights[i]) != capidxbit(right) { - return errorspkg.New("index mismatch (after assign)") - } - } - - return nil -} - -// CapRightsClear clears the permissions in clearrights from rights. -func CapRightsClear(rights *CapRights, clearrights []uint64) error { - // This is essentially a copy of cap_rights_vclear() - if capver(rights) != CAP_RIGHTS_VERSION_00 { - return fmt.Errorf("bad rights version %d", capver(rights)) - } - - n := caparsize(rights) - if n < capArSizeMin || n > capArSizeMax { - return errorspkg.New("bad rights size") - } - - for _, right := range clearrights { - if caprver(right) != CAP_RIGHTS_VERSION_00 { - return errorspkg.New("bad right version") - } - i, err := rightToIndex(right) - if err != nil { - return err - } - if i >= n { - return errorspkg.New("index overflow") - } - if capidxbit(rights.Rights[i]) != capidxbit(right) { - return errorspkg.New("index mismatch") - } - rights.Rights[i] &= ^(right & 0x01FFFFFFFFFFFFFF) - if capidxbit(rights.Rights[i]) != capidxbit(right) { - return errorspkg.New("index mismatch (after assign)") - } - } - - return nil -} - -// CapRightsIsSet checks whether all the permissions in setrights are present in rights. -func CapRightsIsSet(rights *CapRights, setrights []uint64) (bool, error) { - // This is essentially a copy of cap_rights_is_vset() - if capver(rights) != CAP_RIGHTS_VERSION_00 { - return false, fmt.Errorf("bad rights version %d", capver(rights)) - } - - n := caparsize(rights) - if n < capArSizeMin || n > capArSizeMax { - return false, errorspkg.New("bad rights size") - } - - for _, right := range setrights { - if caprver(right) != CAP_RIGHTS_VERSION_00 { - return false, errorspkg.New("bad right version") - } - i, err := rightToIndex(right) - if err != nil { - return false, err - } - if i >= n { - return false, errorspkg.New("index overflow") - } - if capidxbit(rights.Rights[i]) != capidxbit(right) { - return false, errorspkg.New("index mismatch") - } - if (rights.Rights[i] & right) != right { - return false, nil - } - } - - return true, nil -} - -func capright(idx uint64, bit uint64) uint64 { - return ((1 << (57 + idx)) | bit) -} - -// CapRightsInit returns a pointer to an initialised CapRights structure filled with rights. -// See man cap_rights_init(3) and rights(4). -func CapRightsInit(rights []uint64) (*CapRights, error) { - var r CapRights - r.Rights[0] = (capRightsGoVersion << 62) | capright(0, 0) - r.Rights[1] = capright(1, 0) - - err := CapRightsSet(&r, rights) - if err != nil { - return nil, err - } - return &r, nil -} - -// CapRightsLimit reduces the operations permitted on fd to at most those contained in rights. -// The capability rights on fd can never be increased by CapRightsLimit. -// See man cap_rights_limit(2) and rights(4). -func CapRightsLimit(fd uintptr, rights *CapRights) error { - return capRightsLimit(int(fd), rights) -} - -// CapRightsGet returns a CapRights structure containing the operations permitted on fd. -// See man cap_rights_get(3) and rights(4). -func CapRightsGet(fd uintptr) (*CapRights, error) { - r, err := CapRightsInit(nil) - if err != nil { - return nil, err - } - err = capRightsGet(capRightsGoVersion, int(fd), r) - if err != nil { - return nil, err - } - return r, nil -} diff --git a/vendor/golang.org/x/sys/unix/constants.go b/vendor/golang.org/x/sys/unix/constants.go deleted file mode 100644 index a96f0eb..0000000 --- a/vendor/golang.org/x/sys/unix/constants.go +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build darwin dragonfly freebsd linux netbsd openbsd solaris - -package unix - -const ( - R_OK = 0x4 - W_OK = 0x2 - X_OK = 0x1 -) diff --git a/vendor/golang.org/x/sys/unix/dev_darwin.go b/vendor/golang.org/x/sys/unix/dev_darwin.go deleted file mode 100644 index 7d101d5..0000000 --- a/vendor/golang.org/x/sys/unix/dev_darwin.go +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Functions to access/create device major and minor numbers matching the -// encoding used in Darwin's sys/types.h header. - -package unix - -// Major returns the major component of a Darwin device number. -func Major(dev uint64) uint32 { - return uint32((dev >> 24) & 0xff) -} - -// Minor returns the minor component of a Darwin device number. -func Minor(dev uint64) uint32 { - return uint32(dev & 0xffffff) -} - -// Mkdev returns a Darwin device number generated from the given major and minor -// components. -func Mkdev(major, minor uint32) uint64 { - return uint64((major << 24) | minor) -} diff --git a/vendor/golang.org/x/sys/unix/dev_linux.go b/vendor/golang.org/x/sys/unix/dev_linux.go deleted file mode 100644 index c902c39..0000000 --- a/vendor/golang.org/x/sys/unix/dev_linux.go +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Functions to access/create device major and minor numbers matching the -// encoding used by the Linux kernel and glibc. -// -// The information below is extracted and adapted from bits/sysmacros.h in the -// glibc sources: -// -// dev_t in glibc is 64-bit, with 32-bit major and minor numbers. glibc's -// default encoding is MMMM Mmmm mmmM MMmm, where M is a hex digit of the major -// number and m is a hex digit of the minor number. This is backward compatible -// with legacy systems where dev_t is 16 bits wide, encoded as MMmm. It is also -// backward compatible with the Linux kernel, which for some architectures uses -// 32-bit dev_t, encoded as mmmM MMmm. - -package unix - -// Major returns the major component of a Linux device number. -func Major(dev uint64) uint32 { - major := uint32((dev & 0x00000000000fff00) >> 8) - major |= uint32((dev & 0xfffff00000000000) >> 32) - return major -} - -// Minor returns the minor component of a Linux device number. -func Minor(dev uint64) uint32 { - minor := uint32((dev & 0x00000000000000ff) >> 0) - minor |= uint32((dev & 0x00000ffffff00000) >> 12) - return minor -} - -// Mkdev returns a Linux device number generated from the given major and minor -// components. -func Mkdev(major, minor uint32) uint64 { - dev := uint64((major & 0x00000fff) << 8) - dev |= uint64((major & 0xfffff000) << 32) - dev |= uint64((minor & 0x000000ff) << 0) - dev |= uint64((minor & 0xffffff00) << 12) - return dev -} diff --git a/vendor/golang.org/x/sys/unix/dirent.go b/vendor/golang.org/x/sys/unix/dirent.go deleted file mode 100644 index bd47581..0000000 --- a/vendor/golang.org/x/sys/unix/dirent.go +++ /dev/null @@ -1,102 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris - -package unix - -import "unsafe" - -// readInt returns the size-bytes unsigned integer in native byte order at offset off. -func readInt(b []byte, off, size uintptr) (u uint64, ok bool) { - if len(b) < int(off+size) { - return 0, false - } - if isBigEndian { - return readIntBE(b[off:], size), true - } - return readIntLE(b[off:], size), true -} - -func readIntBE(b []byte, size uintptr) uint64 { - switch size { - case 1: - return uint64(b[0]) - case 2: - _ = b[1] // bounds check hint to compiler; see golang.org/issue/14808 - return uint64(b[1]) | uint64(b[0])<<8 - case 4: - _ = b[3] // bounds check hint to compiler; see golang.org/issue/14808 - return uint64(b[3]) | uint64(b[2])<<8 | uint64(b[1])<<16 | uint64(b[0])<<24 - case 8: - _ = b[7] // bounds check hint to compiler; see golang.org/issue/14808 - return uint64(b[7]) | uint64(b[6])<<8 | uint64(b[5])<<16 | uint64(b[4])<<24 | - uint64(b[3])<<32 | uint64(b[2])<<40 | uint64(b[1])<<48 | uint64(b[0])<<56 - default: - panic("syscall: readInt with unsupported size") - } -} - -func readIntLE(b []byte, size uintptr) uint64 { - switch size { - case 1: - return uint64(b[0]) - case 2: - _ = b[1] // bounds check hint to compiler; see golang.org/issue/14808 - return uint64(b[0]) | uint64(b[1])<<8 - case 4: - _ = b[3] // bounds check hint to compiler; see golang.org/issue/14808 - return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 - case 8: - _ = b[7] // bounds check hint to compiler; see golang.org/issue/14808 - return 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 - default: - panic("syscall: readInt with unsupported size") - } -} - -// ParseDirent parses up to max directory entries in buf, -// appending the names to names. It returns the number of -// bytes consumed from buf, the number of entries added -// to names, and the new names slice. -func ParseDirent(buf []byte, max int, names []string) (consumed int, count int, newnames []string) { - origlen := len(buf) - count = 0 - for max != 0 && len(buf) > 0 { - reclen, ok := direntReclen(buf) - if !ok || reclen > uint64(len(buf)) { - return origlen, count, names - } - rec := buf[:reclen] - buf = buf[reclen:] - ino, ok := direntIno(rec) - if !ok { - break - } - if ino == 0 { // File absent in directory. - continue - } - const namoff = uint64(unsafe.Offsetof(Dirent{}.Name)) - namlen, ok := direntNamlen(rec) - if !ok || namoff+namlen > uint64(len(rec)) { - break - } - name := rec[namoff : namoff+namlen] - for i, c := range name { - if c == 0 { - name = name[:i] - break - } - } - // Check for useless names before allocating a string. - if string(name) == "." || string(name) == ".." { - continue - } - max-- - count++ - names = append(names, string(name)) - } - return origlen - len(buf), count, names -} diff --git a/vendor/golang.org/x/sys/unix/endian_big.go b/vendor/golang.org/x/sys/unix/endian_big.go deleted file mode 100644 index 5e92690..0000000 --- a/vendor/golang.org/x/sys/unix/endian_big.go +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. -// -// +build ppc64 s390x mips mips64 - -package unix - -const isBigEndian = true diff --git a/vendor/golang.org/x/sys/unix/endian_little.go b/vendor/golang.org/x/sys/unix/endian_little.go deleted file mode 100644 index 085df2d..0000000 --- a/vendor/golang.org/x/sys/unix/endian_little.go +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. -// -// +build 386 amd64 amd64p32 arm arm64 ppc64le mipsle mips64le - -package unix - -const isBigEndian = false diff --git a/vendor/golang.org/x/sys/unix/env_unix.go b/vendor/golang.org/x/sys/unix/env_unix.go deleted file mode 100644 index 45e281a..0000000 --- a/vendor/golang.org/x/sys/unix/env_unix.go +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build darwin dragonfly freebsd linux netbsd openbsd solaris - -// Unix environment variables. - -package unix - -import "syscall" - -func Getenv(key string) (value string, found bool) { - return syscall.Getenv(key) -} - -func Setenv(key, value string) error { - return syscall.Setenv(key, value) -} - -func Clearenv() { - syscall.Clearenv() -} - -func Environ() []string { - return syscall.Environ() -} diff --git a/vendor/golang.org/x/sys/unix/env_unset.go b/vendor/golang.org/x/sys/unix/env_unset.go deleted file mode 100644 index 9222262..0000000 --- a/vendor/golang.org/x/sys/unix/env_unset.go +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build go1.4 - -package unix - -import "syscall" - -func Unsetenv(key string) error { - // This was added in Go 1.4. - return syscall.Unsetenv(key) -} diff --git a/vendor/golang.org/x/sys/unix/errors_freebsd_386.go b/vendor/golang.org/x/sys/unix/errors_freebsd_386.go deleted file mode 100644 index c56bc8b..0000000 --- a/vendor/golang.org/x/sys/unix/errors_freebsd_386.go +++ /dev/null @@ -1,227 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Constants that were deprecated or moved to enums in the FreeBSD headers. Keep -// them here for backwards compatibility. - -package unix - -const ( - IFF_SMART = 0x20 - IFT_1822 = 0x2 - IFT_A12MPPSWITCH = 0x82 - IFT_AAL2 = 0xbb - IFT_AAL5 = 0x31 - IFT_ADSL = 0x5e - IFT_AFLANE8023 = 0x3b - IFT_AFLANE8025 = 0x3c - IFT_ARAP = 0x58 - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ASYNC = 0x54 - IFT_ATM = 0x25 - IFT_ATMDXI = 0x69 - IFT_ATMFUNI = 0x6a - IFT_ATMIMA = 0x6b - IFT_ATMLOGICAL = 0x50 - IFT_ATMRADIO = 0xbd - IFT_ATMSUBINTERFACE = 0x86 - IFT_ATMVCIENDPT = 0xc2 - IFT_ATMVIRTUAL = 0x95 - IFT_BGPPOLICYACCOUNTING = 0xa2 - IFT_BSC = 0x53 - IFT_CCTEMUL = 0x3d - IFT_CEPT = 0x13 - IFT_CES = 0x85 - IFT_CHANNEL = 0x46 - IFT_CNR = 0x55 - IFT_COFFEE = 0x84 - IFT_COMPOSITELINK = 0x9b - IFT_DCN = 0x8d - IFT_DIGITALPOWERLINE = 0x8a - IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba - IFT_DLSW = 0x4a - IFT_DOCSCABLEDOWNSTREAM = 0x80 - IFT_DOCSCABLEMACLAYER = 0x7f - IFT_DOCSCABLEUPSTREAM = 0x81 - IFT_DS0 = 0x51 - IFT_DS0BUNDLE = 0x52 - IFT_DS1FDL = 0xaa - IFT_DS3 = 0x1e - IFT_DTM = 0x8c - IFT_DVBASILN = 0xac - IFT_DVBASIOUT = 0xad - IFT_DVBRCCDOWNSTREAM = 0x93 - IFT_DVBRCCMACLAYER = 0x92 - IFT_DVBRCCUPSTREAM = 0x94 - IFT_ENC = 0xf4 - IFT_EON = 0x19 - IFT_EPLRS = 0x57 - IFT_ESCON = 0x49 - IFT_ETHER = 0x6 - IFT_FAITH = 0xf2 - IFT_FAST = 0x7d - IFT_FASTETHER = 0x3e - IFT_FASTETHERFX = 0x45 - IFT_FDDI = 0xf - IFT_FIBRECHANNEL = 0x38 - IFT_FRAMERELAYINTERCONNECT = 0x3a - IFT_FRAMERELAYMPI = 0x5c - IFT_FRDLCIENDPT = 0xc1 - IFT_FRELAY = 0x20 - IFT_FRELAYDCE = 0x2c - IFT_FRF16MFRBUNDLE = 0xa3 - IFT_FRFORWARD = 0x9e - IFT_G703AT2MB = 0x43 - IFT_G703AT64K = 0x42 - IFT_GIF = 0xf0 - IFT_GIGABITETHERNET = 0x75 - IFT_GR303IDT = 0xb2 - IFT_GR303RDT = 0xb1 - IFT_H323GATEKEEPER = 0xa4 - IFT_H323PROXY = 0xa5 - IFT_HDH1822 = 0x3 - IFT_HDLC = 0x76 - IFT_HDSL2 = 0xa8 - IFT_HIPERLAN2 = 0xb7 - IFT_HIPPI = 0x2f - IFT_HIPPIINTERFACE = 0x39 - IFT_HOSTPAD = 0x5a - IFT_HSSI = 0x2e - IFT_HY = 0xe - IFT_IBM370PARCHAN = 0x48 - IFT_IDSL = 0x9a - IFT_IEEE80211 = 0x47 - IFT_IEEE80212 = 0x37 - IFT_IEEE8023ADLAG = 0xa1 - IFT_IFGSN = 0x91 - IFT_IMT = 0xbe - IFT_INTERLEAVE = 0x7c - IFT_IP = 0x7e - IFT_IPFORWARD = 0x8e - IFT_IPOVERATM = 0x72 - IFT_IPOVERCDLC = 0x6d - IFT_IPOVERCLAW = 0x6e - IFT_IPSWITCH = 0x4e - IFT_IPXIP = 0xf9 - IFT_ISDN = 0x3f - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_ISDNS = 0x4b - IFT_ISDNU = 0x4c - IFT_ISO88022LLC = 0x29 - IFT_ISO88023 = 0x7 - IFT_ISO88024 = 0x8 - IFT_ISO88025 = 0x9 - IFT_ISO88025CRFPINT = 0x62 - IFT_ISO88025DTR = 0x56 - IFT_ISO88025FIBER = 0x73 - IFT_ISO88026 = 0xa - IFT_ISUP = 0xb3 - IFT_L3IPXVLAN = 0x89 - IFT_LAPB = 0x10 - IFT_LAPD = 0x4d - IFT_LAPF = 0x77 - IFT_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - IFT_MEDIAMAILOVERIP = 0x8b - IFT_MFSIGLINK = 0xa7 - IFT_MIOX25 = 0x26 - IFT_MODEM = 0x30 - IFT_MPC = 0x71 - IFT_MPLS = 0xa6 - IFT_MPLSTUNNEL = 0x96 - IFT_MSDSL = 0x8f - IFT_MVL = 0xbf - IFT_MYRINET = 0x63 - IFT_NFAS = 0xaf - IFT_NSIP = 0x1b - IFT_OPTICALCHANNEL = 0xc3 - IFT_OPTICALTRANSPORT = 0xc4 - IFT_OTHER = 0x1 - IFT_P10 = 0xc - IFT_P80 = 0xd - IFT_PARA = 0x22 - IFT_PFLOG = 0xf6 - IFT_PFSYNC = 0xf7 - IFT_PLC = 0xae - IFT_POS = 0xab - IFT_PPPMULTILINKBUNDLE = 0x6c - IFT_PROPBWAP2MP = 0xb8 - IFT_PROPCNLS = 0x59 - IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 - IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 - IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 - IFT_PROPMUX = 0x36 - IFT_PROPWIRELESSP2P = 0x9d - IFT_PTPSERIAL = 0x16 - IFT_PVC = 0xf1 - IFT_QLLC = 0x44 - IFT_RADIOMAC = 0xbc - IFT_RADSL = 0x5f - IFT_REACHDSL = 0xc0 - IFT_RFC1483 = 0x9f - IFT_RS232 = 0x21 - IFT_RSRB = 0x4f - IFT_SDLC = 0x11 - IFT_SDSL = 0x60 - IFT_SHDSL = 0xa9 - IFT_SIP = 0x1f - IFT_SLIP = 0x1c - IFT_SMDSDXI = 0x2b - IFT_SMDSICIP = 0x34 - IFT_SONET = 0x27 - IFT_SONETOVERHEADCHANNEL = 0xb9 - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_SRP = 0x97 - IFT_SS7SIGLINK = 0x9c - IFT_STACKTOSTACK = 0x6f - IFT_STARLAN = 0xb - IFT_STF = 0xd7 - IFT_T1 = 0x12 - IFT_TDLC = 0x74 - IFT_TERMPAD = 0x5b - IFT_TR008 = 0xb0 - IFT_TRANSPHDLC = 0x7b - IFT_TUNNEL = 0x83 - IFT_ULTRA = 0x1d - IFT_USB = 0xa0 - IFT_V11 = 0x40 - IFT_V35 = 0x2d - IFT_V36 = 0x41 - IFT_V37 = 0x78 - IFT_VDSL = 0x61 - IFT_VIRTUALIPADDRESS = 0x70 - IFT_VOICEEM = 0x64 - IFT_VOICEENCAP = 0x67 - IFT_VOICEFXO = 0x65 - IFT_VOICEFXS = 0x66 - IFT_VOICEOVERATM = 0x98 - IFT_VOICEOVERFRAMERELAY = 0x99 - IFT_VOICEOVERIP = 0x68 - IFT_X213 = 0x5d - IFT_X25 = 0x5 - IFT_X25DDN = 0x4 - IFT_X25HUNTGROUP = 0x7a - IFT_X25MLP = 0x79 - IFT_X25PLE = 0x28 - IFT_XETHER = 0x1a - IPPROTO_MAXID = 0x34 - IPV6_FAITH = 0x1d - IP_FAITH = 0x16 - MAP_NORESERVE = 0x40 - MAP_RENAME = 0x20 - NET_RT_MAXID = 0x6 - RTF_PRCLONING = 0x10000 - RTM_OLDADD = 0x9 - RTM_OLDDEL = 0xa - SIOCADDRT = 0x8030720a - SIOCALIFADDR = 0x8118691b - SIOCDELRT = 0x8030720b - SIOCDLIFADDR = 0x8118691d - SIOCGLIFADDR = 0xc118691c - SIOCGLIFPHYADDR = 0xc118694b - SIOCSLIFPHYADDR = 0x8118694a -) diff --git a/vendor/golang.org/x/sys/unix/errors_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/errors_freebsd_amd64.go deleted file mode 100644 index 3e97711..0000000 --- a/vendor/golang.org/x/sys/unix/errors_freebsd_amd64.go +++ /dev/null @@ -1,227 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Constants that were deprecated or moved to enums in the FreeBSD headers. Keep -// them here for backwards compatibility. - -package unix - -const ( - IFF_SMART = 0x20 - IFT_1822 = 0x2 - IFT_A12MPPSWITCH = 0x82 - IFT_AAL2 = 0xbb - IFT_AAL5 = 0x31 - IFT_ADSL = 0x5e - IFT_AFLANE8023 = 0x3b - IFT_AFLANE8025 = 0x3c - IFT_ARAP = 0x58 - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ASYNC = 0x54 - IFT_ATM = 0x25 - IFT_ATMDXI = 0x69 - IFT_ATMFUNI = 0x6a - IFT_ATMIMA = 0x6b - IFT_ATMLOGICAL = 0x50 - IFT_ATMRADIO = 0xbd - IFT_ATMSUBINTERFACE = 0x86 - IFT_ATMVCIENDPT = 0xc2 - IFT_ATMVIRTUAL = 0x95 - IFT_BGPPOLICYACCOUNTING = 0xa2 - IFT_BSC = 0x53 - IFT_CCTEMUL = 0x3d - IFT_CEPT = 0x13 - IFT_CES = 0x85 - IFT_CHANNEL = 0x46 - IFT_CNR = 0x55 - IFT_COFFEE = 0x84 - IFT_COMPOSITELINK = 0x9b - IFT_DCN = 0x8d - IFT_DIGITALPOWERLINE = 0x8a - IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba - IFT_DLSW = 0x4a - IFT_DOCSCABLEDOWNSTREAM = 0x80 - IFT_DOCSCABLEMACLAYER = 0x7f - IFT_DOCSCABLEUPSTREAM = 0x81 - IFT_DS0 = 0x51 - IFT_DS0BUNDLE = 0x52 - IFT_DS1FDL = 0xaa - IFT_DS3 = 0x1e - IFT_DTM = 0x8c - IFT_DVBASILN = 0xac - IFT_DVBASIOUT = 0xad - IFT_DVBRCCDOWNSTREAM = 0x93 - IFT_DVBRCCMACLAYER = 0x92 - IFT_DVBRCCUPSTREAM = 0x94 - IFT_ENC = 0xf4 - IFT_EON = 0x19 - IFT_EPLRS = 0x57 - IFT_ESCON = 0x49 - IFT_ETHER = 0x6 - IFT_FAITH = 0xf2 - IFT_FAST = 0x7d - IFT_FASTETHER = 0x3e - IFT_FASTETHERFX = 0x45 - IFT_FDDI = 0xf - IFT_FIBRECHANNEL = 0x38 - IFT_FRAMERELAYINTERCONNECT = 0x3a - IFT_FRAMERELAYMPI = 0x5c - IFT_FRDLCIENDPT = 0xc1 - IFT_FRELAY = 0x20 - IFT_FRELAYDCE = 0x2c - IFT_FRF16MFRBUNDLE = 0xa3 - IFT_FRFORWARD = 0x9e - IFT_G703AT2MB = 0x43 - IFT_G703AT64K = 0x42 - IFT_GIF = 0xf0 - IFT_GIGABITETHERNET = 0x75 - IFT_GR303IDT = 0xb2 - IFT_GR303RDT = 0xb1 - IFT_H323GATEKEEPER = 0xa4 - IFT_H323PROXY = 0xa5 - IFT_HDH1822 = 0x3 - IFT_HDLC = 0x76 - IFT_HDSL2 = 0xa8 - IFT_HIPERLAN2 = 0xb7 - IFT_HIPPI = 0x2f - IFT_HIPPIINTERFACE = 0x39 - IFT_HOSTPAD = 0x5a - IFT_HSSI = 0x2e - IFT_HY = 0xe - IFT_IBM370PARCHAN = 0x48 - IFT_IDSL = 0x9a - IFT_IEEE80211 = 0x47 - IFT_IEEE80212 = 0x37 - IFT_IEEE8023ADLAG = 0xa1 - IFT_IFGSN = 0x91 - IFT_IMT = 0xbe - IFT_INTERLEAVE = 0x7c - IFT_IP = 0x7e - IFT_IPFORWARD = 0x8e - IFT_IPOVERATM = 0x72 - IFT_IPOVERCDLC = 0x6d - IFT_IPOVERCLAW = 0x6e - IFT_IPSWITCH = 0x4e - IFT_IPXIP = 0xf9 - IFT_ISDN = 0x3f - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_ISDNS = 0x4b - IFT_ISDNU = 0x4c - IFT_ISO88022LLC = 0x29 - IFT_ISO88023 = 0x7 - IFT_ISO88024 = 0x8 - IFT_ISO88025 = 0x9 - IFT_ISO88025CRFPINT = 0x62 - IFT_ISO88025DTR = 0x56 - IFT_ISO88025FIBER = 0x73 - IFT_ISO88026 = 0xa - IFT_ISUP = 0xb3 - IFT_L3IPXVLAN = 0x89 - IFT_LAPB = 0x10 - IFT_LAPD = 0x4d - IFT_LAPF = 0x77 - IFT_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - IFT_MEDIAMAILOVERIP = 0x8b - IFT_MFSIGLINK = 0xa7 - IFT_MIOX25 = 0x26 - IFT_MODEM = 0x30 - IFT_MPC = 0x71 - IFT_MPLS = 0xa6 - IFT_MPLSTUNNEL = 0x96 - IFT_MSDSL = 0x8f - IFT_MVL = 0xbf - IFT_MYRINET = 0x63 - IFT_NFAS = 0xaf - IFT_NSIP = 0x1b - IFT_OPTICALCHANNEL = 0xc3 - IFT_OPTICALTRANSPORT = 0xc4 - IFT_OTHER = 0x1 - IFT_P10 = 0xc - IFT_P80 = 0xd - IFT_PARA = 0x22 - IFT_PFLOG = 0xf6 - IFT_PFSYNC = 0xf7 - IFT_PLC = 0xae - IFT_POS = 0xab - IFT_PPPMULTILINKBUNDLE = 0x6c - IFT_PROPBWAP2MP = 0xb8 - IFT_PROPCNLS = 0x59 - IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 - IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 - IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 - IFT_PROPMUX = 0x36 - IFT_PROPWIRELESSP2P = 0x9d - IFT_PTPSERIAL = 0x16 - IFT_PVC = 0xf1 - IFT_QLLC = 0x44 - IFT_RADIOMAC = 0xbc - IFT_RADSL = 0x5f - IFT_REACHDSL = 0xc0 - IFT_RFC1483 = 0x9f - IFT_RS232 = 0x21 - IFT_RSRB = 0x4f - IFT_SDLC = 0x11 - IFT_SDSL = 0x60 - IFT_SHDSL = 0xa9 - IFT_SIP = 0x1f - IFT_SLIP = 0x1c - IFT_SMDSDXI = 0x2b - IFT_SMDSICIP = 0x34 - IFT_SONET = 0x27 - IFT_SONETOVERHEADCHANNEL = 0xb9 - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_SRP = 0x97 - IFT_SS7SIGLINK = 0x9c - IFT_STACKTOSTACK = 0x6f - IFT_STARLAN = 0xb - IFT_STF = 0xd7 - IFT_T1 = 0x12 - IFT_TDLC = 0x74 - IFT_TERMPAD = 0x5b - IFT_TR008 = 0xb0 - IFT_TRANSPHDLC = 0x7b - IFT_TUNNEL = 0x83 - IFT_ULTRA = 0x1d - IFT_USB = 0xa0 - IFT_V11 = 0x40 - IFT_V35 = 0x2d - IFT_V36 = 0x41 - IFT_V37 = 0x78 - IFT_VDSL = 0x61 - IFT_VIRTUALIPADDRESS = 0x70 - IFT_VOICEEM = 0x64 - IFT_VOICEENCAP = 0x67 - IFT_VOICEFXO = 0x65 - IFT_VOICEFXS = 0x66 - IFT_VOICEOVERATM = 0x98 - IFT_VOICEOVERFRAMERELAY = 0x99 - IFT_VOICEOVERIP = 0x68 - IFT_X213 = 0x5d - IFT_X25 = 0x5 - IFT_X25DDN = 0x4 - IFT_X25HUNTGROUP = 0x7a - IFT_X25MLP = 0x79 - IFT_X25PLE = 0x28 - IFT_XETHER = 0x1a - IPPROTO_MAXID = 0x34 - IPV6_FAITH = 0x1d - IP_FAITH = 0x16 - MAP_NORESERVE = 0x40 - MAP_RENAME = 0x20 - NET_RT_MAXID = 0x6 - RTF_PRCLONING = 0x10000 - RTM_OLDADD = 0x9 - RTM_OLDDEL = 0xa - SIOCADDRT = 0x8040720a - SIOCALIFADDR = 0x8118691b - SIOCDELRT = 0x8040720b - SIOCDLIFADDR = 0x8118691d - SIOCGLIFADDR = 0xc118691c - SIOCGLIFPHYADDR = 0xc118694b - SIOCSLIFPHYADDR = 0x8118694a -) diff --git a/vendor/golang.org/x/sys/unix/errors_freebsd_arm.go b/vendor/golang.org/x/sys/unix/errors_freebsd_arm.go deleted file mode 100644 index 856dca3..0000000 --- a/vendor/golang.org/x/sys/unix/errors_freebsd_arm.go +++ /dev/null @@ -1,226 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package unix - -const ( - IFT_1822 = 0x2 - IFT_A12MPPSWITCH = 0x82 - IFT_AAL2 = 0xbb - IFT_AAL5 = 0x31 - IFT_ADSL = 0x5e - IFT_AFLANE8023 = 0x3b - IFT_AFLANE8025 = 0x3c - IFT_ARAP = 0x58 - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ASYNC = 0x54 - IFT_ATM = 0x25 - IFT_ATMDXI = 0x69 - IFT_ATMFUNI = 0x6a - IFT_ATMIMA = 0x6b - IFT_ATMLOGICAL = 0x50 - IFT_ATMRADIO = 0xbd - IFT_ATMSUBINTERFACE = 0x86 - IFT_ATMVCIENDPT = 0xc2 - IFT_ATMVIRTUAL = 0x95 - IFT_BGPPOLICYACCOUNTING = 0xa2 - IFT_BSC = 0x53 - IFT_CCTEMUL = 0x3d - IFT_CEPT = 0x13 - IFT_CES = 0x85 - IFT_CHANNEL = 0x46 - IFT_CNR = 0x55 - IFT_COFFEE = 0x84 - IFT_COMPOSITELINK = 0x9b - IFT_DCN = 0x8d - IFT_DIGITALPOWERLINE = 0x8a - IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba - IFT_DLSW = 0x4a - IFT_DOCSCABLEDOWNSTREAM = 0x80 - IFT_DOCSCABLEMACLAYER = 0x7f - IFT_DOCSCABLEUPSTREAM = 0x81 - IFT_DS0 = 0x51 - IFT_DS0BUNDLE = 0x52 - IFT_DS1FDL = 0xaa - IFT_DS3 = 0x1e - IFT_DTM = 0x8c - IFT_DVBASILN = 0xac - IFT_DVBASIOUT = 0xad - IFT_DVBRCCDOWNSTREAM = 0x93 - IFT_DVBRCCMACLAYER = 0x92 - IFT_DVBRCCUPSTREAM = 0x94 - IFT_ENC = 0xf4 - IFT_EON = 0x19 - IFT_EPLRS = 0x57 - IFT_ESCON = 0x49 - IFT_ETHER = 0x6 - IFT_FAST = 0x7d - IFT_FASTETHER = 0x3e - IFT_FASTETHERFX = 0x45 - IFT_FDDI = 0xf - IFT_FIBRECHANNEL = 0x38 - IFT_FRAMERELAYINTERCONNECT = 0x3a - IFT_FRAMERELAYMPI = 0x5c - IFT_FRDLCIENDPT = 0xc1 - IFT_FRELAY = 0x20 - IFT_FRELAYDCE = 0x2c - IFT_FRF16MFRBUNDLE = 0xa3 - IFT_FRFORWARD = 0x9e - IFT_G703AT2MB = 0x43 - IFT_G703AT64K = 0x42 - IFT_GIF = 0xf0 - IFT_GIGABITETHERNET = 0x75 - IFT_GR303IDT = 0xb2 - IFT_GR303RDT = 0xb1 - IFT_H323GATEKEEPER = 0xa4 - IFT_H323PROXY = 0xa5 - IFT_HDH1822 = 0x3 - IFT_HDLC = 0x76 - IFT_HDSL2 = 0xa8 - IFT_HIPERLAN2 = 0xb7 - IFT_HIPPI = 0x2f - IFT_HIPPIINTERFACE = 0x39 - IFT_HOSTPAD = 0x5a - IFT_HSSI = 0x2e - IFT_HY = 0xe - IFT_IBM370PARCHAN = 0x48 - IFT_IDSL = 0x9a - IFT_IEEE80211 = 0x47 - IFT_IEEE80212 = 0x37 - IFT_IEEE8023ADLAG = 0xa1 - IFT_IFGSN = 0x91 - IFT_IMT = 0xbe - IFT_INTERLEAVE = 0x7c - IFT_IP = 0x7e - IFT_IPFORWARD = 0x8e - IFT_IPOVERATM = 0x72 - IFT_IPOVERCDLC = 0x6d - IFT_IPOVERCLAW = 0x6e - IFT_IPSWITCH = 0x4e - IFT_ISDN = 0x3f - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_ISDNS = 0x4b - IFT_ISDNU = 0x4c - IFT_ISO88022LLC = 0x29 - IFT_ISO88023 = 0x7 - IFT_ISO88024 = 0x8 - IFT_ISO88025 = 0x9 - IFT_ISO88025CRFPINT = 0x62 - IFT_ISO88025DTR = 0x56 - IFT_ISO88025FIBER = 0x73 - IFT_ISO88026 = 0xa - IFT_ISUP = 0xb3 - IFT_L3IPXVLAN = 0x89 - IFT_LAPB = 0x10 - IFT_LAPD = 0x4d - IFT_LAPF = 0x77 - IFT_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - IFT_MEDIAMAILOVERIP = 0x8b - IFT_MFSIGLINK = 0xa7 - IFT_MIOX25 = 0x26 - IFT_MODEM = 0x30 - IFT_MPC = 0x71 - IFT_MPLS = 0xa6 - IFT_MPLSTUNNEL = 0x96 - IFT_MSDSL = 0x8f - IFT_MVL = 0xbf - IFT_MYRINET = 0x63 - IFT_NFAS = 0xaf - IFT_NSIP = 0x1b - IFT_OPTICALCHANNEL = 0xc3 - IFT_OPTICALTRANSPORT = 0xc4 - IFT_OTHER = 0x1 - IFT_P10 = 0xc - IFT_P80 = 0xd - IFT_PARA = 0x22 - IFT_PFLOG = 0xf6 - IFT_PFSYNC = 0xf7 - IFT_PLC = 0xae - IFT_POS = 0xab - IFT_PPPMULTILINKBUNDLE = 0x6c - IFT_PROPBWAP2MP = 0xb8 - IFT_PROPCNLS = 0x59 - IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 - IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 - IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 - IFT_PROPMUX = 0x36 - IFT_PROPWIRELESSP2P = 0x9d - IFT_PTPSERIAL = 0x16 - IFT_PVC = 0xf1 - IFT_QLLC = 0x44 - IFT_RADIOMAC = 0xbc - IFT_RADSL = 0x5f - IFT_REACHDSL = 0xc0 - IFT_RFC1483 = 0x9f - IFT_RS232 = 0x21 - IFT_RSRB = 0x4f - IFT_SDLC = 0x11 - IFT_SDSL = 0x60 - IFT_SHDSL = 0xa9 - IFT_SIP = 0x1f - IFT_SLIP = 0x1c - IFT_SMDSDXI = 0x2b - IFT_SMDSICIP = 0x34 - IFT_SONET = 0x27 - IFT_SONETOVERHEADCHANNEL = 0xb9 - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_SRP = 0x97 - IFT_SS7SIGLINK = 0x9c - IFT_STACKTOSTACK = 0x6f - IFT_STARLAN = 0xb - IFT_STF = 0xd7 - IFT_T1 = 0x12 - IFT_TDLC = 0x74 - IFT_TERMPAD = 0x5b - IFT_TR008 = 0xb0 - IFT_TRANSPHDLC = 0x7b - IFT_TUNNEL = 0x83 - IFT_ULTRA = 0x1d - IFT_USB = 0xa0 - IFT_V11 = 0x40 - IFT_V35 = 0x2d - IFT_V36 = 0x41 - IFT_V37 = 0x78 - IFT_VDSL = 0x61 - IFT_VIRTUALIPADDRESS = 0x70 - IFT_VOICEEM = 0x64 - IFT_VOICEENCAP = 0x67 - IFT_VOICEFXO = 0x65 - IFT_VOICEFXS = 0x66 - IFT_VOICEOVERATM = 0x98 - IFT_VOICEOVERFRAMERELAY = 0x99 - IFT_VOICEOVERIP = 0x68 - IFT_X213 = 0x5d - IFT_X25 = 0x5 - IFT_X25DDN = 0x4 - IFT_X25HUNTGROUP = 0x7a - IFT_X25MLP = 0x79 - IFT_X25PLE = 0x28 - IFT_XETHER = 0x1a - - // missing constants on FreeBSD-11.1-RELEASE, copied from old values in ztypes_freebsd_arm.go - IFF_SMART = 0x20 - IFT_FAITH = 0xf2 - IFT_IPXIP = 0xf9 - IPPROTO_MAXID = 0x34 - IPV6_FAITH = 0x1d - IP_FAITH = 0x16 - MAP_NORESERVE = 0x40 - MAP_RENAME = 0x20 - NET_RT_MAXID = 0x6 - RTF_PRCLONING = 0x10000 - RTM_OLDADD = 0x9 - RTM_OLDDEL = 0xa - SIOCADDRT = 0x8030720a - SIOCALIFADDR = 0x8118691b - SIOCDELRT = 0x8030720b - SIOCDLIFADDR = 0x8118691d - SIOCGLIFADDR = 0xc118691c - SIOCGLIFPHYADDR = 0xc118694b - SIOCSLIFPHYADDR = 0x8118694a -) diff --git a/vendor/golang.org/x/sys/unix/file_unix.go b/vendor/golang.org/x/sys/unix/file_unix.go deleted file mode 100644 index 47f6a83..0000000 --- a/vendor/golang.org/x/sys/unix/file_unix.go +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package unix - -import ( - "os" - "syscall" -) - -// FIXME: unexported function from os -// syscallMode returns the syscall-specific mode bits from Go's portable mode bits. -func syscallMode(i os.FileMode) (o uint32) { - o |= uint32(i.Perm()) - if i&os.ModeSetuid != 0 { - o |= syscall.S_ISUID - } - if i&os.ModeSetgid != 0 { - o |= syscall.S_ISGID - } - if i&os.ModeSticky != 0 { - o |= syscall.S_ISVTX - } - // No mapping for Go's ModeTemporary (plan9 only). - return -} diff --git a/vendor/golang.org/x/sys/unix/flock.go b/vendor/golang.org/x/sys/unix/flock.go deleted file mode 100644 index 2994ce7..0000000 --- a/vendor/golang.org/x/sys/unix/flock.go +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build darwin dragonfly freebsd linux netbsd openbsd - -package unix - -import "unsafe" - -// fcntl64Syscall is usually SYS_FCNTL, but is overridden on 32-bit Linux -// systems by flock_linux_32bit.go to be SYS_FCNTL64. -var fcntl64Syscall uintptr = SYS_FCNTL - -// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command. -func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error { - _, _, errno := Syscall(fcntl64Syscall, fd, uintptr(cmd), uintptr(unsafe.Pointer(lk))) - if errno == 0 { - return nil - } - return errno -} diff --git a/vendor/golang.org/x/sys/unix/flock_linux_32bit.go b/vendor/golang.org/x/sys/unix/flock_linux_32bit.go deleted file mode 100644 index fc0e50e..0000000 --- a/vendor/golang.org/x/sys/unix/flock_linux_32bit.go +++ /dev/null @@ -1,13 +0,0 @@ -// +build linux,386 linux,arm linux,mips linux,mipsle - -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package unix - -func init() { - // On 32-bit Linux systems, the fcntl syscall that matches Go's - // Flock_t type is SYS_FCNTL64, not SYS_FCNTL. - fcntl64Syscall = SYS_FCNTL64 -} diff --git a/vendor/golang.org/x/sys/unix/gccgo.go b/vendor/golang.org/x/sys/unix/gccgo.go deleted file mode 100644 index 94c8232..0000000 --- a/vendor/golang.org/x/sys/unix/gccgo.go +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build gccgo - -package unix - -import "syscall" - -// We can't use the gc-syntax .s files for gccgo. On the plus side -// much of the functionality can be written directly in Go. - -//extern gccgoRealSyscall -func realSyscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r, errno uintptr) - -func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) { - syscall.Entersyscall() - r, errno := realSyscall(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0) - syscall.Exitsyscall() - return r, 0, syscall.Errno(errno) -} - -func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) { - syscall.Entersyscall() - r, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, 0, 0, 0) - syscall.Exitsyscall() - return r, 0, syscall.Errno(errno) -} - -func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) { - syscall.Entersyscall() - r, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9) - syscall.Exitsyscall() - return r, 0, syscall.Errno(errno) -} - -func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) { - r, errno := realSyscall(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0) - return r, 0, syscall.Errno(errno) -} - -func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) { - r, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, 0, 0, 0) - return r, 0, syscall.Errno(errno) -} diff --git a/vendor/golang.org/x/sys/unix/gccgo_c.c b/vendor/golang.org/x/sys/unix/gccgo_c.c deleted file mode 100644 index 07f6be0..0000000 --- a/vendor/golang.org/x/sys/unix/gccgo_c.c +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build gccgo - -#include -#include -#include - -#define _STRINGIFY2_(x) #x -#define _STRINGIFY_(x) _STRINGIFY2_(x) -#define GOSYM_PREFIX _STRINGIFY_(__USER_LABEL_PREFIX__) - -// Call syscall from C code because the gccgo support for calling from -// Go to C does not support varargs functions. - -struct ret { - uintptr_t r; - uintptr_t err; -}; - -struct 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) -{ - struct ret r; - - errno = 0; - r.r = syscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9); - r.err = errno; - return r; -} - -// Define the use function in C so that it is not inlined. - -extern void use(void *) __asm__ (GOSYM_PREFIX GOPKGPATH ".use") __attribute__((noinline)); - -void -use(void *p __attribute__ ((unused))) -{ -} diff --git a/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go b/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go deleted file mode 100644 index bffe1a7..0000000 --- a/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build gccgo,linux,amd64 - -package unix - -import "syscall" - -//extern gettimeofday -func realGettimeofday(*Timeval, *byte) int32 - -func gettimeofday(tv *Timeval) (err syscall.Errno) { - r := realGettimeofday(tv, nil) - if r < 0 { - return syscall.GetErrno() - } - return 0 -} diff --git a/vendor/golang.org/x/sys/unix/gccgo_linux_sparc64.go b/vendor/golang.org/x/sys/unix/gccgo_linux_sparc64.go deleted file mode 100644 index 5633269..0000000 --- a/vendor/golang.org/x/sys/unix/gccgo_linux_sparc64.go +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build gccgo,linux,sparc64 - -package unix - -import "syscall" - -//extern sysconf -func realSysconf(name int) int64 - -func sysconf(name int) (n int64, err syscall.Errno) { - r := realSysconf(name) - if r < 0 { - return 0, syscall.GetErrno() - } - return r, 0 -} diff --git a/vendor/golang.org/x/sys/unix/mkall.sh b/vendor/golang.org/x/sys/unix/mkall.sh deleted file mode 100755 index c3a0809..0000000 --- a/vendor/golang.org/x/sys/unix/mkall.sh +++ /dev/null @@ -1,197 +0,0 @@ -#!/usr/bin/env bash -# Copyright 2009 The Go Authors. All rights reserved. -# Use of this source code is governed by a BSD-style -# license that can be found in the LICENSE file. - -# This script runs or (given -n) prints suggested commands to generate files for -# the Architecture/OS specified by the GOARCH and GOOS environment variables. -# See README.md for more information about how the build system works. - -GOOSARCH="${GOOS}_${GOARCH}" - -# defaults -mksyscall="./mksyscall.pl" -mkerrors="./mkerrors.sh" -zerrors="zerrors_$GOOSARCH.go" -mksysctl="" -zsysctl="zsysctl_$GOOSARCH.go" -mksysnum= -mktypes= -run="sh" -cmd="" - -case "$1" in --syscalls) - for i in zsyscall*go - do - # Run the command line that appears in the first line - # of the generated file to regenerate it. - sed 1q $i | sed 's;^// ;;' | sh > _$i && gofmt < _$i > $i - rm _$i - done - exit 0 - ;; --n) - run="cat" - cmd="echo" - shift -esac - -case "$#" in -0) - ;; -*) - echo 'usage: mkall.sh [-n]' 1>&2 - exit 2 -esac - -if [[ "$GOOS" = "linux" ]] && [[ "$GOARCH" != "sparc64" ]]; then - # Use then new build system - # Files generated through docker (use $cmd so you can Ctl-C the build or run) - $cmd docker build --tag generate:$GOOS $GOOS - $cmd docker run --interactive --tty --volume $(dirname "$(readlink -f "$0")"):/build generate:$GOOS - exit -fi - -GOOSARCH_in=syscall_$GOOSARCH.go -case "$GOOSARCH" in -_* | *_ | _) - echo 'undefined $GOOS_$GOARCH:' "$GOOSARCH" 1>&2 - exit 1 - ;; -darwin_386) - mkerrors="$mkerrors -m32" - mksyscall="./mksyscall.pl -l32" - mksysnum="./mksysnum_darwin.pl $(xcrun --show-sdk-path --sdk macosx)/usr/include/sys/syscall.h" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -darwin_amd64) - mkerrors="$mkerrors -m64" - mksysnum="./mksysnum_darwin.pl $(xcrun --show-sdk-path --sdk macosx)/usr/include/sys/syscall.h" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -darwin_arm) - mkerrors="$mkerrors" - mksysnum="./mksysnum_darwin.pl $(xcrun --show-sdk-path --sdk iphoneos)/usr/include/sys/syscall.h" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -darwin_arm64) - mkerrors="$mkerrors -m64" - mksysnum="./mksysnum_darwin.pl $(xcrun --show-sdk-path --sdk iphoneos)/usr/include/sys/syscall.h" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -dragonfly_386) - mkerrors="$mkerrors -m32" - mksyscall="./mksyscall.pl -l32 -dragonfly" - mksysnum="curl -s 'http://gitweb.dragonflybsd.org/dragonfly.git/blob_plain/HEAD:/sys/kern/syscalls.master' | ./mksysnum_dragonfly.pl" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -dragonfly_amd64) - mkerrors="$mkerrors -m64" - mksyscall="./mksyscall.pl -dragonfly" - mksysnum="curl -s 'http://gitweb.dragonflybsd.org/dragonfly.git/blob_plain/HEAD:/sys/kern/syscalls.master' | ./mksysnum_dragonfly.pl" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -freebsd_386) - mkerrors="$mkerrors -m32" - mksyscall="./mksyscall.pl -l32" - mksysnum="curl -s 'http://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master' | ./mksysnum_freebsd.pl" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -freebsd_amd64) - mkerrors="$mkerrors -m64" - mksysnum="curl -s 'http://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master' | ./mksysnum_freebsd.pl" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -freebsd_arm) - mkerrors="$mkerrors" - mksyscall="./mksyscall.pl -l32 -arm" - mksysnum="curl -s 'http://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master' | ./mksysnum_freebsd.pl" - # Let the type of C char be signed for making the bare syscall - # API consistent across platforms. - mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" - ;; -linux_sparc64) - GOOSARCH_in=syscall_linux_sparc64.go - unistd_h=/usr/include/sparc64-linux-gnu/asm/unistd.h - mkerrors="$mkerrors -m64" - mksysnum="./mksysnum_linux.pl $unistd_h" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -netbsd_386) - mkerrors="$mkerrors -m32" - mksyscall="./mksyscall.pl -l32 -netbsd" - mksysnum="curl -s 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master' | ./mksysnum_netbsd.pl" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -netbsd_amd64) - mkerrors="$mkerrors -m64" - mksyscall="./mksyscall.pl -netbsd" - mksysnum="curl -s 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master' | ./mksysnum_netbsd.pl" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -netbsd_arm) - mkerrors="$mkerrors" - mksyscall="./mksyscall.pl -l32 -netbsd -arm" - mksysnum="curl -s 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master' | ./mksysnum_netbsd.pl" - # Let the type of C char be signed for making the bare syscall - # API consistent across platforms. - mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" - ;; -openbsd_386) - mkerrors="$mkerrors -m32" - mksyscall="./mksyscall.pl -l32 -openbsd" - mksysctl="./mksysctl_openbsd.pl" - zsysctl="zsysctl_openbsd.go" - mksysnum="curl -s 'http://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master' | ./mksysnum_openbsd.pl" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -openbsd_amd64) - mkerrors="$mkerrors -m64" - mksyscall="./mksyscall.pl -openbsd" - mksysctl="./mksysctl_openbsd.pl" - zsysctl="zsysctl_openbsd.go" - mksysnum="curl -s 'http://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master' | ./mksysnum_openbsd.pl" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -openbsd_arm) - mkerrors="$mkerrors" - mksyscall="./mksyscall.pl -l32 -openbsd -arm" - mksysctl="./mksysctl_openbsd.pl" - zsysctl="zsysctl_openbsd.go" - mksysnum="curl -s 'http://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master' | ./mksysnum_openbsd.pl" - # Let the type of C char be signed for making the bare syscall - # API consistent across platforms. - mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" - ;; -solaris_amd64) - mksyscall="./mksyscall_solaris.pl" - mkerrors="$mkerrors -m64" - mksysnum= - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -*) - echo 'unrecognized $GOOS_$GOARCH: ' "$GOOSARCH" 1>&2 - exit 1 - ;; -esac - -( - if [ -n "$mkerrors" ]; then echo "$mkerrors |gofmt >$zerrors"; fi - case "$GOOS" in - *) - syscall_goos="syscall_$GOOS.go" - case "$GOOS" in - darwin | dragonfly | freebsd | netbsd | openbsd) - syscall_goos="syscall_bsd.go $syscall_goos" - ;; - esac - if [ -n "$mksyscall" ]; then echo "$mksyscall -tags $GOOS,$GOARCH $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.go"; fi - ;; - esac - if [ -n "$mksysctl" ]; then echo "$mksysctl |gofmt >$zsysctl"; fi - if [ -n "$mksysnum" ]; then echo "$mksysnum |gofmt >zsysnum_$GOOSARCH.go"; fi - if [ -n "$mktypes" ]; then - echo "$mktypes types_$GOOS.go | go run mkpost.go > ztypes_$GOOSARCH.go"; - fi -) | $run diff --git a/vendor/golang.org/x/sys/unix/mkerrors.sh b/vendor/golang.org/x/sys/unix/mkerrors.sh deleted file mode 100755 index 2c434f7..0000000 --- a/vendor/golang.org/x/sys/unix/mkerrors.sh +++ /dev/null @@ -1,563 +0,0 @@ -#!/usr/bin/env bash -# Copyright 2009 The Go Authors. All rights reserved. -# Use of this source code is governed by a BSD-style -# license that can be found in the LICENSE file. - -# Generate Go code listing errors and other #defined constant -# values (ENAMETOOLONG etc.), by asking the preprocessor -# about the definitions. - -unset LANG -export LC_ALL=C -export LC_CTYPE=C - -if test -z "$GOARCH" -o -z "$GOOS"; then - echo 1>&2 "GOARCH or GOOS not defined in environment" - exit 1 -fi - -# Check that we are using the new build system if we should -if [[ "$GOOS" -eq "linux" ]] && [[ "$GOARCH" != "sparc64" ]]; then - if [[ "$GOLANG_SYS_BUILD" -ne "docker" ]]; then - echo 1>&2 "In the new build system, mkerrors should not be called directly." - echo 1>&2 "See README.md" - exit 1 - fi -fi - -CC=${CC:-cc} - -if [[ "$GOOS" -eq "solaris" ]]; then - # Assumes GNU versions of utilities in PATH. - export PATH=/usr/gnu/bin:$PATH -fi - -uname=$(uname) - -includes_Darwin=' -#define _DARWIN_C_SOURCE -#define KERNEL -#define _DARWIN_USE_64_BIT_INODE -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -' - -includes_DragonFly=' -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -' - -includes_FreeBSD=' -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#if __FreeBSD__ >= 10 -#define IFT_CARP 0xf8 // IFT_CARP is deprecated in FreeBSD 10 -#undef SIOCAIFADDR -#define SIOCAIFADDR _IOW(105, 26, struct oifaliasreq) // ifaliasreq contains if_data -#undef SIOCSIFPHYADDR -#define SIOCSIFPHYADDR _IOW(105, 70, struct oifaliasreq) // ifaliasreq contains if_data -#endif -' - -includes_Linux=' -#define _LARGEFILE_SOURCE -#define _LARGEFILE64_SOURCE -#ifndef __LP64__ -#define _FILE_OFFSET_BITS 64 -#endif -#define _GNU_SOURCE - -// is broken on powerpc64, as it fails to include definitions of -// these structures. We just include them copied from . -#if defined(__powerpc__) -struct sgttyb { - char sg_ispeed; - char sg_ospeed; - char sg_erase; - char sg_kill; - short sg_flags; -}; - -struct tchars { - char t_intrc; - char t_quitc; - char t_startc; - char t_stopc; - char t_eofc; - char t_brkc; -}; - -struct ltchars { - char t_suspc; - char t_dsuspc; - char t_rprntc; - char t_flushc; - char t_werasc; - char t_lnextc; -}; -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifndef MSG_FASTOPEN -#define MSG_FASTOPEN 0x20000000 -#endif - -#ifndef PTRACE_GETREGS -#define PTRACE_GETREGS 0xc -#endif - -#ifndef PTRACE_SETREGS -#define PTRACE_SETREGS 0xd -#endif - -#ifndef SOL_NETLINK -#define SOL_NETLINK 270 -#endif - -#ifdef SOL_BLUETOOTH -// SPARC includes this in /usr/include/sparc64-linux-gnu/bits/socket.h -// but it is already in bluetooth_linux.go -#undef SOL_BLUETOOTH -#endif - -// Certain constants are missing from the fs/crypto UAPI -#define FS_KEY_DESC_PREFIX "fscrypt:" -#define FS_KEY_DESC_PREFIX_SIZE 8 -#define FS_MAX_KEY_SIZE 64 -' - -includes_NetBSD=' -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// Needed since refers to it... -#define schedppq 1 -' - -includes_OpenBSD=' -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// We keep some constants not supported in OpenBSD 5.5 and beyond for -// the promise of compatibility. -#define EMUL_ENABLED 0x1 -#define EMUL_NATIVE 0x2 -#define IPV6_FAITH 0x1d -#define IPV6_OPTIONS 0x1 -#define IPV6_RTHDR_STRICT 0x1 -#define IPV6_SOCKOPT_RESERVED1 0x3 -#define SIOCGIFGENERIC 0xc020693a -#define SIOCSIFGENERIC 0x80206939 -#define WALTSIG 0x4 -' - -includes_SunOS=' -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -' - - -includes=' -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -' -ccflags="$@" - -# Write go tool cgo -godefs input. -( - echo package unix - echo - echo '/*' - indirect="includes_$(uname)" - echo "${!indirect} $includes" - echo '*/' - echo 'import "C"' - echo 'import "syscall"' - echo - echo 'const (' - - # The gcc command line prints all the #defines - # it encounters while processing the input - echo "${!indirect} $includes" | $CC -x c - -E -dM $ccflags | - awk ' - $1 != "#define" || $2 ~ /\(/ || $3 == "" {next} - - $2 ~ /^E([ABCD]X|[BIS]P|[SD]I|S|FL)$/ {next} # 386 registers - $2 ~ /^(SIGEV_|SIGSTKSZ|SIGRT(MIN|MAX))/ {next} - $2 ~ /^(SCM_SRCRT)$/ {next} - $2 ~ /^(MAP_FAILED)$/ {next} - $2 ~ /^ELF_.*$/ {next}# contains ELF_ARCH, etc. - - $2 ~ /^EXTATTR_NAMESPACE_NAMES/ || - $2 ~ /^EXTATTR_NAMESPACE_[A-Z]+_STRING/ {next} - - $2 !~ /^ETH_/ && - $2 !~ /^EPROC_/ && - $2 !~ /^EQUIV_/ && - $2 !~ /^EXPR_/ && - $2 ~ /^E[A-Z0-9_]+$/ || - $2 ~ /^B[0-9_]+$/ || - $2 == "BOTHER" || - $2 ~ /^CI?BAUD(EX)?$/ || - $2 == "IBSHIFT" || - $2 ~ /^V[A-Z0-9]+$/ || - $2 ~ /^CS[A-Z0-9]/ || - $2 ~ /^I(SIG|CANON|CRNL|UCLC|EXTEN|MAXBEL|STRIP|UTF8)$/ || - $2 ~ /^IGN/ || - $2 ~ /^IX(ON|ANY|OFF)$/ || - $2 ~ /^IN(LCR|PCK)$/ || - $2 ~ /(^FLU?SH)|(FLU?SH$)/ || - $2 ~ /^C(LOCAL|READ|MSPAR|RTSCTS)$/ || - $2 == "BRKINT" || - $2 == "HUPCL" || - $2 == "PENDIN" || - $2 == "TOSTOP" || - $2 == "XCASE" || - $2 == "ALTWERASE" || - $2 == "NOKERNINFO" || - $2 ~ /^PAR/ || - $2 ~ /^SIG[^_]/ || - $2 ~ /^O[CNPFPL][A-Z]+[^_][A-Z]+$/ || - $2 ~ /^(NL|CR|TAB|BS|VT|FF)DLY$/ || - $2 ~ /^(NL|CR|TAB|BS|VT|FF)[0-9]$/ || - $2 ~ /^O?XTABS$/ || - $2 ~ /^TC[IO](ON|OFF)$/ || - $2 ~ /^IN_/ || - $2 ~ /^LOCK_(SH|EX|NB|UN)$/ || - $2 ~ /^(AF|SOCK|SO|SOL|IPPROTO|IP|IPV6|ICMP6|TCP|EVFILT|NOTE|EV|SHUT|PROT|MAP|PACKET|MSG|SCM|MCL|DT|MADV|PR)_/ || - $2 ~ /^FALLOC_/ || - $2 == "ICMPV6_FILTER" || - $2 == "SOMAXCONN" || - $2 == "NAME_MAX" || - $2 == "IFNAMSIZ" || - $2 ~ /^CTL_(MAXNAME|NET|QUERY)$/ || - $2 ~ /^SYSCTL_VERS/ || - $2 ~ /^(MS|MNT|UMOUNT)_/ || - $2 ~ /^TUN(SET|GET|ATTACH|DETACH)/ || - $2 ~ /^(O|F|E?FD|NAME|S|PTRACE|PT)_/ || - $2 ~ /^LINUX_REBOOT_CMD_/ || - $2 ~ /^LINUX_REBOOT_MAGIC[12]$/ || - $2 !~ "NLA_TYPE_MASK" && - $2 ~ /^(NETLINK|NLM|NLMSG|NLA|IFA|IFAN|RT|RTCF|RTN|RTPROT|RTNH|ARPHRD|ETH_P)_/ || - $2 ~ /^SIOC/ || - $2 ~ /^TIOC/ || - $2 ~ /^TCGET/ || - $2 ~ /^TCSET/ || - $2 ~ /^TC(FLSH|SBRKP?|XONC)$/ || - $2 !~ "RTF_BITS" && - $2 ~ /^(IFF|IFT|NET_RT|RTM|RTF|RTV|RTA|RTAX)_/ || - $2 ~ /^BIOC/ || - $2 ~ /^RUSAGE_(SELF|CHILDREN|THREAD)/ || - $2 ~ /^RLIMIT_(AS|CORE|CPU|DATA|FSIZE|LOCKS|MEMLOCK|MSGQUEUE|NICE|NOFILE|NPROC|RSS|RTPRIO|RTTIME|SIGPENDING|STACK)|RLIM_INFINITY/ || - $2 ~ /^PRIO_(PROCESS|PGRP|USER)/ || - $2 ~ /^CLONE_[A-Z_]+/ || - $2 !~ /^(BPF_TIMEVAL)$/ && - $2 ~ /^(BPF|DLT)_/ || - $2 ~ /^CLOCK_/ || - $2 ~ /^CAN_/ || - $2 ~ /^CAP_/ || - $2 ~ /^ALG_/ || - $2 ~ /^FS_(POLICY_FLAGS|KEY_DESC|ENCRYPTION_MODE|[A-Z0-9_]+_KEY_SIZE|IOC_(GET|SET)_ENCRYPTION)/ || - $2 ~ /^GRND_/ || - $2 ~ /^KEY_(SPEC|REQKEY_DEFL)_/ || - $2 ~ /^KEYCTL_/ || - $2 ~ /^PERF_EVENT_IOC_/ || - $2 ~ /^SECCOMP_MODE_/ || - $2 ~ /^SPLICE_/ || - $2 ~ /^(VM|VMADDR)_/ || - $2 ~ /^(TASKSTATS|TS)_/ || - $2 ~ /^GENL_/ || - $2 ~ /^XATTR_(CREATE|REPLACE)/ || - $2 !~ "WMESGLEN" && - $2 ~ /^W[A-Z0-9]+$/ || - $2 ~ /^BLK[A-Z]*(GET$|SET$|BUF$|PART$|SIZE)/ {printf("\t%s = C.%s\n", $2, $2)} - $2 ~ /^__WCOREFLAG$/ {next} - $2 ~ /^__W[A-Z0-9]+$/ {printf("\t%s = C.%s\n", substr($2,3), $2)} - - {next} - ' | sort - - echo ')' -) >_const.go - -# Pull out the error names for later. -errors=$( - echo '#include ' | $CC -x c - -E -dM $ccflags | - awk '$1=="#define" && $2 ~ /^E[A-Z0-9_]+$/ { print $2 }' | - sort -) - -# Pull out the signal names for later. -signals=$( - echo '#include ' | $CC -x c - -E -dM $ccflags | - awk '$1=="#define" && $2 ~ /^SIG[A-Z0-9]+$/ { print $2 }' | - egrep -v '(SIGSTKSIZE|SIGSTKSZ|SIGRT)' | - sort -) - -# Again, writing regexps to a file. -echo '#include ' | $CC -x c - -E -dM $ccflags | - awk '$1=="#define" && $2 ~ /^E[A-Z0-9_]+$/ { print "^\t" $2 "[ \t]*=" }' | - sort >_error.grep -echo '#include ' | $CC -x c - -E -dM $ccflags | - awk '$1=="#define" && $2 ~ /^SIG[A-Z0-9]+$/ { print "^\t" $2 "[ \t]*=" }' | - egrep -v '(SIGSTKSIZE|SIGSTKSZ|SIGRT)' | - sort >_signal.grep - -echo '// mkerrors.sh' "$@" -echo '// Code generated by the command above; see README.md. DO NOT EDIT.' -echo -echo "// +build ${GOARCH},${GOOS}" -echo -go tool cgo -godefs -- "$@" _const.go >_error.out -cat _error.out | grep -vf _error.grep | grep -vf _signal.grep -echo -echo '// Errors' -echo 'const (' -cat _error.out | grep -f _error.grep | sed 's/=\(.*\)/= syscall.Errno(\1)/' -echo ')' - -echo -echo '// Signals' -echo 'const (' -cat _error.out | grep -f _signal.grep | sed 's/=\(.*\)/= syscall.Signal(\1)/' -echo ')' - -# Run C program to print error and syscall strings. -( - echo -E " -#include -#include -#include -#include -#include -#include - -#define nelem(x) (sizeof(x)/sizeof((x)[0])) - -enum { A = 'A', Z = 'Z', a = 'a', z = 'z' }; // avoid need for single quotes below - -int errors[] = { -" - for i in $errors - do - echo -E ' '$i, - done - - echo -E " -}; - -int signals[] = { -" - for i in $signals - do - echo -E ' '$i, - done - - # Use -E because on some systems bash builtin interprets \n itself. - echo -E ' -}; - -static int -intcmp(const void *a, const void *b) -{ - return *(int*)a - *(int*)b; -} - -int -main(void) -{ - int i, e; - char buf[1024], *p; - - printf("\n\n// Error table\n"); - printf("var errors = [...]string {\n"); - qsort(errors, nelem(errors), sizeof errors[0], intcmp); - for(i=0; i 0 && errors[i-1] == e) - continue; - strcpy(buf, strerror(e)); - // lowercase first letter: Bad -> bad, but STREAM -> STREAM. - if(A <= buf[0] && buf[0] <= Z && a <= buf[1] && buf[1] <= z) - buf[0] += a - A; - printf("\t%d: \"%s\",\n", e, buf); - } - printf("}\n\n"); - - printf("\n\n// Signal table\n"); - printf("var signals = [...]string {\n"); - qsort(signals, nelem(signals), sizeof signals[0], intcmp); - for(i=0; i 0 && signals[i-1] == e) - continue; - strcpy(buf, strsignal(e)); - // lowercase first letter: Bad -> bad, but STREAM -> STREAM. - if(A <= buf[0] && buf[0] <= Z && a <= buf[1] && buf[1] <= z) - buf[0] += a - A; - // cut trailing : number. - p = strrchr(buf, ":"[0]); - if(p) - *p = '\0'; - printf("\t%d: \"%s\",\n", e, buf); - } - printf("}\n\n"); - - return 0; -} - -' -) >_errors.c - -$CC $ccflags -o _errors _errors.c && $GORUN ./_errors && rm -f _errors.c _errors _const.go _error.grep _signal.grep _error.out diff --git a/vendor/golang.org/x/sys/unix/mkpost.go b/vendor/golang.org/x/sys/unix/mkpost.go deleted file mode 100644 index d3ff659..0000000 --- a/vendor/golang.org/x/sys/unix/mkpost.go +++ /dev/null @@ -1,88 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -// mkpost processes the output of cgo -godefs to -// modify the generated types. It is used to clean up -// the sys API in an architecture specific manner. -// -// mkpost is run after cgo -godefs; see README.md. -package main - -import ( - "bytes" - "fmt" - "go/format" - "io/ioutil" - "log" - "os" - "regexp" -) - -func main() { - // Get the OS and architecture (using GOARCH_TARGET if it exists) - goos := os.Getenv("GOOS") - goarch := os.Getenv("GOARCH_TARGET") - if goarch == "" { - goarch = os.Getenv("GOARCH") - } - // Check that we are using the new build system if we should be. - if goos == "linux" && goarch != "sparc64" { - if os.Getenv("GOLANG_SYS_BUILD") != "docker" { - os.Stderr.WriteString("In the new build system, mkpost should not be called directly.\n") - os.Stderr.WriteString("See README.md\n") - os.Exit(1) - } - } - - b, err := ioutil.ReadAll(os.Stdin) - if err != nil { - log.Fatal(err) - } - - // If we have empty Ptrace structs, we should delete them. Only s390x emits - // nonempty Ptrace structs. - ptraceRexexp := regexp.MustCompile(`type Ptrace((Psw|Fpregs|Per) struct {\s*})`) - b = ptraceRexexp.ReplaceAll(b, nil) - - // Replace the control_regs union with a blank identifier for now. - controlRegsRegex := regexp.MustCompile(`(Control_regs)\s+\[0\]uint64`) - b = controlRegsRegex.ReplaceAll(b, []byte("_ [0]uint64")) - - // Remove fields that are added by glibc - // Note that this is unstable as the identifers are private. - removeFieldsRegex := regexp.MustCompile(`X__glibc\S*`) - b = removeFieldsRegex.ReplaceAll(b, []byte("_")) - - // We refuse to export private fields on s390x - if goarch == "s390x" && goos == "linux" { - // Remove cgo padding fields - removeFieldsRegex := regexp.MustCompile(`Pad_cgo_\d+`) - b = removeFieldsRegex.ReplaceAll(b, []byte("_")) - - // Remove padding, hidden, or unused fields - removeFieldsRegex = regexp.MustCompile(`X_\S+`) - b = removeFieldsRegex.ReplaceAll(b, []byte("_")) - } - - // Remove the first line of warning from cgo - b = b[bytes.IndexByte(b, '\n')+1:] - // Modify the command in the header to include: - // mkpost, our own warning, and a build tag. - replacement := fmt.Sprintf(`$1 | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build %s,%s`, goarch, goos) - cgoCommandRegex := regexp.MustCompile(`(cgo -godefs .*)`) - b = cgoCommandRegex.ReplaceAll(b, []byte(replacement)) - - // gofmt - b, err = format.Source(b) - if err != nil { - log.Fatal(err) - } - - os.Stdout.Write(b) -} diff --git a/vendor/golang.org/x/sys/unix/mksyscall.pl b/vendor/golang.org/x/sys/unix/mksyscall.pl deleted file mode 100755 index fb929b4..0000000 --- a/vendor/golang.org/x/sys/unix/mksyscall.pl +++ /dev/null @@ -1,328 +0,0 @@ -#!/usr/bin/env perl -# Copyright 2009 The Go Authors. All rights reserved. -# Use of this source code is governed by a BSD-style -# license that can be found in the LICENSE file. - -# This program reads a file containing function prototypes -# (like syscall_darwin.go) and generates system call bodies. -# The prototypes are marked by lines beginning with "//sys" -# and read like func declarations if //sys is replaced by func, but: -# * The parameter lists must give a name for each argument. -# This includes return parameters. -# * The parameter lists must give a type for each argument: -# the (x, y, z int) shorthand is not allowed. -# * If the return parameter is an error number, it must be named errno. - -# A line beginning with //sysnb is like //sys, except that the -# goroutine will not be suspended during the execution of the system -# call. This must only be used for system calls which can never -# block, as otherwise the system call could cause all goroutines to -# hang. - -use strict; - -my $cmdline = "mksyscall.pl " . join(' ', @ARGV); -my $errors = 0; -my $_32bit = ""; -my $plan9 = 0; -my $openbsd = 0; -my $netbsd = 0; -my $dragonfly = 0; -my $arm = 0; # 64-bit value should use (even, odd)-pair -my $tags = ""; # build tags - -if($ARGV[0] eq "-b32") { - $_32bit = "big-endian"; - shift; -} elsif($ARGV[0] eq "-l32") { - $_32bit = "little-endian"; - shift; -} -if($ARGV[0] eq "-plan9") { - $plan9 = 1; - shift; -} -if($ARGV[0] eq "-openbsd") { - $openbsd = 1; - shift; -} -if($ARGV[0] eq "-netbsd") { - $netbsd = 1; - shift; -} -if($ARGV[0] eq "-dragonfly") { - $dragonfly = 1; - shift; -} -if($ARGV[0] eq "-arm") { - $arm = 1; - shift; -} -if($ARGV[0] eq "-tags") { - shift; - $tags = $ARGV[0]; - shift; -} - -if($ARGV[0] =~ /^-/) { - print STDERR "usage: mksyscall.pl [-b32 | -l32] [-tags x,y] [file ...]\n"; - exit 1; -} - -# Check that we are using the new build system if we should -if($ENV{'GOOS'} eq "linux" && $ENV{'GOARCH'} ne "sparc64") { - if($ENV{'GOLANG_SYS_BUILD'} ne "docker") { - print STDERR "In the new build system, mksyscall should not be called directly.\n"; - print STDERR "See README.md\n"; - exit 1; - } -} - - -sub parseparamlist($) { - my ($list) = @_; - $list =~ s/^\s*//; - $list =~ s/\s*$//; - if($list eq "") { - return (); - } - return split(/\s*,\s*/, $list); -} - -sub parseparam($) { - my ($p) = @_; - if($p !~ /^(\S*) (\S*)$/) { - print STDERR "$ARGV:$.: malformed parameter: $p\n"; - $errors = 1; - return ("xx", "int"); - } - return ($1, $2); -} - -my $text = ""; -while(<>) { - chomp; - s/\s+/ /g; - s/^\s+//; - s/\s+$//; - my $nonblock = /^\/\/sysnb /; - next if !/^\/\/sys / && !$nonblock; - - # Line must be of the form - # func Open(path string, mode int, perm int) (fd int, errno error) - # Split into name, in params, out params. - if(!/^\/\/sys(nb)? (\w+)\(([^()]*)\)\s*(?:\(([^()]+)\))?\s*(?:=\s*((?i)SYS_[A-Z0-9_]+))?$/) { - print STDERR "$ARGV:$.: malformed //sys declaration\n"; - $errors = 1; - next; - } - my ($func, $in, $out, $sysname) = ($2, $3, $4, $5); - - # Split argument lists on comma. - my @in = parseparamlist($in); - my @out = parseparamlist($out); - - # Try in vain to keep people from editing this file. - # The theory is that they jump into the middle of the file - # without reading the header. - $text .= "// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\n"; - - # Go function header. - my $out_decl = @out ? sprintf(" (%s)", join(', ', @out)) : ""; - $text .= sprintf "func %s(%s)%s {\n", $func, join(', ', @in), $out_decl; - - # Check if err return available - my $errvar = ""; - foreach my $p (@out) { - my ($name, $type) = parseparam($p); - if($type eq "error") { - $errvar = $name; - last; - } - } - - # Prepare arguments to Syscall. - my @args = (); - my $n = 0; - foreach my $p (@in) { - my ($name, $type) = parseparam($p); - if($type =~ /^\*/) { - push @args, "uintptr(unsafe.Pointer($name))"; - } elsif($type eq "string" && $errvar ne "") { - $text .= "\tvar _p$n *byte\n"; - $text .= "\t_p$n, $errvar = BytePtrFromString($name)\n"; - $text .= "\tif $errvar != nil {\n\t\treturn\n\t}\n"; - push @args, "uintptr(unsafe.Pointer(_p$n))"; - $n++; - } elsif($type eq "string") { - print STDERR "$ARGV:$.: $func uses string arguments, but has no error return\n"; - $text .= "\tvar _p$n *byte\n"; - $text .= "\t_p$n, _ = BytePtrFromString($name)\n"; - push @args, "uintptr(unsafe.Pointer(_p$n))"; - $n++; - } elsif($type =~ /^\[\](.*)/) { - # Convert slice into pointer, length. - # Have to be careful not to take address of &a[0] if len == 0: - # pass dummy pointer in that case. - # Used to pass nil, but some OSes or simulators reject write(fd, nil, 0). - $text .= "\tvar _p$n unsafe.Pointer\n"; - $text .= "\tif len($name) > 0 {\n\t\t_p$n = unsafe.Pointer(\&${name}[0])\n\t}"; - $text .= " else {\n\t\t_p$n = unsafe.Pointer(&_zero)\n\t}"; - $text .= "\n"; - push @args, "uintptr(_p$n)", "uintptr(len($name))"; - $n++; - } elsif($type eq "int64" && ($openbsd || $netbsd)) { - push @args, "0"; - if($_32bit eq "big-endian") { - push @args, "uintptr($name>>32)", "uintptr($name)"; - } elsif($_32bit eq "little-endian") { - push @args, "uintptr($name)", "uintptr($name>>32)"; - } else { - push @args, "uintptr($name)"; - } - } elsif($type eq "int64" && $dragonfly) { - if ($func !~ /^extp(read|write)/i) { - push @args, "0"; - } - if($_32bit eq "big-endian") { - push @args, "uintptr($name>>32)", "uintptr($name)"; - } elsif($_32bit eq "little-endian") { - push @args, "uintptr($name)", "uintptr($name>>32)"; - } else { - push @args, "uintptr($name)"; - } - } elsif($type eq "int64" && $_32bit ne "") { - if(@args % 2 && $arm) { - # arm abi specifies 64-bit argument uses - # (even, odd) pair - push @args, "0" - } - if($_32bit eq "big-endian") { - push @args, "uintptr($name>>32)", "uintptr($name)"; - } else { - push @args, "uintptr($name)", "uintptr($name>>32)"; - } - } else { - push @args, "uintptr($name)"; - } - } - - # Determine which form to use; pad args with zeros. - my $asm = "Syscall"; - if ($nonblock) { - $asm = "RawSyscall"; - } - if(@args <= 3) { - while(@args < 3) { - push @args, "0"; - } - } elsif(@args <= 6) { - $asm .= "6"; - while(@args < 6) { - push @args, "0"; - } - } elsif(@args <= 9) { - $asm .= "9"; - while(@args < 9) { - push @args, "0"; - } - } else { - print STDERR "$ARGV:$.: too many arguments to system call\n"; - } - - # System call number. - if($sysname eq "") { - $sysname = "SYS_$func"; - $sysname =~ s/([a-z])([A-Z])/${1}_$2/g; # turn FooBar into Foo_Bar - $sysname =~ y/a-z/A-Z/; - } - - # Actual call. - my $args = join(', ', @args); - my $call = "$asm($sysname, $args)"; - - # Assign return values. - my $body = ""; - my @ret = ("_", "_", "_"); - my $do_errno = 0; - for(my $i=0; $i<@out; $i++) { - my $p = $out[$i]; - my ($name, $type) = parseparam($p); - my $reg = ""; - if($name eq "err" && !$plan9) { - $reg = "e1"; - $ret[2] = $reg; - $do_errno = 1; - } elsif($name eq "err" && $plan9) { - $ret[0] = "r0"; - $ret[2] = "e1"; - next; - } else { - $reg = sprintf("r%d", $i); - $ret[$i] = $reg; - } - if($type eq "bool") { - $reg = "$reg != 0"; - } - if($type eq "int64" && $_32bit ne "") { - # 64-bit number in r1:r0 or r0:r1. - if($i+2 > @out) { - print STDERR "$ARGV:$.: not enough registers for int64 return\n"; - } - if($_32bit eq "big-endian") { - $reg = sprintf("int64(r%d)<<32 | int64(r%d)", $i, $i+1); - } else { - $reg = sprintf("int64(r%d)<<32 | int64(r%d)", $i+1, $i); - } - $ret[$i] = sprintf("r%d", $i); - $ret[$i+1] = sprintf("r%d", $i+1); - } - if($reg ne "e1" || $plan9) { - $body .= "\t$name = $type($reg)\n"; - } - } - if ($ret[0] eq "_" && $ret[1] eq "_" && $ret[2] eq "_") { - $text .= "\t$call\n"; - } else { - $text .= "\t$ret[0], $ret[1], $ret[2] := $call\n"; - } - $text .= $body; - - if ($plan9 && $ret[2] eq "e1") { - $text .= "\tif int32(r0) == -1 {\n"; - $text .= "\t\terr = e1\n"; - $text .= "\t}\n"; - } elsif ($do_errno) { - $text .= "\tif e1 != 0 {\n"; - $text .= "\t\terr = errnoErr(e1)\n"; - $text .= "\t}\n"; - } - $text .= "\treturn\n"; - $text .= "}\n\n"; -} - -chomp $text; -chomp $text; - -if($errors) { - exit 1; -} - -print <) { - chomp; - s/\s+/ /g; - s/^\s+//; - s/\s+$//; - $package = $1 if !$package && /^package (\S+)$/; - my $nonblock = /^\/\/sysnb /; - next if !/^\/\/sys / && !$nonblock; - - # Line must be of the form - # func Open(path string, mode int, perm int) (fd int, err error) - # Split into name, in params, out params. - if(!/^\/\/sys(nb)? (\w+)\(([^()]*)\)\s*(?:\(([^()]+)\))?\s*(?:=\s*(?:(\w*)\.)?(\w*))?$/) { - print STDERR "$ARGV:$.: malformed //sys declaration\n"; - $errors = 1; - next; - } - my ($nb, $func, $in, $out, $modname, $sysname) = ($1, $2, $3, $4, $5, $6); - - # Split argument lists on comma. - my @in = parseparamlist($in); - my @out = parseparamlist($out); - - # So file name. - if($modname eq "") { - $modname = "libc"; - } - - # System call name. - if($sysname eq "") { - $sysname = "$func"; - } - - # System call pointer variable name. - my $sysvarname = "proc$sysname"; - - my $strconvfunc = "BytePtrFromString"; - my $strconvtype = "*byte"; - - $sysname =~ y/A-Z/a-z/; # All libc functions are lowercase. - - # Runtime import of function to allow cross-platform builds. - $dynimports .= "//go:cgo_import_dynamic libc_${sysname} ${sysname} \"$modname.so\"\n"; - # Link symbol to proc address variable. - $linknames .= "//go:linkname ${sysvarname} libc_${sysname}\n"; - # Library proc address variable. - push @vars, $sysvarname; - - # Go function header. - $out = join(', ', @out); - if($out ne "") { - $out = " ($out)"; - } - if($text ne "") { - $text .= "\n" - } - $text .= sprintf "func %s(%s)%s {\n", $func, join(', ', @in), $out; - - # Check if err return available - my $errvar = ""; - foreach my $p (@out) { - my ($name, $type) = parseparam($p); - if($type eq "error") { - $errvar = $name; - last; - } - } - - # Prepare arguments to Syscall. - my @args = (); - my $n = 0; - foreach my $p (@in) { - my ($name, $type) = parseparam($p); - if($type =~ /^\*/) { - push @args, "uintptr(unsafe.Pointer($name))"; - } elsif($type eq "string" && $errvar ne "") { - $text .= "\tvar _p$n $strconvtype\n"; - $text .= "\t_p$n, $errvar = $strconvfunc($name)\n"; - $text .= "\tif $errvar != nil {\n\t\treturn\n\t}\n"; - push @args, "uintptr(unsafe.Pointer(_p$n))"; - $n++; - } elsif($type eq "string") { - print STDERR "$ARGV:$.: $func uses string arguments, but has no error return\n"; - $text .= "\tvar _p$n $strconvtype\n"; - $text .= "\t_p$n, _ = $strconvfunc($name)\n"; - push @args, "uintptr(unsafe.Pointer(_p$n))"; - $n++; - } elsif($type =~ /^\[\](.*)/) { - # Convert slice into pointer, length. - # Have to be careful not to take address of &a[0] if len == 0: - # pass nil in that case. - $text .= "\tvar _p$n *$1\n"; - $text .= "\tif len($name) > 0 {\n\t\t_p$n = \&$name\[0]\n\t}\n"; - push @args, "uintptr(unsafe.Pointer(_p$n))", "uintptr(len($name))"; - $n++; - } elsif($type eq "int64" && $_32bit ne "") { - if($_32bit eq "big-endian") { - push @args, "uintptr($name >> 32)", "uintptr($name)"; - } else { - push @args, "uintptr($name)", "uintptr($name >> 32)"; - } - } elsif($type eq "bool") { - $text .= "\tvar _p$n uint32\n"; - $text .= "\tif $name {\n\t\t_p$n = 1\n\t} else {\n\t\t_p$n = 0\n\t}\n"; - push @args, "uintptr(_p$n)"; - $n++; - } else { - push @args, "uintptr($name)"; - } - } - my $nargs = @args; - - # Determine which form to use; pad args with zeros. - my $asm = "sysvicall6"; - if ($nonblock) { - $asm = "rawSysvicall6"; - } - if(@args <= 6) { - while(@args < 6) { - push @args, "0"; - } - } else { - print STDERR "$ARGV:$.: too many arguments to system call\n"; - } - - # Actual call. - my $args = join(', ', @args); - my $call = "$asm(uintptr(unsafe.Pointer(&$sysvarname)), $nargs, $args)"; - - # Assign return values. - my $body = ""; - my $failexpr = ""; - my @ret = ("_", "_", "_"); - my @pout= (); - my $do_errno = 0; - for(my $i=0; $i<@out; $i++) { - my $p = $out[$i]; - my ($name, $type) = parseparam($p); - my $reg = ""; - if($name eq "err") { - $reg = "e1"; - $ret[2] = $reg; - $do_errno = 1; - } else { - $reg = sprintf("r%d", $i); - $ret[$i] = $reg; - } - if($type eq "bool") { - $reg = "$reg != 0"; - } - if($type eq "int64" && $_32bit ne "") { - # 64-bit number in r1:r0 or r0:r1. - if($i+2 > @out) { - print STDERR "$ARGV:$.: not enough registers for int64 return\n"; - } - if($_32bit eq "big-endian") { - $reg = sprintf("int64(r%d)<<32 | int64(r%d)", $i, $i+1); - } else { - $reg = sprintf("int64(r%d)<<32 | int64(r%d)", $i+1, $i); - } - $ret[$i] = sprintf("r%d", $i); - $ret[$i+1] = sprintf("r%d", $i+1); - } - if($reg ne "e1") { - $body .= "\t$name = $type($reg)\n"; - } - } - if ($ret[0] eq "_" && $ret[1] eq "_" && $ret[2] eq "_") { - $text .= "\t$call\n"; - } else { - $text .= "\t$ret[0], $ret[1], $ret[2] := $call\n"; - } - $text .= $body; - - if ($do_errno) { - $text .= "\tif e1 != 0 {\n"; - $text .= "\t\terr = e1\n"; - $text .= "\t}\n"; - } - $text .= "\treturn\n"; - $text .= "}\n"; -} - -if($errors) { - exit 1; -} - -print < "net.inet", - "net.inet.ipproto" => "net.inet", - "net.inet6.ipv6proto" => "net.inet6", - "net.inet6.ipv6" => "net.inet6.ip6", - "net.inet.icmpv6" => "net.inet6.icmp6", - "net.inet6.divert6" => "net.inet6.divert", - "net.inet6.tcp6" => "net.inet.tcp", - "net.inet6.udp6" => "net.inet.udp", - "mpls" => "net.mpls", - "swpenc" => "vm.swapencrypt" -); - -# Node mappings -my %node_map = ( - "net.inet.ip.ifq" => "net.ifq", - "net.inet.pfsync" => "net.pfsync", - "net.mpls.ifq" => "net.ifq" -); - -my $ctlname; -my %mib = (); -my %sysctl = (); -my $node; - -sub debug() { - print STDERR "$_[0]\n" if $debug; -} - -# Walk the MIB and build a sysctl name to OID mapping. -sub build_sysctl() { - my ($node, $name, $oid) = @_; - my %node = %{$node}; - my @oid = @{$oid}; - - foreach my $key (sort keys %node) { - my @node = @{$node{$key}}; - my $nodename = $name.($name ne '' ? '.' : '').$key; - my @nodeoid = (@oid, $node[0]); - if ($node[1] eq 'CTLTYPE_NODE') { - if (exists $node_map{$nodename}) { - $node = \%mib; - $ctlname = $node_map{$nodename}; - foreach my $part (split /\./, $ctlname) { - $node = \%{@{$$node{$part}}[2]}; - } - } else { - $node = $node[2]; - } - &build_sysctl($node, $nodename, \@nodeoid); - } elsif ($node[1] ne '') { - $sysctl{$nodename} = \@nodeoid; - } - } -} - -foreach my $ctl (@ctls) { - $ctls{$ctl} = $ctl; -} - -# Build MIB -foreach my $header (@headers) { - &debug("Processing $header..."); - open HEADER, "/usr/include/$header" || - print STDERR "Failed to open $header\n"; - while (
) { - if ($_ =~ /^#define\s+(CTL_NAMES)\s+{/ || - $_ =~ /^#define\s+(CTL_(.*)_NAMES)\s+{/ || - $_ =~ /^#define\s+((.*)CTL_NAMES)\s+{/) { - if ($1 eq 'CTL_NAMES') { - # Top level. - $node = \%mib; - } else { - # Node. - my $nodename = lc($2); - if ($header =~ /^netinet\//) { - $ctlname = "net.inet.$nodename"; - } elsif ($header =~ /^netinet6\//) { - $ctlname = "net.inet6.$nodename"; - } elsif ($header =~ /^net\//) { - $ctlname = "net.$nodename"; - } else { - $ctlname = "$nodename"; - $ctlname =~ s/^(fs|net|kern)_/$1\./; - } - if (exists $ctl_map{$ctlname}) { - $ctlname = $ctl_map{$ctlname}; - } - if (not exists $ctls{$ctlname}) { - &debug("Ignoring $ctlname..."); - next; - } - - # Walk down from the top of the MIB. - $node = \%mib; - foreach my $part (split /\./, $ctlname) { - if (not exists $$node{$part}) { - &debug("Missing node $part"); - $$node{$part} = [ 0, '', {} ]; - } - $node = \%{@{$$node{$part}}[2]}; - } - } - - # Populate current node with entries. - my $i = -1; - while (defined($_) && $_ !~ /^}/) { - $_ =
; - $i++ if $_ =~ /{.*}/; - next if $_ !~ /{\s+"(\w+)",\s+(CTLTYPE_[A-Z]+)\s+}/; - $$node{$1} = [ $i, $2, {} ]; - } - } - } - close HEADER; -} - -&build_sysctl(\%mib, "", []); - -print <){ - if(/^#define\s+SYS_(\w+)\s+([0-9]+)/){ - my $name = $1; - my $num = $2; - $name =~ y/a-z/A-Z/; - print " SYS_$name = $num;" - } -} - -print <){ - if(/^([0-9]+)\s+STD\s+({ \S+\s+(\w+).*)$/){ - my $num = $1; - my $proto = $2; - my $name = "SYS_$3"; - $name =~ y/a-z/A-Z/; - - # There are multiple entries for enosys and nosys, so comment them out. - if($name =~ /^SYS_E?NOSYS$/){ - $name = "// $name"; - } - if($name eq 'SYS_SYS_EXIT'){ - $name = 'SYS_EXIT'; - } - - print " $name = $num; // $proto\n"; - } -} - -print <){ - if(/^([0-9]+)\s+\S+\s+STD\s+({ \S+\s+(\w+).*)$/){ - my $num = $1; - my $proto = $2; - my $name = "SYS_$3"; - $name =~ y/a-z/A-Z/; - - # There are multiple entries for enosys and nosys, so comment them out. - if($name =~ /^SYS_E?NOSYS$/){ - $name = "// $name"; - } - if($name eq 'SYS_SYS_EXIT'){ - $name = 'SYS_EXIT'; - } - - print " $name = $num; // $proto\n"; - } -} - -print <){ - if($line =~ /^(.*)\\$/) { - # Handle continuation - $line = $1; - $_ =~ s/^\s+//; - $line .= $_; - } else { - # New line - $line = $_; - } - next if $line =~ /\\$/; - if($line =~ /^([0-9]+)\s+((STD)|(NOERR))\s+(RUMP\s+)?({\s+\S+\s*\*?\s*\|(\S+)\|(\S*)\|(\w+).*\s+})(\s+(\S+))?$/) { - my $num = $1; - my $proto = $6; - my $compat = $8; - my $name = "$7_$9"; - - $name = "$7_$11" if $11 ne ''; - $name =~ y/a-z/A-Z/; - - if($compat eq '' || $compat eq '13' || $compat eq '30' || $compat eq '50') { - print " $name = $num; // $proto\n"; - } - } -} - -print <){ - if(/^([0-9]+)\s+STD\s+(NOLOCK\s+)?({ \S+\s+\*?(\w+).*)$/){ - my $num = $1; - my $proto = $3; - my $name = $4; - $name =~ y/a-z/A-Z/; - - # There are multiple entries for enosys and nosys, so comment them out. - if($name =~ /^SYS_E?NOSYS$/){ - $name = "// $name"; - } - if($name eq 'SYS_SYS_EXIT'){ - $name = 'SYS_EXIT'; - } - - print " $name = $num; // $proto\n"; - } -} - -print < uint64(len(b)) { - return nil, nil, EINVAL - } - return h, b[cmsgAlignOf(SizeofCmsghdr):h.Len], nil -} - -// UnixRights encodes a set of open file descriptors into a socket -// control message for sending to another process. -func UnixRights(fds ...int) []byte { - datalen := len(fds) * 4 - b := make([]byte, CmsgSpace(datalen)) - h := (*Cmsghdr)(unsafe.Pointer(&b[0])) - h.Level = SOL_SOCKET - h.Type = SCM_RIGHTS - h.SetLen(CmsgLen(datalen)) - data := cmsgData(h) - for _, fd := range fds { - *(*int32)(data) = int32(fd) - data = unsafe.Pointer(uintptr(data) + 4) - } - return b -} - -// ParseUnixRights decodes a socket control message that contains an -// integer array of open file descriptors from another process. -func ParseUnixRights(m *SocketControlMessage) ([]int, error) { - if m.Header.Level != SOL_SOCKET { - return nil, EINVAL - } - if m.Header.Type != SCM_RIGHTS { - return nil, EINVAL - } - fds := make([]int, len(m.Data)>>2) - for i, j := 0, 0; i < len(m.Data); i += 4 { - fds[j] = int(*(*int32)(unsafe.Pointer(&m.Data[i]))) - j++ - } - return fds, nil -} diff --git a/vendor/golang.org/x/sys/unix/str.go b/vendor/golang.org/x/sys/unix/str.go deleted file mode 100644 index 35ed664..0000000 --- a/vendor/golang.org/x/sys/unix/str.go +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build darwin dragonfly freebsd linux netbsd openbsd solaris - -package unix - -func itoa(val int) string { // do it here rather than with fmt to avoid dependency - if val < 0 { - return "-" + uitoa(uint(-val)) - } - return uitoa(uint(val)) -} - -func uitoa(val uint) string { - var buf [32]byte // big enough for int64 - i := len(buf) - 1 - for val >= 10 { - buf[i] = byte(val%10 + '0') - i-- - val /= 10 - } - buf[i] = byte(val + '0') - return string(buf[i:]) -} diff --git a/vendor/golang.org/x/sys/unix/syscall.go b/vendor/golang.org/x/sys/unix/syscall.go deleted file mode 100644 index 85e3502..0000000 --- a/vendor/golang.org/x/sys/unix/syscall.go +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build darwin dragonfly freebsd linux netbsd openbsd solaris - -// Package unix contains an interface to the low-level operating system -// primitives. OS details vary depending on the underlying system, and -// by default, godoc will display OS-specific documentation for the current -// system. If you want godoc to display OS documentation for another -// system, set $GOOS and $GOARCH to the desired system. For example, if -// you want to view documentation for freebsd/arm on linux/amd64, set $GOOS -// to freebsd and $GOARCH to arm. -// The primary use of this package is inside other packages that provide a more -// portable interface to the system, such as "os", "time" and "net". Use -// those packages rather than this one if you can. -// For details of the functions and data types in this package consult -// the manuals for the appropriate operating system. -// These calls return err == nil to indicate success; otherwise -// err represents an operating system error describing the failure and -// holds a value of type syscall.Errno. -package unix // import "golang.org/x/sys/unix" - -// ByteSliceFromString returns a NUL-terminated slice of bytes -// containing the text of s. If s contains a NUL byte at any -// location, it returns (nil, EINVAL). -func ByteSliceFromString(s string) ([]byte, error) { - for i := 0; i < len(s); i++ { - if s[i] == 0 { - return nil, EINVAL - } - } - a := make([]byte, len(s)+1) - copy(a, s) - return a, nil -} - -// BytePtrFromString returns a pointer to a NUL-terminated array of -// bytes containing the text of s. If s contains a NUL byte at any -// location, it returns (nil, EINVAL). -func BytePtrFromString(s string) (*byte, error) { - a, err := ByteSliceFromString(s) - if err != nil { - return nil, err - } - return &a[0], nil -} - -// Single-word zero for use when we need a valid pointer to 0 bytes. -// See mkunix.pl. -var _zero uintptr - -func (ts *Timespec) Unix() (sec int64, nsec int64) { - return int64(ts.Sec), int64(ts.Nsec) -} - -func (tv *Timeval) Unix() (sec int64, nsec int64) { - return int64(tv.Sec), int64(tv.Usec) * 1000 -} - -func (ts *Timespec) Nano() int64 { - return int64(ts.Sec)*1e9 + int64(ts.Nsec) -} - -func (tv *Timeval) Nano() int64 { - return int64(tv.Sec)*1e9 + int64(tv.Usec)*1000 -} - -func TimevalToNsec(tv Timeval) int64 { return int64(tv.Sec)*1e9 + int64(tv.Usec)*1e3 } diff --git a/vendor/golang.org/x/sys/unix/syscall_bsd.go b/vendor/golang.org/x/sys/unix/syscall_bsd.go deleted file mode 100644 index c2846b3..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_bsd.go +++ /dev/null @@ -1,635 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build darwin dragonfly freebsd netbsd openbsd - -// BSD system call wrappers shared by *BSD based systems -// including OS X (Darwin) and FreeBSD. Like the other -// syscall_*.go files it is compiled as Go code but also -// used as input to mksyscall which parses the //sys -// lines and generates system call stubs. - -package unix - -import ( - "runtime" - "syscall" - "unsafe" -) - -/* - * Wrapped - */ - -//sysnb getgroups(ngid int, gid *_Gid_t) (n int, err error) -//sysnb setgroups(ngid int, gid *_Gid_t) (err error) - -func Getgroups() (gids []int, err error) { - n, err := getgroups(0, nil) - if err != nil { - return nil, err - } - if n == 0 { - return nil, nil - } - - // Sanity check group count. Max is 16 on BSD. - if n < 0 || n > 1000 { - return nil, EINVAL - } - - a := make([]_Gid_t, n) - n, err = getgroups(n, &a[0]) - if err != nil { - return nil, err - } - gids = make([]int, n) - for i, v := range a[0:n] { - gids[i] = int(v) - } - return -} - -func Setgroups(gids []int) (err error) { - if len(gids) == 0 { - return setgroups(0, nil) - } - - a := make([]_Gid_t, len(gids)) - for i, v := range gids { - a[i] = _Gid_t(v) - } - return setgroups(len(a), &a[0]) -} - -func ReadDirent(fd int, buf []byte) (n int, err error) { - // Final argument is (basep *uintptr) and the syscall doesn't take nil. - // 64 bits should be enough. (32 bits isn't even on 386). Since the - // actual system call is getdirentries64, 64 is a good guess. - // TODO(rsc): Can we use a single global basep for all calls? - var base = (*uintptr)(unsafe.Pointer(new(uint64))) - return Getdirentries(fd, buf, base) -} - -// Wait status is 7 bits at bottom, either 0 (exited), -// 0x7F (stopped), or a signal number that caused an exit. -// The 0x80 bit is whether there was a core dump. -// An extra number (exit code, signal causing a stop) -// is in the high bits. - -type WaitStatus uint32 - -const ( - mask = 0x7F - core = 0x80 - shift = 8 - - exited = 0 - stopped = 0x7F -) - -func (w WaitStatus) Exited() bool { return w&mask == exited } - -func (w WaitStatus) ExitStatus() int { - if w&mask != exited { - return -1 - } - return int(w >> shift) -} - -func (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != 0 } - -func (w WaitStatus) Signal() syscall.Signal { - sig := syscall.Signal(w & mask) - if sig == stopped || sig == 0 { - return -1 - } - return sig -} - -func (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 } - -func (w WaitStatus) Stopped() bool { return w&mask == stopped && syscall.Signal(w>>shift) != SIGSTOP } - -func (w WaitStatus) Continued() bool { return w&mask == stopped && syscall.Signal(w>>shift) == SIGSTOP } - -func (w WaitStatus) StopSignal() syscall.Signal { - if !w.Stopped() { - return -1 - } - return syscall.Signal(w>>shift) & 0xFF -} - -func (w WaitStatus) TrapCause() int { return -1 } - -//sys wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) - -func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { - var status _C_int - wpid, err = wait4(pid, &status, options, rusage) - if wstatus != nil { - *wstatus = WaitStatus(status) - } - return -} - -//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sysnb socket(domain int, typ int, proto int) (fd int, err error) -//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) -//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) -//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sys Shutdown(s int, how int) (err error) - -func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Port < 0 || sa.Port > 0xFFFF { - return nil, 0, EINVAL - } - sa.raw.Len = SizeofSockaddrInet4 - sa.raw.Family = AF_INET - p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) - p[0] = byte(sa.Port >> 8) - p[1] = byte(sa.Port) - for i := 0; i < len(sa.Addr); i++ { - sa.raw.Addr[i] = sa.Addr[i] - } - return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil -} - -func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Port < 0 || sa.Port > 0xFFFF { - return nil, 0, EINVAL - } - sa.raw.Len = SizeofSockaddrInet6 - sa.raw.Family = AF_INET6 - p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) - p[0] = byte(sa.Port >> 8) - p[1] = byte(sa.Port) - sa.raw.Scope_id = sa.ZoneId - for i := 0; i < len(sa.Addr); i++ { - sa.raw.Addr[i] = sa.Addr[i] - } - return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil -} - -func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) { - name := sa.Name - n := len(name) - if n >= len(sa.raw.Path) || n == 0 { - return nil, 0, EINVAL - } - sa.raw.Len = byte(3 + n) // 2 for Family, Len; 1 for NUL - sa.raw.Family = AF_UNIX - for i := 0; i < n; i++ { - sa.raw.Path[i] = int8(name[i]) - } - return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil -} - -func (sa *SockaddrDatalink) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Index == 0 { - return nil, 0, EINVAL - } - sa.raw.Len = sa.Len - sa.raw.Family = AF_LINK - sa.raw.Index = sa.Index - sa.raw.Type = sa.Type - sa.raw.Nlen = sa.Nlen - sa.raw.Alen = sa.Alen - sa.raw.Slen = sa.Slen - for i := 0; i < len(sa.raw.Data); i++ { - sa.raw.Data[i] = sa.Data[i] - } - return unsafe.Pointer(&sa.raw), SizeofSockaddrDatalink, nil -} - -func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, error) { - switch rsa.Addr.Family { - case AF_LINK: - pp := (*RawSockaddrDatalink)(unsafe.Pointer(rsa)) - sa := new(SockaddrDatalink) - sa.Len = pp.Len - sa.Family = pp.Family - sa.Index = pp.Index - sa.Type = pp.Type - sa.Nlen = pp.Nlen - sa.Alen = pp.Alen - sa.Slen = pp.Slen - for i := 0; i < len(sa.Data); i++ { - sa.Data[i] = pp.Data[i] - } - return sa, nil - - case AF_UNIX: - pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa)) - if pp.Len < 2 || pp.Len > SizeofSockaddrUnix { - return nil, EINVAL - } - sa := new(SockaddrUnix) - - // Some BSDs include the trailing NUL in the length, whereas - // others do not. Work around this by subtracting the leading - // family and len. The path is then scanned to see if a NUL - // terminator still exists within the length. - n := int(pp.Len) - 2 // subtract leading Family, Len - for i := 0; i < n; i++ { - if pp.Path[i] == 0 { - // found early NUL; assume Len included the NUL - // or was overestimating. - n = i - break - } - } - bytes := (*[10000]byte)(unsafe.Pointer(&pp.Path[0]))[0:n] - sa.Name = string(bytes) - return sa, nil - - case AF_INET: - pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa)) - sa := new(SockaddrInet4) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - for i := 0; i < len(sa.Addr); i++ { - sa.Addr[i] = pp.Addr[i] - } - return sa, nil - - case AF_INET6: - pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa)) - sa := new(SockaddrInet6) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - sa.ZoneId = pp.Scope_id - for i := 0; i < len(sa.Addr); i++ { - sa.Addr[i] = pp.Addr[i] - } - return sa, nil - } - return nil, EAFNOSUPPORT -} - -func Accept(fd int) (nfd int, sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - nfd, err = accept(fd, &rsa, &len) - if err != nil { - return - } - if runtime.GOOS == "darwin" && len == 0 { - // Accepted socket has no address. - // This is likely due to a bug in xnu kernels, - // where instead of ECONNABORTED error socket - // is accepted, but has no address. - Close(nfd) - return 0, nil, ECONNABORTED - } - sa, err = anyToSockaddr(&rsa) - if err != nil { - Close(nfd) - nfd = 0 - } - return -} - -func Getsockname(fd int) (sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - if err = getsockname(fd, &rsa, &len); err != nil { - return - } - // TODO(jsing): DragonFly has a "bug" (see issue 3349), which should be - // reported upstream. - if runtime.GOOS == "dragonfly" && rsa.Addr.Family == AF_UNSPEC && rsa.Addr.Len == 0 { - rsa.Addr.Family = AF_UNIX - rsa.Addr.Len = SizeofSockaddrUnix - } - return anyToSockaddr(&rsa) -} - -//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) - -func GetsockoptByte(fd, level, opt int) (value byte, err error) { - var n byte - vallen := _Socklen(1) - err = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen) - return n, err -} - -func GetsockoptInet4Addr(fd, level, opt int) (value [4]byte, err error) { - vallen := _Socklen(4) - err = getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen) - return value, err -} - -func GetsockoptIPMreq(fd, level, opt int) (*IPMreq, error) { - var value IPMreq - vallen := _Socklen(SizeofIPMreq) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, err -} - -func GetsockoptIPv6Mreq(fd, level, opt int) (*IPv6Mreq, error) { - var value IPv6Mreq - vallen := _Socklen(SizeofIPv6Mreq) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, err -} - -func GetsockoptIPv6MTUInfo(fd, level, opt int) (*IPv6MTUInfo, error) { - var value IPv6MTUInfo - vallen := _Socklen(SizeofIPv6MTUInfo) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, err -} - -func GetsockoptICMPv6Filter(fd, level, opt int) (*ICMPv6Filter, error) { - var value ICMPv6Filter - vallen := _Socklen(SizeofICMPv6Filter) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, err -} - -//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) -//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) -//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) - -func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) { - var msg Msghdr - var rsa RawSockaddrAny - msg.Name = (*byte)(unsafe.Pointer(&rsa)) - msg.Namelen = uint32(SizeofSockaddrAny) - var iov Iovec - if len(p) > 0 { - iov.Base = (*byte)(unsafe.Pointer(&p[0])) - iov.SetLen(len(p)) - } - var dummy byte - if len(oob) > 0 { - // receive at least one normal byte - if len(p) == 0 { - iov.Base = &dummy - iov.SetLen(1) - } - msg.Control = (*byte)(unsafe.Pointer(&oob[0])) - msg.SetControllen(len(oob)) - } - msg.Iov = &iov - msg.Iovlen = 1 - if n, err = recvmsg(fd, &msg, flags); err != nil { - return - } - oobn = int(msg.Controllen) - recvflags = int(msg.Flags) - // source address is only specified if the socket is unconnected - if rsa.Addr.Family != AF_UNSPEC { - from, err = anyToSockaddr(&rsa) - } - return -} - -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) - -func Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) (err error) { - _, err = SendmsgN(fd, p, oob, to, flags) - return -} - -func SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) { - var ptr unsafe.Pointer - var salen _Socklen - if to != nil { - ptr, salen, err = to.sockaddr() - if err != nil { - return 0, err - } - } - var msg Msghdr - msg.Name = (*byte)(unsafe.Pointer(ptr)) - msg.Namelen = uint32(salen) - var iov Iovec - if len(p) > 0 { - iov.Base = (*byte)(unsafe.Pointer(&p[0])) - iov.SetLen(len(p)) - } - var dummy byte - if len(oob) > 0 { - // send at least one normal byte - if len(p) == 0 { - iov.Base = &dummy - iov.SetLen(1) - } - msg.Control = (*byte)(unsafe.Pointer(&oob[0])) - msg.SetControllen(len(oob)) - } - msg.Iov = &iov - msg.Iovlen = 1 - if n, err = sendmsg(fd, &msg, flags); err != nil { - return 0, err - } - if len(oob) > 0 && len(p) == 0 { - n = 0 - } - return n, nil -} - -//sys kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) - -func Kevent(kq int, changes, events []Kevent_t, timeout *Timespec) (n int, err error) { - var change, event unsafe.Pointer - if len(changes) > 0 { - change = unsafe.Pointer(&changes[0]) - } - if len(events) > 0 { - event = unsafe.Pointer(&events[0]) - } - return kevent(kq, change, len(changes), event, len(events), timeout) -} - -//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL - -// sysctlmib translates name to mib number and appends any additional args. -func sysctlmib(name string, args ...int) ([]_C_int, error) { - // Translate name to mib number. - mib, err := nametomib(name) - if err != nil { - return nil, err - } - - for _, a := range args { - mib = append(mib, _C_int(a)) - } - - return mib, nil -} - -func Sysctl(name string) (string, error) { - return SysctlArgs(name) -} - -func SysctlArgs(name string, args ...int) (string, error) { - buf, err := SysctlRaw(name, args...) - if err != nil { - return "", err - } - n := len(buf) - - // Throw away terminating NUL. - if n > 0 && buf[n-1] == '\x00' { - n-- - } - return string(buf[0:n]), nil -} - -func SysctlUint32(name string) (uint32, error) { - return SysctlUint32Args(name) -} - -func SysctlUint32Args(name string, args ...int) (uint32, error) { - mib, err := sysctlmib(name, args...) - if err != nil { - return 0, err - } - - n := uintptr(4) - buf := make([]byte, 4) - if err := sysctl(mib, &buf[0], &n, nil, 0); err != nil { - return 0, err - } - if n != 4 { - return 0, EIO - } - return *(*uint32)(unsafe.Pointer(&buf[0])), nil -} - -func SysctlUint64(name string, args ...int) (uint64, error) { - mib, err := sysctlmib(name, args...) - if err != nil { - return 0, err - } - - n := uintptr(8) - buf := make([]byte, 8) - if err := sysctl(mib, &buf[0], &n, nil, 0); err != nil { - return 0, err - } - if n != 8 { - return 0, EIO - } - return *(*uint64)(unsafe.Pointer(&buf[0])), nil -} - -func SysctlRaw(name string, args ...int) ([]byte, error) { - mib, err := sysctlmib(name, args...) - if err != nil { - return nil, err - } - - // Find size. - n := uintptr(0) - if err := sysctl(mib, nil, &n, nil, 0); err != nil { - return nil, err - } - if n == 0 { - return nil, nil - } - - // Read into buffer of that size. - buf := make([]byte, n) - if err := sysctl(mib, &buf[0], &n, nil, 0); err != nil { - return nil, err - } - - // The actual call may return less than the original reported required - // size so ensure we deal with that. - return buf[:n], nil -} - -//sys utimes(path string, timeval *[2]Timeval) (err error) - -func Utimes(path string, tv []Timeval) error { - if tv == nil { - return utimes(path, nil) - } - if len(tv) != 2 { - return EINVAL - } - return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) -} - -func UtimesNano(path string, ts []Timespec) error { - if ts == nil { - err := utimensat(AT_FDCWD, path, nil, 0) - if err != ENOSYS { - return err - } - return utimes(path, nil) - } - if len(ts) != 2 { - return EINVAL - } - err := utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) - if err != ENOSYS { - return err - } - // Not as efficient as it could be because Timespec and - // Timeval have different types in the different OSes - tv := [2]Timeval{ - NsecToTimeval(TimespecToNsec(ts[0])), - NsecToTimeval(TimespecToNsec(ts[1])), - } - return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) -} - -func UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error { - if ts == nil { - return utimensat(dirfd, path, nil, flags) - } - if len(ts) != 2 { - return EINVAL - } - return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags) -} - -//sys futimes(fd int, timeval *[2]Timeval) (err error) - -func Futimes(fd int, tv []Timeval) error { - if tv == nil { - return futimes(fd, nil) - } - if len(tv) != 2 { - return EINVAL - } - return futimes(fd, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) -} - -//sys fcntl(fd int, cmd int, arg int) (val int, err error) - -// TODO: wrap -// Acct(name nil-string) (err error) -// Gethostuuid(uuid *byte, timeout *Timespec) (err error) -// Ptrace(req int, pid int, addr uintptr, data int) (ret uintptr, err error) - -var mapper = &mmapper{ - active: make(map[*byte][]byte), - mmap: mmap, - munmap: munmap, -} - -func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { - return mapper.Mmap(fd, offset, length, prot, flags) -} - -func Munmap(b []byte) (err error) { - return mapper.Munmap(b) -} - -//sys Madvise(b []byte, behav int) (err error) -//sys Mlock(b []byte) (err error) -//sys Mlockall(flags int) (err error) -//sys Mprotect(b []byte, prot int) (err error) -//sys Msync(b []byte, flags int) (err error) -//sys Munlock(b []byte) (err error) -//sys Munlockall() (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin.go b/vendor/golang.org/x/sys/unix/syscall_darwin.go deleted file mode 100644 index ad74a11..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_darwin.go +++ /dev/null @@ -1,536 +0,0 @@ -// Copyright 2009,2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Darwin system calls. -// This file is compiled as ordinary Go code, -// but it is also input to mksyscall, -// which parses the //sys lines and generates system call stubs. -// Note that sometimes we use a lowercase //sys name and wrap -// it in our own nicer implementation, either here or in -// syscall_bsd.go or syscall_unix.go. - -package unix - -import ( - errorspkg "errors" - "syscall" - "unsafe" -) - -const ImplementsGetwd = true - -func Getwd() (string, error) { - buf := make([]byte, 2048) - attrs, err := getAttrList(".", attrList{CommonAttr: attrCmnFullpath}, buf, 0) - if err == nil && len(attrs) == 1 && len(attrs[0]) >= 2 { - wd := string(attrs[0]) - // Sanity check that it's an absolute path and ends - // in a null byte, which we then strip. - if wd[0] == '/' && wd[len(wd)-1] == 0 { - return wd[:len(wd)-1], nil - } - } - // If pkg/os/getwd.go gets ENOTSUP, it will fall back to the - // slow algorithm. - return "", ENOTSUP -} - -type SockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [12]int8 - raw RawSockaddrDatalink -} - -// Translate "kern.hostname" to []_C_int{0,1,2,3}. -func nametomib(name string) (mib []_C_int, err error) { - const siz = unsafe.Sizeof(mib[0]) - - // NOTE(rsc): It seems strange to set the buffer to have - // size CTL_MAXNAME+2 but use only CTL_MAXNAME - // as the size. I don't know why the +2 is here, but the - // kernel uses +2 for its own implementation of this function. - // I am scared that if we don't include the +2 here, the kernel - // will silently write 2 words farther than we specify - // and we'll get memory corruption. - var buf [CTL_MAXNAME + 2]_C_int - n := uintptr(CTL_MAXNAME) * siz - - p := (*byte)(unsafe.Pointer(&buf[0])) - bytes, err := ByteSliceFromString(name) - if err != nil { - return nil, err - } - - // Magic sysctl: "setting" 0.3 to a string name - // lets you read back the array of integers form. - if err = sysctl([]_C_int{0, 3}, p, &n, &bytes[0], uintptr(len(name))); err != nil { - return nil, err - } - return buf[0 : n/siz], nil -} - -func direntIno(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino)) -} - -func direntReclen(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) -} - -func direntNamlen(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) -} - -//sys ptrace(request int, pid int, addr uintptr, data uintptr) (err error) -func PtraceAttach(pid int) (err error) { return ptrace(PT_ATTACH, pid, 0, 0) } -func PtraceDetach(pid int) (err error) { return ptrace(PT_DETACH, pid, 0, 0) } - -const ( - attrBitMapCount = 5 - attrCmnFullpath = 0x08000000 -) - -type attrList struct { - bitmapCount uint16 - _ uint16 - CommonAttr uint32 - VolAttr uint32 - DirAttr uint32 - FileAttr uint32 - Forkattr uint32 -} - -func getAttrList(path string, attrList attrList, attrBuf []byte, options uint) (attrs [][]byte, err error) { - if len(attrBuf) < 4 { - return nil, errorspkg.New("attrBuf too small") - } - attrList.bitmapCount = attrBitMapCount - - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return nil, err - } - - _, _, e1 := Syscall6( - SYS_GETATTRLIST, - uintptr(unsafe.Pointer(_p0)), - uintptr(unsafe.Pointer(&attrList)), - uintptr(unsafe.Pointer(&attrBuf[0])), - uintptr(len(attrBuf)), - uintptr(options), - 0, - ) - if e1 != 0 { - return nil, e1 - } - size := *(*uint32)(unsafe.Pointer(&attrBuf[0])) - - // dat is the section of attrBuf that contains valid data, - // without the 4 byte length header. All attribute offsets - // are relative to dat. - dat := attrBuf - if int(size) < len(attrBuf) { - dat = dat[:size] - } - dat = dat[4:] // remove length prefix - - for i := uint32(0); int(i) < len(dat); { - header := dat[i:] - if len(header) < 8 { - return attrs, errorspkg.New("truncated attribute header") - } - datOff := *(*int32)(unsafe.Pointer(&header[0])) - attrLen := *(*uint32)(unsafe.Pointer(&header[4])) - if datOff < 0 || uint32(datOff)+attrLen > uint32(len(dat)) { - return attrs, errorspkg.New("truncated results; attrBuf too small") - } - end := uint32(datOff) + attrLen - attrs = append(attrs, dat[datOff:end]) - i = end - if r := i % 4; r != 0 { - i += (4 - r) - } - } - return -} - -//sysnb pipe() (r int, w int, err error) - -func Pipe(p []int) (err error) { - if len(p) != 2 { - return EINVAL - } - p[0], p[1], err = pipe() - return -} - -func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { - var _p0 unsafe.Pointer - var bufsize uintptr - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf)) - } - r0, _, e1 := Syscall(SYS_GETFSSTAT64, uintptr(_p0), bufsize, uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) error { - // Darwin doesn't support SYS_UTIMENSAT - return ENOSYS -} - -/* - * Wrapped - */ - -//sys kill(pid int, signum int, posix int) (err error) - -func Kill(pid int, signum syscall.Signal) (err error) { return kill(pid, int(signum), 1) } - -//sys ioctl(fd int, req uint, arg uintptr) (err error) - -// ioctl itself should not be exposed directly, but additional get/set -// functions for specific types are permissible. - -// IoctlSetInt performs an ioctl operation which sets an integer value -// on fd, using the specified request number. -func IoctlSetInt(fd int, req uint, value int) error { - return ioctl(fd, req, uintptr(value)) -} - -func IoctlSetWinsize(fd int, req uint, value *Winsize) error { - return ioctl(fd, req, uintptr(unsafe.Pointer(value))) -} - -func IoctlSetTermios(fd int, req uint, value *Termios) error { - return ioctl(fd, req, uintptr(unsafe.Pointer(value))) -} - -// IoctlGetInt performs an ioctl operation which gets an integer value -// from fd, using the specified request number. -func IoctlGetInt(fd int, req uint) (int, error) { - var value int - err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) - return value, err -} - -func IoctlGetWinsize(fd int, req uint) (*Winsize, error) { - var value Winsize - err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) - return &value, err -} - -func IoctlGetTermios(fd int, req uint) (*Termios, error) { - var value Termios - err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) - return &value, err -} - -/* - * Exposed directly - */ -//sys Access(path string, mode uint32) (err error) -//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) -//sys Chdir(path string) (err error) -//sys Chflags(path string, flags int) (err error) -//sys Chmod(path string, mode uint32) (err error) -//sys Chown(path string, uid int, gid int) (err error) -//sys Chroot(path string) (err error) -//sys Close(fd int) (err error) -//sys Dup(fd int) (nfd int, err error) -//sys Dup2(from int, to int) (err error) -//sys Exchangedata(path1 string, path2 string, options int) (err error) -//sys Exit(code int) -//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) -//sys Fchdir(fd int) (err error) -//sys Fchflags(fd int, flags int) (err error) -//sys Fchmod(fd int, mode uint32) (err error) -//sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) -//sys Flock(fd int, how int) (err error) -//sys Fpathconf(fd int, name int) (val int, err error) -//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 -//sys Fstatfs(fd int, stat *Statfs_t) (err error) = SYS_FSTATFS64 -//sys Fsync(fd int) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sys Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) = SYS_GETDIRENTRIES64 -//sys Getdtablesize() (size int) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (uid int) -//sysnb Getgid() (gid int) -//sysnb Getpgid(pid int) (pgid int, err error) -//sysnb Getpgrp() (pgrp int) -//sysnb Getpid() (pid int) -//sysnb Getppid() (ppid int) -//sys Getpriority(which int, who int) (prio int, err error) -//sysnb Getrlimit(which int, lim *Rlimit) (err error) -//sysnb Getrusage(who int, rusage *Rusage) (err error) -//sysnb Getsid(pid int) (sid int, err error) -//sysnb Getuid() (uid int) -//sysnb Issetugid() (tainted bool) -//sys Kqueue() (fd int, err error) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Link(path string, link string) (err error) -//sys Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) -//sys Listen(s int, backlog int) (err error) -//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 -//sys Mkdir(path string, mode uint32) (err error) -//sys Mkdirat(dirfd int, path string, mode uint32) (err error) -//sys Mkfifo(path string, mode uint32) (err error) -//sys Mknod(path string, mode uint32, dev int) (err error) -//sys Open(path string, mode int, perm uint32) (fd int, err error) -//sys Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) -//sys Pathconf(path string, name int) (val int, err error) -//sys Pread(fd int, p []byte, offset int64) (n int, err error) -//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) -//sys read(fd int, p []byte) (n int, err error) -//sys Readlink(path string, buf []byte) (n int, err error) -//sys Readlinkat(dirfd int, path string, buf []byte) (n int, err error) -//sys Rename(from string, to string) (err error) -//sys Renameat(fromfd int, from string, tofd int, to string) (err error) -//sys Revoke(path string) (err error) -//sys Rmdir(path string) (err error) -//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK -//sys Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) -//sys Setegid(egid int) (err error) -//sysnb Seteuid(euid int) (err error) -//sysnb Setgid(gid int) (err error) -//sys Setlogin(name string) (err error) -//sysnb Setpgid(pid int, pgid int) (err error) -//sys Setpriority(which int, who int, prio int) (err error) -//sys Setprivexec(flag int) (err error) -//sysnb Setregid(rgid int, egid int) (err error) -//sysnb Setreuid(ruid int, euid int) (err error) -//sysnb Setrlimit(which int, lim *Rlimit) (err error) -//sysnb Setsid() (pid int, err error) -//sysnb Settimeofday(tp *Timeval) (err error) -//sysnb Setuid(uid int) (err error) -//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 -//sys Statfs(path string, stat *Statfs_t) (err error) = SYS_STATFS64 -//sys Symlink(path string, link string) (err error) -//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error) -//sys Sync() (err error) -//sys Truncate(path string, length int64) (err error) -//sys Umask(newmask int) (oldmask int) -//sys Undelete(path string) (err error) -//sys Unlink(path string) (err error) -//sys Unlinkat(dirfd int, path string, flags int) (err error) -//sys Unmount(path string, flags int) (err error) -//sys write(fd int, p []byte) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) -//sys munmap(addr uintptr, length uintptr) (err error) -//sys readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ -//sys writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE - -/* - * Unimplemented - */ -// Profil -// Sigaction -// Sigprocmask -// Getlogin -// Sigpending -// Sigaltstack -// Ioctl -// Reboot -// Execve -// Vfork -// Sbrk -// Sstk -// Ovadvise -// Mincore -// Setitimer -// Swapon -// Select -// Sigsuspend -// Readv -// Writev -// Nfssvc -// Getfh -// Quotactl -// Mount -// Csops -// Waitid -// Add_profil -// Kdebug_trace -// Sigreturn -// Atsocket -// Kqueue_from_portset_np -// Kqueue_portset -// Getattrlist -// Setattrlist -// Getdirentriesattr -// Searchfs -// Delete -// Copyfile -// Poll -// Watchevent -// Waitevent -// Modwatch -// Getxattr -// Fgetxattr -// Setxattr -// Fsetxattr -// Removexattr -// Fremovexattr -// Listxattr -// Flistxattr -// Fsctl -// Initgroups -// Posix_spawn -// Nfsclnt -// Fhopen -// Minherit -// Semsys -// Msgsys -// Shmsys -// Semctl -// Semget -// Semop -// Msgctl -// Msgget -// Msgsnd -// Msgrcv -// Shmat -// Shmctl -// Shmdt -// Shmget -// Shm_open -// Shm_unlink -// Sem_open -// Sem_close -// Sem_unlink -// Sem_wait -// Sem_trywait -// Sem_post -// Sem_getvalue -// Sem_init -// Sem_destroy -// Open_extended -// Umask_extended -// Stat_extended -// Lstat_extended -// Fstat_extended -// Chmod_extended -// Fchmod_extended -// Access_extended -// Settid -// Gettid -// Setsgroups -// Getsgroups -// Setwgroups -// Getwgroups -// Mkfifo_extended -// Mkdir_extended -// Identitysvc -// Shared_region_check_np -// Shared_region_map_np -// __pthread_mutex_destroy -// __pthread_mutex_init -// __pthread_mutex_lock -// __pthread_mutex_trylock -// __pthread_mutex_unlock -// __pthread_cond_init -// __pthread_cond_destroy -// __pthread_cond_broadcast -// __pthread_cond_signal -// Setsid_with_pid -// __pthread_cond_timedwait -// Aio_fsync -// Aio_return -// Aio_suspend -// Aio_cancel -// Aio_error -// Aio_read -// Aio_write -// Lio_listio -// __pthread_cond_wait -// Iopolicysys -// __pthread_kill -// __pthread_sigmask -// __sigwait -// __disable_threadsignal -// __pthread_markcancel -// __pthread_canceled -// __semwait_signal -// Proc_info -// sendfile -// Stat64_extended -// Lstat64_extended -// Fstat64_extended -// __pthread_chdir -// __pthread_fchdir -// Audit -// Auditon -// Getauid -// Setauid -// Getaudit -// Setaudit -// Getaudit_addr -// Setaudit_addr -// Auditctl -// Bsdthread_create -// Bsdthread_terminate -// Stack_snapshot -// Bsdthread_register -// Workq_open -// Workq_ops -// __mac_execve -// __mac_syscall -// __mac_get_file -// __mac_set_file -// __mac_get_link -// __mac_set_link -// __mac_get_proc -// __mac_set_proc -// __mac_get_fd -// __mac_set_fd -// __mac_get_pid -// __mac_get_lcid -// __mac_get_lctx -// __mac_set_lctx -// Setlcid -// Read_nocancel -// Write_nocancel -// Open_nocancel -// Close_nocancel -// Wait4_nocancel -// Recvmsg_nocancel -// Sendmsg_nocancel -// Recvfrom_nocancel -// Accept_nocancel -// Fcntl_nocancel -// Select_nocancel -// Fsync_nocancel -// Connect_nocancel -// Sigsuspend_nocancel -// Readv_nocancel -// Writev_nocancel -// Sendto_nocancel -// Pread_nocancel -// Pwrite_nocancel -// Waitid_nocancel -// Poll_nocancel -// Msgsnd_nocancel -// Msgrcv_nocancel -// Sem_wait_nocancel -// Aio_suspend_nocancel -// __sigwait_nocancel -// __semwait_signal_nocancel -// __mac_mount -// __mac_get_mount -// __mac_getfsstat diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_386.go b/vendor/golang.org/x/sys/unix/syscall_darwin_386.go deleted file mode 100644 index c172a3d..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_darwin_386.go +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build 386,darwin - -package unix - -import ( - "syscall" - "unsafe" -) - -func Getpagesize() int { return 4096 } - -func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } - -func NsecToTimespec(nsec int64) (ts Timespec) { - ts.Sec = int32(nsec / 1e9) - ts.Nsec = int32(nsec % 1e9) - return -} - -func NsecToTimeval(nsec int64) (tv Timeval) { - nsec += 999 // round up to microsecond - tv.Usec = int32(nsec % 1e9 / 1e3) - tv.Sec = int32(nsec / 1e9) - return -} - -//sysnb gettimeofday(tp *Timeval) (sec int32, usec int32, err error) -func Gettimeofday(tv *Timeval) (err error) { - // The tv passed to gettimeofday must be non-nil - // but is otherwise unused. The answers come back - // in the two registers. - sec, usec, err := gettimeofday(tv) - tv.Sec = int32(sec) - tv.Usec = int32(usec) - return err -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint32(fd) - k.Filter = int16(mode) - k.Flags = uint16(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - var length = uint64(count) - - _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(*offset>>32), uintptr(unsafe.Pointer(&length)), 0, 0, 0, 0) - - written = int(length) - - if e1 != 0 { - err = e1 - } - return -} - -func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) - -// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions -// of darwin/386 the syscall is called sysctl instead of __sysctl. -const SYS___SYSCTL = SYS_SYSCTL diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go b/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go deleted file mode 100644 index c6c99c1..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build amd64,darwin - -package unix - -import ( - "syscall" - "unsafe" -) - -func Getpagesize() int { return 4096 } - -func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } - -func NsecToTimespec(nsec int64) (ts Timespec) { - ts.Sec = nsec / 1e9 - ts.Nsec = nsec % 1e9 - return -} - -func NsecToTimeval(nsec int64) (tv Timeval) { - nsec += 999 // round up to microsecond - tv.Usec = int32(nsec % 1e9 / 1e3) - tv.Sec = int64(nsec / 1e9) - return -} - -//sysnb gettimeofday(tp *Timeval) (sec int64, usec int32, err error) -func Gettimeofday(tv *Timeval) (err error) { - // The tv passed to gettimeofday must be non-nil - // but is otherwise unused. The answers come back - // in the two registers. - sec, usec, err := gettimeofday(tv) - tv.Sec = sec - tv.Usec = usec - return err -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint64(fd) - k.Filter = int16(mode) - k.Flags = uint16(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - var length = uint64(count) - - _, _, e1 := Syscall6(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(unsafe.Pointer(&length)), 0, 0) - - written = int(length) - - if e1 != 0 { - err = e1 - } - return -} - -func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) - -// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions -// of darwin/amd64 the syscall is called sysctl instead of __sysctl. -const SYS___SYSCTL = SYS_SYSCTL diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go b/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go deleted file mode 100644 index d286cf4..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package unix - -import ( - "syscall" - "unsafe" -) - -func Getpagesize() int { return 4096 } - -func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } - -func NsecToTimespec(nsec int64) (ts Timespec) { - ts.Sec = int32(nsec / 1e9) - ts.Nsec = int32(nsec % 1e9) - return -} - -func NsecToTimeval(nsec int64) (tv Timeval) { - nsec += 999 // round up to microsecond - tv.Usec = int32(nsec % 1e9 / 1e3) - tv.Sec = int32(nsec / 1e9) - return -} - -//sysnb gettimeofday(tp *Timeval) (sec int32, usec int32, err error) -func Gettimeofday(tv *Timeval) (err error) { - // The tv passed to gettimeofday must be non-nil - // but is otherwise unused. The answers come back - // in the two registers. - sec, usec, err := gettimeofday(tv) - tv.Sec = int32(sec) - tv.Usec = int32(usec) - return err -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint32(fd) - k.Filter = int16(mode) - k.Flags = uint16(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - var length = uint64(count) - - _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(*offset>>32), uintptr(unsafe.Pointer(&length)), 0, 0, 0, 0) - - written = int(length) - - if e1 != 0 { - err = e1 - } - return -} - -func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) // sic diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go b/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go deleted file mode 100644 index c33905c..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build arm64,darwin - -package unix - -import ( - "syscall" - "unsafe" -) - -func Getpagesize() int { return 16384 } - -func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } - -func NsecToTimespec(nsec int64) (ts Timespec) { - ts.Sec = nsec / 1e9 - ts.Nsec = nsec % 1e9 - return -} - -func NsecToTimeval(nsec int64) (tv Timeval) { - nsec += 999 // round up to microsecond - tv.Usec = int32(nsec % 1e9 / 1e3) - tv.Sec = int64(nsec / 1e9) - return -} - -//sysnb gettimeofday(tp *Timeval) (sec int64, usec int32, err error) -func Gettimeofday(tv *Timeval) (err error) { - // The tv passed to gettimeofday must be non-nil - // but is otherwise unused. The answers come back - // in the two registers. - sec, usec, err := gettimeofday(tv) - tv.Sec = sec - tv.Usec = usec - return err -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint64(fd) - k.Filter = int16(mode) - k.Flags = uint16(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - var length = uint64(count) - - _, _, e1 := Syscall6(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(unsafe.Pointer(&length)), 0, 0) - - written = int(length) - - if e1 != 0 { - err = e1 - } - return -} - -func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) // sic - -// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions -// of darwin/arm64 the syscall is called sysctl instead of __sysctl. -const SYS___SYSCTL = SYS_SYSCTL diff --git a/vendor/golang.org/x/sys/unix/syscall_dragonfly.go b/vendor/golang.org/x/sys/unix/syscall_dragonfly.go deleted file mode 100644 index 3a48337..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_dragonfly.go +++ /dev/null @@ -1,415 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// DragonFly BSD system calls. -// This file is compiled as ordinary Go code, -// but it is also input to mksyscall, -// which parses the //sys lines and generates system call stubs. -// Note that sometimes we use a lowercase //sys name and wrap -// it in our own nicer implementation, either here or in -// syscall_bsd.go or syscall_unix.go. - -package unix - -import "unsafe" - -type SockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [12]int8 - Rcf uint16 - Route [16]uint16 - raw RawSockaddrDatalink -} - -// Translate "kern.hostname" to []_C_int{0,1,2,3}. -func nametomib(name string) (mib []_C_int, err error) { - const siz = unsafe.Sizeof(mib[0]) - - // NOTE(rsc): It seems strange to set the buffer to have - // size CTL_MAXNAME+2 but use only CTL_MAXNAME - // as the size. I don't know why the +2 is here, but the - // kernel uses +2 for its own implementation of this function. - // I am scared that if we don't include the +2 here, the kernel - // will silently write 2 words farther than we specify - // and we'll get memory corruption. - var buf [CTL_MAXNAME + 2]_C_int - n := uintptr(CTL_MAXNAME) * siz - - p := (*byte)(unsafe.Pointer(&buf[0])) - bytes, err := ByteSliceFromString(name) - if err != nil { - return nil, err - } - - // Magic sysctl: "setting" 0.3 to a string name - // lets you read back the array of integers form. - if err = sysctl([]_C_int{0, 3}, p, &n, &bytes[0], uintptr(len(name))); err != nil { - return nil, err - } - return buf[0 : n/siz], nil -} - -func direntIno(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno)) -} - -func direntReclen(buf []byte) (uint64, bool) { - namlen, ok := direntNamlen(buf) - if !ok { - return 0, false - } - return (16 + namlen + 1 + 7) &^ 7, true -} - -func direntNamlen(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) -} - -//sysnb pipe() (r int, w int, err error) - -func Pipe(p []int) (err error) { - if len(p) != 2 { - return EINVAL - } - p[0], p[1], err = pipe() - return -} - -//sys extpread(fd int, p []byte, flags int, offset int64) (n int, err error) -func Pread(fd int, p []byte, offset int64) (n int, err error) { - return extpread(fd, p, 0, offset) -} - -//sys extpwrite(fd int, p []byte, flags int, offset int64) (n int, err error) -func Pwrite(fd int, p []byte, offset int64) (n int, err error) { - return extpwrite(fd, p, 0, offset) -} - -func Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - nfd, err = accept4(fd, &rsa, &len, flags) - if err != nil { - return - } - if len > SizeofSockaddrAny { - panic("RawSockaddrAny too small") - } - sa, err = anyToSockaddr(&rsa) - if err != nil { - Close(nfd) - nfd = 0 - } - return -} - -func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { - var _p0 unsafe.Pointer - var bufsize uintptr - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf)) - } - r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(_p0), bufsize, uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -/* - * Exposed directly - */ -//sys Access(path string, mode uint32) (err error) -//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) -//sys Chdir(path string) (err error) -//sys Chflags(path string, flags int) (err error) -//sys Chmod(path string, mode uint32) (err error) -//sys Chown(path string, uid int, gid int) (err error) -//sys Chroot(path string) (err error) -//sys Close(fd int) (err error) -//sys Dup(fd int) (nfd int, err error) -//sys Dup2(from int, to int) (err error) -//sys Exit(code int) -//sys Fchdir(fd int) (err error) -//sys Fchflags(fd int, flags int) (err error) -//sys Fchmod(fd int, mode uint32) (err error) -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Flock(fd int, how int) (err error) -//sys Fpathconf(fd int, name int) (val int, err error) -//sys Fstat(fd int, stat *Stat_t) (err error) -//sys Fstatfs(fd int, stat *Statfs_t) (err error) -//sys Fsync(fd int) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sys Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) -//sys Getdtablesize() (size int) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (uid int) -//sysnb Getgid() (gid int) -//sysnb Getpgid(pid int) (pgid int, err error) -//sysnb Getpgrp() (pgrp int) -//sysnb Getpid() (pid int) -//sysnb Getppid() (ppid int) -//sys Getpriority(which int, who int) (prio int, err error) -//sysnb Getrlimit(which int, lim *Rlimit) (err error) -//sysnb Getrusage(who int, rusage *Rusage) (err error) -//sysnb Getsid(pid int) (sid int, err error) -//sysnb Gettimeofday(tv *Timeval) (err error) -//sysnb Getuid() (uid int) -//sys Issetugid() (tainted bool) -//sys Kill(pid int, signum syscall.Signal) (err error) -//sys Kqueue() (fd int, err error) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Link(path string, link string) (err error) -//sys Listen(s int, backlog int) (err error) -//sys Lstat(path string, stat *Stat_t) (err error) -//sys Mkdir(path string, mode uint32) (err error) -//sys Mkfifo(path string, mode uint32) (err error) -//sys Mknod(path string, mode uint32, dev int) (err error) -//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) -//sys Open(path string, mode int, perm uint32) (fd int, err error) -//sys Pathconf(path string, name int) (val int, err error) -//sys read(fd int, p []byte) (n int, err error) -//sys Readlink(path string, buf []byte) (n int, err error) -//sys Rename(from string, to string) (err error) -//sys Revoke(path string) (err error) -//sys Rmdir(path string) (err error) -//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK -//sys Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) -//sysnb Setegid(egid int) (err error) -//sysnb Seteuid(euid int) (err error) -//sysnb Setgid(gid int) (err error) -//sys Setlogin(name string) (err error) -//sysnb Setpgid(pid int, pgid int) (err error) -//sys Setpriority(which int, who int, prio int) (err error) -//sysnb Setregid(rgid int, egid int) (err error) -//sysnb Setreuid(ruid int, euid int) (err error) -//sysnb Setresgid(rgid int, egid int, sgid int) (err error) -//sysnb Setresuid(ruid int, euid int, suid int) (err error) -//sysnb Setrlimit(which int, lim *Rlimit) (err error) -//sysnb Setsid() (pid int, err error) -//sysnb Settimeofday(tp *Timeval) (err error) -//sysnb Setuid(uid int) (err error) -//sys Stat(path string, stat *Stat_t) (err error) -//sys Statfs(path string, stat *Statfs_t) (err error) -//sys Symlink(path string, link string) (err error) -//sys Sync() (err error) -//sys Truncate(path string, length int64) (err error) -//sys Umask(newmask int) (oldmask int) -//sys Undelete(path string) (err error) -//sys Unlink(path string) (err error) -//sys Unmount(path string, flags int) (err error) -//sys write(fd int, p []byte) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) -//sys munmap(addr uintptr, length uintptr) (err error) -//sys readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ -//sys writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE -//sys accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) -//sys utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) - -/* - * Unimplemented - * TODO(jsing): Update this list for DragonFly. - */ -// Profil -// Sigaction -// Sigprocmask -// Getlogin -// Sigpending -// Sigaltstack -// Ioctl -// Reboot -// Execve -// Vfork -// Sbrk -// Sstk -// Ovadvise -// Mincore -// Setitimer -// Swapon -// Select -// Sigsuspend -// Readv -// Writev -// Nfssvc -// Getfh -// Quotactl -// Mount -// Csops -// Waitid -// Add_profil -// Kdebug_trace -// Sigreturn -// Atsocket -// Kqueue_from_portset_np -// Kqueue_portset -// Getattrlist -// Setattrlist -// Getdirentriesattr -// Searchfs -// Delete -// Copyfile -// Poll -// Watchevent -// Waitevent -// Modwatch -// Getxattr -// Fgetxattr -// Setxattr -// Fsetxattr -// Removexattr -// Fremovexattr -// Listxattr -// Flistxattr -// Fsctl -// Initgroups -// Posix_spawn -// Nfsclnt -// Fhopen -// Minherit -// Semsys -// Msgsys -// Shmsys -// Semctl -// Semget -// Semop -// Msgctl -// Msgget -// Msgsnd -// Msgrcv -// Shmat -// Shmctl -// Shmdt -// Shmget -// Shm_open -// Shm_unlink -// Sem_open -// Sem_close -// Sem_unlink -// Sem_wait -// Sem_trywait -// Sem_post -// Sem_getvalue -// Sem_init -// Sem_destroy -// Open_extended -// Umask_extended -// Stat_extended -// Lstat_extended -// Fstat_extended -// Chmod_extended -// Fchmod_extended -// Access_extended -// Settid -// Gettid -// Setsgroups -// Getsgroups -// Setwgroups -// Getwgroups -// Mkfifo_extended -// Mkdir_extended -// Identitysvc -// Shared_region_check_np -// Shared_region_map_np -// __pthread_mutex_destroy -// __pthread_mutex_init -// __pthread_mutex_lock -// __pthread_mutex_trylock -// __pthread_mutex_unlock -// __pthread_cond_init -// __pthread_cond_destroy -// __pthread_cond_broadcast -// __pthread_cond_signal -// Setsid_with_pid -// __pthread_cond_timedwait -// Aio_fsync -// Aio_return -// Aio_suspend -// Aio_cancel -// Aio_error -// Aio_read -// Aio_write -// Lio_listio -// __pthread_cond_wait -// Iopolicysys -// __pthread_kill -// __pthread_sigmask -// __sigwait -// __disable_threadsignal -// __pthread_markcancel -// __pthread_canceled -// __semwait_signal -// Proc_info -// Stat64_extended -// Lstat64_extended -// Fstat64_extended -// __pthread_chdir -// __pthread_fchdir -// Audit -// Auditon -// Getauid -// Setauid -// Getaudit -// Setaudit -// Getaudit_addr -// Setaudit_addr -// Auditctl -// Bsdthread_create -// Bsdthread_terminate -// Stack_snapshot -// Bsdthread_register -// Workq_open -// Workq_ops -// __mac_execve -// __mac_syscall -// __mac_get_file -// __mac_set_file -// __mac_get_link -// __mac_set_link -// __mac_get_proc -// __mac_set_proc -// __mac_get_fd -// __mac_set_fd -// __mac_get_pid -// __mac_get_lcid -// __mac_get_lctx -// __mac_set_lctx -// Setlcid -// Read_nocancel -// Write_nocancel -// Open_nocancel -// Close_nocancel -// Wait4_nocancel -// Recvmsg_nocancel -// Sendmsg_nocancel -// Recvfrom_nocancel -// Accept_nocancel -// Fcntl_nocancel -// Select_nocancel -// Fsync_nocancel -// Connect_nocancel -// Sigsuspend_nocancel -// Readv_nocancel -// Writev_nocancel -// Sendto_nocancel -// Pread_nocancel -// Pwrite_nocancel -// Waitid_nocancel -// Poll_nocancel -// Msgsnd_nocancel -// Msgrcv_nocancel -// Sem_wait_nocancel -// Aio_suspend_nocancel -// __sigwait_nocancel -// __semwait_signal_nocancel -// __mac_mount -// __mac_get_mount -// __mac_getfsstat diff --git a/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go deleted file mode 100644 index da7cb79..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build amd64,dragonfly - -package unix - -import ( - "syscall" - "unsafe" -) - -func Getpagesize() int { return 4096 } - -func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } - -func NsecToTimespec(nsec int64) (ts Timespec) { - ts.Sec = nsec / 1e9 - ts.Nsec = nsec % 1e9 - return -} - -func NsecToTimeval(nsec int64) (tv Timeval) { - nsec += 999 // round up to microsecond - tv.Usec = nsec % 1e9 / 1e3 - tv.Sec = int64(nsec / 1e9) - return -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint64(fd) - k.Filter = int16(mode) - k.Flags = uint16(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - var writtenOut uint64 = 0 - _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0) - - written = int(writtenOut) - - if e1 != 0 { - err = e1 - } - return -} - -func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd.go b/vendor/golang.org/x/sys/unix/syscall_freebsd.go deleted file mode 100644 index d26e52e..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd.go +++ /dev/null @@ -1,708 +0,0 @@ -// Copyright 2009,2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// FreeBSD system calls. -// This file is compiled as ordinary Go code, -// but it is also input to mksyscall, -// which parses the //sys lines and generates system call stubs. -// Note that sometimes we use a lowercase //sys name and wrap -// it in our own nicer implementation, either here or in -// syscall_bsd.go or syscall_unix.go. - -package unix - -import "unsafe" - -type SockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [46]int8 - raw RawSockaddrDatalink -} - -// Translate "kern.hostname" to []_C_int{0,1,2,3}. -func nametomib(name string) (mib []_C_int, err error) { - const siz = unsafe.Sizeof(mib[0]) - - // NOTE(rsc): It seems strange to set the buffer to have - // size CTL_MAXNAME+2 but use only CTL_MAXNAME - // as the size. I don't know why the +2 is here, but the - // kernel uses +2 for its own implementation of this function. - // I am scared that if we don't include the +2 here, the kernel - // will silently write 2 words farther than we specify - // and we'll get memory corruption. - var buf [CTL_MAXNAME + 2]_C_int - n := uintptr(CTL_MAXNAME) * siz - - p := (*byte)(unsafe.Pointer(&buf[0])) - bytes, err := ByteSliceFromString(name) - if err != nil { - return nil, err - } - - // Magic sysctl: "setting" 0.3 to a string name - // lets you read back the array of integers form. - if err = sysctl([]_C_int{0, 3}, p, &n, &bytes[0], uintptr(len(name))); err != nil { - return nil, err - } - return buf[0 : n/siz], nil -} - -func direntIno(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno)) -} - -func direntReclen(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) -} - -func direntNamlen(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) -} - -//sysnb pipe() (r int, w int, err error) - -func Pipe(p []int) (err error) { - if len(p) != 2 { - return EINVAL - } - p[0], p[1], err = pipe() - return -} - -func GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, error) { - var value IPMreqn - vallen := _Socklen(SizeofIPMreqn) - errno := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, errno -} - -func SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) { - return setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq)) -} - -func Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - nfd, err = accept4(fd, &rsa, &len, flags) - if err != nil { - return - } - if len > SizeofSockaddrAny { - panic("RawSockaddrAny too small") - } - sa, err = anyToSockaddr(&rsa) - if err != nil { - Close(nfd) - nfd = 0 - } - return -} - -func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { - var _p0 unsafe.Pointer - var bufsize uintptr - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf)) - } - r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(_p0), bufsize, uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -// Derive extattr namespace and attribute name - -func xattrnamespace(fullattr string) (ns int, attr string, err error) { - s := -1 - for idx, val := range fullattr { - if val == '.' { - s = idx - break - } - } - - if s == -1 { - return -1, "", ENOATTR - } - - namespace := fullattr[0:s] - attr = fullattr[s+1:] - - switch namespace { - case "user": - return EXTATTR_NAMESPACE_USER, attr, nil - case "system": - return EXTATTR_NAMESPACE_SYSTEM, attr, nil - default: - return -1, "", ENOATTR - } -} - -func initxattrdest(dest []byte, idx int) (d unsafe.Pointer) { - if len(dest) > idx { - return unsafe.Pointer(&dest[idx]) - } else { - return unsafe.Pointer(_zero) - } -} - -// FreeBSD implements its own syscalls to handle extended attributes - -func Getxattr(file string, attr string, dest []byte) (sz int, err error) { - d := initxattrdest(dest, 0) - destsize := len(dest) - - nsid, a, err := xattrnamespace(attr) - if err != nil { - return -1, err - } - - return ExtattrGetFile(file, nsid, a, uintptr(d), destsize) -} - -func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { - d := initxattrdest(dest, 0) - destsize := len(dest) - - nsid, a, err := xattrnamespace(attr) - if err != nil { - return -1, err - } - - return ExtattrGetFd(fd, nsid, a, uintptr(d), destsize) -} - -func Lgetxattr(link string, attr string, dest []byte) (sz int, err error) { - d := initxattrdest(dest, 0) - destsize := len(dest) - - nsid, a, err := xattrnamespace(attr) - if err != nil { - return -1, err - } - - return ExtattrGetLink(link, nsid, a, uintptr(d), destsize) -} - -// flags are unused on FreeBSD - -func Fsetxattr(fd int, attr string, data []byte, flags int) (err error) { - d := unsafe.Pointer(&data[0]) - datasiz := len(data) - - nsid, a, err := xattrnamespace(attr) - if err != nil { - return - } - - _, err = ExtattrSetFd(fd, nsid, a, uintptr(d), datasiz) - return -} - -func Setxattr(file string, attr string, data []byte, flags int) (err error) { - d := unsafe.Pointer(&data[0]) - datasiz := len(data) - - nsid, a, err := xattrnamespace(attr) - if err != nil { - return - } - - _, err = ExtattrSetFile(file, nsid, a, uintptr(d), datasiz) - return -} - -func Lsetxattr(link string, attr string, data []byte, flags int) (err error) { - d := unsafe.Pointer(&data[0]) - datasiz := len(data) - - nsid, a, err := xattrnamespace(attr) - if err != nil { - return - } - - _, err = ExtattrSetLink(link, nsid, a, uintptr(d), datasiz) - return -} - -func Removexattr(file string, attr string) (err error) { - nsid, a, err := xattrnamespace(attr) - if err != nil { - return - } - - err = ExtattrDeleteFile(file, nsid, a) - return -} - -func Fremovexattr(fd int, attr string) (err error) { - nsid, a, err := xattrnamespace(attr) - if err != nil { - return - } - - err = ExtattrDeleteFd(fd, nsid, a) - return -} - -func Lremovexattr(link string, attr string) (err error) { - nsid, a, err := xattrnamespace(attr) - if err != nil { - return - } - - err = ExtattrDeleteLink(link, nsid, a) - return -} - -func Listxattr(file string, dest []byte) (sz int, err error) { - d := initxattrdest(dest, 0) - destsiz := len(dest) - - // FreeBSD won't allow you to list xattrs from multiple namespaces - s := 0 - var e error - for _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} { - stmp, e := ExtattrListFile(file, nsid, uintptr(d), destsiz) - - /* Errors accessing system attrs are ignored so that - * we can implement the Linux-like behavior of omitting errors that - * we don't have read permissions on - * - * Linux will still error if we ask for user attributes on a file that - * we don't have read permissions on, so don't ignore those errors - */ - if e != nil && e == EPERM && nsid != EXTATTR_NAMESPACE_USER { - e = nil - continue - } else if e != nil { - return s, e - } - - s += stmp - destsiz -= s - if destsiz < 0 { - destsiz = 0 - } - d = initxattrdest(dest, s) - } - - return s, e -} - -func Flistxattr(fd int, dest []byte) (sz int, err error) { - d := initxattrdest(dest, 0) - destsiz := len(dest) - - s := 0 - var e error - for _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} { - stmp, e := ExtattrListFd(fd, nsid, uintptr(d), destsiz) - if e != nil && e == EPERM && nsid != EXTATTR_NAMESPACE_USER { - e = nil - continue - } else if e != nil { - return s, e - } - - s += stmp - destsiz -= s - if destsiz < 0 { - destsiz = 0 - } - d = initxattrdest(dest, s) - } - - return s, e -} - -func Llistxattr(link string, dest []byte) (sz int, err error) { - d := initxattrdest(dest, 0) - destsiz := len(dest) - - s := 0 - var e error - for _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} { - stmp, e := ExtattrListLink(link, nsid, uintptr(d), destsiz) - if e != nil && e == EPERM && nsid != EXTATTR_NAMESPACE_USER { - e = nil - continue - } else if e != nil { - return s, e - } - - s += stmp - destsiz -= s - if destsiz < 0 { - destsiz = 0 - } - d = initxattrdest(dest, s) - } - - return s, e -} - -//sys ioctl(fd int, req uint, arg uintptr) (err error) - -// ioctl itself should not be exposed directly, but additional get/set -// functions for specific types are permissible. - -// IoctlSetInt performs an ioctl operation which sets an integer value -// on fd, using the specified request number. -func IoctlSetInt(fd int, req uint, value int) error { - return ioctl(fd, req, uintptr(value)) -} - -func IoctlSetWinsize(fd int, req uint, value *Winsize) error { - return ioctl(fd, req, uintptr(unsafe.Pointer(value))) -} - -func IoctlSetTermios(fd int, req uint, value *Termios) error { - return ioctl(fd, req, uintptr(unsafe.Pointer(value))) -} - -// IoctlGetInt performs an ioctl operation which gets an integer value -// from fd, using the specified request number. -func IoctlGetInt(fd int, req uint) (int, error) { - var value int - err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) - return value, err -} - -func IoctlGetWinsize(fd int, req uint) (*Winsize, error) { - var value Winsize - err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) - return &value, err -} - -func IoctlGetTermios(fd int, req uint) (*Termios, error) { - var value Termios - err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) - return &value, err -} - -/* - * Exposed directly - */ -//sys Access(path string, mode uint32) (err error) -//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) -//sys CapEnter() (err error) -//sys capRightsGet(version int, fd int, rightsp *CapRights) (err error) = SYS___CAP_RIGHTS_GET -//sys capRightsLimit(fd int, rightsp *CapRights) (err error) -//sys Chdir(path string) (err error) -//sys Chflags(path string, flags int) (err error) -//sys Chmod(path string, mode uint32) (err error) -//sys Chown(path string, uid int, gid int) (err error) -//sys Chroot(path string) (err error) -//sys Close(fd int) (err error) -//sys Dup(fd int) (nfd int, err error) -//sys Dup2(from int, to int) (err error) -//sys Exit(code int) -//sys ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) -//sys ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) -//sys ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) -//sys ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) -//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_POSIX_FADVISE -//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) -//sys Fchdir(fd int) (err error) -//sys Fchflags(fd int, flags int) (err error) -//sys Fchmod(fd int, mode uint32) (err error) -//sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) -//sys Flock(fd int, how int) (err error) -//sys Fpathconf(fd int, name int) (val int, err error) -//sys Fstat(fd int, stat *Stat_t) (err error) -//sys Fstatfs(fd int, stat *Statfs_t) (err error) -//sys Fsync(fd int) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sys Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) -//sys Getdtablesize() (size int) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (uid int) -//sysnb Getgid() (gid int) -//sysnb Getpgid(pid int) (pgid int, err error) -//sysnb Getpgrp() (pgrp int) -//sysnb Getpid() (pid int) -//sysnb Getppid() (ppid int) -//sys Getpriority(which int, who int) (prio int, err error) -//sysnb Getrlimit(which int, lim *Rlimit) (err error) -//sysnb Getrusage(who int, rusage *Rusage) (err error) -//sysnb Getsid(pid int) (sid int, err error) -//sysnb Gettimeofday(tv *Timeval) (err error) -//sysnb Getuid() (uid int) -//sys Issetugid() (tainted bool) -//sys Kill(pid int, signum syscall.Signal) (err error) -//sys Kqueue() (fd int, err error) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Link(path string, link string) (err error) -//sys Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) -//sys Listen(s int, backlog int) (err error) -//sys Lstat(path string, stat *Stat_t) (err error) -//sys Mkdir(path string, mode uint32) (err error) -//sys Mkdirat(dirfd int, path string, mode uint32) (err error) -//sys Mkfifo(path string, mode uint32) (err error) -//sys Mknod(path string, mode uint32, dev int) (err error) -//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) -//sys Open(path string, mode int, perm uint32) (fd int, err error) -//sys Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) -//sys Pathconf(path string, name int) (val int, err error) -//sys Pread(fd int, p []byte, offset int64) (n int, err error) -//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) -//sys read(fd int, p []byte) (n int, err error) -//sys Readlink(path string, buf []byte) (n int, err error) -//sys Readlinkat(dirfd int, path string, buf []byte) (n int, err error) -//sys Rename(from string, to string) (err error) -//sys Renameat(fromfd int, from string, tofd int, to string) (err error) -//sys Revoke(path string) (err error) -//sys Rmdir(path string) (err error) -//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK -//sys Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) -//sysnb Setegid(egid int) (err error) -//sysnb Seteuid(euid int) (err error) -//sysnb Setgid(gid int) (err error) -//sys Setlogin(name string) (err error) -//sysnb Setpgid(pid int, pgid int) (err error) -//sys Setpriority(which int, who int, prio int) (err error) -//sysnb Setregid(rgid int, egid int) (err error) -//sysnb Setreuid(ruid int, euid int) (err error) -//sysnb Setresgid(rgid int, egid int, sgid int) (err error) -//sysnb Setresuid(ruid int, euid int, suid int) (err error) -//sysnb Setrlimit(which int, lim *Rlimit) (err error) -//sysnb Setsid() (pid int, err error) -//sysnb Settimeofday(tp *Timeval) (err error) -//sysnb Setuid(uid int) (err error) -//sys Stat(path string, stat *Stat_t) (err error) -//sys Statfs(path string, stat *Statfs_t) (err error) -//sys Symlink(path string, link string) (err error) -//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error) -//sys Sync() (err error) -//sys Truncate(path string, length int64) (err error) -//sys Umask(newmask int) (oldmask int) -//sys Undelete(path string) (err error) -//sys Unlink(path string) (err error) -//sys Unlinkat(dirfd int, path string, flags int) (err error) -//sys Unmount(path string, flags int) (err error) -//sys write(fd int, p []byte) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) -//sys munmap(addr uintptr, length uintptr) (err error) -//sys readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ -//sys writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE -//sys accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) -//sys utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) - -/* - * Unimplemented - */ -// Profil -// Sigaction -// Sigprocmask -// Getlogin -// Sigpending -// Sigaltstack -// Ioctl -// Reboot -// Execve -// Vfork -// Sbrk -// Sstk -// Ovadvise -// Mincore -// Setitimer -// Swapon -// Select -// Sigsuspend -// Readv -// Writev -// Nfssvc -// Getfh -// Quotactl -// Mount -// Csops -// Waitid -// Add_profil -// Kdebug_trace -// Sigreturn -// Atsocket -// Kqueue_from_portset_np -// Kqueue_portset -// Getattrlist -// Setattrlist -// Getdirentriesattr -// Searchfs -// Delete -// Copyfile -// Poll -// Watchevent -// Waitevent -// Modwatch -// Getxattr -// Fgetxattr -// Setxattr -// Fsetxattr -// Removexattr -// Fremovexattr -// Listxattr -// Flistxattr -// Fsctl -// Initgroups -// Posix_spawn -// Nfsclnt -// Fhopen -// Minherit -// Semsys -// Msgsys -// Shmsys -// Semctl -// Semget -// Semop -// Msgctl -// Msgget -// Msgsnd -// Msgrcv -// Shmat -// Shmctl -// Shmdt -// Shmget -// Shm_open -// Shm_unlink -// Sem_open -// Sem_close -// Sem_unlink -// Sem_wait -// Sem_trywait -// Sem_post -// Sem_getvalue -// Sem_init -// Sem_destroy -// Open_extended -// Umask_extended -// Stat_extended -// Lstat_extended -// Fstat_extended -// Chmod_extended -// Fchmod_extended -// Access_extended -// Settid -// Gettid -// Setsgroups -// Getsgroups -// Setwgroups -// Getwgroups -// Mkfifo_extended -// Mkdir_extended -// Identitysvc -// Shared_region_check_np -// Shared_region_map_np -// __pthread_mutex_destroy -// __pthread_mutex_init -// __pthread_mutex_lock -// __pthread_mutex_trylock -// __pthread_mutex_unlock -// __pthread_cond_init -// __pthread_cond_destroy -// __pthread_cond_broadcast -// __pthread_cond_signal -// Setsid_with_pid -// __pthread_cond_timedwait -// Aio_fsync -// Aio_return -// Aio_suspend -// Aio_cancel -// Aio_error -// Aio_read -// Aio_write -// Lio_listio -// __pthread_cond_wait -// Iopolicysys -// __pthread_kill -// __pthread_sigmask -// __sigwait -// __disable_threadsignal -// __pthread_markcancel -// __pthread_canceled -// __semwait_signal -// Proc_info -// Stat64_extended -// Lstat64_extended -// Fstat64_extended -// __pthread_chdir -// __pthread_fchdir -// Audit -// Auditon -// Getauid -// Setauid -// Getaudit -// Setaudit -// Getaudit_addr -// Setaudit_addr -// Auditctl -// Bsdthread_create -// Bsdthread_terminate -// Stack_snapshot -// Bsdthread_register -// Workq_open -// Workq_ops -// __mac_execve -// __mac_syscall -// __mac_get_file -// __mac_set_file -// __mac_get_link -// __mac_set_link -// __mac_get_proc -// __mac_set_proc -// __mac_get_fd -// __mac_set_fd -// __mac_get_pid -// __mac_get_lcid -// __mac_get_lctx -// __mac_set_lctx -// Setlcid -// Read_nocancel -// Write_nocancel -// Open_nocancel -// Close_nocancel -// Wait4_nocancel -// Recvmsg_nocancel -// Sendmsg_nocancel -// Recvfrom_nocancel -// Accept_nocancel -// Fcntl_nocancel -// Select_nocancel -// Fsync_nocancel -// Connect_nocancel -// Sigsuspend_nocancel -// Readv_nocancel -// Writev_nocancel -// Sendto_nocancel -// Pread_nocancel -// Pwrite_nocancel -// Waitid_nocancel -// Poll_nocancel -// Msgsnd_nocancel -// Msgrcv_nocancel -// Sem_wait_nocancel -// Aio_suspend_nocancel -// __sigwait_nocancel -// __semwait_signal_nocancel -// __mac_mount -// __mac_get_mount -// __mac_getfsstat diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go deleted file mode 100644 index 6a0cd80..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build 386,freebsd - -package unix - -import ( - "syscall" - "unsafe" -) - -func Getpagesize() int { return 4096 } - -func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } - -func NsecToTimespec(nsec int64) (ts Timespec) { - ts.Sec = int32(nsec / 1e9) - ts.Nsec = int32(nsec % 1e9) - return -} - -func NsecToTimeval(nsec int64) (tv Timeval) { - nsec += 999 // round up to microsecond - tv.Usec = int32(nsec % 1e9 / 1e3) - tv.Sec = int32(nsec / 1e9) - return -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint32(fd) - k.Filter = int16(mode) - k.Flags = uint16(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - var writtenOut uint64 = 0 - _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr((*offset)>>32), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0) - - written = int(writtenOut) - - if e1 != 0 { - err = e1 - } - return -} - -func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go deleted file mode 100644 index e142540..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build amd64,freebsd - -package unix - -import ( - "syscall" - "unsafe" -) - -func Getpagesize() int { return 4096 } - -func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } - -func NsecToTimespec(nsec int64) (ts Timespec) { - ts.Sec = nsec / 1e9 - ts.Nsec = nsec % 1e9 - return -} - -func NsecToTimeval(nsec int64) (tv Timeval) { - nsec += 999 // round up to microsecond - tv.Usec = nsec % 1e9 / 1e3 - tv.Sec = int64(nsec / 1e9) - return -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint64(fd) - k.Filter = int16(mode) - k.Flags = uint16(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - var writtenOut uint64 = 0 - _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0) - - written = int(writtenOut) - - if e1 != 0 { - err = e1 - } - return -} - -func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go deleted file mode 100644 index 5504cb1..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build arm,freebsd - -package unix - -import ( - "syscall" - "unsafe" -) - -func Getpagesize() int { return 4096 } - -func TimespecToNsec(ts Timespec) int64 { return ts.Sec*1e9 + int64(ts.Nsec) } - -func NsecToTimespec(nsec int64) (ts Timespec) { - ts.Sec = nsec / 1e9 - ts.Nsec = int32(nsec % 1e9) - return -} - -func NsecToTimeval(nsec int64) (tv Timeval) { - nsec += 999 // round up to microsecond - tv.Usec = int32(nsec % 1e9 / 1e3) - tv.Sec = nsec / 1e9 - return -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint32(fd) - k.Filter = int16(mode) - k.Flags = uint16(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - var writtenOut uint64 = 0 - _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr((*offset)>>32), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0) - - written = int(writtenOut) - - if e1 != 0 { - err = e1 - } - return -} - -func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux.go b/vendor/golang.org/x/sys/unix/syscall_linux.go deleted file mode 100644 index 1b7d59d..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux.go +++ /dev/null @@ -1,1469 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Linux system calls. -// This file is compiled as ordinary Go code, -// but it is also input to mksyscall, -// which parses the //sys lines and generates system call stubs. -// Note that sometimes we use a lowercase //sys name and -// wrap it in our own nicer implementation. - -package unix - -import ( - "syscall" - "unsafe" -) - -/* - * Wrapped - */ - -func Access(path string, mode uint32) (err error) { - return Faccessat(AT_FDCWD, path, mode, 0) -} - -func Chmod(path string, mode uint32) (err error) { - return Fchmodat(AT_FDCWD, path, mode, 0) -} - -func Chown(path string, uid int, gid int) (err error) { - return Fchownat(AT_FDCWD, path, uid, gid, 0) -} - -func Creat(path string, mode uint32) (fd int, err error) { - return Open(path, O_CREAT|O_WRONLY|O_TRUNC, mode) -} - -//sys fchmodat(dirfd int, path string, mode uint32) (err error) - -func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - // Linux fchmodat doesn't support the flags parameter. Mimick glibc's behavior - // and check the flags. Otherwise the mode would be applied to the symlink - // destination which is not what the user expects. - if flags&^AT_SYMLINK_NOFOLLOW != 0 { - return EINVAL - } else if flags&AT_SYMLINK_NOFOLLOW != 0 { - return EOPNOTSUPP - } - return fchmodat(dirfd, path, mode) -} - -//sys ioctl(fd int, req uint, arg uintptr) (err error) - -// ioctl itself should not be exposed directly, but additional get/set -// functions for specific types are permissible. - -// IoctlSetInt performs an ioctl operation which sets an integer value -// on fd, using the specified request number. -func IoctlSetInt(fd int, req uint, value int) error { - return ioctl(fd, req, uintptr(value)) -} - -func IoctlSetWinsize(fd int, req uint, value *Winsize) error { - return ioctl(fd, req, uintptr(unsafe.Pointer(value))) -} - -func IoctlSetTermios(fd int, req uint, value *Termios) error { - return ioctl(fd, req, uintptr(unsafe.Pointer(value))) -} - -// IoctlGetInt performs an ioctl operation which gets an integer value -// from fd, using the specified request number. -func IoctlGetInt(fd int, req uint) (int, error) { - var value int - err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) - return value, err -} - -func IoctlGetWinsize(fd int, req uint) (*Winsize, error) { - var value Winsize - err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) - return &value, err -} - -func IoctlGetTermios(fd int, req uint) (*Termios, error) { - var value Termios - err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) - return &value, err -} - -//sys Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) - -func Link(oldpath string, newpath string) (err error) { - return Linkat(AT_FDCWD, oldpath, AT_FDCWD, newpath, 0) -} - -func Mkdir(path string, mode uint32) (err error) { - return Mkdirat(AT_FDCWD, path, mode) -} - -func Mknod(path string, mode uint32, dev int) (err error) { - return Mknodat(AT_FDCWD, path, mode, dev) -} - -func Open(path string, mode int, perm uint32) (fd int, err error) { - return openat(AT_FDCWD, path, mode|O_LARGEFILE, perm) -} - -//sys openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) - -func Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - return openat(dirfd, path, flags|O_LARGEFILE, mode) -} - -//sys ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) - -func Ppoll(fds []PollFd, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - if len(fds) == 0 { - return ppoll(nil, 0, timeout, sigmask) - } - return ppoll(&fds[0], len(fds), timeout, sigmask) -} - -//sys Readlinkat(dirfd int, path string, buf []byte) (n int, err error) - -func Readlink(path string, buf []byte) (n int, err error) { - return Readlinkat(AT_FDCWD, path, buf) -} - -func Rename(oldpath string, newpath string) (err error) { - return Renameat(AT_FDCWD, oldpath, AT_FDCWD, newpath) -} - -func Rmdir(path string) error { - return Unlinkat(AT_FDCWD, path, AT_REMOVEDIR) -} - -//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error) - -func Symlink(oldpath string, newpath string) (err error) { - return Symlinkat(oldpath, AT_FDCWD, newpath) -} - -func Unlink(path string) error { - return Unlinkat(AT_FDCWD, path, 0) -} - -//sys Unlinkat(dirfd int, path string, flags int) (err error) - -//sys utimes(path string, times *[2]Timeval) (err error) - -func Utimes(path string, tv []Timeval) error { - if tv == nil { - err := utimensat(AT_FDCWD, path, nil, 0) - if err != ENOSYS { - return err - } - return utimes(path, nil) - } - if len(tv) != 2 { - return EINVAL - } - var ts [2]Timespec - ts[0] = NsecToTimespec(TimevalToNsec(tv[0])) - ts[1] = NsecToTimespec(TimevalToNsec(tv[1])) - err := utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) - if err != ENOSYS { - return err - } - return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) -} - -//sys utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) - -func UtimesNano(path string, ts []Timespec) error { - if ts == nil { - err := utimensat(AT_FDCWD, path, nil, 0) - if err != ENOSYS { - return err - } - return utimes(path, nil) - } - if len(ts) != 2 { - return EINVAL - } - err := utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) - if err != ENOSYS { - return err - } - // If the utimensat syscall isn't available (utimensat was added to Linux - // in 2.6.22, Released, 8 July 2007) then fall back to utimes - var tv [2]Timeval - for i := 0; i < 2; i++ { - tv[i] = NsecToTimeval(TimespecToNsec(ts[i])) - } - return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) -} - -func UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error { - if ts == nil { - return utimensat(dirfd, path, nil, flags) - } - if len(ts) != 2 { - return EINVAL - } - return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags) -} - -//sys futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) - -func Futimesat(dirfd int, path string, tv []Timeval) error { - pathp, err := BytePtrFromString(path) - if err != nil { - return err - } - if tv == nil { - return futimesat(dirfd, pathp, nil) - } - if len(tv) != 2 { - return EINVAL - } - return futimesat(dirfd, pathp, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) -} - -func Futimes(fd int, tv []Timeval) (err error) { - // Believe it or not, this is the best we can do on Linux - // (and is what glibc does). - return Utimes("/proc/self/fd/"+itoa(fd), tv) -} - -const ImplementsGetwd = true - -//sys Getcwd(buf []byte) (n int, err error) - -func Getwd() (wd string, err error) { - var buf [PathMax]byte - n, err := Getcwd(buf[0:]) - if err != nil { - return "", err - } - // Getcwd returns the number of bytes written to buf, including the NUL. - if n < 1 || n > len(buf) || buf[n-1] != 0 { - return "", EINVAL - } - return string(buf[0 : n-1]), nil -} - -func Getgroups() (gids []int, err error) { - n, err := getgroups(0, nil) - if err != nil { - return nil, err - } - if n == 0 { - return nil, nil - } - - // Sanity check group count. Max is 1<<16 on Linux. - if n < 0 || n > 1<<20 { - return nil, EINVAL - } - - a := make([]_Gid_t, n) - n, err = getgroups(n, &a[0]) - if err != nil { - return nil, err - } - gids = make([]int, n) - for i, v := range a[0:n] { - gids[i] = int(v) - } - return -} - -func Setgroups(gids []int) (err error) { - if len(gids) == 0 { - return setgroups(0, nil) - } - - a := make([]_Gid_t, len(gids)) - for i, v := range gids { - a[i] = _Gid_t(v) - } - return setgroups(len(a), &a[0]) -} - -type WaitStatus uint32 - -// Wait status is 7 bits at bottom, either 0 (exited), -// 0x7F (stopped), or a signal number that caused an exit. -// The 0x80 bit is whether there was a core dump. -// An extra number (exit code, signal causing a stop) -// is in the high bits. At least that's the idea. -// There are various irregularities. For example, the -// "continued" status is 0xFFFF, distinguishing itself -// from stopped via the core dump bit. - -const ( - mask = 0x7F - core = 0x80 - exited = 0x00 - stopped = 0x7F - shift = 8 -) - -func (w WaitStatus) Exited() bool { return w&mask == exited } - -func (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != exited } - -func (w WaitStatus) Stopped() bool { return w&0xFF == stopped } - -func (w WaitStatus) Continued() bool { return w == 0xFFFF } - -func (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 } - -func (w WaitStatus) ExitStatus() int { - if !w.Exited() { - return -1 - } - return int(w>>shift) & 0xFF -} - -func (w WaitStatus) Signal() syscall.Signal { - if !w.Signaled() { - return -1 - } - return syscall.Signal(w & mask) -} - -func (w WaitStatus) StopSignal() syscall.Signal { - if !w.Stopped() { - return -1 - } - return syscall.Signal(w>>shift) & 0xFF -} - -func (w WaitStatus) TrapCause() int { - if w.StopSignal() != SIGTRAP { - return -1 - } - return int(w>>shift) >> 8 -} - -//sys wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) - -func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { - var status _C_int - wpid, err = wait4(pid, &status, options, rusage) - if wstatus != nil { - *wstatus = WaitStatus(status) - } - return -} - -func Mkfifo(path string, mode uint32) error { - return Mknod(path, mode|S_IFIFO, 0) -} - -func Mkfifoat(dirfd int, path string, mode uint32) error { - return Mknodat(dirfd, path, mode|S_IFIFO, 0) -} - -func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Port < 0 || sa.Port > 0xFFFF { - return nil, 0, EINVAL - } - sa.raw.Family = AF_INET - p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) - p[0] = byte(sa.Port >> 8) - p[1] = byte(sa.Port) - for i := 0; i < len(sa.Addr); i++ { - sa.raw.Addr[i] = sa.Addr[i] - } - return unsafe.Pointer(&sa.raw), SizeofSockaddrInet4, nil -} - -func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Port < 0 || sa.Port > 0xFFFF { - return nil, 0, EINVAL - } - sa.raw.Family = AF_INET6 - p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) - p[0] = byte(sa.Port >> 8) - p[1] = byte(sa.Port) - sa.raw.Scope_id = sa.ZoneId - for i := 0; i < len(sa.Addr); i++ { - sa.raw.Addr[i] = sa.Addr[i] - } - return unsafe.Pointer(&sa.raw), SizeofSockaddrInet6, nil -} - -func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) { - name := sa.Name - n := len(name) - if n >= len(sa.raw.Path) { - return nil, 0, EINVAL - } - sa.raw.Family = AF_UNIX - for i := 0; i < n; i++ { - sa.raw.Path[i] = int8(name[i]) - } - // length is family (uint16), name, NUL. - sl := _Socklen(2) - if n > 0 { - sl += _Socklen(n) + 1 - } - if sa.raw.Path[0] == '@' { - sa.raw.Path[0] = 0 - // Don't count trailing NUL for abstract address. - sl-- - } - - return unsafe.Pointer(&sa.raw), sl, nil -} - -type SockaddrLinklayer struct { - Protocol uint16 - Ifindex int - Hatype uint16 - Pkttype uint8 - Halen uint8 - Addr [8]byte - raw RawSockaddrLinklayer -} - -func (sa *SockaddrLinklayer) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Ifindex < 0 || sa.Ifindex > 0x7fffffff { - return nil, 0, EINVAL - } - sa.raw.Family = AF_PACKET - sa.raw.Protocol = sa.Protocol - sa.raw.Ifindex = int32(sa.Ifindex) - sa.raw.Hatype = sa.Hatype - sa.raw.Pkttype = sa.Pkttype - sa.raw.Halen = sa.Halen - for i := 0; i < len(sa.Addr); i++ { - sa.raw.Addr[i] = sa.Addr[i] - } - return unsafe.Pointer(&sa.raw), SizeofSockaddrLinklayer, nil -} - -type SockaddrNetlink struct { - Family uint16 - Pad uint16 - Pid uint32 - Groups uint32 - raw RawSockaddrNetlink -} - -func (sa *SockaddrNetlink) sockaddr() (unsafe.Pointer, _Socklen, error) { - sa.raw.Family = AF_NETLINK - sa.raw.Pad = sa.Pad - sa.raw.Pid = sa.Pid - sa.raw.Groups = sa.Groups - return unsafe.Pointer(&sa.raw), SizeofSockaddrNetlink, nil -} - -type SockaddrHCI struct { - Dev uint16 - Channel uint16 - raw RawSockaddrHCI -} - -func (sa *SockaddrHCI) sockaddr() (unsafe.Pointer, _Socklen, error) { - sa.raw.Family = AF_BLUETOOTH - sa.raw.Dev = sa.Dev - sa.raw.Channel = sa.Channel - return unsafe.Pointer(&sa.raw), SizeofSockaddrHCI, nil -} - -// SockaddrCAN implements the Sockaddr interface for AF_CAN type sockets. -// The RxID and TxID fields are used for transport protocol addressing in -// (CAN_TP16, CAN_TP20, CAN_MCNET, and CAN_ISOTP), they can be left with -// zero values for CAN_RAW and CAN_BCM sockets as they have no meaning. -// -// The SockaddrCAN struct must be bound to the socket file descriptor -// using Bind before the CAN socket can be used. -// -// // Read one raw CAN frame -// fd, _ := Socket(AF_CAN, SOCK_RAW, CAN_RAW) -// addr := &SockaddrCAN{Ifindex: index} -// Bind(fd, addr) -// frame := make([]byte, 16) -// Read(fd, frame) -// -// The full SocketCAN documentation can be found in the linux kernel -// archives at: https://www.kernel.org/doc/Documentation/networking/can.txt -type SockaddrCAN struct { - Ifindex int - RxID uint32 - TxID uint32 - raw RawSockaddrCAN -} - -func (sa *SockaddrCAN) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Ifindex < 0 || sa.Ifindex > 0x7fffffff { - return nil, 0, EINVAL - } - sa.raw.Family = AF_CAN - sa.raw.Ifindex = int32(sa.Ifindex) - rx := (*[4]byte)(unsafe.Pointer(&sa.RxID)) - for i := 0; i < 4; i++ { - sa.raw.Addr[i] = rx[i] - } - tx := (*[4]byte)(unsafe.Pointer(&sa.TxID)) - for i := 0; i < 4; i++ { - sa.raw.Addr[i+4] = tx[i] - } - return unsafe.Pointer(&sa.raw), SizeofSockaddrCAN, nil -} - -// SockaddrALG implements the Sockaddr interface for AF_ALG type sockets. -// SockaddrALG enables userspace access to the Linux kernel's cryptography -// subsystem. The Type and Name fields specify which type of hash or cipher -// should be used with a given socket. -// -// To create a file descriptor that provides access to a hash or cipher, both -// Bind and Accept must be used. Once the setup process is complete, input -// data can be written to the socket, processed by the kernel, and then read -// back as hash output or ciphertext. -// -// Here is an example of using an AF_ALG socket with SHA1 hashing. -// The initial socket setup process is as follows: -// -// // Open a socket to perform SHA1 hashing. -// fd, _ := unix.Socket(unix.AF_ALG, unix.SOCK_SEQPACKET, 0) -// addr := &unix.SockaddrALG{Type: "hash", Name: "sha1"} -// unix.Bind(fd, addr) -// // Note: unix.Accept does not work at this time; must invoke accept() -// // manually using unix.Syscall. -// hashfd, _, _ := unix.Syscall(unix.SYS_ACCEPT, uintptr(fd), 0, 0) -// -// Once a file descriptor has been returned from Accept, it may be used to -// perform SHA1 hashing. The descriptor is not safe for concurrent use, but -// may be re-used repeatedly with subsequent Write and Read operations. -// -// When hashing a small byte slice or string, a single Write and Read may -// be used: -// -// // Assume hashfd is already configured using the setup process. -// hash := os.NewFile(hashfd, "sha1") -// // Hash an input string and read the results. Each Write discards -// // previous hash state. Read always reads the current state. -// b := make([]byte, 20) -// for i := 0; i < 2; i++ { -// io.WriteString(hash, "Hello, world.") -// hash.Read(b) -// fmt.Println(hex.EncodeToString(b)) -// } -// // Output: -// // 2ae01472317d1935a84797ec1983ae243fc6aa28 -// // 2ae01472317d1935a84797ec1983ae243fc6aa28 -// -// For hashing larger byte slices, or byte streams such as those read from -// a file or socket, use Sendto with MSG_MORE to instruct the kernel to update -// the hash digest instead of creating a new one for a given chunk and finalizing it. -// -// // Assume hashfd and addr are already configured using the setup process. -// hash := os.NewFile(hashfd, "sha1") -// // Hash the contents of a file. -// f, _ := os.Open("/tmp/linux-4.10-rc7.tar.xz") -// b := make([]byte, 4096) -// for { -// n, err := f.Read(b) -// if err == io.EOF { -// break -// } -// unix.Sendto(hashfd, b[:n], unix.MSG_MORE, addr) -// } -// hash.Read(b) -// fmt.Println(hex.EncodeToString(b)) -// // Output: 85cdcad0c06eef66f805ecce353bec9accbeecc5 -// -// For more information, see: http://www.chronox.de/crypto-API/crypto/userspace-if.html. -type SockaddrALG struct { - Type string - Name string - Feature uint32 - Mask uint32 - raw RawSockaddrALG -} - -func (sa *SockaddrALG) sockaddr() (unsafe.Pointer, _Socklen, error) { - // Leave room for NUL byte terminator. - if len(sa.Type) > 13 { - return nil, 0, EINVAL - } - if len(sa.Name) > 63 { - return nil, 0, EINVAL - } - - sa.raw.Family = AF_ALG - sa.raw.Feat = sa.Feature - sa.raw.Mask = sa.Mask - - typ, err := ByteSliceFromString(sa.Type) - if err != nil { - return nil, 0, err - } - name, err := ByteSliceFromString(sa.Name) - if err != nil { - return nil, 0, err - } - - copy(sa.raw.Type[:], typ) - copy(sa.raw.Name[:], name) - - return unsafe.Pointer(&sa.raw), SizeofSockaddrALG, nil -} - -// SockaddrVM implements the Sockaddr interface for AF_VSOCK type sockets. -// SockaddrVM provides access to Linux VM sockets: a mechanism that enables -// bidirectional communication between a hypervisor and its guest virtual -// machines. -type SockaddrVM struct { - // CID and Port specify a context ID and port address for a VM socket. - // Guests have a unique CID, and hosts may have a well-known CID of: - // - VMADDR_CID_HYPERVISOR: refers to the hypervisor process. - // - VMADDR_CID_HOST: refers to other processes on the host. - CID uint32 - Port uint32 - raw RawSockaddrVM -} - -func (sa *SockaddrVM) sockaddr() (unsafe.Pointer, _Socklen, error) { - sa.raw.Family = AF_VSOCK - sa.raw.Port = sa.Port - sa.raw.Cid = sa.CID - - return unsafe.Pointer(&sa.raw), SizeofSockaddrVM, nil -} - -func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, error) { - switch rsa.Addr.Family { - case AF_NETLINK: - pp := (*RawSockaddrNetlink)(unsafe.Pointer(rsa)) - sa := new(SockaddrNetlink) - sa.Family = pp.Family - sa.Pad = pp.Pad - sa.Pid = pp.Pid - sa.Groups = pp.Groups - return sa, nil - - case AF_PACKET: - pp := (*RawSockaddrLinklayer)(unsafe.Pointer(rsa)) - sa := new(SockaddrLinklayer) - sa.Protocol = pp.Protocol - sa.Ifindex = int(pp.Ifindex) - sa.Hatype = pp.Hatype - sa.Pkttype = pp.Pkttype - sa.Halen = pp.Halen - for i := 0; i < len(sa.Addr); i++ { - sa.Addr[i] = pp.Addr[i] - } - return sa, nil - - case AF_UNIX: - pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa)) - sa := new(SockaddrUnix) - if pp.Path[0] == 0 { - // "Abstract" Unix domain socket. - // Rewrite leading NUL as @ for textual display. - // (This is the standard convention.) - // Not friendly to overwrite in place, - // but the callers below don't care. - pp.Path[0] = '@' - } - - // Assume path ends at NUL. - // This is not technically the Linux semantics for - // abstract Unix domain sockets--they are supposed - // to be uninterpreted fixed-size binary blobs--but - // everyone uses this convention. - n := 0 - for n < len(pp.Path) && pp.Path[n] != 0 { - n++ - } - bytes := (*[10000]byte)(unsafe.Pointer(&pp.Path[0]))[0:n] - sa.Name = string(bytes) - return sa, nil - - case AF_INET: - pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa)) - sa := new(SockaddrInet4) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - for i := 0; i < len(sa.Addr); i++ { - sa.Addr[i] = pp.Addr[i] - } - return sa, nil - - case AF_INET6: - pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa)) - sa := new(SockaddrInet6) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - sa.ZoneId = pp.Scope_id - for i := 0; i < len(sa.Addr); i++ { - sa.Addr[i] = pp.Addr[i] - } - return sa, nil - - case AF_VSOCK: - pp := (*RawSockaddrVM)(unsafe.Pointer(rsa)) - sa := &SockaddrVM{ - CID: pp.Cid, - Port: pp.Port, - } - return sa, nil - } - return nil, EAFNOSUPPORT -} - -func Accept(fd int) (nfd int, sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - nfd, err = accept(fd, &rsa, &len) - if err != nil { - return - } - sa, err = anyToSockaddr(&rsa) - if err != nil { - Close(nfd) - nfd = 0 - } - return -} - -func Accept4(fd int, flags int) (nfd int, sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - nfd, err = accept4(fd, &rsa, &len, flags) - if err != nil { - return - } - if len > SizeofSockaddrAny { - panic("RawSockaddrAny too small") - } - sa, err = anyToSockaddr(&rsa) - if err != nil { - Close(nfd) - nfd = 0 - } - return -} - -func Getsockname(fd int) (sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - if err = getsockname(fd, &rsa, &len); err != nil { - return - } - return anyToSockaddr(&rsa) -} - -func GetsockoptInet4Addr(fd, level, opt int) (value [4]byte, err error) { - vallen := _Socklen(4) - err = getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen) - return value, err -} - -func GetsockoptIPMreq(fd, level, opt int) (*IPMreq, error) { - var value IPMreq - vallen := _Socklen(SizeofIPMreq) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, err -} - -func GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, error) { - var value IPMreqn - vallen := _Socklen(SizeofIPMreqn) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, err -} - -func GetsockoptIPv6Mreq(fd, level, opt int) (*IPv6Mreq, error) { - var value IPv6Mreq - vallen := _Socklen(SizeofIPv6Mreq) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, err -} - -func GetsockoptIPv6MTUInfo(fd, level, opt int) (*IPv6MTUInfo, error) { - var value IPv6MTUInfo - vallen := _Socklen(SizeofIPv6MTUInfo) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, err -} - -func GetsockoptICMPv6Filter(fd, level, opt int) (*ICMPv6Filter, error) { - var value ICMPv6Filter - vallen := _Socklen(SizeofICMPv6Filter) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, err -} - -func GetsockoptUcred(fd, level, opt int) (*Ucred, error) { - var value Ucred - vallen := _Socklen(SizeofUcred) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, err -} - -func GetsockoptTCPInfo(fd, level, opt int) (*TCPInfo, error) { - var value TCPInfo - vallen := _Socklen(SizeofTCPInfo) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, err -} - -func SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) { - return setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq)) -} - -// Keyctl Commands (http://man7.org/linux/man-pages/man2/keyctl.2.html) - -// KeyctlInt calls keyctl commands in which each argument is an int. -// These commands are KEYCTL_REVOKE, KEYCTL_CHOWN, KEYCTL_CLEAR, KEYCTL_LINK, -// KEYCTL_UNLINK, KEYCTL_NEGATE, KEYCTL_SET_REQKEY_KEYRING, KEYCTL_SET_TIMEOUT, -// KEYCTL_ASSUME_AUTHORITY, KEYCTL_SESSION_TO_PARENT, KEYCTL_REJECT, -// KEYCTL_INVALIDATE, and KEYCTL_GET_PERSISTENT. -//sys KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) = SYS_KEYCTL - -// KeyctlBuffer calls keyctl commands in which the third and fourth -// arguments are a buffer and its length, respectively. -// These commands are KEYCTL_UPDATE, KEYCTL_READ, and KEYCTL_INSTANTIATE. -//sys KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) = SYS_KEYCTL - -// KeyctlString calls keyctl commands which return a string. -// These commands are KEYCTL_DESCRIBE and KEYCTL_GET_SECURITY. -func KeyctlString(cmd int, id int) (string, error) { - // We must loop as the string data may change in between the syscalls. - // We could allocate a large buffer here to reduce the chance that the - // syscall needs to be called twice; however, this is unnecessary as - // the performance loss is negligible. - var buffer []byte - for { - // Try to fill the buffer with data - length, err := KeyctlBuffer(cmd, id, buffer, 0) - if err != nil { - return "", err - } - - // Check if the data was written - if length <= len(buffer) { - // Exclude the null terminator - return string(buffer[:length-1]), nil - } - - // Make a bigger buffer if needed - buffer = make([]byte, length) - } -} - -// Keyctl commands with special signatures. - -// KeyctlGetKeyringID implements the KEYCTL_GET_KEYRING_ID command. -// See the full documentation at: -// http://man7.org/linux/man-pages/man3/keyctl_get_keyring_ID.3.html -func KeyctlGetKeyringID(id int, create bool) (ringid int, err error) { - createInt := 0 - if create { - createInt = 1 - } - return KeyctlInt(KEYCTL_GET_KEYRING_ID, id, createInt, 0, 0) -} - -// KeyctlSetperm implements the KEYCTL_SETPERM command. The perm value is the -// key handle permission mask as described in the "keyctl setperm" section of -// http://man7.org/linux/man-pages/man1/keyctl.1.html. -// See the full documentation at: -// http://man7.org/linux/man-pages/man3/keyctl_setperm.3.html -func KeyctlSetperm(id int, perm uint32) error { - _, err := KeyctlInt(KEYCTL_SETPERM, id, int(perm), 0, 0) - return err -} - -//sys keyctlJoin(cmd int, arg2 string) (ret int, err error) = SYS_KEYCTL - -// KeyctlJoinSessionKeyring implements the KEYCTL_JOIN_SESSION_KEYRING command. -// See the full documentation at: -// http://man7.org/linux/man-pages/man3/keyctl_join_session_keyring.3.html -func KeyctlJoinSessionKeyring(name string) (ringid int, err error) { - return keyctlJoin(KEYCTL_JOIN_SESSION_KEYRING, name) -} - -//sys keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) = SYS_KEYCTL - -// KeyctlSearch implements the KEYCTL_SEARCH command. -// See the full documentation at: -// http://man7.org/linux/man-pages/man3/keyctl_search.3.html -func KeyctlSearch(ringid int, keyType, description string, destRingid int) (id int, err error) { - return keyctlSearch(KEYCTL_SEARCH, ringid, keyType, description, destRingid) -} - -//sys keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) = SYS_KEYCTL - -// KeyctlInstantiateIOV implements the KEYCTL_INSTANTIATE_IOV command. This -// command is similar to KEYCTL_INSTANTIATE, except that the payload is a slice -// of Iovec (each of which represents a buffer) instead of a single buffer. -// See the full documentation at: -// http://man7.org/linux/man-pages/man3/keyctl_instantiate_iov.3.html -func KeyctlInstantiateIOV(id int, payload []Iovec, ringid int) error { - return keyctlIOV(KEYCTL_INSTANTIATE_IOV, id, payload, ringid) -} - -//sys keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) = SYS_KEYCTL - -// KeyctlDHCompute implements the KEYCTL_DH_COMPUTE command. This command -// computes a Diffie-Hellman shared secret based on the provide params. The -// secret is written to the provided buffer and the returned size is the number -// of bytes written (returning an error if there is insufficient space in the -// buffer). If a nil buffer is passed in, this function returns the minimum -// buffer length needed to store the appropriate data. Note that this differs -// from KEYCTL_READ's behavior which always returns the requested payload size. -// See the full documentation at: -// http://man7.org/linux/man-pages/man3/keyctl_dh_compute.3.html -func KeyctlDHCompute(params *KeyctlDHParams, buffer []byte) (size int, err error) { - return keyctlDH(KEYCTL_DH_COMPUTE, params, buffer) -} - -func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) { - var msg Msghdr - var rsa RawSockaddrAny - msg.Name = (*byte)(unsafe.Pointer(&rsa)) - msg.Namelen = uint32(SizeofSockaddrAny) - var iov Iovec - if len(p) > 0 { - iov.Base = (*byte)(unsafe.Pointer(&p[0])) - iov.SetLen(len(p)) - } - var dummy byte - if len(oob) > 0 { - var sockType int - sockType, err = GetsockoptInt(fd, SOL_SOCKET, SO_TYPE) - if err != nil { - return - } - // receive at least one normal byte - if sockType != SOCK_DGRAM && len(p) == 0 { - iov.Base = &dummy - iov.SetLen(1) - } - msg.Control = (*byte)(unsafe.Pointer(&oob[0])) - msg.SetControllen(len(oob)) - } - msg.Iov = &iov - msg.Iovlen = 1 - if n, err = recvmsg(fd, &msg, flags); err != nil { - return - } - oobn = int(msg.Controllen) - recvflags = int(msg.Flags) - // source address is only specified if the socket is unconnected - if rsa.Addr.Family != AF_UNSPEC { - from, err = anyToSockaddr(&rsa) - } - return -} - -func Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) (err error) { - _, err = SendmsgN(fd, p, oob, to, flags) - return -} - -func SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) { - var ptr unsafe.Pointer - var salen _Socklen - if to != nil { - var err error - ptr, salen, err = to.sockaddr() - if err != nil { - return 0, err - } - } - var msg Msghdr - msg.Name = (*byte)(unsafe.Pointer(ptr)) - msg.Namelen = uint32(salen) - var iov Iovec - if len(p) > 0 { - iov.Base = (*byte)(unsafe.Pointer(&p[0])) - iov.SetLen(len(p)) - } - var dummy byte - if len(oob) > 0 { - var sockType int - sockType, err = GetsockoptInt(fd, SOL_SOCKET, SO_TYPE) - if err != nil { - return 0, err - } - // send at least one normal byte - if sockType != SOCK_DGRAM && len(p) == 0 { - iov.Base = &dummy - iov.SetLen(1) - } - msg.Control = (*byte)(unsafe.Pointer(&oob[0])) - msg.SetControllen(len(oob)) - } - msg.Iov = &iov - msg.Iovlen = 1 - if n, err = sendmsg(fd, &msg, flags); err != nil { - return 0, err - } - if len(oob) > 0 && len(p) == 0 { - n = 0 - } - return n, nil -} - -// BindToDevice binds the socket associated with fd to device. -func BindToDevice(fd int, device string) (err error) { - return SetsockoptString(fd, SOL_SOCKET, SO_BINDTODEVICE, device) -} - -//sys ptrace(request int, pid int, addr uintptr, data uintptr) (err error) - -func ptracePeek(req int, pid int, addr uintptr, out []byte) (count int, err error) { - // The peek requests are machine-size oriented, so we wrap it - // to retrieve arbitrary-length data. - - // The ptrace syscall differs from glibc's ptrace. - // Peeks returns the word in *data, not as the return value. - - var buf [sizeofPtr]byte - - // Leading edge. PEEKTEXT/PEEKDATA don't require aligned - // access (PEEKUSER warns that it might), but if we don't - // align our reads, we might straddle an unmapped page - // boundary and not get the bytes leading up to the page - // boundary. - n := 0 - if addr%sizeofPtr != 0 { - err = ptrace(req, pid, addr-addr%sizeofPtr, uintptr(unsafe.Pointer(&buf[0]))) - if err != nil { - return 0, err - } - n += copy(out, buf[addr%sizeofPtr:]) - out = out[n:] - } - - // Remainder. - for len(out) > 0 { - // We use an internal buffer to guarantee alignment. - // It's not documented if this is necessary, but we're paranoid. - err = ptrace(req, pid, addr+uintptr(n), uintptr(unsafe.Pointer(&buf[0]))) - if err != nil { - return n, err - } - copied := copy(out, buf[0:]) - n += copied - out = out[copied:] - } - - return n, nil -} - -func PtracePeekText(pid int, addr uintptr, out []byte) (count int, err error) { - return ptracePeek(PTRACE_PEEKTEXT, pid, addr, out) -} - -func PtracePeekData(pid int, addr uintptr, out []byte) (count int, err error) { - return ptracePeek(PTRACE_PEEKDATA, pid, addr, out) -} - -func PtracePeekUser(pid int, addr uintptr, out []byte) (count int, err error) { - return ptracePeek(PTRACE_PEEKUSR, pid, addr, out) -} - -func ptracePoke(pokeReq int, peekReq int, pid int, addr uintptr, data []byte) (count int, err error) { - // As for ptracePeek, we need to align our accesses to deal - // with the possibility of straddling an invalid page. - - // Leading edge. - n := 0 - if addr%sizeofPtr != 0 { - var buf [sizeofPtr]byte - err = ptrace(peekReq, pid, addr-addr%sizeofPtr, uintptr(unsafe.Pointer(&buf[0]))) - if err != nil { - return 0, err - } - n += copy(buf[addr%sizeofPtr:], data) - word := *((*uintptr)(unsafe.Pointer(&buf[0]))) - err = ptrace(pokeReq, pid, addr-addr%sizeofPtr, word) - if err != nil { - return 0, err - } - data = data[n:] - } - - // Interior. - for len(data) > sizeofPtr { - word := *((*uintptr)(unsafe.Pointer(&data[0]))) - err = ptrace(pokeReq, pid, addr+uintptr(n), word) - if err != nil { - return n, err - } - n += sizeofPtr - data = data[sizeofPtr:] - } - - // Trailing edge. - if len(data) > 0 { - var buf [sizeofPtr]byte - err = ptrace(peekReq, pid, addr+uintptr(n), uintptr(unsafe.Pointer(&buf[0]))) - if err != nil { - return n, err - } - copy(buf[0:], data) - word := *((*uintptr)(unsafe.Pointer(&buf[0]))) - err = ptrace(pokeReq, pid, addr+uintptr(n), word) - if err != nil { - return n, err - } - n += len(data) - } - - return n, nil -} - -func PtracePokeText(pid int, addr uintptr, data []byte) (count int, err error) { - return ptracePoke(PTRACE_POKETEXT, PTRACE_PEEKTEXT, pid, addr, data) -} - -func PtracePokeData(pid int, addr uintptr, data []byte) (count int, err error) { - return ptracePoke(PTRACE_POKEDATA, PTRACE_PEEKDATA, pid, addr, data) -} - -func PtraceGetRegs(pid int, regsout *PtraceRegs) (err error) { - return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout))) -} - -func PtraceSetRegs(pid int, regs *PtraceRegs) (err error) { - return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs))) -} - -func PtraceSetOptions(pid int, options int) (err error) { - return ptrace(PTRACE_SETOPTIONS, pid, 0, uintptr(options)) -} - -func PtraceGetEventMsg(pid int) (msg uint, err error) { - var data _C_long - err = ptrace(PTRACE_GETEVENTMSG, pid, 0, uintptr(unsafe.Pointer(&data))) - msg = uint(data) - return -} - -func PtraceCont(pid int, signal int) (err error) { - return ptrace(PTRACE_CONT, pid, 0, uintptr(signal)) -} - -func PtraceSyscall(pid int, signal int) (err error) { - return ptrace(PTRACE_SYSCALL, pid, 0, uintptr(signal)) -} - -func PtraceSingleStep(pid int) (err error) { return ptrace(PTRACE_SINGLESTEP, pid, 0, 0) } - -func PtraceAttach(pid int) (err error) { return ptrace(PTRACE_ATTACH, pid, 0, 0) } - -func PtraceDetach(pid int) (err error) { return ptrace(PTRACE_DETACH, pid, 0, 0) } - -//sys reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) - -func Reboot(cmd int) (err error) { - return reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, cmd, "") -} - -func ReadDirent(fd int, buf []byte) (n int, err error) { - return Getdents(fd, buf) -} - -func direntIno(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino)) -} - -func direntReclen(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) -} - -func direntNamlen(buf []byte) (uint64, bool) { - reclen, ok := direntReclen(buf) - if !ok { - return 0, false - } - return reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true -} - -//sys mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) - -func Mount(source string, target string, fstype string, flags uintptr, data string) (err error) { - // Certain file systems get rather angry and EINVAL if you give - // them an empty string of data, rather than NULL. - if data == "" { - return mount(source, target, fstype, flags, nil) - } - datap, err := BytePtrFromString(data) - if err != nil { - return err - } - return mount(source, target, fstype, flags, datap) -} - -// Sendto -// Recvfrom -// Socketpair - -/* - * Direct access - */ -//sys Acct(path string) (err error) -//sys AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) -//sys Adjtimex(buf *Timex) (state int, err error) -//sys Chdir(path string) (err error) -//sys Chroot(path string) (err error) -//sys ClockGettime(clockid int32, time *Timespec) (err error) -//sys Close(fd int) (err error) -//sys CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) -//sys Dup(oldfd int) (fd int, err error) -//sys Dup3(oldfd int, newfd int, flags int) (err error) -//sysnb EpollCreate(size int) (fd int, err error) -//sysnb EpollCreate1(flag int) (fd int, err error) -//sysnb EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) -//sys Eventfd(initval uint, flags int) (fd int, err error) = SYS_EVENTFD2 -//sys Exit(code int) = SYS_EXIT_GROUP -//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) -//sys Fallocate(fd int, mode uint32, off int64, len int64) (err error) -//sys Fchdir(fd int) (err error) -//sys Fchmod(fd int, mode uint32) (err error) -//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) -//sys fcntl(fd int, cmd int, arg int) (val int, err error) -//sys Fdatasync(fd int) (err error) -//sys Flock(fd int, how int) (err error) -//sys Fsync(fd int) (err error) -//sys Getdents(fd int, buf []byte) (n int, err error) = SYS_GETDENTS64 -//sysnb Getpgid(pid int) (pgid int, err error) - -func Getpgrp() (pid int) { - pid, _ = Getpgid(0) - return -} - -//sysnb Getpid() (pid int) -//sysnb Getppid() (ppid int) -//sys Getpriority(which int, who int) (prio int, err error) -//sys Getrandom(buf []byte, flags int) (n int, err error) -//sysnb Getrusage(who int, rusage *Rusage) (err error) -//sysnb Getsid(pid int) (sid int, err error) -//sysnb Gettid() (tid int) -//sys Getxattr(path string, attr string, dest []byte) (sz int, err error) -//sys InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) -//sysnb InotifyInit1(flags int) (fd int, err error) -//sysnb InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) -//sysnb Kill(pid int, sig syscall.Signal) (err error) -//sys Klogctl(typ int, buf []byte) (n int, err error) = SYS_SYSLOG -//sys Lgetxattr(path string, attr string, dest []byte) (sz int, err error) -//sys Listxattr(path string, dest []byte) (sz int, err error) -//sys Llistxattr(path string, dest []byte) (sz int, err error) -//sys Lremovexattr(path string, attr string) (err error) -//sys Lsetxattr(path string, attr string, data []byte, flags int) (err error) -//sys Mkdirat(dirfd int, path string, mode uint32) (err error) -//sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error) -//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) -//sys PivotRoot(newroot string, putold string) (err error) = SYS_PIVOT_ROOT -//sysnb prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) = SYS_PRLIMIT64 -//sys Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) -//sys read(fd int, p []byte) (n int, err error) -//sys Removexattr(path string, attr string) (err error) -//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) -//sys RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) -//sys Setdomainname(p []byte) (err error) -//sys Sethostname(p []byte) (err error) -//sysnb Setpgid(pid int, pgid int) (err error) -//sysnb Setsid() (pid int, err error) -//sysnb Settimeofday(tv *Timeval) (err error) -//sys Setns(fd int, nstype int) (err error) - -// issue 1435. -// On linux Setuid and Setgid only affects the current thread, not the process. -// This does not match what most callers expect so we must return an error -// here rather than letting the caller think that the call succeeded. - -func Setuid(uid int) (err error) { - return EOPNOTSUPP -} - -func Setgid(uid int) (err error) { - return EOPNOTSUPP -} - -//sys Setpriority(which int, who int, prio int) (err error) -//sys Setxattr(path string, attr string, data []byte, flags int) (err error) -//sys Sync() -//sys Syncfs(fd int) (err error) -//sysnb Sysinfo(info *Sysinfo_t) (err error) -//sys Tee(rfd int, wfd int, len int, flags int) (n int64, err error) -//sysnb Tgkill(tgid int, tid int, sig syscall.Signal) (err error) -//sysnb Times(tms *Tms) (ticks uintptr, err error) -//sysnb Umask(mask int) (oldmask int) -//sysnb Uname(buf *Utsname) (err error) -//sys Unmount(target string, flags int) (err error) = SYS_UMOUNT2 -//sys Unshare(flags int) (err error) -//sys Ustat(dev int, ubuf *Ustat_t) (err error) -//sys write(fd int, p []byte) (n int, err error) -//sys exitThread(code int) (err error) = SYS_EXIT -//sys readlen(fd int, p *byte, np int) (n int, err error) = SYS_READ -//sys writelen(fd int, p *byte, np int) (n int, err error) = SYS_WRITE - -// mmap varies by architecture; see syscall_linux_*.go. -//sys munmap(addr uintptr, length uintptr) (err error) - -var mapper = &mmapper{ - active: make(map[*byte][]byte), - mmap: mmap, - munmap: munmap, -} - -func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { - return mapper.Mmap(fd, offset, length, prot, flags) -} - -func Munmap(b []byte) (err error) { - return mapper.Munmap(b) -} - -//sys Madvise(b []byte, advice int) (err error) -//sys Mprotect(b []byte, prot int) (err error) -//sys Mlock(b []byte) (err error) -//sys Mlockall(flags int) (err error) -//sys Msync(b []byte, flags int) (err error) -//sys Munlock(b []byte) (err error) -//sys Munlockall() (err error) - -// Vmsplice splices user pages from a slice of Iovecs into a pipe specified by fd, -// using the specified flags. -func Vmsplice(fd int, iovs []Iovec, flags int) (int, error) { - n, _, errno := Syscall6( - SYS_VMSPLICE, - uintptr(fd), - uintptr(unsafe.Pointer(&iovs[0])), - uintptr(len(iovs)), - uintptr(flags), - 0, - 0, - ) - if errno != 0 { - return 0, syscall.Errno(errno) - } - - return int(n), nil -} - -/* - * Unimplemented - */ -// AfsSyscall -// Alarm -// ArchPrctl -// Brk -// Capget -// Capset -// ClockGetres -// ClockNanosleep -// ClockSettime -// Clone -// CreateModule -// DeleteModule -// EpollCtlOld -// EpollPwait -// EpollWaitOld -// Execve -// Fgetxattr -// Flistxattr -// Fork -// Fremovexattr -// Fsetxattr -// Futex -// GetKernelSyms -// GetMempolicy -// GetRobustList -// GetThreadArea -// Getitimer -// Getpmsg -// IoCancel -// IoDestroy -// IoGetevents -// IoSetup -// IoSubmit -// IoprioGet -// IoprioSet -// KexecLoad -// LookupDcookie -// Mbind -// MigratePages -// Mincore -// ModifyLdt -// Mount -// MovePages -// MqGetsetattr -// MqNotify -// MqOpen -// MqTimedreceive -// MqTimedsend -// MqUnlink -// Mremap -// Msgctl -// Msgget -// Msgrcv -// Msgsnd -// Newfstatat -// Nfsservctl -// Personality -// Pselect6 -// Ptrace -// Putpmsg -// QueryModule -// Quotactl -// Readahead -// Readv -// RemapFilePages -// RestartSyscall -// RtSigaction -// RtSigpending -// RtSigprocmask -// RtSigqueueinfo -// RtSigreturn -// RtSigsuspend -// RtSigtimedwait -// SchedGetPriorityMax -// SchedGetPriorityMin -// SchedGetaffinity -// SchedGetparam -// SchedGetscheduler -// SchedRrGetInterval -// SchedSetaffinity -// SchedSetparam -// SchedYield -// Security -// Semctl -// Semget -// Semop -// Semtimedop -// SetMempolicy -// SetRobustList -// SetThreadArea -// SetTidAddress -// Shmat -// Shmctl -// Shmdt -// Shmget -// Sigaltstack -// Signalfd -// Swapoff -// Swapon -// Sysfs -// TimerCreate -// TimerDelete -// TimerGetoverrun -// TimerGettime -// TimerSettime -// Timerfd -// Tkill (obsolete) -// Tuxcall -// Umount2 -// Uselib -// Utimensat -// Vfork -// Vhangup -// Vserver -// Waitid -// _Sysctl diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_386.go b/vendor/golang.org/x/sys/unix/syscall_linux_386.go deleted file mode 100644 index 2b881b9..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_386.go +++ /dev/null @@ -1,399 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// TODO(rsc): Rewrite all nn(SP) references into name+(nn-8)(FP) -// so that go vet can check that they are correct. - -// +build 386,linux - -package unix - -import ( - "syscall" - "unsafe" -) - -func Getpagesize() int { return 4096 } - -func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } - -func NsecToTimespec(nsec int64) (ts Timespec) { - ts.Sec = int32(nsec / 1e9) - ts.Nsec = int32(nsec % 1e9) - return -} - -func NsecToTimeval(nsec int64) (tv Timeval) { - nsec += 999 // round up to microsecond - tv.Sec = int32(nsec / 1e9) - tv.Usec = int32(nsec % 1e9 / 1e3) - return -} - -//sysnb pipe(p *[2]_C_int) (err error) - -func Pipe(p []int) (err error) { - if len(p) != 2 { - return EINVAL - } - var pp [2]_C_int - err = pipe(&pp) - p[0] = int(pp[0]) - p[1] = int(pp[1]) - return -} - -//sysnb pipe2(p *[2]_C_int, flags int) (err error) - -func Pipe2(p []int, flags int) (err error) { - if len(p) != 2 { - return EINVAL - } - var pp [2]_C_int - err = pipe2(&pp, flags) - p[0] = int(pp[0]) - p[1] = int(pp[1]) - return -} - -// 64-bit file system and 32-bit uid calls -// (386 default is 32-bit file system and 16-bit uid). -//sys Dup2(oldfd int, newfd int) (err error) -//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64_64 -//sys Fchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32 -//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 -//sys Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64 -//sysnb Getegid() (egid int) = SYS_GETEGID32 -//sysnb Geteuid() (euid int) = SYS_GETEUID32 -//sysnb Getgid() (gid int) = SYS_GETGID32 -//sysnb Getuid() (uid int) = SYS_GETUID32 -//sysnb InotifyInit() (fd int, err error) -//sys Ioperm(from int, num int, on int) (err error) -//sys Iopl(level int) (err error) -//sys Lchown(path string, uid int, gid int) (err error) = SYS_LCHOWN32 -//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 -//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 -//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 -//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64 -//sys Setfsgid(gid int) (err error) = SYS_SETFSGID32 -//sys Setfsuid(uid int) (err error) = SYS_SETFSUID32 -//sysnb Setregid(rgid int, egid int) (err error) = SYS_SETREGID32 -//sysnb Setresgid(rgid int, egid int, sgid int) (err error) = SYS_SETRESGID32 -//sysnb Setresuid(ruid int, euid int, suid int) (err error) = SYS_SETRESUID32 -//sysnb Setreuid(ruid int, euid int) (err error) = SYS_SETREUID32 -//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) -//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 -//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) -//sys Truncate(path string, length int64) (err error) = SYS_TRUNCATE64 -//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) = SYS_GETGROUPS32 -//sysnb setgroups(n int, list *_Gid_t) (err error) = SYS_SETGROUPS32 -//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT - -//sys mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) -//sys Pause() (err error) - -func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - page := uintptr(offset / 4096) - if offset != int64(page)*4096 { - return 0, EINVAL - } - return mmap2(addr, length, prot, flags, fd, page) -} - -type rlimit32 struct { - Cur uint32 - Max uint32 -} - -//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_GETRLIMIT - -const rlimInf32 = ^uint32(0) -const rlimInf64 = ^uint64(0) - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - err = prlimit(0, resource, nil, rlim) - if err != ENOSYS { - return err - } - - rl := rlimit32{} - err = getrlimit(resource, &rl) - if err != nil { - return - } - - if rl.Cur == rlimInf32 { - rlim.Cur = rlimInf64 - } else { - rlim.Cur = uint64(rl.Cur) - } - - if rl.Max == rlimInf32 { - rlim.Max = rlimInf64 - } else { - rlim.Max = uint64(rl.Max) - } - return -} - -//sysnb setrlimit(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT - -func Setrlimit(resource int, rlim *Rlimit) (err error) { - err = prlimit(0, resource, rlim, nil) - if err != ENOSYS { - return err - } - - rl := rlimit32{} - if rlim.Cur == rlimInf64 { - rl.Cur = rlimInf32 - } else if rlim.Cur < uint64(rlimInf32) { - rl.Cur = uint32(rlim.Cur) - } else { - return EINVAL - } - if rlim.Max == rlimInf64 { - rl.Max = rlimInf32 - } else if rlim.Max < uint64(rlimInf32) { - rl.Max = uint32(rlim.Max) - } else { - return EINVAL - } - - return setrlimit(resource, &rl) -} - -// Underlying system call writes to newoffset via pointer. -// Implemented in assembly to avoid allocation. -func seek(fd int, offset int64, whence int) (newoffset int64, err syscall.Errno) - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - newoffset, errno := seek(fd, offset, whence) - if errno != 0 { - return 0, errno - } - return newoffset, nil -} - -// Vsyscalls on amd64. -//sysnb Gettimeofday(tv *Timeval) (err error) -//sysnb Time(t *Time_t) (tt Time_t, err error) - -//sys Utime(path string, buf *Utimbuf) (err error) - -// On x86 Linux, all the socket calls go through an extra indirection, -// I think because the 5-register system call interface can't handle -// the 6-argument calls like sendto and recvfrom. Instead the -// arguments to the underlying system call are the number below -// and a pointer to an array of uintptr. We hide the pointer in the -// socketcall assembly to avoid allocation on every system call. - -const ( - // see linux/net.h - _SOCKET = 1 - _BIND = 2 - _CONNECT = 3 - _LISTEN = 4 - _ACCEPT = 5 - _GETSOCKNAME = 6 - _GETPEERNAME = 7 - _SOCKETPAIR = 8 - _SEND = 9 - _RECV = 10 - _SENDTO = 11 - _RECVFROM = 12 - _SHUTDOWN = 13 - _SETSOCKOPT = 14 - _GETSOCKOPT = 15 - _SENDMSG = 16 - _RECVMSG = 17 - _ACCEPT4 = 18 - _RECVMMSG = 19 - _SENDMMSG = 20 -) - -func socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err syscall.Errno) -func rawsocketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err syscall.Errno) - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - fd, e := socketcall(_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0) - if e != 0 { - err = e - } - return -} - -func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - fd, e := socketcall(_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - if e != 0 { - err = e - } - return -} - -func getsockname(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, e := rawsocketcall(_GETSOCKNAME, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0) - if e != 0 { - err = e - } - return -} - -func getpeername(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, e := rawsocketcall(_GETPEERNAME, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0) - if e != 0 { - err = e - } - return -} - -func socketpair(domain int, typ int, flags int, fd *[2]int32) (err error) { - _, e := rawsocketcall(_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(flags), uintptr(unsafe.Pointer(fd)), 0, 0) - if e != 0 { - err = e - } - return -} - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, e := socketcall(_BIND, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0) - if e != 0 { - err = e - } - return -} - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, e := socketcall(_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0) - if e != 0 { - err = e - } - return -} - -func socket(domain int, typ int, proto int) (fd int, err error) { - fd, e := rawsocketcall(_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto), 0, 0, 0) - if e != 0 { - err = e - } - return -} - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, e := socketcall(_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e != 0 { - err = e - } - return -} - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, e := socketcall(_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), vallen, 0) - if e != 0 { - err = e - } - return -} - -func recvfrom(s int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var base uintptr - if len(p) > 0 { - base = uintptr(unsafe.Pointer(&p[0])) - } - n, e := socketcall(_RECVFROM, uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - if e != 0 { - err = e - } - return -} - -func sendto(s int, p []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var base uintptr - if len(p) > 0 { - base = uintptr(unsafe.Pointer(&p[0])) - } - _, e := socketcall(_SENDTO, uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e != 0 { - err = e - } - return -} - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - n, e := socketcall(_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0) - if e != 0 { - err = e - } - return -} - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - n, e := socketcall(_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0) - if e != 0 { - err = e - } - return -} - -func Listen(s int, n int) (err error) { - _, e := socketcall(_LISTEN, uintptr(s), uintptr(n), 0, 0, 0, 0) - if e != 0 { - err = e - } - return -} - -func Shutdown(s, how int) (err error) { - _, e := socketcall(_SHUTDOWN, uintptr(s), uintptr(how), 0, 0, 0, 0) - if e != 0 { - err = e - } - return -} - -func Fstatfs(fd int, buf *Statfs_t) (err error) { - _, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) - if e != 0 { - err = e - } - return -} - -func Statfs(path string, buf *Statfs_t) (err error) { - pathp, err := BytePtrFromString(path) - if err != nil { - return err - } - _, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(pathp)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) - if e != 0 { - err = e - } - return -} - -func (r *PtraceRegs) PC() uint64 { return uint64(uint32(r.Eip)) } - -func (r *PtraceRegs) SetPC(pc uint64) { r.Eip = int32(pc) } - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) - -func Poll(fds []PollFd, timeout int) (n int, err error) { - if len(fds) == 0 { - return poll(nil, 0, timeout) - } - return poll(&fds[0], len(fds), timeout) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go b/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go deleted file mode 100644 index 9516a3f..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go +++ /dev/null @@ -1,152 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build amd64,linux - -package unix - -//sys Dup2(oldfd int, newfd int) (err error) -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) -//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Fstat(fd int, stat *Stat_t) (err error) -//sys Fstatfs(fd int, buf *Statfs_t) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (euid int) -//sysnb Getgid() (gid int) -//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) -//sysnb Getuid() (uid int) -//sysnb InotifyInit() (fd int, err error) -//sys Ioperm(from int, num int, on int) (err error) -//sys Iopl(level int) (err error) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Listen(s int, n int) (err error) -//sys Lstat(path string, stat *Stat_t) (err error) -//sys Pause() (err error) -//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 -//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 -//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK -//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) -//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -//sys Setfsgid(gid int) (err error) -//sys Setfsuid(uid int) (err error) -//sysnb Setregid(rgid int, egid int) (err error) -//sysnb Setresgid(rgid int, egid int, sgid int) (err error) -//sysnb Setresuid(ruid int, euid int, suid int) (err error) -//sysnb Setrlimit(resource int, rlim *Rlimit) (err error) -//sysnb Setreuid(ruid int, euid int) (err error) -//sys Shutdown(fd int, how int) (err error) -//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) -//sys Stat(path string, stat *Stat_t) (err error) -//sys Statfs(path string, buf *Statfs_t) (err error) -//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) -//sys Truncate(path string, length int64) (err error) -//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) -//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) -//sysnb setgroups(n int, list *_Gid_t) (err error) -//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) -//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) -//sysnb socket(domain int, typ int, proto int) (fd int, err error) -//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) -//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) -//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) -//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) - -func Gettimeofday(tv *Timeval) (err error) { - errno := gettimeofday(tv) - if errno != 0 { - return errno - } - return nil -} - -func Getpagesize() int { return 4096 } - -func Time(t *Time_t) (tt Time_t, err error) { - var tv Timeval - errno := gettimeofday(&tv) - if errno != 0 { - return 0, errno - } - if t != nil { - *t = Time_t(tv.Sec) - } - return Time_t(tv.Sec), nil -} - -//sys Utime(path string, buf *Utimbuf) (err error) - -func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } - -func NsecToTimespec(nsec int64) (ts Timespec) { - ts.Sec = nsec / 1e9 - ts.Nsec = nsec % 1e9 - return -} - -func NsecToTimeval(nsec int64) (tv Timeval) { - nsec += 999 // round up to microsecond - tv.Sec = nsec / 1e9 - tv.Usec = nsec % 1e9 / 1e3 - return -} - -//sysnb pipe(p *[2]_C_int) (err error) - -func Pipe(p []int) (err error) { - if len(p) != 2 { - return EINVAL - } - var pp [2]_C_int - err = pipe(&pp) - p[0] = int(pp[0]) - p[1] = int(pp[1]) - return -} - -//sysnb pipe2(p *[2]_C_int, flags int) (err error) - -func Pipe2(p []int, flags int) (err error) { - if len(p) != 2 { - return EINVAL - } - var pp [2]_C_int - err = pipe2(&pp, flags) - p[0] = int(pp[0]) - p[1] = int(pp[1]) - return -} - -func (r *PtraceRegs) PC() uint64 { return r.Rip } - -func (r *PtraceRegs) SetPC(pc uint64) { r.Rip = pc } - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint64(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint64(length) -} - -//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) - -func Poll(fds []PollFd, timeout int) (n int, err error) { - if len(fds) == 0 { - return poll(nil, 0, timeout) - } - return poll(&fds[0], len(fds), timeout) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go b/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go deleted file mode 100644 index 21a4946..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build amd64,linux -// +build !gccgo - -package unix - -import "syscall" - -//go:noescape -func gettimeofday(tv *Timeval) (err syscall.Errno) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_arm.go b/vendor/golang.org/x/sys/unix/syscall_linux_arm.go deleted file mode 100644 index 71d8702..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_arm.go +++ /dev/null @@ -1,263 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build arm,linux - -package unix - -import ( - "syscall" - "unsafe" -) - -func Getpagesize() int { return 4096 } - -func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } - -func NsecToTimespec(nsec int64) (ts Timespec) { - ts.Sec = int32(nsec / 1e9) - ts.Nsec = int32(nsec % 1e9) - return -} - -func NsecToTimeval(nsec int64) (tv Timeval) { - nsec += 999 // round up to microsecond - tv.Sec = int32(nsec / 1e9) - tv.Usec = int32(nsec % 1e9 / 1e3) - return -} - -func Pipe(p []int) (err error) { - if len(p) != 2 { - return EINVAL - } - var pp [2]_C_int - err = pipe2(&pp, 0) - p[0] = int(pp[0]) - p[1] = int(pp[1]) - return -} - -//sysnb pipe2(p *[2]_C_int, flags int) (err error) - -func Pipe2(p []int, flags int) (err error) { - if len(p) != 2 { - return EINVAL - } - var pp [2]_C_int - err = pipe2(&pp, flags) - p[0] = int(pp[0]) - p[1] = int(pp[1]) - return -} - -// Underlying system call writes to newoffset via pointer. -// Implemented in assembly to avoid allocation. -func seek(fd int, offset int64, whence int) (newoffset int64, err syscall.Errno) - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - newoffset, errno := seek(fd, offset, whence) - if errno != 0 { - return 0, errno - } - return newoffset, nil -} - -//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) -//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) = SYS_GETGROUPS32 -//sysnb setgroups(n int, list *_Gid_t) (err error) = SYS_SETGROUPS32 -//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) -//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) -//sysnb socket(domain int, typ int, proto int) (fd int, err error) -//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) -//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) -//sysnb socketpair(domain int, typ int, flags int, fd *[2]int32) (err error) -//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) - -// 64-bit file system and 32-bit uid calls -// (16-bit uid calls are not always supported in newer kernels) -//sys Dup2(oldfd int, newfd int) (err error) -//sys Fchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32 -//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 -//sysnb Getegid() (egid int) = SYS_GETEGID32 -//sysnb Geteuid() (euid int) = SYS_GETEUID32 -//sysnb Getgid() (gid int) = SYS_GETGID32 -//sysnb Getuid() (uid int) = SYS_GETUID32 -//sysnb InotifyInit() (fd int, err error) -//sys Lchown(path string, uid int, gid int) (err error) = SYS_LCHOWN32 -//sys Listen(s int, n int) (err error) -//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 -//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64 -//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT -//sys Setfsgid(gid int) (err error) = SYS_SETFSGID32 -//sys Setfsuid(uid int) (err error) = SYS_SETFSUID32 -//sysnb Setregid(rgid int, egid int) (err error) = SYS_SETREGID32 -//sysnb Setresgid(rgid int, egid int, sgid int) (err error) = SYS_SETRESGID32 -//sysnb Setresuid(ruid int, euid int, suid int) (err error) = SYS_SETRESUID32 -//sysnb Setreuid(ruid int, euid int) (err error) = SYS_SETREUID32 -//sys Shutdown(fd int, how int) (err error) -//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) -//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 - -// Vsyscalls on amd64. -//sysnb Gettimeofday(tv *Timeval) (err error) -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) -//sys Pause() (err error) - -func Time(t *Time_t) (Time_t, error) { - var tv Timeval - err := Gettimeofday(&tv) - if err != nil { - return 0, err - } - if t != nil { - *t = Time_t(tv.Sec) - } - return Time_t(tv.Sec), nil -} - -func Utime(path string, buf *Utimbuf) error { - tv := []Timeval{ - {Sec: buf.Actime}, - {Sec: buf.Modtime}, - } - return Utimes(path, tv) -} - -//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 -//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 -//sys Truncate(path string, length int64) (err error) = SYS_TRUNCATE64 -//sys Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64 - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_ARM_FADVISE64_64, uintptr(fd), uintptr(advice), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -//sys mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) - -func Fstatfs(fd int, buf *Statfs_t) (err error) { - _, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) - if e != 0 { - err = e - } - return -} - -func Statfs(path string, buf *Statfs_t) (err error) { - pathp, err := BytePtrFromString(path) - if err != nil { - return err - } - _, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(pathp)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) - if e != 0 { - err = e - } - return -} - -func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - page := uintptr(offset / 4096) - if offset != int64(page)*4096 { - return 0, EINVAL - } - return mmap2(addr, length, prot, flags, fd, page) -} - -type rlimit32 struct { - Cur uint32 - Max uint32 -} - -//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_UGETRLIMIT - -const rlimInf32 = ^uint32(0) -const rlimInf64 = ^uint64(0) - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - err = prlimit(0, resource, nil, rlim) - if err != ENOSYS { - return err - } - - rl := rlimit32{} - err = getrlimit(resource, &rl) - if err != nil { - return - } - - if rl.Cur == rlimInf32 { - rlim.Cur = rlimInf64 - } else { - rlim.Cur = uint64(rl.Cur) - } - - if rl.Max == rlimInf32 { - rlim.Max = rlimInf64 - } else { - rlim.Max = uint64(rl.Max) - } - return -} - -//sysnb setrlimit(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT - -func Setrlimit(resource int, rlim *Rlimit) (err error) { - err = prlimit(0, resource, rlim, nil) - if err != ENOSYS { - return err - } - - rl := rlimit32{} - if rlim.Cur == rlimInf64 { - rl.Cur = rlimInf32 - } else if rlim.Cur < uint64(rlimInf32) { - rl.Cur = uint32(rlim.Cur) - } else { - return EINVAL - } - if rlim.Max == rlimInf64 { - rl.Max = rlimInf32 - } else if rlim.Max < uint64(rlimInf32) { - rl.Max = uint32(rlim.Max) - } else { - return EINVAL - } - - return setrlimit(resource, &rl) -} - -func (r *PtraceRegs) PC() uint64 { return uint64(r.Uregs[15]) } - -func (r *PtraceRegs) SetPC(pc uint64) { r.Uregs[15] = uint32(pc) } - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) - -func Poll(fds []PollFd, timeout int) (n int, err error) { - if len(fds) == 0 { - return poll(nil, 0, timeout) - } - return poll(&fds[0], len(fds), timeout) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go b/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go deleted file mode 100644 index 4a13639..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go +++ /dev/null @@ -1,190 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build arm64,linux - -package unix - -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Fstat(fd int, stat *Stat_t) (err error) -//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) -//sys Fstatfs(fd int, buf *Statfs_t) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (euid int) -//sysnb Getgid() (gid int) -//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) -//sysnb Getuid() (uid int) -//sys Listen(s int, n int) (err error) -//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 -//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 -//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK -//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS_PSELECT6 -//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -//sys Setfsgid(gid int) (err error) -//sys Setfsuid(uid int) (err error) -//sysnb Setregid(rgid int, egid int) (err error) -//sysnb Setresgid(rgid int, egid int, sgid int) (err error) -//sysnb Setresuid(ruid int, euid int, suid int) (err error) -//sysnb Setrlimit(resource int, rlim *Rlimit) (err error) -//sysnb Setreuid(ruid int, euid int) (err error) -//sys Shutdown(fd int, how int) (err error) -//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) - -func Stat(path string, stat *Stat_t) (err error) { - return Fstatat(AT_FDCWD, path, stat, 0) -} - -func Lchown(path string, uid int, gid int) (err error) { - return Fchownat(AT_FDCWD, path, uid, gid, AT_SYMLINK_NOFOLLOW) -} - -func Lstat(path string, stat *Stat_t) (err error) { - return Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW) -} - -//sys Statfs(path string, buf *Statfs_t) (err error) -//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) -//sys Truncate(path string, length int64) (err error) -//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) -//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) -//sysnb setgroups(n int, list *_Gid_t) (err error) -//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) -//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) -//sysnb socket(domain int, typ int, proto int) (fd int, err error) -//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) -//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) -//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) -//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) - -func Getpagesize() int { return 65536 } - -//sysnb Gettimeofday(tv *Timeval) (err error) - -func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } - -func NsecToTimespec(nsec int64) (ts Timespec) { - ts.Sec = nsec / 1e9 - ts.Nsec = nsec % 1e9 - return -} - -func NsecToTimeval(nsec int64) (tv Timeval) { - nsec += 999 // round up to microsecond - tv.Sec = nsec / 1e9 - tv.Usec = nsec % 1e9 / 1e3 - return -} - -func Time(t *Time_t) (Time_t, error) { - var tv Timeval - err := Gettimeofday(&tv) - if err != nil { - return 0, err - } - if t != nil { - *t = Time_t(tv.Sec) - } - return Time_t(tv.Sec), nil -} - -func Utime(path string, buf *Utimbuf) error { - tv := []Timeval{ - {Sec: buf.Actime}, - {Sec: buf.Modtime}, - } - return Utimes(path, tv) -} - -func Pipe(p []int) (err error) { - if len(p) != 2 { - return EINVAL - } - var pp [2]_C_int - err = pipe2(&pp, 0) - p[0] = int(pp[0]) - p[1] = int(pp[1]) - return -} - -//sysnb pipe2(p *[2]_C_int, flags int) (err error) - -func Pipe2(p []int, flags int) (err error) { - if len(p) != 2 { - return EINVAL - } - var pp [2]_C_int - err = pipe2(&pp, flags) - p[0] = int(pp[0]) - p[1] = int(pp[1]) - return -} - -func (r *PtraceRegs) PC() uint64 { return r.Pc } - -func (r *PtraceRegs) SetPC(pc uint64) { r.Pc = pc } - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint64(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint64(length) -} - -func InotifyInit() (fd int, err error) { - return InotifyInit1(0) -} - -func Dup2(oldfd int, newfd int) (err error) { - return Dup3(oldfd, newfd, 0) -} - -func Pause() (err error) { - _, _, e1 := Syscall6(SYS_PPOLL, 0, 0, 0, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// TODO(dfc): constants that should be in zsysnum_linux_arm64.go, remove -// these when the deprecated syscalls that the syscall package relies on -// are removed. -const ( - SYS_GETPGRP = 1060 - SYS_UTIMES = 1037 - SYS_FUTIMESAT = 1066 - SYS_PAUSE = 1061 - SYS_USTAT = 1070 - SYS_UTIME = 1063 - SYS_LCHOWN = 1032 - SYS_TIME = 1062 - SYS_EPOLL_CREATE = 1042 - SYS_EPOLL_WAIT = 1069 -) - -func Poll(fds []PollFd, timeout int) (n int, err error) { - var ts *Timespec - if timeout >= 0 { - ts = new(Timespec) - *ts = NsecToTimespec(int64(timeout) * 1e6) - } - if len(fds) == 0 { - return ppoll(nil, 0, ts, nil) - } - return ppoll(&fds[0], len(fds), ts, nil) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go b/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go deleted file mode 100644 index 73318e5..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go +++ /dev/null @@ -1,209 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build linux -// +build mips64 mips64le - -package unix - -//sys Dup2(oldfd int, newfd int) (err error) -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Fstatfs(fd int, buf *Statfs_t) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (euid int) -//sysnb Getgid() (gid int) -//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) -//sysnb Getuid() (uid int) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Listen(s int, n int) (err error) -//sys Pause() (err error) -//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 -//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 -//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK -//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS_PSELECT6 -//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -//sys Setfsgid(gid int) (err error) -//sys Setfsuid(uid int) (err error) -//sysnb Setregid(rgid int, egid int) (err error) -//sysnb Setresgid(rgid int, egid int, sgid int) (err error) -//sysnb Setresuid(ruid int, euid int, suid int) (err error) -//sysnb Setrlimit(resource int, rlim *Rlimit) (err error) -//sysnb Setreuid(ruid int, euid int) (err error) -//sys Shutdown(fd int, how int) (err error) -//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) -//sys Statfs(path string, buf *Statfs_t) (err error) -//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) -//sys Truncate(path string, length int64) (err error) -//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) -//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) -//sysnb setgroups(n int, list *_Gid_t) (err error) -//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) -//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) -//sysnb socket(domain int, typ int, proto int) (fd int, err error) -//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) -//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) -//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) -//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) - -func Getpagesize() int { return 65536 } - -//sysnb Gettimeofday(tv *Timeval) (err error) - -func Time(t *Time_t) (tt Time_t, err error) { - var tv Timeval - err = Gettimeofday(&tv) - if err != nil { - return 0, err - } - if t != nil { - *t = Time_t(tv.Sec) - } - return Time_t(tv.Sec), nil -} - -//sys Utime(path string, buf *Utimbuf) (err error) - -func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } - -func NsecToTimespec(nsec int64) (ts Timespec) { - ts.Sec = nsec / 1e9 - ts.Nsec = nsec % 1e9 - return -} - -func NsecToTimeval(nsec int64) (tv Timeval) { - nsec += 999 // round up to microsecond - tv.Sec = nsec / 1e9 - tv.Usec = nsec % 1e9 / 1e3 - return -} - -func Pipe(p []int) (err error) { - if len(p) != 2 { - return EINVAL - } - var pp [2]_C_int - err = pipe2(&pp, 0) - p[0] = int(pp[0]) - p[1] = int(pp[1]) - return -} - -//sysnb pipe2(p *[2]_C_int, flags int) (err error) - -func Pipe2(p []int, flags int) (err error) { - if len(p) != 2 { - return EINVAL - } - var pp [2]_C_int - err = pipe2(&pp, flags) - p[0] = int(pp[0]) - p[1] = int(pp[1]) - return -} - -func Ioperm(from int, num int, on int) (err error) { - return ENOSYS -} - -func Iopl(level int) (err error) { - return ENOSYS -} - -type stat_t struct { - Dev uint32 - Pad0 [3]int32 - Ino uint64 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint32 - Pad1 [3]uint32 - Size int64 - Atime uint32 - Atime_nsec uint32 - Mtime uint32 - Mtime_nsec uint32 - Ctime uint32 - Ctime_nsec uint32 - Blksize uint32 - Pad2 uint32 - Blocks int64 -} - -//sys fstat(fd int, st *stat_t) (err error) -//sys lstat(path string, st *stat_t) (err error) -//sys stat(path string, st *stat_t) (err error) - -func Fstat(fd int, s *Stat_t) (err error) { - st := &stat_t{} - err = fstat(fd, st) - fillStat_t(s, st) - return -} - -func Lstat(path string, s *Stat_t) (err error) { - st := &stat_t{} - err = lstat(path, st) - fillStat_t(s, st) - return -} - -func Stat(path string, s *Stat_t) (err error) { - st := &stat_t{} - err = stat(path, st) - fillStat_t(s, st) - return -} - -func fillStat_t(s *Stat_t, st *stat_t) { - s.Dev = st.Dev - s.Ino = st.Ino - s.Mode = st.Mode - s.Nlink = st.Nlink - s.Uid = st.Uid - s.Gid = st.Gid - s.Rdev = st.Rdev - s.Size = st.Size - s.Atim = Timespec{int64(st.Atime), int64(st.Atime_nsec)} - s.Mtim = Timespec{int64(st.Mtime), int64(st.Mtime_nsec)} - s.Ctim = Timespec{int64(st.Ctime), int64(st.Ctime_nsec)} - s.Blksize = st.Blksize - s.Blocks = st.Blocks -} - -func (r *PtraceRegs) PC() uint64 { return r.Epc } - -func (r *PtraceRegs) SetPC(pc uint64) { r.Epc = pc } - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint64(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint64(length) -} - -//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) - -func Poll(fds []PollFd, timeout int) (n int, err error) { - if len(fds) == 0 { - return poll(nil, 0, timeout) - } - return poll(&fds[0], len(fds), timeout) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go b/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go deleted file mode 100644 index b83d93f..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go +++ /dev/null @@ -1,239 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build linux -// +build mips mipsle - -package unix - -import ( - "syscall" - "unsafe" -) - -func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) - -//sys Dup2(oldfd int, newfd int) (err error) -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64 -//sysnb Getegid() (egid int) -//sysnb Geteuid() (euid int) -//sysnb Getgid() (gid int) -//sysnb Getuid() (uid int) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Listen(s int, n int) (err error) -//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 -//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 -//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT -//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64 -//sys Setfsgid(gid int) (err error) -//sys Setfsuid(uid int) (err error) -//sysnb Setregid(rgid int, egid int) (err error) -//sysnb Setresgid(rgid int, egid int, sgid int) (err error) -//sysnb Setresuid(ruid int, euid int, suid int) (err error) - -//sysnb Setreuid(ruid int, euid int) (err error) -//sys Shutdown(fd int, how int) (err error) -//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) - -//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) -//sys Truncate(path string, length int64) (err error) = SYS_TRUNCATE64 -//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) -//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) -//sysnb setgroups(n int, list *_Gid_t) (err error) -//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) -//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) -//sysnb socket(domain int, typ int, proto int) (fd int, err error) -//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) -//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) -//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) -//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) - -//sysnb InotifyInit() (fd int, err error) -//sys Ioperm(from int, num int, on int) (err error) -//sys Iopl(level int) (err error) - -//sysnb Gettimeofday(tv *Timeval) (err error) -//sysnb Time(t *Time_t) (tt Time_t, err error) - -//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 -//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 -//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 - -//sys Utime(path string, buf *Utimbuf) (err error) -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) -//sys Pause() (err error) - -func Fstatfs(fd int, buf *Statfs_t) (err error) { - _, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) - if e != 0 { - err = errnoErr(e) - } - return -} - -func Statfs(path string, buf *Statfs_t) (err error) { - p, err := BytePtrFromString(path) - if err != nil { - return err - } - _, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(p)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) - if e != 0 { - err = errnoErr(e) - } - return -} - -func Seek(fd int, offset int64, whence int) (off int64, err error) { - _, _, e := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offset>>32), uintptr(offset), uintptr(unsafe.Pointer(&off)), uintptr(whence), 0) - if e != 0 { - err = errnoErr(e) - } - return -} - -func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } - -func NsecToTimespec(nsec int64) (ts Timespec) { - ts.Sec = int32(nsec / 1e9) - ts.Nsec = int32(nsec % 1e9) - return -} - -func NsecToTimeval(nsec int64) (tv Timeval) { - nsec += 999 // round up to microsecond - tv.Sec = int32(nsec / 1e9) - tv.Usec = int32(nsec % 1e9 / 1e3) - return -} - -//sysnb pipe2(p *[2]_C_int, flags int) (err error) - -func Pipe2(p []int, flags int) (err error) { - if len(p) != 2 { - return EINVAL - } - var pp [2]_C_int - err = pipe2(&pp, flags) - p[0] = int(pp[0]) - p[1] = int(pp[1]) - return -} - -func Pipe(p []int) (err error) { - if len(p) != 2 { - return EINVAL - } - var pp [2]_C_int - err = pipe2(&pp, 0) - p[0] = int(pp[0]) - p[1] = int(pp[1]) - return -} - -//sys mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) - -func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - page := uintptr(offset / 4096) - if offset != int64(page)*4096 { - return 0, EINVAL - } - return mmap2(addr, length, prot, flags, fd, page) -} - -const rlimInf32 = ^uint32(0) -const rlimInf64 = ^uint64(0) - -type rlimit32 struct { - Cur uint32 - Max uint32 -} - -//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_GETRLIMIT - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - err = prlimit(0, resource, nil, rlim) - if err != ENOSYS { - return err - } - - rl := rlimit32{} - err = getrlimit(resource, &rl) - if err != nil { - return - } - - if rl.Cur == rlimInf32 { - rlim.Cur = rlimInf64 - } else { - rlim.Cur = uint64(rl.Cur) - } - - if rl.Max == rlimInf32 { - rlim.Max = rlimInf64 - } else { - rlim.Max = uint64(rl.Max) - } - return -} - -//sysnb setrlimit(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT - -func Setrlimit(resource int, rlim *Rlimit) (err error) { - err = prlimit(0, resource, rlim, nil) - if err != ENOSYS { - return err - } - - rl := rlimit32{} - if rlim.Cur == rlimInf64 { - rl.Cur = rlimInf32 - } else if rlim.Cur < uint64(rlimInf32) { - rl.Cur = uint32(rlim.Cur) - } else { - return EINVAL - } - if rlim.Max == rlimInf64 { - rl.Max = rlimInf32 - } else if rlim.Max < uint64(rlimInf32) { - rl.Max = uint32(rlim.Max) - } else { - return EINVAL - } - - return setrlimit(resource, &rl) -} - -func (r *PtraceRegs) PC() uint64 { return r.Epc } - -func (r *PtraceRegs) SetPC(pc uint64) { r.Epc = pc } - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) - -func Poll(fds []PollFd, timeout int) (n int, err error) { - if len(fds) == 0 { - return poll(nil, 0, timeout) - } - return poll(&fds[0], len(fds), timeout) -} - -func Getpagesize() int { return 4096 } diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go b/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go deleted file mode 100644 index 60770f6..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go +++ /dev/null @@ -1,135 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build linux -// +build ppc64 ppc64le - -package unix - -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) -//sys Dup2(oldfd int, newfd int) (err error) -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Fstat(fd int, stat *Stat_t) (err error) -//sys Fstatfs(fd int, buf *Statfs_t) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (euid int) -//sysnb Getgid() (gid int) -//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) = SYS_UGETRLIMIT -//sysnb Getuid() (uid int) -//sysnb InotifyInit() (fd int, err error) -//sys Ioperm(from int, num int, on int) (err error) -//sys Iopl(level int) (err error) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Listen(s int, n int) (err error) -//sys Lstat(path string, stat *Stat_t) (err error) -//sys Pause() (err error) -//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 -//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 -//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK -//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) -//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -//sys Setfsgid(gid int) (err error) -//sys Setfsuid(uid int) (err error) -//sysnb Setregid(rgid int, egid int) (err error) -//sysnb Setresgid(rgid int, egid int, sgid int) (err error) -//sysnb Setresuid(ruid int, euid int, suid int) (err error) -//sysnb Setrlimit(resource int, rlim *Rlimit) (err error) -//sysnb Setreuid(ruid int, euid int) (err error) -//sys Shutdown(fd int, how int) (err error) -//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) -//sys Stat(path string, stat *Stat_t) (err error) -//sys Statfs(path string, buf *Statfs_t) (err error) -//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) = SYS_SYNC_FILE_RANGE2 -//sys Truncate(path string, length int64) (err error) -//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) -//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) -//sysnb setgroups(n int, list *_Gid_t) (err error) -//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) -//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) -//sysnb socket(domain int, typ int, proto int) (fd int, err error) -//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) -//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) -//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) -//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) - -func Getpagesize() int { return 65536 } - -//sysnb Gettimeofday(tv *Timeval) (err error) -//sysnb Time(t *Time_t) (tt Time_t, err error) - -//sys Utime(path string, buf *Utimbuf) (err error) - -func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } - -func NsecToTimespec(nsec int64) (ts Timespec) { - ts.Sec = nsec / 1e9 - ts.Nsec = nsec % 1e9 - return -} - -func NsecToTimeval(nsec int64) (tv Timeval) { - nsec += 999 // round up to microsecond - tv.Sec = nsec / 1e9 - tv.Usec = nsec % 1e9 / 1e3 - return -} - -func (r *PtraceRegs) PC() uint64 { return r.Nip } - -func (r *PtraceRegs) SetPC(pc uint64) { r.Nip = pc } - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint64(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint64(length) -} - -//sysnb pipe(p *[2]_C_int) (err error) - -func Pipe(p []int) (err error) { - if len(p) != 2 { - return EINVAL - } - var pp [2]_C_int - err = pipe(&pp) - p[0] = int(pp[0]) - p[1] = int(pp[1]) - return -} - -//sysnb pipe2(p *[2]_C_int, flags int) (err error) - -func Pipe2(p []int, flags int) (err error) { - if len(p) != 2 { - return EINVAL - } - var pp [2]_C_int - err = pipe2(&pp, flags) - p[0] = int(pp[0]) - p[1] = int(pp[1]) - return -} - -//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) - -func Poll(fds []PollFd, timeout int) (n int, err error) { - if len(fds) == 0 { - return poll(nil, 0, timeout) - } - return poll(&fds[0], len(fds), timeout) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go b/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go deleted file mode 100644 index 1708a4b..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go +++ /dev/null @@ -1,328 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build s390x,linux - -package unix - -import ( - "unsafe" -) - -//sys Dup2(oldfd int, newfd int) (err error) -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) -//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Fstat(fd int, stat *Stat_t) (err error) -//sys Fstatfs(fd int, buf *Statfs_t) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (euid int) -//sysnb Getgid() (gid int) -//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) -//sysnb Getuid() (uid int) -//sysnb InotifyInit() (fd int, err error) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Lstat(path string, stat *Stat_t) (err error) -//sys Pause() (err error) -//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 -//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 -//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK -//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) -//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -//sys Setfsgid(gid int) (err error) -//sys Setfsuid(uid int) (err error) -//sysnb Setregid(rgid int, egid int) (err error) -//sysnb Setresgid(rgid int, egid int, sgid int) (err error) -//sysnb Setresuid(ruid int, euid int, suid int) (err error) -//sysnb Setrlimit(resource int, rlim *Rlimit) (err error) -//sysnb Setreuid(ruid int, euid int) (err error) -//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) -//sys Stat(path string, stat *Stat_t) (err error) -//sys Statfs(path string, buf *Statfs_t) (err error) -//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) -//sys Truncate(path string, length int64) (err error) -//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) -//sysnb setgroups(n int, list *_Gid_t) (err error) - -func Getpagesize() int { return 4096 } - -//sysnb Gettimeofday(tv *Timeval) (err error) - -func Time(t *Time_t) (tt Time_t, err error) { - var tv Timeval - err = Gettimeofday(&tv) - if err != nil { - return 0, err - } - if t != nil { - *t = Time_t(tv.Sec) - } - return Time_t(tv.Sec), nil -} - -//sys Utime(path string, buf *Utimbuf) (err error) - -func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } - -func NsecToTimespec(nsec int64) (ts Timespec) { - ts.Sec = nsec / 1e9 - ts.Nsec = nsec % 1e9 - return -} - -func NsecToTimeval(nsec int64) (tv Timeval) { - nsec += 999 // round up to microsecond - tv.Sec = nsec / 1e9 - tv.Usec = nsec % 1e9 / 1e3 - return -} - -//sysnb pipe2(p *[2]_C_int, flags int) (err error) - -func Pipe(p []int) (err error) { - if len(p) != 2 { - return EINVAL - } - var pp [2]_C_int - err = pipe2(&pp, 0) // pipe2 is the same as pipe when flags are set to 0. - p[0] = int(pp[0]) - p[1] = int(pp[1]) - return -} - -func Pipe2(p []int, flags int) (err error) { - if len(p) != 2 { - return EINVAL - } - var pp [2]_C_int - err = pipe2(&pp, flags) - p[0] = int(pp[0]) - p[1] = int(pp[1]) - return -} - -func Ioperm(from int, num int, on int) (err error) { - return ENOSYS -} - -func Iopl(level int) (err error) { - return ENOSYS -} - -func (r *PtraceRegs) PC() uint64 { return r.Psw.Addr } - -func (r *PtraceRegs) SetPC(pc uint64) { r.Psw.Addr = pc } - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint64(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint64(length) -} - -// Linux on s390x uses the old mmap interface, which requires arguments to be passed in a struct. -// mmap2 also requires arguments to be passed in a struct; it is currently not exposed in . -func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - mmap_args := [6]uintptr{addr, length, uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)} - r0, _, e1 := Syscall(SYS_MMAP, uintptr(unsafe.Pointer(&mmap_args[0])), 0, 0) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// On s390x Linux, all the socket calls go through an extra indirection. -// The arguments to the underlying system call (SYS_SOCKETCALL) are the -// number below and a pointer to an array of uintptr. -const ( - // see linux/net.h - netSocket = 1 - netBind = 2 - netConnect = 3 - netListen = 4 - netAccept = 5 - netGetSockName = 6 - netGetPeerName = 7 - netSocketPair = 8 - netSend = 9 - netRecv = 10 - netSendTo = 11 - netRecvFrom = 12 - netShutdown = 13 - netSetSockOpt = 14 - netGetSockOpt = 15 - netSendMsg = 16 - netRecvMsg = 17 - netAccept4 = 18 - netRecvMMsg = 19 - netSendMMsg = 20 -) - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (int, error) { - args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))} - fd, _, err := Syscall(SYS_SOCKETCALL, netAccept, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return 0, err - } - return int(fd), nil -} - -func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (int, error) { - args := [4]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags)} - fd, _, err := Syscall(SYS_SOCKETCALL, netAccept4, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return 0, err - } - return int(fd), nil -} - -func getsockname(s int, rsa *RawSockaddrAny, addrlen *_Socklen) error { - args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))} - _, _, err := RawSyscall(SYS_SOCKETCALL, netGetSockName, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return err - } - return nil -} - -func getpeername(s int, rsa *RawSockaddrAny, addrlen *_Socklen) error { - args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))} - _, _, err := RawSyscall(SYS_SOCKETCALL, netGetPeerName, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return err - } - return nil -} - -func socketpair(domain int, typ int, flags int, fd *[2]int32) error { - args := [4]uintptr{uintptr(domain), uintptr(typ), uintptr(flags), uintptr(unsafe.Pointer(fd))} - _, _, err := RawSyscall(SYS_SOCKETCALL, netSocketPair, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return err - } - return nil -} - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) error { - args := [3]uintptr{uintptr(s), uintptr(addr), uintptr(addrlen)} - _, _, err := Syscall(SYS_SOCKETCALL, netBind, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return err - } - return nil -} - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) error { - args := [3]uintptr{uintptr(s), uintptr(addr), uintptr(addrlen)} - _, _, err := Syscall(SYS_SOCKETCALL, netConnect, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return err - } - return nil -} - -func socket(domain int, typ int, proto int) (int, error) { - args := [3]uintptr{uintptr(domain), uintptr(typ), uintptr(proto)} - fd, _, err := RawSyscall(SYS_SOCKETCALL, netSocket, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return 0, err - } - return int(fd), nil -} - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) error { - args := [5]uintptr{uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen))} - _, _, err := Syscall(SYS_SOCKETCALL, netGetSockOpt, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return err - } - return nil -} - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) error { - args := [4]uintptr{uintptr(s), uintptr(level), uintptr(name), uintptr(val)} - _, _, err := Syscall(SYS_SOCKETCALL, netSetSockOpt, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return err - } - return nil -} - -func recvfrom(s int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (int, error) { - var base uintptr - if len(p) > 0 { - base = uintptr(unsafe.Pointer(&p[0])) - } - args := [6]uintptr{uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))} - n, _, err := Syscall(SYS_SOCKETCALL, netRecvFrom, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return 0, err - } - return int(n), nil -} - -func sendto(s int, p []byte, flags int, to unsafe.Pointer, addrlen _Socklen) error { - var base uintptr - if len(p) > 0 { - base = uintptr(unsafe.Pointer(&p[0])) - } - args := [6]uintptr{uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(to), uintptr(addrlen)} - _, _, err := Syscall(SYS_SOCKETCALL, netSendTo, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return err - } - return nil -} - -func recvmsg(s int, msg *Msghdr, flags int) (int, error) { - args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)} - n, _, err := Syscall(SYS_SOCKETCALL, netRecvMsg, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return 0, err - } - return int(n), nil -} - -func sendmsg(s int, msg *Msghdr, flags int) (int, error) { - args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)} - n, _, err := Syscall(SYS_SOCKETCALL, netSendMsg, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return 0, err - } - return int(n), nil -} - -func Listen(s int, n int) error { - args := [2]uintptr{uintptr(s), uintptr(n)} - _, _, err := Syscall(SYS_SOCKETCALL, netListen, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return err - } - return nil -} - -func Shutdown(s, how int) error { - args := [2]uintptr{uintptr(s), uintptr(how)} - _, _, err := Syscall(SYS_SOCKETCALL, netShutdown, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return err - } - return nil -} - -//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) - -func Poll(fds []PollFd, timeout int) (n int, err error) { - if len(fds) == 0 { - return poll(nil, 0, timeout) - } - return poll(&fds[0], len(fds), timeout) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go b/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go deleted file mode 100644 index 20b7454..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go +++ /dev/null @@ -1,169 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build sparc64,linux - -package unix - -import ( - "sync/atomic" - "syscall" -) - -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) -//sys Dup2(oldfd int, newfd int) (err error) -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Fstat(fd int, stat *Stat_t) (err error) -//sys Fstatfs(fd int, buf *Statfs_t) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (euid int) -//sysnb Getgid() (gid int) -//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) -//sysnb Getuid() (uid int) -//sysnb InotifyInit() (fd int, err error) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Listen(s int, n int) (err error) -//sys Lstat(path string, stat *Stat_t) (err error) -//sys Pause() (err error) -//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 -//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 -//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK -//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) -//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -//sys Setfsgid(gid int) (err error) -//sys Setfsuid(uid int) (err error) -//sysnb Setregid(rgid int, egid int) (err error) -//sysnb Setresgid(rgid int, egid int, sgid int) (err error) -//sysnb Setresuid(ruid int, euid int, suid int) (err error) -//sysnb Setrlimit(resource int, rlim *Rlimit) (err error) -//sysnb Setreuid(ruid int, euid int) (err error) -//sys Shutdown(fd int, how int) (err error) -//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) -//sys Stat(path string, stat *Stat_t) (err error) -//sys Statfs(path string, buf *Statfs_t) (err error) -//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) -//sys Truncate(path string, length int64) (err error) -//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) -//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) -//sysnb setgroups(n int, list *_Gid_t) (err error) -//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) -//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) -//sysnb socket(domain int, typ int, proto int) (fd int, err error) -//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) -//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) -//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) -//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) - -func sysconf(name int) (n int64, err syscall.Errno) - -// pageSize caches the value of Getpagesize, since it can't change -// once the system is booted. -var pageSize int64 // accessed atomically - -func Getpagesize() int { - n := atomic.LoadInt64(&pageSize) - if n == 0 { - n, _ = sysconf(_SC_PAGESIZE) - atomic.StoreInt64(&pageSize, n) - } - return int(n) -} - -func Ioperm(from int, num int, on int) (err error) { - return ENOSYS -} - -func Iopl(level int) (err error) { - return ENOSYS -} - -//sysnb Gettimeofday(tv *Timeval) (err error) - -func Time(t *Time_t) (tt Time_t, err error) { - var tv Timeval - err = Gettimeofday(&tv) - if err != nil { - return 0, err - } - if t != nil { - *t = Time_t(tv.Sec) - } - return Time_t(tv.Sec), nil -} - -//sys Utime(path string, buf *Utimbuf) (err error) - -func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } - -func NsecToTimespec(nsec int64) (ts Timespec) { - ts.Sec = nsec / 1e9 - ts.Nsec = nsec % 1e9 - return -} - -func NsecToTimeval(nsec int64) (tv Timeval) { - nsec += 999 // round up to microsecond - tv.Sec = nsec / 1e9 - tv.Usec = int32(nsec % 1e9 / 1e3) - return -} - -func (r *PtraceRegs) PC() uint64 { return r.Tpc } - -func (r *PtraceRegs) SetPC(pc uint64) { r.Tpc = pc } - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint64(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint64(length) -} - -//sysnb pipe(p *[2]_C_int) (err error) - -func Pipe(p []int) (err error) { - if len(p) != 2 { - return EINVAL - } - var pp [2]_C_int - err = pipe(&pp) - p[0] = int(pp[0]) - p[1] = int(pp[1]) - return -} - -//sysnb pipe2(p *[2]_C_int, flags int) (err error) - -func Pipe2(p []int, flags int) (err error) { - if len(p) != 2 { - return EINVAL - } - var pp [2]_C_int - err = pipe2(&pp, flags) - p[0] = int(pp[0]) - p[1] = int(pp[1]) - return -} - -//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) - -func Poll(fds []PollFd, timeout int) (n int, err error) { - if len(fds) == 0 { - return poll(nil, 0, timeout) - } - return poll(&fds[0], len(fds), timeout) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd.go b/vendor/golang.org/x/sys/unix/syscall_netbsd.go deleted file mode 100644 index e129668..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_netbsd.go +++ /dev/null @@ -1,472 +0,0 @@ -// Copyright 2009,2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// NetBSD system calls. -// This file is compiled as ordinary Go code, -// but it is also input to mksyscall, -// which parses the //sys lines and generates system call stubs. -// Note that sometimes we use a lowercase //sys name and wrap -// it in our own nicer implementation, either here or in -// syscall_bsd.go or syscall_unix.go. - -package unix - -import ( - "syscall" - "unsafe" -) - -type SockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [12]int8 - raw RawSockaddrDatalink -} - -func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) - -func sysctlNodes(mib []_C_int) (nodes []Sysctlnode, err error) { - var olen uintptr - - // Get a list of all sysctl nodes below the given MIB by performing - // a sysctl for the given MIB with CTL_QUERY appended. - mib = append(mib, CTL_QUERY) - qnode := Sysctlnode{Flags: SYSCTL_VERS_1} - qp := (*byte)(unsafe.Pointer(&qnode)) - sz := unsafe.Sizeof(qnode) - if err = sysctl(mib, nil, &olen, qp, sz); err != nil { - return nil, err - } - - // Now that we know the size, get the actual nodes. - nodes = make([]Sysctlnode, olen/sz) - np := (*byte)(unsafe.Pointer(&nodes[0])) - if err = sysctl(mib, np, &olen, qp, sz); err != nil { - return nil, err - } - - return nodes, nil -} - -func nametomib(name string) (mib []_C_int, err error) { - - // Split name into components. - var parts []string - last := 0 - for i := 0; i < len(name); i++ { - if name[i] == '.' { - parts = append(parts, name[last:i]) - last = i + 1 - } - } - parts = append(parts, name[last:]) - - // Discover the nodes and construct the MIB OID. - for partno, part := range parts { - nodes, err := sysctlNodes(mib) - if err != nil { - return nil, err - } - for _, node := range nodes { - n := make([]byte, 0) - for i := range node.Name { - if node.Name[i] != 0 { - n = append(n, byte(node.Name[i])) - } - } - if string(n) == part { - mib = append(mib, _C_int(node.Num)) - break - } - } - if len(mib) != partno+1 { - return nil, EINVAL - } - } - - return mib, nil -} - -func direntIno(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno)) -} - -func direntReclen(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) -} - -func direntNamlen(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) -} - -//sysnb pipe() (fd1 int, fd2 int, err error) -func Pipe(p []int) (err error) { - if len(p) != 2 { - return EINVAL - } - p[0], p[1], err = pipe() - return -} - -//sys getdents(fd int, buf []byte) (n int, err error) -func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { - return getdents(fd, buf) -} - -// TODO -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - return -1, ENOSYS -} - -/* - * Exposed directly - */ -//sys Access(path string, mode uint32) (err error) -//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) -//sys Chdir(path string) (err error) -//sys Chflags(path string, flags int) (err error) -//sys Chmod(path string, mode uint32) (err error) -//sys Chown(path string, uid int, gid int) (err error) -//sys Chroot(path string) (err error) -//sys Close(fd int) (err error) -//sys Dup(fd int) (nfd int, err error) -//sys Dup2(from int, to int) (err error) -//sys Exit(code int) -//sys Fchdir(fd int) (err error) -//sys Fchflags(fd int, flags int) (err error) -//sys Fchmod(fd int, mode uint32) (err error) -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Flock(fd int, how int) (err error) -//sys Fpathconf(fd int, name int) (val int, err error) -//sys Fstat(fd int, stat *Stat_t) (err error) -//sys Fsync(fd int) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (uid int) -//sysnb Getgid() (gid int) -//sysnb Getpgid(pid int) (pgid int, err error) -//sysnb Getpgrp() (pgrp int) -//sysnb Getpid() (pid int) -//sysnb Getppid() (ppid int) -//sys Getpriority(which int, who int) (prio int, err error) -//sysnb Getrlimit(which int, lim *Rlimit) (err error) -//sysnb Getrusage(who int, rusage *Rusage) (err error) -//sysnb Getsid(pid int) (sid int, err error) -//sysnb Gettimeofday(tv *Timeval) (err error) -//sysnb Getuid() (uid int) -//sys Issetugid() (tainted bool) -//sys Kill(pid int, signum syscall.Signal) (err error) -//sys Kqueue() (fd int, err error) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Link(path string, link string) (err error) -//sys Listen(s int, backlog int) (err error) -//sys Lstat(path string, stat *Stat_t) (err error) -//sys Mkdir(path string, mode uint32) (err error) -//sys Mkfifo(path string, mode uint32) (err error) -//sys Mknod(path string, mode uint32, dev int) (err error) -//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) -//sys Open(path string, mode int, perm uint32) (fd int, err error) -//sys Pathconf(path string, name int) (val int, err error) -//sys Pread(fd int, p []byte, offset int64) (n int, err error) -//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) -//sys read(fd int, p []byte) (n int, err error) -//sys Readlink(path string, buf []byte) (n int, err error) -//sys Rename(from string, to string) (err error) -//sys Revoke(path string) (err error) -//sys Rmdir(path string) (err error) -//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK -//sys Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) -//sysnb Setegid(egid int) (err error) -//sysnb Seteuid(euid int) (err error) -//sysnb Setgid(gid int) (err error) -//sysnb Setpgid(pid int, pgid int) (err error) -//sys Setpriority(which int, who int, prio int) (err error) -//sysnb Setregid(rgid int, egid int) (err error) -//sysnb Setreuid(ruid int, euid int) (err error) -//sysnb Setrlimit(which int, lim *Rlimit) (err error) -//sysnb Setsid() (pid int, err error) -//sysnb Settimeofday(tp *Timeval) (err error) -//sysnb Setuid(uid int) (err error) -//sys Stat(path string, stat *Stat_t) (err error) -//sys Symlink(path string, link string) (err error) -//sys Sync() (err error) -//sys Truncate(path string, length int64) (err error) -//sys Umask(newmask int) (oldmask int) -//sys Unlink(path string) (err error) -//sys Unmount(path string, flags int) (err error) -//sys write(fd int, p []byte) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) -//sys munmap(addr uintptr, length uintptr) (err error) -//sys readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ -//sys writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE -//sys utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) - -/* - * Unimplemented - */ -// ____semctl13 -// __clone -// __fhopen40 -// __fhstat40 -// __fhstatvfs140 -// __fstat30 -// __getcwd -// __getfh30 -// __getlogin -// __lstat30 -// __mount50 -// __msgctl13 -// __msync13 -// __ntp_gettime30 -// __posix_chown -// __posix_fadvise50 -// __posix_fchown -// __posix_lchown -// __posix_rename -// __setlogin -// __shmctl13 -// __sigaction_sigtramp -// __sigaltstack14 -// __sigpending14 -// __sigprocmask14 -// __sigsuspend14 -// __sigtimedwait -// __stat30 -// __syscall -// __vfork14 -// _ksem_close -// _ksem_destroy -// _ksem_getvalue -// _ksem_init -// _ksem_open -// _ksem_post -// _ksem_trywait -// _ksem_unlink -// _ksem_wait -// _lwp_continue -// _lwp_create -// _lwp_ctl -// _lwp_detach -// _lwp_exit -// _lwp_getname -// _lwp_getprivate -// _lwp_kill -// _lwp_park -// _lwp_self -// _lwp_setname -// _lwp_setprivate -// _lwp_suspend -// _lwp_unpark -// _lwp_unpark_all -// _lwp_wait -// _lwp_wakeup -// _pset_bind -// _sched_getaffinity -// _sched_getparam -// _sched_setaffinity -// _sched_setparam -// acct -// aio_cancel -// aio_error -// aio_fsync -// aio_read -// aio_return -// aio_suspend -// aio_write -// break -// clock_getres -// clock_gettime -// clock_settime -// compat_09_ogetdomainname -// compat_09_osetdomainname -// compat_09_ouname -// compat_10_omsgsys -// compat_10_osemsys -// compat_10_oshmsys -// compat_12_fstat12 -// compat_12_getdirentries -// compat_12_lstat12 -// compat_12_msync -// compat_12_oreboot -// compat_12_oswapon -// compat_12_stat12 -// compat_13_sigaction13 -// compat_13_sigaltstack13 -// compat_13_sigpending13 -// compat_13_sigprocmask13 -// compat_13_sigreturn13 -// compat_13_sigsuspend13 -// compat_14___semctl -// compat_14_msgctl -// compat_14_shmctl -// compat_16___sigaction14 -// compat_16___sigreturn14 -// compat_20_fhstatfs -// compat_20_fstatfs -// compat_20_getfsstat -// compat_20_statfs -// compat_30___fhstat30 -// compat_30___fstat13 -// compat_30___lstat13 -// compat_30___stat13 -// compat_30_fhopen -// compat_30_fhstat -// compat_30_fhstatvfs1 -// compat_30_getdents -// compat_30_getfh -// compat_30_ntp_gettime -// compat_30_socket -// compat_40_mount -// compat_43_fstat43 -// compat_43_lstat43 -// compat_43_oaccept -// compat_43_ocreat -// compat_43_oftruncate -// compat_43_ogetdirentries -// compat_43_ogetdtablesize -// compat_43_ogethostid -// compat_43_ogethostname -// compat_43_ogetkerninfo -// compat_43_ogetpagesize -// compat_43_ogetpeername -// compat_43_ogetrlimit -// compat_43_ogetsockname -// compat_43_okillpg -// compat_43_olseek -// compat_43_ommap -// compat_43_oquota -// compat_43_orecv -// compat_43_orecvfrom -// compat_43_orecvmsg -// compat_43_osend -// compat_43_osendmsg -// compat_43_osethostid -// compat_43_osethostname -// compat_43_osetrlimit -// compat_43_osigblock -// compat_43_osigsetmask -// compat_43_osigstack -// compat_43_osigvec -// compat_43_otruncate -// compat_43_owait -// compat_43_stat43 -// execve -// extattr_delete_fd -// extattr_delete_file -// extattr_delete_link -// extattr_get_fd -// extattr_get_file -// extattr_get_link -// extattr_list_fd -// extattr_list_file -// extattr_list_link -// extattr_set_fd -// extattr_set_file -// extattr_set_link -// extattrctl -// fchroot -// fdatasync -// fgetxattr -// fktrace -// flistxattr -// fork -// fremovexattr -// fsetxattr -// fstatvfs1 -// fsync_range -// getcontext -// getitimer -// getvfsstat -// getxattr -// ioctl -// ktrace -// lchflags -// lchmod -// lfs_bmapv -// lfs_markv -// lfs_segclean -// lfs_segwait -// lgetxattr -// lio_listio -// listxattr -// llistxattr -// lremovexattr -// lseek -// lsetxattr -// lutimes -// madvise -// mincore -// minherit -// modctl -// mq_close -// mq_getattr -// mq_notify -// mq_open -// mq_receive -// mq_send -// mq_setattr -// mq_timedreceive -// mq_timedsend -// mq_unlink -// mremap -// msgget -// msgrcv -// msgsnd -// nfssvc -// ntp_adjtime -// pmc_control -// pmc_get_info -// poll -// pollts -// preadv -// profil -// pselect -// pset_assign -// pset_create -// pset_destroy -// ptrace -// pwritev -// quotactl -// rasctl -// readv -// reboot -// removexattr -// sa_enable -// sa_preempt -// sa_register -// sa_setconcurrency -// sa_stacks -// sa_yield -// sbrk -// sched_yield -// semconfig -// semget -// semop -// setcontext -// setitimer -// setxattr -// shmat -// shmdt -// shmget -// sstk -// statvfs1 -// swapctl -// sysarch -// syscall -// timer_create -// timer_delete -// timer_getoverrun -// timer_gettime -// timer_settime -// undelete -// utrace -// uuidgen -// vadvise -// vfork -// writev diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go b/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go deleted file mode 100644 index afaca09..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build 386,netbsd - -package unix - -func Getpagesize() int { return 4096 } - -func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } - -func NsecToTimespec(nsec int64) (ts Timespec) { - ts.Sec = int64(nsec / 1e9) - ts.Nsec = int32(nsec % 1e9) - return -} - -func NsecToTimeval(nsec int64) (tv Timeval) { - nsec += 999 // round up to microsecond - tv.Usec = int32(nsec % 1e9 / 1e3) - tv.Sec = int64(nsec / 1e9) - return -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint32(fd) - k.Filter = uint32(mode) - k.Flags = uint32(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go deleted file mode 100644 index a6ff04c..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build amd64,netbsd - -package unix - -func Getpagesize() int { return 4096 } - -func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } - -func NsecToTimespec(nsec int64) (ts Timespec) { - ts.Sec = int64(nsec / 1e9) - ts.Nsec = int64(nsec % 1e9) - return -} - -func NsecToTimeval(nsec int64) (tv Timeval) { - nsec += 999 // round up to microsecond - tv.Usec = int32(nsec % 1e9 / 1e3) - tv.Sec = int64(nsec / 1e9) - return -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint64(fd) - k.Filter = uint32(mode) - k.Flags = uint32(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go b/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go deleted file mode 100644 index 68a6969..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build arm,netbsd - -package unix - -func Getpagesize() int { return 4096 } - -func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } - -func NsecToTimespec(nsec int64) (ts Timespec) { - ts.Sec = int64(nsec / 1e9) - ts.Nsec = int32(nsec % 1e9) - return -} - -func NsecToTimeval(nsec int64) (tv Timeval) { - nsec += 999 // round up to microsecond - tv.Usec = int32(nsec % 1e9 / 1e3) - tv.Sec = int64(nsec / 1e9) - return -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint32(fd) - k.Filter = uint32(mode) - k.Flags = uint32(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_no_getwd.go b/vendor/golang.org/x/sys/unix/syscall_no_getwd.go deleted file mode 100644 index 530792e..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_no_getwd.go +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build dragonfly freebsd netbsd openbsd - -package unix - -const ImplementsGetwd = false - -func Getwd() (string, error) { return "", ENOTSUP } diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd.go b/vendor/golang.org/x/sys/unix/syscall_openbsd.go deleted file mode 100644 index 408e630..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_openbsd.go +++ /dev/null @@ -1,282 +0,0 @@ -// Copyright 2009,2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// OpenBSD system calls. -// This file is compiled as ordinary Go code, -// but it is also input to mksyscall, -// which parses the //sys lines and generates system call stubs. -// Note that sometimes we use a lowercase //sys name and wrap -// it in our own nicer implementation, either here or in -// syscall_bsd.go or syscall_unix.go. - -package unix - -import ( - "syscall" - "unsafe" -) - -type SockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [24]int8 - raw RawSockaddrDatalink -} - -func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) - -func nametomib(name string) (mib []_C_int, err error) { - - // Perform lookup via a binary search - left := 0 - right := len(sysctlMib) - 1 - for { - idx := left + (right-left)/2 - switch { - case name == sysctlMib[idx].ctlname: - return sysctlMib[idx].ctloid, nil - case name > sysctlMib[idx].ctlname: - left = idx + 1 - default: - right = idx - 1 - } - if left > right { - break - } - } - return nil, EINVAL -} - -func direntIno(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno)) -} - -func direntReclen(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) -} - -func direntNamlen(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) -} - -//sysnb pipe(p *[2]_C_int) (err error) -func Pipe(p []int) (err error) { - if len(p) != 2 { - return EINVAL - } - var pp [2]_C_int - err = pipe(&pp) - p[0] = int(pp[0]) - p[1] = int(pp[1]) - return -} - -//sys getdents(fd int, buf []byte) (n int, err error) -func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { - return getdents(fd, buf) -} - -// TODO -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - return -1, ENOSYS -} - -func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { - var _p0 unsafe.Pointer - var bufsize uintptr - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf)) - } - r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(_p0), bufsize, uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -/* - * Exposed directly - */ -//sys Access(path string, mode uint32) (err error) -//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) -//sys Chdir(path string) (err error) -//sys Chflags(path string, flags int) (err error) -//sys Chmod(path string, mode uint32) (err error) -//sys Chown(path string, uid int, gid int) (err error) -//sys Chroot(path string) (err error) -//sys Close(fd int) (err error) -//sys Dup(fd int) (nfd int, err error) -//sys Dup2(from int, to int) (err error) -//sys Exit(code int) -//sys Fchdir(fd int) (err error) -//sys Fchflags(fd int, flags int) (err error) -//sys Fchmod(fd int, mode uint32) (err error) -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Flock(fd int, how int) (err error) -//sys Fpathconf(fd int, name int) (val int, err error) -//sys Fstat(fd int, stat *Stat_t) (err error) -//sys Fstatfs(fd int, stat *Statfs_t) (err error) -//sys Fsync(fd int) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (uid int) -//sysnb Getgid() (gid int) -//sysnb Getpgid(pid int) (pgid int, err error) -//sysnb Getpgrp() (pgrp int) -//sysnb Getpid() (pid int) -//sysnb Getppid() (ppid int) -//sys Getpriority(which int, who int) (prio int, err error) -//sysnb Getrlimit(which int, lim *Rlimit) (err error) -//sysnb Getrusage(who int, rusage *Rusage) (err error) -//sysnb Getsid(pid int) (sid int, err error) -//sysnb Gettimeofday(tv *Timeval) (err error) -//sysnb Getuid() (uid int) -//sys Issetugid() (tainted bool) -//sys Kill(pid int, signum syscall.Signal) (err error) -//sys Kqueue() (fd int, err error) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Link(path string, link string) (err error) -//sys Listen(s int, backlog int) (err error) -//sys Lstat(path string, stat *Stat_t) (err error) -//sys Mkdir(path string, mode uint32) (err error) -//sys Mkfifo(path string, mode uint32) (err error) -//sys Mknod(path string, mode uint32, dev int) (err error) -//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) -//sys Open(path string, mode int, perm uint32) (fd int, err error) -//sys Pathconf(path string, name int) (val int, err error) -//sys Pread(fd int, p []byte, offset int64) (n int, err error) -//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) -//sys read(fd int, p []byte) (n int, err error) -//sys Readlink(path string, buf []byte) (n int, err error) -//sys Rename(from string, to string) (err error) -//sys Revoke(path string) (err error) -//sys Rmdir(path string) (err error) -//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK -//sys Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) -//sysnb Setegid(egid int) (err error) -//sysnb Seteuid(euid int) (err error) -//sysnb Setgid(gid int) (err error) -//sys Setlogin(name string) (err error) -//sysnb Setpgid(pid int, pgid int) (err error) -//sys Setpriority(which int, who int, prio int) (err error) -//sysnb Setregid(rgid int, egid int) (err error) -//sysnb Setreuid(ruid int, euid int) (err error) -//sysnb Setresgid(rgid int, egid int, sgid int) (err error) -//sysnb Setresuid(ruid int, euid int, suid int) (err error) -//sysnb Setrlimit(which int, lim *Rlimit) (err error) -//sysnb Setsid() (pid int, err error) -//sysnb Settimeofday(tp *Timeval) (err error) -//sysnb Setuid(uid int) (err error) -//sys Stat(path string, stat *Stat_t) (err error) -//sys Statfs(path string, stat *Statfs_t) (err error) -//sys Symlink(path string, link string) (err error) -//sys Sync() (err error) -//sys Truncate(path string, length int64) (err error) -//sys Umask(newmask int) (oldmask int) -//sys Unlink(path string) (err error) -//sys Unmount(path string, flags int) (err error) -//sys write(fd int, p []byte) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) -//sys munmap(addr uintptr, length uintptr) (err error) -//sys readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ -//sys writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE -//sys utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) - -/* - * Unimplemented - */ -// __getcwd -// __semctl -// __syscall -// __sysctl -// adjfreq -// break -// clock_getres -// clock_gettime -// clock_settime -// closefrom -// execve -// faccessat -// fchmodat -// fchownat -// fcntl -// fhopen -// fhstat -// fhstatfs -// fork -// fstatat -// futimens -// getfh -// getgid -// getitimer -// getlogin -// getresgid -// getresuid -// getrtable -// getthrid -// ioctl -// ktrace -// lfs_bmapv -// lfs_markv -// lfs_segclean -// lfs_segwait -// linkat -// mincore -// minherit -// mkdirat -// mkfifoat -// mknodat -// mount -// mquery -// msgctl -// msgget -// msgrcv -// msgsnd -// nfssvc -// nnpfspioctl -// openat -// poll -// preadv -// profil -// pwritev -// quotactl -// readlinkat -// readv -// reboot -// renameat -// rfork -// sched_yield -// semget -// semop -// setgroups -// setitimer -// setrtable -// setsockopt -// shmat -// shmctl -// shmdt -// shmget -// sigaction -// sigaltstack -// sigpending -// sigprocmask -// sigreturn -// sigsuspend -// symlinkat -// sysarch -// syscall -// threxit -// thrsigdivert -// thrsleep -// thrwakeup -// unlinkat -// vfork -// writev diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go deleted file mode 100644 index a66ddc5..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build 386,openbsd - -package unix - -func Getpagesize() int { return 4096 } - -func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } - -func NsecToTimespec(nsec int64) (ts Timespec) { - ts.Sec = int64(nsec / 1e9) - ts.Nsec = int32(nsec % 1e9) - return -} - -func NsecToTimeval(nsec int64) (tv Timeval) { - nsec += 999 // round up to microsecond - tv.Usec = int32(nsec % 1e9 / 1e3) - tv.Sec = int64(nsec / 1e9) - return -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint32(fd) - k.Filter = int16(mode) - k.Flags = uint16(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go deleted file mode 100644 index 0776c1f..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build amd64,openbsd - -package unix - -func Getpagesize() int { return 4096 } - -func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } - -func NsecToTimespec(nsec int64) (ts Timespec) { - ts.Sec = nsec / 1e9 - ts.Nsec = nsec % 1e9 - return -} - -func NsecToTimeval(nsec int64) (tv Timeval) { - nsec += 999 // round up to microsecond - tv.Usec = nsec % 1e9 / 1e3 - tv.Sec = nsec / 1e9 - return -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint64(fd) - k.Filter = int16(mode) - k.Flags = uint16(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go deleted file mode 100644 index 14ddaf3..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build arm,openbsd - -package unix - -import "syscall" - -func Getpagesize() int { return syscall.Getpagesize() } - -func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } - -func NsecToTimespec(nsec int64) (ts Timespec) { - ts.Sec = int64(nsec / 1e9) - ts.Nsec = int32(nsec % 1e9) - return -} - -func NsecToTimeval(nsec int64) (tv Timeval) { - nsec += 999 // round up to microsecond - tv.Usec = int32(nsec % 1e9 / 1e3) - tv.Sec = int64(nsec / 1e9) - return -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint32(fd) - k.Filter = int16(mode) - k.Flags = uint16(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(length) -} - -func (msghdr *Msghdr) SetControllen(length int) { - msghdr.Controllen = uint32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_solaris.go b/vendor/golang.org/x/sys/unix/syscall_solaris.go deleted file mode 100644 index 0d4e5c4..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_solaris.go +++ /dev/null @@ -1,716 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Solaris system calls. -// This file is compiled as ordinary Go code, -// but it is also input to mksyscall, -// which parses the //sys lines and generates system call stubs. -// Note that sometimes we use a lowercase //sys name and wrap -// it in our own nicer implementation, either here or in -// syscall_solaris.go or syscall_unix.go. - -package unix - -import ( - "sync/atomic" - "syscall" - "unsafe" -) - -// Implemented in runtime/syscall_solaris.go. -type syscallFunc uintptr - -func rawSysvicall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) -func sysvicall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) - -type SockaddrDatalink struct { - Family uint16 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [244]int8 - raw RawSockaddrDatalink -} - -func clen(n []byte) int { - for i := 0; i < len(n); i++ { - if n[i] == 0 { - return i - } - } - return len(n) -} - -func direntIno(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino)) -} - -func direntReclen(buf []byte) (uint64, bool) { - return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) -} - -func direntNamlen(buf []byte) (uint64, bool) { - reclen, ok := direntReclen(buf) - if !ok { - return 0, false - } - return reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true -} - -//sysnb pipe(p *[2]_C_int) (n int, err error) - -func Pipe(p []int) (err error) { - if len(p) != 2 { - return EINVAL - } - var pp [2]_C_int - n, err := pipe(&pp) - if n != 0 { - return err - } - p[0] = int(pp[0]) - p[1] = int(pp[1]) - return nil -} - -func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Port < 0 || sa.Port > 0xFFFF { - return nil, 0, EINVAL - } - sa.raw.Family = AF_INET - p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) - p[0] = byte(sa.Port >> 8) - p[1] = byte(sa.Port) - for i := 0; i < len(sa.Addr); i++ { - sa.raw.Addr[i] = sa.Addr[i] - } - return unsafe.Pointer(&sa.raw), SizeofSockaddrInet4, nil -} - -func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Port < 0 || sa.Port > 0xFFFF { - return nil, 0, EINVAL - } - sa.raw.Family = AF_INET6 - p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) - p[0] = byte(sa.Port >> 8) - p[1] = byte(sa.Port) - sa.raw.Scope_id = sa.ZoneId - for i := 0; i < len(sa.Addr); i++ { - sa.raw.Addr[i] = sa.Addr[i] - } - return unsafe.Pointer(&sa.raw), SizeofSockaddrInet6, nil -} - -func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) { - name := sa.Name - n := len(name) - if n >= len(sa.raw.Path) { - return nil, 0, EINVAL - } - sa.raw.Family = AF_UNIX - for i := 0; i < n; i++ { - sa.raw.Path[i] = int8(name[i]) - } - // length is family (uint16), name, NUL. - sl := _Socklen(2) - if n > 0 { - sl += _Socklen(n) + 1 - } - if sa.raw.Path[0] == '@' { - sa.raw.Path[0] = 0 - // Don't count trailing NUL for abstract address. - sl-- - } - - return unsafe.Pointer(&sa.raw), sl, nil -} - -//sys getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = libsocket.getsockname - -func Getsockname(fd int) (sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - if err = getsockname(fd, &rsa, &len); err != nil { - return - } - return anyToSockaddr(&rsa) -} - -const ImplementsGetwd = true - -//sys Getcwd(buf []byte) (n int, err error) - -func Getwd() (wd string, err error) { - var buf [PathMax]byte - // Getcwd will return an error if it failed for any reason. - _, err = Getcwd(buf[0:]) - if err != nil { - return "", err - } - n := clen(buf[:]) - if n < 1 { - return "", EINVAL - } - return string(buf[:n]), nil -} - -/* - * Wrapped - */ - -//sysnb getgroups(ngid int, gid *_Gid_t) (n int, err error) -//sysnb setgroups(ngid int, gid *_Gid_t) (err error) - -func Getgroups() (gids []int, err error) { - n, err := getgroups(0, nil) - // Check for error and sanity check group count. Newer versions of - // Solaris allow up to 1024 (NGROUPS_MAX). - if n < 0 || n > 1024 { - if err != nil { - return nil, err - } - return nil, EINVAL - } else if n == 0 { - return nil, nil - } - - a := make([]_Gid_t, n) - n, err = getgroups(n, &a[0]) - if n == -1 { - return nil, err - } - gids = make([]int, n) - for i, v := range a[0:n] { - gids[i] = int(v) - } - return -} - -func Setgroups(gids []int) (err error) { - if len(gids) == 0 { - return setgroups(0, nil) - } - - a := make([]_Gid_t, len(gids)) - for i, v := range gids { - a[i] = _Gid_t(v) - } - return setgroups(len(a), &a[0]) -} - -func ReadDirent(fd int, buf []byte) (n int, err error) { - // Final argument is (basep *uintptr) and the syscall doesn't take nil. - // TODO(rsc): Can we use a single global basep for all calls? - return Getdents(fd, buf, new(uintptr)) -} - -// Wait status is 7 bits at bottom, either 0 (exited), -// 0x7F (stopped), or a signal number that caused an exit. -// The 0x80 bit is whether there was a core dump. -// An extra number (exit code, signal causing a stop) -// is in the high bits. - -type WaitStatus uint32 - -const ( - mask = 0x7F - core = 0x80 - shift = 8 - - exited = 0 - stopped = 0x7F -) - -func (w WaitStatus) Exited() bool { return w&mask == exited } - -func (w WaitStatus) ExitStatus() int { - if w&mask != exited { - return -1 - } - return int(w >> shift) -} - -func (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != 0 } - -func (w WaitStatus) Signal() syscall.Signal { - sig := syscall.Signal(w & mask) - if sig == stopped || sig == 0 { - return -1 - } - return sig -} - -func (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 } - -func (w WaitStatus) Stopped() bool { return w&mask == stopped && syscall.Signal(w>>shift) != SIGSTOP } - -func (w WaitStatus) Continued() bool { return w&mask == stopped && syscall.Signal(w>>shift) == SIGSTOP } - -func (w WaitStatus) StopSignal() syscall.Signal { - if !w.Stopped() { - return -1 - } - return syscall.Signal(w>>shift) & 0xFF -} - -func (w WaitStatus) TrapCause() int { return -1 } - -//sys wait4(pid int32, statusp *_C_int, options int, rusage *Rusage) (wpid int32, err error) - -func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (int, error) { - var status _C_int - rpid, err := wait4(int32(pid), &status, options, rusage) - wpid := int(rpid) - if wpid == -1 { - return wpid, err - } - if wstatus != nil { - *wstatus = WaitStatus(status) - } - return wpid, nil -} - -//sys gethostname(buf []byte) (n int, err error) - -func Gethostname() (name string, err error) { - var buf [MaxHostNameLen]byte - n, err := gethostname(buf[:]) - if n != 0 { - return "", err - } - n = clen(buf[:]) - if n < 1 { - return "", EFAULT - } - return string(buf[:n]), nil -} - -//sys utimes(path string, times *[2]Timeval) (err error) - -func Utimes(path string, tv []Timeval) (err error) { - if tv == nil { - return utimes(path, nil) - } - if len(tv) != 2 { - return EINVAL - } - return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) -} - -//sys utimensat(fd int, path string, times *[2]Timespec, flag int) (err error) - -func UtimesNano(path string, ts []Timespec) error { - if ts == nil { - return utimensat(AT_FDCWD, path, nil, 0) - } - if len(ts) != 2 { - return EINVAL - } - return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) -} - -func UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error { - if ts == nil { - return utimensat(dirfd, path, nil, flags) - } - if len(ts) != 2 { - return EINVAL - } - return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags) -} - -//sys fcntl(fd int, cmd int, arg int) (val int, err error) - -// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command. -func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(unsafe.Pointer(lk)), 0, 0, 0) - if e1 != 0 { - return e1 - } - return nil -} - -//sys futimesat(fildes int, path *byte, times *[2]Timeval) (err error) - -func Futimesat(dirfd int, path string, tv []Timeval) error { - pathp, err := BytePtrFromString(path) - if err != nil { - return err - } - if tv == nil { - return futimesat(dirfd, pathp, nil) - } - if len(tv) != 2 { - return EINVAL - } - return futimesat(dirfd, pathp, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) -} - -// Solaris doesn't have an futimes function because it allows NULL to be -// specified as the path for futimesat. However, Go doesn't like -// NULL-style string interfaces, so this simple wrapper is provided. -func Futimes(fd int, tv []Timeval) error { - if tv == nil { - return futimesat(fd, nil, nil) - } - if len(tv) != 2 { - return EINVAL - } - return futimesat(fd, nil, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) -} - -func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, error) { - switch rsa.Addr.Family { - case AF_UNIX: - pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa)) - sa := new(SockaddrUnix) - // Assume path ends at NUL. - // This is not technically the Solaris semantics for - // abstract Unix domain sockets -- they are supposed - // to be uninterpreted fixed-size binary blobs -- but - // everyone uses this convention. - n := 0 - for n < len(pp.Path) && pp.Path[n] != 0 { - n++ - } - bytes := (*[10000]byte)(unsafe.Pointer(&pp.Path[0]))[0:n] - sa.Name = string(bytes) - return sa, nil - - case AF_INET: - pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa)) - sa := new(SockaddrInet4) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - for i := 0; i < len(sa.Addr); i++ { - sa.Addr[i] = pp.Addr[i] - } - return sa, nil - - case AF_INET6: - pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa)) - sa := new(SockaddrInet6) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - sa.ZoneId = pp.Scope_id - for i := 0; i < len(sa.Addr); i++ { - sa.Addr[i] = pp.Addr[i] - } - return sa, nil - } - return nil, EAFNOSUPPORT -} - -//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) = libsocket.accept - -func Accept(fd int) (nfd int, sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - nfd, err = accept(fd, &rsa, &len) - if nfd == -1 { - return - } - sa, err = anyToSockaddr(&rsa) - if err != nil { - Close(nfd) - nfd = 0 - } - return -} - -//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) = libsocket.__xnet_recvmsg - -func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) { - var msg Msghdr - var rsa RawSockaddrAny - msg.Name = (*byte)(unsafe.Pointer(&rsa)) - msg.Namelen = uint32(SizeofSockaddrAny) - var iov Iovec - if len(p) > 0 { - iov.Base = (*int8)(unsafe.Pointer(&p[0])) - iov.SetLen(len(p)) - } - var dummy int8 - if len(oob) > 0 { - // receive at least one normal byte - if len(p) == 0 { - iov.Base = &dummy - iov.SetLen(1) - } - msg.Accrightslen = int32(len(oob)) - } - msg.Iov = &iov - msg.Iovlen = 1 - if n, err = recvmsg(fd, &msg, flags); n == -1 { - return - } - oobn = int(msg.Accrightslen) - // source address is only specified if the socket is unconnected - if rsa.Addr.Family != AF_UNSPEC { - from, err = anyToSockaddr(&rsa) - } - return -} - -func Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) (err error) { - _, err = SendmsgN(fd, p, oob, to, flags) - return -} - -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) = libsocket.__xnet_sendmsg - -func SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) { - var ptr unsafe.Pointer - var salen _Socklen - if to != nil { - ptr, salen, err = to.sockaddr() - if err != nil { - return 0, err - } - } - var msg Msghdr - msg.Name = (*byte)(unsafe.Pointer(ptr)) - msg.Namelen = uint32(salen) - var iov Iovec - if len(p) > 0 { - iov.Base = (*int8)(unsafe.Pointer(&p[0])) - iov.SetLen(len(p)) - } - var dummy int8 - if len(oob) > 0 { - // send at least one normal byte - if len(p) == 0 { - iov.Base = &dummy - iov.SetLen(1) - } - msg.Accrightslen = int32(len(oob)) - } - msg.Iov = &iov - msg.Iovlen = 1 - if n, err = sendmsg(fd, &msg, flags); err != nil { - return 0, err - } - if len(oob) > 0 && len(p) == 0 { - n = 0 - } - return n, nil -} - -//sys acct(path *byte) (err error) - -func Acct(path string) (err error) { - if len(path) == 0 { - // Assume caller wants to disable accounting. - return acct(nil) - } - - pathp, err := BytePtrFromString(path) - if err != nil { - return err - } - return acct(pathp) -} - -/* - * Expose the ioctl function - */ - -//sys ioctl(fd int, req uint, arg uintptr) (err error) - -func IoctlSetInt(fd int, req uint, value int) (err error) { - return ioctl(fd, req, uintptr(value)) -} - -func IoctlSetWinsize(fd int, req uint, value *Winsize) (err error) { - return ioctl(fd, req, uintptr(unsafe.Pointer(value))) -} - -func IoctlSetTermios(fd int, req uint, value *Termios) (err error) { - return ioctl(fd, req, uintptr(unsafe.Pointer(value))) -} - -func IoctlSetTermio(fd int, req uint, value *Termio) (err error) { - return ioctl(fd, req, uintptr(unsafe.Pointer(value))) -} - -func IoctlGetInt(fd int, req uint) (int, error) { - var value int - err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) - return value, err -} - -func IoctlGetWinsize(fd int, req uint) (*Winsize, error) { - var value Winsize - err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) - return &value, err -} - -func IoctlGetTermios(fd int, req uint) (*Termios, error) { - var value Termios - err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) - return &value, err -} - -func IoctlGetTermio(fd int, req uint) (*Termio, error) { - var value Termio - err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) - return &value, err -} - -/* - * Exposed directly - */ -//sys Access(path string, mode uint32) (err error) -//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) -//sys Chdir(path string) (err error) -//sys Chmod(path string, mode uint32) (err error) -//sys Chown(path string, uid int, gid int) (err error) -//sys Chroot(path string) (err error) -//sys Close(fd int) (err error) -//sys Creat(path string, mode uint32) (fd int, err error) -//sys Dup(fd int) (nfd int, err error) -//sys Dup2(oldfd int, newfd int) (err error) -//sys Exit(code int) -//sys Fchdir(fd int) (err error) -//sys Fchmod(fd int, mode uint32) (err error) -//sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) -//sys Fdatasync(fd int) (err error) -//sys Flock(fd int, how int) (err error) -//sys Fpathconf(fd int, name int) (val int, err error) -//sys Fstat(fd int, stat *Stat_t) (err error) -//sys Fstatvfs(fd int, vfsstat *Statvfs_t) (err error) -//sys Getdents(fd int, buf []byte, basep *uintptr) (n int, err error) -//sysnb Getgid() (gid int) -//sysnb Getpid() (pid int) -//sysnb Getpgid(pid int) (pgid int, err error) -//sysnb Getpgrp() (pgid int, err error) -//sys Geteuid() (euid int) -//sys Getegid() (egid int) -//sys Getppid() (ppid int) -//sys Getpriority(which int, who int) (n int, err error) -//sysnb Getrlimit(which int, lim *Rlimit) (err error) -//sysnb Getrusage(who int, rusage *Rusage) (err error) -//sysnb Gettimeofday(tv *Timeval) (err error) -//sysnb Getuid() (uid int) -//sys Kill(pid int, signum syscall.Signal) (err error) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Link(path string, link string) (err error) -//sys Listen(s int, backlog int) (err error) = libsocket.__xnet_llisten -//sys Lstat(path string, stat *Stat_t) (err error) -//sys Madvise(b []byte, advice int) (err error) -//sys Mkdir(path string, mode uint32) (err error) -//sys Mkdirat(dirfd int, path string, mode uint32) (err error) -//sys Mkfifo(path string, mode uint32) (err error) -//sys Mkfifoat(dirfd int, path string, mode uint32) (err error) -//sys Mknod(path string, mode uint32, dev int) (err error) -//sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error) -//sys Mlock(b []byte) (err error) -//sys Mlockall(flags int) (err error) -//sys Mprotect(b []byte, prot int) (err error) -//sys Munlock(b []byte) (err error) -//sys Munlockall() (err error) -//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) -//sys Open(path string, mode int, perm uint32) (fd int, err error) -//sys Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) -//sys Pathconf(path string, name int) (val int, err error) -//sys Pause() (err error) -//sys Pread(fd int, p []byte, offset int64) (n int, err error) -//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) -//sys read(fd int, p []byte) (n int, err error) -//sys Readlink(path string, buf []byte) (n int, err error) -//sys Rename(from string, to string) (err error) -//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) -//sys Rmdir(path string) (err error) -//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = lseek -//sysnb Setegid(egid int) (err error) -//sysnb Seteuid(euid int) (err error) -//sysnb Setgid(gid int) (err error) -//sys Sethostname(p []byte) (err error) -//sysnb Setpgid(pid int, pgid int) (err error) -//sys Setpriority(which int, who int, prio int) (err error) -//sysnb Setregid(rgid int, egid int) (err error) -//sysnb Setreuid(ruid int, euid int) (err error) -//sysnb Setrlimit(which int, lim *Rlimit) (err error) -//sysnb Setsid() (pid int, err error) -//sysnb Setuid(uid int) (err error) -//sys Shutdown(s int, how int) (err error) = libsocket.shutdown -//sys Stat(path string, stat *Stat_t) (err error) -//sys Statvfs(path string, vfsstat *Statvfs_t) (err error) -//sys Symlink(path string, link string) (err error) -//sys Sync() (err error) -//sysnb Times(tms *Tms) (ticks uintptr, err error) -//sys Truncate(path string, length int64) (err error) -//sys Fsync(fd int) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sys Umask(mask int) (oldmask int) -//sysnb Uname(buf *Utsname) (err error) -//sys Unmount(target string, flags int) (err error) = libc.umount -//sys Unlink(path string) (err error) -//sys Unlinkat(dirfd int, path string, flags int) (err error) -//sys Ustat(dev int, ubuf *Ustat_t) (err error) -//sys Utime(path string, buf *Utimbuf) (err error) -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.__xnet_bind -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.__xnet_connect -//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) -//sys munmap(addr uintptr, length uintptr) (err error) -//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.__xnet_sendto -//sys socket(domain int, typ int, proto int) (fd int, err error) = libsocket.__xnet_socket -//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) = libsocket.__xnet_socketpair -//sys write(fd int, p []byte) (n int, err error) -//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) = libsocket.__xnet_getsockopt -//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = libsocket.getpeername -//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) = libsocket.setsockopt -//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) = libsocket.recvfrom - -func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procread)), 3, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf), 0, 0, 0) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwrite)), 3, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf), 0, 0, 0) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -var mapper = &mmapper{ - active: make(map[*byte][]byte), - mmap: mmap, - munmap: munmap, -} - -func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { - return mapper.Mmap(fd, offset, length, prot, flags) -} - -func Munmap(b []byte) (err error) { - return mapper.Munmap(b) -} - -//sys sysconf(name int) (n int64, err error) - -// pageSize caches the value of Getpagesize, since it can't change -// once the system is booted. -var pageSize int64 // accessed atomically - -func Getpagesize() int { - n := atomic.LoadInt64(&pageSize) - if n == 0 { - n, _ = sysconf(_SC_PAGESIZE) - atomic.StoreInt64(&pageSize, n) - } - return int(n) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go b/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go deleted file mode 100644 index 5aff62c..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build amd64,solaris - -package unix - -func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } - -func NsecToTimespec(nsec int64) (ts Timespec) { - ts.Sec = nsec / 1e9 - ts.Nsec = nsec % 1e9 - return -} - -func NsecToTimeval(nsec int64) (tv Timeval) { - nsec += 999 // round up to microsecond - tv.Usec = nsec % 1e9 / 1e3 - tv.Sec = int64(nsec / 1e9) - return -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - // TODO(aram): implement this, see issue 5847. - panic("unimplemented") -} diff --git a/vendor/golang.org/x/sys/unix/syscall_unix.go b/vendor/golang.org/x/sys/unix/syscall_unix.go deleted file mode 100644 index 3ed8a91..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_unix.go +++ /dev/null @@ -1,293 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build darwin dragonfly freebsd linux netbsd openbsd solaris - -package unix - -import ( - "runtime" - "sync" - "syscall" - "unsafe" -) - -var ( - Stdin = 0 - Stdout = 1 - Stderr = 2 -) - -const ( - darwin64Bit = runtime.GOOS == "darwin" && sizeofPtr == 8 - dragonfly64Bit = runtime.GOOS == "dragonfly" && sizeofPtr == 8 - netbsd32Bit = runtime.GOOS == "netbsd" && sizeofPtr == 4 - solaris64Bit = runtime.GOOS == "solaris" && sizeofPtr == 8 -) - -// Do the interface allocations only once for common -// Errno values. -var ( - errEAGAIN error = syscall.EAGAIN - errEINVAL error = syscall.EINVAL - errENOENT error = syscall.ENOENT -) - -// errnoErr returns common boxed Errno values, to prevent -// allocations at runtime. -func errnoErr(e syscall.Errno) error { - switch e { - case 0: - return nil - case EAGAIN: - return errEAGAIN - case EINVAL: - return errEINVAL - case ENOENT: - return errENOENT - } - return e -} - -// Mmap manager, for use by operating system-specific implementations. - -type mmapper struct { - sync.Mutex - active map[*byte][]byte // active mappings; key is last byte in mapping - mmap func(addr, length uintptr, prot, flags, fd int, offset int64) (uintptr, error) - munmap func(addr uintptr, length uintptr) error -} - -func (m *mmapper) Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { - if length <= 0 { - return nil, EINVAL - } - - // Map the requested memory. - addr, errno := m.mmap(0, uintptr(length), prot, flags, fd, offset) - if errno != nil { - return nil, errno - } - - // Slice memory layout - var sl = struct { - addr uintptr - len int - cap int - }{addr, length, length} - - // Use unsafe to turn sl into a []byte. - b := *(*[]byte)(unsafe.Pointer(&sl)) - - // Register mapping in m and return it. - p := &b[cap(b)-1] - m.Lock() - defer m.Unlock() - m.active[p] = b - return b, nil -} - -func (m *mmapper) Munmap(data []byte) (err error) { - if len(data) == 0 || len(data) != cap(data) { - return EINVAL - } - - // Find the base of the mapping. - p := &data[cap(data)-1] - m.Lock() - defer m.Unlock() - b := m.active[p] - if b == nil || &b[0] != &data[0] { - return EINVAL - } - - // Unmap the memory and update m. - if errno := m.munmap(uintptr(unsafe.Pointer(&b[0])), uintptr(len(b))); errno != nil { - return errno - } - delete(m.active, p) - return nil -} - -func Read(fd int, p []byte) (n int, err error) { - n, err = read(fd, p) - if raceenabled { - if n > 0 { - raceWriteRange(unsafe.Pointer(&p[0]), n) - } - if err == nil { - raceAcquire(unsafe.Pointer(&ioSync)) - } - } - return -} - -func Write(fd int, p []byte) (n int, err error) { - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - n, err = write(fd, p) - if raceenabled && n > 0 { - raceReadRange(unsafe.Pointer(&p[0]), n) - } - return -} - -// For testing: clients can set this flag to force -// creation of IPv6 sockets to return EAFNOSUPPORT. -var SocketDisableIPv6 bool - -type Sockaddr interface { - sockaddr() (ptr unsafe.Pointer, len _Socklen, err error) // lowercase; only we can define Sockaddrs -} - -type SockaddrInet4 struct { - Port int - Addr [4]byte - raw RawSockaddrInet4 -} - -type SockaddrInet6 struct { - Port int - ZoneId uint32 - Addr [16]byte - raw RawSockaddrInet6 -} - -type SockaddrUnix struct { - Name string - raw RawSockaddrUnix -} - -func Bind(fd int, sa Sockaddr) (err error) { - ptr, n, err := sa.sockaddr() - if err != nil { - return err - } - return bind(fd, ptr, n) -} - -func Connect(fd int, sa Sockaddr) (err error) { - ptr, n, err := sa.sockaddr() - if err != nil { - return err - } - return connect(fd, ptr, n) -} - -func Getpeername(fd int) (sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - if err = getpeername(fd, &rsa, &len); err != nil { - return - } - return anyToSockaddr(&rsa) -} - -func GetsockoptInt(fd, level, opt int) (value int, err error) { - var n int32 - vallen := _Socklen(4) - err = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen) - return int(n), err -} - -func Recvfrom(fd int, p []byte, flags int) (n int, from Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - if n, err = recvfrom(fd, p, flags, &rsa, &len); err != nil { - return - } - if rsa.Addr.Family != AF_UNSPEC { - from, err = anyToSockaddr(&rsa) - } - return -} - -func Sendto(fd int, p []byte, flags int, to Sockaddr) (err error) { - ptr, n, err := to.sockaddr() - if err != nil { - return err - } - return sendto(fd, p, flags, ptr, n) -} - -func SetsockoptByte(fd, level, opt int, value byte) (err error) { - return setsockopt(fd, level, opt, unsafe.Pointer(&value), 1) -} - -func SetsockoptInt(fd, level, opt int, value int) (err error) { - var n = int32(value) - return setsockopt(fd, level, opt, unsafe.Pointer(&n), 4) -} - -func SetsockoptInet4Addr(fd, level, opt int, value [4]byte) (err error) { - return setsockopt(fd, level, opt, unsafe.Pointer(&value[0]), 4) -} - -func SetsockoptIPMreq(fd, level, opt int, mreq *IPMreq) (err error) { - return setsockopt(fd, level, opt, unsafe.Pointer(mreq), SizeofIPMreq) -} - -func SetsockoptIPv6Mreq(fd, level, opt int, mreq *IPv6Mreq) (err error) { - return setsockopt(fd, level, opt, unsafe.Pointer(mreq), SizeofIPv6Mreq) -} - -func SetsockoptICMPv6Filter(fd, level, opt int, filter *ICMPv6Filter) error { - return setsockopt(fd, level, opt, unsafe.Pointer(filter), SizeofICMPv6Filter) -} - -func SetsockoptLinger(fd, level, opt int, l *Linger) (err error) { - return setsockopt(fd, level, opt, unsafe.Pointer(l), SizeofLinger) -} - -func SetsockoptString(fd, level, opt int, s string) (err error) { - return setsockopt(fd, level, opt, unsafe.Pointer(&[]byte(s)[0]), uintptr(len(s))) -} - -func SetsockoptTimeval(fd, level, opt int, tv *Timeval) (err error) { - return setsockopt(fd, level, opt, unsafe.Pointer(tv), unsafe.Sizeof(*tv)) -} - -func Socket(domain, typ, proto int) (fd int, err error) { - if domain == AF_INET6 && SocketDisableIPv6 { - return -1, EAFNOSUPPORT - } - fd, err = socket(domain, typ, proto) - return -} - -func Socketpair(domain, typ, proto int) (fd [2]int, err error) { - var fdx [2]int32 - err = socketpair(domain, typ, proto, &fdx) - if err == nil { - fd[0] = int(fdx[0]) - fd[1] = int(fdx[1]) - } - return -} - -func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - return sendfile(outfd, infd, offset, count) -} - -var ioSync int64 - -func CloseOnExec(fd int) { fcntl(fd, F_SETFD, FD_CLOEXEC) } - -func SetNonblock(fd int, nonblocking bool) (err error) { - flag, err := fcntl(fd, F_GETFL, 0) - if err != nil { - return err - } - if nonblocking { - flag |= O_NONBLOCK - } else { - flag &= ^O_NONBLOCK - } - _, err = fcntl(fd, F_SETFL, flag) - return err -} diff --git a/vendor/golang.org/x/sys/unix/syscall_unix_gc.go b/vendor/golang.org/x/sys/unix/syscall_unix_gc.go deleted file mode 100644 index 4cb8e8e..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_unix_gc.go +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build darwin dragonfly freebsd linux netbsd openbsd solaris -// +build !gccgo - -package unix - -import "syscall" - -func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) -func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) -func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) -func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) diff --git a/vendor/golang.org/x/sys/unix/types_darwin.go b/vendor/golang.org/x/sys/unix/types_darwin.go deleted file mode 100644 index 415124d..0000000 --- a/vendor/golang.org/x/sys/unix/types_darwin.go +++ /dev/null @@ -1,254 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -/* -Input to cgo -godefs. See README.md -*/ - -// +godefs map struct_in_addr [4]byte /* in_addr */ -// +godefs map struct_in6_addr [16]byte /* in6_addr */ - -package unix - -/* -#define __DARWIN_UNIX03 0 -#define KERNEL -#define _DARWIN_USE_64_BIT_INODE -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -enum { - sizeofPtr = sizeof(void*), -}; - -union sockaddr_all { - struct sockaddr s1; // this one gets used for fields - struct sockaddr_in s2; // these pad it out - struct sockaddr_in6 s3; - struct sockaddr_un s4; - struct sockaddr_dl s5; -}; - -struct sockaddr_any { - struct sockaddr addr; - char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)]; -}; - -*/ -import "C" - -// Machine characteristics; for internal use. - -const ( - sizeofPtr = C.sizeofPtr - sizeofShort = C.sizeof_short - sizeofInt = C.sizeof_int - sizeofLong = C.sizeof_long - sizeofLongLong = C.sizeof_longlong -) - -// Basic types - -type ( - _C_short C.short - _C_int C.int - _C_long C.long - _C_long_long C.longlong -) - -// Time - -type Timespec C.struct_timespec - -type Timeval C.struct_timeval - -type Timeval32 C.struct_timeval32 - -// Processes - -type Rusage C.struct_rusage - -type Rlimit C.struct_rlimit - -type _Gid_t C.gid_t - -// Files - -type Stat_t C.struct_stat64 - -type Statfs_t C.struct_statfs64 - -type Flock_t C.struct_flock - -type Fstore_t C.struct_fstore - -type Radvisory_t C.struct_radvisory - -type Fbootstraptransfer_t C.struct_fbootstraptransfer - -type Log2phys_t C.struct_log2phys - -type Fsid C.struct_fsid - -type Dirent C.struct_dirent - -// Sockets - -type RawSockaddrInet4 C.struct_sockaddr_in - -type RawSockaddrInet6 C.struct_sockaddr_in6 - -type RawSockaddrUnix C.struct_sockaddr_un - -type RawSockaddrDatalink C.struct_sockaddr_dl - -type RawSockaddr C.struct_sockaddr - -type RawSockaddrAny C.struct_sockaddr_any - -type _Socklen C.socklen_t - -type Linger C.struct_linger - -type Iovec C.struct_iovec - -type IPMreq C.struct_ip_mreq - -type IPv6Mreq C.struct_ipv6_mreq - -type Msghdr C.struct_msghdr - -type Cmsghdr C.struct_cmsghdr - -type Inet4Pktinfo C.struct_in_pktinfo - -type Inet6Pktinfo C.struct_in6_pktinfo - -type IPv6MTUInfo C.struct_ip6_mtuinfo - -type ICMPv6Filter C.struct_icmp6_filter - -const ( - SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in - SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 - SizeofSockaddrAny = C.sizeof_struct_sockaddr_any - SizeofSockaddrUnix = C.sizeof_struct_sockaddr_un - SizeofSockaddrDatalink = C.sizeof_struct_sockaddr_dl - SizeofLinger = C.sizeof_struct_linger - SizeofIPMreq = C.sizeof_struct_ip_mreq - SizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq - SizeofMsghdr = C.sizeof_struct_msghdr - SizeofCmsghdr = C.sizeof_struct_cmsghdr - SizeofInet4Pktinfo = C.sizeof_struct_in_pktinfo - SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo - SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo - SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter -) - -// Ptrace requests - -const ( - PTRACE_TRACEME = C.PT_TRACE_ME - PTRACE_CONT = C.PT_CONTINUE - PTRACE_KILL = C.PT_KILL -) - -// Events (kqueue, kevent) - -type Kevent_t C.struct_kevent - -// Select - -type FdSet C.fd_set - -// Routing and interface messages - -const ( - SizeofIfMsghdr = C.sizeof_struct_if_msghdr - SizeofIfData = C.sizeof_struct_if_data - SizeofIfaMsghdr = C.sizeof_struct_ifa_msghdr - SizeofIfmaMsghdr = C.sizeof_struct_ifma_msghdr - SizeofIfmaMsghdr2 = C.sizeof_struct_ifma_msghdr2 - SizeofRtMsghdr = C.sizeof_struct_rt_msghdr - SizeofRtMetrics = C.sizeof_struct_rt_metrics -) - -type IfMsghdr C.struct_if_msghdr - -type IfData C.struct_if_data - -type IfaMsghdr C.struct_ifa_msghdr - -type IfmaMsghdr C.struct_ifma_msghdr - -type IfmaMsghdr2 C.struct_ifma_msghdr2 - -type RtMsghdr C.struct_rt_msghdr - -type RtMetrics C.struct_rt_metrics - -// Berkeley packet filter - -const ( - SizeofBpfVersion = C.sizeof_struct_bpf_version - SizeofBpfStat = C.sizeof_struct_bpf_stat - SizeofBpfProgram = C.sizeof_struct_bpf_program - SizeofBpfInsn = C.sizeof_struct_bpf_insn - SizeofBpfHdr = C.sizeof_struct_bpf_hdr -) - -type BpfVersion C.struct_bpf_version - -type BpfStat C.struct_bpf_stat - -type BpfProgram C.struct_bpf_program - -type BpfInsn C.struct_bpf_insn - -type BpfHdr C.struct_bpf_hdr - -// Terminal handling - -type Termios C.struct_termios - -type Winsize C.struct_winsize - -// fchmodat-like syscalls. - -const ( - AT_FDCWD = C.AT_FDCWD - AT_REMOVEDIR = C.AT_REMOVEDIR - AT_SYMLINK_FOLLOW = C.AT_SYMLINK_FOLLOW - AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW -) diff --git a/vendor/golang.org/x/sys/unix/types_dragonfly.go b/vendor/golang.org/x/sys/unix/types_dragonfly.go deleted file mode 100644 index 80b2778..0000000 --- a/vendor/golang.org/x/sys/unix/types_dragonfly.go +++ /dev/null @@ -1,249 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -/* -Input to cgo -godefs. See README.md -*/ - -// +godefs map struct_in_addr [4]byte /* in_addr */ -// +godefs map struct_in6_addr [16]byte /* in6_addr */ - -package unix - -/* -#define KERNEL -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -enum { - sizeofPtr = sizeof(void*), -}; - -union sockaddr_all { - struct sockaddr s1; // this one gets used for fields - struct sockaddr_in s2; // these pad it out - struct sockaddr_in6 s3; - struct sockaddr_un s4; - struct sockaddr_dl s5; -}; - -struct sockaddr_any { - struct sockaddr addr; - char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)]; -}; - -*/ -import "C" - -// Machine characteristics; for internal use. - -const ( - sizeofPtr = C.sizeofPtr - sizeofShort = C.sizeof_short - sizeofInt = C.sizeof_int - sizeofLong = C.sizeof_long - sizeofLongLong = C.sizeof_longlong -) - -// Basic types - -type ( - _C_short C.short - _C_int C.int - _C_long C.long - _C_long_long C.longlong -) - -// Time - -type Timespec C.struct_timespec - -type Timeval C.struct_timeval - -// Processes - -type Rusage C.struct_rusage - -type Rlimit C.struct_rlimit - -type _Gid_t C.gid_t - -// Files - -const ( // Directory mode bits - S_IFMT = C.S_IFMT - S_IFIFO = C.S_IFIFO - S_IFCHR = C.S_IFCHR - S_IFDIR = C.S_IFDIR - S_IFBLK = C.S_IFBLK - S_IFREG = C.S_IFREG - S_IFLNK = C.S_IFLNK - S_IFSOCK = C.S_IFSOCK - S_ISUID = C.S_ISUID - S_ISGID = C.S_ISGID - S_ISVTX = C.S_ISVTX - S_IRUSR = C.S_IRUSR - S_IWUSR = C.S_IWUSR - S_IXUSR = C.S_IXUSR -) - -type Stat_t C.struct_stat - -type Statfs_t C.struct_statfs - -type Flock_t C.struct_flock - -type Dirent C.struct_dirent - -type Fsid C.struct_fsid - -// Sockets - -type RawSockaddrInet4 C.struct_sockaddr_in - -type RawSockaddrInet6 C.struct_sockaddr_in6 - -type RawSockaddrUnix C.struct_sockaddr_un - -type RawSockaddrDatalink C.struct_sockaddr_dl - -type RawSockaddr C.struct_sockaddr - -type RawSockaddrAny C.struct_sockaddr_any - -type _Socklen C.socklen_t - -type Linger C.struct_linger - -type Iovec C.struct_iovec - -type IPMreq C.struct_ip_mreq - -type IPv6Mreq C.struct_ipv6_mreq - -type Msghdr C.struct_msghdr - -type Cmsghdr C.struct_cmsghdr - -type Inet6Pktinfo C.struct_in6_pktinfo - -type IPv6MTUInfo C.struct_ip6_mtuinfo - -type ICMPv6Filter C.struct_icmp6_filter - -const ( - SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in - SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 - SizeofSockaddrAny = C.sizeof_struct_sockaddr_any - SizeofSockaddrUnix = C.sizeof_struct_sockaddr_un - SizeofSockaddrDatalink = C.sizeof_struct_sockaddr_dl - SizeofLinger = C.sizeof_struct_linger - SizeofIPMreq = C.sizeof_struct_ip_mreq - SizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq - SizeofMsghdr = C.sizeof_struct_msghdr - SizeofCmsghdr = C.sizeof_struct_cmsghdr - SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo - SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo - SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter -) - -// Ptrace requests - -const ( - PTRACE_TRACEME = C.PT_TRACE_ME - PTRACE_CONT = C.PT_CONTINUE - PTRACE_KILL = C.PT_KILL -) - -// Events (kqueue, kevent) - -type Kevent_t C.struct_kevent - -// Select - -type FdSet C.fd_set - -// Routing and interface messages - -const ( - SizeofIfMsghdr = C.sizeof_struct_if_msghdr - SizeofIfData = C.sizeof_struct_if_data - SizeofIfaMsghdr = C.sizeof_struct_ifa_msghdr - SizeofIfmaMsghdr = C.sizeof_struct_ifma_msghdr - SizeofIfAnnounceMsghdr = C.sizeof_struct_if_announcemsghdr - SizeofRtMsghdr = C.sizeof_struct_rt_msghdr - SizeofRtMetrics = C.sizeof_struct_rt_metrics -) - -type IfMsghdr C.struct_if_msghdr - -type IfData C.struct_if_data - -type IfaMsghdr C.struct_ifa_msghdr - -type IfmaMsghdr C.struct_ifma_msghdr - -type IfAnnounceMsghdr C.struct_if_announcemsghdr - -type RtMsghdr C.struct_rt_msghdr - -type RtMetrics C.struct_rt_metrics - -// Berkeley packet filter - -const ( - SizeofBpfVersion = C.sizeof_struct_bpf_version - SizeofBpfStat = C.sizeof_struct_bpf_stat - SizeofBpfProgram = C.sizeof_struct_bpf_program - SizeofBpfInsn = C.sizeof_struct_bpf_insn - SizeofBpfHdr = C.sizeof_struct_bpf_hdr -) - -type BpfVersion C.struct_bpf_version - -type BpfStat C.struct_bpf_stat - -type BpfProgram C.struct_bpf_program - -type BpfInsn C.struct_bpf_insn - -type BpfHdr C.struct_bpf_hdr - -// Terminal handling - -type Termios C.struct_termios - -// fchmodat-like syscalls. - -const ( - AT_FDCWD = C.AT_FDCWD - AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW -) diff --git a/vendor/golang.org/x/sys/unix/types_freebsd.go b/vendor/golang.org/x/sys/unix/types_freebsd.go deleted file mode 100644 index 934fd7a..0000000 --- a/vendor/golang.org/x/sys/unix/types_freebsd.go +++ /dev/null @@ -1,372 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -/* -Input to cgo -godefs. See README.md -*/ - -// +godefs map struct_in_addr [4]byte /* in_addr */ -// +godefs map struct_in6_addr [16]byte /* in6_addr */ - -package unix - -/* -#define KERNEL -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -enum { - sizeofPtr = sizeof(void*), -}; - -union sockaddr_all { - struct sockaddr s1; // this one gets used for fields - struct sockaddr_in s2; // these pad it out - struct sockaddr_in6 s3; - struct sockaddr_un s4; - struct sockaddr_dl s5; -}; - -struct sockaddr_any { - struct sockaddr addr; - char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)]; -}; - -// This structure is a duplicate of stat on FreeBSD 8-STABLE. -// See /usr/include/sys/stat.h. -struct stat8 { -#undef st_atimespec st_atim -#undef st_mtimespec st_mtim -#undef st_ctimespec st_ctim -#undef st_birthtimespec st_birthtim - __dev_t st_dev; - ino_t st_ino; - mode_t st_mode; - nlink_t st_nlink; - uid_t st_uid; - gid_t st_gid; - __dev_t st_rdev; -#if __BSD_VISIBLE - struct timespec st_atimespec; - struct timespec st_mtimespec; - struct timespec st_ctimespec; -#else - time_t st_atime; - long __st_atimensec; - time_t st_mtime; - long __st_mtimensec; - time_t st_ctime; - long __st_ctimensec; -#endif - off_t st_size; - blkcnt_t st_blocks; - blksize_t st_blksize; - fflags_t st_flags; - __uint32_t st_gen; - __int32_t st_lspare; -#if __BSD_VISIBLE - struct timespec st_birthtimespec; - unsigned int :(8 / 2) * (16 - (int)sizeof(struct timespec)); - unsigned int :(8 / 2) * (16 - (int)sizeof(struct timespec)); -#else - time_t st_birthtime; - long st_birthtimensec; - unsigned int :(8 / 2) * (16 - (int)sizeof(struct __timespec)); - unsigned int :(8 / 2) * (16 - (int)sizeof(struct __timespec)); -#endif -}; - -// This structure is a duplicate of if_data on FreeBSD 8-STABLE. -// See /usr/include/net/if.h. -struct if_data8 { - u_char ifi_type; - u_char ifi_physical; - u_char ifi_addrlen; - u_char ifi_hdrlen; - u_char ifi_link_state; - u_char ifi_spare_char1; - u_char ifi_spare_char2; - u_char ifi_datalen; - u_long ifi_mtu; - u_long ifi_metric; - u_long ifi_baudrate; - u_long ifi_ipackets; - u_long ifi_ierrors; - u_long ifi_opackets; - u_long ifi_oerrors; - u_long ifi_collisions; - u_long ifi_ibytes; - u_long ifi_obytes; - u_long ifi_imcasts; - u_long ifi_omcasts; - u_long ifi_iqdrops; - u_long ifi_noproto; - u_long ifi_hwassist; -// FIXME: these are now unions, so maybe need to change definitions? -#undef ifi_epoch - time_t ifi_epoch; -#undef ifi_lastchange - struct timeval ifi_lastchange; -}; - -// This structure is a duplicate of if_msghdr on FreeBSD 8-STABLE. -// See /usr/include/net/if.h. -struct if_msghdr8 { - u_short ifm_msglen; - u_char ifm_version; - u_char ifm_type; - int ifm_addrs; - int ifm_flags; - u_short ifm_index; - struct if_data8 ifm_data; -}; -*/ -import "C" - -// Machine characteristics; for internal use. - -const ( - sizeofPtr = C.sizeofPtr - sizeofShort = C.sizeof_short - sizeofInt = C.sizeof_int - sizeofLong = C.sizeof_long - sizeofLongLong = C.sizeof_longlong -) - -// Basic types - -type ( - _C_short C.short - _C_int C.int - _C_long C.long - _C_long_long C.longlong -) - -// Time - -type Timespec C.struct_timespec - -type Timeval C.struct_timeval - -// Processes - -type Rusage C.struct_rusage - -type Rlimit C.struct_rlimit - -type _Gid_t C.gid_t - -// Files - -const ( // Directory mode bits - S_IFMT = C.S_IFMT - S_IFIFO = C.S_IFIFO - S_IFCHR = C.S_IFCHR - S_IFDIR = C.S_IFDIR - S_IFBLK = C.S_IFBLK - S_IFREG = C.S_IFREG - S_IFLNK = C.S_IFLNK - S_IFSOCK = C.S_IFSOCK - S_ISUID = C.S_ISUID - S_ISGID = C.S_ISGID - S_ISVTX = C.S_ISVTX - S_IRUSR = C.S_IRUSR - S_IWUSR = C.S_IWUSR - S_IXUSR = C.S_IXUSR -) - -type Stat_t C.struct_stat8 - -type Statfs_t C.struct_statfs - -type Flock_t C.struct_flock - -type Dirent C.struct_dirent - -type Fsid C.struct_fsid - -// Advice to Fadvise - -const ( - FADV_NORMAL = C.POSIX_FADV_NORMAL - FADV_RANDOM = C.POSIX_FADV_RANDOM - FADV_SEQUENTIAL = C.POSIX_FADV_SEQUENTIAL - FADV_WILLNEED = C.POSIX_FADV_WILLNEED - FADV_DONTNEED = C.POSIX_FADV_DONTNEED - FADV_NOREUSE = C.POSIX_FADV_NOREUSE -) - -// Sockets - -type RawSockaddrInet4 C.struct_sockaddr_in - -type RawSockaddrInet6 C.struct_sockaddr_in6 - -type RawSockaddrUnix C.struct_sockaddr_un - -type RawSockaddrDatalink C.struct_sockaddr_dl - -type RawSockaddr C.struct_sockaddr - -type RawSockaddrAny C.struct_sockaddr_any - -type _Socklen C.socklen_t - -type Linger C.struct_linger - -type Iovec C.struct_iovec - -type IPMreq C.struct_ip_mreq - -type IPMreqn C.struct_ip_mreqn - -type IPv6Mreq C.struct_ipv6_mreq - -type Msghdr C.struct_msghdr - -type Cmsghdr C.struct_cmsghdr - -type Inet6Pktinfo C.struct_in6_pktinfo - -type IPv6MTUInfo C.struct_ip6_mtuinfo - -type ICMPv6Filter C.struct_icmp6_filter - -const ( - SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in - SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 - SizeofSockaddrAny = C.sizeof_struct_sockaddr_any - SizeofSockaddrUnix = C.sizeof_struct_sockaddr_un - SizeofSockaddrDatalink = C.sizeof_struct_sockaddr_dl - SizeofLinger = C.sizeof_struct_linger - SizeofIPMreq = C.sizeof_struct_ip_mreq - SizeofIPMreqn = C.sizeof_struct_ip_mreqn - SizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq - SizeofMsghdr = C.sizeof_struct_msghdr - SizeofCmsghdr = C.sizeof_struct_cmsghdr - SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo - SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo - SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter -) - -// Ptrace requests - -const ( - PTRACE_TRACEME = C.PT_TRACE_ME - PTRACE_CONT = C.PT_CONTINUE - PTRACE_KILL = C.PT_KILL -) - -// Events (kqueue, kevent) - -type Kevent_t C.struct_kevent - -// Select - -type FdSet C.fd_set - -// Routing and interface messages - -const ( - sizeofIfMsghdr = C.sizeof_struct_if_msghdr - SizeofIfMsghdr = C.sizeof_struct_if_msghdr8 - sizeofIfData = C.sizeof_struct_if_data - SizeofIfData = C.sizeof_struct_if_data8 - SizeofIfaMsghdr = C.sizeof_struct_ifa_msghdr - SizeofIfmaMsghdr = C.sizeof_struct_ifma_msghdr - SizeofIfAnnounceMsghdr = C.sizeof_struct_if_announcemsghdr - SizeofRtMsghdr = C.sizeof_struct_rt_msghdr - SizeofRtMetrics = C.sizeof_struct_rt_metrics -) - -type ifMsghdr C.struct_if_msghdr - -type IfMsghdr C.struct_if_msghdr8 - -type ifData C.struct_if_data - -type IfData C.struct_if_data8 - -type IfaMsghdr C.struct_ifa_msghdr - -type IfmaMsghdr C.struct_ifma_msghdr - -type IfAnnounceMsghdr C.struct_if_announcemsghdr - -type RtMsghdr C.struct_rt_msghdr - -type RtMetrics C.struct_rt_metrics - -// Berkeley packet filter - -const ( - SizeofBpfVersion = C.sizeof_struct_bpf_version - SizeofBpfStat = C.sizeof_struct_bpf_stat - SizeofBpfZbuf = C.sizeof_struct_bpf_zbuf - SizeofBpfProgram = C.sizeof_struct_bpf_program - SizeofBpfInsn = C.sizeof_struct_bpf_insn - SizeofBpfHdr = C.sizeof_struct_bpf_hdr - SizeofBpfZbufHeader = C.sizeof_struct_bpf_zbuf_header -) - -type BpfVersion C.struct_bpf_version - -type BpfStat C.struct_bpf_stat - -type BpfZbuf C.struct_bpf_zbuf - -type BpfProgram C.struct_bpf_program - -type BpfInsn C.struct_bpf_insn - -type BpfHdr C.struct_bpf_hdr - -type BpfZbufHeader C.struct_bpf_zbuf_header - -// Terminal handling - -type Termios C.struct_termios - -type Winsize C.struct_winsize - -// fchmodat-like syscalls. - -const ( - AT_FDCWD = C.AT_FDCWD - AT_REMOVEDIR = C.AT_REMOVEDIR - AT_SYMLINK_FOLLOW = C.AT_SYMLINK_FOLLOW - AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW -) - -// Capabilities - -type CapRights C.struct_cap_rights diff --git a/vendor/golang.org/x/sys/unix/types_netbsd.go b/vendor/golang.org/x/sys/unix/types_netbsd.go deleted file mode 100644 index cb95c80..0000000 --- a/vendor/golang.org/x/sys/unix/types_netbsd.go +++ /dev/null @@ -1,239 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -/* -Input to cgo -godefs. See README.md -*/ - -// +godefs map struct_in_addr [4]byte /* in_addr */ -// +godefs map struct_in6_addr [16]byte /* in6_addr */ - -package unix - -/* -#define KERNEL -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -enum { - sizeofPtr = sizeof(void*), -}; - -union sockaddr_all { - struct sockaddr s1; // this one gets used for fields - struct sockaddr_in s2; // these pad it out - struct sockaddr_in6 s3; - struct sockaddr_un s4; - struct sockaddr_dl s5; -}; - -struct sockaddr_any { - struct sockaddr addr; - char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)]; -}; - -*/ -import "C" - -// Machine characteristics; for internal use. - -const ( - sizeofPtr = C.sizeofPtr - sizeofShort = C.sizeof_short - sizeofInt = C.sizeof_int - sizeofLong = C.sizeof_long - sizeofLongLong = C.sizeof_longlong -) - -// Basic types - -type ( - _C_short C.short - _C_int C.int - _C_long C.long - _C_long_long C.longlong -) - -// Time - -type Timespec C.struct_timespec - -type Timeval C.struct_timeval - -// Processes - -type Rusage C.struct_rusage - -type Rlimit C.struct_rlimit - -type _Gid_t C.gid_t - -// Files - -type Stat_t C.struct_stat - -type Statfs_t C.struct_statfs - -type Flock_t C.struct_flock - -type Dirent C.struct_dirent - -type Fsid C.fsid_t - -// Sockets - -type RawSockaddrInet4 C.struct_sockaddr_in - -type RawSockaddrInet6 C.struct_sockaddr_in6 - -type RawSockaddrUnix C.struct_sockaddr_un - -type RawSockaddrDatalink C.struct_sockaddr_dl - -type RawSockaddr C.struct_sockaddr - -type RawSockaddrAny C.struct_sockaddr_any - -type _Socklen C.socklen_t - -type Linger C.struct_linger - -type Iovec C.struct_iovec - -type IPMreq C.struct_ip_mreq - -type IPv6Mreq C.struct_ipv6_mreq - -type Msghdr C.struct_msghdr - -type Cmsghdr C.struct_cmsghdr - -type Inet6Pktinfo C.struct_in6_pktinfo - -type IPv6MTUInfo C.struct_ip6_mtuinfo - -type ICMPv6Filter C.struct_icmp6_filter - -const ( - SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in - SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 - SizeofSockaddrAny = C.sizeof_struct_sockaddr_any - SizeofSockaddrUnix = C.sizeof_struct_sockaddr_un - SizeofSockaddrDatalink = C.sizeof_struct_sockaddr_dl - SizeofLinger = C.sizeof_struct_linger - SizeofIPMreq = C.sizeof_struct_ip_mreq - SizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq - SizeofMsghdr = C.sizeof_struct_msghdr - SizeofCmsghdr = C.sizeof_struct_cmsghdr - SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo - SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo - SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter -) - -// Ptrace requests - -const ( - PTRACE_TRACEME = C.PT_TRACE_ME - PTRACE_CONT = C.PT_CONTINUE - PTRACE_KILL = C.PT_KILL -) - -// Events (kqueue, kevent) - -type Kevent_t C.struct_kevent - -// Select - -type FdSet C.fd_set - -// Routing and interface messages - -const ( - SizeofIfMsghdr = C.sizeof_struct_if_msghdr - SizeofIfData = C.sizeof_struct_if_data - SizeofIfaMsghdr = C.sizeof_struct_ifa_msghdr - SizeofIfAnnounceMsghdr = C.sizeof_struct_if_announcemsghdr - SizeofRtMsghdr = C.sizeof_struct_rt_msghdr - SizeofRtMetrics = C.sizeof_struct_rt_metrics -) - -type IfMsghdr C.struct_if_msghdr - -type IfData C.struct_if_data - -type IfaMsghdr C.struct_ifa_msghdr - -type IfAnnounceMsghdr C.struct_if_announcemsghdr - -type RtMsghdr C.struct_rt_msghdr - -type RtMetrics C.struct_rt_metrics - -type Mclpool C.struct_mclpool - -// Berkeley packet filter - -const ( - SizeofBpfVersion = C.sizeof_struct_bpf_version - SizeofBpfStat = C.sizeof_struct_bpf_stat - SizeofBpfProgram = C.sizeof_struct_bpf_program - SizeofBpfInsn = C.sizeof_struct_bpf_insn - SizeofBpfHdr = C.sizeof_struct_bpf_hdr -) - -type BpfVersion C.struct_bpf_version - -type BpfStat C.struct_bpf_stat - -type BpfProgram C.struct_bpf_program - -type BpfInsn C.struct_bpf_insn - -type BpfHdr C.struct_bpf_hdr - -type BpfTimeval C.struct_bpf_timeval - -// Terminal handling - -type Termios C.struct_termios - -// fchmodat-like syscalls. - -const ( - AT_FDCWD = C.AT_FDCWD - AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW -) - -// Sysctl - -type Sysctlnode C.struct_sysctlnode diff --git a/vendor/golang.org/x/sys/unix/types_openbsd.go b/vendor/golang.org/x/sys/unix/types_openbsd.go deleted file mode 100644 index 392da69..0000000 --- a/vendor/golang.org/x/sys/unix/types_openbsd.go +++ /dev/null @@ -1,251 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -/* -Input to cgo -godefs. See README.md -*/ - -// +godefs map struct_in_addr [4]byte /* in_addr */ -// +godefs map struct_in6_addr [16]byte /* in6_addr */ - -package unix - -/* -#define KERNEL -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -enum { - sizeofPtr = sizeof(void*), -}; - -union sockaddr_all { - struct sockaddr s1; // this one gets used for fields - struct sockaddr_in s2; // these pad it out - struct sockaddr_in6 s3; - struct sockaddr_un s4; - struct sockaddr_dl s5; -}; - -struct sockaddr_any { - struct sockaddr addr; - char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)]; -}; - -*/ -import "C" - -// Machine characteristics; for internal use. - -const ( - sizeofPtr = C.sizeofPtr - sizeofShort = C.sizeof_short - sizeofInt = C.sizeof_int - sizeofLong = C.sizeof_long - sizeofLongLong = C.sizeof_longlong -) - -// Basic types - -type ( - _C_short C.short - _C_int C.int - _C_long C.long - _C_long_long C.longlong -) - -// Time - -type Timespec C.struct_timespec - -type Timeval C.struct_timeval - -// Processes - -type Rusage C.struct_rusage - -type Rlimit C.struct_rlimit - -type _Gid_t C.gid_t - -// Files - -const ( // Directory mode bits - S_IFMT = C.S_IFMT - S_IFIFO = C.S_IFIFO - S_IFCHR = C.S_IFCHR - S_IFDIR = C.S_IFDIR - S_IFBLK = C.S_IFBLK - S_IFREG = C.S_IFREG - S_IFLNK = C.S_IFLNK - S_IFSOCK = C.S_IFSOCK - S_ISUID = C.S_ISUID - S_ISGID = C.S_ISGID - S_ISVTX = C.S_ISVTX - S_IRUSR = C.S_IRUSR - S_IWUSR = C.S_IWUSR - S_IXUSR = C.S_IXUSR -) - -type Stat_t C.struct_stat - -type Statfs_t C.struct_statfs - -type Flock_t C.struct_flock - -type Dirent C.struct_dirent - -type Fsid C.fsid_t - -// Sockets - -type RawSockaddrInet4 C.struct_sockaddr_in - -type RawSockaddrInet6 C.struct_sockaddr_in6 - -type RawSockaddrUnix C.struct_sockaddr_un - -type RawSockaddrDatalink C.struct_sockaddr_dl - -type RawSockaddr C.struct_sockaddr - -type RawSockaddrAny C.struct_sockaddr_any - -type _Socklen C.socklen_t - -type Linger C.struct_linger - -type Iovec C.struct_iovec - -type IPMreq C.struct_ip_mreq - -type IPv6Mreq C.struct_ipv6_mreq - -type Msghdr C.struct_msghdr - -type Cmsghdr C.struct_cmsghdr - -type Inet6Pktinfo C.struct_in6_pktinfo - -type IPv6MTUInfo C.struct_ip6_mtuinfo - -type ICMPv6Filter C.struct_icmp6_filter - -const ( - SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in - SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 - SizeofSockaddrAny = C.sizeof_struct_sockaddr_any - SizeofSockaddrUnix = C.sizeof_struct_sockaddr_un - SizeofSockaddrDatalink = C.sizeof_struct_sockaddr_dl - SizeofLinger = C.sizeof_struct_linger - SizeofIPMreq = C.sizeof_struct_ip_mreq - SizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq - SizeofMsghdr = C.sizeof_struct_msghdr - SizeofCmsghdr = C.sizeof_struct_cmsghdr - SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo - SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo - SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter -) - -// Ptrace requests - -const ( - PTRACE_TRACEME = C.PT_TRACE_ME - PTRACE_CONT = C.PT_CONTINUE - PTRACE_KILL = C.PT_KILL -) - -// Events (kqueue, kevent) - -type Kevent_t C.struct_kevent - -// Select - -type FdSet C.fd_set - -// Routing and interface messages - -const ( - SizeofIfMsghdr = C.sizeof_struct_if_msghdr - SizeofIfData = C.sizeof_struct_if_data - SizeofIfaMsghdr = C.sizeof_struct_ifa_msghdr - SizeofIfAnnounceMsghdr = C.sizeof_struct_if_announcemsghdr - SizeofRtMsghdr = C.sizeof_struct_rt_msghdr - SizeofRtMetrics = C.sizeof_struct_rt_metrics -) - -type IfMsghdr C.struct_if_msghdr - -type IfData C.struct_if_data - -type IfaMsghdr C.struct_ifa_msghdr - -type IfAnnounceMsghdr C.struct_if_announcemsghdr - -type RtMsghdr C.struct_rt_msghdr - -type RtMetrics C.struct_rt_metrics - -type Mclpool C.struct_mclpool - -// Berkeley packet filter - -const ( - SizeofBpfVersion = C.sizeof_struct_bpf_version - SizeofBpfStat = C.sizeof_struct_bpf_stat - SizeofBpfProgram = C.sizeof_struct_bpf_program - SizeofBpfInsn = C.sizeof_struct_bpf_insn - SizeofBpfHdr = C.sizeof_struct_bpf_hdr -) - -type BpfVersion C.struct_bpf_version - -type BpfStat C.struct_bpf_stat - -type BpfProgram C.struct_bpf_program - -type BpfInsn C.struct_bpf_insn - -type BpfHdr C.struct_bpf_hdr - -type BpfTimeval C.struct_bpf_timeval - -// Terminal handling - -type Termios C.struct_termios - -// fchmodat-like syscalls. - -const ( - AT_FDCWD = C.AT_FDCWD - AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW -) diff --git a/vendor/golang.org/x/sys/unix/types_solaris.go b/vendor/golang.org/x/sys/unix/types_solaris.go deleted file mode 100644 index 393c7f0..0000000 --- a/vendor/golang.org/x/sys/unix/types_solaris.go +++ /dev/null @@ -1,269 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -/* -Input to cgo -godefs. See README.md -*/ - -// +godefs map struct_in_addr [4]byte /* in_addr */ -// +godefs map struct_in6_addr [16]byte /* in6_addr */ - -package unix - -/* -#define KERNEL -// These defines ensure that builds done on newer versions of Solaris are -// backwards-compatible with older versions of Solaris and -// OpenSolaris-based derivatives. -#define __USE_SUNOS_SOCKETS__ // msghdr -#define __USE_LEGACY_PROTOTYPES__ // iovec -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -enum { - sizeofPtr = sizeof(void*), -}; - -union sockaddr_all { - struct sockaddr s1; // this one gets used for fields - struct sockaddr_in s2; // these pad it out - struct sockaddr_in6 s3; - struct sockaddr_un s4; - struct sockaddr_dl s5; -}; - -struct sockaddr_any { - struct sockaddr addr; - char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)]; -}; - -*/ -import "C" - -// Machine characteristics; for internal use. - -const ( - sizeofPtr = C.sizeofPtr - sizeofShort = C.sizeof_short - sizeofInt = C.sizeof_int - sizeofLong = C.sizeof_long - sizeofLongLong = C.sizeof_longlong - PathMax = C.PATH_MAX - MaxHostNameLen = C.MAXHOSTNAMELEN -) - -// Basic types - -type ( - _C_short C.short - _C_int C.int - _C_long C.long - _C_long_long C.longlong -) - -// Time - -type Timespec C.struct_timespec - -type Timeval C.struct_timeval - -type Timeval32 C.struct_timeval32 - -type Tms C.struct_tms - -type Utimbuf C.struct_utimbuf - -// Processes - -type Rusage C.struct_rusage - -type Rlimit C.struct_rlimit - -type _Gid_t C.gid_t - -// Files - -const ( // Directory mode bits - S_IFMT = C.S_IFMT - S_IFIFO = C.S_IFIFO - S_IFCHR = C.S_IFCHR - S_IFDIR = C.S_IFDIR - S_IFBLK = C.S_IFBLK - S_IFREG = C.S_IFREG - S_IFLNK = C.S_IFLNK - S_IFSOCK = C.S_IFSOCK - S_ISUID = C.S_ISUID - S_ISGID = C.S_ISGID - S_ISVTX = C.S_ISVTX - S_IRUSR = C.S_IRUSR - S_IWUSR = C.S_IWUSR - S_IXUSR = C.S_IXUSR -) - -type Stat_t C.struct_stat - -type Flock_t C.struct_flock - -type Dirent C.struct_dirent - -// Filesystems - -type _Fsblkcnt_t C.fsblkcnt_t - -type Statvfs_t C.struct_statvfs - -// Sockets - -type RawSockaddrInet4 C.struct_sockaddr_in - -type RawSockaddrInet6 C.struct_sockaddr_in6 - -type RawSockaddrUnix C.struct_sockaddr_un - -type RawSockaddrDatalink C.struct_sockaddr_dl - -type RawSockaddr C.struct_sockaddr - -type RawSockaddrAny C.struct_sockaddr_any - -type _Socklen C.socklen_t - -type Linger C.struct_linger - -type Iovec C.struct_iovec - -type IPMreq C.struct_ip_mreq - -type IPv6Mreq C.struct_ipv6_mreq - -type Msghdr C.struct_msghdr - -type Cmsghdr C.struct_cmsghdr - -type Inet6Pktinfo C.struct_in6_pktinfo - -type IPv6MTUInfo C.struct_ip6_mtuinfo - -type ICMPv6Filter C.struct_icmp6_filter - -const ( - SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in - SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 - SizeofSockaddrAny = C.sizeof_struct_sockaddr_any - SizeofSockaddrUnix = C.sizeof_struct_sockaddr_un - SizeofSockaddrDatalink = C.sizeof_struct_sockaddr_dl - SizeofLinger = C.sizeof_struct_linger - SizeofIPMreq = C.sizeof_struct_ip_mreq - SizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq - SizeofMsghdr = C.sizeof_struct_msghdr - SizeofCmsghdr = C.sizeof_struct_cmsghdr - SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo - SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo - SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter -) - -// Select - -type FdSet C.fd_set - -// Misc - -type Utsname C.struct_utsname - -type Ustat_t C.struct_ustat - -const ( - AT_FDCWD = C.AT_FDCWD - AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW - AT_SYMLINK_FOLLOW = C.AT_SYMLINK_FOLLOW - AT_REMOVEDIR = C.AT_REMOVEDIR - AT_EACCESS = C.AT_EACCESS -) - -// Routing and interface messages - -const ( - SizeofIfMsghdr = C.sizeof_struct_if_msghdr - SizeofIfData = C.sizeof_struct_if_data - SizeofIfaMsghdr = C.sizeof_struct_ifa_msghdr - SizeofRtMsghdr = C.sizeof_struct_rt_msghdr - SizeofRtMetrics = C.sizeof_struct_rt_metrics -) - -type IfMsghdr C.struct_if_msghdr - -type IfData C.struct_if_data - -type IfaMsghdr C.struct_ifa_msghdr - -type RtMsghdr C.struct_rt_msghdr - -type RtMetrics C.struct_rt_metrics - -// Berkeley packet filter - -const ( - SizeofBpfVersion = C.sizeof_struct_bpf_version - SizeofBpfStat = C.sizeof_struct_bpf_stat - SizeofBpfProgram = C.sizeof_struct_bpf_program - SizeofBpfInsn = C.sizeof_struct_bpf_insn - SizeofBpfHdr = C.sizeof_struct_bpf_hdr -) - -type BpfVersion C.struct_bpf_version - -type BpfStat C.struct_bpf_stat - -type BpfProgram C.struct_bpf_program - -type BpfInsn C.struct_bpf_insn - -type BpfTimeval C.struct_bpf_timeval - -type BpfHdr C.struct_bpf_hdr - -// sysconf information - -const _SC_PAGESIZE = C._SC_PAGESIZE - -// Terminal handling - -type Termios C.struct_termios - -type Termio C.struct_termio - -type Winsize C.struct_winsize diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_386.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_386.go deleted file mode 100644 index 1c68758..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_darwin_386.go +++ /dev/null @@ -1,1673 +0,0 @@ -// mkerrors.sh -m32 -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build 386,darwin - -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs -- -m32 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_CNT = 0x15 - AF_COIP = 0x14 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_E164 = 0x1c - AF_ECMA = 0x8 - AF_HYLINK = 0xf - AF_IEEE80211 = 0x25 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x1e - AF_IPX = 0x17 - AF_ISDN = 0x1c - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x28 - AF_NATM = 0x1f - AF_NDRV = 0x1b - AF_NETBIOS = 0x21 - AF_NS = 0x6 - AF_OSI = 0x7 - AF_PPP = 0x22 - AF_PUP = 0x4 - AF_RESERVED_36 = 0x24 - AF_ROUTE = 0x11 - AF_SIP = 0x18 - AF_SNA = 0xb - AF_SYSTEM = 0x20 - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_UTUN = 0x26 - ALTWERASE = 0x200 - B0 = 0x0 - B110 = 0x6e - B115200 = 0x1c200 - B1200 = 0x4b0 - B134 = 0x86 - B14400 = 0x3840 - B150 = 0x96 - B1800 = 0x708 - B19200 = 0x4b00 - B200 = 0xc8 - B230400 = 0x38400 - B2400 = 0x960 - B28800 = 0x7080 - B300 = 0x12c - B38400 = 0x9600 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B9600 = 0x2580 - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc00c4279 - BIOCGETIF = 0x4020426b - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044272 - BIOCGRTIMEOUT = 0x4008426e - BIOCGSEESENT = 0x40044276 - BIOCGSTATS = 0x4008426f - BIOCIMMEDIATE = 0x80044270 - BIOCPROMISC = 0x20004269 - BIOCSBLEN = 0xc0044266 - BIOCSDLT = 0x80044278 - BIOCSETF = 0x80084267 - BIOCSETFNR = 0x8008427e - BIOCSETIF = 0x8020426c - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044273 - BIOCSRTIMEOUT = 0x8008426d - BIOCSSEESENT = 0x80044277 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIV = 0x30 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXBUFSIZE = 0x80000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_OR = 0x40 - BPF_RELEASE = 0x30bb6 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x8000 - BSDLY = 0x8000 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLOCK_MONOTONIC = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_MONOTONIC_RAW_APPROX = 0x5 - CLOCK_PROCESS_CPUTIME_ID = 0xc - CLOCK_REALTIME = 0x0 - CLOCK_THREAD_CPUTIME_ID = 0x10 - CLOCK_UPTIME_RAW = 0x8 - CLOCK_UPTIME_RAW_APPROX = 0x9 - CR0 = 0x0 - CR1 = 0x1000 - CR2 = 0x2000 - CR3 = 0x3000 - CRDLY = 0x3000 - CREAD = 0x800 - CRTSCTS = 0x30000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_MAXNAME = 0xc - CTL_NET = 0x4 - DLT_A429 = 0xb8 - DLT_A653_ICM = 0xb9 - DLT_AIRONET_HEADER = 0x78 - DLT_AOS = 0xde - DLT_APPLE_IP_OVER_IEEE1394 = 0x8a - DLT_ARCNET = 0x7 - DLT_ARCNET_LINUX = 0x81 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_AX25_KISS = 0xca - DLT_BACNET_MS_TP = 0xa5 - DLT_BLUETOOTH_HCI_H4 = 0xbb - DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 - DLT_CAN20B = 0xbe - DLT_CAN_SOCKETCAN = 0xe3 - DLT_CHAOS = 0x5 - DLT_CHDLC = 0x68 - DLT_CISCO_IOS = 0x76 - DLT_C_HDLC = 0x68 - DLT_C_HDLC_WITH_DIR = 0xcd - DLT_DBUS = 0xe7 - DLT_DECT = 0xdd - DLT_DOCSIS = 0x8f - DLT_DVB_CI = 0xeb - DLT_ECONET = 0x73 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_ERF = 0xc5 - DLT_ERF_ETH = 0xaf - DLT_ERF_POS = 0xb0 - DLT_FC_2 = 0xe0 - DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 - DLT_FDDI = 0xa - DLT_FLEXRAY = 0xd2 - DLT_FRELAY = 0x6b - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_GSMTAP_ABIS = 0xda - DLT_GSMTAP_UM = 0xd9 - DLT_HHDLC = 0x79 - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_IEEE802_15_4 = 0xc3 - DLT_IEEE802_15_4_LINUX = 0xbf - DLT_IEEE802_15_4_NOFCS = 0xe6 - DLT_IEEE802_15_4_NONASK_PHY = 0xd7 - DLT_IEEE802_16_MAC_CPS = 0xbc - DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 - DLT_IPFILTER = 0x74 - DLT_IPMB = 0xc7 - DLT_IPMB_LINUX = 0xd1 - DLT_IPNET = 0xe2 - DLT_IPOIB = 0xf2 - DLT_IPV4 = 0xe4 - DLT_IPV6 = 0xe5 - DLT_IP_OVER_FC = 0x7a - DLT_JUNIPER_ATM1 = 0x89 - DLT_JUNIPER_ATM2 = 0x87 - DLT_JUNIPER_ATM_CEMIC = 0xee - DLT_JUNIPER_CHDLC = 0xb5 - DLT_JUNIPER_ES = 0x84 - DLT_JUNIPER_ETHER = 0xb2 - DLT_JUNIPER_FIBRECHANNEL = 0xea - DLT_JUNIPER_FRELAY = 0xb4 - DLT_JUNIPER_GGSN = 0x85 - DLT_JUNIPER_ISM = 0xc2 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - DLT_JUNIPER_PPPOE = 0xa7 - DLT_JUNIPER_PPPOE_ATM = 0xa8 - DLT_JUNIPER_SERVICES = 0x88 - DLT_JUNIPER_SRX_E2E = 0xe9 - DLT_JUNIPER_ST = 0xc8 - DLT_JUNIPER_VP = 0xb7 - DLT_JUNIPER_VS = 0xe8 - DLT_LAPB_WITH_DIR = 0xcf - DLT_LAPD = 0xcb - DLT_LIN = 0xd4 - DLT_LINUX_EVDEV = 0xd8 - DLT_LINUX_IRDA = 0x90 - DLT_LINUX_LAPD = 0xb1 - DLT_LINUX_PPP_WITHDIRECTION = 0xa6 - DLT_LINUX_SLL = 0x71 - DLT_LOOP = 0x6c - DLT_LTALK = 0x72 - DLT_MATCHING_MAX = 0xf5 - DLT_MATCHING_MIN = 0x68 - DLT_MFR = 0xb6 - DLT_MOST = 0xd3 - DLT_MPEG_2_TS = 0xf3 - DLT_MPLS = 0xdb - DLT_MTP2 = 0x8c - DLT_MTP2_WITH_PHDR = 0x8b - DLT_MTP3 = 0x8d - DLT_MUX27010 = 0xec - DLT_NETANALYZER = 0xf0 - DLT_NETANALYZER_TRANSPARENT = 0xf1 - DLT_NFC_LLCP = 0xf5 - DLT_NFLOG = 0xef - DLT_NG40 = 0xf4 - DLT_NULL = 0x0 - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PPI = 0xc0 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0x10 - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PPP_WITH_DIRECTION = 0xa6 - DLT_PRISM_HEADER = 0x77 - DLT_PRONET = 0x4 - DLT_RAIF1 = 0xc6 - DLT_RAW = 0xc - DLT_RIO = 0x7c - DLT_SCCP = 0x8e - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xf - DLT_STANAG_5066_D_PDU = 0xed - DLT_SUNATM = 0x7b - DLT_SYMANTEC_FIREWALL = 0x63 - DLT_TZSP = 0x80 - DLT_USB = 0xba - DLT_USB_LINUX = 0xbd - DLT_USB_LINUX_MMAPPED = 0xdc - DLT_USER0 = 0x93 - DLT_USER1 = 0x94 - DLT_USER10 = 0x9d - DLT_USER11 = 0x9e - DLT_USER12 = 0x9f - DLT_USER13 = 0xa0 - DLT_USER14 = 0xa1 - DLT_USER15 = 0xa2 - DLT_USER2 = 0x95 - DLT_USER3 = 0x96 - DLT_USER4 = 0x97 - DLT_USER5 = 0x98 - DLT_USER6 = 0x99 - DLT_USER7 = 0x9a - DLT_USER8 = 0x9b - DLT_USER9 = 0x9c - DLT_WIHART = 0xdf - DLT_X2E_SERIAL = 0xd5 - DLT_X2E_XORAYA = 0xd6 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EVFILT_AIO = -0x3 - EVFILT_EXCEPT = -0xf - EVFILT_FS = -0x9 - EVFILT_MACHPORT = -0x8 - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0xf - EVFILT_THREADMARKER = 0xf - EVFILT_TIMER = -0x7 - EVFILT_USER = -0xa - EVFILT_VM = -0xc - EVFILT_VNODE = -0x4 - EVFILT_WRITE = -0x2 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_DISPATCH = 0x80 - EV_DISPATCH2 = 0x180 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG0 = 0x1000 - EV_FLAG1 = 0x2000 - EV_ONESHOT = 0x10 - EV_OOBAND = 0x2000 - EV_POLL = 0x1000 - EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf000 - EV_UDATA_SPECIFIC = 0x100 - EV_VANISHED = 0x200 - EXTA = 0x4b00 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x4000 - FFDLY = 0x4000 - FLUSHO = 0x800000 - F_ADDFILESIGS = 0x3d - F_ADDFILESIGS_FOR_DYLD_SIM = 0x53 - F_ADDFILESIGS_RETURN = 0x61 - F_ADDSIGS = 0x3b - F_ALLOCATEALL = 0x4 - F_ALLOCATECONTIG = 0x2 - F_BARRIERFSYNC = 0x55 - F_CHECK_LV = 0x62 - F_CHKCLEAN = 0x29 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x43 - F_FINDSIGS = 0x4e - F_FLUSH_DATA = 0x28 - F_FREEZE_FS = 0x35 - F_FULLFSYNC = 0x33 - F_GETCODEDIR = 0x48 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0x7 - F_GETLKPID = 0x42 - F_GETNOSIGPIPE = 0x4a - F_GETOWN = 0x5 - F_GETPATH = 0x32 - F_GETPATH_MTMINFO = 0x47 - F_GETPROTECTIONCLASS = 0x3f - F_GETPROTECTIONLEVEL = 0x4d - F_GLOBAL_NOCACHE = 0x37 - F_LOG2PHYS = 0x31 - F_LOG2PHYS_EXT = 0x41 - F_NOCACHE = 0x30 - F_NODIRECT = 0x3e - F_OK = 0x0 - F_PATHPKG_CHECK = 0x34 - F_PEOFPOSMODE = 0x3 - F_PREALLOCATE = 0x2a - F_RDADVISE = 0x2c - F_RDAHEAD = 0x2d - F_RDLCK = 0x1 - F_SETBACKINGSTORE = 0x46 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x8 - F_SETLKW = 0x9 - F_SETLKWTIMEOUT = 0xa - F_SETNOSIGPIPE = 0x49 - F_SETOWN = 0x6 - F_SETPROTECTIONCLASS = 0x40 - F_SETSIZE = 0x2b - F_SINGLE_WRITER = 0x4c - F_THAW_FS = 0x36 - F_TRANSCODEKEY = 0x4b - F_UNLCK = 0x2 - F_VOLPOSMODE = 0x4 - F_WRLCK = 0x3 - HUPCL = 0x4000 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFF_ALLMULTI = 0x200 - IFF_ALTPHYS = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NOTRAILERS = 0x20 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_1822 = 0x2 - IFT_AAL5 = 0x31 - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ATM = 0x25 - IFT_BRIDGE = 0xd1 - IFT_CARP = 0xf8 - IFT_CELLULAR = 0xff - IFT_CEPT = 0x13 - IFT_DS3 = 0x1e - IFT_ENC = 0xf4 - IFT_EON = 0x19 - IFT_ETHER = 0x6 - IFT_FAITH = 0x38 - IFT_FDDI = 0xf - IFT_FRELAY = 0x20 - IFT_FRELAYDCE = 0x2c - IFT_GIF = 0x37 - IFT_HDH1822 = 0x3 - IFT_HIPPI = 0x2f - IFT_HSSI = 0x2e - IFT_HY = 0xe - IFT_IEEE1394 = 0x90 - IFT_IEEE8023ADLAG = 0x88 - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_ISO88022LLC = 0x29 - IFT_ISO88023 = 0x7 - IFT_ISO88024 = 0x8 - IFT_ISO88025 = 0x9 - IFT_ISO88026 = 0xa - IFT_L2VLAN = 0x87 - IFT_LAPB = 0x10 - IFT_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - IFT_MIOX25 = 0x26 - IFT_MODEM = 0x30 - IFT_NSIP = 0x1b - IFT_OTHER = 0x1 - IFT_P10 = 0xc - IFT_P80 = 0xd - IFT_PARA = 0x22 - IFT_PDP = 0xff - IFT_PFLOG = 0xf5 - IFT_PFSYNC = 0xf6 - IFT_PKTAP = 0xfe - IFT_PPP = 0x17 - IFT_PROPMUX = 0x36 - IFT_PROPVIRTUAL = 0x35 - IFT_PTPSERIAL = 0x16 - IFT_RS232 = 0x21 - IFT_SDLC = 0x11 - IFT_SIP = 0x1f - IFT_SLIP = 0x1c - IFT_SMDSDXI = 0x2b - IFT_SMDSICIP = 0x34 - IFT_SONET = 0x27 - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_STARLAN = 0xb - IFT_STF = 0x39 - IFT_T1 = 0x12 - IFT_ULTRA = 0x1d - IFT_V35 = 0x2d - IFT_X25 = 0x5 - IFT_X25DDN = 0x4 - IFT_X25PLE = 0x28 - IFT_XETHER = 0x1a - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLASSD_HOST = 0xfffffff - IN_CLASSD_NET = 0xf0000000 - IN_CLASSD_NSHIFT = 0x1c - IN_LINKLOCALNETNUM = 0xa9fe0000 - IN_LOOPBACKNET = 0x7f - IPPROTO_3PC = 0x22 - IPPROTO_ADFS = 0x44 - IPPROTO_AH = 0x33 - IPPROTO_AHIP = 0x3d - IPPROTO_APES = 0x63 - IPPROTO_ARGUS = 0xd - IPPROTO_AX25 = 0x5d - IPPROTO_BHA = 0x31 - IPPROTO_BLT = 0x1e - IPPROTO_BRSATMON = 0x4c - IPPROTO_CFTP = 0x3e - IPPROTO_CHAOS = 0x10 - IPPROTO_CMTP = 0x26 - IPPROTO_CPHB = 0x49 - IPPROTO_CPNX = 0x48 - IPPROTO_DDP = 0x25 - IPPROTO_DGP = 0x56 - IPPROTO_DIVERT = 0xfe - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_EMCON = 0xe - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GMTP = 0x64 - IPPROTO_GRE = 0x2f - IPPROTO_HELLO = 0x3f - IPPROTO_HMP = 0x14 - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IDPR = 0x23 - IPPROTO_IDRP = 0x2d - IPPROTO_IGMP = 0x2 - IPPROTO_IGP = 0x55 - IPPROTO_IGRP = 0x58 - IPPROTO_IL = 0x28 - IPPROTO_INLSP = 0x34 - IPPROTO_INP = 0x20 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPCV = 0x47 - IPPROTO_IPEIP = 0x5e - IPPROTO_IPIP = 0x4 - IPPROTO_IPPC = 0x43 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_IRTP = 0x1c - IPPROTO_KRYPTOLAN = 0x41 - IPPROTO_LARP = 0x5b - IPPROTO_LEAF1 = 0x19 - IPPROTO_LEAF2 = 0x1a - IPPROTO_MAX = 0x100 - IPPROTO_MAXID = 0x34 - IPPROTO_MEAS = 0x13 - IPPROTO_MHRP = 0x30 - IPPROTO_MICP = 0x5f - IPPROTO_MTP = 0x5c - IPPROTO_MUX = 0x12 - IPPROTO_ND = 0x4d - IPPROTO_NHRP = 0x36 - IPPROTO_NONE = 0x3b - IPPROTO_NSP = 0x1f - IPPROTO_NVPII = 0xb - IPPROTO_OSPFIGP = 0x59 - IPPROTO_PGM = 0x71 - IPPROTO_PIGP = 0x9 - IPPROTO_PIM = 0x67 - IPPROTO_PRM = 0x15 - IPPROTO_PUP = 0xc - IPPROTO_PVP = 0x4b - IPPROTO_RAW = 0xff - IPPROTO_RCCMON = 0xa - IPPROTO_RDP = 0x1b - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_RVD = 0x42 - IPPROTO_SATEXPAK = 0x40 - IPPROTO_SATMON = 0x45 - IPPROTO_SCCSP = 0x60 - IPPROTO_SCTP = 0x84 - IPPROTO_SDRP = 0x2a - IPPROTO_SEP = 0x21 - IPPROTO_SRPC = 0x5a - IPPROTO_ST = 0x7 - IPPROTO_SVMTP = 0x52 - IPPROTO_SWIPE = 0x35 - IPPROTO_TCF = 0x57 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_TPXX = 0x27 - IPPROTO_TRUNK1 = 0x17 - IPPROTO_TRUNK2 = 0x18 - IPPROTO_TTP = 0x54 - IPPROTO_UDP = 0x11 - IPPROTO_VINES = 0x53 - IPPROTO_VISA = 0x46 - IPPROTO_VMTP = 0x51 - IPPROTO_WBEXPAK = 0x4f - IPPROTO_WBMON = 0x4e - IPPROTO_WSN = 0x4a - IPPROTO_XNET = 0xf - IPPROTO_XTP = 0x24 - IPV6_2292DSTOPTS = 0x17 - IPV6_2292HOPLIMIT = 0x14 - IPV6_2292HOPOPTS = 0x16 - IPV6_2292NEXTHOP = 0x15 - IPV6_2292PKTINFO = 0x13 - IPV6_2292PKTOPTIONS = 0x19 - IPV6_2292RTHDR = 0x18 - IPV6_BINDV6ONLY = 0x1b - IPV6_BOUND_IF = 0x7d - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_FAITH = 0x1d - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FRAGTTL = 0x3c - IPV6_FW_ADD = 0x1e - IPV6_FW_DEL = 0x1f - IPV6_FW_FLUSH = 0x20 - IPV6_FW_GET = 0x22 - IPV6_FW_ZERO = 0x21 - IPV6_HLIMDEC = 0x1 - IPV6_IPSEC_POLICY = 0x1c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXOPTHDR = 0x800 - IPV6_MAXPACKET = 0xffff - IPV6_MAX_GROUP_SRC_FILTER = 0x200 - IPV6_MAX_MEMBERSHIPS = 0xfff - IPV6_MAX_SOCK_SRC_FILTER = 0x80 - IPV6_MIN_MEMBERSHIPS = 0x1f - IPV6_MMTU = 0x500 - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_RECVTCLASS = 0x23 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_SOCKOPT_RESERVED1 = 0x3 - IPV6_TCLASS = 0x24 - IPV6_UNICAST_HOPS = 0x4 - IPV6_V6ONLY = 0x1b - IPV6_VERSION = 0x60 - IPV6_VERSION_MASK = 0xf0 - IP_ADD_MEMBERSHIP = 0xc - IP_ADD_SOURCE_MEMBERSHIP = 0x46 - IP_BLOCK_SOURCE = 0x48 - IP_BOUND_IF = 0x19 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0xd - IP_DROP_SOURCE_MEMBERSHIP = 0x47 - IP_DUMMYNET_CONFIGURE = 0x3c - IP_DUMMYNET_DEL = 0x3d - IP_DUMMYNET_FLUSH = 0x3e - IP_DUMMYNET_GET = 0x40 - IP_FAITH = 0x16 - IP_FW_ADD = 0x28 - IP_FW_DEL = 0x29 - IP_FW_FLUSH = 0x2a - IP_FW_GET = 0x2c - IP_FW_RESETLOG = 0x2d - IP_FW_ZERO = 0x2b - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x15 - IP_MAXPACKET = 0xffff - IP_MAX_GROUP_SRC_FILTER = 0x200 - IP_MAX_MEMBERSHIPS = 0xfff - IP_MAX_SOCK_MUTE_FILTER = 0x80 - IP_MAX_SOCK_SRC_FILTER = 0x80 - IP_MF = 0x2000 - IP_MIN_MEMBERSHIPS = 0x1f - IP_MSFILTER = 0x4a - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_IFINDEX = 0x42 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_MULTICAST_VIF = 0xe - IP_NAT__XXX = 0x37 - IP_OFFMASK = 0x1fff - IP_OLD_FW_ADD = 0x32 - IP_OLD_FW_DEL = 0x33 - IP_OLD_FW_FLUSH = 0x34 - IP_OLD_FW_GET = 0x36 - IP_OLD_FW_RESETLOG = 0x38 - IP_OLD_FW_ZERO = 0x35 - IP_OPTIONS = 0x1 - IP_PKTINFO = 0x1a - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVPKTINFO = 0x1a - IP_RECVRETOPTS = 0x6 - IP_RECVTTL = 0x18 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_RSVP_OFF = 0x10 - IP_RSVP_ON = 0xf - IP_RSVP_VIF_OFF = 0x12 - IP_RSVP_VIF_ON = 0x11 - IP_STRIPHDR = 0x17 - IP_TOS = 0x3 - IP_TRAFFIC_MGT_BACKGROUND = 0x41 - IP_TTL = 0x4 - IP_UNBLOCK_SOURCE = 0x49 - ISIG = 0x80 - ISTRIP = 0x20 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_CAN_REUSE = 0x9 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x5 - MADV_FREE_REUSABLE = 0x7 - MADV_FREE_REUSE = 0x8 - MADV_NORMAL = 0x0 - MADV_PAGEOUT = 0xa - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_WILLNEED = 0x3 - MADV_ZERO_WIRED_PAGES = 0x6 - MAP_ANON = 0x1000 - MAP_ANONYMOUS = 0x1000 - MAP_COPY = 0x2 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_HASSEMAPHORE = 0x200 - MAP_JIT = 0x800 - MAP_NOCACHE = 0x400 - MAP_NOEXTEND = 0x100 - MAP_NORESERVE = 0x40 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 - MAP_RESERVED0080 = 0x80 - MAP_RESILIENT_CODESIGN = 0x2000 - MAP_RESILIENT_MEDIA = 0x4000 - MAP_SHARED = 0x1 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MNT_ASYNC = 0x40 - MNT_AUTOMOUNTED = 0x400000 - MNT_CMDFLAGS = 0xf0000 - MNT_CPROTECT = 0x80 - MNT_DEFWRITE = 0x2000000 - MNT_DONTBROWSE = 0x100000 - MNT_DOVOLFS = 0x8000 - MNT_DWAIT = 0x4 - MNT_EXPORTED = 0x100 - MNT_FORCE = 0x80000 - MNT_IGNORE_OWNERSHIP = 0x200000 - MNT_JOURNALED = 0x800000 - MNT_LOCAL = 0x1000 - MNT_MULTILABEL = 0x4000000 - MNT_NOATIME = 0x10000000 - MNT_NOBLOCK = 0x20000 - MNT_NODEV = 0x10 - MNT_NOEXEC = 0x4 - MNT_NOSUID = 0x8 - MNT_NOUSERXATTR = 0x1000000 - MNT_NOWAIT = 0x2 - MNT_QUARANTINE = 0x400 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELOAD = 0x40000 - MNT_ROOTFS = 0x4000 - MNT_SYNCHRONOUS = 0x2 - MNT_UNION = 0x20 - MNT_UNKNOWNPERMISSIONS = 0x200000 - MNT_UPDATE = 0x10000 - MNT_VISFLAGMASK = 0x17f0f5ff - MNT_WAIT = 0x1 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOF = 0x100 - MSG_EOR = 0x8 - MSG_FLUSH = 0x400 - MSG_HAVEMORE = 0x2000 - MSG_HOLD = 0x800 - MSG_NEEDSA = 0x10000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_RCVMORE = 0x4000 - MSG_SEND = 0x1000 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MSG_WAITSTREAM = 0x200 - MS_ASYNC = 0x1 - MS_DEACTIVATE = 0x8 - MS_INVALIDATE = 0x2 - MS_KILLPAGES = 0x4 - MS_SYNC = 0x10 - NAME_MAX = 0xff - NET_RT_DUMP = 0x1 - NET_RT_DUMP2 = 0x7 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x3 - NET_RT_IFLIST2 = 0x6 - NET_RT_MAXID = 0xa - NET_RT_STAT = 0x4 - NET_RT_TRASH = 0x5 - NL0 = 0x0 - NL1 = 0x100 - NL2 = 0x200 - NL3 = 0x300 - NLDLY = 0x300 - NOFLSH = 0x80000000 - NOKERNINFO = 0x2000000 - NOTE_ABSOLUTE = 0x8 - NOTE_ATTRIB = 0x8 - NOTE_BACKGROUND = 0x40 - NOTE_CHILD = 0x4 - NOTE_CRITICAL = 0x20 - NOTE_DELETE = 0x1 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXITSTATUS = 0x4000000 - NOTE_EXIT_CSERROR = 0x40000 - NOTE_EXIT_DECRYPTFAIL = 0x10000 - NOTE_EXIT_DETAIL = 0x2000000 - NOTE_EXIT_DETAIL_MASK = 0x70000 - NOTE_EXIT_MEMORY = 0x20000 - NOTE_EXIT_REPARENTED = 0x80000 - NOTE_EXTEND = 0x4 - NOTE_FFAND = 0x40000000 - NOTE_FFCOPY = 0xc0000000 - NOTE_FFCTRLMASK = 0xc0000000 - NOTE_FFLAGSMASK = 0xffffff - NOTE_FFNOP = 0x0 - NOTE_FFOR = 0x80000000 - NOTE_FORK = 0x40000000 - NOTE_FUNLOCK = 0x100 - NOTE_LEEWAY = 0x10 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_MACH_CONTINUOUS_TIME = 0x80 - NOTE_NONE = 0x80 - NOTE_NSECONDS = 0x4 - NOTE_OOB = 0x2 - NOTE_PCTRLMASK = -0x100000 - NOTE_PDATAMASK = 0xfffff - NOTE_REAP = 0x10000000 - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_SECONDS = 0x1 - NOTE_SIGNAL = 0x8000000 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_TRIGGER = 0x1000000 - NOTE_USECONDS = 0x2 - NOTE_VM_ERROR = 0x10000000 - NOTE_VM_PRESSURE = 0x80000000 - NOTE_VM_PRESSURE_SUDDEN_TERMINATE = 0x20000000 - NOTE_VM_PRESSURE_TERMINATE = 0x40000000 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - OFDEL = 0x20000 - OFILL = 0x80 - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - OXTABS = 0x4 - O_ACCMODE = 0x3 - O_ALERT = 0x20000000 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x1000000 - O_CREAT = 0x200 - O_DIRECTORY = 0x100000 - O_DP_GETRAWENCRYPTED = 0x1 - O_DP_GETRAWUNENCRYPTED = 0x2 - O_DSYNC = 0x400000 - O_EVTONLY = 0x8000 - O_EXCL = 0x800 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x20000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_POPUP = 0x80000000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_SHLOCK = 0x10 - O_SYMLINK = 0x200000 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PT_ATTACH = 0xa - PT_ATTACHEXC = 0xe - PT_CONTINUE = 0x7 - PT_DENY_ATTACH = 0x1f - PT_DETACH = 0xb - PT_FIRSTMACH = 0x20 - PT_FORCEQUOTA = 0x1e - PT_KILL = 0x8 - PT_READ_D = 0x2 - PT_READ_I = 0x1 - PT_READ_U = 0x3 - PT_SIGEXC = 0xc - PT_STEP = 0x9 - PT_THUPDATE = 0xd - PT_TRACE_ME = 0x0 - PT_WRITE_D = 0x5 - PT_WRITE_I = 0x4 - PT_WRITE_U = 0x6 - RLIMIT_AS = 0x5 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_CPU_USAGE_MONITOR = 0x2 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_MEMLOCK = 0x6 - RLIMIT_NOFILE = 0x8 - RLIMIT_NPROC = 0x7 - RLIMIT_RSS = 0x5 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0x7fffffffffffffff - RTAX_AUTHOR = 0x6 - RTAX_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x8 - RTAX_NETMASK = 0x2 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_CLONING = 0x100 - RTF_CONDEMNED = 0x2000000 - RTF_DELCLONE = 0x80 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_IFREF = 0x4000000 - RTF_IFSCOPE = 0x1000000 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MODIFIED = 0x20 - RTF_MULTICAST = 0x800000 - RTF_NOIFREF = 0x2000 - RTF_PINNED = 0x100000 - RTF_PRCLONING = 0x10000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x40000 - RTF_PROXY = 0x8000000 - RTF_REJECT = 0x8 - RTF_ROUTER = 0x10000000 - RTF_STATIC = 0x800 - RTF_UP = 0x1 - RTF_WASCLONED = 0x20000 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_DELMADDR = 0x10 - RTM_GET = 0x4 - RTM_GET2 = 0x14 - RTM_IFINFO = 0xe - RTM_IFINFO2 = 0x12 - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_NEWMADDR = 0xf - RTM_NEWMADDR2 = 0x13 - RTM_OLDADD = 0x9 - RTM_OLDDEL = 0xa - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 - RTM_VERSION = 0x5 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - SCM_CREDS = 0x3 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x2 - SCM_TIMESTAMP_MONOTONIC = 0x4 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCARPIPLL = 0xc0206928 - SIOCATMARK = 0x40047307 - SIOCAUTOADDR = 0xc0206926 - SIOCAUTONETMASK = 0x80206927 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFPHYADDR = 0x80206941 - SIOCGDRVSPEC = 0xc01c697b - SIOCGETVLAN = 0xc020697f - SIOCGHIWAT = 0x40047301 - SIOCGIFADDR = 0xc0206921 - SIOCGIFALTMTU = 0xc0206948 - SIOCGIFASYNCMAP = 0xc020697c - SIOCGIFBOND = 0xc0206947 - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCAP = 0xc020695b - SIOCGIFCONF = 0xc0086924 - SIOCGIFDEVMTU = 0xc0206944 - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFGENERIC = 0xc020693a - SIOCGIFKPI = 0xc0206987 - SIOCGIFMAC = 0xc0206982 - SIOCGIFMEDIA = 0xc0286938 - SIOCGIFMETRIC = 0xc0206917 - SIOCGIFMTU = 0xc0206933 - SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPDSTADDR = 0xc0206940 - SIOCGIFPHYS = 0xc0206935 - SIOCGIFPSRCADDR = 0xc020693f - SIOCGIFSTATUS = 0xc331693d - SIOCGIFVLAN = 0xc020697f - SIOCGIFWAKEFLAGS = 0xc0206988 - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCIFCREATE = 0xc0206978 - SIOCIFCREATE2 = 0xc020697a - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc00c6981 - SIOCRSLVMULTI = 0xc008693b - SIOCSDRVSPEC = 0x801c697b - SIOCSETVLAN = 0x8020697e - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8020690c - SIOCSIFALTMTU = 0x80206945 - SIOCSIFASYNCMAP = 0x8020697d - SIOCSIFBOND = 0x80206946 - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFCAP = 0x8020695a - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGENERIC = 0x80206939 - SIOCSIFKPI = 0x80206986 - SIOCSIFLLADDR = 0x8020693c - SIOCSIFMAC = 0x80206983 - SIOCSIFMEDIA = 0xc0206937 - SIOCSIFMETRIC = 0x80206918 - SIOCSIFMTU = 0x80206934 - SIOCSIFNETMASK = 0x80206916 - SIOCSIFPHYADDR = 0x8040693e - SIOCSIFPHYS = 0x80206936 - SIOCSIFVLAN = 0x8020697e - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SOCK_DGRAM = 0x2 - SOCK_MAXADDRLEN = 0xff - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DONTROUTE = 0x10 - SO_DONTTRUNC = 0x2000 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LABEL = 0x1010 - SO_LINGER = 0x80 - SO_LINGER_SEC = 0x1080 - SO_NETSVC_MARKING_LEVEL = 0x1119 - SO_NET_SERVICE_TYPE = 0x1116 - SO_NKE = 0x1021 - SO_NOADDRERR = 0x1023 - SO_NOSIGPIPE = 0x1022 - SO_NOTIFYCONFLICT = 0x1026 - SO_NP_EXTENSIONS = 0x1083 - SO_NREAD = 0x1020 - SO_NUMRCVPKT = 0x1112 - SO_NWRITE = 0x1024 - SO_OOBINLINE = 0x100 - SO_PEERLABEL = 0x1011 - SO_RANDOMPORT = 0x1082 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_REUSESHAREUID = 0x1025 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_TIMESTAMP = 0x400 - SO_TIMESTAMP_MONOTONIC = 0x800 - SO_TYPE = 0x1008 - SO_UPCALLCLOSEWAIT = 0x1027 - SO_USELOOPBACK = 0x40 - SO_WANTMORE = 0x4000 - SO_WANTOOBFLAG = 0x8000 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IFWHT = 0xe000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISTXT = 0x200 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x400 - TAB2 = 0x800 - TAB3 = 0x4 - TABDLY = 0xc04 - TCIFLUSH = 0x1 - TCIOFF = 0x3 - TCIOFLUSH = 0x3 - TCION = 0x4 - TCOFLUSH = 0x2 - TCOOFF = 0x1 - TCOON = 0x2 - TCP_CONNECTIONTIMEOUT = 0x20 - TCP_CONNECTION_INFO = 0x106 - TCP_ENABLE_ECN = 0x104 - TCP_FASTOPEN = 0x105 - TCP_KEEPALIVE = 0x10 - TCP_KEEPCNT = 0x102 - TCP_KEEPINTVL = 0x101 - TCP_MAXHLEN = 0x3c - TCP_MAXOLEN = 0x28 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_SACK = 0x4 - TCP_MAX_WINSHIFT = 0xe - TCP_MINMSS = 0xd8 - TCP_MSS = 0x200 - TCP_NODELAY = 0x1 - TCP_NOOPT = 0x8 - TCP_NOPUSH = 0x4 - TCP_NOTSENT_LOWAT = 0x201 - TCP_RXT_CONNDROPTIME = 0x80 - TCP_RXT_FINDROP = 0x100 - TCP_SENDMOREACKS = 0x103 - TCSAFLUSH = 0x2 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDCDTIMESTAMP = 0x40087458 - TIOCDRAIN = 0x2000745e - TIOCDSIMICROCODE = 0x20007455 - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLUSH = 0x80047410 - TIOCGDRAINWAIT = 0x40047456 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGPGRP = 0x40047477 - TIOCGWINSZ = 0x40087468 - TIOCIXOFF = 0x20007480 - TIOCIXON = 0x20007481 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGDTRWAIT = 0x4004745a - TIOCMGET = 0x4004746a - TIOCMODG = 0x40047403 - TIOCMODS = 0x80047404 - TIOCMSDTRWAIT = 0x8004745b - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x20007471 - TIOCNXCL = 0x2000740e - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x80047470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCPTYGNAME = 0x40807453 - TIOCPTYGRANT = 0x20007454 - TIOCPTYUNLK = 0x20007452 - TIOCREMOTE = 0x80047469 - TIOCSBRK = 0x2000747b - TIOCSCONS = 0x20007463 - TIOCSCTTY = 0x20007461 - TIOCSDRAINWAIT = 0x80047457 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSIG = 0x2000745f - TIOCSPGRP = 0x80047476 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x20007465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCTIMESTAMP = 0x40087459 - TIOCUCNTL = 0x80047466 - TOSTOP = 0x400000 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VM_LOADAVG = 0x2 - VM_MACHFACTOR = 0x4 - VM_MAXID = 0x6 - VM_METER = 0x1 - VM_SWAPUSAGE = 0x5 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VT0 = 0x0 - VT1 = 0x10000 - VTDLY = 0x10000 - VTIME = 0x11 - VWERASE = 0x4 - WCONTINUED = 0x10 - WCOREFLAG = 0x80 - WEXITED = 0x4 - WNOHANG = 0x1 - WNOWAIT = 0x20 - WORDSIZE = 0x20 - WSTOPPED = 0x8 - WUNTRACED = 0x2 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x30) - EADDRNOTAVAIL = syscall.Errno(0x31) - EAFNOSUPPORT = syscall.Errno(0x2f) - EAGAIN = syscall.Errno(0x23) - EALREADY = syscall.Errno(0x25) - EAUTH = syscall.Errno(0x50) - EBADARCH = syscall.Errno(0x56) - EBADEXEC = syscall.Errno(0x55) - EBADF = syscall.Errno(0x9) - EBADMACHO = syscall.Errno(0x58) - EBADMSG = syscall.Errno(0x5e) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x59) - ECHILD = syscall.Errno(0xa) - ECONNABORTED = syscall.Errno(0x35) - ECONNREFUSED = syscall.Errno(0x3d) - ECONNRESET = syscall.Errno(0x36) - EDEADLK = syscall.Errno(0xb) - EDESTADDRREQ = syscall.Errno(0x27) - EDEVERR = syscall.Errno(0x53) - EDOM = syscall.Errno(0x21) - EDQUOT = syscall.Errno(0x45) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EFTYPE = syscall.Errno(0x4f) - EHOSTDOWN = syscall.Errno(0x40) - EHOSTUNREACH = syscall.Errno(0x41) - EIDRM = syscall.Errno(0x5a) - EILSEQ = syscall.Errno(0x5c) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x6a) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5f) - ENAMETOOLONG = syscall.Errno(0x3f) - ENEEDAUTH = syscall.Errno(0x51) - ENETDOWN = syscall.Errno(0x32) - ENETRESET = syscall.Errno(0x34) - ENETUNREACH = syscall.Errno(0x33) - ENFILE = syscall.Errno(0x17) - ENOATTR = syscall.Errno(0x5d) - ENOBUFS = syscall.Errno(0x37) - ENODATA = syscall.Errno(0x60) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x61) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x5b) - ENOPOLICY = syscall.Errno(0x67) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x62) - ENOSTR = syscall.Errno(0x63) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTRECOVERABLE = syscall.Errno(0x68) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x2d) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x66) - EOVERFLOW = syscall.Errno(0x54) - EOWNERDEAD = syscall.Errno(0x69) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x2e) - EPIPE = syscall.Errno(0x20) - EPROCLIM = syscall.Errno(0x43) - EPROCUNAVAIL = syscall.Errno(0x4c) - EPROGMISMATCH = syscall.Errno(0x4b) - EPROGUNAVAIL = syscall.Errno(0x4a) - EPROTO = syscall.Errno(0x64) - EPROTONOSUPPORT = syscall.Errno(0x2b) - EPROTOTYPE = syscall.Errno(0x29) - EPWROFF = syscall.Errno(0x52) - EQFULL = syscall.Errno(0x6a) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x47) - EROFS = syscall.Errno(0x1e) - ERPCMISMATCH = syscall.Errno(0x49) - ESHLIBVERS = syscall.Errno(0x57) - ESHUTDOWN = syscall.Errno(0x3a) - ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x46) - ETIME = syscall.Errno(0x65) - ETIMEDOUT = syscall.Errno(0x3c) - ETOOMANYREFS = syscall.Errno(0x3b) - ETXTBSY = syscall.Errno(0x1a) - EUSERS = syscall.Errno(0x44) - EWOULDBLOCK = syscall.Errno(0x23) - EXDEV = syscall.Errno(0x12) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x14) - SIGCONT = syscall.Signal(0x13) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINFO = syscall.Signal(0x1d) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x17) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) - SIGPROF = syscall.Signal(0x1b) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x12) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x10) - SIGUSR1 = syscall.Signal(0x1e) - SIGUSR2 = syscall.Signal(0x1f) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errors = [...]string{ - 1: "operation not permitted", - 2: "no such file or directory", - 3: "no such process", - 4: "interrupted system call", - 5: "input/output error", - 6: "device not configured", - 7: "argument list too long", - 8: "exec format error", - 9: "bad file descriptor", - 10: "no child processes", - 11: "resource deadlock avoided", - 12: "cannot allocate memory", - 13: "permission denied", - 14: "bad address", - 15: "block device required", - 16: "resource busy", - 17: "file exists", - 18: "cross-device link", - 19: "operation not supported by device", - 20: "not a directory", - 21: "is a directory", - 22: "invalid argument", - 23: "too many open files in system", - 24: "too many open files", - 25: "inappropriate ioctl for device", - 26: "text file busy", - 27: "file too large", - 28: "no space left on device", - 29: "illegal seek", - 30: "read-only file system", - 31: "too many links", - 32: "broken pipe", - 33: "numerical argument out of domain", - 34: "result too large", - 35: "resource temporarily unavailable", - 36: "operation now in progress", - 37: "operation already in progress", - 38: "socket operation on non-socket", - 39: "destination address required", - 40: "message too long", - 41: "protocol wrong type for socket", - 42: "protocol not available", - 43: "protocol not supported", - 44: "socket type not supported", - 45: "operation not supported", - 46: "protocol family not supported", - 47: "address family not supported by protocol family", - 48: "address already in use", - 49: "can't assign requested address", - 50: "network is down", - 51: "network is unreachable", - 52: "network dropped connection on reset", - 53: "software caused connection abort", - 54: "connection reset by peer", - 55: "no buffer space available", - 56: "socket is already connected", - 57: "socket is not connected", - 58: "can't send after socket shutdown", - 59: "too many references: can't splice", - 60: "operation timed out", - 61: "connection refused", - 62: "too many levels of symbolic links", - 63: "file name too long", - 64: "host is down", - 65: "no route to host", - 66: "directory not empty", - 67: "too many processes", - 68: "too many users", - 69: "disc quota exceeded", - 70: "stale NFS file handle", - 71: "too many levels of remote in path", - 72: "RPC struct is bad", - 73: "RPC version wrong", - 74: "RPC prog. not avail", - 75: "program version wrong", - 76: "bad procedure for program", - 77: "no locks available", - 78: "function not implemented", - 79: "inappropriate file type or format", - 80: "authentication error", - 81: "need authenticator", - 82: "device power is off", - 83: "device error", - 84: "value too large to be stored in data type", - 85: "bad executable (or shared library)", - 86: "bad CPU type in executable", - 87: "shared library version mismatch", - 88: "malformed Mach-o file", - 89: "operation canceled", - 90: "identifier removed", - 91: "no message of desired type", - 92: "illegal byte sequence", - 93: "attribute not found", - 94: "bad message", - 95: "EMULTIHOP (Reserved)", - 96: "no message available on STREAM", - 97: "ENOLINK (Reserved)", - 98: "no STREAM resources", - 99: "not a STREAM", - 100: "protocol error", - 101: "STREAM ioctl timeout", - 102: "operation not supported on socket", - 103: "policy not found", - 104: "state not recoverable", - 105: "previous owner died", - 106: "interface output queue is full", -} - -// Signal table -var signals = [...]string{ - 1: "hangup", - 2: "interrupt", - 3: "quit", - 4: "illegal instruction", - 5: "trace/BPT trap", - 6: "abort trap", - 7: "EMT trap", - 8: "floating point exception", - 9: "killed", - 10: "bus error", - 11: "segmentation fault", - 12: "bad system call", - 13: "broken pipe", - 14: "alarm clock", - 15: "terminated", - 16: "urgent I/O condition", - 17: "suspended (signal)", - 18: "suspended", - 19: "continued", - 20: "child exited", - 21: "stopped (tty input)", - 22: "stopped (tty output)", - 23: "I/O possible", - 24: "cputime limit exceeded", - 25: "filesize limit exceeded", - 26: "virtual timer expired", - 27: "profiling timer expired", - 28: "window size changes", - 29: "information request", - 30: "user defined signal 1", - 31: "user defined signal 2", -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go deleted file mode 100644 index 48f63d4..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go +++ /dev/null @@ -1,1673 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build amd64,darwin - -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs -- -m64 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_CNT = 0x15 - AF_COIP = 0x14 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_E164 = 0x1c - AF_ECMA = 0x8 - AF_HYLINK = 0xf - AF_IEEE80211 = 0x25 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x1e - AF_IPX = 0x17 - AF_ISDN = 0x1c - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x28 - AF_NATM = 0x1f - AF_NDRV = 0x1b - AF_NETBIOS = 0x21 - AF_NS = 0x6 - AF_OSI = 0x7 - AF_PPP = 0x22 - AF_PUP = 0x4 - AF_RESERVED_36 = 0x24 - AF_ROUTE = 0x11 - AF_SIP = 0x18 - AF_SNA = 0xb - AF_SYSTEM = 0x20 - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_UTUN = 0x26 - ALTWERASE = 0x200 - B0 = 0x0 - B110 = 0x6e - B115200 = 0x1c200 - B1200 = 0x4b0 - B134 = 0x86 - B14400 = 0x3840 - B150 = 0x96 - B1800 = 0x708 - B19200 = 0x4b00 - B200 = 0xc8 - B230400 = 0x38400 - B2400 = 0x960 - B28800 = 0x7080 - B300 = 0x12c - B38400 = 0x9600 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B9600 = 0x2580 - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc00c4279 - BIOCGETIF = 0x4020426b - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044272 - BIOCGRTIMEOUT = 0x4010426e - BIOCGSEESENT = 0x40044276 - BIOCGSTATS = 0x4008426f - BIOCIMMEDIATE = 0x80044270 - BIOCPROMISC = 0x20004269 - BIOCSBLEN = 0xc0044266 - BIOCSDLT = 0x80044278 - BIOCSETF = 0x80104267 - BIOCSETFNR = 0x8010427e - BIOCSETIF = 0x8020426c - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044273 - BIOCSRTIMEOUT = 0x8010426d - BIOCSSEESENT = 0x80044277 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIV = 0x30 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXBUFSIZE = 0x80000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_OR = 0x40 - BPF_RELEASE = 0x30bb6 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x8000 - BSDLY = 0x8000 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLOCK_MONOTONIC = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_MONOTONIC_RAW_APPROX = 0x5 - CLOCK_PROCESS_CPUTIME_ID = 0xc - CLOCK_REALTIME = 0x0 - CLOCK_THREAD_CPUTIME_ID = 0x10 - CLOCK_UPTIME_RAW = 0x8 - CLOCK_UPTIME_RAW_APPROX = 0x9 - CR0 = 0x0 - CR1 = 0x1000 - CR2 = 0x2000 - CR3 = 0x3000 - CRDLY = 0x3000 - CREAD = 0x800 - CRTSCTS = 0x30000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_MAXNAME = 0xc - CTL_NET = 0x4 - DLT_A429 = 0xb8 - DLT_A653_ICM = 0xb9 - DLT_AIRONET_HEADER = 0x78 - DLT_AOS = 0xde - DLT_APPLE_IP_OVER_IEEE1394 = 0x8a - DLT_ARCNET = 0x7 - DLT_ARCNET_LINUX = 0x81 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_AX25_KISS = 0xca - DLT_BACNET_MS_TP = 0xa5 - DLT_BLUETOOTH_HCI_H4 = 0xbb - DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 - DLT_CAN20B = 0xbe - DLT_CAN_SOCKETCAN = 0xe3 - DLT_CHAOS = 0x5 - DLT_CHDLC = 0x68 - DLT_CISCO_IOS = 0x76 - DLT_C_HDLC = 0x68 - DLT_C_HDLC_WITH_DIR = 0xcd - DLT_DBUS = 0xe7 - DLT_DECT = 0xdd - DLT_DOCSIS = 0x8f - DLT_DVB_CI = 0xeb - DLT_ECONET = 0x73 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_ERF = 0xc5 - DLT_ERF_ETH = 0xaf - DLT_ERF_POS = 0xb0 - DLT_FC_2 = 0xe0 - DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 - DLT_FDDI = 0xa - DLT_FLEXRAY = 0xd2 - DLT_FRELAY = 0x6b - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_GSMTAP_ABIS = 0xda - DLT_GSMTAP_UM = 0xd9 - DLT_HHDLC = 0x79 - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_IEEE802_15_4 = 0xc3 - DLT_IEEE802_15_4_LINUX = 0xbf - DLT_IEEE802_15_4_NOFCS = 0xe6 - DLT_IEEE802_15_4_NONASK_PHY = 0xd7 - DLT_IEEE802_16_MAC_CPS = 0xbc - DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 - DLT_IPFILTER = 0x74 - DLT_IPMB = 0xc7 - DLT_IPMB_LINUX = 0xd1 - DLT_IPNET = 0xe2 - DLT_IPOIB = 0xf2 - DLT_IPV4 = 0xe4 - DLT_IPV6 = 0xe5 - DLT_IP_OVER_FC = 0x7a - DLT_JUNIPER_ATM1 = 0x89 - DLT_JUNIPER_ATM2 = 0x87 - DLT_JUNIPER_ATM_CEMIC = 0xee - DLT_JUNIPER_CHDLC = 0xb5 - DLT_JUNIPER_ES = 0x84 - DLT_JUNIPER_ETHER = 0xb2 - DLT_JUNIPER_FIBRECHANNEL = 0xea - DLT_JUNIPER_FRELAY = 0xb4 - DLT_JUNIPER_GGSN = 0x85 - DLT_JUNIPER_ISM = 0xc2 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - DLT_JUNIPER_PPPOE = 0xa7 - DLT_JUNIPER_PPPOE_ATM = 0xa8 - DLT_JUNIPER_SERVICES = 0x88 - DLT_JUNIPER_SRX_E2E = 0xe9 - DLT_JUNIPER_ST = 0xc8 - DLT_JUNIPER_VP = 0xb7 - DLT_JUNIPER_VS = 0xe8 - DLT_LAPB_WITH_DIR = 0xcf - DLT_LAPD = 0xcb - DLT_LIN = 0xd4 - DLT_LINUX_EVDEV = 0xd8 - DLT_LINUX_IRDA = 0x90 - DLT_LINUX_LAPD = 0xb1 - DLT_LINUX_PPP_WITHDIRECTION = 0xa6 - DLT_LINUX_SLL = 0x71 - DLT_LOOP = 0x6c - DLT_LTALK = 0x72 - DLT_MATCHING_MAX = 0xf5 - DLT_MATCHING_MIN = 0x68 - DLT_MFR = 0xb6 - DLT_MOST = 0xd3 - DLT_MPEG_2_TS = 0xf3 - DLT_MPLS = 0xdb - DLT_MTP2 = 0x8c - DLT_MTP2_WITH_PHDR = 0x8b - DLT_MTP3 = 0x8d - DLT_MUX27010 = 0xec - DLT_NETANALYZER = 0xf0 - DLT_NETANALYZER_TRANSPARENT = 0xf1 - DLT_NFC_LLCP = 0xf5 - DLT_NFLOG = 0xef - DLT_NG40 = 0xf4 - DLT_NULL = 0x0 - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PPI = 0xc0 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0x10 - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PPP_WITH_DIRECTION = 0xa6 - DLT_PRISM_HEADER = 0x77 - DLT_PRONET = 0x4 - DLT_RAIF1 = 0xc6 - DLT_RAW = 0xc - DLT_RIO = 0x7c - DLT_SCCP = 0x8e - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xf - DLT_STANAG_5066_D_PDU = 0xed - DLT_SUNATM = 0x7b - DLT_SYMANTEC_FIREWALL = 0x63 - DLT_TZSP = 0x80 - DLT_USB = 0xba - DLT_USB_LINUX = 0xbd - DLT_USB_LINUX_MMAPPED = 0xdc - DLT_USER0 = 0x93 - DLT_USER1 = 0x94 - DLT_USER10 = 0x9d - DLT_USER11 = 0x9e - DLT_USER12 = 0x9f - DLT_USER13 = 0xa0 - DLT_USER14 = 0xa1 - DLT_USER15 = 0xa2 - DLT_USER2 = 0x95 - DLT_USER3 = 0x96 - DLT_USER4 = 0x97 - DLT_USER5 = 0x98 - DLT_USER6 = 0x99 - DLT_USER7 = 0x9a - DLT_USER8 = 0x9b - DLT_USER9 = 0x9c - DLT_WIHART = 0xdf - DLT_X2E_SERIAL = 0xd5 - DLT_X2E_XORAYA = 0xd6 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EVFILT_AIO = -0x3 - EVFILT_EXCEPT = -0xf - EVFILT_FS = -0x9 - EVFILT_MACHPORT = -0x8 - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0xf - EVFILT_THREADMARKER = 0xf - EVFILT_TIMER = -0x7 - EVFILT_USER = -0xa - EVFILT_VM = -0xc - EVFILT_VNODE = -0x4 - EVFILT_WRITE = -0x2 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_DISPATCH = 0x80 - EV_DISPATCH2 = 0x180 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG0 = 0x1000 - EV_FLAG1 = 0x2000 - EV_ONESHOT = 0x10 - EV_OOBAND = 0x2000 - EV_POLL = 0x1000 - EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf000 - EV_UDATA_SPECIFIC = 0x100 - EV_VANISHED = 0x200 - EXTA = 0x4b00 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x4000 - FFDLY = 0x4000 - FLUSHO = 0x800000 - F_ADDFILESIGS = 0x3d - F_ADDFILESIGS_FOR_DYLD_SIM = 0x53 - F_ADDFILESIGS_RETURN = 0x61 - F_ADDSIGS = 0x3b - F_ALLOCATEALL = 0x4 - F_ALLOCATECONTIG = 0x2 - F_BARRIERFSYNC = 0x55 - F_CHECK_LV = 0x62 - F_CHKCLEAN = 0x29 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x43 - F_FINDSIGS = 0x4e - F_FLUSH_DATA = 0x28 - F_FREEZE_FS = 0x35 - F_FULLFSYNC = 0x33 - F_GETCODEDIR = 0x48 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0x7 - F_GETLKPID = 0x42 - F_GETNOSIGPIPE = 0x4a - F_GETOWN = 0x5 - F_GETPATH = 0x32 - F_GETPATH_MTMINFO = 0x47 - F_GETPROTECTIONCLASS = 0x3f - F_GETPROTECTIONLEVEL = 0x4d - F_GLOBAL_NOCACHE = 0x37 - F_LOG2PHYS = 0x31 - F_LOG2PHYS_EXT = 0x41 - F_NOCACHE = 0x30 - F_NODIRECT = 0x3e - F_OK = 0x0 - F_PATHPKG_CHECK = 0x34 - F_PEOFPOSMODE = 0x3 - F_PREALLOCATE = 0x2a - F_RDADVISE = 0x2c - F_RDAHEAD = 0x2d - F_RDLCK = 0x1 - F_SETBACKINGSTORE = 0x46 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x8 - F_SETLKW = 0x9 - F_SETLKWTIMEOUT = 0xa - F_SETNOSIGPIPE = 0x49 - F_SETOWN = 0x6 - F_SETPROTECTIONCLASS = 0x40 - F_SETSIZE = 0x2b - F_SINGLE_WRITER = 0x4c - F_THAW_FS = 0x36 - F_TRANSCODEKEY = 0x4b - F_UNLCK = 0x2 - F_VOLPOSMODE = 0x4 - F_WRLCK = 0x3 - HUPCL = 0x4000 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFF_ALLMULTI = 0x200 - IFF_ALTPHYS = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NOTRAILERS = 0x20 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_1822 = 0x2 - IFT_AAL5 = 0x31 - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ATM = 0x25 - IFT_BRIDGE = 0xd1 - IFT_CARP = 0xf8 - IFT_CELLULAR = 0xff - IFT_CEPT = 0x13 - IFT_DS3 = 0x1e - IFT_ENC = 0xf4 - IFT_EON = 0x19 - IFT_ETHER = 0x6 - IFT_FAITH = 0x38 - IFT_FDDI = 0xf - IFT_FRELAY = 0x20 - IFT_FRELAYDCE = 0x2c - IFT_GIF = 0x37 - IFT_HDH1822 = 0x3 - IFT_HIPPI = 0x2f - IFT_HSSI = 0x2e - IFT_HY = 0xe - IFT_IEEE1394 = 0x90 - IFT_IEEE8023ADLAG = 0x88 - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_ISO88022LLC = 0x29 - IFT_ISO88023 = 0x7 - IFT_ISO88024 = 0x8 - IFT_ISO88025 = 0x9 - IFT_ISO88026 = 0xa - IFT_L2VLAN = 0x87 - IFT_LAPB = 0x10 - IFT_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - IFT_MIOX25 = 0x26 - IFT_MODEM = 0x30 - IFT_NSIP = 0x1b - IFT_OTHER = 0x1 - IFT_P10 = 0xc - IFT_P80 = 0xd - IFT_PARA = 0x22 - IFT_PDP = 0xff - IFT_PFLOG = 0xf5 - IFT_PFSYNC = 0xf6 - IFT_PKTAP = 0xfe - IFT_PPP = 0x17 - IFT_PROPMUX = 0x36 - IFT_PROPVIRTUAL = 0x35 - IFT_PTPSERIAL = 0x16 - IFT_RS232 = 0x21 - IFT_SDLC = 0x11 - IFT_SIP = 0x1f - IFT_SLIP = 0x1c - IFT_SMDSDXI = 0x2b - IFT_SMDSICIP = 0x34 - IFT_SONET = 0x27 - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_STARLAN = 0xb - IFT_STF = 0x39 - IFT_T1 = 0x12 - IFT_ULTRA = 0x1d - IFT_V35 = 0x2d - IFT_X25 = 0x5 - IFT_X25DDN = 0x4 - IFT_X25PLE = 0x28 - IFT_XETHER = 0x1a - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLASSD_HOST = 0xfffffff - IN_CLASSD_NET = 0xf0000000 - IN_CLASSD_NSHIFT = 0x1c - IN_LINKLOCALNETNUM = 0xa9fe0000 - IN_LOOPBACKNET = 0x7f - IPPROTO_3PC = 0x22 - IPPROTO_ADFS = 0x44 - IPPROTO_AH = 0x33 - IPPROTO_AHIP = 0x3d - IPPROTO_APES = 0x63 - IPPROTO_ARGUS = 0xd - IPPROTO_AX25 = 0x5d - IPPROTO_BHA = 0x31 - IPPROTO_BLT = 0x1e - IPPROTO_BRSATMON = 0x4c - IPPROTO_CFTP = 0x3e - IPPROTO_CHAOS = 0x10 - IPPROTO_CMTP = 0x26 - IPPROTO_CPHB = 0x49 - IPPROTO_CPNX = 0x48 - IPPROTO_DDP = 0x25 - IPPROTO_DGP = 0x56 - IPPROTO_DIVERT = 0xfe - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_EMCON = 0xe - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GMTP = 0x64 - IPPROTO_GRE = 0x2f - IPPROTO_HELLO = 0x3f - IPPROTO_HMP = 0x14 - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IDPR = 0x23 - IPPROTO_IDRP = 0x2d - IPPROTO_IGMP = 0x2 - IPPROTO_IGP = 0x55 - IPPROTO_IGRP = 0x58 - IPPROTO_IL = 0x28 - IPPROTO_INLSP = 0x34 - IPPROTO_INP = 0x20 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPCV = 0x47 - IPPROTO_IPEIP = 0x5e - IPPROTO_IPIP = 0x4 - IPPROTO_IPPC = 0x43 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_IRTP = 0x1c - IPPROTO_KRYPTOLAN = 0x41 - IPPROTO_LARP = 0x5b - IPPROTO_LEAF1 = 0x19 - IPPROTO_LEAF2 = 0x1a - IPPROTO_MAX = 0x100 - IPPROTO_MAXID = 0x34 - IPPROTO_MEAS = 0x13 - IPPROTO_MHRP = 0x30 - IPPROTO_MICP = 0x5f - IPPROTO_MTP = 0x5c - IPPROTO_MUX = 0x12 - IPPROTO_ND = 0x4d - IPPROTO_NHRP = 0x36 - IPPROTO_NONE = 0x3b - IPPROTO_NSP = 0x1f - IPPROTO_NVPII = 0xb - IPPROTO_OSPFIGP = 0x59 - IPPROTO_PGM = 0x71 - IPPROTO_PIGP = 0x9 - IPPROTO_PIM = 0x67 - IPPROTO_PRM = 0x15 - IPPROTO_PUP = 0xc - IPPROTO_PVP = 0x4b - IPPROTO_RAW = 0xff - IPPROTO_RCCMON = 0xa - IPPROTO_RDP = 0x1b - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_RVD = 0x42 - IPPROTO_SATEXPAK = 0x40 - IPPROTO_SATMON = 0x45 - IPPROTO_SCCSP = 0x60 - IPPROTO_SCTP = 0x84 - IPPROTO_SDRP = 0x2a - IPPROTO_SEP = 0x21 - IPPROTO_SRPC = 0x5a - IPPROTO_ST = 0x7 - IPPROTO_SVMTP = 0x52 - IPPROTO_SWIPE = 0x35 - IPPROTO_TCF = 0x57 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_TPXX = 0x27 - IPPROTO_TRUNK1 = 0x17 - IPPROTO_TRUNK2 = 0x18 - IPPROTO_TTP = 0x54 - IPPROTO_UDP = 0x11 - IPPROTO_VINES = 0x53 - IPPROTO_VISA = 0x46 - IPPROTO_VMTP = 0x51 - IPPROTO_WBEXPAK = 0x4f - IPPROTO_WBMON = 0x4e - IPPROTO_WSN = 0x4a - IPPROTO_XNET = 0xf - IPPROTO_XTP = 0x24 - IPV6_2292DSTOPTS = 0x17 - IPV6_2292HOPLIMIT = 0x14 - IPV6_2292HOPOPTS = 0x16 - IPV6_2292NEXTHOP = 0x15 - IPV6_2292PKTINFO = 0x13 - IPV6_2292PKTOPTIONS = 0x19 - IPV6_2292RTHDR = 0x18 - IPV6_BINDV6ONLY = 0x1b - IPV6_BOUND_IF = 0x7d - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_FAITH = 0x1d - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FRAGTTL = 0x3c - IPV6_FW_ADD = 0x1e - IPV6_FW_DEL = 0x1f - IPV6_FW_FLUSH = 0x20 - IPV6_FW_GET = 0x22 - IPV6_FW_ZERO = 0x21 - IPV6_HLIMDEC = 0x1 - IPV6_IPSEC_POLICY = 0x1c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXOPTHDR = 0x800 - IPV6_MAXPACKET = 0xffff - IPV6_MAX_GROUP_SRC_FILTER = 0x200 - IPV6_MAX_MEMBERSHIPS = 0xfff - IPV6_MAX_SOCK_SRC_FILTER = 0x80 - IPV6_MIN_MEMBERSHIPS = 0x1f - IPV6_MMTU = 0x500 - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_RECVTCLASS = 0x23 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_SOCKOPT_RESERVED1 = 0x3 - IPV6_TCLASS = 0x24 - IPV6_UNICAST_HOPS = 0x4 - IPV6_V6ONLY = 0x1b - IPV6_VERSION = 0x60 - IPV6_VERSION_MASK = 0xf0 - IP_ADD_MEMBERSHIP = 0xc - IP_ADD_SOURCE_MEMBERSHIP = 0x46 - IP_BLOCK_SOURCE = 0x48 - IP_BOUND_IF = 0x19 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0xd - IP_DROP_SOURCE_MEMBERSHIP = 0x47 - IP_DUMMYNET_CONFIGURE = 0x3c - IP_DUMMYNET_DEL = 0x3d - IP_DUMMYNET_FLUSH = 0x3e - IP_DUMMYNET_GET = 0x40 - IP_FAITH = 0x16 - IP_FW_ADD = 0x28 - IP_FW_DEL = 0x29 - IP_FW_FLUSH = 0x2a - IP_FW_GET = 0x2c - IP_FW_RESETLOG = 0x2d - IP_FW_ZERO = 0x2b - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x15 - IP_MAXPACKET = 0xffff - IP_MAX_GROUP_SRC_FILTER = 0x200 - IP_MAX_MEMBERSHIPS = 0xfff - IP_MAX_SOCK_MUTE_FILTER = 0x80 - IP_MAX_SOCK_SRC_FILTER = 0x80 - IP_MF = 0x2000 - IP_MIN_MEMBERSHIPS = 0x1f - IP_MSFILTER = 0x4a - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_IFINDEX = 0x42 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_MULTICAST_VIF = 0xe - IP_NAT__XXX = 0x37 - IP_OFFMASK = 0x1fff - IP_OLD_FW_ADD = 0x32 - IP_OLD_FW_DEL = 0x33 - IP_OLD_FW_FLUSH = 0x34 - IP_OLD_FW_GET = 0x36 - IP_OLD_FW_RESETLOG = 0x38 - IP_OLD_FW_ZERO = 0x35 - IP_OPTIONS = 0x1 - IP_PKTINFO = 0x1a - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVPKTINFO = 0x1a - IP_RECVRETOPTS = 0x6 - IP_RECVTTL = 0x18 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_RSVP_OFF = 0x10 - IP_RSVP_ON = 0xf - IP_RSVP_VIF_OFF = 0x12 - IP_RSVP_VIF_ON = 0x11 - IP_STRIPHDR = 0x17 - IP_TOS = 0x3 - IP_TRAFFIC_MGT_BACKGROUND = 0x41 - IP_TTL = 0x4 - IP_UNBLOCK_SOURCE = 0x49 - ISIG = 0x80 - ISTRIP = 0x20 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_CAN_REUSE = 0x9 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x5 - MADV_FREE_REUSABLE = 0x7 - MADV_FREE_REUSE = 0x8 - MADV_NORMAL = 0x0 - MADV_PAGEOUT = 0xa - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_WILLNEED = 0x3 - MADV_ZERO_WIRED_PAGES = 0x6 - MAP_ANON = 0x1000 - MAP_ANONYMOUS = 0x1000 - MAP_COPY = 0x2 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_HASSEMAPHORE = 0x200 - MAP_JIT = 0x800 - MAP_NOCACHE = 0x400 - MAP_NOEXTEND = 0x100 - MAP_NORESERVE = 0x40 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 - MAP_RESERVED0080 = 0x80 - MAP_RESILIENT_CODESIGN = 0x2000 - MAP_RESILIENT_MEDIA = 0x4000 - MAP_SHARED = 0x1 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MNT_ASYNC = 0x40 - MNT_AUTOMOUNTED = 0x400000 - MNT_CMDFLAGS = 0xf0000 - MNT_CPROTECT = 0x80 - MNT_DEFWRITE = 0x2000000 - MNT_DONTBROWSE = 0x100000 - MNT_DOVOLFS = 0x8000 - MNT_DWAIT = 0x4 - MNT_EXPORTED = 0x100 - MNT_FORCE = 0x80000 - MNT_IGNORE_OWNERSHIP = 0x200000 - MNT_JOURNALED = 0x800000 - MNT_LOCAL = 0x1000 - MNT_MULTILABEL = 0x4000000 - MNT_NOATIME = 0x10000000 - MNT_NOBLOCK = 0x20000 - MNT_NODEV = 0x10 - MNT_NOEXEC = 0x4 - MNT_NOSUID = 0x8 - MNT_NOUSERXATTR = 0x1000000 - MNT_NOWAIT = 0x2 - MNT_QUARANTINE = 0x400 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELOAD = 0x40000 - MNT_ROOTFS = 0x4000 - MNT_SYNCHRONOUS = 0x2 - MNT_UNION = 0x20 - MNT_UNKNOWNPERMISSIONS = 0x200000 - MNT_UPDATE = 0x10000 - MNT_VISFLAGMASK = 0x17f0f5ff - MNT_WAIT = 0x1 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOF = 0x100 - MSG_EOR = 0x8 - MSG_FLUSH = 0x400 - MSG_HAVEMORE = 0x2000 - MSG_HOLD = 0x800 - MSG_NEEDSA = 0x10000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_RCVMORE = 0x4000 - MSG_SEND = 0x1000 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MSG_WAITSTREAM = 0x200 - MS_ASYNC = 0x1 - MS_DEACTIVATE = 0x8 - MS_INVALIDATE = 0x2 - MS_KILLPAGES = 0x4 - MS_SYNC = 0x10 - NAME_MAX = 0xff - NET_RT_DUMP = 0x1 - NET_RT_DUMP2 = 0x7 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x3 - NET_RT_IFLIST2 = 0x6 - NET_RT_MAXID = 0xa - NET_RT_STAT = 0x4 - NET_RT_TRASH = 0x5 - NL0 = 0x0 - NL1 = 0x100 - NL2 = 0x200 - NL3 = 0x300 - NLDLY = 0x300 - NOFLSH = 0x80000000 - NOKERNINFO = 0x2000000 - NOTE_ABSOLUTE = 0x8 - NOTE_ATTRIB = 0x8 - NOTE_BACKGROUND = 0x40 - NOTE_CHILD = 0x4 - NOTE_CRITICAL = 0x20 - NOTE_DELETE = 0x1 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXITSTATUS = 0x4000000 - NOTE_EXIT_CSERROR = 0x40000 - NOTE_EXIT_DECRYPTFAIL = 0x10000 - NOTE_EXIT_DETAIL = 0x2000000 - NOTE_EXIT_DETAIL_MASK = 0x70000 - NOTE_EXIT_MEMORY = 0x20000 - NOTE_EXIT_REPARENTED = 0x80000 - NOTE_EXTEND = 0x4 - NOTE_FFAND = 0x40000000 - NOTE_FFCOPY = 0xc0000000 - NOTE_FFCTRLMASK = 0xc0000000 - NOTE_FFLAGSMASK = 0xffffff - NOTE_FFNOP = 0x0 - NOTE_FFOR = 0x80000000 - NOTE_FORK = 0x40000000 - NOTE_FUNLOCK = 0x100 - NOTE_LEEWAY = 0x10 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_MACH_CONTINUOUS_TIME = 0x80 - NOTE_NONE = 0x80 - NOTE_NSECONDS = 0x4 - NOTE_OOB = 0x2 - NOTE_PCTRLMASK = -0x100000 - NOTE_PDATAMASK = 0xfffff - NOTE_REAP = 0x10000000 - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_SECONDS = 0x1 - NOTE_SIGNAL = 0x8000000 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_TRIGGER = 0x1000000 - NOTE_USECONDS = 0x2 - NOTE_VM_ERROR = 0x10000000 - NOTE_VM_PRESSURE = 0x80000000 - NOTE_VM_PRESSURE_SUDDEN_TERMINATE = 0x20000000 - NOTE_VM_PRESSURE_TERMINATE = 0x40000000 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - OFDEL = 0x20000 - OFILL = 0x80 - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - OXTABS = 0x4 - O_ACCMODE = 0x3 - O_ALERT = 0x20000000 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x1000000 - O_CREAT = 0x200 - O_DIRECTORY = 0x100000 - O_DP_GETRAWENCRYPTED = 0x1 - O_DP_GETRAWUNENCRYPTED = 0x2 - O_DSYNC = 0x400000 - O_EVTONLY = 0x8000 - O_EXCL = 0x800 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x20000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_POPUP = 0x80000000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_SHLOCK = 0x10 - O_SYMLINK = 0x200000 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PT_ATTACH = 0xa - PT_ATTACHEXC = 0xe - PT_CONTINUE = 0x7 - PT_DENY_ATTACH = 0x1f - PT_DETACH = 0xb - PT_FIRSTMACH = 0x20 - PT_FORCEQUOTA = 0x1e - PT_KILL = 0x8 - PT_READ_D = 0x2 - PT_READ_I = 0x1 - PT_READ_U = 0x3 - PT_SIGEXC = 0xc - PT_STEP = 0x9 - PT_THUPDATE = 0xd - PT_TRACE_ME = 0x0 - PT_WRITE_D = 0x5 - PT_WRITE_I = 0x4 - PT_WRITE_U = 0x6 - RLIMIT_AS = 0x5 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_CPU_USAGE_MONITOR = 0x2 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_MEMLOCK = 0x6 - RLIMIT_NOFILE = 0x8 - RLIMIT_NPROC = 0x7 - RLIMIT_RSS = 0x5 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0x7fffffffffffffff - RTAX_AUTHOR = 0x6 - RTAX_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x8 - RTAX_NETMASK = 0x2 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_CLONING = 0x100 - RTF_CONDEMNED = 0x2000000 - RTF_DELCLONE = 0x80 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_IFREF = 0x4000000 - RTF_IFSCOPE = 0x1000000 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MODIFIED = 0x20 - RTF_MULTICAST = 0x800000 - RTF_NOIFREF = 0x2000 - RTF_PINNED = 0x100000 - RTF_PRCLONING = 0x10000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x40000 - RTF_PROXY = 0x8000000 - RTF_REJECT = 0x8 - RTF_ROUTER = 0x10000000 - RTF_STATIC = 0x800 - RTF_UP = 0x1 - RTF_WASCLONED = 0x20000 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_DELMADDR = 0x10 - RTM_GET = 0x4 - RTM_GET2 = 0x14 - RTM_IFINFO = 0xe - RTM_IFINFO2 = 0x12 - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_NEWMADDR = 0xf - RTM_NEWMADDR2 = 0x13 - RTM_OLDADD = 0x9 - RTM_OLDDEL = 0xa - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 - RTM_VERSION = 0x5 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - SCM_CREDS = 0x3 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x2 - SCM_TIMESTAMP_MONOTONIC = 0x4 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCARPIPLL = 0xc0206928 - SIOCATMARK = 0x40047307 - SIOCAUTOADDR = 0xc0206926 - SIOCAUTONETMASK = 0x80206927 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFPHYADDR = 0x80206941 - SIOCGDRVSPEC = 0xc028697b - SIOCGETVLAN = 0xc020697f - SIOCGHIWAT = 0x40047301 - SIOCGIFADDR = 0xc0206921 - SIOCGIFALTMTU = 0xc0206948 - SIOCGIFASYNCMAP = 0xc020697c - SIOCGIFBOND = 0xc0206947 - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCAP = 0xc020695b - SIOCGIFCONF = 0xc00c6924 - SIOCGIFDEVMTU = 0xc0206944 - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFGENERIC = 0xc020693a - SIOCGIFKPI = 0xc0206987 - SIOCGIFMAC = 0xc0206982 - SIOCGIFMEDIA = 0xc02c6938 - SIOCGIFMETRIC = 0xc0206917 - SIOCGIFMTU = 0xc0206933 - SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPDSTADDR = 0xc0206940 - SIOCGIFPHYS = 0xc0206935 - SIOCGIFPSRCADDR = 0xc020693f - SIOCGIFSTATUS = 0xc331693d - SIOCGIFVLAN = 0xc020697f - SIOCGIFWAKEFLAGS = 0xc0206988 - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCIFCREATE = 0xc0206978 - SIOCIFCREATE2 = 0xc020697a - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc0106981 - SIOCRSLVMULTI = 0xc010693b - SIOCSDRVSPEC = 0x8028697b - SIOCSETVLAN = 0x8020697e - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8020690c - SIOCSIFALTMTU = 0x80206945 - SIOCSIFASYNCMAP = 0x8020697d - SIOCSIFBOND = 0x80206946 - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFCAP = 0x8020695a - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGENERIC = 0x80206939 - SIOCSIFKPI = 0x80206986 - SIOCSIFLLADDR = 0x8020693c - SIOCSIFMAC = 0x80206983 - SIOCSIFMEDIA = 0xc0206937 - SIOCSIFMETRIC = 0x80206918 - SIOCSIFMTU = 0x80206934 - SIOCSIFNETMASK = 0x80206916 - SIOCSIFPHYADDR = 0x8040693e - SIOCSIFPHYS = 0x80206936 - SIOCSIFVLAN = 0x8020697e - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SOCK_DGRAM = 0x2 - SOCK_MAXADDRLEN = 0xff - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DONTROUTE = 0x10 - SO_DONTTRUNC = 0x2000 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LABEL = 0x1010 - SO_LINGER = 0x80 - SO_LINGER_SEC = 0x1080 - SO_NETSVC_MARKING_LEVEL = 0x1119 - SO_NET_SERVICE_TYPE = 0x1116 - SO_NKE = 0x1021 - SO_NOADDRERR = 0x1023 - SO_NOSIGPIPE = 0x1022 - SO_NOTIFYCONFLICT = 0x1026 - SO_NP_EXTENSIONS = 0x1083 - SO_NREAD = 0x1020 - SO_NUMRCVPKT = 0x1112 - SO_NWRITE = 0x1024 - SO_OOBINLINE = 0x100 - SO_PEERLABEL = 0x1011 - SO_RANDOMPORT = 0x1082 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_REUSESHAREUID = 0x1025 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_TIMESTAMP = 0x400 - SO_TIMESTAMP_MONOTONIC = 0x800 - SO_TYPE = 0x1008 - SO_UPCALLCLOSEWAIT = 0x1027 - SO_USELOOPBACK = 0x40 - SO_WANTMORE = 0x4000 - SO_WANTOOBFLAG = 0x8000 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IFWHT = 0xe000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISTXT = 0x200 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x400 - TAB2 = 0x800 - TAB3 = 0x4 - TABDLY = 0xc04 - TCIFLUSH = 0x1 - TCIOFF = 0x3 - TCIOFLUSH = 0x3 - TCION = 0x4 - TCOFLUSH = 0x2 - TCOOFF = 0x1 - TCOON = 0x2 - TCP_CONNECTIONTIMEOUT = 0x20 - TCP_CONNECTION_INFO = 0x106 - TCP_ENABLE_ECN = 0x104 - TCP_FASTOPEN = 0x105 - TCP_KEEPALIVE = 0x10 - TCP_KEEPCNT = 0x102 - TCP_KEEPINTVL = 0x101 - TCP_MAXHLEN = 0x3c - TCP_MAXOLEN = 0x28 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_SACK = 0x4 - TCP_MAX_WINSHIFT = 0xe - TCP_MINMSS = 0xd8 - TCP_MSS = 0x200 - TCP_NODELAY = 0x1 - TCP_NOOPT = 0x8 - TCP_NOPUSH = 0x4 - TCP_NOTSENT_LOWAT = 0x201 - TCP_RXT_CONNDROPTIME = 0x80 - TCP_RXT_FINDROP = 0x100 - TCP_SENDMOREACKS = 0x103 - TCSAFLUSH = 0x2 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDCDTIMESTAMP = 0x40107458 - TIOCDRAIN = 0x2000745e - TIOCDSIMICROCODE = 0x20007455 - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLUSH = 0x80047410 - TIOCGDRAINWAIT = 0x40047456 - TIOCGETA = 0x40487413 - TIOCGETD = 0x4004741a - TIOCGPGRP = 0x40047477 - TIOCGWINSZ = 0x40087468 - TIOCIXOFF = 0x20007480 - TIOCIXON = 0x20007481 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGDTRWAIT = 0x4004745a - TIOCMGET = 0x4004746a - TIOCMODG = 0x40047403 - TIOCMODS = 0x80047404 - TIOCMSDTRWAIT = 0x8004745b - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x20007471 - TIOCNXCL = 0x2000740e - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x80047470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCPTYGNAME = 0x40807453 - TIOCPTYGRANT = 0x20007454 - TIOCPTYUNLK = 0x20007452 - TIOCREMOTE = 0x80047469 - TIOCSBRK = 0x2000747b - TIOCSCONS = 0x20007463 - TIOCSCTTY = 0x20007461 - TIOCSDRAINWAIT = 0x80047457 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x80487414 - TIOCSETAF = 0x80487416 - TIOCSETAW = 0x80487415 - TIOCSETD = 0x8004741b - TIOCSIG = 0x2000745f - TIOCSPGRP = 0x80047476 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x20007465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCTIMESTAMP = 0x40107459 - TIOCUCNTL = 0x80047466 - TOSTOP = 0x400000 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VM_LOADAVG = 0x2 - VM_MACHFACTOR = 0x4 - VM_MAXID = 0x6 - VM_METER = 0x1 - VM_SWAPUSAGE = 0x5 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VT0 = 0x0 - VT1 = 0x10000 - VTDLY = 0x10000 - VTIME = 0x11 - VWERASE = 0x4 - WCONTINUED = 0x10 - WCOREFLAG = 0x80 - WEXITED = 0x4 - WNOHANG = 0x1 - WNOWAIT = 0x20 - WORDSIZE = 0x40 - WSTOPPED = 0x8 - WUNTRACED = 0x2 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x30) - EADDRNOTAVAIL = syscall.Errno(0x31) - EAFNOSUPPORT = syscall.Errno(0x2f) - EAGAIN = syscall.Errno(0x23) - EALREADY = syscall.Errno(0x25) - EAUTH = syscall.Errno(0x50) - EBADARCH = syscall.Errno(0x56) - EBADEXEC = syscall.Errno(0x55) - EBADF = syscall.Errno(0x9) - EBADMACHO = syscall.Errno(0x58) - EBADMSG = syscall.Errno(0x5e) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x59) - ECHILD = syscall.Errno(0xa) - ECONNABORTED = syscall.Errno(0x35) - ECONNREFUSED = syscall.Errno(0x3d) - ECONNRESET = syscall.Errno(0x36) - EDEADLK = syscall.Errno(0xb) - EDESTADDRREQ = syscall.Errno(0x27) - EDEVERR = syscall.Errno(0x53) - EDOM = syscall.Errno(0x21) - EDQUOT = syscall.Errno(0x45) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EFTYPE = syscall.Errno(0x4f) - EHOSTDOWN = syscall.Errno(0x40) - EHOSTUNREACH = syscall.Errno(0x41) - EIDRM = syscall.Errno(0x5a) - EILSEQ = syscall.Errno(0x5c) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x6a) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5f) - ENAMETOOLONG = syscall.Errno(0x3f) - ENEEDAUTH = syscall.Errno(0x51) - ENETDOWN = syscall.Errno(0x32) - ENETRESET = syscall.Errno(0x34) - ENETUNREACH = syscall.Errno(0x33) - ENFILE = syscall.Errno(0x17) - ENOATTR = syscall.Errno(0x5d) - ENOBUFS = syscall.Errno(0x37) - ENODATA = syscall.Errno(0x60) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x61) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x5b) - ENOPOLICY = syscall.Errno(0x67) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x62) - ENOSTR = syscall.Errno(0x63) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTRECOVERABLE = syscall.Errno(0x68) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x2d) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x66) - EOVERFLOW = syscall.Errno(0x54) - EOWNERDEAD = syscall.Errno(0x69) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x2e) - EPIPE = syscall.Errno(0x20) - EPROCLIM = syscall.Errno(0x43) - EPROCUNAVAIL = syscall.Errno(0x4c) - EPROGMISMATCH = syscall.Errno(0x4b) - EPROGUNAVAIL = syscall.Errno(0x4a) - EPROTO = syscall.Errno(0x64) - EPROTONOSUPPORT = syscall.Errno(0x2b) - EPROTOTYPE = syscall.Errno(0x29) - EPWROFF = syscall.Errno(0x52) - EQFULL = syscall.Errno(0x6a) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x47) - EROFS = syscall.Errno(0x1e) - ERPCMISMATCH = syscall.Errno(0x49) - ESHLIBVERS = syscall.Errno(0x57) - ESHUTDOWN = syscall.Errno(0x3a) - ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x46) - ETIME = syscall.Errno(0x65) - ETIMEDOUT = syscall.Errno(0x3c) - ETOOMANYREFS = syscall.Errno(0x3b) - ETXTBSY = syscall.Errno(0x1a) - EUSERS = syscall.Errno(0x44) - EWOULDBLOCK = syscall.Errno(0x23) - EXDEV = syscall.Errno(0x12) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x14) - SIGCONT = syscall.Signal(0x13) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINFO = syscall.Signal(0x1d) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x17) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) - SIGPROF = syscall.Signal(0x1b) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x12) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x10) - SIGUSR1 = syscall.Signal(0x1e) - SIGUSR2 = syscall.Signal(0x1f) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errors = [...]string{ - 1: "operation not permitted", - 2: "no such file or directory", - 3: "no such process", - 4: "interrupted system call", - 5: "input/output error", - 6: "device not configured", - 7: "argument list too long", - 8: "exec format error", - 9: "bad file descriptor", - 10: "no child processes", - 11: "resource deadlock avoided", - 12: "cannot allocate memory", - 13: "permission denied", - 14: "bad address", - 15: "block device required", - 16: "resource busy", - 17: "file exists", - 18: "cross-device link", - 19: "operation not supported by device", - 20: "not a directory", - 21: "is a directory", - 22: "invalid argument", - 23: "too many open files in system", - 24: "too many open files", - 25: "inappropriate ioctl for device", - 26: "text file busy", - 27: "file too large", - 28: "no space left on device", - 29: "illegal seek", - 30: "read-only file system", - 31: "too many links", - 32: "broken pipe", - 33: "numerical argument out of domain", - 34: "result too large", - 35: "resource temporarily unavailable", - 36: "operation now in progress", - 37: "operation already in progress", - 38: "socket operation on non-socket", - 39: "destination address required", - 40: "message too long", - 41: "protocol wrong type for socket", - 42: "protocol not available", - 43: "protocol not supported", - 44: "socket type not supported", - 45: "operation not supported", - 46: "protocol family not supported", - 47: "address family not supported by protocol family", - 48: "address already in use", - 49: "can't assign requested address", - 50: "network is down", - 51: "network is unreachable", - 52: "network dropped connection on reset", - 53: "software caused connection abort", - 54: "connection reset by peer", - 55: "no buffer space available", - 56: "socket is already connected", - 57: "socket is not connected", - 58: "can't send after socket shutdown", - 59: "too many references: can't splice", - 60: "operation timed out", - 61: "connection refused", - 62: "too many levels of symbolic links", - 63: "file name too long", - 64: "host is down", - 65: "no route to host", - 66: "directory not empty", - 67: "too many processes", - 68: "too many users", - 69: "disc quota exceeded", - 70: "stale NFS file handle", - 71: "too many levels of remote in path", - 72: "RPC struct is bad", - 73: "RPC version wrong", - 74: "RPC prog. not avail", - 75: "program version wrong", - 76: "bad procedure for program", - 77: "no locks available", - 78: "function not implemented", - 79: "inappropriate file type or format", - 80: "authentication error", - 81: "need authenticator", - 82: "device power is off", - 83: "device error", - 84: "value too large to be stored in data type", - 85: "bad executable (or shared library)", - 86: "bad CPU type in executable", - 87: "shared library version mismatch", - 88: "malformed Mach-o file", - 89: "operation canceled", - 90: "identifier removed", - 91: "no message of desired type", - 92: "illegal byte sequence", - 93: "attribute not found", - 94: "bad message", - 95: "EMULTIHOP (Reserved)", - 96: "no message available on STREAM", - 97: "ENOLINK (Reserved)", - 98: "no STREAM resources", - 99: "not a STREAM", - 100: "protocol error", - 101: "STREAM ioctl timeout", - 102: "operation not supported on socket", - 103: "policy not found", - 104: "state not recoverable", - 105: "previous owner died", - 106: "interface output queue is full", -} - -// Signal table -var signals = [...]string{ - 1: "hangup", - 2: "interrupt", - 3: "quit", - 4: "illegal instruction", - 5: "trace/BPT trap", - 6: "abort trap", - 7: "EMT trap", - 8: "floating point exception", - 9: "killed", - 10: "bus error", - 11: "segmentation fault", - 12: "bad system call", - 13: "broken pipe", - 14: "alarm clock", - 15: "terminated", - 16: "urgent I/O condition", - 17: "suspended (signal)", - 18: "suspended", - 19: "continued", - 20: "child exited", - 21: "stopped (tty input)", - 22: "stopped (tty output)", - 23: "I/O possible", - 24: "cputime limit exceeded", - 25: "filesize limit exceeded", - 26: "virtual timer expired", - 27: "profiling timer expired", - 28: "window size changes", - 29: "information request", - 30: "user defined signal 1", - 31: "user defined signal 2", -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_arm.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm.go deleted file mode 100644 index 24cb522..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_darwin_arm.go +++ /dev/null @@ -1,1673 +0,0 @@ -// mkerrors.sh -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build arm,darwin - -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs -- _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_CNT = 0x15 - AF_COIP = 0x14 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_E164 = 0x1c - AF_ECMA = 0x8 - AF_HYLINK = 0xf - AF_IEEE80211 = 0x25 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x1e - AF_IPX = 0x17 - AF_ISDN = 0x1c - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x28 - AF_NATM = 0x1f - AF_NDRV = 0x1b - AF_NETBIOS = 0x21 - AF_NS = 0x6 - AF_OSI = 0x7 - AF_PPP = 0x22 - AF_PUP = 0x4 - AF_RESERVED_36 = 0x24 - AF_ROUTE = 0x11 - AF_SIP = 0x18 - AF_SNA = 0xb - AF_SYSTEM = 0x20 - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_UTUN = 0x26 - ALTWERASE = 0x200 - B0 = 0x0 - B110 = 0x6e - B115200 = 0x1c200 - B1200 = 0x4b0 - B134 = 0x86 - B14400 = 0x3840 - B150 = 0x96 - B1800 = 0x708 - B19200 = 0x4b00 - B200 = 0xc8 - B230400 = 0x38400 - B2400 = 0x960 - B28800 = 0x7080 - B300 = 0x12c - B38400 = 0x9600 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B9600 = 0x2580 - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc00c4279 - BIOCGETIF = 0x4020426b - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044272 - BIOCGRTIMEOUT = 0x4010426e - BIOCGSEESENT = 0x40044276 - BIOCGSTATS = 0x4008426f - BIOCIMMEDIATE = 0x80044270 - BIOCPROMISC = 0x20004269 - BIOCSBLEN = 0xc0044266 - BIOCSDLT = 0x80044278 - BIOCSETF = 0x80104267 - BIOCSETFNR = 0x8010427e - BIOCSETIF = 0x8020426c - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044273 - BIOCSRTIMEOUT = 0x8010426d - BIOCSSEESENT = 0x80044277 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIV = 0x30 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXBUFSIZE = 0x80000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_OR = 0x40 - BPF_RELEASE = 0x30bb6 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x8000 - BSDLY = 0x8000 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLOCK_MONOTONIC = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_MONOTONIC_RAW_APPROX = 0x5 - CLOCK_PROCESS_CPUTIME_ID = 0xc - CLOCK_REALTIME = 0x0 - CLOCK_THREAD_CPUTIME_ID = 0x10 - CLOCK_UPTIME_RAW = 0x8 - CLOCK_UPTIME_RAW_APPROX = 0x9 - CR0 = 0x0 - CR1 = 0x1000 - CR2 = 0x2000 - CR3 = 0x3000 - CRDLY = 0x3000 - CREAD = 0x800 - CRTSCTS = 0x30000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_MAXNAME = 0xc - CTL_NET = 0x4 - DLT_A429 = 0xb8 - DLT_A653_ICM = 0xb9 - DLT_AIRONET_HEADER = 0x78 - DLT_AOS = 0xde - DLT_APPLE_IP_OVER_IEEE1394 = 0x8a - DLT_ARCNET = 0x7 - DLT_ARCNET_LINUX = 0x81 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_AX25_KISS = 0xca - DLT_BACNET_MS_TP = 0xa5 - DLT_BLUETOOTH_HCI_H4 = 0xbb - DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 - DLT_CAN20B = 0xbe - DLT_CAN_SOCKETCAN = 0xe3 - DLT_CHAOS = 0x5 - DLT_CHDLC = 0x68 - DLT_CISCO_IOS = 0x76 - DLT_C_HDLC = 0x68 - DLT_C_HDLC_WITH_DIR = 0xcd - DLT_DBUS = 0xe7 - DLT_DECT = 0xdd - DLT_DOCSIS = 0x8f - DLT_DVB_CI = 0xeb - DLT_ECONET = 0x73 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_ERF = 0xc5 - DLT_ERF_ETH = 0xaf - DLT_ERF_POS = 0xb0 - DLT_FC_2 = 0xe0 - DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 - DLT_FDDI = 0xa - DLT_FLEXRAY = 0xd2 - DLT_FRELAY = 0x6b - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_GSMTAP_ABIS = 0xda - DLT_GSMTAP_UM = 0xd9 - DLT_HHDLC = 0x79 - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_IEEE802_15_4 = 0xc3 - DLT_IEEE802_15_4_LINUX = 0xbf - DLT_IEEE802_15_4_NOFCS = 0xe6 - DLT_IEEE802_15_4_NONASK_PHY = 0xd7 - DLT_IEEE802_16_MAC_CPS = 0xbc - DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 - DLT_IPFILTER = 0x74 - DLT_IPMB = 0xc7 - DLT_IPMB_LINUX = 0xd1 - DLT_IPNET = 0xe2 - DLT_IPOIB = 0xf2 - DLT_IPV4 = 0xe4 - DLT_IPV6 = 0xe5 - DLT_IP_OVER_FC = 0x7a - DLT_JUNIPER_ATM1 = 0x89 - DLT_JUNIPER_ATM2 = 0x87 - DLT_JUNIPER_ATM_CEMIC = 0xee - DLT_JUNIPER_CHDLC = 0xb5 - DLT_JUNIPER_ES = 0x84 - DLT_JUNIPER_ETHER = 0xb2 - DLT_JUNIPER_FIBRECHANNEL = 0xea - DLT_JUNIPER_FRELAY = 0xb4 - DLT_JUNIPER_GGSN = 0x85 - DLT_JUNIPER_ISM = 0xc2 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - DLT_JUNIPER_PPPOE = 0xa7 - DLT_JUNIPER_PPPOE_ATM = 0xa8 - DLT_JUNIPER_SERVICES = 0x88 - DLT_JUNIPER_SRX_E2E = 0xe9 - DLT_JUNIPER_ST = 0xc8 - DLT_JUNIPER_VP = 0xb7 - DLT_JUNIPER_VS = 0xe8 - DLT_LAPB_WITH_DIR = 0xcf - DLT_LAPD = 0xcb - DLT_LIN = 0xd4 - DLT_LINUX_EVDEV = 0xd8 - DLT_LINUX_IRDA = 0x90 - DLT_LINUX_LAPD = 0xb1 - DLT_LINUX_PPP_WITHDIRECTION = 0xa6 - DLT_LINUX_SLL = 0x71 - DLT_LOOP = 0x6c - DLT_LTALK = 0x72 - DLT_MATCHING_MAX = 0xf5 - DLT_MATCHING_MIN = 0x68 - DLT_MFR = 0xb6 - DLT_MOST = 0xd3 - DLT_MPEG_2_TS = 0xf3 - DLT_MPLS = 0xdb - DLT_MTP2 = 0x8c - DLT_MTP2_WITH_PHDR = 0x8b - DLT_MTP3 = 0x8d - DLT_MUX27010 = 0xec - DLT_NETANALYZER = 0xf0 - DLT_NETANALYZER_TRANSPARENT = 0xf1 - DLT_NFC_LLCP = 0xf5 - DLT_NFLOG = 0xef - DLT_NG40 = 0xf4 - DLT_NULL = 0x0 - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PPI = 0xc0 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0x10 - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PPP_WITH_DIRECTION = 0xa6 - DLT_PRISM_HEADER = 0x77 - DLT_PRONET = 0x4 - DLT_RAIF1 = 0xc6 - DLT_RAW = 0xc - DLT_RIO = 0x7c - DLT_SCCP = 0x8e - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xf - DLT_STANAG_5066_D_PDU = 0xed - DLT_SUNATM = 0x7b - DLT_SYMANTEC_FIREWALL = 0x63 - DLT_TZSP = 0x80 - DLT_USB = 0xba - DLT_USB_LINUX = 0xbd - DLT_USB_LINUX_MMAPPED = 0xdc - DLT_USER0 = 0x93 - DLT_USER1 = 0x94 - DLT_USER10 = 0x9d - DLT_USER11 = 0x9e - DLT_USER12 = 0x9f - DLT_USER13 = 0xa0 - DLT_USER14 = 0xa1 - DLT_USER15 = 0xa2 - DLT_USER2 = 0x95 - DLT_USER3 = 0x96 - DLT_USER4 = 0x97 - DLT_USER5 = 0x98 - DLT_USER6 = 0x99 - DLT_USER7 = 0x9a - DLT_USER8 = 0x9b - DLT_USER9 = 0x9c - DLT_WIHART = 0xdf - DLT_X2E_SERIAL = 0xd5 - DLT_X2E_XORAYA = 0xd6 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EVFILT_AIO = -0x3 - EVFILT_EXCEPT = -0xf - EVFILT_FS = -0x9 - EVFILT_MACHPORT = -0x8 - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0xf - EVFILT_THREADMARKER = 0xf - EVFILT_TIMER = -0x7 - EVFILT_USER = -0xa - EVFILT_VM = -0xc - EVFILT_VNODE = -0x4 - EVFILT_WRITE = -0x2 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_DISPATCH = 0x80 - EV_DISPATCH2 = 0x180 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG0 = 0x1000 - EV_FLAG1 = 0x2000 - EV_ONESHOT = 0x10 - EV_OOBAND = 0x2000 - EV_POLL = 0x1000 - EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf000 - EV_UDATA_SPECIFIC = 0x100 - EV_VANISHED = 0x200 - EXTA = 0x4b00 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x4000 - FFDLY = 0x4000 - FLUSHO = 0x800000 - F_ADDFILESIGS = 0x3d - F_ADDFILESIGS_FOR_DYLD_SIM = 0x53 - F_ADDFILESIGS_RETURN = 0x61 - F_ADDSIGS = 0x3b - F_ALLOCATEALL = 0x4 - F_ALLOCATECONTIG = 0x2 - F_BARRIERFSYNC = 0x55 - F_CHECK_LV = 0x62 - F_CHKCLEAN = 0x29 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x43 - F_FINDSIGS = 0x4e - F_FLUSH_DATA = 0x28 - F_FREEZE_FS = 0x35 - F_FULLFSYNC = 0x33 - F_GETCODEDIR = 0x48 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0x7 - F_GETLKPID = 0x42 - F_GETNOSIGPIPE = 0x4a - F_GETOWN = 0x5 - F_GETPATH = 0x32 - F_GETPATH_MTMINFO = 0x47 - F_GETPROTECTIONCLASS = 0x3f - F_GETPROTECTIONLEVEL = 0x4d - F_GLOBAL_NOCACHE = 0x37 - F_LOG2PHYS = 0x31 - F_LOG2PHYS_EXT = 0x41 - F_NOCACHE = 0x30 - F_NODIRECT = 0x3e - F_OK = 0x0 - F_PATHPKG_CHECK = 0x34 - F_PEOFPOSMODE = 0x3 - F_PREALLOCATE = 0x2a - F_RDADVISE = 0x2c - F_RDAHEAD = 0x2d - F_RDLCK = 0x1 - F_SETBACKINGSTORE = 0x46 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x8 - F_SETLKW = 0x9 - F_SETLKWTIMEOUT = 0xa - F_SETNOSIGPIPE = 0x49 - F_SETOWN = 0x6 - F_SETPROTECTIONCLASS = 0x40 - F_SETSIZE = 0x2b - F_SINGLE_WRITER = 0x4c - F_THAW_FS = 0x36 - F_TRANSCODEKEY = 0x4b - F_UNLCK = 0x2 - F_VOLPOSMODE = 0x4 - F_WRLCK = 0x3 - HUPCL = 0x4000 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFF_ALLMULTI = 0x200 - IFF_ALTPHYS = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NOTRAILERS = 0x20 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_1822 = 0x2 - IFT_AAL5 = 0x31 - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ATM = 0x25 - IFT_BRIDGE = 0xd1 - IFT_CARP = 0xf8 - IFT_CELLULAR = 0xff - IFT_CEPT = 0x13 - IFT_DS3 = 0x1e - IFT_ENC = 0xf4 - IFT_EON = 0x19 - IFT_ETHER = 0x6 - IFT_FAITH = 0x38 - IFT_FDDI = 0xf - IFT_FRELAY = 0x20 - IFT_FRELAYDCE = 0x2c - IFT_GIF = 0x37 - IFT_HDH1822 = 0x3 - IFT_HIPPI = 0x2f - IFT_HSSI = 0x2e - IFT_HY = 0xe - IFT_IEEE1394 = 0x90 - IFT_IEEE8023ADLAG = 0x88 - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_ISO88022LLC = 0x29 - IFT_ISO88023 = 0x7 - IFT_ISO88024 = 0x8 - IFT_ISO88025 = 0x9 - IFT_ISO88026 = 0xa - IFT_L2VLAN = 0x87 - IFT_LAPB = 0x10 - IFT_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - IFT_MIOX25 = 0x26 - IFT_MODEM = 0x30 - IFT_NSIP = 0x1b - IFT_OTHER = 0x1 - IFT_P10 = 0xc - IFT_P80 = 0xd - IFT_PARA = 0x22 - IFT_PDP = 0xff - IFT_PFLOG = 0xf5 - IFT_PFSYNC = 0xf6 - IFT_PKTAP = 0xfe - IFT_PPP = 0x17 - IFT_PROPMUX = 0x36 - IFT_PROPVIRTUAL = 0x35 - IFT_PTPSERIAL = 0x16 - IFT_RS232 = 0x21 - IFT_SDLC = 0x11 - IFT_SIP = 0x1f - IFT_SLIP = 0x1c - IFT_SMDSDXI = 0x2b - IFT_SMDSICIP = 0x34 - IFT_SONET = 0x27 - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_STARLAN = 0xb - IFT_STF = 0x39 - IFT_T1 = 0x12 - IFT_ULTRA = 0x1d - IFT_V35 = 0x2d - IFT_X25 = 0x5 - IFT_X25DDN = 0x4 - IFT_X25PLE = 0x28 - IFT_XETHER = 0x1a - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLASSD_HOST = 0xfffffff - IN_CLASSD_NET = 0xf0000000 - IN_CLASSD_NSHIFT = 0x1c - IN_LINKLOCALNETNUM = 0xa9fe0000 - IN_LOOPBACKNET = 0x7f - IPPROTO_3PC = 0x22 - IPPROTO_ADFS = 0x44 - IPPROTO_AH = 0x33 - IPPROTO_AHIP = 0x3d - IPPROTO_APES = 0x63 - IPPROTO_ARGUS = 0xd - IPPROTO_AX25 = 0x5d - IPPROTO_BHA = 0x31 - IPPROTO_BLT = 0x1e - IPPROTO_BRSATMON = 0x4c - IPPROTO_CFTP = 0x3e - IPPROTO_CHAOS = 0x10 - IPPROTO_CMTP = 0x26 - IPPROTO_CPHB = 0x49 - IPPROTO_CPNX = 0x48 - IPPROTO_DDP = 0x25 - IPPROTO_DGP = 0x56 - IPPROTO_DIVERT = 0xfe - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_EMCON = 0xe - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GMTP = 0x64 - IPPROTO_GRE = 0x2f - IPPROTO_HELLO = 0x3f - IPPROTO_HMP = 0x14 - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IDPR = 0x23 - IPPROTO_IDRP = 0x2d - IPPROTO_IGMP = 0x2 - IPPROTO_IGP = 0x55 - IPPROTO_IGRP = 0x58 - IPPROTO_IL = 0x28 - IPPROTO_INLSP = 0x34 - IPPROTO_INP = 0x20 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPCV = 0x47 - IPPROTO_IPEIP = 0x5e - IPPROTO_IPIP = 0x4 - IPPROTO_IPPC = 0x43 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_IRTP = 0x1c - IPPROTO_KRYPTOLAN = 0x41 - IPPROTO_LARP = 0x5b - IPPROTO_LEAF1 = 0x19 - IPPROTO_LEAF2 = 0x1a - IPPROTO_MAX = 0x100 - IPPROTO_MAXID = 0x34 - IPPROTO_MEAS = 0x13 - IPPROTO_MHRP = 0x30 - IPPROTO_MICP = 0x5f - IPPROTO_MTP = 0x5c - IPPROTO_MUX = 0x12 - IPPROTO_ND = 0x4d - IPPROTO_NHRP = 0x36 - IPPROTO_NONE = 0x3b - IPPROTO_NSP = 0x1f - IPPROTO_NVPII = 0xb - IPPROTO_OSPFIGP = 0x59 - IPPROTO_PGM = 0x71 - IPPROTO_PIGP = 0x9 - IPPROTO_PIM = 0x67 - IPPROTO_PRM = 0x15 - IPPROTO_PUP = 0xc - IPPROTO_PVP = 0x4b - IPPROTO_RAW = 0xff - IPPROTO_RCCMON = 0xa - IPPROTO_RDP = 0x1b - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_RVD = 0x42 - IPPROTO_SATEXPAK = 0x40 - IPPROTO_SATMON = 0x45 - IPPROTO_SCCSP = 0x60 - IPPROTO_SCTP = 0x84 - IPPROTO_SDRP = 0x2a - IPPROTO_SEP = 0x21 - IPPROTO_SRPC = 0x5a - IPPROTO_ST = 0x7 - IPPROTO_SVMTP = 0x52 - IPPROTO_SWIPE = 0x35 - IPPROTO_TCF = 0x57 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_TPXX = 0x27 - IPPROTO_TRUNK1 = 0x17 - IPPROTO_TRUNK2 = 0x18 - IPPROTO_TTP = 0x54 - IPPROTO_UDP = 0x11 - IPPROTO_VINES = 0x53 - IPPROTO_VISA = 0x46 - IPPROTO_VMTP = 0x51 - IPPROTO_WBEXPAK = 0x4f - IPPROTO_WBMON = 0x4e - IPPROTO_WSN = 0x4a - IPPROTO_XNET = 0xf - IPPROTO_XTP = 0x24 - IPV6_2292DSTOPTS = 0x17 - IPV6_2292HOPLIMIT = 0x14 - IPV6_2292HOPOPTS = 0x16 - IPV6_2292NEXTHOP = 0x15 - IPV6_2292PKTINFO = 0x13 - IPV6_2292PKTOPTIONS = 0x19 - IPV6_2292RTHDR = 0x18 - IPV6_BINDV6ONLY = 0x1b - IPV6_BOUND_IF = 0x7d - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_FAITH = 0x1d - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FRAGTTL = 0x3c - IPV6_FW_ADD = 0x1e - IPV6_FW_DEL = 0x1f - IPV6_FW_FLUSH = 0x20 - IPV6_FW_GET = 0x22 - IPV6_FW_ZERO = 0x21 - IPV6_HLIMDEC = 0x1 - IPV6_IPSEC_POLICY = 0x1c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXOPTHDR = 0x800 - IPV6_MAXPACKET = 0xffff - IPV6_MAX_GROUP_SRC_FILTER = 0x200 - IPV6_MAX_MEMBERSHIPS = 0xfff - IPV6_MAX_SOCK_SRC_FILTER = 0x80 - IPV6_MIN_MEMBERSHIPS = 0x1f - IPV6_MMTU = 0x500 - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_RECVTCLASS = 0x23 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_SOCKOPT_RESERVED1 = 0x3 - IPV6_TCLASS = 0x24 - IPV6_UNICAST_HOPS = 0x4 - IPV6_V6ONLY = 0x1b - IPV6_VERSION = 0x60 - IPV6_VERSION_MASK = 0xf0 - IP_ADD_MEMBERSHIP = 0xc - IP_ADD_SOURCE_MEMBERSHIP = 0x46 - IP_BLOCK_SOURCE = 0x48 - IP_BOUND_IF = 0x19 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0xd - IP_DROP_SOURCE_MEMBERSHIP = 0x47 - IP_DUMMYNET_CONFIGURE = 0x3c - IP_DUMMYNET_DEL = 0x3d - IP_DUMMYNET_FLUSH = 0x3e - IP_DUMMYNET_GET = 0x40 - IP_FAITH = 0x16 - IP_FW_ADD = 0x28 - IP_FW_DEL = 0x29 - IP_FW_FLUSH = 0x2a - IP_FW_GET = 0x2c - IP_FW_RESETLOG = 0x2d - IP_FW_ZERO = 0x2b - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x15 - IP_MAXPACKET = 0xffff - IP_MAX_GROUP_SRC_FILTER = 0x200 - IP_MAX_MEMBERSHIPS = 0xfff - IP_MAX_SOCK_MUTE_FILTER = 0x80 - IP_MAX_SOCK_SRC_FILTER = 0x80 - IP_MF = 0x2000 - IP_MIN_MEMBERSHIPS = 0x1f - IP_MSFILTER = 0x4a - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_IFINDEX = 0x42 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_MULTICAST_VIF = 0xe - IP_NAT__XXX = 0x37 - IP_OFFMASK = 0x1fff - IP_OLD_FW_ADD = 0x32 - IP_OLD_FW_DEL = 0x33 - IP_OLD_FW_FLUSH = 0x34 - IP_OLD_FW_GET = 0x36 - IP_OLD_FW_RESETLOG = 0x38 - IP_OLD_FW_ZERO = 0x35 - IP_OPTIONS = 0x1 - IP_PKTINFO = 0x1a - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVPKTINFO = 0x1a - IP_RECVRETOPTS = 0x6 - IP_RECVTTL = 0x18 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_RSVP_OFF = 0x10 - IP_RSVP_ON = 0xf - IP_RSVP_VIF_OFF = 0x12 - IP_RSVP_VIF_ON = 0x11 - IP_STRIPHDR = 0x17 - IP_TOS = 0x3 - IP_TRAFFIC_MGT_BACKGROUND = 0x41 - IP_TTL = 0x4 - IP_UNBLOCK_SOURCE = 0x49 - ISIG = 0x80 - ISTRIP = 0x20 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_CAN_REUSE = 0x9 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x5 - MADV_FREE_REUSABLE = 0x7 - MADV_FREE_REUSE = 0x8 - MADV_NORMAL = 0x0 - MADV_PAGEOUT = 0xa - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_WILLNEED = 0x3 - MADV_ZERO_WIRED_PAGES = 0x6 - MAP_ANON = 0x1000 - MAP_ANONYMOUS = 0x1000 - MAP_COPY = 0x2 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_HASSEMAPHORE = 0x200 - MAP_JIT = 0x800 - MAP_NOCACHE = 0x400 - MAP_NOEXTEND = 0x100 - MAP_NORESERVE = 0x40 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 - MAP_RESERVED0080 = 0x80 - MAP_RESILIENT_CODESIGN = 0x2000 - MAP_RESILIENT_MEDIA = 0x4000 - MAP_SHARED = 0x1 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MNT_ASYNC = 0x40 - MNT_AUTOMOUNTED = 0x400000 - MNT_CMDFLAGS = 0xf0000 - MNT_CPROTECT = 0x80 - MNT_DEFWRITE = 0x2000000 - MNT_DONTBROWSE = 0x100000 - MNT_DOVOLFS = 0x8000 - MNT_DWAIT = 0x4 - MNT_EXPORTED = 0x100 - MNT_FORCE = 0x80000 - MNT_IGNORE_OWNERSHIP = 0x200000 - MNT_JOURNALED = 0x800000 - MNT_LOCAL = 0x1000 - MNT_MULTILABEL = 0x4000000 - MNT_NOATIME = 0x10000000 - MNT_NOBLOCK = 0x20000 - MNT_NODEV = 0x10 - MNT_NOEXEC = 0x4 - MNT_NOSUID = 0x8 - MNT_NOUSERXATTR = 0x1000000 - MNT_NOWAIT = 0x2 - MNT_QUARANTINE = 0x400 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELOAD = 0x40000 - MNT_ROOTFS = 0x4000 - MNT_SYNCHRONOUS = 0x2 - MNT_UNION = 0x20 - MNT_UNKNOWNPERMISSIONS = 0x200000 - MNT_UPDATE = 0x10000 - MNT_VISFLAGMASK = 0x17f0f5ff - MNT_WAIT = 0x1 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOF = 0x100 - MSG_EOR = 0x8 - MSG_FLUSH = 0x400 - MSG_HAVEMORE = 0x2000 - MSG_HOLD = 0x800 - MSG_NEEDSA = 0x10000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_RCVMORE = 0x4000 - MSG_SEND = 0x1000 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MSG_WAITSTREAM = 0x200 - MS_ASYNC = 0x1 - MS_DEACTIVATE = 0x8 - MS_INVALIDATE = 0x2 - MS_KILLPAGES = 0x4 - MS_SYNC = 0x10 - NAME_MAX = 0xff - NET_RT_DUMP = 0x1 - NET_RT_DUMP2 = 0x7 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x3 - NET_RT_IFLIST2 = 0x6 - NET_RT_MAXID = 0xa - NET_RT_STAT = 0x4 - NET_RT_TRASH = 0x5 - NL0 = 0x0 - NL1 = 0x100 - NL2 = 0x200 - NL3 = 0x300 - NLDLY = 0x300 - NOFLSH = 0x80000000 - NOKERNINFO = 0x2000000 - NOTE_ABSOLUTE = 0x8 - NOTE_ATTRIB = 0x8 - NOTE_BACKGROUND = 0x40 - NOTE_CHILD = 0x4 - NOTE_CRITICAL = 0x20 - NOTE_DELETE = 0x1 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXITSTATUS = 0x4000000 - NOTE_EXIT_CSERROR = 0x40000 - NOTE_EXIT_DECRYPTFAIL = 0x10000 - NOTE_EXIT_DETAIL = 0x2000000 - NOTE_EXIT_DETAIL_MASK = 0x70000 - NOTE_EXIT_MEMORY = 0x20000 - NOTE_EXIT_REPARENTED = 0x80000 - NOTE_EXTEND = 0x4 - NOTE_FFAND = 0x40000000 - NOTE_FFCOPY = 0xc0000000 - NOTE_FFCTRLMASK = 0xc0000000 - NOTE_FFLAGSMASK = 0xffffff - NOTE_FFNOP = 0x0 - NOTE_FFOR = 0x80000000 - NOTE_FORK = 0x40000000 - NOTE_FUNLOCK = 0x100 - NOTE_LEEWAY = 0x10 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_MACH_CONTINUOUS_TIME = 0x80 - NOTE_NONE = 0x80 - NOTE_NSECONDS = 0x4 - NOTE_OOB = 0x2 - NOTE_PCTRLMASK = -0x100000 - NOTE_PDATAMASK = 0xfffff - NOTE_REAP = 0x10000000 - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_SECONDS = 0x1 - NOTE_SIGNAL = 0x8000000 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_TRIGGER = 0x1000000 - NOTE_USECONDS = 0x2 - NOTE_VM_ERROR = 0x10000000 - NOTE_VM_PRESSURE = 0x80000000 - NOTE_VM_PRESSURE_SUDDEN_TERMINATE = 0x20000000 - NOTE_VM_PRESSURE_TERMINATE = 0x40000000 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - OFDEL = 0x20000 - OFILL = 0x80 - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - OXTABS = 0x4 - O_ACCMODE = 0x3 - O_ALERT = 0x20000000 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x1000000 - O_CREAT = 0x200 - O_DIRECTORY = 0x100000 - O_DP_GETRAWENCRYPTED = 0x1 - O_DP_GETRAWUNENCRYPTED = 0x2 - O_DSYNC = 0x400000 - O_EVTONLY = 0x8000 - O_EXCL = 0x800 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x20000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_POPUP = 0x80000000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_SHLOCK = 0x10 - O_SYMLINK = 0x200000 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PT_ATTACH = 0xa - PT_ATTACHEXC = 0xe - PT_CONTINUE = 0x7 - PT_DENY_ATTACH = 0x1f - PT_DETACH = 0xb - PT_FIRSTMACH = 0x20 - PT_FORCEQUOTA = 0x1e - PT_KILL = 0x8 - PT_READ_D = 0x2 - PT_READ_I = 0x1 - PT_READ_U = 0x3 - PT_SIGEXC = 0xc - PT_STEP = 0x9 - PT_THUPDATE = 0xd - PT_TRACE_ME = 0x0 - PT_WRITE_D = 0x5 - PT_WRITE_I = 0x4 - PT_WRITE_U = 0x6 - RLIMIT_AS = 0x5 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_CPU_USAGE_MONITOR = 0x2 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_MEMLOCK = 0x6 - RLIMIT_NOFILE = 0x8 - RLIMIT_NPROC = 0x7 - RLIMIT_RSS = 0x5 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0x7fffffffffffffff - RTAX_AUTHOR = 0x6 - RTAX_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x8 - RTAX_NETMASK = 0x2 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_CLONING = 0x100 - RTF_CONDEMNED = 0x2000000 - RTF_DELCLONE = 0x80 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_IFREF = 0x4000000 - RTF_IFSCOPE = 0x1000000 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MODIFIED = 0x20 - RTF_MULTICAST = 0x800000 - RTF_NOIFREF = 0x2000 - RTF_PINNED = 0x100000 - RTF_PRCLONING = 0x10000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x40000 - RTF_PROXY = 0x8000000 - RTF_REJECT = 0x8 - RTF_ROUTER = 0x10000000 - RTF_STATIC = 0x800 - RTF_UP = 0x1 - RTF_WASCLONED = 0x20000 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_DELMADDR = 0x10 - RTM_GET = 0x4 - RTM_GET2 = 0x14 - RTM_IFINFO = 0xe - RTM_IFINFO2 = 0x12 - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_NEWMADDR = 0xf - RTM_NEWMADDR2 = 0x13 - RTM_OLDADD = 0x9 - RTM_OLDDEL = 0xa - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 - RTM_VERSION = 0x5 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - SCM_CREDS = 0x3 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x2 - SCM_TIMESTAMP_MONOTONIC = 0x4 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCARPIPLL = 0xc0206928 - SIOCATMARK = 0x40047307 - SIOCAUTOADDR = 0xc0206926 - SIOCAUTONETMASK = 0x80206927 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFPHYADDR = 0x80206941 - SIOCGDRVSPEC = 0xc028697b - SIOCGETVLAN = 0xc020697f - SIOCGHIWAT = 0x40047301 - SIOCGIFADDR = 0xc0206921 - SIOCGIFALTMTU = 0xc0206948 - SIOCGIFASYNCMAP = 0xc020697c - SIOCGIFBOND = 0xc0206947 - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCAP = 0xc020695b - SIOCGIFCONF = 0xc00c6924 - SIOCGIFDEVMTU = 0xc0206944 - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFGENERIC = 0xc020693a - SIOCGIFKPI = 0xc0206987 - SIOCGIFMAC = 0xc0206982 - SIOCGIFMEDIA = 0xc02c6938 - SIOCGIFMETRIC = 0xc0206917 - SIOCGIFMTU = 0xc0206933 - SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPDSTADDR = 0xc0206940 - SIOCGIFPHYS = 0xc0206935 - SIOCGIFPSRCADDR = 0xc020693f - SIOCGIFSTATUS = 0xc331693d - SIOCGIFVLAN = 0xc020697f - SIOCGIFWAKEFLAGS = 0xc0206988 - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCIFCREATE = 0xc0206978 - SIOCIFCREATE2 = 0xc020697a - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc0106981 - SIOCRSLVMULTI = 0xc010693b - SIOCSDRVSPEC = 0x8028697b - SIOCSETVLAN = 0x8020697e - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8020690c - SIOCSIFALTMTU = 0x80206945 - SIOCSIFASYNCMAP = 0x8020697d - SIOCSIFBOND = 0x80206946 - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFCAP = 0x8020695a - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGENERIC = 0x80206939 - SIOCSIFKPI = 0x80206986 - SIOCSIFLLADDR = 0x8020693c - SIOCSIFMAC = 0x80206983 - SIOCSIFMEDIA = 0xc0206937 - SIOCSIFMETRIC = 0x80206918 - SIOCSIFMTU = 0x80206934 - SIOCSIFNETMASK = 0x80206916 - SIOCSIFPHYADDR = 0x8040693e - SIOCSIFPHYS = 0x80206936 - SIOCSIFVLAN = 0x8020697e - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SOCK_DGRAM = 0x2 - SOCK_MAXADDRLEN = 0xff - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DONTROUTE = 0x10 - SO_DONTTRUNC = 0x2000 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LABEL = 0x1010 - SO_LINGER = 0x80 - SO_LINGER_SEC = 0x1080 - SO_NETSVC_MARKING_LEVEL = 0x1119 - SO_NET_SERVICE_TYPE = 0x1116 - SO_NKE = 0x1021 - SO_NOADDRERR = 0x1023 - SO_NOSIGPIPE = 0x1022 - SO_NOTIFYCONFLICT = 0x1026 - SO_NP_EXTENSIONS = 0x1083 - SO_NREAD = 0x1020 - SO_NUMRCVPKT = 0x1112 - SO_NWRITE = 0x1024 - SO_OOBINLINE = 0x100 - SO_PEERLABEL = 0x1011 - SO_RANDOMPORT = 0x1082 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_REUSESHAREUID = 0x1025 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_TIMESTAMP = 0x400 - SO_TIMESTAMP_MONOTONIC = 0x800 - SO_TYPE = 0x1008 - SO_UPCALLCLOSEWAIT = 0x1027 - SO_USELOOPBACK = 0x40 - SO_WANTMORE = 0x4000 - SO_WANTOOBFLAG = 0x8000 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IFWHT = 0xe000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISTXT = 0x200 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x400 - TAB2 = 0x800 - TAB3 = 0x4 - TABDLY = 0xc04 - TCIFLUSH = 0x1 - TCIOFF = 0x3 - TCIOFLUSH = 0x3 - TCION = 0x4 - TCOFLUSH = 0x2 - TCOOFF = 0x1 - TCOON = 0x2 - TCP_CONNECTIONTIMEOUT = 0x20 - TCP_CONNECTION_INFO = 0x106 - TCP_ENABLE_ECN = 0x104 - TCP_FASTOPEN = 0x105 - TCP_KEEPALIVE = 0x10 - TCP_KEEPCNT = 0x102 - TCP_KEEPINTVL = 0x101 - TCP_MAXHLEN = 0x3c - TCP_MAXOLEN = 0x28 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_SACK = 0x4 - TCP_MAX_WINSHIFT = 0xe - TCP_MINMSS = 0xd8 - TCP_MSS = 0x200 - TCP_NODELAY = 0x1 - TCP_NOOPT = 0x8 - TCP_NOPUSH = 0x4 - TCP_NOTSENT_LOWAT = 0x201 - TCP_RXT_CONNDROPTIME = 0x80 - TCP_RXT_FINDROP = 0x100 - TCP_SENDMOREACKS = 0x103 - TCSAFLUSH = 0x2 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDCDTIMESTAMP = 0x40107458 - TIOCDRAIN = 0x2000745e - TIOCDSIMICROCODE = 0x20007455 - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLUSH = 0x80047410 - TIOCGDRAINWAIT = 0x40047456 - TIOCGETA = 0x40487413 - TIOCGETD = 0x4004741a - TIOCGPGRP = 0x40047477 - TIOCGWINSZ = 0x40087468 - TIOCIXOFF = 0x20007480 - TIOCIXON = 0x20007481 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGDTRWAIT = 0x4004745a - TIOCMGET = 0x4004746a - TIOCMODG = 0x40047403 - TIOCMODS = 0x80047404 - TIOCMSDTRWAIT = 0x8004745b - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x20007471 - TIOCNXCL = 0x2000740e - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x80047470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCPTYGNAME = 0x40807453 - TIOCPTYGRANT = 0x20007454 - TIOCPTYUNLK = 0x20007452 - TIOCREMOTE = 0x80047469 - TIOCSBRK = 0x2000747b - TIOCSCONS = 0x20007463 - TIOCSCTTY = 0x20007461 - TIOCSDRAINWAIT = 0x80047457 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x80487414 - TIOCSETAF = 0x80487416 - TIOCSETAW = 0x80487415 - TIOCSETD = 0x8004741b - TIOCSIG = 0x2000745f - TIOCSPGRP = 0x80047476 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x20007465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCTIMESTAMP = 0x40107459 - TIOCUCNTL = 0x80047466 - TOSTOP = 0x400000 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VM_LOADAVG = 0x2 - VM_MACHFACTOR = 0x4 - VM_MAXID = 0x6 - VM_METER = 0x1 - VM_SWAPUSAGE = 0x5 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VT0 = 0x0 - VT1 = 0x10000 - VTDLY = 0x10000 - VTIME = 0x11 - VWERASE = 0x4 - WCONTINUED = 0x10 - WCOREFLAG = 0x80 - WEXITED = 0x4 - WNOHANG = 0x1 - WNOWAIT = 0x20 - WORDSIZE = 0x40 - WSTOPPED = 0x8 - WUNTRACED = 0x2 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x30) - EADDRNOTAVAIL = syscall.Errno(0x31) - EAFNOSUPPORT = syscall.Errno(0x2f) - EAGAIN = syscall.Errno(0x23) - EALREADY = syscall.Errno(0x25) - EAUTH = syscall.Errno(0x50) - EBADARCH = syscall.Errno(0x56) - EBADEXEC = syscall.Errno(0x55) - EBADF = syscall.Errno(0x9) - EBADMACHO = syscall.Errno(0x58) - EBADMSG = syscall.Errno(0x5e) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x59) - ECHILD = syscall.Errno(0xa) - ECONNABORTED = syscall.Errno(0x35) - ECONNREFUSED = syscall.Errno(0x3d) - ECONNRESET = syscall.Errno(0x36) - EDEADLK = syscall.Errno(0xb) - EDESTADDRREQ = syscall.Errno(0x27) - EDEVERR = syscall.Errno(0x53) - EDOM = syscall.Errno(0x21) - EDQUOT = syscall.Errno(0x45) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EFTYPE = syscall.Errno(0x4f) - EHOSTDOWN = syscall.Errno(0x40) - EHOSTUNREACH = syscall.Errno(0x41) - EIDRM = syscall.Errno(0x5a) - EILSEQ = syscall.Errno(0x5c) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x6a) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5f) - ENAMETOOLONG = syscall.Errno(0x3f) - ENEEDAUTH = syscall.Errno(0x51) - ENETDOWN = syscall.Errno(0x32) - ENETRESET = syscall.Errno(0x34) - ENETUNREACH = syscall.Errno(0x33) - ENFILE = syscall.Errno(0x17) - ENOATTR = syscall.Errno(0x5d) - ENOBUFS = syscall.Errno(0x37) - ENODATA = syscall.Errno(0x60) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x61) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x5b) - ENOPOLICY = syscall.Errno(0x67) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x62) - ENOSTR = syscall.Errno(0x63) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTRECOVERABLE = syscall.Errno(0x68) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x2d) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x66) - EOVERFLOW = syscall.Errno(0x54) - EOWNERDEAD = syscall.Errno(0x69) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x2e) - EPIPE = syscall.Errno(0x20) - EPROCLIM = syscall.Errno(0x43) - EPROCUNAVAIL = syscall.Errno(0x4c) - EPROGMISMATCH = syscall.Errno(0x4b) - EPROGUNAVAIL = syscall.Errno(0x4a) - EPROTO = syscall.Errno(0x64) - EPROTONOSUPPORT = syscall.Errno(0x2b) - EPROTOTYPE = syscall.Errno(0x29) - EPWROFF = syscall.Errno(0x52) - EQFULL = syscall.Errno(0x6a) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x47) - EROFS = syscall.Errno(0x1e) - ERPCMISMATCH = syscall.Errno(0x49) - ESHLIBVERS = syscall.Errno(0x57) - ESHUTDOWN = syscall.Errno(0x3a) - ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x46) - ETIME = syscall.Errno(0x65) - ETIMEDOUT = syscall.Errno(0x3c) - ETOOMANYREFS = syscall.Errno(0x3b) - ETXTBSY = syscall.Errno(0x1a) - EUSERS = syscall.Errno(0x44) - EWOULDBLOCK = syscall.Errno(0x23) - EXDEV = syscall.Errno(0x12) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x14) - SIGCONT = syscall.Signal(0x13) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINFO = syscall.Signal(0x1d) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x17) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) - SIGPROF = syscall.Signal(0x1b) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x12) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x10) - SIGUSR1 = syscall.Signal(0x1e) - SIGUSR2 = syscall.Signal(0x1f) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errors = [...]string{ - 1: "operation not permitted", - 2: "no such file or directory", - 3: "no such process", - 4: "interrupted system call", - 5: "input/output error", - 6: "device not configured", - 7: "argument list too long", - 8: "exec format error", - 9: "bad file descriptor", - 10: "no child processes", - 11: "resource deadlock avoided", - 12: "cannot allocate memory", - 13: "permission denied", - 14: "bad address", - 15: "block device required", - 16: "resource busy", - 17: "file exists", - 18: "cross-device link", - 19: "operation not supported by device", - 20: "not a directory", - 21: "is a directory", - 22: "invalid argument", - 23: "too many open files in system", - 24: "too many open files", - 25: "inappropriate ioctl for device", - 26: "text file busy", - 27: "file too large", - 28: "no space left on device", - 29: "illegal seek", - 30: "read-only file system", - 31: "too many links", - 32: "broken pipe", - 33: "numerical argument out of domain", - 34: "result too large", - 35: "resource temporarily unavailable", - 36: "operation now in progress", - 37: "operation already in progress", - 38: "socket operation on non-socket", - 39: "destination address required", - 40: "message too long", - 41: "protocol wrong type for socket", - 42: "protocol not available", - 43: "protocol not supported", - 44: "socket type not supported", - 45: "operation not supported", - 46: "protocol family not supported", - 47: "address family not supported by protocol family", - 48: "address already in use", - 49: "can't assign requested address", - 50: "network is down", - 51: "network is unreachable", - 52: "network dropped connection on reset", - 53: "software caused connection abort", - 54: "connection reset by peer", - 55: "no buffer space available", - 56: "socket is already connected", - 57: "socket is not connected", - 58: "can't send after socket shutdown", - 59: "too many references: can't splice", - 60: "operation timed out", - 61: "connection refused", - 62: "too many levels of symbolic links", - 63: "file name too long", - 64: "host is down", - 65: "no route to host", - 66: "directory not empty", - 67: "too many processes", - 68: "too many users", - 69: "disc quota exceeded", - 70: "stale NFS file handle", - 71: "too many levels of remote in path", - 72: "RPC struct is bad", - 73: "RPC version wrong", - 74: "RPC prog. not avail", - 75: "program version wrong", - 76: "bad procedure for program", - 77: "no locks available", - 78: "function not implemented", - 79: "inappropriate file type or format", - 80: "authentication error", - 81: "need authenticator", - 82: "device power is off", - 83: "device error", - 84: "value too large to be stored in data type", - 85: "bad executable (or shared library)", - 86: "bad CPU type in executable", - 87: "shared library version mismatch", - 88: "malformed Mach-o file", - 89: "operation canceled", - 90: "identifier removed", - 91: "no message of desired type", - 92: "illegal byte sequence", - 93: "attribute not found", - 94: "bad message", - 95: "EMULTIHOP (Reserved)", - 96: "no message available on STREAM", - 97: "ENOLINK (Reserved)", - 98: "no STREAM resources", - 99: "not a STREAM", - 100: "protocol error", - 101: "STREAM ioctl timeout", - 102: "operation not supported on socket", - 103: "policy not found", - 104: "state not recoverable", - 105: "previous owner died", - 106: "interface output queue is full", -} - -// Signal table -var signals = [...]string{ - 1: "hangup", - 2: "interrupt", - 3: "quit", - 4: "illegal instruction", - 5: "trace/BPT trap", - 6: "abort trap", - 7: "EMT trap", - 8: "floating point exception", - 9: "killed", - 10: "bus error", - 11: "segmentation fault", - 12: "bad system call", - 13: "broken pipe", - 14: "alarm clock", - 15: "terminated", - 16: "urgent I/O condition", - 17: "suspended (signal)", - 18: "suspended", - 19: "continued", - 20: "child exited", - 21: "stopped (tty input)", - 22: "stopped (tty output)", - 23: "I/O possible", - 24: "cputime limit exceeded", - 25: "filesize limit exceeded", - 26: "virtual timer expired", - 27: "profiling timer expired", - 28: "window size changes", - 29: "information request", - 30: "user defined signal 1", - 31: "user defined signal 2", -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go deleted file mode 100644 index cc8cc5b..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go +++ /dev/null @@ -1,1673 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build arm64,darwin - -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs -- -m64 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_CNT = 0x15 - AF_COIP = 0x14 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_E164 = 0x1c - AF_ECMA = 0x8 - AF_HYLINK = 0xf - AF_IEEE80211 = 0x25 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x1e - AF_IPX = 0x17 - AF_ISDN = 0x1c - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x28 - AF_NATM = 0x1f - AF_NDRV = 0x1b - AF_NETBIOS = 0x21 - AF_NS = 0x6 - AF_OSI = 0x7 - AF_PPP = 0x22 - AF_PUP = 0x4 - AF_RESERVED_36 = 0x24 - AF_ROUTE = 0x11 - AF_SIP = 0x18 - AF_SNA = 0xb - AF_SYSTEM = 0x20 - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_UTUN = 0x26 - ALTWERASE = 0x200 - B0 = 0x0 - B110 = 0x6e - B115200 = 0x1c200 - B1200 = 0x4b0 - B134 = 0x86 - B14400 = 0x3840 - B150 = 0x96 - B1800 = 0x708 - B19200 = 0x4b00 - B200 = 0xc8 - B230400 = 0x38400 - B2400 = 0x960 - B28800 = 0x7080 - B300 = 0x12c - B38400 = 0x9600 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B9600 = 0x2580 - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc00c4279 - BIOCGETIF = 0x4020426b - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044272 - BIOCGRTIMEOUT = 0x4010426e - BIOCGSEESENT = 0x40044276 - BIOCGSTATS = 0x4008426f - BIOCIMMEDIATE = 0x80044270 - BIOCPROMISC = 0x20004269 - BIOCSBLEN = 0xc0044266 - BIOCSDLT = 0x80044278 - BIOCSETF = 0x80104267 - BIOCSETFNR = 0x8010427e - BIOCSETIF = 0x8020426c - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044273 - BIOCSRTIMEOUT = 0x8010426d - BIOCSSEESENT = 0x80044277 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIV = 0x30 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXBUFSIZE = 0x80000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_OR = 0x40 - BPF_RELEASE = 0x30bb6 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x8000 - BSDLY = 0x8000 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLOCK_MONOTONIC = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_MONOTONIC_RAW_APPROX = 0x5 - CLOCK_PROCESS_CPUTIME_ID = 0xc - CLOCK_REALTIME = 0x0 - CLOCK_THREAD_CPUTIME_ID = 0x10 - CLOCK_UPTIME_RAW = 0x8 - CLOCK_UPTIME_RAW_APPROX = 0x9 - CR0 = 0x0 - CR1 = 0x1000 - CR2 = 0x2000 - CR3 = 0x3000 - CRDLY = 0x3000 - CREAD = 0x800 - CRTSCTS = 0x30000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_MAXNAME = 0xc - CTL_NET = 0x4 - DLT_A429 = 0xb8 - DLT_A653_ICM = 0xb9 - DLT_AIRONET_HEADER = 0x78 - DLT_AOS = 0xde - DLT_APPLE_IP_OVER_IEEE1394 = 0x8a - DLT_ARCNET = 0x7 - DLT_ARCNET_LINUX = 0x81 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_AX25_KISS = 0xca - DLT_BACNET_MS_TP = 0xa5 - DLT_BLUETOOTH_HCI_H4 = 0xbb - DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 - DLT_CAN20B = 0xbe - DLT_CAN_SOCKETCAN = 0xe3 - DLT_CHAOS = 0x5 - DLT_CHDLC = 0x68 - DLT_CISCO_IOS = 0x76 - DLT_C_HDLC = 0x68 - DLT_C_HDLC_WITH_DIR = 0xcd - DLT_DBUS = 0xe7 - DLT_DECT = 0xdd - DLT_DOCSIS = 0x8f - DLT_DVB_CI = 0xeb - DLT_ECONET = 0x73 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_ERF = 0xc5 - DLT_ERF_ETH = 0xaf - DLT_ERF_POS = 0xb0 - DLT_FC_2 = 0xe0 - DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 - DLT_FDDI = 0xa - DLT_FLEXRAY = 0xd2 - DLT_FRELAY = 0x6b - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_GSMTAP_ABIS = 0xda - DLT_GSMTAP_UM = 0xd9 - DLT_HHDLC = 0x79 - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_IEEE802_15_4 = 0xc3 - DLT_IEEE802_15_4_LINUX = 0xbf - DLT_IEEE802_15_4_NOFCS = 0xe6 - DLT_IEEE802_15_4_NONASK_PHY = 0xd7 - DLT_IEEE802_16_MAC_CPS = 0xbc - DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 - DLT_IPFILTER = 0x74 - DLT_IPMB = 0xc7 - DLT_IPMB_LINUX = 0xd1 - DLT_IPNET = 0xe2 - DLT_IPOIB = 0xf2 - DLT_IPV4 = 0xe4 - DLT_IPV6 = 0xe5 - DLT_IP_OVER_FC = 0x7a - DLT_JUNIPER_ATM1 = 0x89 - DLT_JUNIPER_ATM2 = 0x87 - DLT_JUNIPER_ATM_CEMIC = 0xee - DLT_JUNIPER_CHDLC = 0xb5 - DLT_JUNIPER_ES = 0x84 - DLT_JUNIPER_ETHER = 0xb2 - DLT_JUNIPER_FIBRECHANNEL = 0xea - DLT_JUNIPER_FRELAY = 0xb4 - DLT_JUNIPER_GGSN = 0x85 - DLT_JUNIPER_ISM = 0xc2 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - DLT_JUNIPER_PPPOE = 0xa7 - DLT_JUNIPER_PPPOE_ATM = 0xa8 - DLT_JUNIPER_SERVICES = 0x88 - DLT_JUNIPER_SRX_E2E = 0xe9 - DLT_JUNIPER_ST = 0xc8 - DLT_JUNIPER_VP = 0xb7 - DLT_JUNIPER_VS = 0xe8 - DLT_LAPB_WITH_DIR = 0xcf - DLT_LAPD = 0xcb - DLT_LIN = 0xd4 - DLT_LINUX_EVDEV = 0xd8 - DLT_LINUX_IRDA = 0x90 - DLT_LINUX_LAPD = 0xb1 - DLT_LINUX_PPP_WITHDIRECTION = 0xa6 - DLT_LINUX_SLL = 0x71 - DLT_LOOP = 0x6c - DLT_LTALK = 0x72 - DLT_MATCHING_MAX = 0xf5 - DLT_MATCHING_MIN = 0x68 - DLT_MFR = 0xb6 - DLT_MOST = 0xd3 - DLT_MPEG_2_TS = 0xf3 - DLT_MPLS = 0xdb - DLT_MTP2 = 0x8c - DLT_MTP2_WITH_PHDR = 0x8b - DLT_MTP3 = 0x8d - DLT_MUX27010 = 0xec - DLT_NETANALYZER = 0xf0 - DLT_NETANALYZER_TRANSPARENT = 0xf1 - DLT_NFC_LLCP = 0xf5 - DLT_NFLOG = 0xef - DLT_NG40 = 0xf4 - DLT_NULL = 0x0 - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PPI = 0xc0 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0x10 - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PPP_WITH_DIRECTION = 0xa6 - DLT_PRISM_HEADER = 0x77 - DLT_PRONET = 0x4 - DLT_RAIF1 = 0xc6 - DLT_RAW = 0xc - DLT_RIO = 0x7c - DLT_SCCP = 0x8e - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xf - DLT_STANAG_5066_D_PDU = 0xed - DLT_SUNATM = 0x7b - DLT_SYMANTEC_FIREWALL = 0x63 - DLT_TZSP = 0x80 - DLT_USB = 0xba - DLT_USB_LINUX = 0xbd - DLT_USB_LINUX_MMAPPED = 0xdc - DLT_USER0 = 0x93 - DLT_USER1 = 0x94 - DLT_USER10 = 0x9d - DLT_USER11 = 0x9e - DLT_USER12 = 0x9f - DLT_USER13 = 0xa0 - DLT_USER14 = 0xa1 - DLT_USER15 = 0xa2 - DLT_USER2 = 0x95 - DLT_USER3 = 0x96 - DLT_USER4 = 0x97 - DLT_USER5 = 0x98 - DLT_USER6 = 0x99 - DLT_USER7 = 0x9a - DLT_USER8 = 0x9b - DLT_USER9 = 0x9c - DLT_WIHART = 0xdf - DLT_X2E_SERIAL = 0xd5 - DLT_X2E_XORAYA = 0xd6 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EVFILT_AIO = -0x3 - EVFILT_EXCEPT = -0xf - EVFILT_FS = -0x9 - EVFILT_MACHPORT = -0x8 - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0xf - EVFILT_THREADMARKER = 0xf - EVFILT_TIMER = -0x7 - EVFILT_USER = -0xa - EVFILT_VM = -0xc - EVFILT_VNODE = -0x4 - EVFILT_WRITE = -0x2 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_DISPATCH = 0x80 - EV_DISPATCH2 = 0x180 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG0 = 0x1000 - EV_FLAG1 = 0x2000 - EV_ONESHOT = 0x10 - EV_OOBAND = 0x2000 - EV_POLL = 0x1000 - EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf000 - EV_UDATA_SPECIFIC = 0x100 - EV_VANISHED = 0x200 - EXTA = 0x4b00 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x4000 - FFDLY = 0x4000 - FLUSHO = 0x800000 - F_ADDFILESIGS = 0x3d - F_ADDFILESIGS_FOR_DYLD_SIM = 0x53 - F_ADDFILESIGS_RETURN = 0x61 - F_ADDSIGS = 0x3b - F_ALLOCATEALL = 0x4 - F_ALLOCATECONTIG = 0x2 - F_BARRIERFSYNC = 0x55 - F_CHECK_LV = 0x62 - F_CHKCLEAN = 0x29 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x43 - F_FINDSIGS = 0x4e - F_FLUSH_DATA = 0x28 - F_FREEZE_FS = 0x35 - F_FULLFSYNC = 0x33 - F_GETCODEDIR = 0x48 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0x7 - F_GETLKPID = 0x42 - F_GETNOSIGPIPE = 0x4a - F_GETOWN = 0x5 - F_GETPATH = 0x32 - F_GETPATH_MTMINFO = 0x47 - F_GETPROTECTIONCLASS = 0x3f - F_GETPROTECTIONLEVEL = 0x4d - F_GLOBAL_NOCACHE = 0x37 - F_LOG2PHYS = 0x31 - F_LOG2PHYS_EXT = 0x41 - F_NOCACHE = 0x30 - F_NODIRECT = 0x3e - F_OK = 0x0 - F_PATHPKG_CHECK = 0x34 - F_PEOFPOSMODE = 0x3 - F_PREALLOCATE = 0x2a - F_RDADVISE = 0x2c - F_RDAHEAD = 0x2d - F_RDLCK = 0x1 - F_SETBACKINGSTORE = 0x46 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x8 - F_SETLKW = 0x9 - F_SETLKWTIMEOUT = 0xa - F_SETNOSIGPIPE = 0x49 - F_SETOWN = 0x6 - F_SETPROTECTIONCLASS = 0x40 - F_SETSIZE = 0x2b - F_SINGLE_WRITER = 0x4c - F_THAW_FS = 0x36 - F_TRANSCODEKEY = 0x4b - F_UNLCK = 0x2 - F_VOLPOSMODE = 0x4 - F_WRLCK = 0x3 - HUPCL = 0x4000 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFF_ALLMULTI = 0x200 - IFF_ALTPHYS = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NOTRAILERS = 0x20 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_1822 = 0x2 - IFT_AAL5 = 0x31 - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ATM = 0x25 - IFT_BRIDGE = 0xd1 - IFT_CARP = 0xf8 - IFT_CELLULAR = 0xff - IFT_CEPT = 0x13 - IFT_DS3 = 0x1e - IFT_ENC = 0xf4 - IFT_EON = 0x19 - IFT_ETHER = 0x6 - IFT_FAITH = 0x38 - IFT_FDDI = 0xf - IFT_FRELAY = 0x20 - IFT_FRELAYDCE = 0x2c - IFT_GIF = 0x37 - IFT_HDH1822 = 0x3 - IFT_HIPPI = 0x2f - IFT_HSSI = 0x2e - IFT_HY = 0xe - IFT_IEEE1394 = 0x90 - IFT_IEEE8023ADLAG = 0x88 - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_ISO88022LLC = 0x29 - IFT_ISO88023 = 0x7 - IFT_ISO88024 = 0x8 - IFT_ISO88025 = 0x9 - IFT_ISO88026 = 0xa - IFT_L2VLAN = 0x87 - IFT_LAPB = 0x10 - IFT_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - IFT_MIOX25 = 0x26 - IFT_MODEM = 0x30 - IFT_NSIP = 0x1b - IFT_OTHER = 0x1 - IFT_P10 = 0xc - IFT_P80 = 0xd - IFT_PARA = 0x22 - IFT_PDP = 0xff - IFT_PFLOG = 0xf5 - IFT_PFSYNC = 0xf6 - IFT_PKTAP = 0xfe - IFT_PPP = 0x17 - IFT_PROPMUX = 0x36 - IFT_PROPVIRTUAL = 0x35 - IFT_PTPSERIAL = 0x16 - IFT_RS232 = 0x21 - IFT_SDLC = 0x11 - IFT_SIP = 0x1f - IFT_SLIP = 0x1c - IFT_SMDSDXI = 0x2b - IFT_SMDSICIP = 0x34 - IFT_SONET = 0x27 - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_STARLAN = 0xb - IFT_STF = 0x39 - IFT_T1 = 0x12 - IFT_ULTRA = 0x1d - IFT_V35 = 0x2d - IFT_X25 = 0x5 - IFT_X25DDN = 0x4 - IFT_X25PLE = 0x28 - IFT_XETHER = 0x1a - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLASSD_HOST = 0xfffffff - IN_CLASSD_NET = 0xf0000000 - IN_CLASSD_NSHIFT = 0x1c - IN_LINKLOCALNETNUM = 0xa9fe0000 - IN_LOOPBACKNET = 0x7f - IPPROTO_3PC = 0x22 - IPPROTO_ADFS = 0x44 - IPPROTO_AH = 0x33 - IPPROTO_AHIP = 0x3d - IPPROTO_APES = 0x63 - IPPROTO_ARGUS = 0xd - IPPROTO_AX25 = 0x5d - IPPROTO_BHA = 0x31 - IPPROTO_BLT = 0x1e - IPPROTO_BRSATMON = 0x4c - IPPROTO_CFTP = 0x3e - IPPROTO_CHAOS = 0x10 - IPPROTO_CMTP = 0x26 - IPPROTO_CPHB = 0x49 - IPPROTO_CPNX = 0x48 - IPPROTO_DDP = 0x25 - IPPROTO_DGP = 0x56 - IPPROTO_DIVERT = 0xfe - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_EMCON = 0xe - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GMTP = 0x64 - IPPROTO_GRE = 0x2f - IPPROTO_HELLO = 0x3f - IPPROTO_HMP = 0x14 - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IDPR = 0x23 - IPPROTO_IDRP = 0x2d - IPPROTO_IGMP = 0x2 - IPPROTO_IGP = 0x55 - IPPROTO_IGRP = 0x58 - IPPROTO_IL = 0x28 - IPPROTO_INLSP = 0x34 - IPPROTO_INP = 0x20 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPCV = 0x47 - IPPROTO_IPEIP = 0x5e - IPPROTO_IPIP = 0x4 - IPPROTO_IPPC = 0x43 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_IRTP = 0x1c - IPPROTO_KRYPTOLAN = 0x41 - IPPROTO_LARP = 0x5b - IPPROTO_LEAF1 = 0x19 - IPPROTO_LEAF2 = 0x1a - IPPROTO_MAX = 0x100 - IPPROTO_MAXID = 0x34 - IPPROTO_MEAS = 0x13 - IPPROTO_MHRP = 0x30 - IPPROTO_MICP = 0x5f - IPPROTO_MTP = 0x5c - IPPROTO_MUX = 0x12 - IPPROTO_ND = 0x4d - IPPROTO_NHRP = 0x36 - IPPROTO_NONE = 0x3b - IPPROTO_NSP = 0x1f - IPPROTO_NVPII = 0xb - IPPROTO_OSPFIGP = 0x59 - IPPROTO_PGM = 0x71 - IPPROTO_PIGP = 0x9 - IPPROTO_PIM = 0x67 - IPPROTO_PRM = 0x15 - IPPROTO_PUP = 0xc - IPPROTO_PVP = 0x4b - IPPROTO_RAW = 0xff - IPPROTO_RCCMON = 0xa - IPPROTO_RDP = 0x1b - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_RVD = 0x42 - IPPROTO_SATEXPAK = 0x40 - IPPROTO_SATMON = 0x45 - IPPROTO_SCCSP = 0x60 - IPPROTO_SCTP = 0x84 - IPPROTO_SDRP = 0x2a - IPPROTO_SEP = 0x21 - IPPROTO_SRPC = 0x5a - IPPROTO_ST = 0x7 - IPPROTO_SVMTP = 0x52 - IPPROTO_SWIPE = 0x35 - IPPROTO_TCF = 0x57 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_TPXX = 0x27 - IPPROTO_TRUNK1 = 0x17 - IPPROTO_TRUNK2 = 0x18 - IPPROTO_TTP = 0x54 - IPPROTO_UDP = 0x11 - IPPROTO_VINES = 0x53 - IPPROTO_VISA = 0x46 - IPPROTO_VMTP = 0x51 - IPPROTO_WBEXPAK = 0x4f - IPPROTO_WBMON = 0x4e - IPPROTO_WSN = 0x4a - IPPROTO_XNET = 0xf - IPPROTO_XTP = 0x24 - IPV6_2292DSTOPTS = 0x17 - IPV6_2292HOPLIMIT = 0x14 - IPV6_2292HOPOPTS = 0x16 - IPV6_2292NEXTHOP = 0x15 - IPV6_2292PKTINFO = 0x13 - IPV6_2292PKTOPTIONS = 0x19 - IPV6_2292RTHDR = 0x18 - IPV6_BINDV6ONLY = 0x1b - IPV6_BOUND_IF = 0x7d - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_FAITH = 0x1d - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FRAGTTL = 0x3c - IPV6_FW_ADD = 0x1e - IPV6_FW_DEL = 0x1f - IPV6_FW_FLUSH = 0x20 - IPV6_FW_GET = 0x22 - IPV6_FW_ZERO = 0x21 - IPV6_HLIMDEC = 0x1 - IPV6_IPSEC_POLICY = 0x1c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXOPTHDR = 0x800 - IPV6_MAXPACKET = 0xffff - IPV6_MAX_GROUP_SRC_FILTER = 0x200 - IPV6_MAX_MEMBERSHIPS = 0xfff - IPV6_MAX_SOCK_SRC_FILTER = 0x80 - IPV6_MIN_MEMBERSHIPS = 0x1f - IPV6_MMTU = 0x500 - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_RECVTCLASS = 0x23 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_SOCKOPT_RESERVED1 = 0x3 - IPV6_TCLASS = 0x24 - IPV6_UNICAST_HOPS = 0x4 - IPV6_V6ONLY = 0x1b - IPV6_VERSION = 0x60 - IPV6_VERSION_MASK = 0xf0 - IP_ADD_MEMBERSHIP = 0xc - IP_ADD_SOURCE_MEMBERSHIP = 0x46 - IP_BLOCK_SOURCE = 0x48 - IP_BOUND_IF = 0x19 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0xd - IP_DROP_SOURCE_MEMBERSHIP = 0x47 - IP_DUMMYNET_CONFIGURE = 0x3c - IP_DUMMYNET_DEL = 0x3d - IP_DUMMYNET_FLUSH = 0x3e - IP_DUMMYNET_GET = 0x40 - IP_FAITH = 0x16 - IP_FW_ADD = 0x28 - IP_FW_DEL = 0x29 - IP_FW_FLUSH = 0x2a - IP_FW_GET = 0x2c - IP_FW_RESETLOG = 0x2d - IP_FW_ZERO = 0x2b - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x15 - IP_MAXPACKET = 0xffff - IP_MAX_GROUP_SRC_FILTER = 0x200 - IP_MAX_MEMBERSHIPS = 0xfff - IP_MAX_SOCK_MUTE_FILTER = 0x80 - IP_MAX_SOCK_SRC_FILTER = 0x80 - IP_MF = 0x2000 - IP_MIN_MEMBERSHIPS = 0x1f - IP_MSFILTER = 0x4a - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_IFINDEX = 0x42 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_MULTICAST_VIF = 0xe - IP_NAT__XXX = 0x37 - IP_OFFMASK = 0x1fff - IP_OLD_FW_ADD = 0x32 - IP_OLD_FW_DEL = 0x33 - IP_OLD_FW_FLUSH = 0x34 - IP_OLD_FW_GET = 0x36 - IP_OLD_FW_RESETLOG = 0x38 - IP_OLD_FW_ZERO = 0x35 - IP_OPTIONS = 0x1 - IP_PKTINFO = 0x1a - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVPKTINFO = 0x1a - IP_RECVRETOPTS = 0x6 - IP_RECVTTL = 0x18 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_RSVP_OFF = 0x10 - IP_RSVP_ON = 0xf - IP_RSVP_VIF_OFF = 0x12 - IP_RSVP_VIF_ON = 0x11 - IP_STRIPHDR = 0x17 - IP_TOS = 0x3 - IP_TRAFFIC_MGT_BACKGROUND = 0x41 - IP_TTL = 0x4 - IP_UNBLOCK_SOURCE = 0x49 - ISIG = 0x80 - ISTRIP = 0x20 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_CAN_REUSE = 0x9 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x5 - MADV_FREE_REUSABLE = 0x7 - MADV_FREE_REUSE = 0x8 - MADV_NORMAL = 0x0 - MADV_PAGEOUT = 0xa - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_WILLNEED = 0x3 - MADV_ZERO_WIRED_PAGES = 0x6 - MAP_ANON = 0x1000 - MAP_ANONYMOUS = 0x1000 - MAP_COPY = 0x2 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_HASSEMAPHORE = 0x200 - MAP_JIT = 0x800 - MAP_NOCACHE = 0x400 - MAP_NOEXTEND = 0x100 - MAP_NORESERVE = 0x40 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 - MAP_RESERVED0080 = 0x80 - MAP_RESILIENT_CODESIGN = 0x2000 - MAP_RESILIENT_MEDIA = 0x4000 - MAP_SHARED = 0x1 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MNT_ASYNC = 0x40 - MNT_AUTOMOUNTED = 0x400000 - MNT_CMDFLAGS = 0xf0000 - MNT_CPROTECT = 0x80 - MNT_DEFWRITE = 0x2000000 - MNT_DONTBROWSE = 0x100000 - MNT_DOVOLFS = 0x8000 - MNT_DWAIT = 0x4 - MNT_EXPORTED = 0x100 - MNT_FORCE = 0x80000 - MNT_IGNORE_OWNERSHIP = 0x200000 - MNT_JOURNALED = 0x800000 - MNT_LOCAL = 0x1000 - MNT_MULTILABEL = 0x4000000 - MNT_NOATIME = 0x10000000 - MNT_NOBLOCK = 0x20000 - MNT_NODEV = 0x10 - MNT_NOEXEC = 0x4 - MNT_NOSUID = 0x8 - MNT_NOUSERXATTR = 0x1000000 - MNT_NOWAIT = 0x2 - MNT_QUARANTINE = 0x400 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELOAD = 0x40000 - MNT_ROOTFS = 0x4000 - MNT_SYNCHRONOUS = 0x2 - MNT_UNION = 0x20 - MNT_UNKNOWNPERMISSIONS = 0x200000 - MNT_UPDATE = 0x10000 - MNT_VISFLAGMASK = 0x17f0f5ff - MNT_WAIT = 0x1 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOF = 0x100 - MSG_EOR = 0x8 - MSG_FLUSH = 0x400 - MSG_HAVEMORE = 0x2000 - MSG_HOLD = 0x800 - MSG_NEEDSA = 0x10000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_RCVMORE = 0x4000 - MSG_SEND = 0x1000 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MSG_WAITSTREAM = 0x200 - MS_ASYNC = 0x1 - MS_DEACTIVATE = 0x8 - MS_INVALIDATE = 0x2 - MS_KILLPAGES = 0x4 - MS_SYNC = 0x10 - NAME_MAX = 0xff - NET_RT_DUMP = 0x1 - NET_RT_DUMP2 = 0x7 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x3 - NET_RT_IFLIST2 = 0x6 - NET_RT_MAXID = 0xa - NET_RT_STAT = 0x4 - NET_RT_TRASH = 0x5 - NL0 = 0x0 - NL1 = 0x100 - NL2 = 0x200 - NL3 = 0x300 - NLDLY = 0x300 - NOFLSH = 0x80000000 - NOKERNINFO = 0x2000000 - NOTE_ABSOLUTE = 0x8 - NOTE_ATTRIB = 0x8 - NOTE_BACKGROUND = 0x40 - NOTE_CHILD = 0x4 - NOTE_CRITICAL = 0x20 - NOTE_DELETE = 0x1 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXITSTATUS = 0x4000000 - NOTE_EXIT_CSERROR = 0x40000 - NOTE_EXIT_DECRYPTFAIL = 0x10000 - NOTE_EXIT_DETAIL = 0x2000000 - NOTE_EXIT_DETAIL_MASK = 0x70000 - NOTE_EXIT_MEMORY = 0x20000 - NOTE_EXIT_REPARENTED = 0x80000 - NOTE_EXTEND = 0x4 - NOTE_FFAND = 0x40000000 - NOTE_FFCOPY = 0xc0000000 - NOTE_FFCTRLMASK = 0xc0000000 - NOTE_FFLAGSMASK = 0xffffff - NOTE_FFNOP = 0x0 - NOTE_FFOR = 0x80000000 - NOTE_FORK = 0x40000000 - NOTE_FUNLOCK = 0x100 - NOTE_LEEWAY = 0x10 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_MACH_CONTINUOUS_TIME = 0x80 - NOTE_NONE = 0x80 - NOTE_NSECONDS = 0x4 - NOTE_OOB = 0x2 - NOTE_PCTRLMASK = -0x100000 - NOTE_PDATAMASK = 0xfffff - NOTE_REAP = 0x10000000 - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_SECONDS = 0x1 - NOTE_SIGNAL = 0x8000000 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_TRIGGER = 0x1000000 - NOTE_USECONDS = 0x2 - NOTE_VM_ERROR = 0x10000000 - NOTE_VM_PRESSURE = 0x80000000 - NOTE_VM_PRESSURE_SUDDEN_TERMINATE = 0x20000000 - NOTE_VM_PRESSURE_TERMINATE = 0x40000000 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - OFDEL = 0x20000 - OFILL = 0x80 - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - OXTABS = 0x4 - O_ACCMODE = 0x3 - O_ALERT = 0x20000000 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x1000000 - O_CREAT = 0x200 - O_DIRECTORY = 0x100000 - O_DP_GETRAWENCRYPTED = 0x1 - O_DP_GETRAWUNENCRYPTED = 0x2 - O_DSYNC = 0x400000 - O_EVTONLY = 0x8000 - O_EXCL = 0x800 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x20000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_POPUP = 0x80000000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_SHLOCK = 0x10 - O_SYMLINK = 0x200000 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PT_ATTACH = 0xa - PT_ATTACHEXC = 0xe - PT_CONTINUE = 0x7 - PT_DENY_ATTACH = 0x1f - PT_DETACH = 0xb - PT_FIRSTMACH = 0x20 - PT_FORCEQUOTA = 0x1e - PT_KILL = 0x8 - PT_READ_D = 0x2 - PT_READ_I = 0x1 - PT_READ_U = 0x3 - PT_SIGEXC = 0xc - PT_STEP = 0x9 - PT_THUPDATE = 0xd - PT_TRACE_ME = 0x0 - PT_WRITE_D = 0x5 - PT_WRITE_I = 0x4 - PT_WRITE_U = 0x6 - RLIMIT_AS = 0x5 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_CPU_USAGE_MONITOR = 0x2 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_MEMLOCK = 0x6 - RLIMIT_NOFILE = 0x8 - RLIMIT_NPROC = 0x7 - RLIMIT_RSS = 0x5 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0x7fffffffffffffff - RTAX_AUTHOR = 0x6 - RTAX_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x8 - RTAX_NETMASK = 0x2 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_CLONING = 0x100 - RTF_CONDEMNED = 0x2000000 - RTF_DELCLONE = 0x80 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_IFREF = 0x4000000 - RTF_IFSCOPE = 0x1000000 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MODIFIED = 0x20 - RTF_MULTICAST = 0x800000 - RTF_NOIFREF = 0x2000 - RTF_PINNED = 0x100000 - RTF_PRCLONING = 0x10000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x40000 - RTF_PROXY = 0x8000000 - RTF_REJECT = 0x8 - RTF_ROUTER = 0x10000000 - RTF_STATIC = 0x800 - RTF_UP = 0x1 - RTF_WASCLONED = 0x20000 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_DELMADDR = 0x10 - RTM_GET = 0x4 - RTM_GET2 = 0x14 - RTM_IFINFO = 0xe - RTM_IFINFO2 = 0x12 - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_NEWMADDR = 0xf - RTM_NEWMADDR2 = 0x13 - RTM_OLDADD = 0x9 - RTM_OLDDEL = 0xa - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 - RTM_VERSION = 0x5 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - SCM_CREDS = 0x3 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x2 - SCM_TIMESTAMP_MONOTONIC = 0x4 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCARPIPLL = 0xc0206928 - SIOCATMARK = 0x40047307 - SIOCAUTOADDR = 0xc0206926 - SIOCAUTONETMASK = 0x80206927 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFPHYADDR = 0x80206941 - SIOCGDRVSPEC = 0xc028697b - SIOCGETVLAN = 0xc020697f - SIOCGHIWAT = 0x40047301 - SIOCGIFADDR = 0xc0206921 - SIOCGIFALTMTU = 0xc0206948 - SIOCGIFASYNCMAP = 0xc020697c - SIOCGIFBOND = 0xc0206947 - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCAP = 0xc020695b - SIOCGIFCONF = 0xc00c6924 - SIOCGIFDEVMTU = 0xc0206944 - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFGENERIC = 0xc020693a - SIOCGIFKPI = 0xc0206987 - SIOCGIFMAC = 0xc0206982 - SIOCGIFMEDIA = 0xc02c6938 - SIOCGIFMETRIC = 0xc0206917 - SIOCGIFMTU = 0xc0206933 - SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPDSTADDR = 0xc0206940 - SIOCGIFPHYS = 0xc0206935 - SIOCGIFPSRCADDR = 0xc020693f - SIOCGIFSTATUS = 0xc331693d - SIOCGIFVLAN = 0xc020697f - SIOCGIFWAKEFLAGS = 0xc0206988 - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCIFCREATE = 0xc0206978 - SIOCIFCREATE2 = 0xc020697a - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc0106981 - SIOCRSLVMULTI = 0xc010693b - SIOCSDRVSPEC = 0x8028697b - SIOCSETVLAN = 0x8020697e - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8020690c - SIOCSIFALTMTU = 0x80206945 - SIOCSIFASYNCMAP = 0x8020697d - SIOCSIFBOND = 0x80206946 - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFCAP = 0x8020695a - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGENERIC = 0x80206939 - SIOCSIFKPI = 0x80206986 - SIOCSIFLLADDR = 0x8020693c - SIOCSIFMAC = 0x80206983 - SIOCSIFMEDIA = 0xc0206937 - SIOCSIFMETRIC = 0x80206918 - SIOCSIFMTU = 0x80206934 - SIOCSIFNETMASK = 0x80206916 - SIOCSIFPHYADDR = 0x8040693e - SIOCSIFPHYS = 0x80206936 - SIOCSIFVLAN = 0x8020697e - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SOCK_DGRAM = 0x2 - SOCK_MAXADDRLEN = 0xff - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DONTROUTE = 0x10 - SO_DONTTRUNC = 0x2000 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LABEL = 0x1010 - SO_LINGER = 0x80 - SO_LINGER_SEC = 0x1080 - SO_NETSVC_MARKING_LEVEL = 0x1119 - SO_NET_SERVICE_TYPE = 0x1116 - SO_NKE = 0x1021 - SO_NOADDRERR = 0x1023 - SO_NOSIGPIPE = 0x1022 - SO_NOTIFYCONFLICT = 0x1026 - SO_NP_EXTENSIONS = 0x1083 - SO_NREAD = 0x1020 - SO_NUMRCVPKT = 0x1112 - SO_NWRITE = 0x1024 - SO_OOBINLINE = 0x100 - SO_PEERLABEL = 0x1011 - SO_RANDOMPORT = 0x1082 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_REUSESHAREUID = 0x1025 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_TIMESTAMP = 0x400 - SO_TIMESTAMP_MONOTONIC = 0x800 - SO_TYPE = 0x1008 - SO_UPCALLCLOSEWAIT = 0x1027 - SO_USELOOPBACK = 0x40 - SO_WANTMORE = 0x4000 - SO_WANTOOBFLAG = 0x8000 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IFWHT = 0xe000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISTXT = 0x200 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x400 - TAB2 = 0x800 - TAB3 = 0x4 - TABDLY = 0xc04 - TCIFLUSH = 0x1 - TCIOFF = 0x3 - TCIOFLUSH = 0x3 - TCION = 0x4 - TCOFLUSH = 0x2 - TCOOFF = 0x1 - TCOON = 0x2 - TCP_CONNECTIONTIMEOUT = 0x20 - TCP_CONNECTION_INFO = 0x106 - TCP_ENABLE_ECN = 0x104 - TCP_FASTOPEN = 0x105 - TCP_KEEPALIVE = 0x10 - TCP_KEEPCNT = 0x102 - TCP_KEEPINTVL = 0x101 - TCP_MAXHLEN = 0x3c - TCP_MAXOLEN = 0x28 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_SACK = 0x4 - TCP_MAX_WINSHIFT = 0xe - TCP_MINMSS = 0xd8 - TCP_MSS = 0x200 - TCP_NODELAY = 0x1 - TCP_NOOPT = 0x8 - TCP_NOPUSH = 0x4 - TCP_NOTSENT_LOWAT = 0x201 - TCP_RXT_CONNDROPTIME = 0x80 - TCP_RXT_FINDROP = 0x100 - TCP_SENDMOREACKS = 0x103 - TCSAFLUSH = 0x2 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDCDTIMESTAMP = 0x40107458 - TIOCDRAIN = 0x2000745e - TIOCDSIMICROCODE = 0x20007455 - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLUSH = 0x80047410 - TIOCGDRAINWAIT = 0x40047456 - TIOCGETA = 0x40487413 - TIOCGETD = 0x4004741a - TIOCGPGRP = 0x40047477 - TIOCGWINSZ = 0x40087468 - TIOCIXOFF = 0x20007480 - TIOCIXON = 0x20007481 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGDTRWAIT = 0x4004745a - TIOCMGET = 0x4004746a - TIOCMODG = 0x40047403 - TIOCMODS = 0x80047404 - TIOCMSDTRWAIT = 0x8004745b - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x20007471 - TIOCNXCL = 0x2000740e - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x80047470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCPTYGNAME = 0x40807453 - TIOCPTYGRANT = 0x20007454 - TIOCPTYUNLK = 0x20007452 - TIOCREMOTE = 0x80047469 - TIOCSBRK = 0x2000747b - TIOCSCONS = 0x20007463 - TIOCSCTTY = 0x20007461 - TIOCSDRAINWAIT = 0x80047457 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x80487414 - TIOCSETAF = 0x80487416 - TIOCSETAW = 0x80487415 - TIOCSETD = 0x8004741b - TIOCSIG = 0x2000745f - TIOCSPGRP = 0x80047476 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x20007465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCTIMESTAMP = 0x40107459 - TIOCUCNTL = 0x80047466 - TOSTOP = 0x400000 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VM_LOADAVG = 0x2 - VM_MACHFACTOR = 0x4 - VM_MAXID = 0x6 - VM_METER = 0x1 - VM_SWAPUSAGE = 0x5 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VT0 = 0x0 - VT1 = 0x10000 - VTDLY = 0x10000 - VTIME = 0x11 - VWERASE = 0x4 - WCONTINUED = 0x10 - WCOREFLAG = 0x80 - WEXITED = 0x4 - WNOHANG = 0x1 - WNOWAIT = 0x20 - WORDSIZE = 0x40 - WSTOPPED = 0x8 - WUNTRACED = 0x2 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x30) - EADDRNOTAVAIL = syscall.Errno(0x31) - EAFNOSUPPORT = syscall.Errno(0x2f) - EAGAIN = syscall.Errno(0x23) - EALREADY = syscall.Errno(0x25) - EAUTH = syscall.Errno(0x50) - EBADARCH = syscall.Errno(0x56) - EBADEXEC = syscall.Errno(0x55) - EBADF = syscall.Errno(0x9) - EBADMACHO = syscall.Errno(0x58) - EBADMSG = syscall.Errno(0x5e) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x59) - ECHILD = syscall.Errno(0xa) - ECONNABORTED = syscall.Errno(0x35) - ECONNREFUSED = syscall.Errno(0x3d) - ECONNRESET = syscall.Errno(0x36) - EDEADLK = syscall.Errno(0xb) - EDESTADDRREQ = syscall.Errno(0x27) - EDEVERR = syscall.Errno(0x53) - EDOM = syscall.Errno(0x21) - EDQUOT = syscall.Errno(0x45) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EFTYPE = syscall.Errno(0x4f) - EHOSTDOWN = syscall.Errno(0x40) - EHOSTUNREACH = syscall.Errno(0x41) - EIDRM = syscall.Errno(0x5a) - EILSEQ = syscall.Errno(0x5c) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x6a) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5f) - ENAMETOOLONG = syscall.Errno(0x3f) - ENEEDAUTH = syscall.Errno(0x51) - ENETDOWN = syscall.Errno(0x32) - ENETRESET = syscall.Errno(0x34) - ENETUNREACH = syscall.Errno(0x33) - ENFILE = syscall.Errno(0x17) - ENOATTR = syscall.Errno(0x5d) - ENOBUFS = syscall.Errno(0x37) - ENODATA = syscall.Errno(0x60) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x61) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x5b) - ENOPOLICY = syscall.Errno(0x67) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x62) - ENOSTR = syscall.Errno(0x63) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTRECOVERABLE = syscall.Errno(0x68) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x2d) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x66) - EOVERFLOW = syscall.Errno(0x54) - EOWNERDEAD = syscall.Errno(0x69) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x2e) - EPIPE = syscall.Errno(0x20) - EPROCLIM = syscall.Errno(0x43) - EPROCUNAVAIL = syscall.Errno(0x4c) - EPROGMISMATCH = syscall.Errno(0x4b) - EPROGUNAVAIL = syscall.Errno(0x4a) - EPROTO = syscall.Errno(0x64) - EPROTONOSUPPORT = syscall.Errno(0x2b) - EPROTOTYPE = syscall.Errno(0x29) - EPWROFF = syscall.Errno(0x52) - EQFULL = syscall.Errno(0x6a) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x47) - EROFS = syscall.Errno(0x1e) - ERPCMISMATCH = syscall.Errno(0x49) - ESHLIBVERS = syscall.Errno(0x57) - ESHUTDOWN = syscall.Errno(0x3a) - ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x46) - ETIME = syscall.Errno(0x65) - ETIMEDOUT = syscall.Errno(0x3c) - ETOOMANYREFS = syscall.Errno(0x3b) - ETXTBSY = syscall.Errno(0x1a) - EUSERS = syscall.Errno(0x44) - EWOULDBLOCK = syscall.Errno(0x23) - EXDEV = syscall.Errno(0x12) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x14) - SIGCONT = syscall.Signal(0x13) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINFO = syscall.Signal(0x1d) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x17) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) - SIGPROF = syscall.Signal(0x1b) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x12) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x10) - SIGUSR1 = syscall.Signal(0x1e) - SIGUSR2 = syscall.Signal(0x1f) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errors = [...]string{ - 1: "operation not permitted", - 2: "no such file or directory", - 3: "no such process", - 4: "interrupted system call", - 5: "input/output error", - 6: "device not configured", - 7: "argument list too long", - 8: "exec format error", - 9: "bad file descriptor", - 10: "no child processes", - 11: "resource deadlock avoided", - 12: "cannot allocate memory", - 13: "permission denied", - 14: "bad address", - 15: "block device required", - 16: "resource busy", - 17: "file exists", - 18: "cross-device link", - 19: "operation not supported by device", - 20: "not a directory", - 21: "is a directory", - 22: "invalid argument", - 23: "too many open files in system", - 24: "too many open files", - 25: "inappropriate ioctl for device", - 26: "text file busy", - 27: "file too large", - 28: "no space left on device", - 29: "illegal seek", - 30: "read-only file system", - 31: "too many links", - 32: "broken pipe", - 33: "numerical argument out of domain", - 34: "result too large", - 35: "resource temporarily unavailable", - 36: "operation now in progress", - 37: "operation already in progress", - 38: "socket operation on non-socket", - 39: "destination address required", - 40: "message too long", - 41: "protocol wrong type for socket", - 42: "protocol not available", - 43: "protocol not supported", - 44: "socket type not supported", - 45: "operation not supported", - 46: "protocol family not supported", - 47: "address family not supported by protocol family", - 48: "address already in use", - 49: "can't assign requested address", - 50: "network is down", - 51: "network is unreachable", - 52: "network dropped connection on reset", - 53: "software caused connection abort", - 54: "connection reset by peer", - 55: "no buffer space available", - 56: "socket is already connected", - 57: "socket is not connected", - 58: "can't send after socket shutdown", - 59: "too many references: can't splice", - 60: "operation timed out", - 61: "connection refused", - 62: "too many levels of symbolic links", - 63: "file name too long", - 64: "host is down", - 65: "no route to host", - 66: "directory not empty", - 67: "too many processes", - 68: "too many users", - 69: "disc quota exceeded", - 70: "stale NFS file handle", - 71: "too many levels of remote in path", - 72: "RPC struct is bad", - 73: "RPC version wrong", - 74: "RPC prog. not avail", - 75: "program version wrong", - 76: "bad procedure for program", - 77: "no locks available", - 78: "function not implemented", - 79: "inappropriate file type or format", - 80: "authentication error", - 81: "need authenticator", - 82: "device power is off", - 83: "device error", - 84: "value too large to be stored in data type", - 85: "bad executable (or shared library)", - 86: "bad CPU type in executable", - 87: "shared library version mismatch", - 88: "malformed Mach-o file", - 89: "operation canceled", - 90: "identifier removed", - 91: "no message of desired type", - 92: "illegal byte sequence", - 93: "attribute not found", - 94: "bad message", - 95: "EMULTIHOP (Reserved)", - 96: "no message available on STREAM", - 97: "ENOLINK (Reserved)", - 98: "no STREAM resources", - 99: "not a STREAM", - 100: "protocol error", - 101: "STREAM ioctl timeout", - 102: "operation not supported on socket", - 103: "policy not found", - 104: "state not recoverable", - 105: "previous owner died", - 106: "interface output queue is full", -} - -// Signal table -var signals = [...]string{ - 1: "hangup", - 2: "interrupt", - 3: "quit", - 4: "illegal instruction", - 5: "trace/BPT trap", - 6: "abort trap", - 7: "EMT trap", - 8: "floating point exception", - 9: "killed", - 10: "bus error", - 11: "segmentation fault", - 12: "bad system call", - 13: "broken pipe", - 14: "alarm clock", - 15: "terminated", - 16: "urgent I/O condition", - 17: "suspended (signal)", - 18: "suspended", - 19: "continued", - 20: "child exited", - 21: "stopped (tty input)", - 22: "stopped (tty output)", - 23: "I/O possible", - 24: "cputime limit exceeded", - 25: "filesize limit exceeded", - 26: "virtual timer expired", - 27: "profiling timer expired", - 28: "window size changes", - 29: "information request", - 30: "user defined signal 1", - 31: "user defined signal 2", -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go deleted file mode 100644 index 8f40598..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go +++ /dev/null @@ -1,1568 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build amd64,dragonfly - -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs -- -m64 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_ATM = 0x1e - AF_BLUETOOTH = 0x21 - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_CNT = 0x15 - AF_COIP = 0x14 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_E164 = 0x1a - AF_ECMA = 0x8 - AF_HYLINK = 0xf - AF_IEEE80211 = 0x23 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x1c - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x24 - AF_MPLS = 0x22 - AF_NATM = 0x1d - AF_NETBIOS = 0x6 - AF_NETGRAPH = 0x20 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x11 - AF_SIP = 0x18 - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - ALTWERASE = 0x200 - B0 = 0x0 - B110 = 0x6e - B115200 = 0x1c200 - B1200 = 0x4b0 - B134 = 0x86 - B14400 = 0x3840 - B150 = 0x96 - B1800 = 0x708 - B19200 = 0x4b00 - B200 = 0xc8 - B230400 = 0x38400 - B2400 = 0x960 - B28800 = 0x7080 - B300 = 0x12c - B38400 = 0x9600 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B9600 = 0x2580 - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc0104279 - BIOCGETIF = 0x4020426b - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044272 - BIOCGRTIMEOUT = 0x4010426e - BIOCGSEESENT = 0x40044276 - BIOCGSTATS = 0x4008426f - BIOCIMMEDIATE = 0x80044270 - BIOCLOCK = 0x2000427a - BIOCPROMISC = 0x20004269 - BIOCSBLEN = 0xc0044266 - BIOCSDLT = 0x80044278 - BIOCSETF = 0x80104267 - BIOCSETIF = 0x8020426c - BIOCSETWF = 0x8010427b - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044273 - BIOCSRTIMEOUT = 0x8010426d - BIOCSSEESENT = 0x80044277 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x8 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DEFAULTBUFSIZE = 0x1000 - BPF_DIV = 0x30 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXBUFSIZE = 0x80000 - BPF_MAXINSNS = 0x200 - BPF_MAX_CLONES = 0x80 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_OR = 0x40 - BPF_RELEASE = 0x30bb6 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BRKINT = 0x2 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLOCK_MONOTONIC = 0x4 - CLOCK_MONOTONIC_FAST = 0xc - CLOCK_MONOTONIC_PRECISE = 0xb - CLOCK_PROCESS_CPUTIME_ID = 0xf - CLOCK_PROF = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_FAST = 0xa - CLOCK_REALTIME_PRECISE = 0x9 - CLOCK_SECOND = 0xd - CLOCK_THREAD_CPUTIME_ID = 0xe - CLOCK_UPTIME = 0x5 - CLOCK_UPTIME_FAST = 0x8 - CLOCK_UPTIME_PRECISE = 0x7 - CLOCK_VIRTUAL = 0x1 - CREAD = 0x800 - CRTSCTS = 0x30000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_MAXNAME = 0xc - CTL_NET = 0x4 - DLT_A429 = 0xb8 - DLT_A653_ICM = 0xb9 - DLT_AIRONET_HEADER = 0x78 - DLT_APPLE_IP_OVER_IEEE1394 = 0x8a - DLT_ARCNET = 0x7 - DLT_ARCNET_LINUX = 0x81 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_AX25_KISS = 0xca - DLT_BACNET_MS_TP = 0xa5 - DLT_BLUETOOTH_HCI_H4 = 0xbb - DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 - DLT_CAN20B = 0xbe - DLT_CHAOS = 0x5 - DLT_CHDLC = 0x68 - DLT_CISCO_IOS = 0x76 - DLT_C_HDLC = 0x68 - DLT_C_HDLC_WITH_DIR = 0xcd - DLT_DOCSIS = 0x8f - DLT_ECONET = 0x73 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_ERF = 0xc5 - DLT_ERF_ETH = 0xaf - DLT_ERF_POS = 0xb0 - DLT_FDDI = 0xa - DLT_FLEXRAY = 0xd2 - DLT_FRELAY = 0x6b - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_HHDLC = 0x79 - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_IEEE802_15_4 = 0xc3 - DLT_IEEE802_15_4_LINUX = 0xbf - DLT_IEEE802_15_4_NONASK_PHY = 0xd7 - DLT_IEEE802_16_MAC_CPS = 0xbc - DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 - DLT_IPFILTER = 0x74 - DLT_IPMB = 0xc7 - DLT_IPMB_LINUX = 0xd1 - DLT_IP_OVER_FC = 0x7a - DLT_JUNIPER_ATM1 = 0x89 - DLT_JUNIPER_ATM2 = 0x87 - DLT_JUNIPER_CHDLC = 0xb5 - DLT_JUNIPER_ES = 0x84 - DLT_JUNIPER_ETHER = 0xb2 - DLT_JUNIPER_FRELAY = 0xb4 - DLT_JUNIPER_GGSN = 0x85 - DLT_JUNIPER_ISM = 0xc2 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - DLT_JUNIPER_PPPOE = 0xa7 - DLT_JUNIPER_PPPOE_ATM = 0xa8 - DLT_JUNIPER_SERVICES = 0x88 - DLT_JUNIPER_ST = 0xc8 - DLT_JUNIPER_VP = 0xb7 - DLT_LAPB_WITH_DIR = 0xcf - DLT_LAPD = 0xcb - DLT_LIN = 0xd4 - DLT_LINUX_IRDA = 0x90 - DLT_LINUX_LAPD = 0xb1 - DLT_LINUX_SLL = 0x71 - DLT_LOOP = 0x6c - DLT_LTALK = 0x72 - DLT_MFR = 0xb6 - DLT_MOST = 0xd3 - DLT_MTP2 = 0x8c - DLT_MTP2_WITH_PHDR = 0x8b - DLT_MTP3 = 0x8d - DLT_NULL = 0x0 - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PPI = 0xc0 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0x10 - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PRISM_HEADER = 0x77 - DLT_PRONET = 0x4 - DLT_RAIF1 = 0xc6 - DLT_RAW = 0xc - DLT_REDBACK_SMARTEDGE = 0x20 - DLT_RIO = 0x7c - DLT_SCCP = 0x8e - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xf - DLT_SUNATM = 0x7b - DLT_SYMANTEC_FIREWALL = 0x63 - DLT_TZSP = 0x80 - DLT_USB = 0xba - DLT_USB_LINUX = 0xbd - DLT_X2E_SERIAL = 0xd5 - DLT_X2E_XORAYA = 0xd6 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DBF = 0xf - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EVFILT_AIO = -0x3 - EVFILT_EXCEPT = -0x8 - EVFILT_FS = -0xa - EVFILT_MARKER = 0xf - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0xa - EVFILT_TIMER = -0x7 - EVFILT_USER = -0x9 - EVFILT_VNODE = -0x4 - EVFILT_WRITE = -0x2 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_DISPATCH = 0x80 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_NODATA = 0x1000 - EV_ONESHOT = 0x10 - EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf000 - EXTA = 0x4b00 - EXTB = 0x9600 - EXTEXIT_LWP = 0x10000 - EXTEXIT_PROC = 0x0 - EXTEXIT_SETINT = 0x1 - EXTEXIT_SIMPLE = 0x0 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FLUSHO = 0x800000 - F_DUP2FD = 0xa - F_DUP2FD_CLOEXEC = 0x12 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x11 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0x7 - F_GETOWN = 0x5 - F_OK = 0x0 - F_RDLCK = 0x1 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x8 - F_SETLKW = 0x9 - F_SETOWN = 0x6 - F_UNLCK = 0x2 - F_WRLCK = 0x3 - HUPCL = 0x4000 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFAN_ARRIVAL = 0x0 - IFAN_DEPARTURE = 0x1 - IFF_ALLMULTI = 0x200 - IFF_ALTPHYS = 0x4000 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x118e72 - IFF_DEBUG = 0x4 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MONITOR = 0x40000 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NPOLLING = 0x100000 - IFF_OACTIVE = 0x400 - IFF_OACTIVE_COMPAT = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_POLLING = 0x10000 - IFF_POLLING_COMPAT = 0x10000 - IFF_PPROMISC = 0x20000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_SMART = 0x20 - IFF_STATICARP = 0x80000 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_1822 = 0x2 - IFT_A12MPPSWITCH = 0x82 - IFT_AAL2 = 0xbb - IFT_AAL5 = 0x31 - IFT_ADSL = 0x5e - IFT_AFLANE8023 = 0x3b - IFT_AFLANE8025 = 0x3c - IFT_ARAP = 0x58 - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ASYNC = 0x54 - IFT_ATM = 0x25 - IFT_ATMDXI = 0x69 - IFT_ATMFUNI = 0x6a - IFT_ATMIMA = 0x6b - IFT_ATMLOGICAL = 0x50 - IFT_ATMRADIO = 0xbd - IFT_ATMSUBINTERFACE = 0x86 - IFT_ATMVCIENDPT = 0xc2 - IFT_ATMVIRTUAL = 0x95 - IFT_BGPPOLICYACCOUNTING = 0xa2 - IFT_BRIDGE = 0xd1 - IFT_BSC = 0x53 - IFT_CARP = 0xf8 - IFT_CCTEMUL = 0x3d - IFT_CEPT = 0x13 - IFT_CES = 0x85 - IFT_CHANNEL = 0x46 - IFT_CNR = 0x55 - IFT_COFFEE = 0x84 - IFT_COMPOSITELINK = 0x9b - IFT_DCN = 0x8d - IFT_DIGITALPOWERLINE = 0x8a - IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba - IFT_DLSW = 0x4a - IFT_DOCSCABLEDOWNSTREAM = 0x80 - IFT_DOCSCABLEMACLAYER = 0x7f - IFT_DOCSCABLEUPSTREAM = 0x81 - IFT_DS0 = 0x51 - IFT_DS0BUNDLE = 0x52 - IFT_DS1FDL = 0xaa - IFT_DS3 = 0x1e - IFT_DTM = 0x8c - IFT_DVBASILN = 0xac - IFT_DVBASIOUT = 0xad - IFT_DVBRCCDOWNSTREAM = 0x93 - IFT_DVBRCCMACLAYER = 0x92 - IFT_DVBRCCUPSTREAM = 0x94 - IFT_ENC = 0xf4 - IFT_EON = 0x19 - IFT_EPLRS = 0x57 - IFT_ESCON = 0x49 - IFT_ETHER = 0x6 - IFT_FAITH = 0xf2 - IFT_FAST = 0x7d - IFT_FASTETHER = 0x3e - IFT_FASTETHERFX = 0x45 - IFT_FDDI = 0xf - IFT_FIBRECHANNEL = 0x38 - IFT_FRAMERELAYINTERCONNECT = 0x3a - IFT_FRAMERELAYMPI = 0x5c - IFT_FRDLCIENDPT = 0xc1 - IFT_FRELAY = 0x20 - IFT_FRELAYDCE = 0x2c - IFT_FRF16MFRBUNDLE = 0xa3 - IFT_FRFORWARD = 0x9e - IFT_G703AT2MB = 0x43 - IFT_G703AT64K = 0x42 - IFT_GIF = 0xf0 - IFT_GIGABITETHERNET = 0x75 - IFT_GR303IDT = 0xb2 - IFT_GR303RDT = 0xb1 - IFT_H323GATEKEEPER = 0xa4 - IFT_H323PROXY = 0xa5 - IFT_HDH1822 = 0x3 - IFT_HDLC = 0x76 - IFT_HDSL2 = 0xa8 - IFT_HIPERLAN2 = 0xb7 - IFT_HIPPI = 0x2f - IFT_HIPPIINTERFACE = 0x39 - IFT_HOSTPAD = 0x5a - IFT_HSSI = 0x2e - IFT_HY = 0xe - IFT_IBM370PARCHAN = 0x48 - IFT_IDSL = 0x9a - IFT_IEEE1394 = 0x90 - IFT_IEEE80211 = 0x47 - IFT_IEEE80212 = 0x37 - IFT_IEEE8023ADLAG = 0xa1 - IFT_IFGSN = 0x91 - IFT_IMT = 0xbe - IFT_INTERLEAVE = 0x7c - IFT_IP = 0x7e - IFT_IPFORWARD = 0x8e - IFT_IPOVERATM = 0x72 - IFT_IPOVERCDLC = 0x6d - IFT_IPOVERCLAW = 0x6e - IFT_IPSWITCH = 0x4e - IFT_ISDN = 0x3f - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_ISDNS = 0x4b - IFT_ISDNU = 0x4c - IFT_ISO88022LLC = 0x29 - IFT_ISO88023 = 0x7 - IFT_ISO88024 = 0x8 - IFT_ISO88025 = 0x9 - IFT_ISO88025CRFPINT = 0x62 - IFT_ISO88025DTR = 0x56 - IFT_ISO88025FIBER = 0x73 - IFT_ISO88026 = 0xa - IFT_ISUP = 0xb3 - IFT_L2VLAN = 0x87 - IFT_L3IPVLAN = 0x88 - IFT_L3IPXVLAN = 0x89 - IFT_LAPB = 0x10 - IFT_LAPD = 0x4d - IFT_LAPF = 0x77 - IFT_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - IFT_MEDIAMAILOVERIP = 0x8b - IFT_MFSIGLINK = 0xa7 - IFT_MIOX25 = 0x26 - IFT_MODEM = 0x30 - IFT_MPC = 0x71 - IFT_MPLS = 0xa6 - IFT_MPLSTUNNEL = 0x96 - IFT_MSDSL = 0x8f - IFT_MVL = 0xbf - IFT_MYRINET = 0x63 - IFT_NFAS = 0xaf - IFT_NSIP = 0x1b - IFT_OPTICALCHANNEL = 0xc3 - IFT_OPTICALTRANSPORT = 0xc4 - IFT_OTHER = 0x1 - IFT_P10 = 0xc - IFT_P80 = 0xd - IFT_PARA = 0x22 - IFT_PFLOG = 0xf5 - IFT_PFSYNC = 0xf6 - IFT_PLC = 0xae - IFT_POS = 0xab - IFT_PPP = 0x17 - IFT_PPPMULTILINKBUNDLE = 0x6c - IFT_PROPBWAP2MP = 0xb8 - IFT_PROPCNLS = 0x59 - IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 - IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 - IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 - IFT_PROPMUX = 0x36 - IFT_PROPVIRTUAL = 0x35 - IFT_PROPWIRELESSP2P = 0x9d - IFT_PTPSERIAL = 0x16 - IFT_PVC = 0xf1 - IFT_QLLC = 0x44 - IFT_RADIOMAC = 0xbc - IFT_RADSL = 0x5f - IFT_REACHDSL = 0xc0 - IFT_RFC1483 = 0x9f - IFT_RS232 = 0x21 - IFT_RSRB = 0x4f - IFT_SDLC = 0x11 - IFT_SDSL = 0x60 - IFT_SHDSL = 0xa9 - IFT_SIP = 0x1f - IFT_SLIP = 0x1c - IFT_SMDSDXI = 0x2b - IFT_SMDSICIP = 0x34 - IFT_SONET = 0x27 - IFT_SONETOVERHEADCHANNEL = 0xb9 - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_SRP = 0x97 - IFT_SS7SIGLINK = 0x9c - IFT_STACKTOSTACK = 0x6f - IFT_STARLAN = 0xb - IFT_STF = 0xf3 - IFT_T1 = 0x12 - IFT_TDLC = 0x74 - IFT_TERMPAD = 0x5b - IFT_TR008 = 0xb0 - IFT_TRANSPHDLC = 0x7b - IFT_TUNNEL = 0x83 - IFT_ULTRA = 0x1d - IFT_USB = 0xa0 - IFT_V11 = 0x40 - IFT_V35 = 0x2d - IFT_V36 = 0x41 - IFT_V37 = 0x78 - IFT_VDSL = 0x61 - IFT_VIRTUALIPADDRESS = 0x70 - IFT_VOICEEM = 0x64 - IFT_VOICEENCAP = 0x67 - IFT_VOICEFXO = 0x65 - IFT_VOICEFXS = 0x66 - IFT_VOICEOVERATM = 0x98 - IFT_VOICEOVERFRAMERELAY = 0x99 - IFT_VOICEOVERIP = 0x68 - IFT_X213 = 0x5d - IFT_X25 = 0x5 - IFT_X25DDN = 0x4 - IFT_X25HUNTGROUP = 0x7a - IFT_X25MLP = 0x79 - IFT_X25PLE = 0x28 - IFT_XETHER = 0x1a - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLASSD_HOST = 0xfffffff - IN_CLASSD_NET = 0xf0000000 - IN_CLASSD_NSHIFT = 0x1c - IN_LOOPBACKNET = 0x7f - IPPROTO_3PC = 0x22 - IPPROTO_ADFS = 0x44 - IPPROTO_AH = 0x33 - IPPROTO_AHIP = 0x3d - IPPROTO_APES = 0x63 - IPPROTO_ARGUS = 0xd - IPPROTO_AX25 = 0x5d - IPPROTO_BHA = 0x31 - IPPROTO_BLT = 0x1e - IPPROTO_BRSATMON = 0x4c - IPPROTO_CARP = 0x70 - IPPROTO_CFTP = 0x3e - IPPROTO_CHAOS = 0x10 - IPPROTO_CMTP = 0x26 - IPPROTO_CPHB = 0x49 - IPPROTO_CPNX = 0x48 - IPPROTO_DDP = 0x25 - IPPROTO_DGP = 0x56 - IPPROTO_DIVERT = 0xfe - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_EMCON = 0xe - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GMTP = 0x64 - IPPROTO_GRE = 0x2f - IPPROTO_HELLO = 0x3f - IPPROTO_HMP = 0x14 - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IDPR = 0x23 - IPPROTO_IDRP = 0x2d - IPPROTO_IGMP = 0x2 - IPPROTO_IGP = 0x55 - IPPROTO_IGRP = 0x58 - IPPROTO_IL = 0x28 - IPPROTO_INLSP = 0x34 - IPPROTO_INP = 0x20 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPCV = 0x47 - IPPROTO_IPEIP = 0x5e - IPPROTO_IPIP = 0x4 - IPPROTO_IPPC = 0x43 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_IRTP = 0x1c - IPPROTO_KRYPTOLAN = 0x41 - IPPROTO_LARP = 0x5b - IPPROTO_LEAF1 = 0x19 - IPPROTO_LEAF2 = 0x1a - IPPROTO_MAX = 0x100 - IPPROTO_MAXID = 0x34 - IPPROTO_MEAS = 0x13 - IPPROTO_MHRP = 0x30 - IPPROTO_MICP = 0x5f - IPPROTO_MOBILE = 0x37 - IPPROTO_MTP = 0x5c - IPPROTO_MUX = 0x12 - IPPROTO_ND = 0x4d - IPPROTO_NHRP = 0x36 - IPPROTO_NONE = 0x3b - IPPROTO_NSP = 0x1f - IPPROTO_NVPII = 0xb - IPPROTO_OSPFIGP = 0x59 - IPPROTO_PFSYNC = 0xf0 - IPPROTO_PGM = 0x71 - IPPROTO_PIGP = 0x9 - IPPROTO_PIM = 0x67 - IPPROTO_PRM = 0x15 - IPPROTO_PUP = 0xc - IPPROTO_PVP = 0x4b - IPPROTO_RAW = 0xff - IPPROTO_RCCMON = 0xa - IPPROTO_RDP = 0x1b - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_RVD = 0x42 - IPPROTO_SATEXPAK = 0x40 - IPPROTO_SATMON = 0x45 - IPPROTO_SCCSP = 0x60 - IPPROTO_SDRP = 0x2a - IPPROTO_SEP = 0x21 - IPPROTO_SKIP = 0x39 - IPPROTO_SRPC = 0x5a - IPPROTO_ST = 0x7 - IPPROTO_SVMTP = 0x52 - IPPROTO_SWIPE = 0x35 - IPPROTO_TCF = 0x57 - IPPROTO_TCP = 0x6 - IPPROTO_TLSP = 0x38 - IPPROTO_TP = 0x1d - IPPROTO_TPXX = 0x27 - IPPROTO_TRUNK1 = 0x17 - IPPROTO_TRUNK2 = 0x18 - IPPROTO_TTP = 0x54 - IPPROTO_UDP = 0x11 - IPPROTO_UNKNOWN = 0x102 - IPPROTO_VINES = 0x53 - IPPROTO_VISA = 0x46 - IPPROTO_VMTP = 0x51 - IPPROTO_WBEXPAK = 0x4f - IPPROTO_WBMON = 0x4e - IPPROTO_WSN = 0x4a - IPPROTO_XNET = 0xf - IPPROTO_XTP = 0x24 - IPV6_AUTOFLOWLABEL = 0x3b - IPV6_BINDV6ONLY = 0x1b - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_FAITH = 0x1d - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FRAGTTL = 0x78 - IPV6_FW_ADD = 0x1e - IPV6_FW_DEL = 0x1f - IPV6_FW_FLUSH = 0x20 - IPV6_FW_GET = 0x22 - IPV6_FW_ZERO = 0x21 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_IPSEC_POLICY = 0x1c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXPACKET = 0xffff - IPV6_MINHLIM = 0x28 - IPV6_MMTU = 0x500 - IPV6_MSFILTER = 0x4a - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_PATHMTU = 0x2c - IPV6_PKTINFO = 0x2e - IPV6_PKTOPTIONS = 0x34 - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_PREFER_TEMPADDR = 0x3f - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - IPV6_RTHDR = 0x33 - IPV6_RTHDRDSTOPTS = 0x23 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_SOCKOPT_RESERVED1 = 0x3 - IPV6_TCLASS = 0x3d - IPV6_UNICAST_HOPS = 0x4 - IPV6_USE_MIN_MTU = 0x2a - IPV6_V6ONLY = 0x1b - IPV6_VERSION = 0x60 - IPV6_VERSION_MASK = 0xf0 - IP_ADD_MEMBERSHIP = 0xc - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0xd - IP_DUMMYNET_CONFIGURE = 0x3c - IP_DUMMYNET_DEL = 0x3d - IP_DUMMYNET_FLUSH = 0x3e - IP_DUMMYNET_GET = 0x40 - IP_FAITH = 0x16 - IP_FW_ADD = 0x32 - IP_FW_DEL = 0x33 - IP_FW_FLUSH = 0x34 - IP_FW_GET = 0x36 - IP_FW_RESETLOG = 0x37 - IP_FW_X = 0x31 - IP_FW_ZERO = 0x35 - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x15 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINTTL = 0x42 - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_MULTICAST_VIF = 0xe - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x1 - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVRETOPTS = 0x6 - IP_RECVTTL = 0x41 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_RSVP_OFF = 0x10 - IP_RSVP_ON = 0xf - IP_RSVP_VIF_OFF = 0x12 - IP_RSVP_VIF_ON = 0x11 - IP_TOS = 0x3 - IP_TTL = 0x4 - ISIG = 0x80 - ISTRIP = 0x20 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_AUTOSYNC = 0x7 - MADV_CONTROL_END = 0xb - MADV_CONTROL_START = 0xa - MADV_CORE = 0x9 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x5 - MADV_INVAL = 0xa - MADV_NOCORE = 0x8 - MADV_NORMAL = 0x0 - MADV_NOSYNC = 0x6 - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_SETMAP = 0xb - MADV_WILLNEED = 0x3 - MAP_ANON = 0x1000 - MAP_ANONYMOUS = 0x1000 - MAP_COPY = 0x2 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_HASSEMAPHORE = 0x200 - MAP_INHERIT = 0x80 - MAP_NOCORE = 0x20000 - MAP_NOEXTEND = 0x100 - MAP_NORESERVE = 0x40 - MAP_NOSYNC = 0x800 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 - MAP_SHARED = 0x1 - MAP_SIZEALIGN = 0x40000 - MAP_STACK = 0x400 - MAP_TRYFIXED = 0x10000 - MAP_VPAGETABLE = 0x2000 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MSG_CMSG_CLOEXEC = 0x1000 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOF = 0x100 - MSG_EOR = 0x8 - MSG_FBLOCKING = 0x10000 - MSG_FMASK = 0xffff0000 - MSG_FNONBLOCKING = 0x20000 - MSG_NOSIGNAL = 0x400 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_SYNC = 0x800 - MSG_TRUNC = 0x10 - MSG_UNUSED09 = 0x200 - MSG_WAITALL = 0x40 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x2 - MS_SYNC = 0x0 - NAME_MAX = 0xff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x3 - NET_RT_MAXID = 0x4 - NOFLSH = 0x80000000 - NOKERNINFO = 0x2000000 - NOTE_ATTRIB = 0x8 - NOTE_CHILD = 0x4 - NOTE_DELETE = 0x1 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXTEND = 0x4 - NOTE_FFAND = 0x40000000 - NOTE_FFCOPY = 0xc0000000 - NOTE_FFCTRLMASK = 0xc0000000 - NOTE_FFLAGSMASK = 0xffffff - NOTE_FFNOP = 0x0 - NOTE_FFOR = 0x80000000 - NOTE_FORK = 0x40000000 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_OOB = 0x2 - NOTE_PCTRLMASK = 0xf0000000 - NOTE_PDATAMASK = 0xfffff - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_TRIGGER = 0x1000000 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - OXTABS = 0x4 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x20000 - O_CREAT = 0x200 - O_DIRECT = 0x10000 - O_DIRECTORY = 0x8000000 - O_EXCL = 0x800 - O_EXLOCK = 0x20 - O_FAPPEND = 0x100000 - O_FASYNCWRITE = 0x800000 - O_FBLOCKING = 0x40000 - O_FMASK = 0xfc0000 - O_FNONBLOCKING = 0x80000 - O_FOFFSET = 0x200000 - O_FSYNC = 0x80 - O_FSYNCWRITE = 0x400000 - O_NDELAY = 0x4 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - RLIMIT_AS = 0xa - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_NOFILE = 0x8 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0x7fffffffffffffff - RTAX_AUTHOR = 0x6 - RTAX_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0xb - RTAX_MPLS1 = 0x8 - RTAX_MPLS2 = 0x9 - RTAX_MPLS3 = 0xa - RTAX_NETMASK = 0x2 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_MPLS1 = 0x100 - RTA_MPLS2 = 0x200 - RTA_MPLS3 = 0x400 - RTA_NETMASK = 0x4 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_CLONING = 0x100 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MODIFIED = 0x20 - RTF_MPLSOPS = 0x1000000 - RTF_MULTICAST = 0x800000 - RTF_PINNED = 0x100000 - RTF_PRCLONING = 0x10000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x40000 - RTF_REJECT = 0x8 - RTF_STATIC = 0x800 - RTF_UP = 0x1 - RTF_WASCLONED = 0x20000 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_DELMADDR = 0x10 - RTM_GET = 0x4 - RTM_IEEE80211 = 0x12 - RTM_IFANNOUNCE = 0x11 - RTM_IFINFO = 0xe - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_NEWMADDR = 0xf - RTM_OLDADD = 0x9 - RTM_OLDDEL = 0xa - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 - RTM_VERSION = 0x6 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_IWCAPSEGS = 0x400 - RTV_IWMAXSEGS = 0x200 - RTV_MSL = 0x100 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - SCM_CREDS = 0x3 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x2 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCADDRT = 0x8040720a - SIOCAIFADDR = 0x8040691a - SIOCALIFADDR = 0x8118691b - SIOCATMARK = 0x40047307 - SIOCDELMULTI = 0x80206932 - SIOCDELRT = 0x8040720b - SIOCDIFADDR = 0x80206919 - SIOCDIFPHYADDR = 0x80206949 - SIOCDLIFADDR = 0x8118691d - SIOCGDRVSPEC = 0xc028697b - SIOCGETSGCNT = 0xc0207210 - SIOCGETVIFCNT = 0xc028720f - SIOCGHIWAT = 0x40047301 - SIOCGIFADDR = 0xc0206921 - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCAP = 0xc020691f - SIOCGIFCONF = 0xc0106924 - SIOCGIFDATA = 0xc0206926 - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFGENERIC = 0xc020693a - SIOCGIFGMEMB = 0xc028698a - SIOCGIFINDEX = 0xc0206920 - SIOCGIFMEDIA = 0xc0306938 - SIOCGIFMETRIC = 0xc0206917 - SIOCGIFMTU = 0xc0206933 - SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPDSTADDR = 0xc0206948 - SIOCGIFPHYS = 0xc0206935 - SIOCGIFPOLLCPU = 0xc020697e - SIOCGIFPSRCADDR = 0xc0206947 - SIOCGIFSTATUS = 0xc331693b - SIOCGIFTSOLEN = 0xc0206980 - SIOCGLIFADDR = 0xc118691c - SIOCGLIFPHYADDR = 0xc118694b - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCGPRIVATE_0 = 0xc0206950 - SIOCGPRIVATE_1 = 0xc0206951 - SIOCIFCREATE = 0xc020697a - SIOCIFCREATE2 = 0xc020697c - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc0106978 - SIOCSDRVSPEC = 0x8028697b - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8020690c - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFCAP = 0x8020691e - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGENERIC = 0x80206939 - SIOCSIFLLADDR = 0x8020693c - SIOCSIFMEDIA = 0xc0206937 - SIOCSIFMETRIC = 0x80206918 - SIOCSIFMTU = 0x80206934 - SIOCSIFNAME = 0x80206928 - SIOCSIFNETMASK = 0x80206916 - SIOCSIFPHYADDR = 0x80406946 - SIOCSIFPHYS = 0x80206936 - SIOCSIFPOLLCPU = 0x8020697d - SIOCSIFTSOLEN = 0x8020697f - SIOCSLIFPHYADDR = 0x8118694a - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SOCK_CLOEXEC = 0x10000000 - SOCK_DGRAM = 0x2 - SOCK_MAXADDRLEN = 0xff - SOCK_NONBLOCK = 0x20000000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_ACCEPTFILTER = 0x1000 - SO_BROADCAST = 0x20 - SO_CPUHINT = 0x1030 - SO_DEBUG = 0x1 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_NOSIGPIPE = 0x800 - SO_OOBINLINE = 0x100 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDSPACE = 0x100a - SO_SNDTIMEO = 0x1005 - SO_TIMESTAMP = 0x400 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - TCIFLUSH = 0x1 - TCIOFF = 0x3 - TCIOFLUSH = 0x3 - TCION = 0x4 - TCOFLUSH = 0x2 - TCOOFF = 0x1 - TCOON = 0x2 - TCP_FASTKEEP = 0x80 - TCP_KEEPCNT = 0x400 - TCP_KEEPIDLE = 0x100 - TCP_KEEPINIT = 0x20 - TCP_KEEPINTVL = 0x200 - TCP_MAXBURST = 0x4 - TCP_MAXHLEN = 0x3c - TCP_MAXOLEN = 0x28 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MINMSS = 0x100 - TCP_MIN_WINSHIFT = 0x5 - TCP_MSS = 0x200 - TCP_NODELAY = 0x1 - TCP_NOOPT = 0x8 - TCP_NOPUSH = 0x4 - TCP_SIGNATURE_ENABLE = 0x10 - TCSAFLUSH = 0x2 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDCDTIMESTAMP = 0x40107458 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLUSH = 0x80047410 - TIOCGDRAINWAIT = 0x40047456 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGPGRP = 0x40047477 - TIOCGSID = 0x40047463 - TIOCGSIZE = 0x40087468 - TIOCGWINSZ = 0x40087468 - TIOCISPTMASTER = 0x20007455 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGDTRWAIT = 0x4004745a - TIOCMGET = 0x4004746a - TIOCMODG = 0x40047403 - TIOCMODS = 0x80047404 - TIOCMSDTRWAIT = 0x8004745b - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x20007471 - TIOCNXCL = 0x2000740e - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x80047470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCREMOTE = 0x80047469 - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDRAINWAIT = 0x80047457 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSIG = 0x2000745f - TIOCSPGRP = 0x80047476 - TIOCSSIZE = 0x80087467 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x20007465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCTIMESTAMP = 0x40107459 - TIOCUCNTL = 0x80047466 - TOSTOP = 0x400000 - VCHECKPT = 0x13 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VERASE2 = 0x7 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VM_BCACHE_SIZE_MAX = 0x0 - VM_SWZONE_SIZE_MAX = 0x4000000000 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WCONTINUED = 0x4 - WCOREFLAG = 0x80 - WLINUXCLONE = 0x80000000 - WNOHANG = 0x1 - WSTOPPED = 0x7f - WUNTRACED = 0x2 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x30) - EADDRNOTAVAIL = syscall.Errno(0x31) - EAFNOSUPPORT = syscall.Errno(0x2f) - EAGAIN = syscall.Errno(0x23) - EALREADY = syscall.Errno(0x25) - EASYNC = syscall.Errno(0x63) - EAUTH = syscall.Errno(0x50) - EBADF = syscall.Errno(0x9) - EBADMSG = syscall.Errno(0x59) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x55) - ECHILD = syscall.Errno(0xa) - ECONNABORTED = syscall.Errno(0x35) - ECONNREFUSED = syscall.Errno(0x3d) - ECONNRESET = syscall.Errno(0x36) - EDEADLK = syscall.Errno(0xb) - EDESTADDRREQ = syscall.Errno(0x27) - EDOM = syscall.Errno(0x21) - EDOOFUS = syscall.Errno(0x58) - EDQUOT = syscall.Errno(0x45) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EFTYPE = syscall.Errno(0x4f) - EHOSTDOWN = syscall.Errno(0x40) - EHOSTUNREACH = syscall.Errno(0x41) - EIDRM = syscall.Errno(0x52) - EILSEQ = syscall.Errno(0x56) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x63) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5a) - ENAMETOOLONG = syscall.Errno(0x3f) - ENEEDAUTH = syscall.Errno(0x51) - ENETDOWN = syscall.Errno(0x32) - ENETRESET = syscall.Errno(0x34) - ENETUNREACH = syscall.Errno(0x33) - ENFILE = syscall.Errno(0x17) - ENOATTR = syscall.Errno(0x57) - ENOBUFS = syscall.Errno(0x37) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x5b) - ENOMEDIUM = syscall.Errno(0x5d) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x53) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x2d) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x54) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x2e) - EPIPE = syscall.Errno(0x20) - EPROCLIM = syscall.Errno(0x43) - EPROCUNAVAIL = syscall.Errno(0x4c) - EPROGMISMATCH = syscall.Errno(0x4b) - EPROGUNAVAIL = syscall.Errno(0x4a) - EPROTO = syscall.Errno(0x5c) - EPROTONOSUPPORT = syscall.Errno(0x2b) - EPROTOTYPE = syscall.Errno(0x29) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x47) - EROFS = syscall.Errno(0x1e) - ERPCMISMATCH = syscall.Errno(0x49) - ESHUTDOWN = syscall.Errno(0x3a) - ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x46) - ETIMEDOUT = syscall.Errno(0x3c) - ETOOMANYREFS = syscall.Errno(0x3b) - ETXTBSY = syscall.Errno(0x1a) - EUNUSED94 = syscall.Errno(0x5e) - EUNUSED95 = syscall.Errno(0x5f) - EUNUSED96 = syscall.Errno(0x60) - EUNUSED97 = syscall.Errno(0x61) - EUNUSED98 = syscall.Errno(0x62) - EUSERS = syscall.Errno(0x44) - EWOULDBLOCK = syscall.Errno(0x23) - EXDEV = syscall.Errno(0x12) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x14) - SIGCKPT = syscall.Signal(0x21) - SIGCKPTEXIT = syscall.Signal(0x22) - SIGCONT = syscall.Signal(0x13) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINFO = syscall.Signal(0x1d) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x17) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) - SIGPROF = syscall.Signal(0x1b) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTHR = syscall.Signal(0x20) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x12) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x10) - SIGUSR1 = syscall.Signal(0x1e) - SIGUSR2 = syscall.Signal(0x1f) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errors = [...]string{ - 1: "operation not permitted", - 2: "no such file or directory", - 3: "no such process", - 4: "interrupted system call", - 5: "input/output error", - 6: "device not configured", - 7: "argument list too long", - 8: "exec format error", - 9: "bad file descriptor", - 10: "no child processes", - 11: "resource deadlock avoided", - 12: "cannot allocate memory", - 13: "permission denied", - 14: "bad address", - 15: "block device required", - 16: "device busy", - 17: "file exists", - 18: "cross-device link", - 19: "operation not supported by device", - 20: "not a directory", - 21: "is a directory", - 22: "invalid argument", - 23: "too many open files in system", - 24: "too many open files", - 25: "inappropriate ioctl for device", - 26: "text file busy", - 27: "file too large", - 28: "no space left on device", - 29: "illegal seek", - 30: "read-only file system", - 31: "too many links", - 32: "broken pipe", - 33: "numerical argument out of domain", - 34: "result too large", - 35: "resource temporarily unavailable", - 36: "operation now in progress", - 37: "operation already in progress", - 38: "socket operation on non-socket", - 39: "destination address required", - 40: "message too long", - 41: "protocol wrong type for socket", - 42: "protocol not available", - 43: "protocol not supported", - 44: "socket type not supported", - 45: "operation not supported", - 46: "protocol family not supported", - 47: "address family not supported by protocol family", - 48: "address already in use", - 49: "can't assign requested address", - 50: "network is down", - 51: "network is unreachable", - 52: "network dropped connection on reset", - 53: "software caused connection abort", - 54: "connection reset by peer", - 55: "no buffer space available", - 56: "socket is already connected", - 57: "socket is not connected", - 58: "can't send after socket shutdown", - 59: "too many references: can't splice", - 60: "operation timed out", - 61: "connection refused", - 62: "too many levels of symbolic links", - 63: "file name too long", - 64: "host is down", - 65: "no route to host", - 66: "directory not empty", - 67: "too many processes", - 68: "too many users", - 69: "disc quota exceeded", - 70: "stale NFS file handle", - 71: "too many levels of remote in path", - 72: "RPC struct is bad", - 73: "RPC version wrong", - 74: "RPC prog. not avail", - 75: "program version wrong", - 76: "bad procedure for program", - 77: "no locks available", - 78: "function not implemented", - 79: "inappropriate file type or format", - 80: "authentication error", - 81: "need authenticator", - 82: "identifier removed", - 83: "no message of desired type", - 84: "value too large to be stored in data type", - 85: "operation canceled", - 86: "illegal byte sequence", - 87: "attribute not found", - 88: "programming error", - 89: "bad message", - 90: "multihop attempted", - 91: "link has been severed", - 92: "protocol error", - 93: "no medium found", - 94: "unknown error: 94", - 95: "unknown error: 95", - 96: "unknown error: 96", - 97: "unknown error: 97", - 98: "unknown error: 98", - 99: "unknown error: 99", -} - -// Signal table -var signals = [...]string{ - 1: "hangup", - 2: "interrupt", - 3: "quit", - 4: "illegal instruction", - 5: "trace/BPT trap", - 6: "abort trap", - 7: "EMT trap", - 8: "floating point exception", - 9: "killed", - 10: "bus error", - 11: "segmentation fault", - 12: "bad system call", - 13: "broken pipe", - 14: "alarm clock", - 15: "terminated", - 16: "urgent I/O condition", - 17: "suspended (signal)", - 18: "suspended", - 19: "continued", - 20: "child exited", - 21: "stopped (tty input)", - 22: "stopped (tty output)", - 23: "I/O possible", - 24: "cputime limit exceeded", - 25: "filesize limit exceeded", - 26: "virtual timer expired", - 27: "profiling timer expired", - 28: "window size changes", - 29: "information request", - 30: "user defined signal 1", - 31: "user defined signal 2", - 32: "thread Scheduler", - 33: "checkPoint", - 34: "checkPointExit", -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go deleted file mode 100644 index 1d3eec4..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go +++ /dev/null @@ -1,1706 +0,0 @@ -// mkerrors.sh -m32 -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build 386,freebsd - -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs -- -m32 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_ARP = 0x23 - AF_ATM = 0x1e - AF_BLUETOOTH = 0x24 - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_CNT = 0x15 - AF_COIP = 0x14 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_E164 = 0x1a - AF_ECMA = 0x8 - AF_HYLINK = 0xf - AF_IEEE80211 = 0x25 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x1c - AF_INET6_SDP = 0x2a - AF_INET_SDP = 0x28 - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x2a - AF_NATM = 0x1d - AF_NETBIOS = 0x6 - AF_NETGRAPH = 0x20 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x11 - AF_SCLUSTER = 0x22 - AF_SIP = 0x18 - AF_SLOW = 0x21 - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VENDOR00 = 0x27 - AF_VENDOR01 = 0x29 - AF_VENDOR02 = 0x2b - AF_VENDOR03 = 0x2d - AF_VENDOR04 = 0x2f - AF_VENDOR05 = 0x31 - AF_VENDOR06 = 0x33 - AF_VENDOR07 = 0x35 - AF_VENDOR08 = 0x37 - AF_VENDOR09 = 0x39 - AF_VENDOR10 = 0x3b - AF_VENDOR11 = 0x3d - AF_VENDOR12 = 0x3f - AF_VENDOR13 = 0x41 - AF_VENDOR14 = 0x43 - AF_VENDOR15 = 0x45 - AF_VENDOR16 = 0x47 - AF_VENDOR17 = 0x49 - AF_VENDOR18 = 0x4b - AF_VENDOR19 = 0x4d - AF_VENDOR20 = 0x4f - AF_VENDOR21 = 0x51 - AF_VENDOR22 = 0x53 - AF_VENDOR23 = 0x55 - AF_VENDOR24 = 0x57 - AF_VENDOR25 = 0x59 - AF_VENDOR26 = 0x5b - AF_VENDOR27 = 0x5d - AF_VENDOR28 = 0x5f - AF_VENDOR29 = 0x61 - AF_VENDOR30 = 0x63 - AF_VENDOR31 = 0x65 - AF_VENDOR32 = 0x67 - AF_VENDOR33 = 0x69 - AF_VENDOR34 = 0x6b - AF_VENDOR35 = 0x6d - AF_VENDOR36 = 0x6f - AF_VENDOR37 = 0x71 - AF_VENDOR38 = 0x73 - AF_VENDOR39 = 0x75 - AF_VENDOR40 = 0x77 - AF_VENDOR41 = 0x79 - AF_VENDOR42 = 0x7b - AF_VENDOR43 = 0x7d - AF_VENDOR44 = 0x7f - AF_VENDOR45 = 0x81 - AF_VENDOR46 = 0x83 - AF_VENDOR47 = 0x85 - ALTWERASE = 0x200 - B0 = 0x0 - B110 = 0x6e - B115200 = 0x1c200 - B1200 = 0x4b0 - B134 = 0x86 - B14400 = 0x3840 - B150 = 0x96 - B1800 = 0x708 - B19200 = 0x4b00 - B200 = 0xc8 - B230400 = 0x38400 - B2400 = 0x960 - B28800 = 0x7080 - B300 = 0x12c - B38400 = 0x9600 - B460800 = 0x70800 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B921600 = 0xe1000 - B9600 = 0x2580 - BIOCFEEDBACK = 0x8004427c - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDIRECTION = 0x40044276 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc0084279 - BIOCGETBUFMODE = 0x4004427d - BIOCGETIF = 0x4020426b - BIOCGETZMAX = 0x4004427f - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044272 - BIOCGRTIMEOUT = 0x4008426e - BIOCGSEESENT = 0x40044276 - BIOCGSTATS = 0x4008426f - BIOCGTSTAMP = 0x40044283 - BIOCIMMEDIATE = 0x80044270 - BIOCLOCK = 0x2000427a - BIOCPROMISC = 0x20004269 - BIOCROTZBUF = 0x400c4280 - BIOCSBLEN = 0xc0044266 - BIOCSDIRECTION = 0x80044277 - BIOCSDLT = 0x80044278 - BIOCSETBUFMODE = 0x8004427e - BIOCSETF = 0x80084267 - BIOCSETFNR = 0x80084282 - BIOCSETIF = 0x8020426c - BIOCSETWF = 0x8008427b - BIOCSETZBUF = 0x800c4281 - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044273 - BIOCSRTIMEOUT = 0x8008426d - BIOCSSEESENT = 0x80044277 - BIOCSTSTAMP = 0x80044284 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_BUFMODE_BUFFER = 0x1 - BPF_BUFMODE_ZBUF = 0x2 - BPF_DIV = 0x30 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXBUFSIZE = 0x80000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_OR = 0x40 - BPF_RELEASE = 0x30bb6 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_T_BINTIME = 0x2 - BPF_T_BINTIME_FAST = 0x102 - BPF_T_BINTIME_MONOTONIC = 0x202 - BPF_T_BINTIME_MONOTONIC_FAST = 0x302 - BPF_T_FAST = 0x100 - BPF_T_FLAG_MASK = 0x300 - BPF_T_FORMAT_MASK = 0x3 - BPF_T_MICROTIME = 0x0 - BPF_T_MICROTIME_FAST = 0x100 - BPF_T_MICROTIME_MONOTONIC = 0x200 - BPF_T_MICROTIME_MONOTONIC_FAST = 0x300 - BPF_T_MONOTONIC = 0x200 - BPF_T_MONOTONIC_FAST = 0x300 - BPF_T_NANOTIME = 0x1 - BPF_T_NANOTIME_FAST = 0x101 - BPF_T_NANOTIME_MONOTONIC = 0x201 - BPF_T_NANOTIME_MONOTONIC_FAST = 0x301 - BPF_T_NONE = 0x3 - BPF_T_NORMAL = 0x0 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XOR = 0xa0 - BRKINT = 0x2 - CAP_ACCEPT = 0x200000020000000 - CAP_ACL_CHECK = 0x400000000010000 - CAP_ACL_DELETE = 0x400000000020000 - CAP_ACL_GET = 0x400000000040000 - CAP_ACL_SET = 0x400000000080000 - CAP_ALL0 = 0x20007ffffffffff - CAP_ALL1 = 0x4000000001fffff - CAP_BIND = 0x200000040000000 - CAP_BINDAT = 0x200008000000400 - CAP_CHFLAGSAT = 0x200000000001400 - CAP_CONNECT = 0x200000080000000 - CAP_CONNECTAT = 0x200010000000400 - CAP_CREATE = 0x200000000000040 - CAP_EVENT = 0x400000000000020 - CAP_EXTATTR_DELETE = 0x400000000001000 - CAP_EXTATTR_GET = 0x400000000002000 - CAP_EXTATTR_LIST = 0x400000000004000 - CAP_EXTATTR_SET = 0x400000000008000 - CAP_FCHDIR = 0x200000000000800 - CAP_FCHFLAGS = 0x200000000001000 - CAP_FCHMOD = 0x200000000002000 - CAP_FCHMODAT = 0x200000000002400 - CAP_FCHOWN = 0x200000000004000 - CAP_FCHOWNAT = 0x200000000004400 - CAP_FCNTL = 0x200000000008000 - CAP_FCNTL_ALL = 0x78 - CAP_FCNTL_GETFL = 0x8 - CAP_FCNTL_GETOWN = 0x20 - CAP_FCNTL_SETFL = 0x10 - CAP_FCNTL_SETOWN = 0x40 - CAP_FEXECVE = 0x200000000000080 - CAP_FLOCK = 0x200000000010000 - CAP_FPATHCONF = 0x200000000020000 - CAP_FSCK = 0x200000000040000 - CAP_FSTAT = 0x200000000080000 - CAP_FSTATAT = 0x200000000080400 - CAP_FSTATFS = 0x200000000100000 - CAP_FSYNC = 0x200000000000100 - CAP_FTRUNCATE = 0x200000000000200 - CAP_FUTIMES = 0x200000000200000 - CAP_FUTIMESAT = 0x200000000200400 - CAP_GETPEERNAME = 0x200000100000000 - CAP_GETSOCKNAME = 0x200000200000000 - CAP_GETSOCKOPT = 0x200000400000000 - CAP_IOCTL = 0x400000000000080 - CAP_IOCTLS_ALL = 0x7fffffff - CAP_KQUEUE = 0x400000000100040 - CAP_KQUEUE_CHANGE = 0x400000000100000 - CAP_KQUEUE_EVENT = 0x400000000000040 - CAP_LINKAT_SOURCE = 0x200020000000400 - CAP_LINKAT_TARGET = 0x200000000400400 - CAP_LISTEN = 0x200000800000000 - CAP_LOOKUP = 0x200000000000400 - CAP_MAC_GET = 0x400000000000001 - CAP_MAC_SET = 0x400000000000002 - CAP_MKDIRAT = 0x200000000800400 - CAP_MKFIFOAT = 0x200000001000400 - CAP_MKNODAT = 0x200000002000400 - CAP_MMAP = 0x200000000000010 - CAP_MMAP_R = 0x20000000000001d - CAP_MMAP_RW = 0x20000000000001f - CAP_MMAP_RWX = 0x20000000000003f - CAP_MMAP_RX = 0x20000000000003d - CAP_MMAP_W = 0x20000000000001e - CAP_MMAP_WX = 0x20000000000003e - CAP_MMAP_X = 0x20000000000003c - CAP_PDGETPID = 0x400000000000200 - CAP_PDKILL = 0x400000000000800 - CAP_PDWAIT = 0x400000000000400 - CAP_PEELOFF = 0x200001000000000 - CAP_POLL_EVENT = 0x400000000000020 - CAP_PREAD = 0x20000000000000d - CAP_PWRITE = 0x20000000000000e - CAP_READ = 0x200000000000001 - CAP_RECV = 0x200000000000001 - CAP_RENAMEAT_SOURCE = 0x200000004000400 - CAP_RENAMEAT_TARGET = 0x200040000000400 - CAP_RIGHTS_VERSION = 0x0 - CAP_RIGHTS_VERSION_00 = 0x0 - CAP_SEEK = 0x20000000000000c - CAP_SEEK_TELL = 0x200000000000004 - CAP_SEM_GETVALUE = 0x400000000000004 - CAP_SEM_POST = 0x400000000000008 - CAP_SEM_WAIT = 0x400000000000010 - CAP_SEND = 0x200000000000002 - CAP_SETSOCKOPT = 0x200002000000000 - CAP_SHUTDOWN = 0x200004000000000 - CAP_SOCK_CLIENT = 0x200007780000003 - CAP_SOCK_SERVER = 0x200007f60000003 - CAP_SYMLINKAT = 0x200000008000400 - CAP_TTYHOOK = 0x400000000000100 - CAP_UNLINKAT = 0x200000010000400 - CAP_UNUSED0_44 = 0x200080000000000 - CAP_UNUSED0_57 = 0x300000000000000 - CAP_UNUSED1_22 = 0x400000000200000 - CAP_UNUSED1_57 = 0x500000000000000 - CAP_WRITE = 0x200000000000002 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLOCK_MONOTONIC = 0x4 - CLOCK_MONOTONIC_FAST = 0xc - CLOCK_MONOTONIC_PRECISE = 0xb - CLOCK_PROCESS_CPUTIME_ID = 0xf - CLOCK_PROF = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_FAST = 0xa - CLOCK_REALTIME_PRECISE = 0x9 - CLOCK_SECOND = 0xd - CLOCK_THREAD_CPUTIME_ID = 0xe - CLOCK_UPTIME = 0x5 - CLOCK_UPTIME_FAST = 0x8 - CLOCK_UPTIME_PRECISE = 0x7 - CLOCK_VIRTUAL = 0x1 - CREAD = 0x800 - CRTSCTS = 0x30000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_MAXNAME = 0x18 - CTL_NET = 0x4 - DLT_A429 = 0xb8 - DLT_A653_ICM = 0xb9 - DLT_AIRONET_HEADER = 0x78 - DLT_AOS = 0xde - DLT_APPLE_IP_OVER_IEEE1394 = 0x8a - DLT_ARCNET = 0x7 - DLT_ARCNET_LINUX = 0x81 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_AX25_KISS = 0xca - DLT_BACNET_MS_TP = 0xa5 - DLT_BLUETOOTH_BREDR_BB = 0xff - DLT_BLUETOOTH_HCI_H4 = 0xbb - DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 - DLT_BLUETOOTH_LE_LL = 0xfb - DLT_BLUETOOTH_LE_LL_WITH_PHDR = 0x100 - DLT_BLUETOOTH_LINUX_MONITOR = 0xfe - DLT_CAN20B = 0xbe - DLT_CAN_SOCKETCAN = 0xe3 - DLT_CHAOS = 0x5 - DLT_CHDLC = 0x68 - DLT_CISCO_IOS = 0x76 - DLT_C_HDLC = 0x68 - DLT_C_HDLC_WITH_DIR = 0xcd - DLT_DBUS = 0xe7 - DLT_DECT = 0xdd - DLT_DOCSIS = 0x8f - DLT_DVB_CI = 0xeb - DLT_ECONET = 0x73 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_EPON = 0x103 - DLT_ERF = 0xc5 - DLT_ERF_ETH = 0xaf - DLT_ERF_POS = 0xb0 - DLT_FC_2 = 0xe0 - DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 - DLT_FDDI = 0xa - DLT_FLEXRAY = 0xd2 - DLT_FRELAY = 0x6b - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_GSMTAP_ABIS = 0xda - DLT_GSMTAP_UM = 0xd9 - DLT_HHDLC = 0x79 - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_IEEE802_15_4 = 0xc3 - DLT_IEEE802_15_4_LINUX = 0xbf - DLT_IEEE802_15_4_NOFCS = 0xe6 - DLT_IEEE802_15_4_NONASK_PHY = 0xd7 - DLT_IEEE802_16_MAC_CPS = 0xbc - DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 - DLT_INFINIBAND = 0xf7 - DLT_IPFILTER = 0x74 - DLT_IPMB = 0xc7 - DLT_IPMB_LINUX = 0xd1 - DLT_IPMI_HPM_2 = 0x104 - DLT_IPNET = 0xe2 - DLT_IPOIB = 0xf2 - DLT_IPV4 = 0xe4 - DLT_IPV6 = 0xe5 - DLT_IP_OVER_FC = 0x7a - DLT_JUNIPER_ATM1 = 0x89 - DLT_JUNIPER_ATM2 = 0x87 - DLT_JUNIPER_ATM_CEMIC = 0xee - DLT_JUNIPER_CHDLC = 0xb5 - DLT_JUNIPER_ES = 0x84 - DLT_JUNIPER_ETHER = 0xb2 - DLT_JUNIPER_FIBRECHANNEL = 0xea - DLT_JUNIPER_FRELAY = 0xb4 - DLT_JUNIPER_GGSN = 0x85 - DLT_JUNIPER_ISM = 0xc2 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - DLT_JUNIPER_PPPOE = 0xa7 - DLT_JUNIPER_PPPOE_ATM = 0xa8 - DLT_JUNIPER_SERVICES = 0x88 - DLT_JUNIPER_SRX_E2E = 0xe9 - DLT_JUNIPER_ST = 0xc8 - DLT_JUNIPER_VP = 0xb7 - DLT_JUNIPER_VS = 0xe8 - DLT_LAPB_WITH_DIR = 0xcf - DLT_LAPD = 0xcb - DLT_LIN = 0xd4 - DLT_LINUX_EVDEV = 0xd8 - DLT_LINUX_IRDA = 0x90 - DLT_LINUX_LAPD = 0xb1 - DLT_LINUX_PPP_WITHDIRECTION = 0xa6 - DLT_LINUX_SLL = 0x71 - DLT_LOOP = 0x6c - DLT_LTALK = 0x72 - DLT_MATCHING_MAX = 0x104 - DLT_MATCHING_MIN = 0x68 - DLT_MFR = 0xb6 - DLT_MOST = 0xd3 - DLT_MPEG_2_TS = 0xf3 - DLT_MPLS = 0xdb - DLT_MTP2 = 0x8c - DLT_MTP2_WITH_PHDR = 0x8b - DLT_MTP3 = 0x8d - DLT_MUX27010 = 0xec - DLT_NETANALYZER = 0xf0 - DLT_NETANALYZER_TRANSPARENT = 0xf1 - DLT_NETLINK = 0xfd - DLT_NFC_LLCP = 0xf5 - DLT_NFLOG = 0xef - DLT_NG40 = 0xf4 - DLT_NULL = 0x0 - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x79 - DLT_PKTAP = 0x102 - DLT_PPI = 0xc0 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0x10 - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PPP_WITH_DIRECTION = 0xa6 - DLT_PRISM_HEADER = 0x77 - DLT_PROFIBUS_DL = 0x101 - DLT_PRONET = 0x4 - DLT_RAIF1 = 0xc6 - DLT_RAW = 0xc - DLT_RIO = 0x7c - DLT_RTAC_SERIAL = 0xfa - DLT_SCCP = 0x8e - DLT_SCTP = 0xf8 - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xf - DLT_STANAG_5066_D_PDU = 0xed - DLT_SUNATM = 0x7b - DLT_SYMANTEC_FIREWALL = 0x63 - DLT_TZSP = 0x80 - DLT_USB = 0xba - DLT_USBPCAP = 0xf9 - DLT_USB_LINUX = 0xbd - DLT_USB_LINUX_MMAPPED = 0xdc - DLT_USER0 = 0x93 - DLT_USER1 = 0x94 - DLT_USER10 = 0x9d - DLT_USER11 = 0x9e - DLT_USER12 = 0x9f - DLT_USER13 = 0xa0 - DLT_USER14 = 0xa1 - DLT_USER15 = 0xa2 - DLT_USER2 = 0x95 - DLT_USER3 = 0x96 - DLT_USER4 = 0x97 - DLT_USER5 = 0x98 - DLT_USER6 = 0x99 - DLT_USER7 = 0x9a - DLT_USER8 = 0x9b - DLT_USER9 = 0x9c - DLT_WIHART = 0xdf - DLT_WIRESHARK_UPPER_PDU = 0xfc - DLT_X2E_SERIAL = 0xd5 - DLT_X2E_XORAYA = 0xd6 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EVFILT_AIO = -0x3 - EVFILT_FS = -0x9 - EVFILT_LIO = -0xa - EVFILT_PROC = -0x5 - EVFILT_PROCDESC = -0x8 - EVFILT_READ = -0x1 - EVFILT_SENDFILE = -0xc - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0xc - EVFILT_TIMER = -0x7 - EVFILT_USER = -0xb - EVFILT_VNODE = -0x4 - EVFILT_WRITE = -0x2 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_DISPATCH = 0x80 - EV_DROP = 0x1000 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_FLAG2 = 0x4000 - EV_FORCEONESHOT = 0x100 - EV_ONESHOT = 0x10 - EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf000 - EXTA = 0x4b00 - EXTATTR_NAMESPACE_EMPTY = 0x0 - EXTATTR_NAMESPACE_SYSTEM = 0x2 - EXTATTR_NAMESPACE_USER = 0x1 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FLUSHO = 0x800000 - F_CANCEL = 0x5 - F_DUP2FD = 0xa - F_DUP2FD_CLOEXEC = 0x12 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x11 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0xb - F_GETOWN = 0x5 - F_OGETLK = 0x7 - F_OK = 0x0 - F_OSETLK = 0x8 - F_OSETLKW = 0x9 - F_RDAHEAD = 0x10 - F_RDLCK = 0x1 - F_READAHEAD = 0xf - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0xc - F_SETLKW = 0xd - F_SETLK_REMOTE = 0xe - F_SETOWN = 0x6 - F_UNLCK = 0x2 - F_UNLCKSYS = 0x4 - F_WRLCK = 0x3 - HUPCL = 0x4000 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFAN_ARRIVAL = 0x0 - IFAN_DEPARTURE = 0x1 - IFF_ALLMULTI = 0x200 - IFF_ALTPHYS = 0x4000 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x218f52 - IFF_CANTCONFIG = 0x10000 - IFF_DEBUG = 0x4 - IFF_DRV_OACTIVE = 0x400 - IFF_DRV_RUNNING = 0x40 - IFF_DYING = 0x200000 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MONITOR = 0x40000 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PPROMISC = 0x20000 - IFF_PROMISC = 0x100 - IFF_RENAMING = 0x400000 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_STATICARP = 0x80000 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_BRIDGE = 0xd1 - IFT_CARP = 0xf8 - IFT_IEEE1394 = 0x90 - IFT_INFINIBAND = 0xc7 - IFT_L2VLAN = 0x87 - IFT_L3IPVLAN = 0x88 - IFT_PPP = 0x17 - IFT_PROPVIRTUAL = 0x35 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLASSD_HOST = 0xfffffff - IN_CLASSD_NET = 0xf0000000 - IN_CLASSD_NSHIFT = 0x1c - IN_LOOPBACKNET = 0x7f - IN_RFC3021_MASK = 0xfffffffe - IPPROTO_3PC = 0x22 - IPPROTO_ADFS = 0x44 - IPPROTO_AH = 0x33 - IPPROTO_AHIP = 0x3d - IPPROTO_APES = 0x63 - IPPROTO_ARGUS = 0xd - IPPROTO_AX25 = 0x5d - IPPROTO_BHA = 0x31 - IPPROTO_BLT = 0x1e - IPPROTO_BRSATMON = 0x4c - IPPROTO_CARP = 0x70 - IPPROTO_CFTP = 0x3e - IPPROTO_CHAOS = 0x10 - IPPROTO_CMTP = 0x26 - IPPROTO_CPHB = 0x49 - IPPROTO_CPNX = 0x48 - IPPROTO_DDP = 0x25 - IPPROTO_DGP = 0x56 - IPPROTO_DIVERT = 0x102 - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_EMCON = 0xe - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GMTP = 0x64 - IPPROTO_GRE = 0x2f - IPPROTO_HELLO = 0x3f - IPPROTO_HIP = 0x8b - IPPROTO_HMP = 0x14 - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IDPR = 0x23 - IPPROTO_IDRP = 0x2d - IPPROTO_IGMP = 0x2 - IPPROTO_IGP = 0x55 - IPPROTO_IGRP = 0x58 - IPPROTO_IL = 0x28 - IPPROTO_INLSP = 0x34 - IPPROTO_INP = 0x20 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPCV = 0x47 - IPPROTO_IPEIP = 0x5e - IPPROTO_IPIP = 0x4 - IPPROTO_IPPC = 0x43 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_IRTP = 0x1c - IPPROTO_KRYPTOLAN = 0x41 - IPPROTO_LARP = 0x5b - IPPROTO_LEAF1 = 0x19 - IPPROTO_LEAF2 = 0x1a - IPPROTO_MAX = 0x100 - IPPROTO_MEAS = 0x13 - IPPROTO_MH = 0x87 - IPPROTO_MHRP = 0x30 - IPPROTO_MICP = 0x5f - IPPROTO_MOBILE = 0x37 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_MUX = 0x12 - IPPROTO_ND = 0x4d - IPPROTO_NHRP = 0x36 - IPPROTO_NONE = 0x3b - IPPROTO_NSP = 0x1f - IPPROTO_NVPII = 0xb - IPPROTO_OLD_DIVERT = 0xfe - IPPROTO_OSPFIGP = 0x59 - IPPROTO_PFSYNC = 0xf0 - IPPROTO_PGM = 0x71 - IPPROTO_PIGP = 0x9 - IPPROTO_PIM = 0x67 - IPPROTO_PRM = 0x15 - IPPROTO_PUP = 0xc - IPPROTO_PVP = 0x4b - IPPROTO_RAW = 0xff - IPPROTO_RCCMON = 0xa - IPPROTO_RDP = 0x1b - IPPROTO_RESERVED_253 = 0xfd - IPPROTO_RESERVED_254 = 0xfe - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_RVD = 0x42 - IPPROTO_SATEXPAK = 0x40 - IPPROTO_SATMON = 0x45 - IPPROTO_SCCSP = 0x60 - IPPROTO_SCTP = 0x84 - IPPROTO_SDRP = 0x2a - IPPROTO_SEND = 0x103 - IPPROTO_SEP = 0x21 - IPPROTO_SHIM6 = 0x8c - IPPROTO_SKIP = 0x39 - IPPROTO_SPACER = 0x7fff - IPPROTO_SRPC = 0x5a - IPPROTO_ST = 0x7 - IPPROTO_SVMTP = 0x52 - IPPROTO_SWIPE = 0x35 - IPPROTO_TCF = 0x57 - IPPROTO_TCP = 0x6 - IPPROTO_TLSP = 0x38 - IPPROTO_TP = 0x1d - IPPROTO_TPXX = 0x27 - IPPROTO_TRUNK1 = 0x17 - IPPROTO_TRUNK2 = 0x18 - IPPROTO_TTP = 0x54 - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPPROTO_VINES = 0x53 - IPPROTO_VISA = 0x46 - IPPROTO_VMTP = 0x51 - IPPROTO_WBEXPAK = 0x4f - IPPROTO_WBMON = 0x4e - IPPROTO_WSN = 0x4a - IPPROTO_XNET = 0xf - IPPROTO_XTP = 0x24 - IPV6_AUTOFLOWLABEL = 0x3b - IPV6_BINDANY = 0x40 - IPV6_BINDMULTI = 0x41 - IPV6_BINDV6ONLY = 0x1b - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_FLOWID = 0x43 - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FLOWTYPE = 0x44 - IPV6_FRAGTTL = 0x78 - IPV6_FW_ADD = 0x1e - IPV6_FW_DEL = 0x1f - IPV6_FW_FLUSH = 0x20 - IPV6_FW_GET = 0x22 - IPV6_FW_ZERO = 0x21 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_IPSEC_POLICY = 0x1c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXOPTHDR = 0x800 - IPV6_MAXPACKET = 0xffff - IPV6_MAX_GROUP_SRC_FILTER = 0x200 - IPV6_MAX_MEMBERSHIPS = 0xfff - IPV6_MAX_SOCK_SRC_FILTER = 0x80 - IPV6_MIN_MEMBERSHIPS = 0x1f - IPV6_MMTU = 0x500 - IPV6_MSFILTER = 0x4a - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_PATHMTU = 0x2c - IPV6_PKTINFO = 0x2e - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_PREFER_TEMPADDR = 0x3f - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVFLOWID = 0x46 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRSSBUCKETID = 0x47 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - IPV6_RSSBUCKETID = 0x45 - IPV6_RSS_LISTEN_BUCKET = 0x42 - IPV6_RTHDR = 0x33 - IPV6_RTHDRDSTOPTS = 0x23 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_SOCKOPT_RESERVED1 = 0x3 - IPV6_TCLASS = 0x3d - IPV6_UNICAST_HOPS = 0x4 - IPV6_USE_MIN_MTU = 0x2a - IPV6_V6ONLY = 0x1b - IPV6_VERSION = 0x60 - IPV6_VERSION_MASK = 0xf0 - IP_ADD_MEMBERSHIP = 0xc - IP_ADD_SOURCE_MEMBERSHIP = 0x46 - IP_BINDANY = 0x18 - IP_BINDMULTI = 0x19 - IP_BLOCK_SOURCE = 0x48 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DONTFRAG = 0x43 - IP_DROP_MEMBERSHIP = 0xd - IP_DROP_SOURCE_MEMBERSHIP = 0x47 - IP_DUMMYNET3 = 0x31 - IP_DUMMYNET_CONFIGURE = 0x3c - IP_DUMMYNET_DEL = 0x3d - IP_DUMMYNET_FLUSH = 0x3e - IP_DUMMYNET_GET = 0x40 - IP_FLOWID = 0x5a - IP_FLOWTYPE = 0x5b - IP_FW3 = 0x30 - IP_FW_ADD = 0x32 - IP_FW_DEL = 0x33 - IP_FW_FLUSH = 0x34 - IP_FW_GET = 0x36 - IP_FW_NAT_CFG = 0x38 - IP_FW_NAT_DEL = 0x39 - IP_FW_NAT_GET_CONFIG = 0x3a - IP_FW_NAT_GET_LOG = 0x3b - IP_FW_RESETLOG = 0x37 - IP_FW_TABLE_ADD = 0x28 - IP_FW_TABLE_DEL = 0x29 - IP_FW_TABLE_FLUSH = 0x2a - IP_FW_TABLE_GETSIZE = 0x2b - IP_FW_TABLE_LIST = 0x2c - IP_FW_ZERO = 0x35 - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x15 - IP_MAXPACKET = 0xffff - IP_MAX_GROUP_SRC_FILTER = 0x200 - IP_MAX_MEMBERSHIPS = 0xfff - IP_MAX_SOCK_MUTE_FILTER = 0x80 - IP_MAX_SOCK_SRC_FILTER = 0x80 - IP_MAX_SOURCE_FILTER = 0x400 - IP_MF = 0x2000 - IP_MINTTL = 0x42 - IP_MIN_MEMBERSHIPS = 0x1f - IP_MSFILTER = 0x4a - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_MULTICAST_VIF = 0xe - IP_OFFMASK = 0x1fff - IP_ONESBCAST = 0x17 - IP_OPTIONS = 0x1 - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVFLOWID = 0x5d - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVRETOPTS = 0x6 - IP_RECVRSSBUCKETID = 0x5e - IP_RECVTOS = 0x44 - IP_RECVTTL = 0x41 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_RSSBUCKETID = 0x5c - IP_RSS_LISTEN_BUCKET = 0x1a - IP_RSVP_OFF = 0x10 - IP_RSVP_ON = 0xf - IP_RSVP_VIF_OFF = 0x12 - IP_RSVP_VIF_ON = 0x11 - IP_SENDSRCADDR = 0x7 - IP_TOS = 0x3 - IP_TTL = 0x4 - IP_UNBLOCK_SOURCE = 0x49 - ISIG = 0x80 - ISTRIP = 0x20 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_AUTOSYNC = 0x7 - MADV_CORE = 0x9 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x5 - MADV_NOCORE = 0x8 - MADV_NORMAL = 0x0 - MADV_NOSYNC = 0x6 - MADV_PROTECT = 0xa - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_WILLNEED = 0x3 - MAP_ALIGNED_SUPER = 0x1000000 - MAP_ALIGNMENT_MASK = -0x1000000 - MAP_ALIGNMENT_SHIFT = 0x18 - MAP_ANON = 0x1000 - MAP_ANONYMOUS = 0x1000 - MAP_COPY = 0x2 - MAP_EXCL = 0x4000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_HASSEMAPHORE = 0x200 - MAP_NOCORE = 0x20000 - MAP_NOSYNC = 0x800 - MAP_PREFAULT_READ = 0x40000 - MAP_PRIVATE = 0x2 - MAP_RESERVED0020 = 0x20 - MAP_RESERVED0040 = 0x40 - MAP_RESERVED0080 = 0x80 - MAP_RESERVED0100 = 0x100 - MAP_SHARED = 0x1 - MAP_STACK = 0x400 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MSG_CMSG_CLOEXEC = 0x40000 - MSG_COMPAT = 0x8000 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOF = 0x100 - MSG_EOR = 0x8 - MSG_NBIO = 0x4000 - MSG_NOSIGNAL = 0x20000 - MSG_NOTIFICATION = 0x2000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MSG_WAITFORONE = 0x80000 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x2 - MS_SYNC = 0x0 - NAME_MAX = 0xff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x3 - NET_RT_IFLISTL = 0x5 - NET_RT_IFMALIST = 0x4 - NOFLSH = 0x80000000 - NOKERNINFO = 0x2000000 - NOTE_ATTRIB = 0x8 - NOTE_CHILD = 0x4 - NOTE_CLOSE = 0x100 - NOTE_CLOSE_WRITE = 0x200 - NOTE_DELETE = 0x1 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXTEND = 0x4 - NOTE_FFAND = 0x40000000 - NOTE_FFCOPY = 0xc0000000 - NOTE_FFCTRLMASK = 0xc0000000 - NOTE_FFLAGSMASK = 0xffffff - NOTE_FFNOP = 0x0 - NOTE_FFOR = 0x80000000 - NOTE_FILE_POLL = 0x2 - NOTE_FORK = 0x40000000 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_MSECONDS = 0x2 - NOTE_NSECONDS = 0x8 - NOTE_OPEN = 0x80 - NOTE_PCTRLMASK = 0xf0000000 - NOTE_PDATAMASK = 0xfffff - NOTE_READ = 0x400 - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_SECONDS = 0x1 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_TRIGGER = 0x1000000 - NOTE_USECONDS = 0x4 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - OXTABS = 0x4 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x100000 - O_CREAT = 0x200 - O_DIRECT = 0x10000 - O_DIRECTORY = 0x20000 - O_EXCL = 0x800 - O_EXEC = 0x40000 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_TTY_INIT = 0x80000 - O_VERIFY = 0x200000 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - RLIMIT_AS = 0xa - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_MEMLOCK = 0x6 - RLIMIT_NOFILE = 0x8 - RLIMIT_NPROC = 0x7 - RLIMIT_RSS = 0x5 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0x7fffffffffffffff - RTAX_AUTHOR = 0x6 - RTAX_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x8 - RTAX_NETMASK = 0x2 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_FIXEDMTU = 0x80000 - RTF_FMASK = 0x1004d808 - RTF_GATEWAY = 0x2 - RTF_GWFLAG_COMPAT = 0x80000000 - RTF_HOST = 0x4 - RTF_LLDATA = 0x400 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MODIFIED = 0x20 - RTF_MULTICAST = 0x800000 - RTF_PINNED = 0x100000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x40000 - RTF_REJECT = 0x8 - RTF_RNH_LOCKED = 0x40000000 - RTF_STATIC = 0x800 - RTF_STICKY = 0x10000000 - RTF_UP = 0x1 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_DELMADDR = 0x10 - RTM_GET = 0x4 - RTM_IEEE80211 = 0x12 - RTM_IFANNOUNCE = 0x11 - RTM_IFINFO = 0xe - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_NEWMADDR = 0xf - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 - RTM_VERSION = 0x5 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RTV_WEIGHT = 0x100 - RT_ALL_FIBS = -0x1 - RT_BLACKHOLE = 0x40 - RT_CACHING_CONTEXT = 0x1 - RT_DEFAULT_FIB = 0x0 - RT_HAS_GW = 0x80 - RT_HAS_HEADER = 0x10 - RT_HAS_HEADER_BIT = 0x4 - RT_L2_ME = 0x4 - RT_L2_ME_BIT = 0x2 - RT_LLE_CACHE = 0x100 - RT_MAY_LOOP = 0x8 - RT_MAY_LOOP_BIT = 0x3 - RT_NORTREF = 0x2 - RT_REJECT = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_BINTIME = 0x4 - SCM_CREDS = 0x3 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x2 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCAIFGROUP = 0x80246987 - SIOCATMARK = 0x40047307 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFGROUP = 0x80246989 - SIOCDIFPHYADDR = 0x80206949 - SIOCGDRVSPEC = 0xc01c697b - SIOCGETSGCNT = 0xc0147210 - SIOCGETVIFCNT = 0xc014720f - SIOCGHIWAT = 0x40047301 - SIOCGI2C = 0xc020693d - SIOCGIFADDR = 0xc0206921 - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCAP = 0xc020691f - SIOCGIFCONF = 0xc0086924 - SIOCGIFDESCR = 0xc020692a - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFIB = 0xc020695c - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFGENERIC = 0xc020693a - SIOCGIFGMEMB = 0xc024698a - SIOCGIFGROUP = 0xc0246988 - SIOCGIFINDEX = 0xc0206920 - SIOCGIFMAC = 0xc0206926 - SIOCGIFMEDIA = 0xc0286938 - SIOCGIFMETRIC = 0xc0206917 - SIOCGIFMTU = 0xc0206933 - SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPDSTADDR = 0xc0206948 - SIOCGIFPHYS = 0xc0206935 - SIOCGIFPSRCADDR = 0xc0206947 - SIOCGIFSTATUS = 0xc331693b - SIOCGIFXMEDIA = 0xc028698b - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCGPRIVATE_0 = 0xc0206950 - SIOCGPRIVATE_1 = 0xc0206951 - SIOCGTUNFIB = 0xc020695e - SIOCIFCREATE = 0xc020697a - SIOCIFCREATE2 = 0xc020697c - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc00c6978 - SIOCSDRVSPEC = 0x801c697b - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8020690c - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFCAP = 0x8020691e - SIOCSIFDESCR = 0x80206929 - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFIB = 0x8020695d - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGENERIC = 0x80206939 - SIOCSIFLLADDR = 0x8020693c - SIOCSIFMAC = 0x80206927 - SIOCSIFMEDIA = 0xc0206937 - SIOCSIFMETRIC = 0x80206918 - SIOCSIFMTU = 0x80206934 - SIOCSIFNAME = 0x80206928 - SIOCSIFNETMASK = 0x80206916 - SIOCSIFPHYADDR = 0x80406946 - SIOCSIFPHYS = 0x80206936 - SIOCSIFRVNET = 0xc020695b - SIOCSIFVNET = 0xc020695a - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SIOCSTUNFIB = 0x8020695f - SOCK_CLOEXEC = 0x10000000 - SOCK_DGRAM = 0x2 - SOCK_MAXADDRLEN = 0xff - SOCK_NONBLOCK = 0x20000000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_ACCEPTFILTER = 0x1000 - SO_BINTIME = 0x2000 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LABEL = 0x1009 - SO_LINGER = 0x80 - SO_LISTENINCQLEN = 0x1013 - SO_LISTENQLEN = 0x1012 - SO_LISTENQLIMIT = 0x1011 - SO_NOSIGPIPE = 0x800 - SO_NO_DDP = 0x8000 - SO_NO_OFFLOAD = 0x4000 - SO_OOBINLINE = 0x100 - SO_PEERLABEL = 0x1010 - SO_PROTOCOL = 0x1016 - SO_PROTOTYPE = 0x1016 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_SETFIB = 0x1014 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_TIMESTAMP = 0x400 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SO_USER_COOKIE = 0x1015 - SO_VENDOR = 0x80000000 - TAB0 = 0x0 - TAB3 = 0x4 - TABDLY = 0x4 - TCIFLUSH = 0x1 - TCIOFF = 0x3 - TCIOFLUSH = 0x3 - TCION = 0x4 - TCOFLUSH = 0x2 - TCOOFF = 0x1 - TCOON = 0x2 - TCP_CA_NAME_MAX = 0x10 - TCP_CCALGOOPT = 0x41 - TCP_CONGESTION = 0x40 - TCP_FASTOPEN = 0x401 - TCP_FUNCTION_BLK = 0x2000 - TCP_FUNCTION_NAME_LEN_MAX = 0x20 - TCP_INFO = 0x20 - TCP_KEEPCNT = 0x400 - TCP_KEEPIDLE = 0x100 - TCP_KEEPINIT = 0x80 - TCP_KEEPINTVL = 0x200 - TCP_MAXBURST = 0x4 - TCP_MAXHLEN = 0x3c - TCP_MAXOLEN = 0x28 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_SACK = 0x4 - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0x10 - TCP_MINMSS = 0xd8 - TCP_MSS = 0x218 - TCP_NODELAY = 0x1 - TCP_NOOPT = 0x8 - TCP_NOPUSH = 0x4 - TCP_PCAP_IN = 0x1000 - TCP_PCAP_OUT = 0x800 - TCP_VENDOR = 0x80000000 - TCSAFLUSH = 0x2 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLUSH = 0x80047410 - TIOCGDRAINWAIT = 0x40047456 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGPGRP = 0x40047477 - TIOCGPTN = 0x4004740f - TIOCGSID = 0x40047463 - TIOCGWINSZ = 0x40087468 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGDTRWAIT = 0x4004745a - TIOCMGET = 0x4004746a - TIOCMSDTRWAIT = 0x8004745b - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DCD = 0x40 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x20007471 - TIOCNXCL = 0x2000740e - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x80047470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCPTMASTER = 0x2000741c - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDRAINWAIT = 0x80047457 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSIG = 0x2004745f - TIOCSPGRP = 0x80047476 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x20007465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCTIMESTAMP = 0x40087459 - TIOCUCNTL = 0x80047466 - TOSTOP = 0x400000 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VERASE2 = 0x7 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WCONTINUED = 0x4 - WCOREFLAG = 0x80 - WEXITED = 0x10 - WLINUXCLONE = 0x80000000 - WNOHANG = 0x1 - WNOWAIT = 0x8 - WSTOPPED = 0x2 - WTRAPPED = 0x20 - WUNTRACED = 0x2 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x30) - EADDRNOTAVAIL = syscall.Errno(0x31) - EAFNOSUPPORT = syscall.Errno(0x2f) - EAGAIN = syscall.Errno(0x23) - EALREADY = syscall.Errno(0x25) - EAUTH = syscall.Errno(0x50) - EBADF = syscall.Errno(0x9) - EBADMSG = syscall.Errno(0x59) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x55) - ECAPMODE = syscall.Errno(0x5e) - ECHILD = syscall.Errno(0xa) - ECONNABORTED = syscall.Errno(0x35) - ECONNREFUSED = syscall.Errno(0x3d) - ECONNRESET = syscall.Errno(0x36) - EDEADLK = syscall.Errno(0xb) - EDESTADDRREQ = syscall.Errno(0x27) - EDOM = syscall.Errno(0x21) - EDOOFUS = syscall.Errno(0x58) - EDQUOT = syscall.Errno(0x45) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EFTYPE = syscall.Errno(0x4f) - EHOSTDOWN = syscall.Errno(0x40) - EHOSTUNREACH = syscall.Errno(0x41) - EIDRM = syscall.Errno(0x52) - EILSEQ = syscall.Errno(0x56) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x60) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5a) - ENAMETOOLONG = syscall.Errno(0x3f) - ENEEDAUTH = syscall.Errno(0x51) - ENETDOWN = syscall.Errno(0x32) - ENETRESET = syscall.Errno(0x34) - ENETUNREACH = syscall.Errno(0x33) - ENFILE = syscall.Errno(0x17) - ENOATTR = syscall.Errno(0x57) - ENOBUFS = syscall.Errno(0x37) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x5b) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x53) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCAPABLE = syscall.Errno(0x5d) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTRECOVERABLE = syscall.Errno(0x5f) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x2d) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x54) - EOWNERDEAD = syscall.Errno(0x60) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x2e) - EPIPE = syscall.Errno(0x20) - EPROCLIM = syscall.Errno(0x43) - EPROCUNAVAIL = syscall.Errno(0x4c) - EPROGMISMATCH = syscall.Errno(0x4b) - EPROGUNAVAIL = syscall.Errno(0x4a) - EPROTO = syscall.Errno(0x5c) - EPROTONOSUPPORT = syscall.Errno(0x2b) - EPROTOTYPE = syscall.Errno(0x29) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x47) - EROFS = syscall.Errno(0x1e) - ERPCMISMATCH = syscall.Errno(0x49) - ESHUTDOWN = syscall.Errno(0x3a) - ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x46) - ETIMEDOUT = syscall.Errno(0x3c) - ETOOMANYREFS = syscall.Errno(0x3b) - ETXTBSY = syscall.Errno(0x1a) - EUSERS = syscall.Errno(0x44) - EWOULDBLOCK = syscall.Errno(0x23) - EXDEV = syscall.Errno(0x12) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x14) - SIGCONT = syscall.Signal(0x13) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINFO = syscall.Signal(0x1d) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x17) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGLIBRT = syscall.Signal(0x21) - SIGLWP = syscall.Signal(0x20) - SIGPIPE = syscall.Signal(0xd) - SIGPROF = syscall.Signal(0x1b) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTHR = syscall.Signal(0x20) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x12) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x10) - SIGUSR1 = syscall.Signal(0x1e) - SIGUSR2 = syscall.Signal(0x1f) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errors = [...]string{ - 1: "operation not permitted", - 2: "no such file or directory", - 3: "no such process", - 4: "interrupted system call", - 5: "input/output error", - 6: "device not configured", - 7: "argument list too long", - 8: "exec format error", - 9: "bad file descriptor", - 10: "no child processes", - 11: "resource deadlock avoided", - 12: "cannot allocate memory", - 13: "permission denied", - 14: "bad address", - 15: "block device required", - 16: "device busy", - 17: "file exists", - 18: "cross-device link", - 19: "operation not supported by device", - 20: "not a directory", - 21: "is a directory", - 22: "invalid argument", - 23: "too many open files in system", - 24: "too many open files", - 25: "inappropriate ioctl for device", - 26: "text file busy", - 27: "file too large", - 28: "no space left on device", - 29: "illegal seek", - 30: "read-only file system", - 31: "too many links", - 32: "broken pipe", - 33: "numerical argument out of domain", - 34: "result too large", - 35: "resource temporarily unavailable", - 36: "operation now in progress", - 37: "operation already in progress", - 38: "socket operation on non-socket", - 39: "destination address required", - 40: "message too long", - 41: "protocol wrong type for socket", - 42: "protocol not available", - 43: "protocol not supported", - 44: "socket type not supported", - 45: "operation not supported", - 46: "protocol family not supported", - 47: "address family not supported by protocol family", - 48: "address already in use", - 49: "can't assign requested address", - 50: "network is down", - 51: "network is unreachable", - 52: "network dropped connection on reset", - 53: "software caused connection abort", - 54: "connection reset by peer", - 55: "no buffer space available", - 56: "socket is already connected", - 57: "socket is not connected", - 58: "can't send after socket shutdown", - 59: "too many references: can't splice", - 60: "operation timed out", - 61: "connection refused", - 62: "too many levels of symbolic links", - 63: "file name too long", - 64: "host is down", - 65: "no route to host", - 66: "directory not empty", - 67: "too many processes", - 68: "too many users", - 69: "disc quota exceeded", - 70: "stale NFS file handle", - 71: "too many levels of remote in path", - 72: "RPC struct is bad", - 73: "RPC version wrong", - 74: "RPC prog. not avail", - 75: "program version wrong", - 76: "bad procedure for program", - 77: "no locks available", - 78: "function not implemented", - 79: "inappropriate file type or format", - 80: "authentication error", - 81: "need authenticator", - 82: "identifier removed", - 83: "no message of desired type", - 84: "value too large to be stored in data type", - 85: "operation canceled", - 86: "illegal byte sequence", - 87: "attribute not found", - 88: "programming error", - 89: "bad message", - 90: "multihop attempted", - 91: "link has been severed", - 92: "protocol error", - 93: "capabilities insufficient", - 94: "not permitted in capability mode", - 95: "state not recoverable", - 96: "previous owner died", -} - -// Signal table -var signals = [...]string{ - 1: "hangup", - 2: "interrupt", - 3: "quit", - 4: "illegal instruction", - 5: "trace/BPT trap", - 6: "abort trap", - 7: "EMT trap", - 8: "floating point exception", - 9: "killed", - 10: "bus error", - 11: "segmentation fault", - 12: "bad system call", - 13: "broken pipe", - 14: "alarm clock", - 15: "terminated", - 16: "urgent I/O condition", - 17: "suspended (signal)", - 18: "suspended", - 19: "continued", - 20: "child exited", - 21: "stopped (tty input)", - 22: "stopped (tty output)", - 23: "I/O possible", - 24: "cputime limit exceeded", - 25: "filesize limit exceeded", - 26: "virtual timer expired", - 27: "profiling timer expired", - 28: "window size changes", - 29: "information request", - 30: "user defined signal 1", - 31: "user defined signal 2", - 32: "unknown signal", - 33: "unknown signal", -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go deleted file mode 100644 index ac094f9..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go +++ /dev/null @@ -1,1707 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build amd64,freebsd - -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs -- -m64 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_ARP = 0x23 - AF_ATM = 0x1e - AF_BLUETOOTH = 0x24 - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_CNT = 0x15 - AF_COIP = 0x14 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_E164 = 0x1a - AF_ECMA = 0x8 - AF_HYLINK = 0xf - AF_IEEE80211 = 0x25 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x1c - AF_INET6_SDP = 0x2a - AF_INET_SDP = 0x28 - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x2a - AF_NATM = 0x1d - AF_NETBIOS = 0x6 - AF_NETGRAPH = 0x20 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x11 - AF_SCLUSTER = 0x22 - AF_SIP = 0x18 - AF_SLOW = 0x21 - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VENDOR00 = 0x27 - AF_VENDOR01 = 0x29 - AF_VENDOR02 = 0x2b - AF_VENDOR03 = 0x2d - AF_VENDOR04 = 0x2f - AF_VENDOR05 = 0x31 - AF_VENDOR06 = 0x33 - AF_VENDOR07 = 0x35 - AF_VENDOR08 = 0x37 - AF_VENDOR09 = 0x39 - AF_VENDOR10 = 0x3b - AF_VENDOR11 = 0x3d - AF_VENDOR12 = 0x3f - AF_VENDOR13 = 0x41 - AF_VENDOR14 = 0x43 - AF_VENDOR15 = 0x45 - AF_VENDOR16 = 0x47 - AF_VENDOR17 = 0x49 - AF_VENDOR18 = 0x4b - AF_VENDOR19 = 0x4d - AF_VENDOR20 = 0x4f - AF_VENDOR21 = 0x51 - AF_VENDOR22 = 0x53 - AF_VENDOR23 = 0x55 - AF_VENDOR24 = 0x57 - AF_VENDOR25 = 0x59 - AF_VENDOR26 = 0x5b - AF_VENDOR27 = 0x5d - AF_VENDOR28 = 0x5f - AF_VENDOR29 = 0x61 - AF_VENDOR30 = 0x63 - AF_VENDOR31 = 0x65 - AF_VENDOR32 = 0x67 - AF_VENDOR33 = 0x69 - AF_VENDOR34 = 0x6b - AF_VENDOR35 = 0x6d - AF_VENDOR36 = 0x6f - AF_VENDOR37 = 0x71 - AF_VENDOR38 = 0x73 - AF_VENDOR39 = 0x75 - AF_VENDOR40 = 0x77 - AF_VENDOR41 = 0x79 - AF_VENDOR42 = 0x7b - AF_VENDOR43 = 0x7d - AF_VENDOR44 = 0x7f - AF_VENDOR45 = 0x81 - AF_VENDOR46 = 0x83 - AF_VENDOR47 = 0x85 - ALTWERASE = 0x200 - B0 = 0x0 - B110 = 0x6e - B115200 = 0x1c200 - B1200 = 0x4b0 - B134 = 0x86 - B14400 = 0x3840 - B150 = 0x96 - B1800 = 0x708 - B19200 = 0x4b00 - B200 = 0xc8 - B230400 = 0x38400 - B2400 = 0x960 - B28800 = 0x7080 - B300 = 0x12c - B38400 = 0x9600 - B460800 = 0x70800 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B921600 = 0xe1000 - B9600 = 0x2580 - BIOCFEEDBACK = 0x8004427c - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDIRECTION = 0x40044276 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc0104279 - BIOCGETBUFMODE = 0x4004427d - BIOCGETIF = 0x4020426b - BIOCGETZMAX = 0x4008427f - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044272 - BIOCGRTIMEOUT = 0x4010426e - BIOCGSEESENT = 0x40044276 - BIOCGSTATS = 0x4008426f - BIOCGTSTAMP = 0x40044283 - BIOCIMMEDIATE = 0x80044270 - BIOCLOCK = 0x2000427a - BIOCPROMISC = 0x20004269 - BIOCROTZBUF = 0x40184280 - BIOCSBLEN = 0xc0044266 - BIOCSDIRECTION = 0x80044277 - BIOCSDLT = 0x80044278 - BIOCSETBUFMODE = 0x8004427e - BIOCSETF = 0x80104267 - BIOCSETFNR = 0x80104282 - BIOCSETIF = 0x8020426c - BIOCSETWF = 0x8010427b - BIOCSETZBUF = 0x80184281 - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044273 - BIOCSRTIMEOUT = 0x8010426d - BIOCSSEESENT = 0x80044277 - BIOCSTSTAMP = 0x80044284 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x8 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_BUFMODE_BUFFER = 0x1 - BPF_BUFMODE_ZBUF = 0x2 - BPF_DIV = 0x30 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXBUFSIZE = 0x80000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_OR = 0x40 - BPF_RELEASE = 0x30bb6 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_T_BINTIME = 0x2 - BPF_T_BINTIME_FAST = 0x102 - BPF_T_BINTIME_MONOTONIC = 0x202 - BPF_T_BINTIME_MONOTONIC_FAST = 0x302 - BPF_T_FAST = 0x100 - BPF_T_FLAG_MASK = 0x300 - BPF_T_FORMAT_MASK = 0x3 - BPF_T_MICROTIME = 0x0 - BPF_T_MICROTIME_FAST = 0x100 - BPF_T_MICROTIME_MONOTONIC = 0x200 - BPF_T_MICROTIME_MONOTONIC_FAST = 0x300 - BPF_T_MONOTONIC = 0x200 - BPF_T_MONOTONIC_FAST = 0x300 - BPF_T_NANOTIME = 0x1 - BPF_T_NANOTIME_FAST = 0x101 - BPF_T_NANOTIME_MONOTONIC = 0x201 - BPF_T_NANOTIME_MONOTONIC_FAST = 0x301 - BPF_T_NONE = 0x3 - BPF_T_NORMAL = 0x0 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XOR = 0xa0 - BRKINT = 0x2 - CAP_ACCEPT = 0x200000020000000 - CAP_ACL_CHECK = 0x400000000010000 - CAP_ACL_DELETE = 0x400000000020000 - CAP_ACL_GET = 0x400000000040000 - CAP_ACL_SET = 0x400000000080000 - CAP_ALL0 = 0x20007ffffffffff - CAP_ALL1 = 0x4000000001fffff - CAP_BIND = 0x200000040000000 - CAP_BINDAT = 0x200008000000400 - CAP_CHFLAGSAT = 0x200000000001400 - CAP_CONNECT = 0x200000080000000 - CAP_CONNECTAT = 0x200010000000400 - CAP_CREATE = 0x200000000000040 - CAP_EVENT = 0x400000000000020 - CAP_EXTATTR_DELETE = 0x400000000001000 - CAP_EXTATTR_GET = 0x400000000002000 - CAP_EXTATTR_LIST = 0x400000000004000 - CAP_EXTATTR_SET = 0x400000000008000 - CAP_FCHDIR = 0x200000000000800 - CAP_FCHFLAGS = 0x200000000001000 - CAP_FCHMOD = 0x200000000002000 - CAP_FCHMODAT = 0x200000000002400 - CAP_FCHOWN = 0x200000000004000 - CAP_FCHOWNAT = 0x200000000004400 - CAP_FCNTL = 0x200000000008000 - CAP_FCNTL_ALL = 0x78 - CAP_FCNTL_GETFL = 0x8 - CAP_FCNTL_GETOWN = 0x20 - CAP_FCNTL_SETFL = 0x10 - CAP_FCNTL_SETOWN = 0x40 - CAP_FEXECVE = 0x200000000000080 - CAP_FLOCK = 0x200000000010000 - CAP_FPATHCONF = 0x200000000020000 - CAP_FSCK = 0x200000000040000 - CAP_FSTAT = 0x200000000080000 - CAP_FSTATAT = 0x200000000080400 - CAP_FSTATFS = 0x200000000100000 - CAP_FSYNC = 0x200000000000100 - CAP_FTRUNCATE = 0x200000000000200 - CAP_FUTIMES = 0x200000000200000 - CAP_FUTIMESAT = 0x200000000200400 - CAP_GETPEERNAME = 0x200000100000000 - CAP_GETSOCKNAME = 0x200000200000000 - CAP_GETSOCKOPT = 0x200000400000000 - CAP_IOCTL = 0x400000000000080 - CAP_IOCTLS_ALL = 0x7fffffffffffffff - CAP_KQUEUE = 0x400000000100040 - CAP_KQUEUE_CHANGE = 0x400000000100000 - CAP_KQUEUE_EVENT = 0x400000000000040 - CAP_LINKAT_SOURCE = 0x200020000000400 - CAP_LINKAT_TARGET = 0x200000000400400 - CAP_LISTEN = 0x200000800000000 - CAP_LOOKUP = 0x200000000000400 - CAP_MAC_GET = 0x400000000000001 - CAP_MAC_SET = 0x400000000000002 - CAP_MKDIRAT = 0x200000000800400 - CAP_MKFIFOAT = 0x200000001000400 - CAP_MKNODAT = 0x200000002000400 - CAP_MMAP = 0x200000000000010 - CAP_MMAP_R = 0x20000000000001d - CAP_MMAP_RW = 0x20000000000001f - CAP_MMAP_RWX = 0x20000000000003f - CAP_MMAP_RX = 0x20000000000003d - CAP_MMAP_W = 0x20000000000001e - CAP_MMAP_WX = 0x20000000000003e - CAP_MMAP_X = 0x20000000000003c - CAP_PDGETPID = 0x400000000000200 - CAP_PDKILL = 0x400000000000800 - CAP_PDWAIT = 0x400000000000400 - CAP_PEELOFF = 0x200001000000000 - CAP_POLL_EVENT = 0x400000000000020 - CAP_PREAD = 0x20000000000000d - CAP_PWRITE = 0x20000000000000e - CAP_READ = 0x200000000000001 - CAP_RECV = 0x200000000000001 - CAP_RENAMEAT_SOURCE = 0x200000004000400 - CAP_RENAMEAT_TARGET = 0x200040000000400 - CAP_RIGHTS_VERSION = 0x0 - CAP_RIGHTS_VERSION_00 = 0x0 - CAP_SEEK = 0x20000000000000c - CAP_SEEK_TELL = 0x200000000000004 - CAP_SEM_GETVALUE = 0x400000000000004 - CAP_SEM_POST = 0x400000000000008 - CAP_SEM_WAIT = 0x400000000000010 - CAP_SEND = 0x200000000000002 - CAP_SETSOCKOPT = 0x200002000000000 - CAP_SHUTDOWN = 0x200004000000000 - CAP_SOCK_CLIENT = 0x200007780000003 - CAP_SOCK_SERVER = 0x200007f60000003 - CAP_SYMLINKAT = 0x200000008000400 - CAP_TTYHOOK = 0x400000000000100 - CAP_UNLINKAT = 0x200000010000400 - CAP_UNUSED0_44 = 0x200080000000000 - CAP_UNUSED0_57 = 0x300000000000000 - CAP_UNUSED1_22 = 0x400000000200000 - CAP_UNUSED1_57 = 0x500000000000000 - CAP_WRITE = 0x200000000000002 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLOCK_MONOTONIC = 0x4 - CLOCK_MONOTONIC_FAST = 0xc - CLOCK_MONOTONIC_PRECISE = 0xb - CLOCK_PROCESS_CPUTIME_ID = 0xf - CLOCK_PROF = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_FAST = 0xa - CLOCK_REALTIME_PRECISE = 0x9 - CLOCK_SECOND = 0xd - CLOCK_THREAD_CPUTIME_ID = 0xe - CLOCK_UPTIME = 0x5 - CLOCK_UPTIME_FAST = 0x8 - CLOCK_UPTIME_PRECISE = 0x7 - CLOCK_VIRTUAL = 0x1 - CREAD = 0x800 - CRTSCTS = 0x30000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_MAXNAME = 0x18 - CTL_NET = 0x4 - DLT_A429 = 0xb8 - DLT_A653_ICM = 0xb9 - DLT_AIRONET_HEADER = 0x78 - DLT_AOS = 0xde - DLT_APPLE_IP_OVER_IEEE1394 = 0x8a - DLT_ARCNET = 0x7 - DLT_ARCNET_LINUX = 0x81 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_AX25_KISS = 0xca - DLT_BACNET_MS_TP = 0xa5 - DLT_BLUETOOTH_BREDR_BB = 0xff - DLT_BLUETOOTH_HCI_H4 = 0xbb - DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 - DLT_BLUETOOTH_LE_LL = 0xfb - DLT_BLUETOOTH_LE_LL_WITH_PHDR = 0x100 - DLT_BLUETOOTH_LINUX_MONITOR = 0xfe - DLT_CAN20B = 0xbe - DLT_CAN_SOCKETCAN = 0xe3 - DLT_CHAOS = 0x5 - DLT_CHDLC = 0x68 - DLT_CISCO_IOS = 0x76 - DLT_C_HDLC = 0x68 - DLT_C_HDLC_WITH_DIR = 0xcd - DLT_DBUS = 0xe7 - DLT_DECT = 0xdd - DLT_DOCSIS = 0x8f - DLT_DVB_CI = 0xeb - DLT_ECONET = 0x73 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_EPON = 0x103 - DLT_ERF = 0xc5 - DLT_ERF_ETH = 0xaf - DLT_ERF_POS = 0xb0 - DLT_FC_2 = 0xe0 - DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 - DLT_FDDI = 0xa - DLT_FLEXRAY = 0xd2 - DLT_FRELAY = 0x6b - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_GSMTAP_ABIS = 0xda - DLT_GSMTAP_UM = 0xd9 - DLT_HHDLC = 0x79 - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_IEEE802_15_4 = 0xc3 - DLT_IEEE802_15_4_LINUX = 0xbf - DLT_IEEE802_15_4_NOFCS = 0xe6 - DLT_IEEE802_15_4_NONASK_PHY = 0xd7 - DLT_IEEE802_16_MAC_CPS = 0xbc - DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 - DLT_INFINIBAND = 0xf7 - DLT_IPFILTER = 0x74 - DLT_IPMB = 0xc7 - DLT_IPMB_LINUX = 0xd1 - DLT_IPMI_HPM_2 = 0x104 - DLT_IPNET = 0xe2 - DLT_IPOIB = 0xf2 - DLT_IPV4 = 0xe4 - DLT_IPV6 = 0xe5 - DLT_IP_OVER_FC = 0x7a - DLT_JUNIPER_ATM1 = 0x89 - DLT_JUNIPER_ATM2 = 0x87 - DLT_JUNIPER_ATM_CEMIC = 0xee - DLT_JUNIPER_CHDLC = 0xb5 - DLT_JUNIPER_ES = 0x84 - DLT_JUNIPER_ETHER = 0xb2 - DLT_JUNIPER_FIBRECHANNEL = 0xea - DLT_JUNIPER_FRELAY = 0xb4 - DLT_JUNIPER_GGSN = 0x85 - DLT_JUNIPER_ISM = 0xc2 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - DLT_JUNIPER_PPPOE = 0xa7 - DLT_JUNIPER_PPPOE_ATM = 0xa8 - DLT_JUNIPER_SERVICES = 0x88 - DLT_JUNIPER_SRX_E2E = 0xe9 - DLT_JUNIPER_ST = 0xc8 - DLT_JUNIPER_VP = 0xb7 - DLT_JUNIPER_VS = 0xe8 - DLT_LAPB_WITH_DIR = 0xcf - DLT_LAPD = 0xcb - DLT_LIN = 0xd4 - DLT_LINUX_EVDEV = 0xd8 - DLT_LINUX_IRDA = 0x90 - DLT_LINUX_LAPD = 0xb1 - DLT_LINUX_PPP_WITHDIRECTION = 0xa6 - DLT_LINUX_SLL = 0x71 - DLT_LOOP = 0x6c - DLT_LTALK = 0x72 - DLT_MATCHING_MAX = 0x104 - DLT_MATCHING_MIN = 0x68 - DLT_MFR = 0xb6 - DLT_MOST = 0xd3 - DLT_MPEG_2_TS = 0xf3 - DLT_MPLS = 0xdb - DLT_MTP2 = 0x8c - DLT_MTP2_WITH_PHDR = 0x8b - DLT_MTP3 = 0x8d - DLT_MUX27010 = 0xec - DLT_NETANALYZER = 0xf0 - DLT_NETANALYZER_TRANSPARENT = 0xf1 - DLT_NETLINK = 0xfd - DLT_NFC_LLCP = 0xf5 - DLT_NFLOG = 0xef - DLT_NG40 = 0xf4 - DLT_NULL = 0x0 - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x79 - DLT_PKTAP = 0x102 - DLT_PPI = 0xc0 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0x10 - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PPP_WITH_DIRECTION = 0xa6 - DLT_PRISM_HEADER = 0x77 - DLT_PROFIBUS_DL = 0x101 - DLT_PRONET = 0x4 - DLT_RAIF1 = 0xc6 - DLT_RAW = 0xc - DLT_RIO = 0x7c - DLT_RTAC_SERIAL = 0xfa - DLT_SCCP = 0x8e - DLT_SCTP = 0xf8 - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xf - DLT_STANAG_5066_D_PDU = 0xed - DLT_SUNATM = 0x7b - DLT_SYMANTEC_FIREWALL = 0x63 - DLT_TZSP = 0x80 - DLT_USB = 0xba - DLT_USBPCAP = 0xf9 - DLT_USB_LINUX = 0xbd - DLT_USB_LINUX_MMAPPED = 0xdc - DLT_USER0 = 0x93 - DLT_USER1 = 0x94 - DLT_USER10 = 0x9d - DLT_USER11 = 0x9e - DLT_USER12 = 0x9f - DLT_USER13 = 0xa0 - DLT_USER14 = 0xa1 - DLT_USER15 = 0xa2 - DLT_USER2 = 0x95 - DLT_USER3 = 0x96 - DLT_USER4 = 0x97 - DLT_USER5 = 0x98 - DLT_USER6 = 0x99 - DLT_USER7 = 0x9a - DLT_USER8 = 0x9b - DLT_USER9 = 0x9c - DLT_WIHART = 0xdf - DLT_WIRESHARK_UPPER_PDU = 0xfc - DLT_X2E_SERIAL = 0xd5 - DLT_X2E_XORAYA = 0xd6 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EVFILT_AIO = -0x3 - EVFILT_FS = -0x9 - EVFILT_LIO = -0xa - EVFILT_PROC = -0x5 - EVFILT_PROCDESC = -0x8 - EVFILT_READ = -0x1 - EVFILT_SENDFILE = -0xc - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0xc - EVFILT_TIMER = -0x7 - EVFILT_USER = -0xb - EVFILT_VNODE = -0x4 - EVFILT_WRITE = -0x2 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_DISPATCH = 0x80 - EV_DROP = 0x1000 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_FLAG2 = 0x4000 - EV_FORCEONESHOT = 0x100 - EV_ONESHOT = 0x10 - EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf000 - EXTA = 0x4b00 - EXTATTR_NAMESPACE_EMPTY = 0x0 - EXTATTR_NAMESPACE_SYSTEM = 0x2 - EXTATTR_NAMESPACE_USER = 0x1 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FLUSHO = 0x800000 - F_CANCEL = 0x5 - F_DUP2FD = 0xa - F_DUP2FD_CLOEXEC = 0x12 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x11 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0xb - F_GETOWN = 0x5 - F_OGETLK = 0x7 - F_OK = 0x0 - F_OSETLK = 0x8 - F_OSETLKW = 0x9 - F_RDAHEAD = 0x10 - F_RDLCK = 0x1 - F_READAHEAD = 0xf - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0xc - F_SETLKW = 0xd - F_SETLK_REMOTE = 0xe - F_SETOWN = 0x6 - F_UNLCK = 0x2 - F_UNLCKSYS = 0x4 - F_WRLCK = 0x3 - HUPCL = 0x4000 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFAN_ARRIVAL = 0x0 - IFAN_DEPARTURE = 0x1 - IFF_ALLMULTI = 0x200 - IFF_ALTPHYS = 0x4000 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x218f52 - IFF_CANTCONFIG = 0x10000 - IFF_DEBUG = 0x4 - IFF_DRV_OACTIVE = 0x400 - IFF_DRV_RUNNING = 0x40 - IFF_DYING = 0x200000 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MONITOR = 0x40000 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PPROMISC = 0x20000 - IFF_PROMISC = 0x100 - IFF_RENAMING = 0x400000 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_STATICARP = 0x80000 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_BRIDGE = 0xd1 - IFT_CARP = 0xf8 - IFT_IEEE1394 = 0x90 - IFT_INFINIBAND = 0xc7 - IFT_L2VLAN = 0x87 - IFT_L3IPVLAN = 0x88 - IFT_PPP = 0x17 - IFT_PROPVIRTUAL = 0x35 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLASSD_HOST = 0xfffffff - IN_CLASSD_NET = 0xf0000000 - IN_CLASSD_NSHIFT = 0x1c - IN_LOOPBACKNET = 0x7f - IN_RFC3021_MASK = 0xfffffffe - IPPROTO_3PC = 0x22 - IPPROTO_ADFS = 0x44 - IPPROTO_AH = 0x33 - IPPROTO_AHIP = 0x3d - IPPROTO_APES = 0x63 - IPPROTO_ARGUS = 0xd - IPPROTO_AX25 = 0x5d - IPPROTO_BHA = 0x31 - IPPROTO_BLT = 0x1e - IPPROTO_BRSATMON = 0x4c - IPPROTO_CARP = 0x70 - IPPROTO_CFTP = 0x3e - IPPROTO_CHAOS = 0x10 - IPPROTO_CMTP = 0x26 - IPPROTO_CPHB = 0x49 - IPPROTO_CPNX = 0x48 - IPPROTO_DDP = 0x25 - IPPROTO_DGP = 0x56 - IPPROTO_DIVERT = 0x102 - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_EMCON = 0xe - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GMTP = 0x64 - IPPROTO_GRE = 0x2f - IPPROTO_HELLO = 0x3f - IPPROTO_HIP = 0x8b - IPPROTO_HMP = 0x14 - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IDPR = 0x23 - IPPROTO_IDRP = 0x2d - IPPROTO_IGMP = 0x2 - IPPROTO_IGP = 0x55 - IPPROTO_IGRP = 0x58 - IPPROTO_IL = 0x28 - IPPROTO_INLSP = 0x34 - IPPROTO_INP = 0x20 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPCV = 0x47 - IPPROTO_IPEIP = 0x5e - IPPROTO_IPIP = 0x4 - IPPROTO_IPPC = 0x43 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_IRTP = 0x1c - IPPROTO_KRYPTOLAN = 0x41 - IPPROTO_LARP = 0x5b - IPPROTO_LEAF1 = 0x19 - IPPROTO_LEAF2 = 0x1a - IPPROTO_MAX = 0x100 - IPPROTO_MEAS = 0x13 - IPPROTO_MH = 0x87 - IPPROTO_MHRP = 0x30 - IPPROTO_MICP = 0x5f - IPPROTO_MOBILE = 0x37 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_MUX = 0x12 - IPPROTO_ND = 0x4d - IPPROTO_NHRP = 0x36 - IPPROTO_NONE = 0x3b - IPPROTO_NSP = 0x1f - IPPROTO_NVPII = 0xb - IPPROTO_OLD_DIVERT = 0xfe - IPPROTO_OSPFIGP = 0x59 - IPPROTO_PFSYNC = 0xf0 - IPPROTO_PGM = 0x71 - IPPROTO_PIGP = 0x9 - IPPROTO_PIM = 0x67 - IPPROTO_PRM = 0x15 - IPPROTO_PUP = 0xc - IPPROTO_PVP = 0x4b - IPPROTO_RAW = 0xff - IPPROTO_RCCMON = 0xa - IPPROTO_RDP = 0x1b - IPPROTO_RESERVED_253 = 0xfd - IPPROTO_RESERVED_254 = 0xfe - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_RVD = 0x42 - IPPROTO_SATEXPAK = 0x40 - IPPROTO_SATMON = 0x45 - IPPROTO_SCCSP = 0x60 - IPPROTO_SCTP = 0x84 - IPPROTO_SDRP = 0x2a - IPPROTO_SEND = 0x103 - IPPROTO_SEP = 0x21 - IPPROTO_SHIM6 = 0x8c - IPPROTO_SKIP = 0x39 - IPPROTO_SPACER = 0x7fff - IPPROTO_SRPC = 0x5a - IPPROTO_ST = 0x7 - IPPROTO_SVMTP = 0x52 - IPPROTO_SWIPE = 0x35 - IPPROTO_TCF = 0x57 - IPPROTO_TCP = 0x6 - IPPROTO_TLSP = 0x38 - IPPROTO_TP = 0x1d - IPPROTO_TPXX = 0x27 - IPPROTO_TRUNK1 = 0x17 - IPPROTO_TRUNK2 = 0x18 - IPPROTO_TTP = 0x54 - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPPROTO_VINES = 0x53 - IPPROTO_VISA = 0x46 - IPPROTO_VMTP = 0x51 - IPPROTO_WBEXPAK = 0x4f - IPPROTO_WBMON = 0x4e - IPPROTO_WSN = 0x4a - IPPROTO_XNET = 0xf - IPPROTO_XTP = 0x24 - IPV6_AUTOFLOWLABEL = 0x3b - IPV6_BINDANY = 0x40 - IPV6_BINDMULTI = 0x41 - IPV6_BINDV6ONLY = 0x1b - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_FLOWID = 0x43 - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FLOWTYPE = 0x44 - IPV6_FRAGTTL = 0x78 - IPV6_FW_ADD = 0x1e - IPV6_FW_DEL = 0x1f - IPV6_FW_FLUSH = 0x20 - IPV6_FW_GET = 0x22 - IPV6_FW_ZERO = 0x21 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_IPSEC_POLICY = 0x1c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXOPTHDR = 0x800 - IPV6_MAXPACKET = 0xffff - IPV6_MAX_GROUP_SRC_FILTER = 0x200 - IPV6_MAX_MEMBERSHIPS = 0xfff - IPV6_MAX_SOCK_SRC_FILTER = 0x80 - IPV6_MIN_MEMBERSHIPS = 0x1f - IPV6_MMTU = 0x500 - IPV6_MSFILTER = 0x4a - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_PATHMTU = 0x2c - IPV6_PKTINFO = 0x2e - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_PREFER_TEMPADDR = 0x3f - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVFLOWID = 0x46 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRSSBUCKETID = 0x47 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - IPV6_RSSBUCKETID = 0x45 - IPV6_RSS_LISTEN_BUCKET = 0x42 - IPV6_RTHDR = 0x33 - IPV6_RTHDRDSTOPTS = 0x23 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_SOCKOPT_RESERVED1 = 0x3 - IPV6_TCLASS = 0x3d - IPV6_UNICAST_HOPS = 0x4 - IPV6_USE_MIN_MTU = 0x2a - IPV6_V6ONLY = 0x1b - IPV6_VERSION = 0x60 - IPV6_VERSION_MASK = 0xf0 - IP_ADD_MEMBERSHIP = 0xc - IP_ADD_SOURCE_MEMBERSHIP = 0x46 - IP_BINDANY = 0x18 - IP_BINDMULTI = 0x19 - IP_BLOCK_SOURCE = 0x48 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DONTFRAG = 0x43 - IP_DROP_MEMBERSHIP = 0xd - IP_DROP_SOURCE_MEMBERSHIP = 0x47 - IP_DUMMYNET3 = 0x31 - IP_DUMMYNET_CONFIGURE = 0x3c - IP_DUMMYNET_DEL = 0x3d - IP_DUMMYNET_FLUSH = 0x3e - IP_DUMMYNET_GET = 0x40 - IP_FLOWID = 0x5a - IP_FLOWTYPE = 0x5b - IP_FW3 = 0x30 - IP_FW_ADD = 0x32 - IP_FW_DEL = 0x33 - IP_FW_FLUSH = 0x34 - IP_FW_GET = 0x36 - IP_FW_NAT_CFG = 0x38 - IP_FW_NAT_DEL = 0x39 - IP_FW_NAT_GET_CONFIG = 0x3a - IP_FW_NAT_GET_LOG = 0x3b - IP_FW_RESETLOG = 0x37 - IP_FW_TABLE_ADD = 0x28 - IP_FW_TABLE_DEL = 0x29 - IP_FW_TABLE_FLUSH = 0x2a - IP_FW_TABLE_GETSIZE = 0x2b - IP_FW_TABLE_LIST = 0x2c - IP_FW_ZERO = 0x35 - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x15 - IP_MAXPACKET = 0xffff - IP_MAX_GROUP_SRC_FILTER = 0x200 - IP_MAX_MEMBERSHIPS = 0xfff - IP_MAX_SOCK_MUTE_FILTER = 0x80 - IP_MAX_SOCK_SRC_FILTER = 0x80 - IP_MAX_SOURCE_FILTER = 0x400 - IP_MF = 0x2000 - IP_MINTTL = 0x42 - IP_MIN_MEMBERSHIPS = 0x1f - IP_MSFILTER = 0x4a - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_MULTICAST_VIF = 0xe - IP_OFFMASK = 0x1fff - IP_ONESBCAST = 0x17 - IP_OPTIONS = 0x1 - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVFLOWID = 0x5d - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVRETOPTS = 0x6 - IP_RECVRSSBUCKETID = 0x5e - IP_RECVTOS = 0x44 - IP_RECVTTL = 0x41 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_RSSBUCKETID = 0x5c - IP_RSS_LISTEN_BUCKET = 0x1a - IP_RSVP_OFF = 0x10 - IP_RSVP_ON = 0xf - IP_RSVP_VIF_OFF = 0x12 - IP_RSVP_VIF_ON = 0x11 - IP_SENDSRCADDR = 0x7 - IP_TOS = 0x3 - IP_TTL = 0x4 - IP_UNBLOCK_SOURCE = 0x49 - ISIG = 0x80 - ISTRIP = 0x20 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_AUTOSYNC = 0x7 - MADV_CORE = 0x9 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x5 - MADV_NOCORE = 0x8 - MADV_NORMAL = 0x0 - MADV_NOSYNC = 0x6 - MADV_PROTECT = 0xa - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_WILLNEED = 0x3 - MAP_32BIT = 0x80000 - MAP_ALIGNED_SUPER = 0x1000000 - MAP_ALIGNMENT_MASK = -0x1000000 - MAP_ALIGNMENT_SHIFT = 0x18 - MAP_ANON = 0x1000 - MAP_ANONYMOUS = 0x1000 - MAP_COPY = 0x2 - MAP_EXCL = 0x4000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_HASSEMAPHORE = 0x200 - MAP_NOCORE = 0x20000 - MAP_NOSYNC = 0x800 - MAP_PREFAULT_READ = 0x40000 - MAP_PRIVATE = 0x2 - MAP_RESERVED0020 = 0x20 - MAP_RESERVED0040 = 0x40 - MAP_RESERVED0080 = 0x80 - MAP_RESERVED0100 = 0x100 - MAP_SHARED = 0x1 - MAP_STACK = 0x400 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MSG_CMSG_CLOEXEC = 0x40000 - MSG_COMPAT = 0x8000 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOF = 0x100 - MSG_EOR = 0x8 - MSG_NBIO = 0x4000 - MSG_NOSIGNAL = 0x20000 - MSG_NOTIFICATION = 0x2000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MSG_WAITFORONE = 0x80000 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x2 - MS_SYNC = 0x0 - NAME_MAX = 0xff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x3 - NET_RT_IFLISTL = 0x5 - NET_RT_IFMALIST = 0x4 - NOFLSH = 0x80000000 - NOKERNINFO = 0x2000000 - NOTE_ATTRIB = 0x8 - NOTE_CHILD = 0x4 - NOTE_CLOSE = 0x100 - NOTE_CLOSE_WRITE = 0x200 - NOTE_DELETE = 0x1 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXTEND = 0x4 - NOTE_FFAND = 0x40000000 - NOTE_FFCOPY = 0xc0000000 - NOTE_FFCTRLMASK = 0xc0000000 - NOTE_FFLAGSMASK = 0xffffff - NOTE_FFNOP = 0x0 - NOTE_FFOR = 0x80000000 - NOTE_FILE_POLL = 0x2 - NOTE_FORK = 0x40000000 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_MSECONDS = 0x2 - NOTE_NSECONDS = 0x8 - NOTE_OPEN = 0x80 - NOTE_PCTRLMASK = 0xf0000000 - NOTE_PDATAMASK = 0xfffff - NOTE_READ = 0x400 - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_SECONDS = 0x1 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_TRIGGER = 0x1000000 - NOTE_USECONDS = 0x4 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - OXTABS = 0x4 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x100000 - O_CREAT = 0x200 - O_DIRECT = 0x10000 - O_DIRECTORY = 0x20000 - O_EXCL = 0x800 - O_EXEC = 0x40000 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_TTY_INIT = 0x80000 - O_VERIFY = 0x200000 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - RLIMIT_AS = 0xa - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_MEMLOCK = 0x6 - RLIMIT_NOFILE = 0x8 - RLIMIT_NPROC = 0x7 - RLIMIT_RSS = 0x5 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0x7fffffffffffffff - RTAX_AUTHOR = 0x6 - RTAX_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x8 - RTAX_NETMASK = 0x2 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_FIXEDMTU = 0x80000 - RTF_FMASK = 0x1004d808 - RTF_GATEWAY = 0x2 - RTF_GWFLAG_COMPAT = 0x80000000 - RTF_HOST = 0x4 - RTF_LLDATA = 0x400 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MODIFIED = 0x20 - RTF_MULTICAST = 0x800000 - RTF_PINNED = 0x100000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x40000 - RTF_REJECT = 0x8 - RTF_RNH_LOCKED = 0x40000000 - RTF_STATIC = 0x800 - RTF_STICKY = 0x10000000 - RTF_UP = 0x1 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_DELMADDR = 0x10 - RTM_GET = 0x4 - RTM_IEEE80211 = 0x12 - RTM_IFANNOUNCE = 0x11 - RTM_IFINFO = 0xe - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_NEWMADDR = 0xf - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 - RTM_VERSION = 0x5 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RTV_WEIGHT = 0x100 - RT_ALL_FIBS = -0x1 - RT_BLACKHOLE = 0x40 - RT_CACHING_CONTEXT = 0x1 - RT_DEFAULT_FIB = 0x0 - RT_HAS_GW = 0x80 - RT_HAS_HEADER = 0x10 - RT_HAS_HEADER_BIT = 0x4 - RT_L2_ME = 0x4 - RT_L2_ME_BIT = 0x2 - RT_LLE_CACHE = 0x100 - RT_MAY_LOOP = 0x8 - RT_MAY_LOOP_BIT = 0x3 - RT_NORTREF = 0x2 - RT_REJECT = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_BINTIME = 0x4 - SCM_CREDS = 0x3 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x2 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCAIFGROUP = 0x80286987 - SIOCATMARK = 0x40047307 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFGROUP = 0x80286989 - SIOCDIFPHYADDR = 0x80206949 - SIOCGDRVSPEC = 0xc028697b - SIOCGETSGCNT = 0xc0207210 - SIOCGETVIFCNT = 0xc028720f - SIOCGHIWAT = 0x40047301 - SIOCGI2C = 0xc020693d - SIOCGIFADDR = 0xc0206921 - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCAP = 0xc020691f - SIOCGIFCONF = 0xc0106924 - SIOCGIFDESCR = 0xc020692a - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFIB = 0xc020695c - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFGENERIC = 0xc020693a - SIOCGIFGMEMB = 0xc028698a - SIOCGIFGROUP = 0xc0286988 - SIOCGIFINDEX = 0xc0206920 - SIOCGIFMAC = 0xc0206926 - SIOCGIFMEDIA = 0xc0306938 - SIOCGIFMETRIC = 0xc0206917 - SIOCGIFMTU = 0xc0206933 - SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPDSTADDR = 0xc0206948 - SIOCGIFPHYS = 0xc0206935 - SIOCGIFPSRCADDR = 0xc0206947 - SIOCGIFSTATUS = 0xc331693b - SIOCGIFXMEDIA = 0xc030698b - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCGPRIVATE_0 = 0xc0206950 - SIOCGPRIVATE_1 = 0xc0206951 - SIOCGTUNFIB = 0xc020695e - SIOCIFCREATE = 0xc020697a - SIOCIFCREATE2 = 0xc020697c - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc0106978 - SIOCSDRVSPEC = 0x8028697b - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8020690c - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFCAP = 0x8020691e - SIOCSIFDESCR = 0x80206929 - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFIB = 0x8020695d - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGENERIC = 0x80206939 - SIOCSIFLLADDR = 0x8020693c - SIOCSIFMAC = 0x80206927 - SIOCSIFMEDIA = 0xc0206937 - SIOCSIFMETRIC = 0x80206918 - SIOCSIFMTU = 0x80206934 - SIOCSIFNAME = 0x80206928 - SIOCSIFNETMASK = 0x80206916 - SIOCSIFPHYADDR = 0x80406946 - SIOCSIFPHYS = 0x80206936 - SIOCSIFRVNET = 0xc020695b - SIOCSIFVNET = 0xc020695a - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SIOCSTUNFIB = 0x8020695f - SOCK_CLOEXEC = 0x10000000 - SOCK_DGRAM = 0x2 - SOCK_MAXADDRLEN = 0xff - SOCK_NONBLOCK = 0x20000000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_ACCEPTFILTER = 0x1000 - SO_BINTIME = 0x2000 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LABEL = 0x1009 - SO_LINGER = 0x80 - SO_LISTENINCQLEN = 0x1013 - SO_LISTENQLEN = 0x1012 - SO_LISTENQLIMIT = 0x1011 - SO_NOSIGPIPE = 0x800 - SO_NO_DDP = 0x8000 - SO_NO_OFFLOAD = 0x4000 - SO_OOBINLINE = 0x100 - SO_PEERLABEL = 0x1010 - SO_PROTOCOL = 0x1016 - SO_PROTOTYPE = 0x1016 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_SETFIB = 0x1014 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_TIMESTAMP = 0x400 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SO_USER_COOKIE = 0x1015 - SO_VENDOR = 0x80000000 - TAB0 = 0x0 - TAB3 = 0x4 - TABDLY = 0x4 - TCIFLUSH = 0x1 - TCIOFF = 0x3 - TCIOFLUSH = 0x3 - TCION = 0x4 - TCOFLUSH = 0x2 - TCOOFF = 0x1 - TCOON = 0x2 - TCP_CA_NAME_MAX = 0x10 - TCP_CCALGOOPT = 0x41 - TCP_CONGESTION = 0x40 - TCP_FASTOPEN = 0x401 - TCP_FUNCTION_BLK = 0x2000 - TCP_FUNCTION_NAME_LEN_MAX = 0x20 - TCP_INFO = 0x20 - TCP_KEEPCNT = 0x400 - TCP_KEEPIDLE = 0x100 - TCP_KEEPINIT = 0x80 - TCP_KEEPINTVL = 0x200 - TCP_MAXBURST = 0x4 - TCP_MAXHLEN = 0x3c - TCP_MAXOLEN = 0x28 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_SACK = 0x4 - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0x10 - TCP_MINMSS = 0xd8 - TCP_MSS = 0x218 - TCP_NODELAY = 0x1 - TCP_NOOPT = 0x8 - TCP_NOPUSH = 0x4 - TCP_PCAP_IN = 0x1000 - TCP_PCAP_OUT = 0x800 - TCP_VENDOR = 0x80000000 - TCSAFLUSH = 0x2 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLUSH = 0x80047410 - TIOCGDRAINWAIT = 0x40047456 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGPGRP = 0x40047477 - TIOCGPTN = 0x4004740f - TIOCGSID = 0x40047463 - TIOCGWINSZ = 0x40087468 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGDTRWAIT = 0x4004745a - TIOCMGET = 0x4004746a - TIOCMSDTRWAIT = 0x8004745b - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DCD = 0x40 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x20007471 - TIOCNXCL = 0x2000740e - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x80047470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCPTMASTER = 0x2000741c - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDRAINWAIT = 0x80047457 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSIG = 0x2004745f - TIOCSPGRP = 0x80047476 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x20007465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCTIMESTAMP = 0x40107459 - TIOCUCNTL = 0x80047466 - TOSTOP = 0x400000 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VERASE2 = 0x7 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WCONTINUED = 0x4 - WCOREFLAG = 0x80 - WEXITED = 0x10 - WLINUXCLONE = 0x80000000 - WNOHANG = 0x1 - WNOWAIT = 0x8 - WSTOPPED = 0x2 - WTRAPPED = 0x20 - WUNTRACED = 0x2 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x30) - EADDRNOTAVAIL = syscall.Errno(0x31) - EAFNOSUPPORT = syscall.Errno(0x2f) - EAGAIN = syscall.Errno(0x23) - EALREADY = syscall.Errno(0x25) - EAUTH = syscall.Errno(0x50) - EBADF = syscall.Errno(0x9) - EBADMSG = syscall.Errno(0x59) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x55) - ECAPMODE = syscall.Errno(0x5e) - ECHILD = syscall.Errno(0xa) - ECONNABORTED = syscall.Errno(0x35) - ECONNREFUSED = syscall.Errno(0x3d) - ECONNRESET = syscall.Errno(0x36) - EDEADLK = syscall.Errno(0xb) - EDESTADDRREQ = syscall.Errno(0x27) - EDOM = syscall.Errno(0x21) - EDOOFUS = syscall.Errno(0x58) - EDQUOT = syscall.Errno(0x45) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EFTYPE = syscall.Errno(0x4f) - EHOSTDOWN = syscall.Errno(0x40) - EHOSTUNREACH = syscall.Errno(0x41) - EIDRM = syscall.Errno(0x52) - EILSEQ = syscall.Errno(0x56) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x60) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5a) - ENAMETOOLONG = syscall.Errno(0x3f) - ENEEDAUTH = syscall.Errno(0x51) - ENETDOWN = syscall.Errno(0x32) - ENETRESET = syscall.Errno(0x34) - ENETUNREACH = syscall.Errno(0x33) - ENFILE = syscall.Errno(0x17) - ENOATTR = syscall.Errno(0x57) - ENOBUFS = syscall.Errno(0x37) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x5b) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x53) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCAPABLE = syscall.Errno(0x5d) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTRECOVERABLE = syscall.Errno(0x5f) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x2d) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x54) - EOWNERDEAD = syscall.Errno(0x60) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x2e) - EPIPE = syscall.Errno(0x20) - EPROCLIM = syscall.Errno(0x43) - EPROCUNAVAIL = syscall.Errno(0x4c) - EPROGMISMATCH = syscall.Errno(0x4b) - EPROGUNAVAIL = syscall.Errno(0x4a) - EPROTO = syscall.Errno(0x5c) - EPROTONOSUPPORT = syscall.Errno(0x2b) - EPROTOTYPE = syscall.Errno(0x29) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x47) - EROFS = syscall.Errno(0x1e) - ERPCMISMATCH = syscall.Errno(0x49) - ESHUTDOWN = syscall.Errno(0x3a) - ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x46) - ETIMEDOUT = syscall.Errno(0x3c) - ETOOMANYREFS = syscall.Errno(0x3b) - ETXTBSY = syscall.Errno(0x1a) - EUSERS = syscall.Errno(0x44) - EWOULDBLOCK = syscall.Errno(0x23) - EXDEV = syscall.Errno(0x12) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x14) - SIGCONT = syscall.Signal(0x13) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINFO = syscall.Signal(0x1d) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x17) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGLIBRT = syscall.Signal(0x21) - SIGLWP = syscall.Signal(0x20) - SIGPIPE = syscall.Signal(0xd) - SIGPROF = syscall.Signal(0x1b) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTHR = syscall.Signal(0x20) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x12) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x10) - SIGUSR1 = syscall.Signal(0x1e) - SIGUSR2 = syscall.Signal(0x1f) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errors = [...]string{ - 1: "operation not permitted", - 2: "no such file or directory", - 3: "no such process", - 4: "interrupted system call", - 5: "input/output error", - 6: "device not configured", - 7: "argument list too long", - 8: "exec format error", - 9: "bad file descriptor", - 10: "no child processes", - 11: "resource deadlock avoided", - 12: "cannot allocate memory", - 13: "permission denied", - 14: "bad address", - 15: "block device required", - 16: "device busy", - 17: "file exists", - 18: "cross-device link", - 19: "operation not supported by device", - 20: "not a directory", - 21: "is a directory", - 22: "invalid argument", - 23: "too many open files in system", - 24: "too many open files", - 25: "inappropriate ioctl for device", - 26: "text file busy", - 27: "file too large", - 28: "no space left on device", - 29: "illegal seek", - 30: "read-only file system", - 31: "too many links", - 32: "broken pipe", - 33: "numerical argument out of domain", - 34: "result too large", - 35: "resource temporarily unavailable", - 36: "operation now in progress", - 37: "operation already in progress", - 38: "socket operation on non-socket", - 39: "destination address required", - 40: "message too long", - 41: "protocol wrong type for socket", - 42: "protocol not available", - 43: "protocol not supported", - 44: "socket type not supported", - 45: "operation not supported", - 46: "protocol family not supported", - 47: "address family not supported by protocol family", - 48: "address already in use", - 49: "can't assign requested address", - 50: "network is down", - 51: "network is unreachable", - 52: "network dropped connection on reset", - 53: "software caused connection abort", - 54: "connection reset by peer", - 55: "no buffer space available", - 56: "socket is already connected", - 57: "socket is not connected", - 58: "can't send after socket shutdown", - 59: "too many references: can't splice", - 60: "operation timed out", - 61: "connection refused", - 62: "too many levels of symbolic links", - 63: "file name too long", - 64: "host is down", - 65: "no route to host", - 66: "directory not empty", - 67: "too many processes", - 68: "too many users", - 69: "disc quota exceeded", - 70: "stale NFS file handle", - 71: "too many levels of remote in path", - 72: "RPC struct is bad", - 73: "RPC version wrong", - 74: "RPC prog. not avail", - 75: "program version wrong", - 76: "bad procedure for program", - 77: "no locks available", - 78: "function not implemented", - 79: "inappropriate file type or format", - 80: "authentication error", - 81: "need authenticator", - 82: "identifier removed", - 83: "no message of desired type", - 84: "value too large to be stored in data type", - 85: "operation canceled", - 86: "illegal byte sequence", - 87: "attribute not found", - 88: "programming error", - 89: "bad message", - 90: "multihop attempted", - 91: "link has been severed", - 92: "protocol error", - 93: "capabilities insufficient", - 94: "not permitted in capability mode", - 95: "state not recoverable", - 96: "previous owner died", -} - -// Signal table -var signals = [...]string{ - 1: "hangup", - 2: "interrupt", - 3: "quit", - 4: "illegal instruction", - 5: "trace/BPT trap", - 6: "abort trap", - 7: "EMT trap", - 8: "floating point exception", - 9: "killed", - 10: "bus error", - 11: "segmentation fault", - 12: "bad system call", - 13: "broken pipe", - 14: "alarm clock", - 15: "terminated", - 16: "urgent I/O condition", - 17: "suspended (signal)", - 18: "suspended", - 19: "continued", - 20: "child exited", - 21: "stopped (tty input)", - 22: "stopped (tty output)", - 23: "I/O possible", - 24: "cputime limit exceeded", - 25: "filesize limit exceeded", - 26: "virtual timer expired", - 27: "profiling timer expired", - 28: "window size changes", - 29: "information request", - 30: "user defined signal 1", - 31: "user defined signal 2", - 32: "unknown signal", - 33: "unknown signal", -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go deleted file mode 100644 index c5c6f13..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go +++ /dev/null @@ -1,1715 +0,0 @@ -// mkerrors.sh -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build arm,freebsd - -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs -- _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_ARP = 0x23 - AF_ATM = 0x1e - AF_BLUETOOTH = 0x24 - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_CNT = 0x15 - AF_COIP = 0x14 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_E164 = 0x1a - AF_ECMA = 0x8 - AF_HYLINK = 0xf - AF_IEEE80211 = 0x25 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x1c - AF_INET6_SDP = 0x2a - AF_INET_SDP = 0x28 - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x2a - AF_NATM = 0x1d - AF_NETBIOS = 0x6 - AF_NETGRAPH = 0x20 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x11 - AF_SCLUSTER = 0x22 - AF_SIP = 0x18 - AF_SLOW = 0x21 - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VENDOR00 = 0x27 - AF_VENDOR01 = 0x29 - AF_VENDOR02 = 0x2b - AF_VENDOR03 = 0x2d - AF_VENDOR04 = 0x2f - AF_VENDOR05 = 0x31 - AF_VENDOR06 = 0x33 - AF_VENDOR07 = 0x35 - AF_VENDOR08 = 0x37 - AF_VENDOR09 = 0x39 - AF_VENDOR10 = 0x3b - AF_VENDOR11 = 0x3d - AF_VENDOR12 = 0x3f - AF_VENDOR13 = 0x41 - AF_VENDOR14 = 0x43 - AF_VENDOR15 = 0x45 - AF_VENDOR16 = 0x47 - AF_VENDOR17 = 0x49 - AF_VENDOR18 = 0x4b - AF_VENDOR19 = 0x4d - AF_VENDOR20 = 0x4f - AF_VENDOR21 = 0x51 - AF_VENDOR22 = 0x53 - AF_VENDOR23 = 0x55 - AF_VENDOR24 = 0x57 - AF_VENDOR25 = 0x59 - AF_VENDOR26 = 0x5b - AF_VENDOR27 = 0x5d - AF_VENDOR28 = 0x5f - AF_VENDOR29 = 0x61 - AF_VENDOR30 = 0x63 - AF_VENDOR31 = 0x65 - AF_VENDOR32 = 0x67 - AF_VENDOR33 = 0x69 - AF_VENDOR34 = 0x6b - AF_VENDOR35 = 0x6d - AF_VENDOR36 = 0x6f - AF_VENDOR37 = 0x71 - AF_VENDOR38 = 0x73 - AF_VENDOR39 = 0x75 - AF_VENDOR40 = 0x77 - AF_VENDOR41 = 0x79 - AF_VENDOR42 = 0x7b - AF_VENDOR43 = 0x7d - AF_VENDOR44 = 0x7f - AF_VENDOR45 = 0x81 - AF_VENDOR46 = 0x83 - AF_VENDOR47 = 0x85 - ALTWERASE = 0x200 - B0 = 0x0 - B110 = 0x6e - B115200 = 0x1c200 - B1200 = 0x4b0 - B134 = 0x86 - B14400 = 0x3840 - B150 = 0x96 - B1800 = 0x708 - B19200 = 0x4b00 - B200 = 0xc8 - B230400 = 0x38400 - B2400 = 0x960 - B28800 = 0x7080 - B300 = 0x12c - B38400 = 0x9600 - B460800 = 0x70800 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B921600 = 0xe1000 - B9600 = 0x2580 - BIOCFEEDBACK = 0x8004427c - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDIRECTION = 0x40044276 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc0084279 - BIOCGETBUFMODE = 0x4004427d - BIOCGETIF = 0x4020426b - BIOCGETZMAX = 0x4004427f - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044272 - BIOCGRTIMEOUT = 0x4010426e - BIOCGSEESENT = 0x40044276 - BIOCGSTATS = 0x4008426f - BIOCGTSTAMP = 0x40044283 - BIOCIMMEDIATE = 0x80044270 - BIOCLOCK = 0x2000427a - BIOCPROMISC = 0x20004269 - BIOCROTZBUF = 0x400c4280 - BIOCSBLEN = 0xc0044266 - BIOCSDIRECTION = 0x80044277 - BIOCSDLT = 0x80044278 - BIOCSETBUFMODE = 0x8004427e - BIOCSETF = 0x80084267 - BIOCSETFNR = 0x80084282 - BIOCSETIF = 0x8020426c - BIOCSETWF = 0x8008427b - BIOCSETZBUF = 0x800c4281 - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044273 - BIOCSRTIMEOUT = 0x8010426d - BIOCSSEESENT = 0x80044277 - BIOCSTSTAMP = 0x80044284 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_BUFMODE_BUFFER = 0x1 - BPF_BUFMODE_ZBUF = 0x2 - BPF_DIV = 0x30 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXBUFSIZE = 0x80000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_OR = 0x40 - BPF_RELEASE = 0x30bb6 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_T_BINTIME = 0x2 - BPF_T_BINTIME_FAST = 0x102 - BPF_T_BINTIME_MONOTONIC = 0x202 - BPF_T_BINTIME_MONOTONIC_FAST = 0x302 - BPF_T_FAST = 0x100 - BPF_T_FLAG_MASK = 0x300 - BPF_T_FORMAT_MASK = 0x3 - BPF_T_MICROTIME = 0x0 - BPF_T_MICROTIME_FAST = 0x100 - BPF_T_MICROTIME_MONOTONIC = 0x200 - BPF_T_MICROTIME_MONOTONIC_FAST = 0x300 - BPF_T_MONOTONIC = 0x200 - BPF_T_MONOTONIC_FAST = 0x300 - BPF_T_NANOTIME = 0x1 - BPF_T_NANOTIME_FAST = 0x101 - BPF_T_NANOTIME_MONOTONIC = 0x201 - BPF_T_NANOTIME_MONOTONIC_FAST = 0x301 - BPF_T_NONE = 0x3 - BPF_T_NORMAL = 0x0 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XOR = 0xa0 - BRKINT = 0x2 - CAP_ACCEPT = 0x200000020000000 - CAP_ACL_CHECK = 0x400000000010000 - CAP_ACL_DELETE = 0x400000000020000 - CAP_ACL_GET = 0x400000000040000 - CAP_ACL_SET = 0x400000000080000 - CAP_ALL0 = 0x20007ffffffffff - CAP_ALL1 = 0x4000000001fffff - CAP_BIND = 0x200000040000000 - CAP_BINDAT = 0x200008000000400 - CAP_CHFLAGSAT = 0x200000000001400 - CAP_CONNECT = 0x200000080000000 - CAP_CONNECTAT = 0x200010000000400 - CAP_CREATE = 0x200000000000040 - CAP_EVENT = 0x400000000000020 - CAP_EXTATTR_DELETE = 0x400000000001000 - CAP_EXTATTR_GET = 0x400000000002000 - CAP_EXTATTR_LIST = 0x400000000004000 - CAP_EXTATTR_SET = 0x400000000008000 - CAP_FCHDIR = 0x200000000000800 - CAP_FCHFLAGS = 0x200000000001000 - CAP_FCHMOD = 0x200000000002000 - CAP_FCHMODAT = 0x200000000002400 - CAP_FCHOWN = 0x200000000004000 - CAP_FCHOWNAT = 0x200000000004400 - CAP_FCNTL = 0x200000000008000 - CAP_FCNTL_ALL = 0x78 - CAP_FCNTL_GETFL = 0x8 - CAP_FCNTL_GETOWN = 0x20 - CAP_FCNTL_SETFL = 0x10 - CAP_FCNTL_SETOWN = 0x40 - CAP_FEXECVE = 0x200000000000080 - CAP_FLOCK = 0x200000000010000 - CAP_FPATHCONF = 0x200000000020000 - CAP_FSCK = 0x200000000040000 - CAP_FSTAT = 0x200000000080000 - CAP_FSTATAT = 0x200000000080400 - CAP_FSTATFS = 0x200000000100000 - CAP_FSYNC = 0x200000000000100 - CAP_FTRUNCATE = 0x200000000000200 - CAP_FUTIMES = 0x200000000200000 - CAP_FUTIMESAT = 0x200000000200400 - CAP_GETPEERNAME = 0x200000100000000 - CAP_GETSOCKNAME = 0x200000200000000 - CAP_GETSOCKOPT = 0x200000400000000 - CAP_IOCTL = 0x400000000000080 - CAP_IOCTLS_ALL = 0x7fffffff - CAP_KQUEUE = 0x400000000100040 - CAP_KQUEUE_CHANGE = 0x400000000100000 - CAP_KQUEUE_EVENT = 0x400000000000040 - CAP_LINKAT_SOURCE = 0x200020000000400 - CAP_LINKAT_TARGET = 0x200000000400400 - CAP_LISTEN = 0x200000800000000 - CAP_LOOKUP = 0x200000000000400 - CAP_MAC_GET = 0x400000000000001 - CAP_MAC_SET = 0x400000000000002 - CAP_MKDIRAT = 0x200000000800400 - CAP_MKFIFOAT = 0x200000001000400 - CAP_MKNODAT = 0x200000002000400 - CAP_MMAP = 0x200000000000010 - CAP_MMAP_R = 0x20000000000001d - CAP_MMAP_RW = 0x20000000000001f - CAP_MMAP_RWX = 0x20000000000003f - CAP_MMAP_RX = 0x20000000000003d - CAP_MMAP_W = 0x20000000000001e - CAP_MMAP_WX = 0x20000000000003e - CAP_MMAP_X = 0x20000000000003c - CAP_PDGETPID = 0x400000000000200 - CAP_PDKILL = 0x400000000000800 - CAP_PDWAIT = 0x400000000000400 - CAP_PEELOFF = 0x200001000000000 - CAP_POLL_EVENT = 0x400000000000020 - CAP_PREAD = 0x20000000000000d - CAP_PWRITE = 0x20000000000000e - CAP_READ = 0x200000000000001 - CAP_RECV = 0x200000000000001 - CAP_RENAMEAT_SOURCE = 0x200000004000400 - CAP_RENAMEAT_TARGET = 0x200040000000400 - CAP_RIGHTS_VERSION = 0x0 - CAP_RIGHTS_VERSION_00 = 0x0 - CAP_SEEK = 0x20000000000000c - CAP_SEEK_TELL = 0x200000000000004 - CAP_SEM_GETVALUE = 0x400000000000004 - CAP_SEM_POST = 0x400000000000008 - CAP_SEM_WAIT = 0x400000000000010 - CAP_SEND = 0x200000000000002 - CAP_SETSOCKOPT = 0x200002000000000 - CAP_SHUTDOWN = 0x200004000000000 - CAP_SOCK_CLIENT = 0x200007780000003 - CAP_SOCK_SERVER = 0x200007f60000003 - CAP_SYMLINKAT = 0x200000008000400 - CAP_TTYHOOK = 0x400000000000100 - CAP_UNLINKAT = 0x200000010000400 - CAP_UNUSED0_44 = 0x200080000000000 - CAP_UNUSED0_57 = 0x300000000000000 - CAP_UNUSED1_22 = 0x400000000200000 - CAP_UNUSED1_57 = 0x500000000000000 - CAP_WRITE = 0x200000000000002 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLOCK_MONOTONIC = 0x4 - CLOCK_MONOTONIC_FAST = 0xc - CLOCK_MONOTONIC_PRECISE = 0xb - CLOCK_PROCESS_CPUTIME_ID = 0xf - CLOCK_PROF = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_FAST = 0xa - CLOCK_REALTIME_PRECISE = 0x9 - CLOCK_SECOND = 0xd - CLOCK_THREAD_CPUTIME_ID = 0xe - CLOCK_UPTIME = 0x5 - CLOCK_UPTIME_FAST = 0x8 - CLOCK_UPTIME_PRECISE = 0x7 - CLOCK_VIRTUAL = 0x1 - CREAD = 0x800 - CRTSCTS = 0x30000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_MAXNAME = 0x18 - CTL_NET = 0x4 - DLT_A429 = 0xb8 - DLT_A653_ICM = 0xb9 - DLT_AIRONET_HEADER = 0x78 - DLT_AOS = 0xde - DLT_APPLE_IP_OVER_IEEE1394 = 0x8a - DLT_ARCNET = 0x7 - DLT_ARCNET_LINUX = 0x81 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_AX25_KISS = 0xca - DLT_BACNET_MS_TP = 0xa5 - DLT_BLUETOOTH_BREDR_BB = 0xff - DLT_BLUETOOTH_HCI_H4 = 0xbb - DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 - DLT_BLUETOOTH_LE_LL = 0xfb - DLT_BLUETOOTH_LE_LL_WITH_PHDR = 0x100 - DLT_BLUETOOTH_LINUX_MONITOR = 0xfe - DLT_CAN20B = 0xbe - DLT_CAN_SOCKETCAN = 0xe3 - DLT_CHAOS = 0x5 - DLT_CHDLC = 0x68 - DLT_CISCO_IOS = 0x76 - DLT_CLASS_NETBSD_RAWAF = 0x2240000 - DLT_C_HDLC = 0x68 - DLT_C_HDLC_WITH_DIR = 0xcd - DLT_DBUS = 0xe7 - DLT_DECT = 0xdd - DLT_DOCSIS = 0x8f - DLT_DVB_CI = 0xeb - DLT_ECONET = 0x73 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_EPON = 0x103 - DLT_ERF = 0xc5 - DLT_ERF_ETH = 0xaf - DLT_ERF_POS = 0xb0 - DLT_FC_2 = 0xe0 - DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 - DLT_FDDI = 0xa - DLT_FLEXRAY = 0xd2 - DLT_FRELAY = 0x6b - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_GSMTAP_ABIS = 0xda - DLT_GSMTAP_UM = 0xd9 - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_IEEE802_15_4 = 0xc3 - DLT_IEEE802_15_4_LINUX = 0xbf - DLT_IEEE802_15_4_NOFCS = 0xe6 - DLT_IEEE802_15_4_NONASK_PHY = 0xd7 - DLT_IEEE802_16_MAC_CPS = 0xbc - DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 - DLT_INFINIBAND = 0xf7 - DLT_IPFILTER = 0x74 - DLT_IPMB = 0xc7 - DLT_IPMB_LINUX = 0xd1 - DLT_IPMI_HPM_2 = 0x104 - DLT_IPNET = 0xe2 - DLT_IPOIB = 0xf2 - DLT_IPV4 = 0xe4 - DLT_IPV6 = 0xe5 - DLT_IP_OVER_FC = 0x7a - DLT_ISO_14443 = 0x108 - DLT_JUNIPER_ATM1 = 0x89 - DLT_JUNIPER_ATM2 = 0x87 - DLT_JUNIPER_ATM_CEMIC = 0xee - DLT_JUNIPER_CHDLC = 0xb5 - DLT_JUNIPER_ES = 0x84 - DLT_JUNIPER_ETHER = 0xb2 - DLT_JUNIPER_FIBRECHANNEL = 0xea - DLT_JUNIPER_FRELAY = 0xb4 - DLT_JUNIPER_GGSN = 0x85 - DLT_JUNIPER_ISM = 0xc2 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - DLT_JUNIPER_PPPOE = 0xa7 - DLT_JUNIPER_PPPOE_ATM = 0xa8 - DLT_JUNIPER_SERVICES = 0x88 - DLT_JUNIPER_SRX_E2E = 0xe9 - DLT_JUNIPER_ST = 0xc8 - DLT_JUNIPER_VP = 0xb7 - DLT_JUNIPER_VS = 0xe8 - DLT_LAPB_WITH_DIR = 0xcf - DLT_LAPD = 0xcb - DLT_LIN = 0xd4 - DLT_LINUX_EVDEV = 0xd8 - DLT_LINUX_IRDA = 0x90 - DLT_LINUX_LAPD = 0xb1 - DLT_LINUX_PPP_WITHDIRECTION = 0xa6 - DLT_LINUX_SLL = 0x71 - DLT_LOOP = 0x6c - DLT_LTALK = 0x72 - DLT_MATCHING_MAX = 0x109 - DLT_MATCHING_MIN = 0x68 - DLT_MFR = 0xb6 - DLT_MOST = 0xd3 - DLT_MPEG_2_TS = 0xf3 - DLT_MPLS = 0xdb - DLT_MTP2 = 0x8c - DLT_MTP2_WITH_PHDR = 0x8b - DLT_MTP3 = 0x8d - DLT_MUX27010 = 0xec - DLT_NETANALYZER = 0xf0 - DLT_NETANALYZER_TRANSPARENT = 0xf1 - DLT_NETLINK = 0xfd - DLT_NFC_LLCP = 0xf5 - DLT_NFLOG = 0xef - DLT_NG40 = 0xf4 - DLT_NULL = 0x0 - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x79 - DLT_PKTAP = 0x102 - DLT_PPI = 0xc0 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0xe - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PPP_WITH_DIRECTION = 0xa6 - DLT_PRISM_HEADER = 0x77 - DLT_PROFIBUS_DL = 0x101 - DLT_PRONET = 0x4 - DLT_RAIF1 = 0xc6 - DLT_RAW = 0xc - DLT_RDS = 0x109 - DLT_REDBACK_SMARTEDGE = 0x20 - DLT_RIO = 0x7c - DLT_RTAC_SERIAL = 0xfa - DLT_SCCP = 0x8e - DLT_SCTP = 0xf8 - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xd - DLT_STANAG_5066_D_PDU = 0xed - DLT_SUNATM = 0x7b - DLT_SYMANTEC_FIREWALL = 0x63 - DLT_TZSP = 0x80 - DLT_USB = 0xba - DLT_USBPCAP = 0xf9 - DLT_USB_FREEBSD = 0xba - DLT_USB_LINUX = 0xbd - DLT_USB_LINUX_MMAPPED = 0xdc - DLT_USER0 = 0x93 - DLT_USER1 = 0x94 - DLT_USER10 = 0x9d - DLT_USER11 = 0x9e - DLT_USER12 = 0x9f - DLT_USER13 = 0xa0 - DLT_USER14 = 0xa1 - DLT_USER15 = 0xa2 - DLT_USER2 = 0x95 - DLT_USER3 = 0x96 - DLT_USER4 = 0x97 - DLT_USER5 = 0x98 - DLT_USER6 = 0x99 - DLT_USER7 = 0x9a - DLT_USER8 = 0x9b - DLT_USER9 = 0x9c - DLT_WATTSTOPPER_DLM = 0x107 - DLT_WIHART = 0xdf - DLT_WIRESHARK_UPPER_PDU = 0xfc - DLT_X2E_SERIAL = 0xd5 - DLT_X2E_XORAYA = 0xd6 - DLT_ZWAVE_R1_R2 = 0x105 - DLT_ZWAVE_R3 = 0x106 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EVFILT_AIO = -0x3 - EVFILT_FS = -0x9 - EVFILT_LIO = -0xa - EVFILT_PROC = -0x5 - EVFILT_PROCDESC = -0x8 - EVFILT_READ = -0x1 - EVFILT_SENDFILE = -0xc - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0xc - EVFILT_TIMER = -0x7 - EVFILT_USER = -0xb - EVFILT_VNODE = -0x4 - EVFILT_WRITE = -0x2 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_DISPATCH = 0x80 - EV_DROP = 0x1000 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_FLAG2 = 0x4000 - EV_FORCEONESHOT = 0x100 - EV_ONESHOT = 0x10 - EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf000 - EXTA = 0x4b00 - EXTATTR_NAMESPACE_EMPTY = 0x0 - EXTATTR_NAMESPACE_SYSTEM = 0x2 - EXTATTR_NAMESPACE_USER = 0x1 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FLUSHO = 0x800000 - F_CANCEL = 0x5 - F_DUP2FD = 0xa - F_DUP2FD_CLOEXEC = 0x12 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x11 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0xb - F_GETOWN = 0x5 - F_OGETLK = 0x7 - F_OK = 0x0 - F_OSETLK = 0x8 - F_OSETLKW = 0x9 - F_RDAHEAD = 0x10 - F_RDLCK = 0x1 - F_READAHEAD = 0xf - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0xc - F_SETLKW = 0xd - F_SETLK_REMOTE = 0xe - F_SETOWN = 0x6 - F_UNLCK = 0x2 - F_UNLCKSYS = 0x4 - F_WRLCK = 0x3 - HUPCL = 0x4000 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFAN_ARRIVAL = 0x0 - IFAN_DEPARTURE = 0x1 - IFF_ALLMULTI = 0x200 - IFF_ALTPHYS = 0x4000 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x218f52 - IFF_CANTCONFIG = 0x10000 - IFF_DEBUG = 0x4 - IFF_DRV_OACTIVE = 0x400 - IFF_DRV_RUNNING = 0x40 - IFF_DYING = 0x200000 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MONITOR = 0x40000 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PPROMISC = 0x20000 - IFF_PROMISC = 0x100 - IFF_RENAMING = 0x400000 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_STATICARP = 0x80000 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_BRIDGE = 0xd1 - IFT_CARP = 0xf8 - IFT_IEEE1394 = 0x90 - IFT_INFINIBAND = 0xc7 - IFT_L2VLAN = 0x87 - IFT_L3IPVLAN = 0x88 - IFT_PPP = 0x17 - IFT_PROPVIRTUAL = 0x35 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLASSD_HOST = 0xfffffff - IN_CLASSD_NET = 0xf0000000 - IN_CLASSD_NSHIFT = 0x1c - IN_LOOPBACKNET = 0x7f - IN_RFC3021_MASK = 0xfffffffe - IPPROTO_3PC = 0x22 - IPPROTO_ADFS = 0x44 - IPPROTO_AH = 0x33 - IPPROTO_AHIP = 0x3d - IPPROTO_APES = 0x63 - IPPROTO_ARGUS = 0xd - IPPROTO_AX25 = 0x5d - IPPROTO_BHA = 0x31 - IPPROTO_BLT = 0x1e - IPPROTO_BRSATMON = 0x4c - IPPROTO_CARP = 0x70 - IPPROTO_CFTP = 0x3e - IPPROTO_CHAOS = 0x10 - IPPROTO_CMTP = 0x26 - IPPROTO_CPHB = 0x49 - IPPROTO_CPNX = 0x48 - IPPROTO_DDP = 0x25 - IPPROTO_DGP = 0x56 - IPPROTO_DIVERT = 0x102 - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_EMCON = 0xe - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GMTP = 0x64 - IPPROTO_GRE = 0x2f - IPPROTO_HELLO = 0x3f - IPPROTO_HIP = 0x8b - IPPROTO_HMP = 0x14 - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IDPR = 0x23 - IPPROTO_IDRP = 0x2d - IPPROTO_IGMP = 0x2 - IPPROTO_IGP = 0x55 - IPPROTO_IGRP = 0x58 - IPPROTO_IL = 0x28 - IPPROTO_INLSP = 0x34 - IPPROTO_INP = 0x20 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPCV = 0x47 - IPPROTO_IPEIP = 0x5e - IPPROTO_IPIP = 0x4 - IPPROTO_IPPC = 0x43 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_IRTP = 0x1c - IPPROTO_KRYPTOLAN = 0x41 - IPPROTO_LARP = 0x5b - IPPROTO_LEAF1 = 0x19 - IPPROTO_LEAF2 = 0x1a - IPPROTO_MAX = 0x100 - IPPROTO_MEAS = 0x13 - IPPROTO_MH = 0x87 - IPPROTO_MHRP = 0x30 - IPPROTO_MICP = 0x5f - IPPROTO_MOBILE = 0x37 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_MUX = 0x12 - IPPROTO_ND = 0x4d - IPPROTO_NHRP = 0x36 - IPPROTO_NONE = 0x3b - IPPROTO_NSP = 0x1f - IPPROTO_NVPII = 0xb - IPPROTO_OLD_DIVERT = 0xfe - IPPROTO_OSPFIGP = 0x59 - IPPROTO_PFSYNC = 0xf0 - IPPROTO_PGM = 0x71 - IPPROTO_PIGP = 0x9 - IPPROTO_PIM = 0x67 - IPPROTO_PRM = 0x15 - IPPROTO_PUP = 0xc - IPPROTO_PVP = 0x4b - IPPROTO_RAW = 0xff - IPPROTO_RCCMON = 0xa - IPPROTO_RDP = 0x1b - IPPROTO_RESERVED_253 = 0xfd - IPPROTO_RESERVED_254 = 0xfe - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_RVD = 0x42 - IPPROTO_SATEXPAK = 0x40 - IPPROTO_SATMON = 0x45 - IPPROTO_SCCSP = 0x60 - IPPROTO_SCTP = 0x84 - IPPROTO_SDRP = 0x2a - IPPROTO_SEND = 0x103 - IPPROTO_SEP = 0x21 - IPPROTO_SHIM6 = 0x8c - IPPROTO_SKIP = 0x39 - IPPROTO_SPACER = 0x7fff - IPPROTO_SRPC = 0x5a - IPPROTO_ST = 0x7 - IPPROTO_SVMTP = 0x52 - IPPROTO_SWIPE = 0x35 - IPPROTO_TCF = 0x57 - IPPROTO_TCP = 0x6 - IPPROTO_TLSP = 0x38 - IPPROTO_TP = 0x1d - IPPROTO_TPXX = 0x27 - IPPROTO_TRUNK1 = 0x17 - IPPROTO_TRUNK2 = 0x18 - IPPROTO_TTP = 0x54 - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPPROTO_VINES = 0x53 - IPPROTO_VISA = 0x46 - IPPROTO_VMTP = 0x51 - IPPROTO_WBEXPAK = 0x4f - IPPROTO_WBMON = 0x4e - IPPROTO_WSN = 0x4a - IPPROTO_XNET = 0xf - IPPROTO_XTP = 0x24 - IPV6_AUTOFLOWLABEL = 0x3b - IPV6_BINDANY = 0x40 - IPV6_BINDMULTI = 0x41 - IPV6_BINDV6ONLY = 0x1b - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_FLOWID = 0x43 - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FLOWTYPE = 0x44 - IPV6_FRAGTTL = 0x78 - IPV6_FW_ADD = 0x1e - IPV6_FW_DEL = 0x1f - IPV6_FW_FLUSH = 0x20 - IPV6_FW_GET = 0x22 - IPV6_FW_ZERO = 0x21 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_IPSEC_POLICY = 0x1c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXOPTHDR = 0x800 - IPV6_MAXPACKET = 0xffff - IPV6_MAX_GROUP_SRC_FILTER = 0x200 - IPV6_MAX_MEMBERSHIPS = 0xfff - IPV6_MAX_SOCK_SRC_FILTER = 0x80 - IPV6_MIN_MEMBERSHIPS = 0x1f - IPV6_MMTU = 0x500 - IPV6_MSFILTER = 0x4a - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_PATHMTU = 0x2c - IPV6_PKTINFO = 0x2e - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_PREFER_TEMPADDR = 0x3f - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVFLOWID = 0x46 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRSSBUCKETID = 0x47 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - IPV6_RSSBUCKETID = 0x45 - IPV6_RSS_LISTEN_BUCKET = 0x42 - IPV6_RTHDR = 0x33 - IPV6_RTHDRDSTOPTS = 0x23 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_SOCKOPT_RESERVED1 = 0x3 - IPV6_TCLASS = 0x3d - IPV6_UNICAST_HOPS = 0x4 - IPV6_USE_MIN_MTU = 0x2a - IPV6_V6ONLY = 0x1b - IPV6_VERSION = 0x60 - IPV6_VERSION_MASK = 0xf0 - IP_ADD_MEMBERSHIP = 0xc - IP_ADD_SOURCE_MEMBERSHIP = 0x46 - IP_BINDANY = 0x18 - IP_BINDMULTI = 0x19 - IP_BLOCK_SOURCE = 0x48 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DONTFRAG = 0x43 - IP_DROP_MEMBERSHIP = 0xd - IP_DROP_SOURCE_MEMBERSHIP = 0x47 - IP_DUMMYNET3 = 0x31 - IP_DUMMYNET_CONFIGURE = 0x3c - IP_DUMMYNET_DEL = 0x3d - IP_DUMMYNET_FLUSH = 0x3e - IP_DUMMYNET_GET = 0x40 - IP_FLOWID = 0x5a - IP_FLOWTYPE = 0x5b - IP_FW3 = 0x30 - IP_FW_ADD = 0x32 - IP_FW_DEL = 0x33 - IP_FW_FLUSH = 0x34 - IP_FW_GET = 0x36 - IP_FW_NAT_CFG = 0x38 - IP_FW_NAT_DEL = 0x39 - IP_FW_NAT_GET_CONFIG = 0x3a - IP_FW_NAT_GET_LOG = 0x3b - IP_FW_RESETLOG = 0x37 - IP_FW_TABLE_ADD = 0x28 - IP_FW_TABLE_DEL = 0x29 - IP_FW_TABLE_FLUSH = 0x2a - IP_FW_TABLE_GETSIZE = 0x2b - IP_FW_TABLE_LIST = 0x2c - IP_FW_ZERO = 0x35 - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x15 - IP_MAXPACKET = 0xffff - IP_MAX_GROUP_SRC_FILTER = 0x200 - IP_MAX_MEMBERSHIPS = 0xfff - IP_MAX_SOCK_MUTE_FILTER = 0x80 - IP_MAX_SOCK_SRC_FILTER = 0x80 - IP_MAX_SOURCE_FILTER = 0x400 - IP_MF = 0x2000 - IP_MINTTL = 0x42 - IP_MIN_MEMBERSHIPS = 0x1f - IP_MSFILTER = 0x4a - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_MULTICAST_VIF = 0xe - IP_OFFMASK = 0x1fff - IP_ONESBCAST = 0x17 - IP_OPTIONS = 0x1 - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVFLOWID = 0x5d - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVRETOPTS = 0x6 - IP_RECVRSSBUCKETID = 0x5e - IP_RECVTOS = 0x44 - IP_RECVTTL = 0x41 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_RSSBUCKETID = 0x5c - IP_RSS_LISTEN_BUCKET = 0x1a - IP_RSVP_OFF = 0x10 - IP_RSVP_ON = 0xf - IP_RSVP_VIF_OFF = 0x12 - IP_RSVP_VIF_ON = 0x11 - IP_SENDSRCADDR = 0x7 - IP_TOS = 0x3 - IP_TTL = 0x4 - IP_UNBLOCK_SOURCE = 0x49 - ISIG = 0x80 - ISTRIP = 0x20 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_AUTOSYNC = 0x7 - MADV_CORE = 0x9 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x5 - MADV_NOCORE = 0x8 - MADV_NORMAL = 0x0 - MADV_NOSYNC = 0x6 - MADV_PROTECT = 0xa - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_WILLNEED = 0x3 - MAP_ALIGNED_SUPER = 0x1000000 - MAP_ALIGNMENT_MASK = -0x1000000 - MAP_ALIGNMENT_SHIFT = 0x18 - MAP_ANON = 0x1000 - MAP_ANONYMOUS = 0x1000 - MAP_COPY = 0x2 - MAP_EXCL = 0x4000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_GUARD = 0x2000 - MAP_HASSEMAPHORE = 0x200 - MAP_NOCORE = 0x20000 - MAP_NOSYNC = 0x800 - MAP_PREFAULT_READ = 0x40000 - MAP_PRIVATE = 0x2 - MAP_RESERVED0020 = 0x20 - MAP_RESERVED0040 = 0x40 - MAP_RESERVED0080 = 0x80 - MAP_RESERVED0100 = 0x100 - MAP_SHARED = 0x1 - MAP_STACK = 0x400 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MSG_CMSG_CLOEXEC = 0x40000 - MSG_COMPAT = 0x8000 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOF = 0x100 - MSG_EOR = 0x8 - MSG_NBIO = 0x4000 - MSG_NOSIGNAL = 0x20000 - MSG_NOTIFICATION = 0x2000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MSG_WAITFORONE = 0x80000 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x2 - MS_SYNC = 0x0 - NAME_MAX = 0xff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x3 - NET_RT_IFLISTL = 0x5 - NET_RT_IFMALIST = 0x4 - NOFLSH = 0x80000000 - NOKERNINFO = 0x2000000 - NOTE_ATTRIB = 0x8 - NOTE_CHILD = 0x4 - NOTE_CLOSE = 0x100 - NOTE_CLOSE_WRITE = 0x200 - NOTE_DELETE = 0x1 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXTEND = 0x4 - NOTE_FFAND = 0x40000000 - NOTE_FFCOPY = 0xc0000000 - NOTE_FFCTRLMASK = 0xc0000000 - NOTE_FFLAGSMASK = 0xffffff - NOTE_FFNOP = 0x0 - NOTE_FFOR = 0x80000000 - NOTE_FILE_POLL = 0x2 - NOTE_FORK = 0x40000000 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_MSECONDS = 0x2 - NOTE_NSECONDS = 0x8 - NOTE_OPEN = 0x80 - NOTE_PCTRLMASK = 0xf0000000 - NOTE_PDATAMASK = 0xfffff - NOTE_READ = 0x400 - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_SECONDS = 0x1 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_TRIGGER = 0x1000000 - NOTE_USECONDS = 0x4 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - OXTABS = 0x4 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x100000 - O_CREAT = 0x200 - O_DIRECT = 0x10000 - O_DIRECTORY = 0x20000 - O_EXCL = 0x800 - O_EXEC = 0x40000 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_TTY_INIT = 0x80000 - O_VERIFY = 0x200000 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - RLIMIT_AS = 0xa - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_MEMLOCK = 0x6 - RLIMIT_NOFILE = 0x8 - RLIMIT_NPROC = 0x7 - RLIMIT_RSS = 0x5 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0x7fffffffffffffff - RTAX_AUTHOR = 0x6 - RTAX_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x8 - RTAX_NETMASK = 0x2 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_FIXEDMTU = 0x80000 - RTF_FMASK = 0x1004d808 - RTF_GATEWAY = 0x2 - RTF_GWFLAG_COMPAT = 0x80000000 - RTF_HOST = 0x4 - RTF_LLDATA = 0x400 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MODIFIED = 0x20 - RTF_MULTICAST = 0x800000 - RTF_PINNED = 0x100000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x40000 - RTF_REJECT = 0x8 - RTF_RNH_LOCKED = 0x40000000 - RTF_STATIC = 0x800 - RTF_STICKY = 0x10000000 - RTF_UP = 0x1 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_DELMADDR = 0x10 - RTM_GET = 0x4 - RTM_IEEE80211 = 0x12 - RTM_IFANNOUNCE = 0x11 - RTM_IFINFO = 0xe - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_NEWMADDR = 0xf - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 - RTM_VERSION = 0x5 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RTV_WEIGHT = 0x100 - RT_ALL_FIBS = -0x1 - RT_BLACKHOLE = 0x40 - RT_CACHING_CONTEXT = 0x1 - RT_DEFAULT_FIB = 0x0 - RT_HAS_GW = 0x80 - RT_HAS_HEADER = 0x10 - RT_HAS_HEADER_BIT = 0x4 - RT_L2_ME = 0x4 - RT_L2_ME_BIT = 0x2 - RT_LLE_CACHE = 0x100 - RT_MAY_LOOP = 0x8 - RT_MAY_LOOP_BIT = 0x3 - RT_NORTREF = 0x2 - RT_REJECT = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_BINTIME = 0x4 - SCM_CREDS = 0x3 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x2 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCAIFGROUP = 0x80246987 - SIOCATMARK = 0x40047307 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFGROUP = 0x80246989 - SIOCDIFPHYADDR = 0x80206949 - SIOCGDRVSPEC = 0xc01c697b - SIOCGETSGCNT = 0xc0147210 - SIOCGETVIFCNT = 0xc014720f - SIOCGHIWAT = 0x40047301 - SIOCGHWADDR = 0xc020693e - SIOCGI2C = 0xc020693d - SIOCGIFADDR = 0xc0206921 - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCAP = 0xc020691f - SIOCGIFCONF = 0xc0086924 - SIOCGIFDESCR = 0xc020692a - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFIB = 0xc020695c - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFGENERIC = 0xc020693a - SIOCGIFGMEMB = 0xc024698a - SIOCGIFGROUP = 0xc0246988 - SIOCGIFINDEX = 0xc0206920 - SIOCGIFMAC = 0xc0206926 - SIOCGIFMEDIA = 0xc0286938 - SIOCGIFMETRIC = 0xc0206917 - SIOCGIFMTU = 0xc0206933 - SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPDSTADDR = 0xc0206948 - SIOCGIFPHYS = 0xc0206935 - SIOCGIFPSRCADDR = 0xc0206947 - SIOCGIFSTATUS = 0xc331693b - SIOCGIFXMEDIA = 0xc028698b - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCGPRIVATE_0 = 0xc0206950 - SIOCGPRIVATE_1 = 0xc0206951 - SIOCGTUNFIB = 0xc020695e - SIOCIFCREATE = 0xc020697a - SIOCIFCREATE2 = 0xc020697c - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc00c6978 - SIOCSDRVSPEC = 0x801c697b - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8020690c - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFCAP = 0x8020691e - SIOCSIFDESCR = 0x80206929 - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFIB = 0x8020695d - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGENERIC = 0x80206939 - SIOCSIFLLADDR = 0x8020693c - SIOCSIFMAC = 0x80206927 - SIOCSIFMEDIA = 0xc0206937 - SIOCSIFMETRIC = 0x80206918 - SIOCSIFMTU = 0x80206934 - SIOCSIFNAME = 0x80206928 - SIOCSIFNETMASK = 0x80206916 - SIOCSIFPHYADDR = 0x80406946 - SIOCSIFPHYS = 0x80206936 - SIOCSIFRVNET = 0xc020695b - SIOCSIFVNET = 0xc020695a - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SIOCSTUNFIB = 0x8020695f - SOCK_CLOEXEC = 0x10000000 - SOCK_DGRAM = 0x2 - SOCK_MAXADDRLEN = 0xff - SOCK_NONBLOCK = 0x20000000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_ACCEPTFILTER = 0x1000 - SO_BINTIME = 0x2000 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LABEL = 0x1009 - SO_LINGER = 0x80 - SO_LISTENINCQLEN = 0x1013 - SO_LISTENQLEN = 0x1012 - SO_LISTENQLIMIT = 0x1011 - SO_NOSIGPIPE = 0x800 - SO_NO_DDP = 0x8000 - SO_NO_OFFLOAD = 0x4000 - SO_OOBINLINE = 0x100 - SO_PEERLABEL = 0x1010 - SO_PROTOCOL = 0x1016 - SO_PROTOTYPE = 0x1016 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_SETFIB = 0x1014 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_TIMESTAMP = 0x400 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SO_USER_COOKIE = 0x1015 - SO_VENDOR = 0x80000000 - TAB0 = 0x0 - TAB3 = 0x4 - TABDLY = 0x4 - TCIFLUSH = 0x1 - TCIOFF = 0x3 - TCIOFLUSH = 0x3 - TCION = 0x4 - TCOFLUSH = 0x2 - TCOOFF = 0x1 - TCOON = 0x2 - TCP_CA_NAME_MAX = 0x10 - TCP_CCALGOOPT = 0x41 - TCP_CONGESTION = 0x40 - TCP_FASTOPEN = 0x401 - TCP_FUNCTION_BLK = 0x2000 - TCP_FUNCTION_NAME_LEN_MAX = 0x20 - TCP_INFO = 0x20 - TCP_KEEPCNT = 0x400 - TCP_KEEPIDLE = 0x100 - TCP_KEEPINIT = 0x80 - TCP_KEEPINTVL = 0x200 - TCP_MAXBURST = 0x4 - TCP_MAXHLEN = 0x3c - TCP_MAXOLEN = 0x28 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_SACK = 0x4 - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0x10 - TCP_MINMSS = 0xd8 - TCP_MSS = 0x218 - TCP_NODELAY = 0x1 - TCP_NOOPT = 0x8 - TCP_NOPUSH = 0x4 - TCP_PCAP_IN = 0x1000 - TCP_PCAP_OUT = 0x800 - TCP_VENDOR = 0x80000000 - TCSAFLUSH = 0x2 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLUSH = 0x80047410 - TIOCGDRAINWAIT = 0x40047456 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGPGRP = 0x40047477 - TIOCGPTN = 0x4004740f - TIOCGSID = 0x40047463 - TIOCGWINSZ = 0x40087468 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGDTRWAIT = 0x4004745a - TIOCMGET = 0x4004746a - TIOCMSDTRWAIT = 0x8004745b - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DCD = 0x40 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x20007471 - TIOCNXCL = 0x2000740e - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x80047470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCPTMASTER = 0x2000741c - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDRAINWAIT = 0x80047457 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSIG = 0x2004745f - TIOCSPGRP = 0x80047476 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x20007465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCTIMESTAMP = 0x40107459 - TIOCUCNTL = 0x80047466 - TOSTOP = 0x400000 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VERASE2 = 0x7 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WCONTINUED = 0x4 - WCOREFLAG = 0x80 - WEXITED = 0x10 - WLINUXCLONE = 0x80000000 - WNOHANG = 0x1 - WNOWAIT = 0x8 - WSTOPPED = 0x2 - WTRAPPED = 0x20 - WUNTRACED = 0x2 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x30) - EADDRNOTAVAIL = syscall.Errno(0x31) - EAFNOSUPPORT = syscall.Errno(0x2f) - EAGAIN = syscall.Errno(0x23) - EALREADY = syscall.Errno(0x25) - EAUTH = syscall.Errno(0x50) - EBADF = syscall.Errno(0x9) - EBADMSG = syscall.Errno(0x59) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x55) - ECAPMODE = syscall.Errno(0x5e) - ECHILD = syscall.Errno(0xa) - ECONNABORTED = syscall.Errno(0x35) - ECONNREFUSED = syscall.Errno(0x3d) - ECONNRESET = syscall.Errno(0x36) - EDEADLK = syscall.Errno(0xb) - EDESTADDRREQ = syscall.Errno(0x27) - EDOM = syscall.Errno(0x21) - EDOOFUS = syscall.Errno(0x58) - EDQUOT = syscall.Errno(0x45) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EFTYPE = syscall.Errno(0x4f) - EHOSTDOWN = syscall.Errno(0x40) - EHOSTUNREACH = syscall.Errno(0x41) - EIDRM = syscall.Errno(0x52) - EILSEQ = syscall.Errno(0x56) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x60) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5a) - ENAMETOOLONG = syscall.Errno(0x3f) - ENEEDAUTH = syscall.Errno(0x51) - ENETDOWN = syscall.Errno(0x32) - ENETRESET = syscall.Errno(0x34) - ENETUNREACH = syscall.Errno(0x33) - ENFILE = syscall.Errno(0x17) - ENOATTR = syscall.Errno(0x57) - ENOBUFS = syscall.Errno(0x37) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x5b) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x53) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCAPABLE = syscall.Errno(0x5d) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTRECOVERABLE = syscall.Errno(0x5f) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x2d) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x54) - EOWNERDEAD = syscall.Errno(0x60) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x2e) - EPIPE = syscall.Errno(0x20) - EPROCLIM = syscall.Errno(0x43) - EPROCUNAVAIL = syscall.Errno(0x4c) - EPROGMISMATCH = syscall.Errno(0x4b) - EPROGUNAVAIL = syscall.Errno(0x4a) - EPROTO = syscall.Errno(0x5c) - EPROTONOSUPPORT = syscall.Errno(0x2b) - EPROTOTYPE = syscall.Errno(0x29) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x47) - EROFS = syscall.Errno(0x1e) - ERPCMISMATCH = syscall.Errno(0x49) - ESHUTDOWN = syscall.Errno(0x3a) - ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x46) - ETIMEDOUT = syscall.Errno(0x3c) - ETOOMANYREFS = syscall.Errno(0x3b) - ETXTBSY = syscall.Errno(0x1a) - EUSERS = syscall.Errno(0x44) - EWOULDBLOCK = syscall.Errno(0x23) - EXDEV = syscall.Errno(0x12) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x14) - SIGCONT = syscall.Signal(0x13) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINFO = syscall.Signal(0x1d) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x17) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGLIBRT = syscall.Signal(0x21) - SIGLWP = syscall.Signal(0x20) - SIGPIPE = syscall.Signal(0xd) - SIGPROF = syscall.Signal(0x1b) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTHR = syscall.Signal(0x20) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x12) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x10) - SIGUSR1 = syscall.Signal(0x1e) - SIGUSR2 = syscall.Signal(0x1f) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errors = [...]string{ - 1: "operation not permitted", - 2: "no such file or directory", - 3: "no such process", - 4: "interrupted system call", - 5: "input/output error", - 6: "device not configured", - 7: "argument list too long", - 8: "exec format error", - 9: "bad file descriptor", - 10: "no child processes", - 11: "resource deadlock avoided", - 12: "cannot allocate memory", - 13: "permission denied", - 14: "bad address", - 15: "block device required", - 16: "device busy", - 17: "file exists", - 18: "cross-device link", - 19: "operation not supported by device", - 20: "not a directory", - 21: "is a directory", - 22: "invalid argument", - 23: "too many open files in system", - 24: "too many open files", - 25: "inappropriate ioctl for device", - 26: "text file busy", - 27: "file too large", - 28: "no space left on device", - 29: "illegal seek", - 30: "read-only file system", - 31: "too many links", - 32: "broken pipe", - 33: "numerical argument out of domain", - 34: "result too large", - 35: "resource temporarily unavailable", - 36: "operation now in progress", - 37: "operation already in progress", - 38: "socket operation on non-socket", - 39: "destination address required", - 40: "message too long", - 41: "protocol wrong type for socket", - 42: "protocol not available", - 43: "protocol not supported", - 44: "socket type not supported", - 45: "operation not supported", - 46: "protocol family not supported", - 47: "address family not supported by protocol family", - 48: "address already in use", - 49: "can't assign requested address", - 50: "network is down", - 51: "network is unreachable", - 52: "network dropped connection on reset", - 53: "software caused connection abort", - 54: "connection reset by peer", - 55: "no buffer space available", - 56: "socket is already connected", - 57: "socket is not connected", - 58: "can't send after socket shutdown", - 59: "too many references: can't splice", - 60: "operation timed out", - 61: "connection refused", - 62: "too many levels of symbolic links", - 63: "file name too long", - 64: "host is down", - 65: "no route to host", - 66: "directory not empty", - 67: "too many processes", - 68: "too many users", - 69: "disc quota exceeded", - 70: "stale NFS file handle", - 71: "too many levels of remote in path", - 72: "RPC struct is bad", - 73: "RPC version wrong", - 74: "RPC prog. not avail", - 75: "program version wrong", - 76: "bad procedure for program", - 77: "no locks available", - 78: "function not implemented", - 79: "inappropriate file type or format", - 80: "authentication error", - 81: "need authenticator", - 82: "identifier removed", - 83: "no message of desired type", - 84: "value too large to be stored in data type", - 85: "operation canceled", - 86: "illegal byte sequence", - 87: "attribute not found", - 88: "programming error", - 89: "bad message", - 90: "multihop attempted", - 91: "link has been severed", - 92: "protocol error", - 93: "capabilities insufficient", - 94: "not permitted in capability mode", - 95: "state not recoverable", - 96: "previous owner died", -} - -// Signal table -var signals = [...]string{ - 1: "hangup", - 2: "interrupt", - 3: "quit", - 4: "illegal instruction", - 5: "trace/BPT trap", - 6: "abort trap", - 7: "EMT trap", - 8: "floating point exception", - 9: "killed", - 10: "bus error", - 11: "segmentation fault", - 12: "bad system call", - 13: "broken pipe", - 14: "alarm clock", - 15: "terminated", - 16: "urgent I/O condition", - 17: "suspended (signal)", - 18: "suspended", - 19: "continued", - 20: "child exited", - 21: "stopped (tty input)", - 22: "stopped (tty output)", - 23: "I/O possible", - 24: "cputime limit exceeded", - 25: "filesize limit exceeded", - 26: "virtual timer expired", - 27: "profiling timer expired", - 28: "window size changes", - 29: "information request", - 30: "user defined signal 1", - 31: "user defined signal 2", - 32: "unknown signal", - 33: "unknown signal", -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go deleted file mode 100644 index 33ced1a..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go +++ /dev/null @@ -1,2200 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/include -m32 -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build 386,linux - -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m32 _const.go - -package unix - -import "syscall" - -const ( - AF_ALG = 0x26 - AF_APPLETALK = 0x5 - AF_ASH = 0x12 - AF_ATMPVC = 0x8 - AF_ATMSVC = 0x14 - AF_AX25 = 0x3 - AF_BLUETOOTH = 0x1f - AF_BRIDGE = 0x7 - AF_CAIF = 0x25 - AF_CAN = 0x1d - AF_DECnet = 0xc - AF_ECONET = 0x13 - AF_FILE = 0x1 - AF_IB = 0x1b - AF_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KCM = 0x29 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x2b - AF_MPLS = 0x1c - AF_NETBEUI = 0xd - AF_NETLINK = 0x10 - AF_NETROM = 0x6 - AF_NFC = 0x27 - AF_PACKET = 0x11 - AF_PHONET = 0x23 - AF_PPPOX = 0x18 - AF_QIPCRTR = 0x2a - AF_RDS = 0x15 - AF_ROSE = 0xb - AF_ROUTE = 0x10 - AF_RXRPC = 0x21 - AF_SECURITY = 0xe - AF_SNA = 0x16 - AF_TIPC = 0x1e - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VSOCK = 0x28 - AF_WANPIPE = 0x19 - AF_X25 = 0x9 - ALG_OP_DECRYPT = 0x0 - ALG_OP_ENCRYPT = 0x1 - ALG_SET_AEAD_ASSOCLEN = 0x4 - ALG_SET_AEAD_AUTHSIZE = 0x5 - ALG_SET_IV = 0x2 - ALG_SET_KEY = 0x1 - ALG_SET_OP = 0x3 - ARPHRD_6LOWPAN = 0x339 - ARPHRD_ADAPT = 0x108 - ARPHRD_APPLETLK = 0x8 - ARPHRD_ARCNET = 0x7 - ARPHRD_ASH = 0x30d - ARPHRD_ATM = 0x13 - ARPHRD_AX25 = 0x3 - ARPHRD_BIF = 0x307 - ARPHRD_CAIF = 0x336 - ARPHRD_CAN = 0x118 - ARPHRD_CHAOS = 0x5 - ARPHRD_CISCO = 0x201 - ARPHRD_CSLIP = 0x101 - ARPHRD_CSLIP6 = 0x103 - ARPHRD_DDCMP = 0x205 - ARPHRD_DLCI = 0xf - ARPHRD_ECONET = 0x30e - ARPHRD_EETHER = 0x2 - ARPHRD_ETHER = 0x1 - ARPHRD_EUI64 = 0x1b - ARPHRD_FCAL = 0x311 - ARPHRD_FCFABRIC = 0x313 - ARPHRD_FCPL = 0x312 - ARPHRD_FCPP = 0x310 - ARPHRD_FDDI = 0x306 - ARPHRD_FRAD = 0x302 - ARPHRD_HDLC = 0x201 - ARPHRD_HIPPI = 0x30c - ARPHRD_HWX25 = 0x110 - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_IEEE80211 = 0x321 - ARPHRD_IEEE80211_PRISM = 0x322 - ARPHRD_IEEE80211_RADIOTAP = 0x323 - ARPHRD_IEEE802154 = 0x324 - ARPHRD_IEEE802154_MONITOR = 0x325 - ARPHRD_IEEE802_TR = 0x320 - ARPHRD_INFINIBAND = 0x20 - ARPHRD_IP6GRE = 0x337 - ARPHRD_IPDDP = 0x309 - ARPHRD_IPGRE = 0x30a - ARPHRD_IRDA = 0x30f - ARPHRD_LAPB = 0x204 - ARPHRD_LOCALTLK = 0x305 - ARPHRD_LOOPBACK = 0x304 - ARPHRD_METRICOM = 0x17 - ARPHRD_NETLINK = 0x338 - ARPHRD_NETROM = 0x0 - ARPHRD_NONE = 0xfffe - ARPHRD_PHONET = 0x334 - ARPHRD_PHONET_PIPE = 0x335 - ARPHRD_PIMREG = 0x30b - ARPHRD_PPP = 0x200 - ARPHRD_PRONET = 0x4 - ARPHRD_RAWHDLC = 0x206 - ARPHRD_ROSE = 0x10e - ARPHRD_RSRVD = 0x104 - ARPHRD_SIT = 0x308 - ARPHRD_SKIP = 0x303 - ARPHRD_SLIP = 0x100 - ARPHRD_SLIP6 = 0x102 - ARPHRD_TUNNEL = 0x300 - ARPHRD_TUNNEL6 = 0x301 - ARPHRD_VOID = 0xffff - ARPHRD_X25 = 0x10f - B0 = 0x0 - B1000000 = 0x1008 - B110 = 0x3 - B115200 = 0x1002 - B1152000 = 0x1009 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B1500000 = 0x100a - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B2000000 = 0x100b - B230400 = 0x1003 - B2400 = 0xb - B2500000 = 0x100c - B300 = 0x7 - B3000000 = 0x100d - B3500000 = 0x100e - B38400 = 0xf - B4000000 = 0x100f - B460800 = 0x1004 - B4800 = 0xc - B50 = 0x1 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B600 = 0x8 - B75 = 0x2 - B921600 = 0x1007 - B9600 = 0xd - BLKBSZGET = 0x80041270 - BLKBSZSET = 0x40041271 - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80041272 - BLKPBSZGET = 0x127b - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d - BLKRRPART = 0x125f - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 - BOTHER = 0x1000 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIV = 0x30 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LL_OFF = -0x200000 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXINSNS = 0x1000 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_NET_OFF = -0x100000 - BPF_OR = 0x40 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XOR = 0xa0 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x2000 - BSDLY = 0x2000 - CAN_BCM = 0x2 - CAN_EFF_FLAG = 0x80000000 - CAN_EFF_ID_BITS = 0x1d - CAN_EFF_MASK = 0x1fffffff - CAN_ERR_FLAG = 0x20000000 - CAN_ERR_MASK = 0x1fffffff - CAN_INV_FILTER = 0x20000000 - CAN_ISOTP = 0x6 - CAN_MAX_DLC = 0x8 - CAN_MAX_DLEN = 0x8 - CAN_MCNET = 0x5 - CAN_MTU = 0x10 - CAN_NPROTO = 0x7 - CAN_RAW = 0x1 - CAN_RAW_FILTER_MAX = 0x200 - CAN_RTR_FLAG = 0x40000000 - CAN_SFF_ID_BITS = 0xb - CAN_SFF_MASK = 0x7ff - CAN_TP16 = 0x3 - CAN_TP20 = 0x4 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CFLUSH = 0xf - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CLOCK_BOOTTIME = 0x7 - CLOCK_BOOTTIME_ALARM = 0x9 - CLOCK_DEFAULT = 0x0 - CLOCK_EXT = 0x1 - CLOCK_INT = 0x2 - CLOCK_MONOTONIC = 0x1 - CLOCK_MONOTONIC_COARSE = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_ALARM = 0x8 - CLOCK_REALTIME_COARSE = 0x5 - CLOCK_TAI = 0xb - CLOCK_THREAD_CPUTIME_ID = 0x3 - CLOCK_TXFROMRX = 0x4 - CLOCK_TXINT = 0x3 - CLONE_CHILD_CLEARTID = 0x200000 - CLONE_CHILD_SETTID = 0x1000000 - CLONE_DETACHED = 0x400000 - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_IO = 0x80000000 - CLONE_NEWCGROUP = 0x2000000 - CLONE_NEWIPC = 0x8000000 - CLONE_NEWNET = 0x40000000 - CLONE_NEWNS = 0x20000 - CLONE_NEWPID = 0x20000000 - CLONE_NEWUSER = 0x10000000 - CLONE_NEWUTS = 0x4000000 - CLONE_PARENT = 0x8000 - CLONE_PARENT_SETTID = 0x100000 - CLONE_PTRACE = 0x2000 - CLONE_SETTLS = 0x80000 - CLONE_SIGHAND = 0x800 - CLONE_SYSVSEM = 0x40000 - CLONE_THREAD = 0x10000 - CLONE_UNTRACED = 0x800000 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CMSPAR = 0x40000000 - CR0 = 0x0 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRDLY = 0x600 - CREAD = 0x80 - CRTSCTS = 0x80000000 - CS5 = 0x0 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIGNAL = 0xff - CSIZE = 0x30 - CSTART = 0x11 - CSTATUS = 0x0 - CSTOP = 0x13 - CSTOPB = 0x40 - CSUSP = 0x1a - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EFD_SEMAPHORE = 0x1 - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - EPOLLEXCLUSIVE = 0x10000000 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLONESHOT = 0x40000000 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDHUP = 0x2000 - EPOLLRDNORM = 0x40 - EPOLLWAKEUP = 0x20000000 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CLOEXEC = 0x80000 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - ETH_P_1588 = 0x88f7 - ETH_P_8021AD = 0x88a8 - ETH_P_8021AH = 0x88e7 - ETH_P_8021Q = 0x8100 - ETH_P_80221 = 0x8917 - ETH_P_802_2 = 0x4 - ETH_P_802_3 = 0x1 - ETH_P_802_3_MIN = 0x600 - ETH_P_802_EX1 = 0x88b5 - ETH_P_AARP = 0x80f3 - ETH_P_AF_IUCV = 0xfbfb - ETH_P_ALL = 0x3 - ETH_P_AOE = 0x88a2 - ETH_P_ARCNET = 0x1a - ETH_P_ARP = 0x806 - ETH_P_ATALK = 0x809b - ETH_P_ATMFATE = 0x8884 - ETH_P_ATMMPOA = 0x884c - ETH_P_AX25 = 0x2 - ETH_P_BATMAN = 0x4305 - ETH_P_BPQ = 0x8ff - ETH_P_CAIF = 0xf7 - ETH_P_CAN = 0xc - ETH_P_CANFD = 0xd - ETH_P_CONTROL = 0x16 - ETH_P_CUST = 0x6006 - ETH_P_DDCMP = 0x6 - ETH_P_DEC = 0x6000 - ETH_P_DIAG = 0x6005 - ETH_P_DNA_DL = 0x6001 - ETH_P_DNA_RC = 0x6002 - ETH_P_DNA_RT = 0x6003 - ETH_P_DSA = 0x1b - ETH_P_ECONET = 0x18 - ETH_P_EDSA = 0xdada - ETH_P_FCOE = 0x8906 - ETH_P_FIP = 0x8914 - ETH_P_HDLC = 0x19 - ETH_P_HSR = 0x892f - ETH_P_IEEE802154 = 0xf6 - ETH_P_IEEEPUP = 0xa00 - ETH_P_IEEEPUPAT = 0xa01 - ETH_P_IP = 0x800 - ETH_P_IPV6 = 0x86dd - ETH_P_IPX = 0x8137 - ETH_P_IRDA = 0x17 - ETH_P_LAT = 0x6004 - ETH_P_LINK_CTL = 0x886c - ETH_P_LOCALTALK = 0x9 - ETH_P_LOOP = 0x60 - ETH_P_LOOPBACK = 0x9000 - ETH_P_MACSEC = 0x88e5 - ETH_P_MOBITEX = 0x15 - ETH_P_MPLS_MC = 0x8848 - ETH_P_MPLS_UC = 0x8847 - ETH_P_MVRP = 0x88f5 - ETH_P_NCSI = 0x88f8 - ETH_P_PAE = 0x888e - ETH_P_PAUSE = 0x8808 - ETH_P_PHONET = 0xf5 - ETH_P_PPPTALK = 0x10 - ETH_P_PPP_DISC = 0x8863 - ETH_P_PPP_MP = 0x8 - ETH_P_PPP_SES = 0x8864 - ETH_P_PRP = 0x88fb - ETH_P_PUP = 0x200 - ETH_P_PUPAT = 0x201 - ETH_P_QINQ1 = 0x9100 - ETH_P_QINQ2 = 0x9200 - ETH_P_QINQ3 = 0x9300 - ETH_P_RARP = 0x8035 - ETH_P_SCA = 0x6007 - ETH_P_SLOW = 0x8809 - ETH_P_SNAP = 0x5 - ETH_P_TDLS = 0x890d - ETH_P_TEB = 0x6558 - ETH_P_TIPC = 0x88ca - ETH_P_TRAILER = 0x1c - ETH_P_TR_802_2 = 0x11 - ETH_P_TSN = 0x22f0 - ETH_P_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - ETH_P_XDSA = 0xf8 - EXTA = 0xe - EXTB = 0xf - EXTPROC = 0x10000 - FALLOC_FL_COLLAPSE_RANGE = 0x8 - FALLOC_FL_INSERT_RANGE = 0x20 - FALLOC_FL_KEEP_SIZE = 0x1 - FALLOC_FL_NO_HIDE_STALE = 0x4 - FALLOC_FL_PUNCH_HOLE = 0x2 - FALLOC_FL_UNSHARE_RANGE = 0x40 - FALLOC_FL_ZERO_RANGE = 0x10 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x8000 - FFDLY = 0x8000 - FLUSHO = 0x1000 - FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 - FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 - FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 - FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 - FS_ENCRYPTION_MODE_INVALID = 0x0 - FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 - FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 - FS_KEY_DESCRIPTOR_SIZE = 0x8 - FS_KEY_DESC_PREFIX = "fscrypt:" - FS_KEY_DESC_PREFIX_SIZE = 0x8 - FS_MAX_KEY_SIZE = 0x40 - FS_POLICY_FLAGS_PAD_16 = 0x2 - FS_POLICY_FLAGS_PAD_32 = 0x3 - FS_POLICY_FLAGS_PAD_4 = 0x0 - FS_POLICY_FLAGS_PAD_8 = 0x1 - FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x3 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x406 - F_EXLCK = 0x4 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLEASE = 0x401 - F_GETLK = 0xc - F_GETLK64 = 0xc - F_GETOWN = 0x9 - F_GETOWN_EX = 0x10 - F_GETPIPE_SZ = 0x408 - F_GETSIG = 0xb - F_LOCK = 0x1 - F_NOTIFY = 0x402 - F_OFD_GETLK = 0x24 - F_OFD_SETLK = 0x25 - F_OFD_SETLKW = 0x26 - F_OK = 0x0 - F_RDLCK = 0x0 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLEASE = 0x400 - F_SETLK = 0xd - F_SETLK64 = 0xd - F_SETLKW = 0xe - F_SETLKW64 = 0xe - F_SETOWN = 0x8 - F_SETOWN_EX = 0xf - F_SETPIPE_SZ = 0x407 - F_SETSIG = 0xa - F_SHLCK = 0x8 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_ULOCK = 0x0 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - GENL_ADMIN_PERM = 0x1 - GENL_CMD_CAP_DO = 0x2 - GENL_CMD_CAP_DUMP = 0x4 - GENL_CMD_CAP_HASPOL = 0x8 - GENL_HDRLEN = 0x4 - GENL_ID_CTRL = 0x10 - GENL_ID_PMCRAID = 0x12 - GENL_ID_VFS_DQUOT = 0x11 - GENL_MAX_ID = 0x3ff - GENL_MIN_ID = 0x10 - GENL_NAMSIZ = 0x10 - GENL_START_ALLOC = 0x13 - GENL_UNS_ADMIN_PERM = 0x10 - GRND_NONBLOCK = 0x1 - GRND_RANDOM = 0x2 - HUPCL = 0x400 - IBSHIFT = 0x10 - ICANON = 0x2 - ICMPV6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x8000 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_MANAGETEMPADDR = 0x100 - IFA_F_MCAUTOJOIN = 0x400 - IFA_F_NODAD = 0x2 - IFA_F_NOPREFIXROUTE = 0x200 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_STABLE_PRIVACY = 0x800 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0x8 - IFF_ALLMULTI = 0x200 - IFF_ATTACH_QUEUE = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DETACH_QUEUE = 0x400 - IFF_DORMANT = 0x20000 - IFF_DYNAMIC = 0x8000 - IFF_ECHO = 0x40000 - IFF_LOOPBACK = 0x8 - IFF_LOWER_UP = 0x10000 - IFF_MASTER = 0x400 - IFF_MULTICAST = 0x1000 - IFF_MULTI_QUEUE = 0x100 - IFF_NOARP = 0x80 - IFF_NOFILTER = 0x1000 - IFF_NOTRAILERS = 0x20 - IFF_NO_PI = 0x1000 - IFF_ONE_QUEUE = 0x2000 - IFF_PERSIST = 0x800 - IFF_POINTOPOINT = 0x10 - IFF_PORTSEL = 0x2000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SLAVE = 0x800 - IFF_TAP = 0x2 - IFF_TUN = 0x1 - IFF_TUN_EXCL = 0x8000 - IFF_UP = 0x1 - IFF_VNET_HDR = 0x4000 - IFF_VOLATILE = 0x70c5a - IFNAMSIZ = 0x10 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_ACCESS = 0x1 - IN_ALL_EVENTS = 0xfff - IN_ATTRIB = 0x4 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLOEXEC = 0x80000 - IN_CLOSE = 0x18 - IN_CLOSE_NOWRITE = 0x10 - IN_CLOSE_WRITE = 0x8 - IN_CREATE = 0x100 - IN_DELETE = 0x200 - IN_DELETE_SELF = 0x400 - IN_DONT_FOLLOW = 0x2000000 - IN_EXCL_UNLINK = 0x4000000 - IN_IGNORED = 0x8000 - IN_ISDIR = 0x40000000 - IN_LOOPBACKNET = 0x7f - IN_MASK_ADD = 0x20000000 - IN_MODIFY = 0x2 - IN_MOVE = 0xc0 - IN_MOVED_FROM = 0x40 - IN_MOVED_TO = 0x80 - IN_MOVE_SELF = 0x800 - IN_NONBLOCK = 0x800 - IN_ONESHOT = 0x80000000 - IN_ONLYDIR = 0x1000000 - IN_OPEN = 0x20 - IN_Q_OVERFLOW = 0x4000 - IN_UNMOUNT = 0x2000 - IPPROTO_AH = 0x33 - IPPROTO_BEETPH = 0x5e - IPPROTO_COMP = 0x6c - IPPROTO_DCCP = 0x21 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPIP = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MH = 0x87 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_NONE = 0x3b - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_2292DSTOPTS = 0x4 - IPV6_2292HOPLIMIT = 0x8 - IPV6_2292HOPOPTS = 0x3 - IPV6_2292PKTINFO = 0x2 - IPV6_2292PKTOPTIONS = 0x6 - IPV6_2292RTHDR = 0x5 - IPV6_ADDRFORM = 0x1 - IPV6_ADD_MEMBERSHIP = 0x14 - IPV6_AUTHHDR = 0xa - IPV6_CHECKSUM = 0x7 - IPV6_DONTFRAG = 0x3e - IPV6_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - IPV6_HDRINCL = 0x24 - IPV6_HOPLIMIT = 0x34 - IPV6_HOPOPTS = 0x36 - IPV6_IPSEC_POLICY = 0x22 - IPV6_JOIN_ANYCAST = 0x1b - IPV6_JOIN_GROUP = 0x14 - IPV6_LEAVE_ANYCAST = 0x1c - IPV6_LEAVE_GROUP = 0x15 - IPV6_MTU = 0x18 - IPV6_MTU_DISCOVER = 0x17 - IPV6_MULTICAST_HOPS = 0x12 - IPV6_MULTICAST_IF = 0x11 - IPV6_MULTICAST_LOOP = 0x13 - IPV6_NEXTHOP = 0x9 - IPV6_PATHMTU = 0x3d - IPV6_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_INTERFACE = 0x4 - IPV6_PMTUDISC_OMIT = 0x5 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVPATHMTU = 0x3c - IPV6_RECVPKTINFO = 0x31 - IPV6_RECVRTHDR = 0x38 - IPV6_RECVTCLASS = 0x42 - IPV6_ROUTER_ALERT = 0x16 - IPV6_RTHDR = 0x39 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RXDSTOPTS = 0x3b - IPV6_RXHOPOPTS = 0x36 - IPV6_TCLASS = 0x43 - IPV6_UNICAST_HOPS = 0x10 - IPV6_V6ONLY = 0x1a - IPV6_XFRM_POLICY = 0x23 - IP_ADD_MEMBERSHIP = 0x23 - IP_ADD_SOURCE_MEMBERSHIP = 0x27 - IP_BIND_ADDRESS_NO_PORT = 0x18 - IP_BLOCK_SOURCE = 0x26 - IP_CHECKSUM = 0x17 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0x24 - IP_DROP_SOURCE_MEMBERSHIP = 0x28 - IP_FREEBIND = 0xf - IP_HDRINCL = 0x3 - IP_IPSEC_POLICY = 0x10 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINTTL = 0x15 - IP_MSFILTER = 0x29 - IP_MSS = 0x240 - IP_MTU = 0xe - IP_MTU_DISCOVER = 0xa - IP_MULTICAST_ALL = 0x31 - IP_MULTICAST_IF = 0x20 - IP_MULTICAST_LOOP = 0x22 - IP_MULTICAST_TTL = 0x21 - IP_NODEFRAG = 0x16 - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x4 - IP_ORIGDSTADDR = 0x14 - IP_PASSSEC = 0x12 - IP_PKTINFO = 0x8 - IP_PKTOPTIONS = 0x9 - IP_PMTUDISC = 0xa - IP_PMTUDISC_DO = 0x2 - IP_PMTUDISC_DONT = 0x0 - IP_PMTUDISC_INTERFACE = 0x4 - IP_PMTUDISC_OMIT = 0x5 - IP_PMTUDISC_PROBE = 0x3 - IP_PMTUDISC_WANT = 0x1 - IP_RECVERR = 0xb - IP_RECVOPTS = 0x6 - IP_RECVORIGDSTADDR = 0x14 - IP_RECVRETOPTS = 0x7 - IP_RECVTOS = 0xd - IP_RECVTTL = 0xc - IP_RETOPTS = 0x7 - IP_RF = 0x8000 - IP_ROUTER_ALERT = 0x5 - IP_TOS = 0x1 - IP_TRANSPARENT = 0x13 - IP_TTL = 0x2 - IP_UNBLOCK_SOURCE = 0x25 - IP_UNICAST_IF = 0x32 - IP_XFRM_POLICY = 0x11 - ISIG = 0x1 - ISTRIP = 0x20 - IUCLC = 0x200 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x1000 - IXON = 0x400 - KEYCTL_ASSUME_AUTHORITY = 0x10 - KEYCTL_CHOWN = 0x4 - KEYCTL_CLEAR = 0x7 - KEYCTL_DESCRIBE = 0x6 - KEYCTL_DH_COMPUTE = 0x17 - KEYCTL_GET_KEYRING_ID = 0x0 - KEYCTL_GET_PERSISTENT = 0x16 - KEYCTL_GET_SECURITY = 0x11 - KEYCTL_INSTANTIATE = 0xc - KEYCTL_INSTANTIATE_IOV = 0x14 - KEYCTL_INVALIDATE = 0x15 - KEYCTL_JOIN_SESSION_KEYRING = 0x1 - KEYCTL_LINK = 0x8 - KEYCTL_NEGATE = 0xd - KEYCTL_READ = 0xb - KEYCTL_REJECT = 0x13 - KEYCTL_REVOKE = 0x3 - KEYCTL_SEARCH = 0xa - KEYCTL_SESSION_TO_PARENT = 0x12 - KEYCTL_SETPERM = 0x5 - KEYCTL_SET_REQKEY_KEYRING = 0xe - KEYCTL_SET_TIMEOUT = 0xf - KEYCTL_UNLINK = 0x9 - KEYCTL_UPDATE = 0x2 - KEY_REQKEY_DEFL_DEFAULT = 0x0 - KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 - KEY_REQKEY_DEFL_NO_CHANGE = -0x1 - KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 - KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 - KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 - KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 - KEY_REQKEY_DEFL_USER_KEYRING = 0x4 - KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 - KEY_SPEC_GROUP_KEYRING = -0x6 - KEY_SPEC_PROCESS_KEYRING = -0x2 - KEY_SPEC_REQKEY_AUTH_KEY = -0x7 - KEY_SPEC_REQUESTOR_KEYRING = -0x8 - KEY_SPEC_SESSION_KEYRING = -0x3 - KEY_SPEC_THREAD_KEYRING = -0x1 - KEY_SPEC_USER_KEYRING = -0x4 - KEY_SPEC_USER_SESSION_KEYRING = -0x5 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef - LINUX_REBOOT_CMD_HALT = 0xcdef0123 - LINUX_REBOOT_CMD_KEXEC = 0x45584543 - LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc - LINUX_REBOOT_CMD_RESTART = 0x1234567 - LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 - LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 - LINUX_REBOOT_MAGIC1 = 0xfee1dead - LINUX_REBOOT_MAGIC2 = 0x28121969 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DODUMP = 0x11 - MADV_DOFORK = 0xb - MADV_DONTDUMP = 0x10 - MADV_DONTFORK = 0xa - MADV_DONTNEED = 0x4 - MADV_FREE = 0x8 - MADV_HUGEPAGE = 0xe - MADV_HWPOISON = 0x64 - MADV_MERGEABLE = 0xc - MADV_NOHUGEPAGE = 0xf - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_REMOVE = 0x9 - MADV_SEQUENTIAL = 0x2 - MADV_UNMERGEABLE = 0xd - MADV_WILLNEED = 0x3 - MAP_32BIT = 0x40 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_GROWSDOWN = 0x100 - MAP_HUGETLB = 0x40000 - MAP_HUGE_MASK = 0x3f - MAP_HUGE_SHIFT = 0x1a - MAP_LOCKED = 0x2000 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x4000 - MAP_POPULATE = 0x8000 - MAP_PRIVATE = 0x2 - MAP_SHARED = 0x1 - MAP_STACK = 0x20000 - MAP_TYPE = 0xf - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - MSG_BATCH = 0x40000 - MSG_CMSG_CLOEXEC = 0x40000000 - MSG_CONFIRM = 0x800 - MSG_CTRUNC = 0x8 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x40 - MSG_EOR = 0x80 - MSG_ERRQUEUE = 0x2000 - MSG_FASTOPEN = 0x20000000 - MSG_FIN = 0x200 - MSG_MORE = 0x8000 - MSG_NOSIGNAL = 0x4000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_PROXY = 0x10 - MSG_RST = 0x1000 - MSG_SYN = 0x400 - MSG_TRUNC = 0x20 - MSG_TRYHARD = 0x4 - MSG_WAITALL = 0x100 - MSG_WAITFORONE = 0x10000 - MS_ACTIVE = 0x40000000 - MS_ASYNC = 0x1 - MS_BIND = 0x1000 - MS_BORN = 0x20000000 - MS_DIRSYNC = 0x80 - MS_INVALIDATE = 0x2 - MS_I_VERSION = 0x800000 - MS_KERNMOUNT = 0x400000 - MS_LAZYTIME = 0x2000000 - MS_MANDLOCK = 0x40 - MS_MGC_MSK = 0xffff0000 - MS_MGC_VAL = 0xc0ed0000 - MS_MOVE = 0x2000 - MS_NOATIME = 0x400 - MS_NODEV = 0x4 - MS_NODIRATIME = 0x800 - MS_NOEXEC = 0x8 - MS_NOREMOTELOCK = 0x8000000 - MS_NOSEC = 0x10000000 - MS_NOSUID = 0x2 - MS_NOUSER = -0x80000000 - MS_POSIXACL = 0x10000 - MS_PRIVATE = 0x40000 - MS_RDONLY = 0x1 - MS_REC = 0x4000 - MS_RELATIME = 0x200000 - MS_REMOUNT = 0x20 - MS_RMT_MASK = 0x2800051 - MS_SHARED = 0x100000 - MS_SILENT = 0x8000 - MS_SLAVE = 0x80000 - MS_STRICTATIME = 0x1000000 - MS_SYNC = 0x4 - MS_SYNCHRONOUS = 0x10 - MS_UNBINDABLE = 0x20000 - MS_VERBOSE = 0x8000 - NAME_MAX = 0xff - NETLINK_ADD_MEMBERSHIP = 0x1 - NETLINK_AUDIT = 0x9 - NETLINK_BROADCAST_ERROR = 0x4 - NETLINK_CAP_ACK = 0xa - NETLINK_CONNECTOR = 0xb - NETLINK_CRYPTO = 0x15 - NETLINK_DNRTMSG = 0xe - NETLINK_DROP_MEMBERSHIP = 0x2 - NETLINK_ECRYPTFS = 0x13 - NETLINK_FIB_LOOKUP = 0xa - NETLINK_FIREWALL = 0x3 - NETLINK_GENERIC = 0x10 - NETLINK_INET_DIAG = 0x4 - NETLINK_IP6_FW = 0xd - NETLINK_ISCSI = 0x8 - NETLINK_KOBJECT_UEVENT = 0xf - NETLINK_LISTEN_ALL_NSID = 0x8 - NETLINK_LIST_MEMBERSHIPS = 0x9 - NETLINK_NETFILTER = 0xc - NETLINK_NFLOG = 0x5 - NETLINK_NO_ENOBUFS = 0x5 - NETLINK_PKTINFO = 0x3 - NETLINK_RDMA = 0x14 - NETLINK_ROUTE = 0x0 - NETLINK_RX_RING = 0x6 - NETLINK_SCSITRANSPORT = 0x12 - NETLINK_SELINUX = 0x7 - NETLINK_SOCK_DIAG = 0x4 - NETLINK_TX_RING = 0x7 - NETLINK_UNUSED = 0x1 - NETLINK_USERSOCK = 0x2 - NETLINK_XFRM = 0x6 - NL0 = 0x0 - NL1 = 0x100 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - NLDLY = 0x100 - NLMSG_ALIGNTO = 0x4 - NLMSG_DONE = 0x3 - NLMSG_ERROR = 0x2 - NLMSG_HDRLEN = 0x10 - NLMSG_MIN_TYPE = 0x10 - NLMSG_NOOP = 0x1 - NLMSG_OVERRUN = 0x4 - NLM_F_ACK = 0x4 - NLM_F_APPEND = 0x800 - NLM_F_ATOMIC = 0x400 - NLM_F_CREATE = 0x400 - NLM_F_DUMP = 0x300 - NLM_F_DUMP_FILTERED = 0x20 - NLM_F_DUMP_INTR = 0x10 - NLM_F_ECHO = 0x8 - NLM_F_EXCL = 0x200 - NLM_F_MATCH = 0x200 - NLM_F_MULTI = 0x2 - NLM_F_REPLACE = 0x100 - NLM_F_REQUEST = 0x1 - NLM_F_ROOT = 0x100 - NOFLSH = 0x80 - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x2 - ONLCR = 0x4 - ONLRET = 0x20 - ONOCR = 0x10 - OPOST = 0x1 - O_ACCMODE = 0x3 - O_APPEND = 0x400 - O_ASYNC = 0x2000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x40 - O_DIRECT = 0x4000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x1000 - O_EXCL = 0x80 - O_FSYNC = 0x101000 - O_LARGEFILE = 0x8000 - O_NDELAY = 0x800 - O_NOATIME = 0x40000 - O_NOCTTY = 0x100 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x800 - O_PATH = 0x200000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x101000 - O_SYNC = 0x101000 - O_TMPFILE = 0x410000 - O_TRUNC = 0x200 - O_WRONLY = 0x1 - PACKET_ADD_MEMBERSHIP = 0x1 - PACKET_AUXDATA = 0x8 - PACKET_BROADCAST = 0x1 - PACKET_COPY_THRESH = 0x7 - PACKET_DROP_MEMBERSHIP = 0x2 - PACKET_FANOUT = 0x12 - PACKET_FANOUT_CBPF = 0x6 - PACKET_FANOUT_CPU = 0x2 - PACKET_FANOUT_DATA = 0x16 - PACKET_FANOUT_EBPF = 0x7 - PACKET_FANOUT_FLAG_DEFRAG = 0x8000 - PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 - PACKET_FANOUT_HASH = 0x0 - PACKET_FANOUT_LB = 0x1 - PACKET_FANOUT_QM = 0x5 - PACKET_FANOUT_RND = 0x4 - PACKET_FANOUT_ROLLOVER = 0x3 - PACKET_FASTROUTE = 0x6 - PACKET_HDRLEN = 0xb - PACKET_HOST = 0x0 - PACKET_KERNEL = 0x7 - PACKET_LOOPBACK = 0x5 - PACKET_LOSS = 0xe - PACKET_MR_ALLMULTI = 0x2 - PACKET_MR_MULTICAST = 0x0 - PACKET_MR_PROMISC = 0x1 - PACKET_MR_UNICAST = 0x3 - PACKET_MULTICAST = 0x2 - PACKET_ORIGDEV = 0x9 - PACKET_OTHERHOST = 0x3 - PACKET_OUTGOING = 0x4 - PACKET_QDISC_BYPASS = 0x14 - PACKET_RECV_OUTPUT = 0x3 - PACKET_RESERVE = 0xc - PACKET_ROLLOVER_STATS = 0x15 - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - PACKET_TIMESTAMP = 0x11 - PACKET_TX_HAS_OFF = 0x13 - PACKET_TX_RING = 0xd - PACKET_TX_TIMESTAMP = 0x10 - PACKET_USER = 0x6 - PACKET_VERSION = 0xa - PACKET_VNET_HDR = 0xf - PARENB = 0x100 - PARITY_CRC16_PR0 = 0x2 - PARITY_CRC16_PR0_CCITT = 0x4 - PARITY_CRC16_PR1 = 0x3 - PARITY_CRC16_PR1_CCITT = 0x5 - PARITY_CRC32_PR0_CCITT = 0x6 - PARITY_CRC32_PR1_CCITT = 0x7 - PARITY_DEFAULT = 0x0 - PARITY_NONE = 0x1 - PARMRK = 0x8 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x2401 - PERF_EVENT_IOC_ENABLE = 0x2400 - PERF_EVENT_IOC_ID = 0x80042407 - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 - PERF_EVENT_IOC_PERIOD = 0x40082404 - PERF_EVENT_IOC_REFRESH = 0x2402 - PERF_EVENT_IOC_RESET = 0x2403 - PERF_EVENT_IOC_SET_BPF = 0x40042408 - PERF_EVENT_IOC_SET_FILTER = 0x40042406 - PERF_EVENT_IOC_SET_OUTPUT = 0x2405 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_GROWSDOWN = 0x1000000 - PROT_GROWSUP = 0x2000000 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PR_CAPBSET_DROP = 0x18 - PR_CAPBSET_READ = 0x17 - PR_CAP_AMBIENT = 0x2f - PR_CAP_AMBIENT_CLEAR_ALL = 0x4 - PR_CAP_AMBIENT_IS_SET = 0x1 - PR_CAP_AMBIENT_LOWER = 0x3 - PR_CAP_AMBIENT_RAISE = 0x2 - PR_ENDIAN_BIG = 0x0 - PR_ENDIAN_LITTLE = 0x1 - PR_ENDIAN_PPC_LITTLE = 0x2 - PR_FPEMU_NOPRINT = 0x1 - PR_FPEMU_SIGFPE = 0x2 - PR_FP_EXC_ASYNC = 0x2 - PR_FP_EXC_DISABLED = 0x0 - PR_FP_EXC_DIV = 0x10000 - PR_FP_EXC_INV = 0x100000 - PR_FP_EXC_NONRECOV = 0x1 - PR_FP_EXC_OVF = 0x20000 - PR_FP_EXC_PRECISE = 0x3 - PR_FP_EXC_RES = 0x80000 - PR_FP_EXC_SW_ENABLE = 0x80 - PR_FP_EXC_UND = 0x40000 - PR_FP_MODE_FR = 0x1 - PR_FP_MODE_FRE = 0x2 - PR_GET_CHILD_SUBREAPER = 0x25 - PR_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - PR_GET_FP_MODE = 0x2e - PR_GET_KEEPCAPS = 0x7 - PR_GET_NAME = 0x10 - PR_GET_NO_NEW_PRIVS = 0x27 - PR_GET_PDEATHSIG = 0x2 - PR_GET_SECCOMP = 0x15 - PR_GET_SECUREBITS = 0x1b - PR_GET_THP_DISABLE = 0x2a - PR_GET_TID_ADDRESS = 0x28 - PR_GET_TIMERSLACK = 0x1e - PR_GET_TIMING = 0xd - PR_GET_TSC = 0x19 - PR_GET_UNALIGN = 0x5 - PR_MCE_KILL = 0x21 - PR_MCE_KILL_CLEAR = 0x0 - PR_MCE_KILL_DEFAULT = 0x2 - PR_MCE_KILL_EARLY = 0x1 - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_SET_CHILD_SUBREAPER = 0x24 - PR_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - PR_SET_FP_MODE = 0x2d - PR_SET_KEEPCAPS = 0x8 - PR_SET_MM = 0x23 - PR_SET_MM_ARG_END = 0x9 - PR_SET_MM_ARG_START = 0x8 - PR_SET_MM_AUXV = 0xc - PR_SET_MM_BRK = 0x7 - PR_SET_MM_END_CODE = 0x2 - PR_SET_MM_END_DATA = 0x4 - PR_SET_MM_ENV_END = 0xb - PR_SET_MM_ENV_START = 0xa - PR_SET_MM_EXE_FILE = 0xd - PR_SET_MM_MAP = 0xe - PR_SET_MM_MAP_SIZE = 0xf - PR_SET_MM_START_BRK = 0x6 - PR_SET_MM_START_CODE = 0x1 - PR_SET_MM_START_DATA = 0x3 - PR_SET_MM_START_STACK = 0x5 - PR_SET_NAME = 0xf - PR_SET_NO_NEW_PRIVS = 0x26 - PR_SET_PDEATHSIG = 0x1 - PR_SET_PTRACER = 0x59616d61 - PR_SET_PTRACER_ANY = 0xffffffff - PR_SET_SECCOMP = 0x16 - PR_SET_SECUREBITS = 0x1c - PR_SET_THP_DISABLE = 0x29 - PR_SET_TIMERSLACK = 0x1d - PR_SET_TIMING = 0xe - PR_SET_TSC = 0x1a - PR_SET_UNALIGN = 0x6 - PR_TASK_PERF_EVENTS_DISABLE = 0x1f - PR_TASK_PERF_EVENTS_ENABLE = 0x20 - PR_TIMING_STATISTICAL = 0x0 - PR_TIMING_TIMESTAMP = 0x1 - PR_TSC_ENABLE = 0x1 - PR_TSC_SIGSEGV = 0x2 - PR_UNALIGN_NOPRINT = 0x1 - PR_UNALIGN_SIGBUS = 0x2 - PTRACE_ATTACH = 0x10 - PTRACE_CONT = 0x7 - PTRACE_DETACH = 0x11 - PTRACE_EVENT_CLONE = 0x3 - PTRACE_EVENT_EXEC = 0x4 - PTRACE_EVENT_EXIT = 0x6 - PTRACE_EVENT_FORK = 0x1 - PTRACE_EVENT_SECCOMP = 0x7 - PTRACE_EVENT_STOP = 0x80 - PTRACE_EVENT_VFORK = 0x2 - PTRACE_EVENT_VFORK_DONE = 0x5 - PTRACE_GETEVENTMSG = 0x4201 - PTRACE_GETFPREGS = 0xe - PTRACE_GETFPXREGS = 0x12 - PTRACE_GETREGS = 0xc - PTRACE_GETREGSET = 0x4204 - PTRACE_GETSIGINFO = 0x4202 - PTRACE_GETSIGMASK = 0x420a - PTRACE_GET_THREAD_AREA = 0x19 - PTRACE_INTERRUPT = 0x4207 - PTRACE_KILL = 0x8 - PTRACE_LISTEN = 0x4208 - PTRACE_OLDSETOPTIONS = 0x15 - PTRACE_O_EXITKILL = 0x100000 - PTRACE_O_MASK = 0x3000ff - PTRACE_O_SUSPEND_SECCOMP = 0x200000 - PTRACE_O_TRACECLONE = 0x8 - PTRACE_O_TRACEEXEC = 0x10 - PTRACE_O_TRACEEXIT = 0x40 - PTRACE_O_TRACEFORK = 0x2 - PTRACE_O_TRACESECCOMP = 0x80 - PTRACE_O_TRACESYSGOOD = 0x1 - PTRACE_O_TRACEVFORK = 0x4 - PTRACE_O_TRACEVFORKDONE = 0x20 - PTRACE_PEEKDATA = 0x2 - PTRACE_PEEKSIGINFO = 0x4209 - PTRACE_PEEKSIGINFO_SHARED = 0x1 - PTRACE_PEEKTEXT = 0x1 - PTRACE_PEEKUSR = 0x3 - PTRACE_POKEDATA = 0x5 - PTRACE_POKETEXT = 0x4 - PTRACE_POKEUSR = 0x6 - PTRACE_SECCOMP_GET_FILTER = 0x420c - PTRACE_SEIZE = 0x4206 - PTRACE_SETFPREGS = 0xf - PTRACE_SETFPXREGS = 0x13 - PTRACE_SETOPTIONS = 0x4200 - PTRACE_SETREGS = 0xd - PTRACE_SETREGSET = 0x4205 - PTRACE_SETSIGINFO = 0x4203 - PTRACE_SETSIGMASK = 0x420b - PTRACE_SET_THREAD_AREA = 0x1a - PTRACE_SINGLEBLOCK = 0x21 - PTRACE_SINGLESTEP = 0x9 - PTRACE_SYSCALL = 0x18 - PTRACE_SYSEMU = 0x1f - PTRACE_SYSEMU_SINGLESTEP = 0x20 - PTRACE_TRACEME = 0x0 - RLIMIT_AS = 0x9 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_LOCKS = 0xa - RLIMIT_MEMLOCK = 0x8 - RLIMIT_MSGQUEUE = 0xc - RLIMIT_NICE = 0xd - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x6 - RLIMIT_RSS = 0x5 - RLIMIT_RTPRIO = 0xe - RLIMIT_RTTIME = 0xf - RLIMIT_SIGPENDING = 0xb - RLIMIT_STACK = 0x3 - RLIM_INFINITY = -0x1 - RTAX_ADVMSS = 0x8 - RTAX_CC_ALGO = 0x10 - RTAX_CWND = 0x7 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_MASK = 0xf - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0x10 - RTAX_MTU = 0x2 - RTAX_QUICKACK = 0xf - RTAX_REORDERING = 0x9 - RTAX_RTO_MIN = 0xd - RTAX_RTT = 0x4 - RTAX_RTTVAR = 0x5 - RTAX_SSTHRESH = 0x6 - RTAX_UNSPEC = 0x0 - RTAX_WINDOW = 0x3 - RTA_ALIGNTO = 0x4 - RTA_MAX = 0x19 - RTCF_DIRECTSRC = 0x4000000 - RTCF_DOREDIRECT = 0x1000000 - RTCF_LOG = 0x2000000 - RTCF_MASQ = 0x400000 - RTCF_NAT = 0x800000 - RTCF_VALVE = 0x200000 - RTF_ADDRCLASSMASK = 0xf8000000 - RTF_ADDRCONF = 0x40000 - RTF_ALLONLINK = 0x20000 - RTF_BROADCAST = 0x10000000 - RTF_CACHE = 0x1000000 - RTF_DEFAULT = 0x10000 - RTF_DYNAMIC = 0x10 - RTF_FLOW = 0x2000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_INTERFACE = 0x40000000 - RTF_IRTT = 0x100 - RTF_LINKRT = 0x100000 - RTF_LOCAL = 0x80000000 - RTF_MODIFIED = 0x20 - RTF_MSS = 0x40 - RTF_MTU = 0x40 - RTF_MULTICAST = 0x20000000 - RTF_NAT = 0x8000000 - RTF_NOFORWARD = 0x1000 - RTF_NONEXTHOP = 0x200000 - RTF_NOPMTUDISC = 0x4000 - RTF_POLICY = 0x4000000 - RTF_REINSTATE = 0x8 - RTF_REJECT = 0x200 - RTF_STATIC = 0x400 - RTF_THROW = 0x2000 - RTF_UP = 0x1 - RTF_WINDOW = 0x80 - RTF_XRESOLVE = 0x800 - RTM_BASE = 0x10 - RTM_DELACTION = 0x31 - RTM_DELADDR = 0x15 - RTM_DELADDRLABEL = 0x49 - RTM_DELLINK = 0x11 - RTM_DELMDB = 0x55 - RTM_DELNEIGH = 0x1d - RTM_DELNSID = 0x59 - RTM_DELQDISC = 0x25 - RTM_DELROUTE = 0x19 - RTM_DELRULE = 0x21 - RTM_DELTCLASS = 0x29 - RTM_DELTFILTER = 0x2d - RTM_F_CLONED = 0x200 - RTM_F_EQUALIZE = 0x400 - RTM_F_LOOKUP_TABLE = 0x1000 - RTM_F_NOTIFY = 0x100 - RTM_F_PREFIX = 0x800 - RTM_GETACTION = 0x32 - RTM_GETADDR = 0x16 - RTM_GETADDRLABEL = 0x4a - RTM_GETANYCAST = 0x3e - RTM_GETDCB = 0x4e - RTM_GETLINK = 0x12 - RTM_GETMDB = 0x56 - RTM_GETMULTICAST = 0x3a - RTM_GETNEIGH = 0x1e - RTM_GETNEIGHTBL = 0x42 - RTM_GETNETCONF = 0x52 - RTM_GETNSID = 0x5a - RTM_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETSTATS = 0x5e - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_MAX = 0x5f - RTM_NEWACTION = 0x30 - RTM_NEWADDR = 0x14 - RTM_NEWADDRLABEL = 0x48 - RTM_NEWLINK = 0x10 - RTM_NEWMDB = 0x54 - RTM_NEWNDUSEROPT = 0x44 - RTM_NEWNEIGH = 0x1c - RTM_NEWNEIGHTBL = 0x40 - RTM_NEWNETCONF = 0x50 - RTM_NEWNSID = 0x58 - RTM_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWSTATS = 0x5c - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NR_FAMILIES = 0x14 - RTM_NR_MSGTYPES = 0x50 - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTNH_ALIGNTO = 0x4 - RTNH_COMPARE_MASK = 0x19 - RTNH_F_DEAD = 0x1 - RTNH_F_LINKDOWN = 0x10 - RTNH_F_OFFLOAD = 0x8 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTN_MAX = 0xb - RTPROT_BABEL = 0x2a - RTPROT_BIRD = 0xc - RTPROT_BOOT = 0x3 - RTPROT_DHCP = 0x10 - RTPROT_DNROUTED = 0xd - RTPROT_GATED = 0x8 - RTPROT_KERNEL = 0x2 - RTPROT_MROUTED = 0x11 - RTPROT_MRT = 0xa - RTPROT_NTK = 0xf - RTPROT_RA = 0x9 - RTPROT_REDIRECT = 0x1 - RTPROT_STATIC = 0x4 - RTPROT_UNSPEC = 0x0 - RTPROT_XORP = 0xe - RTPROT_ZEBRA = 0xb - RT_CLASS_DEFAULT = 0xfd - RT_CLASS_LOCAL = 0xff - RT_CLASS_MAIN = 0xfe - RT_CLASS_MAX = 0xff - RT_CLASS_UNSPEC = 0x0 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_CREDENTIALS = 0x2 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPNS = 0x23 - SCM_WIFI_STATUS = 0x29 - SECCOMP_MODE_DISABLED = 0x0 - SECCOMP_MODE_FILTER = 0x2 - SECCOMP_MODE_STRICT = 0x1 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCATMARK = 0x8905 - SIOCBONDCHANGEACTIVE = 0x8995 - SIOCBONDENSLAVE = 0x8990 - SIOCBONDINFOQUERY = 0x8994 - SIOCBONDRELEASE = 0x8991 - SIOCBONDSETHWADDR = 0x8992 - SIOCBONDSLAVEINFOQUERY = 0x8993 - SIOCBRADDBR = 0x89a0 - SIOCBRADDIF = 0x89a2 - SIOCBRDELBR = 0x89a1 - SIOCBRDELIF = 0x89a3 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCETHTOOL = 0x8946 - SIOCGARP = 0x8954 - SIOCGHWTSTAMP = 0x89b1 - SIOCGIFADDR = 0x8915 - SIOCGIFBR = 0x8940 - SIOCGIFBRDADDR = 0x8919 - SIOCGIFCONF = 0x8912 - SIOCGIFCOUNT = 0x8938 - SIOCGIFDSTADDR = 0x8917 - SIOCGIFENCAP = 0x8925 - SIOCGIFFLAGS = 0x8913 - SIOCGIFHWADDR = 0x8927 - SIOCGIFINDEX = 0x8933 - SIOCGIFMAP = 0x8970 - SIOCGIFMEM = 0x891f - SIOCGIFMETRIC = 0x891d - SIOCGIFMTU = 0x8921 - SIOCGIFNAME = 0x8910 - SIOCGIFNETMASK = 0x891b - SIOCGIFPFLAGS = 0x8935 - SIOCGIFSLAVE = 0x8929 - SIOCGIFTXQLEN = 0x8942 - SIOCGIFVLAN = 0x8982 - SIOCGMIIPHY = 0x8947 - SIOCGMIIREG = 0x8948 - SIOCGPGRP = 0x8904 - SIOCGRARP = 0x8961 - SIOCGSKNS = 0x894c - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCINQ = 0x541b - SIOCOUTQ = 0x5411 - SIOCOUTQNSD = 0x894b - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - SIOCSHWTSTAMP = 0x89b0 - SIOCSIFADDR = 0x8916 - SIOCSIFBR = 0x8941 - SIOCSIFBRDADDR = 0x891a - SIOCSIFDSTADDR = 0x8918 - SIOCSIFENCAP = 0x8926 - SIOCSIFFLAGS = 0x8914 - SIOCSIFHWADDR = 0x8924 - SIOCSIFHWBROADCAST = 0x8937 - SIOCSIFLINK = 0x8911 - SIOCSIFMAP = 0x8971 - SIOCSIFMEM = 0x8920 - SIOCSIFMETRIC = 0x891e - SIOCSIFMTU = 0x8922 - SIOCSIFNAME = 0x8923 - SIOCSIFNETMASK = 0x891c - SIOCSIFPFLAGS = 0x8934 - SIOCSIFSLAVE = 0x8930 - SIOCSIFTXQLEN = 0x8943 - SIOCSIFVLAN = 0x8983 - SIOCSMIIREG = 0x8949 - SIOCSPGRP = 0x8902 - SIOCSRARP = 0x8962 - SIOCWANDEV = 0x894a - SOCK_CLOEXEC = 0x80000 - SOCK_DCCP = 0x6 - SOCK_DGRAM = 0x2 - SOCK_IOC_TYPE = 0x89 - SOCK_NONBLOCK = 0x800 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_AAL = 0x109 - SOL_ALG = 0x117 - SOL_ATM = 0x108 - SOL_CAIF = 0x116 - SOL_CAN_BASE = 0x64 - SOL_DCCP = 0x10d - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_IUCV = 0x115 - SOL_KCM = 0x119 - SOL_LLC = 0x10c - SOL_NETBEUI = 0x10b - SOL_NETLINK = 0x10e - SOL_NFC = 0x118 - SOL_PACKET = 0x107 - SOL_PNPIPE = 0x113 - SOL_PPPOL2TP = 0x111 - SOL_RAW = 0xff - SOL_RDS = 0x114 - SOL_RXRPC = 0x110 - SOL_SOCKET = 0x1 - SOL_TCP = 0x6 - SOL_TIPC = 0x10f - SOL_X25 = 0x106 - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_BPF = 0x32 - SO_ATTACH_FILTER = 0x1a - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x6 - SO_BSDCOMPAT = 0xe - SO_BUSY_POLL = 0x2e - SO_CNX_ADVICE = 0x35 - SO_DEBUG = 0x1 - SO_DETACH_BPF = 0x1b - SO_DETACH_FILTER = 0x1b - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_ERROR = 0x4 - SO_GET_FILTER = 0x1a - SO_INCOMING_CPU = 0x31 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_NOFCS = 0x2b - SO_NO_CHECK = 0xb - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x11 - SO_PEERNAME = 0x1c - SO_PEERSEC = 0x1f - SO_PRIORITY = 0xc - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x12 - SO_RCVTIMEO = 0x14 - SO_REUSEADDR = 0x2 - SO_REUSEPORT = 0xf - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x13 - SO_SNDTIMEO = 0x15 - SO_TIMESTAMP = 0x1d - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TYPE = 0x3 - SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 - SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 - SO_VM_SOCKETS_BUFFER_SIZE = 0x0 - SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 - SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 - SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 - SO_VM_SOCKETS_TRUSTED = 0x5 - SO_WIFI_STATUS = 0x29 - SPLICE_F_GIFT = 0x8 - SPLICE_F_MORE = 0x4 - SPLICE_F_MOVE = 0x1 - SPLICE_F_NONBLOCK = 0x2 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TASKSTATS_CMD_ATTR_MAX = 0x4 - TASKSTATS_CMD_MAX = 0x2 - TASKSTATS_GENL_NAME = "TASKSTATS" - TASKSTATS_GENL_VERSION = 0x1 - TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x8 - TCFLSH = 0x540b - TCGETA = 0x5405 - TCGETS = 0x5401 - TCGETS2 = 0x802c542a - TCGETX = 0x5432 - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_CC_INFO = 0x1a - TCP_CONGESTION = 0xd - TCP_COOKIE_IN_ALWAYS = 0x1 - TCP_COOKIE_MAX = 0x10 - TCP_COOKIE_MIN = 0x8 - TCP_COOKIE_OUT_NEVER = 0x2 - TCP_COOKIE_PAIR_SIZE = 0x20 - TCP_COOKIE_TRANSACTIONS = 0xf - TCP_CORK = 0x3 - TCP_DEFER_ACCEPT = 0x9 - TCP_FASTOPEN = 0x17 - TCP_INFO = 0xb - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x4 - TCP_KEEPINTVL = 0x5 - TCP_LINGER2 = 0x8 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0xe - TCP_MD5SIG_MAXKEYLEN = 0x50 - TCP_MSS = 0x200 - TCP_MSS_DEFAULT = 0x218 - TCP_MSS_DESIRED = 0x4c4 - TCP_NODELAY = 0x1 - TCP_NOTSENT_LOWAT = 0x19 - TCP_QUEUE_SEQ = 0x15 - TCP_QUICKACK = 0xc - TCP_REPAIR = 0x13 - TCP_REPAIR_OPTIONS = 0x16 - TCP_REPAIR_QUEUE = 0x14 - TCP_REPAIR_WINDOW = 0x1d - TCP_SAVED_SYN = 0x1c - TCP_SAVE_SYN = 0x1b - TCP_SYNCNT = 0x7 - TCP_S_DATA_IN = 0x4 - TCP_S_DATA_OUT = 0x8 - TCP_THIN_DUPACK = 0x11 - TCP_THIN_LINEAR_TIMEOUTS = 0x10 - TCP_TIMESTAMP = 0x18 - TCP_USER_TIMEOUT = 0x12 - TCP_WINDOW_CLAMP = 0xa - TCSAFLUSH = 0x2 - TCSBRK = 0x5409 - TCSBRKP = 0x5425 - TCSETA = 0x5406 - TCSETAF = 0x5408 - TCSETAW = 0x5407 - TCSETS = 0x5402 - TCSETS2 = 0x402c542b - TCSETSF = 0x5404 - TCSETSF2 = 0x402c542d - TCSETSW = 0x5403 - TCSETSW2 = 0x402c542c - TCSETX = 0x5433 - TCSETXF = 0x5434 - TCSETXW = 0x5435 - TCXONC = 0x540a - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x80045432 - TIOCGETD = 0x5424 - TIOCGEXCL = 0x80045440 - TIOCGICOUNT = 0x545d - TIOCGLCKTRMIOS = 0x5456 - TIOCGPGRP = 0x540f - TIOCGPKT = 0x80045438 - TIOCGPTLCK = 0x80045439 - TIOCGPTN = 0x80045430 - TIOCGRS485 = 0x542e - TIOCGSERIAL = 0x541e - TIOCGSID = 0x5429 - TIOCGSOFTCAR = 0x5419 - TIOCGWINSZ = 0x5413 - TIOCINQ = 0x541b - TIOCLINUX = 0x541c - TIOCMBIC = 0x5417 - TIOCMBIS = 0x5416 - TIOCMGET = 0x5415 - TIOCMIWAIT = 0x545c - TIOCMSET = 0x5418 - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x5422 - TIOCNXCL = 0x540d - TIOCOUTQ = 0x5411 - TIOCPKT = 0x5420 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x540e - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x5423 - TIOCSIG = 0x40045436 - TIOCSLCKTRMIOS = 0x5457 - TIOCSPGRP = 0x5410 - TIOCSPTLCK = 0x40045431 - TIOCSRS485 = 0x542f - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x541a - TIOCSTI = 0x5412 - TIOCSWINSZ = 0x5414 - TIOCVHANGUP = 0x5437 - TOSTOP = 0x100 - TS_COMM_LEN = 0x20 - TUNATTACHFILTER = 0x400854d5 - TUNDETACHFILTER = 0x400854d6 - TUNGETFEATURES = 0x800454cf - TUNGETFILTER = 0x800854db - TUNGETIFF = 0x800454d2 - TUNGETSNDBUF = 0x800454d3 - TUNGETVNETBE = 0x800454df - TUNGETVNETHDRSZ = 0x800454d7 - TUNGETVNETLE = 0x800454dd - TUNSETDEBUG = 0x400454c9 - TUNSETGROUP = 0x400454ce - TUNSETIFF = 0x400454ca - TUNSETIFINDEX = 0x400454da - TUNSETLINK = 0x400454cd - TUNSETNOCSUM = 0x400454c8 - TUNSETOFFLOAD = 0x400454d0 - TUNSETOWNER = 0x400454cc - TUNSETPERSIST = 0x400454cb - TUNSETQUEUE = 0x400454d9 - TUNSETSNDBUF = 0x400454d4 - TUNSETTXFILTER = 0x400454d1 - TUNSETVNETBE = 0x400454de - TUNSETVNETHDRSZ = 0x400454d8 - TUNSETVNETLE = 0x400454dc - UMOUNT_NOFOLLOW = 0x8 - VDISCARD = 0xd - VEOF = 0x4 - VEOL = 0xb - VEOL2 = 0x10 - VERASE = 0x2 - VINTR = 0x0 - VKILL = 0x3 - VLNEXT = 0xf - VMADDR_CID_ANY = 0xffffffff - VMADDR_CID_HOST = 0x2 - VMADDR_CID_HYPERVISOR = 0x0 - VMADDR_CID_RESERVED = 0x1 - VMADDR_PORT_ANY = 0xffffffff - VMIN = 0x6 - VM_SOCKETS_INVALID_VERSION = 0xffffffff - VQUIT = 0x1 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VT0 = 0x0 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WALL = 0x40000000 - WCLONE = 0x80000000 - WCONTINUED = 0x8 - WEXITED = 0x4 - WNOHANG = 0x1 - WNOTHREAD = 0x20000000 - WNOWAIT = 0x1000000 - WORDSIZE = 0x20 - WSTOPPED = 0x2 - WUNTRACED = 0x2 - XATTR_CREATE = 0x1 - XATTR_REPLACE = 0x2 - XCASE = 0x4 - XTABS = 0x1800 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x62) - EADDRNOTAVAIL = syscall.Errno(0x63) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x61) - EAGAIN = syscall.Errno(0xb) - EALREADY = syscall.Errno(0x72) - EBADE = syscall.Errno(0x34) - EBADF = syscall.Errno(0x9) - EBADFD = syscall.Errno(0x4d) - EBADMSG = syscall.Errno(0x4a) - EBADR = syscall.Errno(0x35) - EBADRQC = syscall.Errno(0x38) - EBADSLT = syscall.Errno(0x39) - EBFONT = syscall.Errno(0x3b) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x7d) - ECHILD = syscall.Errno(0xa) - ECHRNG = syscall.Errno(0x2c) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x67) - ECONNREFUSED = syscall.Errno(0x6f) - ECONNRESET = syscall.Errno(0x68) - EDEADLK = syscall.Errno(0x23) - EDEADLOCK = syscall.Errno(0x23) - EDESTADDRREQ = syscall.Errno(0x59) - EDOM = syscall.Errno(0x21) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x7a) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EHOSTDOWN = syscall.Errno(0x70) - EHOSTUNREACH = syscall.Errno(0x71) - EHWPOISON = syscall.Errno(0x85) - EIDRM = syscall.Errno(0x2b) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x73) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x6a) - EISDIR = syscall.Errno(0x15) - EISNAM = syscall.Errno(0x78) - EKEYEXPIRED = syscall.Errno(0x7f) - EKEYREJECTED = syscall.Errno(0x81) - EKEYREVOKED = syscall.Errno(0x80) - EL2HLT = syscall.Errno(0x33) - EL2NSYNC = syscall.Errno(0x2d) - EL3HLT = syscall.Errno(0x2e) - EL3RST = syscall.Errno(0x2f) - ELIBACC = syscall.Errno(0x4f) - ELIBBAD = syscall.Errno(0x50) - ELIBEXEC = syscall.Errno(0x53) - ELIBMAX = syscall.Errno(0x52) - ELIBSCN = syscall.Errno(0x51) - ELNRNG = syscall.Errno(0x30) - ELOOP = syscall.Errno(0x28) - EMEDIUMTYPE = syscall.Errno(0x7c) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x5a) - EMULTIHOP = syscall.Errno(0x48) - ENAMETOOLONG = syscall.Errno(0x24) - ENAVAIL = syscall.Errno(0x77) - ENETDOWN = syscall.Errno(0x64) - ENETRESET = syscall.Errno(0x66) - ENETUNREACH = syscall.Errno(0x65) - ENFILE = syscall.Errno(0x17) - ENOANO = syscall.Errno(0x37) - ENOBUFS = syscall.Errno(0x69) - ENOCSI = syscall.Errno(0x32) - ENODATA = syscall.Errno(0x3d) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOKEY = syscall.Errno(0x7e) - ENOLCK = syscall.Errno(0x25) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x7b) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x2a) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x5c) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x26) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x6b) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x27) - ENOTNAM = syscall.Errno(0x76) - ENOTRECOVERABLE = syscall.Errno(0x83) - ENOTSOCK = syscall.Errno(0x58) - ENOTSUP = syscall.Errno(0x5f) - ENOTTY = syscall.Errno(0x19) - ENOTUNIQ = syscall.Errno(0x4c) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x5f) - EOVERFLOW = syscall.Errno(0x4b) - EOWNERDEAD = syscall.Errno(0x82) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x60) - EPIPE = syscall.Errno(0x20) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x5d) - EPROTOTYPE = syscall.Errno(0x5b) - ERANGE = syscall.Errno(0x22) - EREMCHG = syscall.Errno(0x4e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x79) - ERESTART = syscall.Errno(0x55) - ERFKILL = syscall.Errno(0x84) - EROFS = syscall.Errno(0x1e) - ESHUTDOWN = syscall.Errno(0x6c) - ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x74) - ESTRPIPE = syscall.Errno(0x56) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x6e) - ETOOMANYREFS = syscall.Errno(0x6d) - ETXTBSY = syscall.Errno(0x1a) - EUCLEAN = syscall.Errno(0x75) - EUNATCH = syscall.Errno(0x31) - EUSERS = syscall.Errno(0x57) - EWOULDBLOCK = syscall.Errno(0xb) - EXDEV = syscall.Errno(0x12) - EXFULL = syscall.Errno(0x36) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0x7) - SIGCHLD = syscall.Signal(0x11) - SIGCLD = syscall.Signal(0x11) - SIGCONT = syscall.Signal(0x12) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x1d) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) - SIGPOLL = syscall.Signal(0x1d) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x1e) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTKFLT = syscall.Signal(0x10) - SIGSTOP = syscall.Signal(0x13) - SIGSYS = syscall.Signal(0x1f) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x14) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGUNUSED = syscall.Signal(0x1f) - SIGURG = syscall.Signal(0x17) - SIGUSR1 = syscall.Signal(0xa) - SIGUSR2 = syscall.Signal(0xc) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errors = [...]string{ - 1: "operation not permitted", - 2: "no such file or directory", - 3: "no such process", - 4: "interrupted system call", - 5: "input/output error", - 6: "no such device or address", - 7: "argument list too long", - 8: "exec format error", - 9: "bad file descriptor", - 10: "no child processes", - 11: "resource temporarily unavailable", - 12: "cannot allocate memory", - 13: "permission denied", - 14: "bad address", - 15: "block device required", - 16: "device or resource busy", - 17: "file exists", - 18: "invalid cross-device link", - 19: "no such device", - 20: "not a directory", - 21: "is a directory", - 22: "invalid argument", - 23: "too many open files in system", - 24: "too many open files", - 25: "inappropriate ioctl for device", - 26: "text file busy", - 27: "file too large", - 28: "no space left on device", - 29: "illegal seek", - 30: "read-only file system", - 31: "too many links", - 32: "broken pipe", - 33: "numerical argument out of domain", - 34: "numerical result out of range", - 35: "resource deadlock avoided", - 36: "file name too long", - 37: "no locks available", - 38: "function not implemented", - 39: "directory not empty", - 40: "too many levels of symbolic links", - 42: "no message of desired type", - 43: "identifier removed", - 44: "channel number out of range", - 45: "level 2 not synchronized", - 46: "level 3 halted", - 47: "level 3 reset", - 48: "link number out of range", - 49: "protocol driver not attached", - 50: "no CSI structure available", - 51: "level 2 halted", - 52: "invalid exchange", - 53: "invalid request descriptor", - 54: "exchange full", - 55: "no anode", - 56: "invalid request code", - 57: "invalid slot", - 59: "bad font file format", - 60: "device not a stream", - 61: "no data available", - 62: "timer expired", - 63: "out of streams resources", - 64: "machine is not on the network", - 65: "package not installed", - 66: "object is remote", - 67: "link has been severed", - 68: "advertise error", - 69: "srmount error", - 70: "communication error on send", - 71: "protocol error", - 72: "multihop attempted", - 73: "RFS specific error", - 74: "bad message", - 75: "value too large for defined data type", - 76: "name not unique on network", - 77: "file descriptor in bad state", - 78: "remote address changed", - 79: "can not access a needed shared library", - 80: "accessing a corrupted shared library", - 81: ".lib section in a.out corrupted", - 82: "attempting to link in too many shared libraries", - 83: "cannot exec a shared library directly", - 84: "invalid or incomplete multibyte or wide character", - 85: "interrupted system call should be restarted", - 86: "streams pipe error", - 87: "too many users", - 88: "socket operation on non-socket", - 89: "destination address required", - 90: "message too long", - 91: "protocol wrong type for socket", - 92: "protocol not available", - 93: "protocol not supported", - 94: "socket type not supported", - 95: "operation not supported", - 96: "protocol family not supported", - 97: "address family not supported by protocol", - 98: "address already in use", - 99: "cannot assign requested address", - 100: "network is down", - 101: "network is unreachable", - 102: "network dropped connection on reset", - 103: "software caused connection abort", - 104: "connection reset by peer", - 105: "no buffer space available", - 106: "transport endpoint is already connected", - 107: "transport endpoint is not connected", - 108: "cannot send after transport endpoint shutdown", - 109: "too many references: cannot splice", - 110: "connection timed out", - 111: "connection refused", - 112: "host is down", - 113: "no route to host", - 114: "operation already in progress", - 115: "operation now in progress", - 116: "stale file handle", - 117: "structure needs cleaning", - 118: "not a XENIX named type file", - 119: "no XENIX semaphores available", - 120: "is a named type file", - 121: "remote I/O error", - 122: "disk quota exceeded", - 123: "no medium found", - 124: "wrong medium type", - 125: "operation canceled", - 126: "required key not available", - 127: "key has expired", - 128: "key has been revoked", - 129: "key was rejected by service", - 130: "owner died", - 131: "state not recoverable", - 132: "operation not possible due to RF-kill", - 133: "memory page has hardware error", -} - -// Signal table -var signals = [...]string{ - 1: "hangup", - 2: "interrupt", - 3: "quit", - 4: "illegal instruction", - 5: "trace/breakpoint trap", - 6: "aborted", - 7: "bus error", - 8: "floating point exception", - 9: "killed", - 10: "user defined signal 1", - 11: "segmentation fault", - 12: "user defined signal 2", - 13: "broken pipe", - 14: "alarm clock", - 15: "terminated", - 16: "stack fault", - 17: "child exited", - 18: "continued", - 19: "stopped (signal)", - 20: "stopped", - 21: "stopped (tty input)", - 22: "stopped (tty output)", - 23: "urgent I/O condition", - 24: "CPU time limit exceeded", - 25: "file size limit exceeded", - 26: "virtual timer expired", - 27: "profiling timer expired", - 28: "window changed", - 29: "I/O possible", - 30: "power failure", - 31: "bad system call", -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go deleted file mode 100644 index a6618fc..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go +++ /dev/null @@ -1,2201 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/include -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build amd64,linux - -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m64 _const.go - -package unix - -import "syscall" - -const ( - AF_ALG = 0x26 - AF_APPLETALK = 0x5 - AF_ASH = 0x12 - AF_ATMPVC = 0x8 - AF_ATMSVC = 0x14 - AF_AX25 = 0x3 - AF_BLUETOOTH = 0x1f - AF_BRIDGE = 0x7 - AF_CAIF = 0x25 - AF_CAN = 0x1d - AF_DECnet = 0xc - AF_ECONET = 0x13 - AF_FILE = 0x1 - AF_IB = 0x1b - AF_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KCM = 0x29 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x2b - AF_MPLS = 0x1c - AF_NETBEUI = 0xd - AF_NETLINK = 0x10 - AF_NETROM = 0x6 - AF_NFC = 0x27 - AF_PACKET = 0x11 - AF_PHONET = 0x23 - AF_PPPOX = 0x18 - AF_QIPCRTR = 0x2a - AF_RDS = 0x15 - AF_ROSE = 0xb - AF_ROUTE = 0x10 - AF_RXRPC = 0x21 - AF_SECURITY = 0xe - AF_SNA = 0x16 - AF_TIPC = 0x1e - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VSOCK = 0x28 - AF_WANPIPE = 0x19 - AF_X25 = 0x9 - ALG_OP_DECRYPT = 0x0 - ALG_OP_ENCRYPT = 0x1 - ALG_SET_AEAD_ASSOCLEN = 0x4 - ALG_SET_AEAD_AUTHSIZE = 0x5 - ALG_SET_IV = 0x2 - ALG_SET_KEY = 0x1 - ALG_SET_OP = 0x3 - ARPHRD_6LOWPAN = 0x339 - ARPHRD_ADAPT = 0x108 - ARPHRD_APPLETLK = 0x8 - ARPHRD_ARCNET = 0x7 - ARPHRD_ASH = 0x30d - ARPHRD_ATM = 0x13 - ARPHRD_AX25 = 0x3 - ARPHRD_BIF = 0x307 - ARPHRD_CAIF = 0x336 - ARPHRD_CAN = 0x118 - ARPHRD_CHAOS = 0x5 - ARPHRD_CISCO = 0x201 - ARPHRD_CSLIP = 0x101 - ARPHRD_CSLIP6 = 0x103 - ARPHRD_DDCMP = 0x205 - ARPHRD_DLCI = 0xf - ARPHRD_ECONET = 0x30e - ARPHRD_EETHER = 0x2 - ARPHRD_ETHER = 0x1 - ARPHRD_EUI64 = 0x1b - ARPHRD_FCAL = 0x311 - ARPHRD_FCFABRIC = 0x313 - ARPHRD_FCPL = 0x312 - ARPHRD_FCPP = 0x310 - ARPHRD_FDDI = 0x306 - ARPHRD_FRAD = 0x302 - ARPHRD_HDLC = 0x201 - ARPHRD_HIPPI = 0x30c - ARPHRD_HWX25 = 0x110 - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_IEEE80211 = 0x321 - ARPHRD_IEEE80211_PRISM = 0x322 - ARPHRD_IEEE80211_RADIOTAP = 0x323 - ARPHRD_IEEE802154 = 0x324 - ARPHRD_IEEE802154_MONITOR = 0x325 - ARPHRD_IEEE802_TR = 0x320 - ARPHRD_INFINIBAND = 0x20 - ARPHRD_IP6GRE = 0x337 - ARPHRD_IPDDP = 0x309 - ARPHRD_IPGRE = 0x30a - ARPHRD_IRDA = 0x30f - ARPHRD_LAPB = 0x204 - ARPHRD_LOCALTLK = 0x305 - ARPHRD_LOOPBACK = 0x304 - ARPHRD_METRICOM = 0x17 - ARPHRD_NETLINK = 0x338 - ARPHRD_NETROM = 0x0 - ARPHRD_NONE = 0xfffe - ARPHRD_PHONET = 0x334 - ARPHRD_PHONET_PIPE = 0x335 - ARPHRD_PIMREG = 0x30b - ARPHRD_PPP = 0x200 - ARPHRD_PRONET = 0x4 - ARPHRD_RAWHDLC = 0x206 - ARPHRD_ROSE = 0x10e - ARPHRD_RSRVD = 0x104 - ARPHRD_SIT = 0x308 - ARPHRD_SKIP = 0x303 - ARPHRD_SLIP = 0x100 - ARPHRD_SLIP6 = 0x102 - ARPHRD_TUNNEL = 0x300 - ARPHRD_TUNNEL6 = 0x301 - ARPHRD_VOID = 0xffff - ARPHRD_X25 = 0x10f - B0 = 0x0 - B1000000 = 0x1008 - B110 = 0x3 - B115200 = 0x1002 - B1152000 = 0x1009 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B1500000 = 0x100a - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B2000000 = 0x100b - B230400 = 0x1003 - B2400 = 0xb - B2500000 = 0x100c - B300 = 0x7 - B3000000 = 0x100d - B3500000 = 0x100e - B38400 = 0xf - B4000000 = 0x100f - B460800 = 0x1004 - B4800 = 0xc - B50 = 0x1 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B600 = 0x8 - B75 = 0x2 - B921600 = 0x1007 - B9600 = 0xd - BLKBSZGET = 0x80081270 - BLKBSZSET = 0x40081271 - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80081272 - BLKPBSZGET = 0x127b - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d - BLKRRPART = 0x125f - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 - BOTHER = 0x1000 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIV = 0x30 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LL_OFF = -0x200000 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXINSNS = 0x1000 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_NET_OFF = -0x100000 - BPF_OR = 0x40 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XOR = 0xa0 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x2000 - BSDLY = 0x2000 - CAN_BCM = 0x2 - CAN_EFF_FLAG = 0x80000000 - CAN_EFF_ID_BITS = 0x1d - CAN_EFF_MASK = 0x1fffffff - CAN_ERR_FLAG = 0x20000000 - CAN_ERR_MASK = 0x1fffffff - CAN_INV_FILTER = 0x20000000 - CAN_ISOTP = 0x6 - CAN_MAX_DLC = 0x8 - CAN_MAX_DLEN = 0x8 - CAN_MCNET = 0x5 - CAN_MTU = 0x10 - CAN_NPROTO = 0x7 - CAN_RAW = 0x1 - CAN_RAW_FILTER_MAX = 0x200 - CAN_RTR_FLAG = 0x40000000 - CAN_SFF_ID_BITS = 0xb - CAN_SFF_MASK = 0x7ff - CAN_TP16 = 0x3 - CAN_TP20 = 0x4 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CFLUSH = 0xf - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CLOCK_BOOTTIME = 0x7 - CLOCK_BOOTTIME_ALARM = 0x9 - CLOCK_DEFAULT = 0x0 - CLOCK_EXT = 0x1 - CLOCK_INT = 0x2 - CLOCK_MONOTONIC = 0x1 - CLOCK_MONOTONIC_COARSE = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_ALARM = 0x8 - CLOCK_REALTIME_COARSE = 0x5 - CLOCK_TAI = 0xb - CLOCK_THREAD_CPUTIME_ID = 0x3 - CLOCK_TXFROMRX = 0x4 - CLOCK_TXINT = 0x3 - CLONE_CHILD_CLEARTID = 0x200000 - CLONE_CHILD_SETTID = 0x1000000 - CLONE_DETACHED = 0x400000 - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_IO = 0x80000000 - CLONE_NEWCGROUP = 0x2000000 - CLONE_NEWIPC = 0x8000000 - CLONE_NEWNET = 0x40000000 - CLONE_NEWNS = 0x20000 - CLONE_NEWPID = 0x20000000 - CLONE_NEWUSER = 0x10000000 - CLONE_NEWUTS = 0x4000000 - CLONE_PARENT = 0x8000 - CLONE_PARENT_SETTID = 0x100000 - CLONE_PTRACE = 0x2000 - CLONE_SETTLS = 0x80000 - CLONE_SIGHAND = 0x800 - CLONE_SYSVSEM = 0x40000 - CLONE_THREAD = 0x10000 - CLONE_UNTRACED = 0x800000 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CMSPAR = 0x40000000 - CR0 = 0x0 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRDLY = 0x600 - CREAD = 0x80 - CRTSCTS = 0x80000000 - CS5 = 0x0 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIGNAL = 0xff - CSIZE = 0x30 - CSTART = 0x11 - CSTATUS = 0x0 - CSTOP = 0x13 - CSTOPB = 0x40 - CSUSP = 0x1a - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EFD_SEMAPHORE = 0x1 - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - EPOLLEXCLUSIVE = 0x10000000 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLONESHOT = 0x40000000 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDHUP = 0x2000 - EPOLLRDNORM = 0x40 - EPOLLWAKEUP = 0x20000000 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CLOEXEC = 0x80000 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - ETH_P_1588 = 0x88f7 - ETH_P_8021AD = 0x88a8 - ETH_P_8021AH = 0x88e7 - ETH_P_8021Q = 0x8100 - ETH_P_80221 = 0x8917 - ETH_P_802_2 = 0x4 - ETH_P_802_3 = 0x1 - ETH_P_802_3_MIN = 0x600 - ETH_P_802_EX1 = 0x88b5 - ETH_P_AARP = 0x80f3 - ETH_P_AF_IUCV = 0xfbfb - ETH_P_ALL = 0x3 - ETH_P_AOE = 0x88a2 - ETH_P_ARCNET = 0x1a - ETH_P_ARP = 0x806 - ETH_P_ATALK = 0x809b - ETH_P_ATMFATE = 0x8884 - ETH_P_ATMMPOA = 0x884c - ETH_P_AX25 = 0x2 - ETH_P_BATMAN = 0x4305 - ETH_P_BPQ = 0x8ff - ETH_P_CAIF = 0xf7 - ETH_P_CAN = 0xc - ETH_P_CANFD = 0xd - ETH_P_CONTROL = 0x16 - ETH_P_CUST = 0x6006 - ETH_P_DDCMP = 0x6 - ETH_P_DEC = 0x6000 - ETH_P_DIAG = 0x6005 - ETH_P_DNA_DL = 0x6001 - ETH_P_DNA_RC = 0x6002 - ETH_P_DNA_RT = 0x6003 - ETH_P_DSA = 0x1b - ETH_P_ECONET = 0x18 - ETH_P_EDSA = 0xdada - ETH_P_FCOE = 0x8906 - ETH_P_FIP = 0x8914 - ETH_P_HDLC = 0x19 - ETH_P_HSR = 0x892f - ETH_P_IEEE802154 = 0xf6 - ETH_P_IEEEPUP = 0xa00 - ETH_P_IEEEPUPAT = 0xa01 - ETH_P_IP = 0x800 - ETH_P_IPV6 = 0x86dd - ETH_P_IPX = 0x8137 - ETH_P_IRDA = 0x17 - ETH_P_LAT = 0x6004 - ETH_P_LINK_CTL = 0x886c - ETH_P_LOCALTALK = 0x9 - ETH_P_LOOP = 0x60 - ETH_P_LOOPBACK = 0x9000 - ETH_P_MACSEC = 0x88e5 - ETH_P_MOBITEX = 0x15 - ETH_P_MPLS_MC = 0x8848 - ETH_P_MPLS_UC = 0x8847 - ETH_P_MVRP = 0x88f5 - ETH_P_NCSI = 0x88f8 - ETH_P_PAE = 0x888e - ETH_P_PAUSE = 0x8808 - ETH_P_PHONET = 0xf5 - ETH_P_PPPTALK = 0x10 - ETH_P_PPP_DISC = 0x8863 - ETH_P_PPP_MP = 0x8 - ETH_P_PPP_SES = 0x8864 - ETH_P_PRP = 0x88fb - ETH_P_PUP = 0x200 - ETH_P_PUPAT = 0x201 - ETH_P_QINQ1 = 0x9100 - ETH_P_QINQ2 = 0x9200 - ETH_P_QINQ3 = 0x9300 - ETH_P_RARP = 0x8035 - ETH_P_SCA = 0x6007 - ETH_P_SLOW = 0x8809 - ETH_P_SNAP = 0x5 - ETH_P_TDLS = 0x890d - ETH_P_TEB = 0x6558 - ETH_P_TIPC = 0x88ca - ETH_P_TRAILER = 0x1c - ETH_P_TR_802_2 = 0x11 - ETH_P_TSN = 0x22f0 - ETH_P_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - ETH_P_XDSA = 0xf8 - EXTA = 0xe - EXTB = 0xf - EXTPROC = 0x10000 - FALLOC_FL_COLLAPSE_RANGE = 0x8 - FALLOC_FL_INSERT_RANGE = 0x20 - FALLOC_FL_KEEP_SIZE = 0x1 - FALLOC_FL_NO_HIDE_STALE = 0x4 - FALLOC_FL_PUNCH_HOLE = 0x2 - FALLOC_FL_UNSHARE_RANGE = 0x40 - FALLOC_FL_ZERO_RANGE = 0x10 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x8000 - FFDLY = 0x8000 - FLUSHO = 0x1000 - FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 - FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 - FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 - FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 - FS_ENCRYPTION_MODE_INVALID = 0x0 - FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 - FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 - FS_KEY_DESCRIPTOR_SIZE = 0x8 - FS_KEY_DESC_PREFIX = "fscrypt:" - FS_KEY_DESC_PREFIX_SIZE = 0x8 - FS_MAX_KEY_SIZE = 0x40 - FS_POLICY_FLAGS_PAD_16 = 0x2 - FS_POLICY_FLAGS_PAD_32 = 0x3 - FS_POLICY_FLAGS_PAD_4 = 0x0 - FS_POLICY_FLAGS_PAD_8 = 0x1 - FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x3 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x406 - F_EXLCK = 0x4 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLEASE = 0x401 - F_GETLK = 0x5 - F_GETLK64 = 0x5 - F_GETOWN = 0x9 - F_GETOWN_EX = 0x10 - F_GETPIPE_SZ = 0x408 - F_GETSIG = 0xb - F_LOCK = 0x1 - F_NOTIFY = 0x402 - F_OFD_GETLK = 0x24 - F_OFD_SETLK = 0x25 - F_OFD_SETLKW = 0x26 - F_OK = 0x0 - F_RDLCK = 0x0 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLEASE = 0x400 - F_SETLK = 0x6 - F_SETLK64 = 0x6 - F_SETLKW = 0x7 - F_SETLKW64 = 0x7 - F_SETOWN = 0x8 - F_SETOWN_EX = 0xf - F_SETPIPE_SZ = 0x407 - F_SETSIG = 0xa - F_SHLCK = 0x8 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_ULOCK = 0x0 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - GENL_ADMIN_PERM = 0x1 - GENL_CMD_CAP_DO = 0x2 - GENL_CMD_CAP_DUMP = 0x4 - GENL_CMD_CAP_HASPOL = 0x8 - GENL_HDRLEN = 0x4 - GENL_ID_CTRL = 0x10 - GENL_ID_PMCRAID = 0x12 - GENL_ID_VFS_DQUOT = 0x11 - GENL_MAX_ID = 0x3ff - GENL_MIN_ID = 0x10 - GENL_NAMSIZ = 0x10 - GENL_START_ALLOC = 0x13 - GENL_UNS_ADMIN_PERM = 0x10 - GRND_NONBLOCK = 0x1 - GRND_RANDOM = 0x2 - HUPCL = 0x400 - IBSHIFT = 0x10 - ICANON = 0x2 - ICMPV6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x8000 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_MANAGETEMPADDR = 0x100 - IFA_F_MCAUTOJOIN = 0x400 - IFA_F_NODAD = 0x2 - IFA_F_NOPREFIXROUTE = 0x200 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_STABLE_PRIVACY = 0x800 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0x8 - IFF_ALLMULTI = 0x200 - IFF_ATTACH_QUEUE = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DETACH_QUEUE = 0x400 - IFF_DORMANT = 0x20000 - IFF_DYNAMIC = 0x8000 - IFF_ECHO = 0x40000 - IFF_LOOPBACK = 0x8 - IFF_LOWER_UP = 0x10000 - IFF_MASTER = 0x400 - IFF_MULTICAST = 0x1000 - IFF_MULTI_QUEUE = 0x100 - IFF_NOARP = 0x80 - IFF_NOFILTER = 0x1000 - IFF_NOTRAILERS = 0x20 - IFF_NO_PI = 0x1000 - IFF_ONE_QUEUE = 0x2000 - IFF_PERSIST = 0x800 - IFF_POINTOPOINT = 0x10 - IFF_PORTSEL = 0x2000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SLAVE = 0x800 - IFF_TAP = 0x2 - IFF_TUN = 0x1 - IFF_TUN_EXCL = 0x8000 - IFF_UP = 0x1 - IFF_VNET_HDR = 0x4000 - IFF_VOLATILE = 0x70c5a - IFNAMSIZ = 0x10 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_ACCESS = 0x1 - IN_ALL_EVENTS = 0xfff - IN_ATTRIB = 0x4 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLOEXEC = 0x80000 - IN_CLOSE = 0x18 - IN_CLOSE_NOWRITE = 0x10 - IN_CLOSE_WRITE = 0x8 - IN_CREATE = 0x100 - IN_DELETE = 0x200 - IN_DELETE_SELF = 0x400 - IN_DONT_FOLLOW = 0x2000000 - IN_EXCL_UNLINK = 0x4000000 - IN_IGNORED = 0x8000 - IN_ISDIR = 0x40000000 - IN_LOOPBACKNET = 0x7f - IN_MASK_ADD = 0x20000000 - IN_MODIFY = 0x2 - IN_MOVE = 0xc0 - IN_MOVED_FROM = 0x40 - IN_MOVED_TO = 0x80 - IN_MOVE_SELF = 0x800 - IN_NONBLOCK = 0x800 - IN_ONESHOT = 0x80000000 - IN_ONLYDIR = 0x1000000 - IN_OPEN = 0x20 - IN_Q_OVERFLOW = 0x4000 - IN_UNMOUNT = 0x2000 - IPPROTO_AH = 0x33 - IPPROTO_BEETPH = 0x5e - IPPROTO_COMP = 0x6c - IPPROTO_DCCP = 0x21 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPIP = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MH = 0x87 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_NONE = 0x3b - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_2292DSTOPTS = 0x4 - IPV6_2292HOPLIMIT = 0x8 - IPV6_2292HOPOPTS = 0x3 - IPV6_2292PKTINFO = 0x2 - IPV6_2292PKTOPTIONS = 0x6 - IPV6_2292RTHDR = 0x5 - IPV6_ADDRFORM = 0x1 - IPV6_ADD_MEMBERSHIP = 0x14 - IPV6_AUTHHDR = 0xa - IPV6_CHECKSUM = 0x7 - IPV6_DONTFRAG = 0x3e - IPV6_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - IPV6_HDRINCL = 0x24 - IPV6_HOPLIMIT = 0x34 - IPV6_HOPOPTS = 0x36 - IPV6_IPSEC_POLICY = 0x22 - IPV6_JOIN_ANYCAST = 0x1b - IPV6_JOIN_GROUP = 0x14 - IPV6_LEAVE_ANYCAST = 0x1c - IPV6_LEAVE_GROUP = 0x15 - IPV6_MTU = 0x18 - IPV6_MTU_DISCOVER = 0x17 - IPV6_MULTICAST_HOPS = 0x12 - IPV6_MULTICAST_IF = 0x11 - IPV6_MULTICAST_LOOP = 0x13 - IPV6_NEXTHOP = 0x9 - IPV6_PATHMTU = 0x3d - IPV6_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_INTERFACE = 0x4 - IPV6_PMTUDISC_OMIT = 0x5 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVPATHMTU = 0x3c - IPV6_RECVPKTINFO = 0x31 - IPV6_RECVRTHDR = 0x38 - IPV6_RECVTCLASS = 0x42 - IPV6_ROUTER_ALERT = 0x16 - IPV6_RTHDR = 0x39 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RXDSTOPTS = 0x3b - IPV6_RXHOPOPTS = 0x36 - IPV6_TCLASS = 0x43 - IPV6_UNICAST_HOPS = 0x10 - IPV6_V6ONLY = 0x1a - IPV6_XFRM_POLICY = 0x23 - IP_ADD_MEMBERSHIP = 0x23 - IP_ADD_SOURCE_MEMBERSHIP = 0x27 - IP_BIND_ADDRESS_NO_PORT = 0x18 - IP_BLOCK_SOURCE = 0x26 - IP_CHECKSUM = 0x17 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0x24 - IP_DROP_SOURCE_MEMBERSHIP = 0x28 - IP_FREEBIND = 0xf - IP_HDRINCL = 0x3 - IP_IPSEC_POLICY = 0x10 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINTTL = 0x15 - IP_MSFILTER = 0x29 - IP_MSS = 0x240 - IP_MTU = 0xe - IP_MTU_DISCOVER = 0xa - IP_MULTICAST_ALL = 0x31 - IP_MULTICAST_IF = 0x20 - IP_MULTICAST_LOOP = 0x22 - IP_MULTICAST_TTL = 0x21 - IP_NODEFRAG = 0x16 - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x4 - IP_ORIGDSTADDR = 0x14 - IP_PASSSEC = 0x12 - IP_PKTINFO = 0x8 - IP_PKTOPTIONS = 0x9 - IP_PMTUDISC = 0xa - IP_PMTUDISC_DO = 0x2 - IP_PMTUDISC_DONT = 0x0 - IP_PMTUDISC_INTERFACE = 0x4 - IP_PMTUDISC_OMIT = 0x5 - IP_PMTUDISC_PROBE = 0x3 - IP_PMTUDISC_WANT = 0x1 - IP_RECVERR = 0xb - IP_RECVOPTS = 0x6 - IP_RECVORIGDSTADDR = 0x14 - IP_RECVRETOPTS = 0x7 - IP_RECVTOS = 0xd - IP_RECVTTL = 0xc - IP_RETOPTS = 0x7 - IP_RF = 0x8000 - IP_ROUTER_ALERT = 0x5 - IP_TOS = 0x1 - IP_TRANSPARENT = 0x13 - IP_TTL = 0x2 - IP_UNBLOCK_SOURCE = 0x25 - IP_UNICAST_IF = 0x32 - IP_XFRM_POLICY = 0x11 - ISIG = 0x1 - ISTRIP = 0x20 - IUCLC = 0x200 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x1000 - IXON = 0x400 - KEYCTL_ASSUME_AUTHORITY = 0x10 - KEYCTL_CHOWN = 0x4 - KEYCTL_CLEAR = 0x7 - KEYCTL_DESCRIBE = 0x6 - KEYCTL_DH_COMPUTE = 0x17 - KEYCTL_GET_KEYRING_ID = 0x0 - KEYCTL_GET_PERSISTENT = 0x16 - KEYCTL_GET_SECURITY = 0x11 - KEYCTL_INSTANTIATE = 0xc - KEYCTL_INSTANTIATE_IOV = 0x14 - KEYCTL_INVALIDATE = 0x15 - KEYCTL_JOIN_SESSION_KEYRING = 0x1 - KEYCTL_LINK = 0x8 - KEYCTL_NEGATE = 0xd - KEYCTL_READ = 0xb - KEYCTL_REJECT = 0x13 - KEYCTL_REVOKE = 0x3 - KEYCTL_SEARCH = 0xa - KEYCTL_SESSION_TO_PARENT = 0x12 - KEYCTL_SETPERM = 0x5 - KEYCTL_SET_REQKEY_KEYRING = 0xe - KEYCTL_SET_TIMEOUT = 0xf - KEYCTL_UNLINK = 0x9 - KEYCTL_UPDATE = 0x2 - KEY_REQKEY_DEFL_DEFAULT = 0x0 - KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 - KEY_REQKEY_DEFL_NO_CHANGE = -0x1 - KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 - KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 - KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 - KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 - KEY_REQKEY_DEFL_USER_KEYRING = 0x4 - KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 - KEY_SPEC_GROUP_KEYRING = -0x6 - KEY_SPEC_PROCESS_KEYRING = -0x2 - KEY_SPEC_REQKEY_AUTH_KEY = -0x7 - KEY_SPEC_REQUESTOR_KEYRING = -0x8 - KEY_SPEC_SESSION_KEYRING = -0x3 - KEY_SPEC_THREAD_KEYRING = -0x1 - KEY_SPEC_USER_KEYRING = -0x4 - KEY_SPEC_USER_SESSION_KEYRING = -0x5 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef - LINUX_REBOOT_CMD_HALT = 0xcdef0123 - LINUX_REBOOT_CMD_KEXEC = 0x45584543 - LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc - LINUX_REBOOT_CMD_RESTART = 0x1234567 - LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 - LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 - LINUX_REBOOT_MAGIC1 = 0xfee1dead - LINUX_REBOOT_MAGIC2 = 0x28121969 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DODUMP = 0x11 - MADV_DOFORK = 0xb - MADV_DONTDUMP = 0x10 - MADV_DONTFORK = 0xa - MADV_DONTNEED = 0x4 - MADV_FREE = 0x8 - MADV_HUGEPAGE = 0xe - MADV_HWPOISON = 0x64 - MADV_MERGEABLE = 0xc - MADV_NOHUGEPAGE = 0xf - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_REMOVE = 0x9 - MADV_SEQUENTIAL = 0x2 - MADV_UNMERGEABLE = 0xd - MADV_WILLNEED = 0x3 - MAP_32BIT = 0x40 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_GROWSDOWN = 0x100 - MAP_HUGETLB = 0x40000 - MAP_HUGE_MASK = 0x3f - MAP_HUGE_SHIFT = 0x1a - MAP_LOCKED = 0x2000 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x4000 - MAP_POPULATE = 0x8000 - MAP_PRIVATE = 0x2 - MAP_SHARED = 0x1 - MAP_STACK = 0x20000 - MAP_TYPE = 0xf - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - MSG_BATCH = 0x40000 - MSG_CMSG_CLOEXEC = 0x40000000 - MSG_CONFIRM = 0x800 - MSG_CTRUNC = 0x8 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x40 - MSG_EOR = 0x80 - MSG_ERRQUEUE = 0x2000 - MSG_FASTOPEN = 0x20000000 - MSG_FIN = 0x200 - MSG_MORE = 0x8000 - MSG_NOSIGNAL = 0x4000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_PROXY = 0x10 - MSG_RST = 0x1000 - MSG_SYN = 0x400 - MSG_TRUNC = 0x20 - MSG_TRYHARD = 0x4 - MSG_WAITALL = 0x100 - MSG_WAITFORONE = 0x10000 - MS_ACTIVE = 0x40000000 - MS_ASYNC = 0x1 - MS_BIND = 0x1000 - MS_BORN = 0x20000000 - MS_DIRSYNC = 0x80 - MS_INVALIDATE = 0x2 - MS_I_VERSION = 0x800000 - MS_KERNMOUNT = 0x400000 - MS_LAZYTIME = 0x2000000 - MS_MANDLOCK = 0x40 - MS_MGC_MSK = 0xffff0000 - MS_MGC_VAL = 0xc0ed0000 - MS_MOVE = 0x2000 - MS_NOATIME = 0x400 - MS_NODEV = 0x4 - MS_NODIRATIME = 0x800 - MS_NOEXEC = 0x8 - MS_NOREMOTELOCK = 0x8000000 - MS_NOSEC = 0x10000000 - MS_NOSUID = 0x2 - MS_NOUSER = -0x80000000 - MS_POSIXACL = 0x10000 - MS_PRIVATE = 0x40000 - MS_RDONLY = 0x1 - MS_REC = 0x4000 - MS_RELATIME = 0x200000 - MS_REMOUNT = 0x20 - MS_RMT_MASK = 0x2800051 - MS_SHARED = 0x100000 - MS_SILENT = 0x8000 - MS_SLAVE = 0x80000 - MS_STRICTATIME = 0x1000000 - MS_SYNC = 0x4 - MS_SYNCHRONOUS = 0x10 - MS_UNBINDABLE = 0x20000 - MS_VERBOSE = 0x8000 - NAME_MAX = 0xff - NETLINK_ADD_MEMBERSHIP = 0x1 - NETLINK_AUDIT = 0x9 - NETLINK_BROADCAST_ERROR = 0x4 - NETLINK_CAP_ACK = 0xa - NETLINK_CONNECTOR = 0xb - NETLINK_CRYPTO = 0x15 - NETLINK_DNRTMSG = 0xe - NETLINK_DROP_MEMBERSHIP = 0x2 - NETLINK_ECRYPTFS = 0x13 - NETLINK_FIB_LOOKUP = 0xa - NETLINK_FIREWALL = 0x3 - NETLINK_GENERIC = 0x10 - NETLINK_INET_DIAG = 0x4 - NETLINK_IP6_FW = 0xd - NETLINK_ISCSI = 0x8 - NETLINK_KOBJECT_UEVENT = 0xf - NETLINK_LISTEN_ALL_NSID = 0x8 - NETLINK_LIST_MEMBERSHIPS = 0x9 - NETLINK_NETFILTER = 0xc - NETLINK_NFLOG = 0x5 - NETLINK_NO_ENOBUFS = 0x5 - NETLINK_PKTINFO = 0x3 - NETLINK_RDMA = 0x14 - NETLINK_ROUTE = 0x0 - NETLINK_RX_RING = 0x6 - NETLINK_SCSITRANSPORT = 0x12 - NETLINK_SELINUX = 0x7 - NETLINK_SOCK_DIAG = 0x4 - NETLINK_TX_RING = 0x7 - NETLINK_UNUSED = 0x1 - NETLINK_USERSOCK = 0x2 - NETLINK_XFRM = 0x6 - NL0 = 0x0 - NL1 = 0x100 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - NLDLY = 0x100 - NLMSG_ALIGNTO = 0x4 - NLMSG_DONE = 0x3 - NLMSG_ERROR = 0x2 - NLMSG_HDRLEN = 0x10 - NLMSG_MIN_TYPE = 0x10 - NLMSG_NOOP = 0x1 - NLMSG_OVERRUN = 0x4 - NLM_F_ACK = 0x4 - NLM_F_APPEND = 0x800 - NLM_F_ATOMIC = 0x400 - NLM_F_CREATE = 0x400 - NLM_F_DUMP = 0x300 - NLM_F_DUMP_FILTERED = 0x20 - NLM_F_DUMP_INTR = 0x10 - NLM_F_ECHO = 0x8 - NLM_F_EXCL = 0x200 - NLM_F_MATCH = 0x200 - NLM_F_MULTI = 0x2 - NLM_F_REPLACE = 0x100 - NLM_F_REQUEST = 0x1 - NLM_F_ROOT = 0x100 - NOFLSH = 0x80 - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x2 - ONLCR = 0x4 - ONLRET = 0x20 - ONOCR = 0x10 - OPOST = 0x1 - O_ACCMODE = 0x3 - O_APPEND = 0x400 - O_ASYNC = 0x2000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x40 - O_DIRECT = 0x4000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x1000 - O_EXCL = 0x80 - O_FSYNC = 0x101000 - O_LARGEFILE = 0x0 - O_NDELAY = 0x800 - O_NOATIME = 0x40000 - O_NOCTTY = 0x100 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x800 - O_PATH = 0x200000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x101000 - O_SYNC = 0x101000 - O_TMPFILE = 0x410000 - O_TRUNC = 0x200 - O_WRONLY = 0x1 - PACKET_ADD_MEMBERSHIP = 0x1 - PACKET_AUXDATA = 0x8 - PACKET_BROADCAST = 0x1 - PACKET_COPY_THRESH = 0x7 - PACKET_DROP_MEMBERSHIP = 0x2 - PACKET_FANOUT = 0x12 - PACKET_FANOUT_CBPF = 0x6 - PACKET_FANOUT_CPU = 0x2 - PACKET_FANOUT_DATA = 0x16 - PACKET_FANOUT_EBPF = 0x7 - PACKET_FANOUT_FLAG_DEFRAG = 0x8000 - PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 - PACKET_FANOUT_HASH = 0x0 - PACKET_FANOUT_LB = 0x1 - PACKET_FANOUT_QM = 0x5 - PACKET_FANOUT_RND = 0x4 - PACKET_FANOUT_ROLLOVER = 0x3 - PACKET_FASTROUTE = 0x6 - PACKET_HDRLEN = 0xb - PACKET_HOST = 0x0 - PACKET_KERNEL = 0x7 - PACKET_LOOPBACK = 0x5 - PACKET_LOSS = 0xe - PACKET_MR_ALLMULTI = 0x2 - PACKET_MR_MULTICAST = 0x0 - PACKET_MR_PROMISC = 0x1 - PACKET_MR_UNICAST = 0x3 - PACKET_MULTICAST = 0x2 - PACKET_ORIGDEV = 0x9 - PACKET_OTHERHOST = 0x3 - PACKET_OUTGOING = 0x4 - PACKET_QDISC_BYPASS = 0x14 - PACKET_RECV_OUTPUT = 0x3 - PACKET_RESERVE = 0xc - PACKET_ROLLOVER_STATS = 0x15 - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - PACKET_TIMESTAMP = 0x11 - PACKET_TX_HAS_OFF = 0x13 - PACKET_TX_RING = 0xd - PACKET_TX_TIMESTAMP = 0x10 - PACKET_USER = 0x6 - PACKET_VERSION = 0xa - PACKET_VNET_HDR = 0xf - PARENB = 0x100 - PARITY_CRC16_PR0 = 0x2 - PARITY_CRC16_PR0_CCITT = 0x4 - PARITY_CRC16_PR1 = 0x3 - PARITY_CRC16_PR1_CCITT = 0x5 - PARITY_CRC32_PR0_CCITT = 0x6 - PARITY_CRC32_PR1_CCITT = 0x7 - PARITY_DEFAULT = 0x0 - PARITY_NONE = 0x1 - PARMRK = 0x8 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x2401 - PERF_EVENT_IOC_ENABLE = 0x2400 - PERF_EVENT_IOC_ID = 0x80082407 - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 - PERF_EVENT_IOC_PERIOD = 0x40082404 - PERF_EVENT_IOC_REFRESH = 0x2402 - PERF_EVENT_IOC_RESET = 0x2403 - PERF_EVENT_IOC_SET_BPF = 0x40042408 - PERF_EVENT_IOC_SET_FILTER = 0x40082406 - PERF_EVENT_IOC_SET_OUTPUT = 0x2405 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_GROWSDOWN = 0x1000000 - PROT_GROWSUP = 0x2000000 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PR_CAPBSET_DROP = 0x18 - PR_CAPBSET_READ = 0x17 - PR_CAP_AMBIENT = 0x2f - PR_CAP_AMBIENT_CLEAR_ALL = 0x4 - PR_CAP_AMBIENT_IS_SET = 0x1 - PR_CAP_AMBIENT_LOWER = 0x3 - PR_CAP_AMBIENT_RAISE = 0x2 - PR_ENDIAN_BIG = 0x0 - PR_ENDIAN_LITTLE = 0x1 - PR_ENDIAN_PPC_LITTLE = 0x2 - PR_FPEMU_NOPRINT = 0x1 - PR_FPEMU_SIGFPE = 0x2 - PR_FP_EXC_ASYNC = 0x2 - PR_FP_EXC_DISABLED = 0x0 - PR_FP_EXC_DIV = 0x10000 - PR_FP_EXC_INV = 0x100000 - PR_FP_EXC_NONRECOV = 0x1 - PR_FP_EXC_OVF = 0x20000 - PR_FP_EXC_PRECISE = 0x3 - PR_FP_EXC_RES = 0x80000 - PR_FP_EXC_SW_ENABLE = 0x80 - PR_FP_EXC_UND = 0x40000 - PR_FP_MODE_FR = 0x1 - PR_FP_MODE_FRE = 0x2 - PR_GET_CHILD_SUBREAPER = 0x25 - PR_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - PR_GET_FP_MODE = 0x2e - PR_GET_KEEPCAPS = 0x7 - PR_GET_NAME = 0x10 - PR_GET_NO_NEW_PRIVS = 0x27 - PR_GET_PDEATHSIG = 0x2 - PR_GET_SECCOMP = 0x15 - PR_GET_SECUREBITS = 0x1b - PR_GET_THP_DISABLE = 0x2a - PR_GET_TID_ADDRESS = 0x28 - PR_GET_TIMERSLACK = 0x1e - PR_GET_TIMING = 0xd - PR_GET_TSC = 0x19 - PR_GET_UNALIGN = 0x5 - PR_MCE_KILL = 0x21 - PR_MCE_KILL_CLEAR = 0x0 - PR_MCE_KILL_DEFAULT = 0x2 - PR_MCE_KILL_EARLY = 0x1 - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_SET_CHILD_SUBREAPER = 0x24 - PR_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - PR_SET_FP_MODE = 0x2d - PR_SET_KEEPCAPS = 0x8 - PR_SET_MM = 0x23 - PR_SET_MM_ARG_END = 0x9 - PR_SET_MM_ARG_START = 0x8 - PR_SET_MM_AUXV = 0xc - PR_SET_MM_BRK = 0x7 - PR_SET_MM_END_CODE = 0x2 - PR_SET_MM_END_DATA = 0x4 - PR_SET_MM_ENV_END = 0xb - PR_SET_MM_ENV_START = 0xa - PR_SET_MM_EXE_FILE = 0xd - PR_SET_MM_MAP = 0xe - PR_SET_MM_MAP_SIZE = 0xf - PR_SET_MM_START_BRK = 0x6 - PR_SET_MM_START_CODE = 0x1 - PR_SET_MM_START_DATA = 0x3 - PR_SET_MM_START_STACK = 0x5 - PR_SET_NAME = 0xf - PR_SET_NO_NEW_PRIVS = 0x26 - PR_SET_PDEATHSIG = 0x1 - PR_SET_PTRACER = 0x59616d61 - PR_SET_PTRACER_ANY = -0x1 - PR_SET_SECCOMP = 0x16 - PR_SET_SECUREBITS = 0x1c - PR_SET_THP_DISABLE = 0x29 - PR_SET_TIMERSLACK = 0x1d - PR_SET_TIMING = 0xe - PR_SET_TSC = 0x1a - PR_SET_UNALIGN = 0x6 - PR_TASK_PERF_EVENTS_DISABLE = 0x1f - PR_TASK_PERF_EVENTS_ENABLE = 0x20 - PR_TIMING_STATISTICAL = 0x0 - PR_TIMING_TIMESTAMP = 0x1 - PR_TSC_ENABLE = 0x1 - PR_TSC_SIGSEGV = 0x2 - PR_UNALIGN_NOPRINT = 0x1 - PR_UNALIGN_SIGBUS = 0x2 - PTRACE_ARCH_PRCTL = 0x1e - PTRACE_ATTACH = 0x10 - PTRACE_CONT = 0x7 - PTRACE_DETACH = 0x11 - PTRACE_EVENT_CLONE = 0x3 - PTRACE_EVENT_EXEC = 0x4 - PTRACE_EVENT_EXIT = 0x6 - PTRACE_EVENT_FORK = 0x1 - PTRACE_EVENT_SECCOMP = 0x7 - PTRACE_EVENT_STOP = 0x80 - PTRACE_EVENT_VFORK = 0x2 - PTRACE_EVENT_VFORK_DONE = 0x5 - PTRACE_GETEVENTMSG = 0x4201 - PTRACE_GETFPREGS = 0xe - PTRACE_GETFPXREGS = 0x12 - PTRACE_GETREGS = 0xc - PTRACE_GETREGSET = 0x4204 - PTRACE_GETSIGINFO = 0x4202 - PTRACE_GETSIGMASK = 0x420a - PTRACE_GET_THREAD_AREA = 0x19 - PTRACE_INTERRUPT = 0x4207 - PTRACE_KILL = 0x8 - PTRACE_LISTEN = 0x4208 - PTRACE_OLDSETOPTIONS = 0x15 - PTRACE_O_EXITKILL = 0x100000 - PTRACE_O_MASK = 0x3000ff - PTRACE_O_SUSPEND_SECCOMP = 0x200000 - PTRACE_O_TRACECLONE = 0x8 - PTRACE_O_TRACEEXEC = 0x10 - PTRACE_O_TRACEEXIT = 0x40 - PTRACE_O_TRACEFORK = 0x2 - PTRACE_O_TRACESECCOMP = 0x80 - PTRACE_O_TRACESYSGOOD = 0x1 - PTRACE_O_TRACEVFORK = 0x4 - PTRACE_O_TRACEVFORKDONE = 0x20 - PTRACE_PEEKDATA = 0x2 - PTRACE_PEEKSIGINFO = 0x4209 - PTRACE_PEEKSIGINFO_SHARED = 0x1 - PTRACE_PEEKTEXT = 0x1 - PTRACE_PEEKUSR = 0x3 - PTRACE_POKEDATA = 0x5 - PTRACE_POKETEXT = 0x4 - PTRACE_POKEUSR = 0x6 - PTRACE_SECCOMP_GET_FILTER = 0x420c - PTRACE_SEIZE = 0x4206 - PTRACE_SETFPREGS = 0xf - PTRACE_SETFPXREGS = 0x13 - PTRACE_SETOPTIONS = 0x4200 - PTRACE_SETREGS = 0xd - PTRACE_SETREGSET = 0x4205 - PTRACE_SETSIGINFO = 0x4203 - PTRACE_SETSIGMASK = 0x420b - PTRACE_SET_THREAD_AREA = 0x1a - PTRACE_SINGLEBLOCK = 0x21 - PTRACE_SINGLESTEP = 0x9 - PTRACE_SYSCALL = 0x18 - PTRACE_SYSEMU = 0x1f - PTRACE_SYSEMU_SINGLESTEP = 0x20 - PTRACE_TRACEME = 0x0 - RLIMIT_AS = 0x9 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_LOCKS = 0xa - RLIMIT_MEMLOCK = 0x8 - RLIMIT_MSGQUEUE = 0xc - RLIMIT_NICE = 0xd - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x6 - RLIMIT_RSS = 0x5 - RLIMIT_RTPRIO = 0xe - RLIMIT_RTTIME = 0xf - RLIMIT_SIGPENDING = 0xb - RLIMIT_STACK = 0x3 - RLIM_INFINITY = -0x1 - RTAX_ADVMSS = 0x8 - RTAX_CC_ALGO = 0x10 - RTAX_CWND = 0x7 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_MASK = 0xf - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0x10 - RTAX_MTU = 0x2 - RTAX_QUICKACK = 0xf - RTAX_REORDERING = 0x9 - RTAX_RTO_MIN = 0xd - RTAX_RTT = 0x4 - RTAX_RTTVAR = 0x5 - RTAX_SSTHRESH = 0x6 - RTAX_UNSPEC = 0x0 - RTAX_WINDOW = 0x3 - RTA_ALIGNTO = 0x4 - RTA_MAX = 0x19 - RTCF_DIRECTSRC = 0x4000000 - RTCF_DOREDIRECT = 0x1000000 - RTCF_LOG = 0x2000000 - RTCF_MASQ = 0x400000 - RTCF_NAT = 0x800000 - RTCF_VALVE = 0x200000 - RTF_ADDRCLASSMASK = 0xf8000000 - RTF_ADDRCONF = 0x40000 - RTF_ALLONLINK = 0x20000 - RTF_BROADCAST = 0x10000000 - RTF_CACHE = 0x1000000 - RTF_DEFAULT = 0x10000 - RTF_DYNAMIC = 0x10 - RTF_FLOW = 0x2000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_INTERFACE = 0x40000000 - RTF_IRTT = 0x100 - RTF_LINKRT = 0x100000 - RTF_LOCAL = 0x80000000 - RTF_MODIFIED = 0x20 - RTF_MSS = 0x40 - RTF_MTU = 0x40 - RTF_MULTICAST = 0x20000000 - RTF_NAT = 0x8000000 - RTF_NOFORWARD = 0x1000 - RTF_NONEXTHOP = 0x200000 - RTF_NOPMTUDISC = 0x4000 - RTF_POLICY = 0x4000000 - RTF_REINSTATE = 0x8 - RTF_REJECT = 0x200 - RTF_STATIC = 0x400 - RTF_THROW = 0x2000 - RTF_UP = 0x1 - RTF_WINDOW = 0x80 - RTF_XRESOLVE = 0x800 - RTM_BASE = 0x10 - RTM_DELACTION = 0x31 - RTM_DELADDR = 0x15 - RTM_DELADDRLABEL = 0x49 - RTM_DELLINK = 0x11 - RTM_DELMDB = 0x55 - RTM_DELNEIGH = 0x1d - RTM_DELNSID = 0x59 - RTM_DELQDISC = 0x25 - RTM_DELROUTE = 0x19 - RTM_DELRULE = 0x21 - RTM_DELTCLASS = 0x29 - RTM_DELTFILTER = 0x2d - RTM_F_CLONED = 0x200 - RTM_F_EQUALIZE = 0x400 - RTM_F_LOOKUP_TABLE = 0x1000 - RTM_F_NOTIFY = 0x100 - RTM_F_PREFIX = 0x800 - RTM_GETACTION = 0x32 - RTM_GETADDR = 0x16 - RTM_GETADDRLABEL = 0x4a - RTM_GETANYCAST = 0x3e - RTM_GETDCB = 0x4e - RTM_GETLINK = 0x12 - RTM_GETMDB = 0x56 - RTM_GETMULTICAST = 0x3a - RTM_GETNEIGH = 0x1e - RTM_GETNEIGHTBL = 0x42 - RTM_GETNETCONF = 0x52 - RTM_GETNSID = 0x5a - RTM_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETSTATS = 0x5e - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_MAX = 0x5f - RTM_NEWACTION = 0x30 - RTM_NEWADDR = 0x14 - RTM_NEWADDRLABEL = 0x48 - RTM_NEWLINK = 0x10 - RTM_NEWMDB = 0x54 - RTM_NEWNDUSEROPT = 0x44 - RTM_NEWNEIGH = 0x1c - RTM_NEWNEIGHTBL = 0x40 - RTM_NEWNETCONF = 0x50 - RTM_NEWNSID = 0x58 - RTM_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWSTATS = 0x5c - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NR_FAMILIES = 0x14 - RTM_NR_MSGTYPES = 0x50 - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTNH_ALIGNTO = 0x4 - RTNH_COMPARE_MASK = 0x19 - RTNH_F_DEAD = 0x1 - RTNH_F_LINKDOWN = 0x10 - RTNH_F_OFFLOAD = 0x8 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTN_MAX = 0xb - RTPROT_BABEL = 0x2a - RTPROT_BIRD = 0xc - RTPROT_BOOT = 0x3 - RTPROT_DHCP = 0x10 - RTPROT_DNROUTED = 0xd - RTPROT_GATED = 0x8 - RTPROT_KERNEL = 0x2 - RTPROT_MROUTED = 0x11 - RTPROT_MRT = 0xa - RTPROT_NTK = 0xf - RTPROT_RA = 0x9 - RTPROT_REDIRECT = 0x1 - RTPROT_STATIC = 0x4 - RTPROT_UNSPEC = 0x0 - RTPROT_XORP = 0xe - RTPROT_ZEBRA = 0xb - RT_CLASS_DEFAULT = 0xfd - RT_CLASS_LOCAL = 0xff - RT_CLASS_MAIN = 0xfe - RT_CLASS_MAX = 0xff - RT_CLASS_UNSPEC = 0x0 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_CREDENTIALS = 0x2 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPNS = 0x23 - SCM_WIFI_STATUS = 0x29 - SECCOMP_MODE_DISABLED = 0x0 - SECCOMP_MODE_FILTER = 0x2 - SECCOMP_MODE_STRICT = 0x1 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCATMARK = 0x8905 - SIOCBONDCHANGEACTIVE = 0x8995 - SIOCBONDENSLAVE = 0x8990 - SIOCBONDINFOQUERY = 0x8994 - SIOCBONDRELEASE = 0x8991 - SIOCBONDSETHWADDR = 0x8992 - SIOCBONDSLAVEINFOQUERY = 0x8993 - SIOCBRADDBR = 0x89a0 - SIOCBRADDIF = 0x89a2 - SIOCBRDELBR = 0x89a1 - SIOCBRDELIF = 0x89a3 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCETHTOOL = 0x8946 - SIOCGARP = 0x8954 - SIOCGHWTSTAMP = 0x89b1 - SIOCGIFADDR = 0x8915 - SIOCGIFBR = 0x8940 - SIOCGIFBRDADDR = 0x8919 - SIOCGIFCONF = 0x8912 - SIOCGIFCOUNT = 0x8938 - SIOCGIFDSTADDR = 0x8917 - SIOCGIFENCAP = 0x8925 - SIOCGIFFLAGS = 0x8913 - SIOCGIFHWADDR = 0x8927 - SIOCGIFINDEX = 0x8933 - SIOCGIFMAP = 0x8970 - SIOCGIFMEM = 0x891f - SIOCGIFMETRIC = 0x891d - SIOCGIFMTU = 0x8921 - SIOCGIFNAME = 0x8910 - SIOCGIFNETMASK = 0x891b - SIOCGIFPFLAGS = 0x8935 - SIOCGIFSLAVE = 0x8929 - SIOCGIFTXQLEN = 0x8942 - SIOCGIFVLAN = 0x8982 - SIOCGMIIPHY = 0x8947 - SIOCGMIIREG = 0x8948 - SIOCGPGRP = 0x8904 - SIOCGRARP = 0x8961 - SIOCGSKNS = 0x894c - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCINQ = 0x541b - SIOCOUTQ = 0x5411 - SIOCOUTQNSD = 0x894b - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - SIOCSHWTSTAMP = 0x89b0 - SIOCSIFADDR = 0x8916 - SIOCSIFBR = 0x8941 - SIOCSIFBRDADDR = 0x891a - SIOCSIFDSTADDR = 0x8918 - SIOCSIFENCAP = 0x8926 - SIOCSIFFLAGS = 0x8914 - SIOCSIFHWADDR = 0x8924 - SIOCSIFHWBROADCAST = 0x8937 - SIOCSIFLINK = 0x8911 - SIOCSIFMAP = 0x8971 - SIOCSIFMEM = 0x8920 - SIOCSIFMETRIC = 0x891e - SIOCSIFMTU = 0x8922 - SIOCSIFNAME = 0x8923 - SIOCSIFNETMASK = 0x891c - SIOCSIFPFLAGS = 0x8934 - SIOCSIFSLAVE = 0x8930 - SIOCSIFTXQLEN = 0x8943 - SIOCSIFVLAN = 0x8983 - SIOCSMIIREG = 0x8949 - SIOCSPGRP = 0x8902 - SIOCSRARP = 0x8962 - SIOCWANDEV = 0x894a - SOCK_CLOEXEC = 0x80000 - SOCK_DCCP = 0x6 - SOCK_DGRAM = 0x2 - SOCK_IOC_TYPE = 0x89 - SOCK_NONBLOCK = 0x800 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_AAL = 0x109 - SOL_ALG = 0x117 - SOL_ATM = 0x108 - SOL_CAIF = 0x116 - SOL_CAN_BASE = 0x64 - SOL_DCCP = 0x10d - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_IUCV = 0x115 - SOL_KCM = 0x119 - SOL_LLC = 0x10c - SOL_NETBEUI = 0x10b - SOL_NETLINK = 0x10e - SOL_NFC = 0x118 - SOL_PACKET = 0x107 - SOL_PNPIPE = 0x113 - SOL_PPPOL2TP = 0x111 - SOL_RAW = 0xff - SOL_RDS = 0x114 - SOL_RXRPC = 0x110 - SOL_SOCKET = 0x1 - SOL_TCP = 0x6 - SOL_TIPC = 0x10f - SOL_X25 = 0x106 - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_BPF = 0x32 - SO_ATTACH_FILTER = 0x1a - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x6 - SO_BSDCOMPAT = 0xe - SO_BUSY_POLL = 0x2e - SO_CNX_ADVICE = 0x35 - SO_DEBUG = 0x1 - SO_DETACH_BPF = 0x1b - SO_DETACH_FILTER = 0x1b - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_ERROR = 0x4 - SO_GET_FILTER = 0x1a - SO_INCOMING_CPU = 0x31 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_NOFCS = 0x2b - SO_NO_CHECK = 0xb - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x11 - SO_PEERNAME = 0x1c - SO_PEERSEC = 0x1f - SO_PRIORITY = 0xc - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x12 - SO_RCVTIMEO = 0x14 - SO_REUSEADDR = 0x2 - SO_REUSEPORT = 0xf - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x13 - SO_SNDTIMEO = 0x15 - SO_TIMESTAMP = 0x1d - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TYPE = 0x3 - SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 - SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 - SO_VM_SOCKETS_BUFFER_SIZE = 0x0 - SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 - SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 - SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 - SO_VM_SOCKETS_TRUSTED = 0x5 - SO_WIFI_STATUS = 0x29 - SPLICE_F_GIFT = 0x8 - SPLICE_F_MORE = 0x4 - SPLICE_F_MOVE = 0x1 - SPLICE_F_NONBLOCK = 0x2 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TASKSTATS_CMD_ATTR_MAX = 0x4 - TASKSTATS_CMD_MAX = 0x2 - TASKSTATS_GENL_NAME = "TASKSTATS" - TASKSTATS_GENL_VERSION = 0x1 - TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x8 - TCFLSH = 0x540b - TCGETA = 0x5405 - TCGETS = 0x5401 - TCGETS2 = 0x802c542a - TCGETX = 0x5432 - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_CC_INFO = 0x1a - TCP_CONGESTION = 0xd - TCP_COOKIE_IN_ALWAYS = 0x1 - TCP_COOKIE_MAX = 0x10 - TCP_COOKIE_MIN = 0x8 - TCP_COOKIE_OUT_NEVER = 0x2 - TCP_COOKIE_PAIR_SIZE = 0x20 - TCP_COOKIE_TRANSACTIONS = 0xf - TCP_CORK = 0x3 - TCP_DEFER_ACCEPT = 0x9 - TCP_FASTOPEN = 0x17 - TCP_INFO = 0xb - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x4 - TCP_KEEPINTVL = 0x5 - TCP_LINGER2 = 0x8 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0xe - TCP_MD5SIG_MAXKEYLEN = 0x50 - TCP_MSS = 0x200 - TCP_MSS_DEFAULT = 0x218 - TCP_MSS_DESIRED = 0x4c4 - TCP_NODELAY = 0x1 - TCP_NOTSENT_LOWAT = 0x19 - TCP_QUEUE_SEQ = 0x15 - TCP_QUICKACK = 0xc - TCP_REPAIR = 0x13 - TCP_REPAIR_OPTIONS = 0x16 - TCP_REPAIR_QUEUE = 0x14 - TCP_REPAIR_WINDOW = 0x1d - TCP_SAVED_SYN = 0x1c - TCP_SAVE_SYN = 0x1b - TCP_SYNCNT = 0x7 - TCP_S_DATA_IN = 0x4 - TCP_S_DATA_OUT = 0x8 - TCP_THIN_DUPACK = 0x11 - TCP_THIN_LINEAR_TIMEOUTS = 0x10 - TCP_TIMESTAMP = 0x18 - TCP_USER_TIMEOUT = 0x12 - TCP_WINDOW_CLAMP = 0xa - TCSAFLUSH = 0x2 - TCSBRK = 0x5409 - TCSBRKP = 0x5425 - TCSETA = 0x5406 - TCSETAF = 0x5408 - TCSETAW = 0x5407 - TCSETS = 0x5402 - TCSETS2 = 0x402c542b - TCSETSF = 0x5404 - TCSETSF2 = 0x402c542d - TCSETSW = 0x5403 - TCSETSW2 = 0x402c542c - TCSETX = 0x5433 - TCSETXF = 0x5434 - TCSETXW = 0x5435 - TCXONC = 0x540a - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x80045432 - TIOCGETD = 0x5424 - TIOCGEXCL = 0x80045440 - TIOCGICOUNT = 0x545d - TIOCGLCKTRMIOS = 0x5456 - TIOCGPGRP = 0x540f - TIOCGPKT = 0x80045438 - TIOCGPTLCK = 0x80045439 - TIOCGPTN = 0x80045430 - TIOCGRS485 = 0x542e - TIOCGSERIAL = 0x541e - TIOCGSID = 0x5429 - TIOCGSOFTCAR = 0x5419 - TIOCGWINSZ = 0x5413 - TIOCINQ = 0x541b - TIOCLINUX = 0x541c - TIOCMBIC = 0x5417 - TIOCMBIS = 0x5416 - TIOCMGET = 0x5415 - TIOCMIWAIT = 0x545c - TIOCMSET = 0x5418 - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x5422 - TIOCNXCL = 0x540d - TIOCOUTQ = 0x5411 - TIOCPKT = 0x5420 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x540e - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x5423 - TIOCSIG = 0x40045436 - TIOCSLCKTRMIOS = 0x5457 - TIOCSPGRP = 0x5410 - TIOCSPTLCK = 0x40045431 - TIOCSRS485 = 0x542f - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x541a - TIOCSTI = 0x5412 - TIOCSWINSZ = 0x5414 - TIOCVHANGUP = 0x5437 - TOSTOP = 0x100 - TS_COMM_LEN = 0x20 - TUNATTACHFILTER = 0x401054d5 - TUNDETACHFILTER = 0x401054d6 - TUNGETFEATURES = 0x800454cf - TUNGETFILTER = 0x801054db - TUNGETIFF = 0x800454d2 - TUNGETSNDBUF = 0x800454d3 - TUNGETVNETBE = 0x800454df - TUNGETVNETHDRSZ = 0x800454d7 - TUNGETVNETLE = 0x800454dd - TUNSETDEBUG = 0x400454c9 - TUNSETGROUP = 0x400454ce - TUNSETIFF = 0x400454ca - TUNSETIFINDEX = 0x400454da - TUNSETLINK = 0x400454cd - TUNSETNOCSUM = 0x400454c8 - TUNSETOFFLOAD = 0x400454d0 - TUNSETOWNER = 0x400454cc - TUNSETPERSIST = 0x400454cb - TUNSETQUEUE = 0x400454d9 - TUNSETSNDBUF = 0x400454d4 - TUNSETTXFILTER = 0x400454d1 - TUNSETVNETBE = 0x400454de - TUNSETVNETHDRSZ = 0x400454d8 - TUNSETVNETLE = 0x400454dc - UMOUNT_NOFOLLOW = 0x8 - VDISCARD = 0xd - VEOF = 0x4 - VEOL = 0xb - VEOL2 = 0x10 - VERASE = 0x2 - VINTR = 0x0 - VKILL = 0x3 - VLNEXT = 0xf - VMADDR_CID_ANY = 0xffffffff - VMADDR_CID_HOST = 0x2 - VMADDR_CID_HYPERVISOR = 0x0 - VMADDR_CID_RESERVED = 0x1 - VMADDR_PORT_ANY = 0xffffffff - VMIN = 0x6 - VM_SOCKETS_INVALID_VERSION = 0xffffffff - VQUIT = 0x1 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VT0 = 0x0 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WALL = 0x40000000 - WCLONE = 0x80000000 - WCONTINUED = 0x8 - WEXITED = 0x4 - WNOHANG = 0x1 - WNOTHREAD = 0x20000000 - WNOWAIT = 0x1000000 - WORDSIZE = 0x40 - WSTOPPED = 0x2 - WUNTRACED = 0x2 - XATTR_CREATE = 0x1 - XATTR_REPLACE = 0x2 - XCASE = 0x4 - XTABS = 0x1800 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x62) - EADDRNOTAVAIL = syscall.Errno(0x63) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x61) - EAGAIN = syscall.Errno(0xb) - EALREADY = syscall.Errno(0x72) - EBADE = syscall.Errno(0x34) - EBADF = syscall.Errno(0x9) - EBADFD = syscall.Errno(0x4d) - EBADMSG = syscall.Errno(0x4a) - EBADR = syscall.Errno(0x35) - EBADRQC = syscall.Errno(0x38) - EBADSLT = syscall.Errno(0x39) - EBFONT = syscall.Errno(0x3b) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x7d) - ECHILD = syscall.Errno(0xa) - ECHRNG = syscall.Errno(0x2c) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x67) - ECONNREFUSED = syscall.Errno(0x6f) - ECONNRESET = syscall.Errno(0x68) - EDEADLK = syscall.Errno(0x23) - EDEADLOCK = syscall.Errno(0x23) - EDESTADDRREQ = syscall.Errno(0x59) - EDOM = syscall.Errno(0x21) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x7a) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EHOSTDOWN = syscall.Errno(0x70) - EHOSTUNREACH = syscall.Errno(0x71) - EHWPOISON = syscall.Errno(0x85) - EIDRM = syscall.Errno(0x2b) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x73) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x6a) - EISDIR = syscall.Errno(0x15) - EISNAM = syscall.Errno(0x78) - EKEYEXPIRED = syscall.Errno(0x7f) - EKEYREJECTED = syscall.Errno(0x81) - EKEYREVOKED = syscall.Errno(0x80) - EL2HLT = syscall.Errno(0x33) - EL2NSYNC = syscall.Errno(0x2d) - EL3HLT = syscall.Errno(0x2e) - EL3RST = syscall.Errno(0x2f) - ELIBACC = syscall.Errno(0x4f) - ELIBBAD = syscall.Errno(0x50) - ELIBEXEC = syscall.Errno(0x53) - ELIBMAX = syscall.Errno(0x52) - ELIBSCN = syscall.Errno(0x51) - ELNRNG = syscall.Errno(0x30) - ELOOP = syscall.Errno(0x28) - EMEDIUMTYPE = syscall.Errno(0x7c) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x5a) - EMULTIHOP = syscall.Errno(0x48) - ENAMETOOLONG = syscall.Errno(0x24) - ENAVAIL = syscall.Errno(0x77) - ENETDOWN = syscall.Errno(0x64) - ENETRESET = syscall.Errno(0x66) - ENETUNREACH = syscall.Errno(0x65) - ENFILE = syscall.Errno(0x17) - ENOANO = syscall.Errno(0x37) - ENOBUFS = syscall.Errno(0x69) - ENOCSI = syscall.Errno(0x32) - ENODATA = syscall.Errno(0x3d) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOKEY = syscall.Errno(0x7e) - ENOLCK = syscall.Errno(0x25) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x7b) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x2a) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x5c) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x26) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x6b) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x27) - ENOTNAM = syscall.Errno(0x76) - ENOTRECOVERABLE = syscall.Errno(0x83) - ENOTSOCK = syscall.Errno(0x58) - ENOTSUP = syscall.Errno(0x5f) - ENOTTY = syscall.Errno(0x19) - ENOTUNIQ = syscall.Errno(0x4c) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x5f) - EOVERFLOW = syscall.Errno(0x4b) - EOWNERDEAD = syscall.Errno(0x82) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x60) - EPIPE = syscall.Errno(0x20) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x5d) - EPROTOTYPE = syscall.Errno(0x5b) - ERANGE = syscall.Errno(0x22) - EREMCHG = syscall.Errno(0x4e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x79) - ERESTART = syscall.Errno(0x55) - ERFKILL = syscall.Errno(0x84) - EROFS = syscall.Errno(0x1e) - ESHUTDOWN = syscall.Errno(0x6c) - ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x74) - ESTRPIPE = syscall.Errno(0x56) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x6e) - ETOOMANYREFS = syscall.Errno(0x6d) - ETXTBSY = syscall.Errno(0x1a) - EUCLEAN = syscall.Errno(0x75) - EUNATCH = syscall.Errno(0x31) - EUSERS = syscall.Errno(0x57) - EWOULDBLOCK = syscall.Errno(0xb) - EXDEV = syscall.Errno(0x12) - EXFULL = syscall.Errno(0x36) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0x7) - SIGCHLD = syscall.Signal(0x11) - SIGCLD = syscall.Signal(0x11) - SIGCONT = syscall.Signal(0x12) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x1d) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) - SIGPOLL = syscall.Signal(0x1d) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x1e) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTKFLT = syscall.Signal(0x10) - SIGSTOP = syscall.Signal(0x13) - SIGSYS = syscall.Signal(0x1f) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x14) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGUNUSED = syscall.Signal(0x1f) - SIGURG = syscall.Signal(0x17) - SIGUSR1 = syscall.Signal(0xa) - SIGUSR2 = syscall.Signal(0xc) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errors = [...]string{ - 1: "operation not permitted", - 2: "no such file or directory", - 3: "no such process", - 4: "interrupted system call", - 5: "input/output error", - 6: "no such device or address", - 7: "argument list too long", - 8: "exec format error", - 9: "bad file descriptor", - 10: "no child processes", - 11: "resource temporarily unavailable", - 12: "cannot allocate memory", - 13: "permission denied", - 14: "bad address", - 15: "block device required", - 16: "device or resource busy", - 17: "file exists", - 18: "invalid cross-device link", - 19: "no such device", - 20: "not a directory", - 21: "is a directory", - 22: "invalid argument", - 23: "too many open files in system", - 24: "too many open files", - 25: "inappropriate ioctl for device", - 26: "text file busy", - 27: "file too large", - 28: "no space left on device", - 29: "illegal seek", - 30: "read-only file system", - 31: "too many links", - 32: "broken pipe", - 33: "numerical argument out of domain", - 34: "numerical result out of range", - 35: "resource deadlock avoided", - 36: "file name too long", - 37: "no locks available", - 38: "function not implemented", - 39: "directory not empty", - 40: "too many levels of symbolic links", - 42: "no message of desired type", - 43: "identifier removed", - 44: "channel number out of range", - 45: "level 2 not synchronized", - 46: "level 3 halted", - 47: "level 3 reset", - 48: "link number out of range", - 49: "protocol driver not attached", - 50: "no CSI structure available", - 51: "level 2 halted", - 52: "invalid exchange", - 53: "invalid request descriptor", - 54: "exchange full", - 55: "no anode", - 56: "invalid request code", - 57: "invalid slot", - 59: "bad font file format", - 60: "device not a stream", - 61: "no data available", - 62: "timer expired", - 63: "out of streams resources", - 64: "machine is not on the network", - 65: "package not installed", - 66: "object is remote", - 67: "link has been severed", - 68: "advertise error", - 69: "srmount error", - 70: "communication error on send", - 71: "protocol error", - 72: "multihop attempted", - 73: "RFS specific error", - 74: "bad message", - 75: "value too large for defined data type", - 76: "name not unique on network", - 77: "file descriptor in bad state", - 78: "remote address changed", - 79: "can not access a needed shared library", - 80: "accessing a corrupted shared library", - 81: ".lib section in a.out corrupted", - 82: "attempting to link in too many shared libraries", - 83: "cannot exec a shared library directly", - 84: "invalid or incomplete multibyte or wide character", - 85: "interrupted system call should be restarted", - 86: "streams pipe error", - 87: "too many users", - 88: "socket operation on non-socket", - 89: "destination address required", - 90: "message too long", - 91: "protocol wrong type for socket", - 92: "protocol not available", - 93: "protocol not supported", - 94: "socket type not supported", - 95: "operation not supported", - 96: "protocol family not supported", - 97: "address family not supported by protocol", - 98: "address already in use", - 99: "cannot assign requested address", - 100: "network is down", - 101: "network is unreachable", - 102: "network dropped connection on reset", - 103: "software caused connection abort", - 104: "connection reset by peer", - 105: "no buffer space available", - 106: "transport endpoint is already connected", - 107: "transport endpoint is not connected", - 108: "cannot send after transport endpoint shutdown", - 109: "too many references: cannot splice", - 110: "connection timed out", - 111: "connection refused", - 112: "host is down", - 113: "no route to host", - 114: "operation already in progress", - 115: "operation now in progress", - 116: "stale file handle", - 117: "structure needs cleaning", - 118: "not a XENIX named type file", - 119: "no XENIX semaphores available", - 120: "is a named type file", - 121: "remote I/O error", - 122: "disk quota exceeded", - 123: "no medium found", - 124: "wrong medium type", - 125: "operation canceled", - 126: "required key not available", - 127: "key has expired", - 128: "key has been revoked", - 129: "key was rejected by service", - 130: "owner died", - 131: "state not recoverable", - 132: "operation not possible due to RF-kill", - 133: "memory page has hardware error", -} - -// Signal table -var signals = [...]string{ - 1: "hangup", - 2: "interrupt", - 3: "quit", - 4: "illegal instruction", - 5: "trace/breakpoint trap", - 6: "aborted", - 7: "bus error", - 8: "floating point exception", - 9: "killed", - 10: "user defined signal 1", - 11: "segmentation fault", - 12: "user defined signal 2", - 13: "broken pipe", - 14: "alarm clock", - 15: "terminated", - 16: "stack fault", - 17: "child exited", - 18: "continued", - 19: "stopped (signal)", - 20: "stopped", - 21: "stopped (tty input)", - 22: "stopped (tty output)", - 23: "urgent I/O condition", - 24: "CPU time limit exceeded", - 25: "file size limit exceeded", - 26: "virtual timer expired", - 27: "profiling timer expired", - 28: "window changed", - 29: "I/O possible", - 30: "power failure", - 31: "bad system call", -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go deleted file mode 100644 index 1adff0b..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go +++ /dev/null @@ -1,2205 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/include -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build arm,linux - -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go - -package unix - -import "syscall" - -const ( - AF_ALG = 0x26 - AF_APPLETALK = 0x5 - AF_ASH = 0x12 - AF_ATMPVC = 0x8 - AF_ATMSVC = 0x14 - AF_AX25 = 0x3 - AF_BLUETOOTH = 0x1f - AF_BRIDGE = 0x7 - AF_CAIF = 0x25 - AF_CAN = 0x1d - AF_DECnet = 0xc - AF_ECONET = 0x13 - AF_FILE = 0x1 - AF_IB = 0x1b - AF_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KCM = 0x29 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x2b - AF_MPLS = 0x1c - AF_NETBEUI = 0xd - AF_NETLINK = 0x10 - AF_NETROM = 0x6 - AF_NFC = 0x27 - AF_PACKET = 0x11 - AF_PHONET = 0x23 - AF_PPPOX = 0x18 - AF_QIPCRTR = 0x2a - AF_RDS = 0x15 - AF_ROSE = 0xb - AF_ROUTE = 0x10 - AF_RXRPC = 0x21 - AF_SECURITY = 0xe - AF_SNA = 0x16 - AF_TIPC = 0x1e - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VSOCK = 0x28 - AF_WANPIPE = 0x19 - AF_X25 = 0x9 - ALG_OP_DECRYPT = 0x0 - ALG_OP_ENCRYPT = 0x1 - ALG_SET_AEAD_ASSOCLEN = 0x4 - ALG_SET_AEAD_AUTHSIZE = 0x5 - ALG_SET_IV = 0x2 - ALG_SET_KEY = 0x1 - ALG_SET_OP = 0x3 - ARPHRD_6LOWPAN = 0x339 - ARPHRD_ADAPT = 0x108 - ARPHRD_APPLETLK = 0x8 - ARPHRD_ARCNET = 0x7 - ARPHRD_ASH = 0x30d - ARPHRD_ATM = 0x13 - ARPHRD_AX25 = 0x3 - ARPHRD_BIF = 0x307 - ARPHRD_CAIF = 0x336 - ARPHRD_CAN = 0x118 - ARPHRD_CHAOS = 0x5 - ARPHRD_CISCO = 0x201 - ARPHRD_CSLIP = 0x101 - ARPHRD_CSLIP6 = 0x103 - ARPHRD_DDCMP = 0x205 - ARPHRD_DLCI = 0xf - ARPHRD_ECONET = 0x30e - ARPHRD_EETHER = 0x2 - ARPHRD_ETHER = 0x1 - ARPHRD_EUI64 = 0x1b - ARPHRD_FCAL = 0x311 - ARPHRD_FCFABRIC = 0x313 - ARPHRD_FCPL = 0x312 - ARPHRD_FCPP = 0x310 - ARPHRD_FDDI = 0x306 - ARPHRD_FRAD = 0x302 - ARPHRD_HDLC = 0x201 - ARPHRD_HIPPI = 0x30c - ARPHRD_HWX25 = 0x110 - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_IEEE80211 = 0x321 - ARPHRD_IEEE80211_PRISM = 0x322 - ARPHRD_IEEE80211_RADIOTAP = 0x323 - ARPHRD_IEEE802154 = 0x324 - ARPHRD_IEEE802154_MONITOR = 0x325 - ARPHRD_IEEE802_TR = 0x320 - ARPHRD_INFINIBAND = 0x20 - ARPHRD_IP6GRE = 0x337 - ARPHRD_IPDDP = 0x309 - ARPHRD_IPGRE = 0x30a - ARPHRD_IRDA = 0x30f - ARPHRD_LAPB = 0x204 - ARPHRD_LOCALTLK = 0x305 - ARPHRD_LOOPBACK = 0x304 - ARPHRD_METRICOM = 0x17 - ARPHRD_NETLINK = 0x338 - ARPHRD_NETROM = 0x0 - ARPHRD_NONE = 0xfffe - ARPHRD_PHONET = 0x334 - ARPHRD_PHONET_PIPE = 0x335 - ARPHRD_PIMREG = 0x30b - ARPHRD_PPP = 0x200 - ARPHRD_PRONET = 0x4 - ARPHRD_RAWHDLC = 0x206 - ARPHRD_ROSE = 0x10e - ARPHRD_RSRVD = 0x104 - ARPHRD_SIT = 0x308 - ARPHRD_SKIP = 0x303 - ARPHRD_SLIP = 0x100 - ARPHRD_SLIP6 = 0x102 - ARPHRD_TUNNEL = 0x300 - ARPHRD_TUNNEL6 = 0x301 - ARPHRD_VOID = 0xffff - ARPHRD_X25 = 0x10f - B0 = 0x0 - B1000000 = 0x1008 - B110 = 0x3 - B115200 = 0x1002 - B1152000 = 0x1009 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B1500000 = 0x100a - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B2000000 = 0x100b - B230400 = 0x1003 - B2400 = 0xb - B2500000 = 0x100c - B300 = 0x7 - B3000000 = 0x100d - B3500000 = 0x100e - B38400 = 0xf - B4000000 = 0x100f - B460800 = 0x1004 - B4800 = 0xc - B50 = 0x1 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B600 = 0x8 - B75 = 0x2 - B921600 = 0x1007 - B9600 = 0xd - BLKBSZGET = 0x80041270 - BLKBSZSET = 0x40041271 - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80041272 - BLKPBSZGET = 0x127b - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d - BLKRRPART = 0x125f - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 - BOTHER = 0x1000 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIV = 0x30 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LL_OFF = -0x200000 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXINSNS = 0x1000 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_NET_OFF = -0x100000 - BPF_OR = 0x40 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XOR = 0xa0 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x2000 - BSDLY = 0x2000 - CAN_BCM = 0x2 - CAN_EFF_FLAG = 0x80000000 - CAN_EFF_ID_BITS = 0x1d - CAN_EFF_MASK = 0x1fffffff - CAN_ERR_FLAG = 0x20000000 - CAN_ERR_MASK = 0x1fffffff - CAN_INV_FILTER = 0x20000000 - CAN_ISOTP = 0x6 - CAN_MAX_DLC = 0x8 - CAN_MAX_DLEN = 0x8 - CAN_MCNET = 0x5 - CAN_MTU = 0x10 - CAN_NPROTO = 0x7 - CAN_RAW = 0x1 - CAN_RAW_FILTER_MAX = 0x200 - CAN_RTR_FLAG = 0x40000000 - CAN_SFF_ID_BITS = 0xb - CAN_SFF_MASK = 0x7ff - CAN_TP16 = 0x3 - CAN_TP20 = 0x4 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CFLUSH = 0xf - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CLOCK_BOOTTIME = 0x7 - CLOCK_BOOTTIME_ALARM = 0x9 - CLOCK_DEFAULT = 0x0 - CLOCK_EXT = 0x1 - CLOCK_INT = 0x2 - CLOCK_MONOTONIC = 0x1 - CLOCK_MONOTONIC_COARSE = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_ALARM = 0x8 - CLOCK_REALTIME_COARSE = 0x5 - CLOCK_TAI = 0xb - CLOCK_THREAD_CPUTIME_ID = 0x3 - CLOCK_TXFROMRX = 0x4 - CLOCK_TXINT = 0x3 - CLONE_CHILD_CLEARTID = 0x200000 - CLONE_CHILD_SETTID = 0x1000000 - CLONE_DETACHED = 0x400000 - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_IO = 0x80000000 - CLONE_NEWCGROUP = 0x2000000 - CLONE_NEWIPC = 0x8000000 - CLONE_NEWNET = 0x40000000 - CLONE_NEWNS = 0x20000 - CLONE_NEWPID = 0x20000000 - CLONE_NEWUSER = 0x10000000 - CLONE_NEWUTS = 0x4000000 - CLONE_PARENT = 0x8000 - CLONE_PARENT_SETTID = 0x100000 - CLONE_PTRACE = 0x2000 - CLONE_SETTLS = 0x80000 - CLONE_SIGHAND = 0x800 - CLONE_SYSVSEM = 0x40000 - CLONE_THREAD = 0x10000 - CLONE_UNTRACED = 0x800000 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CMSPAR = 0x40000000 - CR0 = 0x0 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRDLY = 0x600 - CREAD = 0x80 - CRTSCTS = 0x80000000 - CS5 = 0x0 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIGNAL = 0xff - CSIZE = 0x30 - CSTART = 0x11 - CSTATUS = 0x0 - CSTOP = 0x13 - CSTOPB = 0x40 - CSUSP = 0x1a - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EFD_SEMAPHORE = 0x1 - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - EPOLLEXCLUSIVE = 0x10000000 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLONESHOT = 0x40000000 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDHUP = 0x2000 - EPOLLRDNORM = 0x40 - EPOLLWAKEUP = 0x20000000 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CLOEXEC = 0x80000 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - ETH_P_1588 = 0x88f7 - ETH_P_8021AD = 0x88a8 - ETH_P_8021AH = 0x88e7 - ETH_P_8021Q = 0x8100 - ETH_P_80221 = 0x8917 - ETH_P_802_2 = 0x4 - ETH_P_802_3 = 0x1 - ETH_P_802_3_MIN = 0x600 - ETH_P_802_EX1 = 0x88b5 - ETH_P_AARP = 0x80f3 - ETH_P_AF_IUCV = 0xfbfb - ETH_P_ALL = 0x3 - ETH_P_AOE = 0x88a2 - ETH_P_ARCNET = 0x1a - ETH_P_ARP = 0x806 - ETH_P_ATALK = 0x809b - ETH_P_ATMFATE = 0x8884 - ETH_P_ATMMPOA = 0x884c - ETH_P_AX25 = 0x2 - ETH_P_BATMAN = 0x4305 - ETH_P_BPQ = 0x8ff - ETH_P_CAIF = 0xf7 - ETH_P_CAN = 0xc - ETH_P_CANFD = 0xd - ETH_P_CONTROL = 0x16 - ETH_P_CUST = 0x6006 - ETH_P_DDCMP = 0x6 - ETH_P_DEC = 0x6000 - ETH_P_DIAG = 0x6005 - ETH_P_DNA_DL = 0x6001 - ETH_P_DNA_RC = 0x6002 - ETH_P_DNA_RT = 0x6003 - ETH_P_DSA = 0x1b - ETH_P_ECONET = 0x18 - ETH_P_EDSA = 0xdada - ETH_P_FCOE = 0x8906 - ETH_P_FIP = 0x8914 - ETH_P_HDLC = 0x19 - ETH_P_HSR = 0x892f - ETH_P_IEEE802154 = 0xf6 - ETH_P_IEEEPUP = 0xa00 - ETH_P_IEEEPUPAT = 0xa01 - ETH_P_IP = 0x800 - ETH_P_IPV6 = 0x86dd - ETH_P_IPX = 0x8137 - ETH_P_IRDA = 0x17 - ETH_P_LAT = 0x6004 - ETH_P_LINK_CTL = 0x886c - ETH_P_LOCALTALK = 0x9 - ETH_P_LOOP = 0x60 - ETH_P_LOOPBACK = 0x9000 - ETH_P_MACSEC = 0x88e5 - ETH_P_MOBITEX = 0x15 - ETH_P_MPLS_MC = 0x8848 - ETH_P_MPLS_UC = 0x8847 - ETH_P_MVRP = 0x88f5 - ETH_P_NCSI = 0x88f8 - ETH_P_PAE = 0x888e - ETH_P_PAUSE = 0x8808 - ETH_P_PHONET = 0xf5 - ETH_P_PPPTALK = 0x10 - ETH_P_PPP_DISC = 0x8863 - ETH_P_PPP_MP = 0x8 - ETH_P_PPP_SES = 0x8864 - ETH_P_PRP = 0x88fb - ETH_P_PUP = 0x200 - ETH_P_PUPAT = 0x201 - ETH_P_QINQ1 = 0x9100 - ETH_P_QINQ2 = 0x9200 - ETH_P_QINQ3 = 0x9300 - ETH_P_RARP = 0x8035 - ETH_P_SCA = 0x6007 - ETH_P_SLOW = 0x8809 - ETH_P_SNAP = 0x5 - ETH_P_TDLS = 0x890d - ETH_P_TEB = 0x6558 - ETH_P_TIPC = 0x88ca - ETH_P_TRAILER = 0x1c - ETH_P_TR_802_2 = 0x11 - ETH_P_TSN = 0x22f0 - ETH_P_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - ETH_P_XDSA = 0xf8 - EXTA = 0xe - EXTB = 0xf - EXTPROC = 0x10000 - FALLOC_FL_COLLAPSE_RANGE = 0x8 - FALLOC_FL_INSERT_RANGE = 0x20 - FALLOC_FL_KEEP_SIZE = 0x1 - FALLOC_FL_NO_HIDE_STALE = 0x4 - FALLOC_FL_PUNCH_HOLE = 0x2 - FALLOC_FL_UNSHARE_RANGE = 0x40 - FALLOC_FL_ZERO_RANGE = 0x10 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x8000 - FFDLY = 0x8000 - FLUSHO = 0x1000 - FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 - FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 - FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 - FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 - FS_ENCRYPTION_MODE_INVALID = 0x0 - FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 - FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 - FS_KEY_DESCRIPTOR_SIZE = 0x8 - FS_KEY_DESC_PREFIX = "fscrypt:" - FS_KEY_DESC_PREFIX_SIZE = 0x8 - FS_MAX_KEY_SIZE = 0x40 - FS_POLICY_FLAGS_PAD_16 = 0x2 - FS_POLICY_FLAGS_PAD_32 = 0x3 - FS_POLICY_FLAGS_PAD_4 = 0x0 - FS_POLICY_FLAGS_PAD_8 = 0x1 - FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x3 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x406 - F_EXLCK = 0x4 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLEASE = 0x401 - F_GETLK = 0xc - F_GETLK64 = 0xc - F_GETOWN = 0x9 - F_GETOWN_EX = 0x10 - F_GETPIPE_SZ = 0x408 - F_GETSIG = 0xb - F_LOCK = 0x1 - F_NOTIFY = 0x402 - F_OFD_GETLK = 0x24 - F_OFD_SETLK = 0x25 - F_OFD_SETLKW = 0x26 - F_OK = 0x0 - F_RDLCK = 0x0 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLEASE = 0x400 - F_SETLK = 0xd - F_SETLK64 = 0xd - F_SETLKW = 0xe - F_SETLKW64 = 0xe - F_SETOWN = 0x8 - F_SETOWN_EX = 0xf - F_SETPIPE_SZ = 0x407 - F_SETSIG = 0xa - F_SHLCK = 0x8 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_ULOCK = 0x0 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - GENL_ADMIN_PERM = 0x1 - GENL_CMD_CAP_DO = 0x2 - GENL_CMD_CAP_DUMP = 0x4 - GENL_CMD_CAP_HASPOL = 0x8 - GENL_HDRLEN = 0x4 - GENL_ID_CTRL = 0x10 - GENL_ID_PMCRAID = 0x12 - GENL_ID_VFS_DQUOT = 0x11 - GENL_MAX_ID = 0x3ff - GENL_MIN_ID = 0x10 - GENL_NAMSIZ = 0x10 - GENL_START_ALLOC = 0x13 - GENL_UNS_ADMIN_PERM = 0x10 - GRND_NONBLOCK = 0x1 - GRND_RANDOM = 0x2 - HUPCL = 0x400 - IBSHIFT = 0x10 - ICANON = 0x2 - ICMPV6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x8000 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_MANAGETEMPADDR = 0x100 - IFA_F_MCAUTOJOIN = 0x400 - IFA_F_NODAD = 0x2 - IFA_F_NOPREFIXROUTE = 0x200 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_STABLE_PRIVACY = 0x800 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0x8 - IFF_ALLMULTI = 0x200 - IFF_ATTACH_QUEUE = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DETACH_QUEUE = 0x400 - IFF_DORMANT = 0x20000 - IFF_DYNAMIC = 0x8000 - IFF_ECHO = 0x40000 - IFF_LOOPBACK = 0x8 - IFF_LOWER_UP = 0x10000 - IFF_MASTER = 0x400 - IFF_MULTICAST = 0x1000 - IFF_MULTI_QUEUE = 0x100 - IFF_NOARP = 0x80 - IFF_NOFILTER = 0x1000 - IFF_NOTRAILERS = 0x20 - IFF_NO_PI = 0x1000 - IFF_ONE_QUEUE = 0x2000 - IFF_PERSIST = 0x800 - IFF_POINTOPOINT = 0x10 - IFF_PORTSEL = 0x2000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SLAVE = 0x800 - IFF_TAP = 0x2 - IFF_TUN = 0x1 - IFF_TUN_EXCL = 0x8000 - IFF_UP = 0x1 - IFF_VNET_HDR = 0x4000 - IFF_VOLATILE = 0x70c5a - IFNAMSIZ = 0x10 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_ACCESS = 0x1 - IN_ALL_EVENTS = 0xfff - IN_ATTRIB = 0x4 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLOEXEC = 0x80000 - IN_CLOSE = 0x18 - IN_CLOSE_NOWRITE = 0x10 - IN_CLOSE_WRITE = 0x8 - IN_CREATE = 0x100 - IN_DELETE = 0x200 - IN_DELETE_SELF = 0x400 - IN_DONT_FOLLOW = 0x2000000 - IN_EXCL_UNLINK = 0x4000000 - IN_IGNORED = 0x8000 - IN_ISDIR = 0x40000000 - IN_LOOPBACKNET = 0x7f - IN_MASK_ADD = 0x20000000 - IN_MODIFY = 0x2 - IN_MOVE = 0xc0 - IN_MOVED_FROM = 0x40 - IN_MOVED_TO = 0x80 - IN_MOVE_SELF = 0x800 - IN_NONBLOCK = 0x800 - IN_ONESHOT = 0x80000000 - IN_ONLYDIR = 0x1000000 - IN_OPEN = 0x20 - IN_Q_OVERFLOW = 0x4000 - IN_UNMOUNT = 0x2000 - IPPROTO_AH = 0x33 - IPPROTO_BEETPH = 0x5e - IPPROTO_COMP = 0x6c - IPPROTO_DCCP = 0x21 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPIP = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MH = 0x87 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_NONE = 0x3b - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_2292DSTOPTS = 0x4 - IPV6_2292HOPLIMIT = 0x8 - IPV6_2292HOPOPTS = 0x3 - IPV6_2292PKTINFO = 0x2 - IPV6_2292PKTOPTIONS = 0x6 - IPV6_2292RTHDR = 0x5 - IPV6_ADDRFORM = 0x1 - IPV6_ADD_MEMBERSHIP = 0x14 - IPV6_AUTHHDR = 0xa - IPV6_CHECKSUM = 0x7 - IPV6_DONTFRAG = 0x3e - IPV6_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - IPV6_HDRINCL = 0x24 - IPV6_HOPLIMIT = 0x34 - IPV6_HOPOPTS = 0x36 - IPV6_IPSEC_POLICY = 0x22 - IPV6_JOIN_ANYCAST = 0x1b - IPV6_JOIN_GROUP = 0x14 - IPV6_LEAVE_ANYCAST = 0x1c - IPV6_LEAVE_GROUP = 0x15 - IPV6_MTU = 0x18 - IPV6_MTU_DISCOVER = 0x17 - IPV6_MULTICAST_HOPS = 0x12 - IPV6_MULTICAST_IF = 0x11 - IPV6_MULTICAST_LOOP = 0x13 - IPV6_NEXTHOP = 0x9 - IPV6_PATHMTU = 0x3d - IPV6_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_INTERFACE = 0x4 - IPV6_PMTUDISC_OMIT = 0x5 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVPATHMTU = 0x3c - IPV6_RECVPKTINFO = 0x31 - IPV6_RECVRTHDR = 0x38 - IPV6_RECVTCLASS = 0x42 - IPV6_ROUTER_ALERT = 0x16 - IPV6_RTHDR = 0x39 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RXDSTOPTS = 0x3b - IPV6_RXHOPOPTS = 0x36 - IPV6_TCLASS = 0x43 - IPV6_UNICAST_HOPS = 0x10 - IPV6_V6ONLY = 0x1a - IPV6_XFRM_POLICY = 0x23 - IP_ADD_MEMBERSHIP = 0x23 - IP_ADD_SOURCE_MEMBERSHIP = 0x27 - IP_BIND_ADDRESS_NO_PORT = 0x18 - IP_BLOCK_SOURCE = 0x26 - IP_CHECKSUM = 0x17 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0x24 - IP_DROP_SOURCE_MEMBERSHIP = 0x28 - IP_FREEBIND = 0xf - IP_HDRINCL = 0x3 - IP_IPSEC_POLICY = 0x10 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINTTL = 0x15 - IP_MSFILTER = 0x29 - IP_MSS = 0x240 - IP_MTU = 0xe - IP_MTU_DISCOVER = 0xa - IP_MULTICAST_ALL = 0x31 - IP_MULTICAST_IF = 0x20 - IP_MULTICAST_LOOP = 0x22 - IP_MULTICAST_TTL = 0x21 - IP_NODEFRAG = 0x16 - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x4 - IP_ORIGDSTADDR = 0x14 - IP_PASSSEC = 0x12 - IP_PKTINFO = 0x8 - IP_PKTOPTIONS = 0x9 - IP_PMTUDISC = 0xa - IP_PMTUDISC_DO = 0x2 - IP_PMTUDISC_DONT = 0x0 - IP_PMTUDISC_INTERFACE = 0x4 - IP_PMTUDISC_OMIT = 0x5 - IP_PMTUDISC_PROBE = 0x3 - IP_PMTUDISC_WANT = 0x1 - IP_RECVERR = 0xb - IP_RECVOPTS = 0x6 - IP_RECVORIGDSTADDR = 0x14 - IP_RECVRETOPTS = 0x7 - IP_RECVTOS = 0xd - IP_RECVTTL = 0xc - IP_RETOPTS = 0x7 - IP_RF = 0x8000 - IP_ROUTER_ALERT = 0x5 - IP_TOS = 0x1 - IP_TRANSPARENT = 0x13 - IP_TTL = 0x2 - IP_UNBLOCK_SOURCE = 0x25 - IP_UNICAST_IF = 0x32 - IP_XFRM_POLICY = 0x11 - ISIG = 0x1 - ISTRIP = 0x20 - IUCLC = 0x200 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x1000 - IXON = 0x400 - KEYCTL_ASSUME_AUTHORITY = 0x10 - KEYCTL_CHOWN = 0x4 - KEYCTL_CLEAR = 0x7 - KEYCTL_DESCRIBE = 0x6 - KEYCTL_DH_COMPUTE = 0x17 - KEYCTL_GET_KEYRING_ID = 0x0 - KEYCTL_GET_PERSISTENT = 0x16 - KEYCTL_GET_SECURITY = 0x11 - KEYCTL_INSTANTIATE = 0xc - KEYCTL_INSTANTIATE_IOV = 0x14 - KEYCTL_INVALIDATE = 0x15 - KEYCTL_JOIN_SESSION_KEYRING = 0x1 - KEYCTL_LINK = 0x8 - KEYCTL_NEGATE = 0xd - KEYCTL_READ = 0xb - KEYCTL_REJECT = 0x13 - KEYCTL_REVOKE = 0x3 - KEYCTL_SEARCH = 0xa - KEYCTL_SESSION_TO_PARENT = 0x12 - KEYCTL_SETPERM = 0x5 - KEYCTL_SET_REQKEY_KEYRING = 0xe - KEYCTL_SET_TIMEOUT = 0xf - KEYCTL_UNLINK = 0x9 - KEYCTL_UPDATE = 0x2 - KEY_REQKEY_DEFL_DEFAULT = 0x0 - KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 - KEY_REQKEY_DEFL_NO_CHANGE = -0x1 - KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 - KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 - KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 - KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 - KEY_REQKEY_DEFL_USER_KEYRING = 0x4 - KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 - KEY_SPEC_GROUP_KEYRING = -0x6 - KEY_SPEC_PROCESS_KEYRING = -0x2 - KEY_SPEC_REQKEY_AUTH_KEY = -0x7 - KEY_SPEC_REQUESTOR_KEYRING = -0x8 - KEY_SPEC_SESSION_KEYRING = -0x3 - KEY_SPEC_THREAD_KEYRING = -0x1 - KEY_SPEC_USER_KEYRING = -0x4 - KEY_SPEC_USER_SESSION_KEYRING = -0x5 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef - LINUX_REBOOT_CMD_HALT = 0xcdef0123 - LINUX_REBOOT_CMD_KEXEC = 0x45584543 - LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc - LINUX_REBOOT_CMD_RESTART = 0x1234567 - LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 - LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 - LINUX_REBOOT_MAGIC1 = 0xfee1dead - LINUX_REBOOT_MAGIC2 = 0x28121969 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DODUMP = 0x11 - MADV_DOFORK = 0xb - MADV_DONTDUMP = 0x10 - MADV_DONTFORK = 0xa - MADV_DONTNEED = 0x4 - MADV_FREE = 0x8 - MADV_HUGEPAGE = 0xe - MADV_HWPOISON = 0x64 - MADV_MERGEABLE = 0xc - MADV_NOHUGEPAGE = 0xf - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_REMOVE = 0x9 - MADV_SEQUENTIAL = 0x2 - MADV_UNMERGEABLE = 0xd - MADV_WILLNEED = 0x3 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_GROWSDOWN = 0x100 - MAP_HUGETLB = 0x40000 - MAP_HUGE_MASK = 0x3f - MAP_HUGE_SHIFT = 0x1a - MAP_LOCKED = 0x2000 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x4000 - MAP_POPULATE = 0x8000 - MAP_PRIVATE = 0x2 - MAP_SHARED = 0x1 - MAP_STACK = 0x20000 - MAP_TYPE = 0xf - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - MSG_BATCH = 0x40000 - MSG_CMSG_CLOEXEC = 0x40000000 - MSG_CONFIRM = 0x800 - MSG_CTRUNC = 0x8 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x40 - MSG_EOR = 0x80 - MSG_ERRQUEUE = 0x2000 - MSG_FASTOPEN = 0x20000000 - MSG_FIN = 0x200 - MSG_MORE = 0x8000 - MSG_NOSIGNAL = 0x4000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_PROXY = 0x10 - MSG_RST = 0x1000 - MSG_SYN = 0x400 - MSG_TRUNC = 0x20 - MSG_TRYHARD = 0x4 - MSG_WAITALL = 0x100 - MSG_WAITFORONE = 0x10000 - MS_ACTIVE = 0x40000000 - MS_ASYNC = 0x1 - MS_BIND = 0x1000 - MS_BORN = 0x20000000 - MS_DIRSYNC = 0x80 - MS_INVALIDATE = 0x2 - MS_I_VERSION = 0x800000 - MS_KERNMOUNT = 0x400000 - MS_LAZYTIME = 0x2000000 - MS_MANDLOCK = 0x40 - MS_MGC_MSK = 0xffff0000 - MS_MGC_VAL = 0xc0ed0000 - MS_MOVE = 0x2000 - MS_NOATIME = 0x400 - MS_NODEV = 0x4 - MS_NODIRATIME = 0x800 - MS_NOEXEC = 0x8 - MS_NOREMOTELOCK = 0x8000000 - MS_NOSEC = 0x10000000 - MS_NOSUID = 0x2 - MS_NOUSER = -0x80000000 - MS_POSIXACL = 0x10000 - MS_PRIVATE = 0x40000 - MS_RDONLY = 0x1 - MS_REC = 0x4000 - MS_RELATIME = 0x200000 - MS_REMOUNT = 0x20 - MS_RMT_MASK = 0x2800051 - MS_SHARED = 0x100000 - MS_SILENT = 0x8000 - MS_SLAVE = 0x80000 - MS_STRICTATIME = 0x1000000 - MS_SYNC = 0x4 - MS_SYNCHRONOUS = 0x10 - MS_UNBINDABLE = 0x20000 - MS_VERBOSE = 0x8000 - NAME_MAX = 0xff - NETLINK_ADD_MEMBERSHIP = 0x1 - NETLINK_AUDIT = 0x9 - NETLINK_BROADCAST_ERROR = 0x4 - NETLINK_CAP_ACK = 0xa - NETLINK_CONNECTOR = 0xb - NETLINK_CRYPTO = 0x15 - NETLINK_DNRTMSG = 0xe - NETLINK_DROP_MEMBERSHIP = 0x2 - NETLINK_ECRYPTFS = 0x13 - NETLINK_FIB_LOOKUP = 0xa - NETLINK_FIREWALL = 0x3 - NETLINK_GENERIC = 0x10 - NETLINK_INET_DIAG = 0x4 - NETLINK_IP6_FW = 0xd - NETLINK_ISCSI = 0x8 - NETLINK_KOBJECT_UEVENT = 0xf - NETLINK_LISTEN_ALL_NSID = 0x8 - NETLINK_LIST_MEMBERSHIPS = 0x9 - NETLINK_NETFILTER = 0xc - NETLINK_NFLOG = 0x5 - NETLINK_NO_ENOBUFS = 0x5 - NETLINK_PKTINFO = 0x3 - NETLINK_RDMA = 0x14 - NETLINK_ROUTE = 0x0 - NETLINK_RX_RING = 0x6 - NETLINK_SCSITRANSPORT = 0x12 - NETLINK_SELINUX = 0x7 - NETLINK_SOCK_DIAG = 0x4 - NETLINK_TX_RING = 0x7 - NETLINK_UNUSED = 0x1 - NETLINK_USERSOCK = 0x2 - NETLINK_XFRM = 0x6 - NL0 = 0x0 - NL1 = 0x100 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - NLDLY = 0x100 - NLMSG_ALIGNTO = 0x4 - NLMSG_DONE = 0x3 - NLMSG_ERROR = 0x2 - NLMSG_HDRLEN = 0x10 - NLMSG_MIN_TYPE = 0x10 - NLMSG_NOOP = 0x1 - NLMSG_OVERRUN = 0x4 - NLM_F_ACK = 0x4 - NLM_F_APPEND = 0x800 - NLM_F_ATOMIC = 0x400 - NLM_F_CREATE = 0x400 - NLM_F_DUMP = 0x300 - NLM_F_DUMP_FILTERED = 0x20 - NLM_F_DUMP_INTR = 0x10 - NLM_F_ECHO = 0x8 - NLM_F_EXCL = 0x200 - NLM_F_MATCH = 0x200 - NLM_F_MULTI = 0x2 - NLM_F_REPLACE = 0x100 - NLM_F_REQUEST = 0x1 - NLM_F_ROOT = 0x100 - NOFLSH = 0x80 - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x2 - ONLCR = 0x4 - ONLRET = 0x20 - ONOCR = 0x10 - OPOST = 0x1 - O_ACCMODE = 0x3 - O_APPEND = 0x400 - O_ASYNC = 0x2000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x40 - O_DIRECT = 0x10000 - O_DIRECTORY = 0x4000 - O_DSYNC = 0x1000 - O_EXCL = 0x80 - O_FSYNC = 0x101000 - O_LARGEFILE = 0x20000 - O_NDELAY = 0x800 - O_NOATIME = 0x40000 - O_NOCTTY = 0x100 - O_NOFOLLOW = 0x8000 - O_NONBLOCK = 0x800 - O_PATH = 0x200000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x101000 - O_SYNC = 0x101000 - O_TMPFILE = 0x404000 - O_TRUNC = 0x200 - O_WRONLY = 0x1 - PACKET_ADD_MEMBERSHIP = 0x1 - PACKET_AUXDATA = 0x8 - PACKET_BROADCAST = 0x1 - PACKET_COPY_THRESH = 0x7 - PACKET_DROP_MEMBERSHIP = 0x2 - PACKET_FANOUT = 0x12 - PACKET_FANOUT_CBPF = 0x6 - PACKET_FANOUT_CPU = 0x2 - PACKET_FANOUT_DATA = 0x16 - PACKET_FANOUT_EBPF = 0x7 - PACKET_FANOUT_FLAG_DEFRAG = 0x8000 - PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 - PACKET_FANOUT_HASH = 0x0 - PACKET_FANOUT_LB = 0x1 - PACKET_FANOUT_QM = 0x5 - PACKET_FANOUT_RND = 0x4 - PACKET_FANOUT_ROLLOVER = 0x3 - PACKET_FASTROUTE = 0x6 - PACKET_HDRLEN = 0xb - PACKET_HOST = 0x0 - PACKET_KERNEL = 0x7 - PACKET_LOOPBACK = 0x5 - PACKET_LOSS = 0xe - PACKET_MR_ALLMULTI = 0x2 - PACKET_MR_MULTICAST = 0x0 - PACKET_MR_PROMISC = 0x1 - PACKET_MR_UNICAST = 0x3 - PACKET_MULTICAST = 0x2 - PACKET_ORIGDEV = 0x9 - PACKET_OTHERHOST = 0x3 - PACKET_OUTGOING = 0x4 - PACKET_QDISC_BYPASS = 0x14 - PACKET_RECV_OUTPUT = 0x3 - PACKET_RESERVE = 0xc - PACKET_ROLLOVER_STATS = 0x15 - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - PACKET_TIMESTAMP = 0x11 - PACKET_TX_HAS_OFF = 0x13 - PACKET_TX_RING = 0xd - PACKET_TX_TIMESTAMP = 0x10 - PACKET_USER = 0x6 - PACKET_VERSION = 0xa - PACKET_VNET_HDR = 0xf - PARENB = 0x100 - PARITY_CRC16_PR0 = 0x2 - PARITY_CRC16_PR0_CCITT = 0x4 - PARITY_CRC16_PR1 = 0x3 - PARITY_CRC16_PR1_CCITT = 0x5 - PARITY_CRC32_PR0_CCITT = 0x6 - PARITY_CRC32_PR1_CCITT = 0x7 - PARITY_DEFAULT = 0x0 - PARITY_NONE = 0x1 - PARMRK = 0x8 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x2401 - PERF_EVENT_IOC_ENABLE = 0x2400 - PERF_EVENT_IOC_ID = 0x80042407 - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 - PERF_EVENT_IOC_PERIOD = 0x40082404 - PERF_EVENT_IOC_REFRESH = 0x2402 - PERF_EVENT_IOC_RESET = 0x2403 - PERF_EVENT_IOC_SET_BPF = 0x40042408 - PERF_EVENT_IOC_SET_FILTER = 0x40042406 - PERF_EVENT_IOC_SET_OUTPUT = 0x2405 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_GROWSDOWN = 0x1000000 - PROT_GROWSUP = 0x2000000 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PR_CAPBSET_DROP = 0x18 - PR_CAPBSET_READ = 0x17 - PR_CAP_AMBIENT = 0x2f - PR_CAP_AMBIENT_CLEAR_ALL = 0x4 - PR_CAP_AMBIENT_IS_SET = 0x1 - PR_CAP_AMBIENT_LOWER = 0x3 - PR_CAP_AMBIENT_RAISE = 0x2 - PR_ENDIAN_BIG = 0x0 - PR_ENDIAN_LITTLE = 0x1 - PR_ENDIAN_PPC_LITTLE = 0x2 - PR_FPEMU_NOPRINT = 0x1 - PR_FPEMU_SIGFPE = 0x2 - PR_FP_EXC_ASYNC = 0x2 - PR_FP_EXC_DISABLED = 0x0 - PR_FP_EXC_DIV = 0x10000 - PR_FP_EXC_INV = 0x100000 - PR_FP_EXC_NONRECOV = 0x1 - PR_FP_EXC_OVF = 0x20000 - PR_FP_EXC_PRECISE = 0x3 - PR_FP_EXC_RES = 0x80000 - PR_FP_EXC_SW_ENABLE = 0x80 - PR_FP_EXC_UND = 0x40000 - PR_FP_MODE_FR = 0x1 - PR_FP_MODE_FRE = 0x2 - PR_GET_CHILD_SUBREAPER = 0x25 - PR_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - PR_GET_FP_MODE = 0x2e - PR_GET_KEEPCAPS = 0x7 - PR_GET_NAME = 0x10 - PR_GET_NO_NEW_PRIVS = 0x27 - PR_GET_PDEATHSIG = 0x2 - PR_GET_SECCOMP = 0x15 - PR_GET_SECUREBITS = 0x1b - PR_GET_THP_DISABLE = 0x2a - PR_GET_TID_ADDRESS = 0x28 - PR_GET_TIMERSLACK = 0x1e - PR_GET_TIMING = 0xd - PR_GET_TSC = 0x19 - PR_GET_UNALIGN = 0x5 - PR_MCE_KILL = 0x21 - PR_MCE_KILL_CLEAR = 0x0 - PR_MCE_KILL_DEFAULT = 0x2 - PR_MCE_KILL_EARLY = 0x1 - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_SET_CHILD_SUBREAPER = 0x24 - PR_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - PR_SET_FP_MODE = 0x2d - PR_SET_KEEPCAPS = 0x8 - PR_SET_MM = 0x23 - PR_SET_MM_ARG_END = 0x9 - PR_SET_MM_ARG_START = 0x8 - PR_SET_MM_AUXV = 0xc - PR_SET_MM_BRK = 0x7 - PR_SET_MM_END_CODE = 0x2 - PR_SET_MM_END_DATA = 0x4 - PR_SET_MM_ENV_END = 0xb - PR_SET_MM_ENV_START = 0xa - PR_SET_MM_EXE_FILE = 0xd - PR_SET_MM_MAP = 0xe - PR_SET_MM_MAP_SIZE = 0xf - PR_SET_MM_START_BRK = 0x6 - PR_SET_MM_START_CODE = 0x1 - PR_SET_MM_START_DATA = 0x3 - PR_SET_MM_START_STACK = 0x5 - PR_SET_NAME = 0xf - PR_SET_NO_NEW_PRIVS = 0x26 - PR_SET_PDEATHSIG = 0x1 - PR_SET_PTRACER = 0x59616d61 - PR_SET_PTRACER_ANY = 0xffffffff - PR_SET_SECCOMP = 0x16 - PR_SET_SECUREBITS = 0x1c - PR_SET_THP_DISABLE = 0x29 - PR_SET_TIMERSLACK = 0x1d - PR_SET_TIMING = 0xe - PR_SET_TSC = 0x1a - PR_SET_UNALIGN = 0x6 - PR_TASK_PERF_EVENTS_DISABLE = 0x1f - PR_TASK_PERF_EVENTS_ENABLE = 0x20 - PR_TIMING_STATISTICAL = 0x0 - PR_TIMING_TIMESTAMP = 0x1 - PR_TSC_ENABLE = 0x1 - PR_TSC_SIGSEGV = 0x2 - PR_UNALIGN_NOPRINT = 0x1 - PR_UNALIGN_SIGBUS = 0x2 - PTRACE_ATTACH = 0x10 - PTRACE_CONT = 0x7 - PTRACE_DETACH = 0x11 - PTRACE_EVENT_CLONE = 0x3 - PTRACE_EVENT_EXEC = 0x4 - PTRACE_EVENT_EXIT = 0x6 - PTRACE_EVENT_FORK = 0x1 - PTRACE_EVENT_SECCOMP = 0x7 - PTRACE_EVENT_STOP = 0x80 - PTRACE_EVENT_VFORK = 0x2 - PTRACE_EVENT_VFORK_DONE = 0x5 - PTRACE_GETCRUNCHREGS = 0x19 - PTRACE_GETEVENTMSG = 0x4201 - PTRACE_GETFPREGS = 0xe - PTRACE_GETHBPREGS = 0x1d - PTRACE_GETREGS = 0xc - PTRACE_GETREGSET = 0x4204 - PTRACE_GETSIGINFO = 0x4202 - PTRACE_GETSIGMASK = 0x420a - PTRACE_GETVFPREGS = 0x1b - PTRACE_GETWMMXREGS = 0x12 - PTRACE_GET_THREAD_AREA = 0x16 - PTRACE_INTERRUPT = 0x4207 - PTRACE_KILL = 0x8 - PTRACE_LISTEN = 0x4208 - PTRACE_OLDSETOPTIONS = 0x15 - PTRACE_O_EXITKILL = 0x100000 - PTRACE_O_MASK = 0x3000ff - PTRACE_O_SUSPEND_SECCOMP = 0x200000 - PTRACE_O_TRACECLONE = 0x8 - PTRACE_O_TRACEEXEC = 0x10 - PTRACE_O_TRACEEXIT = 0x40 - PTRACE_O_TRACEFORK = 0x2 - PTRACE_O_TRACESECCOMP = 0x80 - PTRACE_O_TRACESYSGOOD = 0x1 - PTRACE_O_TRACEVFORK = 0x4 - PTRACE_O_TRACEVFORKDONE = 0x20 - PTRACE_PEEKDATA = 0x2 - PTRACE_PEEKSIGINFO = 0x4209 - PTRACE_PEEKSIGINFO_SHARED = 0x1 - PTRACE_PEEKTEXT = 0x1 - PTRACE_PEEKUSR = 0x3 - PTRACE_POKEDATA = 0x5 - PTRACE_POKETEXT = 0x4 - PTRACE_POKEUSR = 0x6 - PTRACE_SECCOMP_GET_FILTER = 0x420c - PTRACE_SEIZE = 0x4206 - PTRACE_SETCRUNCHREGS = 0x1a - PTRACE_SETFPREGS = 0xf - PTRACE_SETHBPREGS = 0x1e - PTRACE_SETOPTIONS = 0x4200 - PTRACE_SETREGS = 0xd - PTRACE_SETREGSET = 0x4205 - PTRACE_SETSIGINFO = 0x4203 - PTRACE_SETSIGMASK = 0x420b - PTRACE_SETVFPREGS = 0x1c - PTRACE_SETWMMXREGS = 0x13 - PTRACE_SET_SYSCALL = 0x17 - PTRACE_SINGLESTEP = 0x9 - PTRACE_SYSCALL = 0x18 - PTRACE_TRACEME = 0x0 - PT_DATA_ADDR = 0x10004 - PT_TEXT_ADDR = 0x10000 - PT_TEXT_END_ADDR = 0x10008 - RLIMIT_AS = 0x9 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_LOCKS = 0xa - RLIMIT_MEMLOCK = 0x8 - RLIMIT_MSGQUEUE = 0xc - RLIMIT_NICE = 0xd - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x6 - RLIMIT_RSS = 0x5 - RLIMIT_RTPRIO = 0xe - RLIMIT_RTTIME = 0xf - RLIMIT_SIGPENDING = 0xb - RLIMIT_STACK = 0x3 - RLIM_INFINITY = -0x1 - RTAX_ADVMSS = 0x8 - RTAX_CC_ALGO = 0x10 - RTAX_CWND = 0x7 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_MASK = 0xf - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0x10 - RTAX_MTU = 0x2 - RTAX_QUICKACK = 0xf - RTAX_REORDERING = 0x9 - RTAX_RTO_MIN = 0xd - RTAX_RTT = 0x4 - RTAX_RTTVAR = 0x5 - RTAX_SSTHRESH = 0x6 - RTAX_UNSPEC = 0x0 - RTAX_WINDOW = 0x3 - RTA_ALIGNTO = 0x4 - RTA_MAX = 0x19 - RTCF_DIRECTSRC = 0x4000000 - RTCF_DOREDIRECT = 0x1000000 - RTCF_LOG = 0x2000000 - RTCF_MASQ = 0x400000 - RTCF_NAT = 0x800000 - RTCF_VALVE = 0x200000 - RTF_ADDRCLASSMASK = 0xf8000000 - RTF_ADDRCONF = 0x40000 - RTF_ALLONLINK = 0x20000 - RTF_BROADCAST = 0x10000000 - RTF_CACHE = 0x1000000 - RTF_DEFAULT = 0x10000 - RTF_DYNAMIC = 0x10 - RTF_FLOW = 0x2000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_INTERFACE = 0x40000000 - RTF_IRTT = 0x100 - RTF_LINKRT = 0x100000 - RTF_LOCAL = 0x80000000 - RTF_MODIFIED = 0x20 - RTF_MSS = 0x40 - RTF_MTU = 0x40 - RTF_MULTICAST = 0x20000000 - RTF_NAT = 0x8000000 - RTF_NOFORWARD = 0x1000 - RTF_NONEXTHOP = 0x200000 - RTF_NOPMTUDISC = 0x4000 - RTF_POLICY = 0x4000000 - RTF_REINSTATE = 0x8 - RTF_REJECT = 0x200 - RTF_STATIC = 0x400 - RTF_THROW = 0x2000 - RTF_UP = 0x1 - RTF_WINDOW = 0x80 - RTF_XRESOLVE = 0x800 - RTM_BASE = 0x10 - RTM_DELACTION = 0x31 - RTM_DELADDR = 0x15 - RTM_DELADDRLABEL = 0x49 - RTM_DELLINK = 0x11 - RTM_DELMDB = 0x55 - RTM_DELNEIGH = 0x1d - RTM_DELNSID = 0x59 - RTM_DELQDISC = 0x25 - RTM_DELROUTE = 0x19 - RTM_DELRULE = 0x21 - RTM_DELTCLASS = 0x29 - RTM_DELTFILTER = 0x2d - RTM_F_CLONED = 0x200 - RTM_F_EQUALIZE = 0x400 - RTM_F_LOOKUP_TABLE = 0x1000 - RTM_F_NOTIFY = 0x100 - RTM_F_PREFIX = 0x800 - RTM_GETACTION = 0x32 - RTM_GETADDR = 0x16 - RTM_GETADDRLABEL = 0x4a - RTM_GETANYCAST = 0x3e - RTM_GETDCB = 0x4e - RTM_GETLINK = 0x12 - RTM_GETMDB = 0x56 - RTM_GETMULTICAST = 0x3a - RTM_GETNEIGH = 0x1e - RTM_GETNEIGHTBL = 0x42 - RTM_GETNETCONF = 0x52 - RTM_GETNSID = 0x5a - RTM_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETSTATS = 0x5e - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_MAX = 0x5f - RTM_NEWACTION = 0x30 - RTM_NEWADDR = 0x14 - RTM_NEWADDRLABEL = 0x48 - RTM_NEWLINK = 0x10 - RTM_NEWMDB = 0x54 - RTM_NEWNDUSEROPT = 0x44 - RTM_NEWNEIGH = 0x1c - RTM_NEWNEIGHTBL = 0x40 - RTM_NEWNETCONF = 0x50 - RTM_NEWNSID = 0x58 - RTM_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWSTATS = 0x5c - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NR_FAMILIES = 0x14 - RTM_NR_MSGTYPES = 0x50 - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTNH_ALIGNTO = 0x4 - RTNH_COMPARE_MASK = 0x19 - RTNH_F_DEAD = 0x1 - RTNH_F_LINKDOWN = 0x10 - RTNH_F_OFFLOAD = 0x8 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTN_MAX = 0xb - RTPROT_BABEL = 0x2a - RTPROT_BIRD = 0xc - RTPROT_BOOT = 0x3 - RTPROT_DHCP = 0x10 - RTPROT_DNROUTED = 0xd - RTPROT_GATED = 0x8 - RTPROT_KERNEL = 0x2 - RTPROT_MROUTED = 0x11 - RTPROT_MRT = 0xa - RTPROT_NTK = 0xf - RTPROT_RA = 0x9 - RTPROT_REDIRECT = 0x1 - RTPROT_STATIC = 0x4 - RTPROT_UNSPEC = 0x0 - RTPROT_XORP = 0xe - RTPROT_ZEBRA = 0xb - RT_CLASS_DEFAULT = 0xfd - RT_CLASS_LOCAL = 0xff - RT_CLASS_MAIN = 0xfe - RT_CLASS_MAX = 0xff - RT_CLASS_UNSPEC = 0x0 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_CREDENTIALS = 0x2 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPNS = 0x23 - SCM_WIFI_STATUS = 0x29 - SECCOMP_MODE_DISABLED = 0x0 - SECCOMP_MODE_FILTER = 0x2 - SECCOMP_MODE_STRICT = 0x1 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCATMARK = 0x8905 - SIOCBONDCHANGEACTIVE = 0x8995 - SIOCBONDENSLAVE = 0x8990 - SIOCBONDINFOQUERY = 0x8994 - SIOCBONDRELEASE = 0x8991 - SIOCBONDSETHWADDR = 0x8992 - SIOCBONDSLAVEINFOQUERY = 0x8993 - SIOCBRADDBR = 0x89a0 - SIOCBRADDIF = 0x89a2 - SIOCBRDELBR = 0x89a1 - SIOCBRDELIF = 0x89a3 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCETHTOOL = 0x8946 - SIOCGARP = 0x8954 - SIOCGHWTSTAMP = 0x89b1 - SIOCGIFADDR = 0x8915 - SIOCGIFBR = 0x8940 - SIOCGIFBRDADDR = 0x8919 - SIOCGIFCONF = 0x8912 - SIOCGIFCOUNT = 0x8938 - SIOCGIFDSTADDR = 0x8917 - SIOCGIFENCAP = 0x8925 - SIOCGIFFLAGS = 0x8913 - SIOCGIFHWADDR = 0x8927 - SIOCGIFINDEX = 0x8933 - SIOCGIFMAP = 0x8970 - SIOCGIFMEM = 0x891f - SIOCGIFMETRIC = 0x891d - SIOCGIFMTU = 0x8921 - SIOCGIFNAME = 0x8910 - SIOCGIFNETMASK = 0x891b - SIOCGIFPFLAGS = 0x8935 - SIOCGIFSLAVE = 0x8929 - SIOCGIFTXQLEN = 0x8942 - SIOCGIFVLAN = 0x8982 - SIOCGMIIPHY = 0x8947 - SIOCGMIIREG = 0x8948 - SIOCGPGRP = 0x8904 - SIOCGRARP = 0x8961 - SIOCGSKNS = 0x894c - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCINQ = 0x541b - SIOCOUTQ = 0x5411 - SIOCOUTQNSD = 0x894b - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - SIOCSHWTSTAMP = 0x89b0 - SIOCSIFADDR = 0x8916 - SIOCSIFBR = 0x8941 - SIOCSIFBRDADDR = 0x891a - SIOCSIFDSTADDR = 0x8918 - SIOCSIFENCAP = 0x8926 - SIOCSIFFLAGS = 0x8914 - SIOCSIFHWADDR = 0x8924 - SIOCSIFHWBROADCAST = 0x8937 - SIOCSIFLINK = 0x8911 - SIOCSIFMAP = 0x8971 - SIOCSIFMEM = 0x8920 - SIOCSIFMETRIC = 0x891e - SIOCSIFMTU = 0x8922 - SIOCSIFNAME = 0x8923 - SIOCSIFNETMASK = 0x891c - SIOCSIFPFLAGS = 0x8934 - SIOCSIFSLAVE = 0x8930 - SIOCSIFTXQLEN = 0x8943 - SIOCSIFVLAN = 0x8983 - SIOCSMIIREG = 0x8949 - SIOCSPGRP = 0x8902 - SIOCSRARP = 0x8962 - SIOCWANDEV = 0x894a - SOCK_CLOEXEC = 0x80000 - SOCK_DCCP = 0x6 - SOCK_DGRAM = 0x2 - SOCK_IOC_TYPE = 0x89 - SOCK_NONBLOCK = 0x800 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_AAL = 0x109 - SOL_ALG = 0x117 - SOL_ATM = 0x108 - SOL_CAIF = 0x116 - SOL_CAN_BASE = 0x64 - SOL_DCCP = 0x10d - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_IUCV = 0x115 - SOL_KCM = 0x119 - SOL_LLC = 0x10c - SOL_NETBEUI = 0x10b - SOL_NETLINK = 0x10e - SOL_NFC = 0x118 - SOL_PACKET = 0x107 - SOL_PNPIPE = 0x113 - SOL_PPPOL2TP = 0x111 - SOL_RAW = 0xff - SOL_RDS = 0x114 - SOL_RXRPC = 0x110 - SOL_SOCKET = 0x1 - SOL_TCP = 0x6 - SOL_TIPC = 0x10f - SOL_X25 = 0x106 - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_BPF = 0x32 - SO_ATTACH_FILTER = 0x1a - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x6 - SO_BSDCOMPAT = 0xe - SO_BUSY_POLL = 0x2e - SO_CNX_ADVICE = 0x35 - SO_DEBUG = 0x1 - SO_DETACH_BPF = 0x1b - SO_DETACH_FILTER = 0x1b - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_ERROR = 0x4 - SO_GET_FILTER = 0x1a - SO_INCOMING_CPU = 0x31 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_NOFCS = 0x2b - SO_NO_CHECK = 0xb - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x11 - SO_PEERNAME = 0x1c - SO_PEERSEC = 0x1f - SO_PRIORITY = 0xc - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x12 - SO_RCVTIMEO = 0x14 - SO_REUSEADDR = 0x2 - SO_REUSEPORT = 0xf - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x13 - SO_SNDTIMEO = 0x15 - SO_TIMESTAMP = 0x1d - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TYPE = 0x3 - SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 - SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 - SO_VM_SOCKETS_BUFFER_SIZE = 0x0 - SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 - SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 - SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 - SO_VM_SOCKETS_TRUSTED = 0x5 - SO_WIFI_STATUS = 0x29 - SPLICE_F_GIFT = 0x8 - SPLICE_F_MORE = 0x4 - SPLICE_F_MOVE = 0x1 - SPLICE_F_NONBLOCK = 0x2 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TASKSTATS_CMD_ATTR_MAX = 0x4 - TASKSTATS_CMD_MAX = 0x2 - TASKSTATS_GENL_NAME = "TASKSTATS" - TASKSTATS_GENL_VERSION = 0x1 - TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x8 - TCFLSH = 0x540b - TCGETA = 0x5405 - TCGETS = 0x5401 - TCGETS2 = 0x802c542a - TCGETX = 0x5432 - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_CC_INFO = 0x1a - TCP_CONGESTION = 0xd - TCP_COOKIE_IN_ALWAYS = 0x1 - TCP_COOKIE_MAX = 0x10 - TCP_COOKIE_MIN = 0x8 - TCP_COOKIE_OUT_NEVER = 0x2 - TCP_COOKIE_PAIR_SIZE = 0x20 - TCP_COOKIE_TRANSACTIONS = 0xf - TCP_CORK = 0x3 - TCP_DEFER_ACCEPT = 0x9 - TCP_FASTOPEN = 0x17 - TCP_INFO = 0xb - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x4 - TCP_KEEPINTVL = 0x5 - TCP_LINGER2 = 0x8 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0xe - TCP_MD5SIG_MAXKEYLEN = 0x50 - TCP_MSS = 0x200 - TCP_MSS_DEFAULT = 0x218 - TCP_MSS_DESIRED = 0x4c4 - TCP_NODELAY = 0x1 - TCP_NOTSENT_LOWAT = 0x19 - TCP_QUEUE_SEQ = 0x15 - TCP_QUICKACK = 0xc - TCP_REPAIR = 0x13 - TCP_REPAIR_OPTIONS = 0x16 - TCP_REPAIR_QUEUE = 0x14 - TCP_REPAIR_WINDOW = 0x1d - TCP_SAVED_SYN = 0x1c - TCP_SAVE_SYN = 0x1b - TCP_SYNCNT = 0x7 - TCP_S_DATA_IN = 0x4 - TCP_S_DATA_OUT = 0x8 - TCP_THIN_DUPACK = 0x11 - TCP_THIN_LINEAR_TIMEOUTS = 0x10 - TCP_TIMESTAMP = 0x18 - TCP_USER_TIMEOUT = 0x12 - TCP_WINDOW_CLAMP = 0xa - TCSAFLUSH = 0x2 - TCSBRK = 0x5409 - TCSBRKP = 0x5425 - TCSETA = 0x5406 - TCSETAF = 0x5408 - TCSETAW = 0x5407 - TCSETS = 0x5402 - TCSETS2 = 0x402c542b - TCSETSF = 0x5404 - TCSETSF2 = 0x402c542d - TCSETSW = 0x5403 - TCSETSW2 = 0x402c542c - TCSETX = 0x5433 - TCSETXF = 0x5434 - TCSETXW = 0x5435 - TCXONC = 0x540a - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x80045432 - TIOCGETD = 0x5424 - TIOCGEXCL = 0x80045440 - TIOCGICOUNT = 0x545d - TIOCGLCKTRMIOS = 0x5456 - TIOCGPGRP = 0x540f - TIOCGPKT = 0x80045438 - TIOCGPTLCK = 0x80045439 - TIOCGPTN = 0x80045430 - TIOCGRS485 = 0x542e - TIOCGSERIAL = 0x541e - TIOCGSID = 0x5429 - TIOCGSOFTCAR = 0x5419 - TIOCGWINSZ = 0x5413 - TIOCINQ = 0x541b - TIOCLINUX = 0x541c - TIOCMBIC = 0x5417 - TIOCMBIS = 0x5416 - TIOCMGET = 0x5415 - TIOCMIWAIT = 0x545c - TIOCMSET = 0x5418 - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x5422 - TIOCNXCL = 0x540d - TIOCOUTQ = 0x5411 - TIOCPKT = 0x5420 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x540e - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x5423 - TIOCSIG = 0x40045436 - TIOCSLCKTRMIOS = 0x5457 - TIOCSPGRP = 0x5410 - TIOCSPTLCK = 0x40045431 - TIOCSRS485 = 0x542f - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x541a - TIOCSTI = 0x5412 - TIOCSWINSZ = 0x5414 - TIOCVHANGUP = 0x5437 - TOSTOP = 0x100 - TS_COMM_LEN = 0x20 - TUNATTACHFILTER = 0x400854d5 - TUNDETACHFILTER = 0x400854d6 - TUNGETFEATURES = 0x800454cf - TUNGETFILTER = 0x800854db - TUNGETIFF = 0x800454d2 - TUNGETSNDBUF = 0x800454d3 - TUNGETVNETBE = 0x800454df - TUNGETVNETHDRSZ = 0x800454d7 - TUNGETVNETLE = 0x800454dd - TUNSETDEBUG = 0x400454c9 - TUNSETGROUP = 0x400454ce - TUNSETIFF = 0x400454ca - TUNSETIFINDEX = 0x400454da - TUNSETLINK = 0x400454cd - TUNSETNOCSUM = 0x400454c8 - TUNSETOFFLOAD = 0x400454d0 - TUNSETOWNER = 0x400454cc - TUNSETPERSIST = 0x400454cb - TUNSETQUEUE = 0x400454d9 - TUNSETSNDBUF = 0x400454d4 - TUNSETTXFILTER = 0x400454d1 - TUNSETVNETBE = 0x400454de - TUNSETVNETHDRSZ = 0x400454d8 - TUNSETVNETLE = 0x400454dc - UMOUNT_NOFOLLOW = 0x8 - VDISCARD = 0xd - VEOF = 0x4 - VEOL = 0xb - VEOL2 = 0x10 - VERASE = 0x2 - VINTR = 0x0 - VKILL = 0x3 - VLNEXT = 0xf - VMADDR_CID_ANY = 0xffffffff - VMADDR_CID_HOST = 0x2 - VMADDR_CID_HYPERVISOR = 0x0 - VMADDR_CID_RESERVED = 0x1 - VMADDR_PORT_ANY = 0xffffffff - VMIN = 0x6 - VM_SOCKETS_INVALID_VERSION = 0xffffffff - VQUIT = 0x1 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VT0 = 0x0 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WALL = 0x40000000 - WCLONE = 0x80000000 - WCONTINUED = 0x8 - WEXITED = 0x4 - WNOHANG = 0x1 - WNOTHREAD = 0x20000000 - WNOWAIT = 0x1000000 - WORDSIZE = 0x20 - WSTOPPED = 0x2 - WUNTRACED = 0x2 - XATTR_CREATE = 0x1 - XATTR_REPLACE = 0x2 - XCASE = 0x4 - XTABS = 0x1800 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x62) - EADDRNOTAVAIL = syscall.Errno(0x63) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x61) - EAGAIN = syscall.Errno(0xb) - EALREADY = syscall.Errno(0x72) - EBADE = syscall.Errno(0x34) - EBADF = syscall.Errno(0x9) - EBADFD = syscall.Errno(0x4d) - EBADMSG = syscall.Errno(0x4a) - EBADR = syscall.Errno(0x35) - EBADRQC = syscall.Errno(0x38) - EBADSLT = syscall.Errno(0x39) - EBFONT = syscall.Errno(0x3b) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x7d) - ECHILD = syscall.Errno(0xa) - ECHRNG = syscall.Errno(0x2c) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x67) - ECONNREFUSED = syscall.Errno(0x6f) - ECONNRESET = syscall.Errno(0x68) - EDEADLK = syscall.Errno(0x23) - EDEADLOCK = syscall.Errno(0x23) - EDESTADDRREQ = syscall.Errno(0x59) - EDOM = syscall.Errno(0x21) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x7a) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EHOSTDOWN = syscall.Errno(0x70) - EHOSTUNREACH = syscall.Errno(0x71) - EHWPOISON = syscall.Errno(0x85) - EIDRM = syscall.Errno(0x2b) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x73) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x6a) - EISDIR = syscall.Errno(0x15) - EISNAM = syscall.Errno(0x78) - EKEYEXPIRED = syscall.Errno(0x7f) - EKEYREJECTED = syscall.Errno(0x81) - EKEYREVOKED = syscall.Errno(0x80) - EL2HLT = syscall.Errno(0x33) - EL2NSYNC = syscall.Errno(0x2d) - EL3HLT = syscall.Errno(0x2e) - EL3RST = syscall.Errno(0x2f) - ELIBACC = syscall.Errno(0x4f) - ELIBBAD = syscall.Errno(0x50) - ELIBEXEC = syscall.Errno(0x53) - ELIBMAX = syscall.Errno(0x52) - ELIBSCN = syscall.Errno(0x51) - ELNRNG = syscall.Errno(0x30) - ELOOP = syscall.Errno(0x28) - EMEDIUMTYPE = syscall.Errno(0x7c) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x5a) - EMULTIHOP = syscall.Errno(0x48) - ENAMETOOLONG = syscall.Errno(0x24) - ENAVAIL = syscall.Errno(0x77) - ENETDOWN = syscall.Errno(0x64) - ENETRESET = syscall.Errno(0x66) - ENETUNREACH = syscall.Errno(0x65) - ENFILE = syscall.Errno(0x17) - ENOANO = syscall.Errno(0x37) - ENOBUFS = syscall.Errno(0x69) - ENOCSI = syscall.Errno(0x32) - ENODATA = syscall.Errno(0x3d) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOKEY = syscall.Errno(0x7e) - ENOLCK = syscall.Errno(0x25) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x7b) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x2a) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x5c) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x26) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x6b) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x27) - ENOTNAM = syscall.Errno(0x76) - ENOTRECOVERABLE = syscall.Errno(0x83) - ENOTSOCK = syscall.Errno(0x58) - ENOTSUP = syscall.Errno(0x5f) - ENOTTY = syscall.Errno(0x19) - ENOTUNIQ = syscall.Errno(0x4c) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x5f) - EOVERFLOW = syscall.Errno(0x4b) - EOWNERDEAD = syscall.Errno(0x82) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x60) - EPIPE = syscall.Errno(0x20) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x5d) - EPROTOTYPE = syscall.Errno(0x5b) - ERANGE = syscall.Errno(0x22) - EREMCHG = syscall.Errno(0x4e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x79) - ERESTART = syscall.Errno(0x55) - ERFKILL = syscall.Errno(0x84) - EROFS = syscall.Errno(0x1e) - ESHUTDOWN = syscall.Errno(0x6c) - ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x74) - ESTRPIPE = syscall.Errno(0x56) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x6e) - ETOOMANYREFS = syscall.Errno(0x6d) - ETXTBSY = syscall.Errno(0x1a) - EUCLEAN = syscall.Errno(0x75) - EUNATCH = syscall.Errno(0x31) - EUSERS = syscall.Errno(0x57) - EWOULDBLOCK = syscall.Errno(0xb) - EXDEV = syscall.Errno(0x12) - EXFULL = syscall.Errno(0x36) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0x7) - SIGCHLD = syscall.Signal(0x11) - SIGCLD = syscall.Signal(0x11) - SIGCONT = syscall.Signal(0x12) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x1d) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) - SIGPOLL = syscall.Signal(0x1d) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x1e) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTKFLT = syscall.Signal(0x10) - SIGSTOP = syscall.Signal(0x13) - SIGSYS = syscall.Signal(0x1f) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x14) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGUNUSED = syscall.Signal(0x1f) - SIGURG = syscall.Signal(0x17) - SIGUSR1 = syscall.Signal(0xa) - SIGUSR2 = syscall.Signal(0xc) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errors = [...]string{ - 1: "operation not permitted", - 2: "no such file or directory", - 3: "no such process", - 4: "interrupted system call", - 5: "input/output error", - 6: "no such device or address", - 7: "argument list too long", - 8: "exec format error", - 9: "bad file descriptor", - 10: "no child processes", - 11: "resource temporarily unavailable", - 12: "cannot allocate memory", - 13: "permission denied", - 14: "bad address", - 15: "block device required", - 16: "device or resource busy", - 17: "file exists", - 18: "invalid cross-device link", - 19: "no such device", - 20: "not a directory", - 21: "is a directory", - 22: "invalid argument", - 23: "too many open files in system", - 24: "too many open files", - 25: "inappropriate ioctl for device", - 26: "text file busy", - 27: "file too large", - 28: "no space left on device", - 29: "illegal seek", - 30: "read-only file system", - 31: "too many links", - 32: "broken pipe", - 33: "numerical argument out of domain", - 34: "numerical result out of range", - 35: "resource deadlock avoided", - 36: "file name too long", - 37: "no locks available", - 38: "function not implemented", - 39: "directory not empty", - 40: "too many levels of symbolic links", - 42: "no message of desired type", - 43: "identifier removed", - 44: "channel number out of range", - 45: "level 2 not synchronized", - 46: "level 3 halted", - 47: "level 3 reset", - 48: "link number out of range", - 49: "protocol driver not attached", - 50: "no CSI structure available", - 51: "level 2 halted", - 52: "invalid exchange", - 53: "invalid request descriptor", - 54: "exchange full", - 55: "no anode", - 56: "invalid request code", - 57: "invalid slot", - 59: "bad font file format", - 60: "device not a stream", - 61: "no data available", - 62: "timer expired", - 63: "out of streams resources", - 64: "machine is not on the network", - 65: "package not installed", - 66: "object is remote", - 67: "link has been severed", - 68: "advertise error", - 69: "srmount error", - 70: "communication error on send", - 71: "protocol error", - 72: "multihop attempted", - 73: "RFS specific error", - 74: "bad message", - 75: "value too large for defined data type", - 76: "name not unique on network", - 77: "file descriptor in bad state", - 78: "remote address changed", - 79: "can not access a needed shared library", - 80: "accessing a corrupted shared library", - 81: ".lib section in a.out corrupted", - 82: "attempting to link in too many shared libraries", - 83: "cannot exec a shared library directly", - 84: "invalid or incomplete multibyte or wide character", - 85: "interrupted system call should be restarted", - 86: "streams pipe error", - 87: "too many users", - 88: "socket operation on non-socket", - 89: "destination address required", - 90: "message too long", - 91: "protocol wrong type for socket", - 92: "protocol not available", - 93: "protocol not supported", - 94: "socket type not supported", - 95: "operation not supported", - 96: "protocol family not supported", - 97: "address family not supported by protocol", - 98: "address already in use", - 99: "cannot assign requested address", - 100: "network is down", - 101: "network is unreachable", - 102: "network dropped connection on reset", - 103: "software caused connection abort", - 104: "connection reset by peer", - 105: "no buffer space available", - 106: "transport endpoint is already connected", - 107: "transport endpoint is not connected", - 108: "cannot send after transport endpoint shutdown", - 109: "too many references: cannot splice", - 110: "connection timed out", - 111: "connection refused", - 112: "host is down", - 113: "no route to host", - 114: "operation already in progress", - 115: "operation now in progress", - 116: "stale file handle", - 117: "structure needs cleaning", - 118: "not a XENIX named type file", - 119: "no XENIX semaphores available", - 120: "is a named type file", - 121: "remote I/O error", - 122: "disk quota exceeded", - 123: "no medium found", - 124: "wrong medium type", - 125: "operation canceled", - 126: "required key not available", - 127: "key has expired", - 128: "key has been revoked", - 129: "key was rejected by service", - 130: "owner died", - 131: "state not recoverable", - 132: "operation not possible due to RF-kill", - 133: "memory page has hardware error", -} - -// Signal table -var signals = [...]string{ - 1: "hangup", - 2: "interrupt", - 3: "quit", - 4: "illegal instruction", - 5: "trace/breakpoint trap", - 6: "aborted", - 7: "bus error", - 8: "floating point exception", - 9: "killed", - 10: "user defined signal 1", - 11: "segmentation fault", - 12: "user defined signal 2", - 13: "broken pipe", - 14: "alarm clock", - 15: "terminated", - 16: "stack fault", - 17: "child exited", - 18: "continued", - 19: "stopped (signal)", - 20: "stopped", - 21: "stopped (tty input)", - 22: "stopped (tty output)", - 23: "urgent I/O condition", - 24: "CPU time limit exceeded", - 25: "file size limit exceeded", - 26: "virtual timer expired", - 27: "profiling timer expired", - 28: "window changed", - 29: "I/O possible", - 30: "power failure", - 31: "bad system call", -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go deleted file mode 100644 index c0ecd47..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go +++ /dev/null @@ -1,2190 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/include -fsigned-char -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build arm64,linux - -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char _const.go - -package unix - -import "syscall" - -const ( - AF_ALG = 0x26 - AF_APPLETALK = 0x5 - AF_ASH = 0x12 - AF_ATMPVC = 0x8 - AF_ATMSVC = 0x14 - AF_AX25 = 0x3 - AF_BLUETOOTH = 0x1f - AF_BRIDGE = 0x7 - AF_CAIF = 0x25 - AF_CAN = 0x1d - AF_DECnet = 0xc - AF_ECONET = 0x13 - AF_FILE = 0x1 - AF_IB = 0x1b - AF_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KCM = 0x29 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x2b - AF_MPLS = 0x1c - AF_NETBEUI = 0xd - AF_NETLINK = 0x10 - AF_NETROM = 0x6 - AF_NFC = 0x27 - AF_PACKET = 0x11 - AF_PHONET = 0x23 - AF_PPPOX = 0x18 - AF_QIPCRTR = 0x2a - AF_RDS = 0x15 - AF_ROSE = 0xb - AF_ROUTE = 0x10 - AF_RXRPC = 0x21 - AF_SECURITY = 0xe - AF_SNA = 0x16 - AF_TIPC = 0x1e - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VSOCK = 0x28 - AF_WANPIPE = 0x19 - AF_X25 = 0x9 - ALG_OP_DECRYPT = 0x0 - ALG_OP_ENCRYPT = 0x1 - ALG_SET_AEAD_ASSOCLEN = 0x4 - ALG_SET_AEAD_AUTHSIZE = 0x5 - ALG_SET_IV = 0x2 - ALG_SET_KEY = 0x1 - ALG_SET_OP = 0x3 - ARPHRD_6LOWPAN = 0x339 - ARPHRD_ADAPT = 0x108 - ARPHRD_APPLETLK = 0x8 - ARPHRD_ARCNET = 0x7 - ARPHRD_ASH = 0x30d - ARPHRD_ATM = 0x13 - ARPHRD_AX25 = 0x3 - ARPHRD_BIF = 0x307 - ARPHRD_CAIF = 0x336 - ARPHRD_CAN = 0x118 - ARPHRD_CHAOS = 0x5 - ARPHRD_CISCO = 0x201 - ARPHRD_CSLIP = 0x101 - ARPHRD_CSLIP6 = 0x103 - ARPHRD_DDCMP = 0x205 - ARPHRD_DLCI = 0xf - ARPHRD_ECONET = 0x30e - ARPHRD_EETHER = 0x2 - ARPHRD_ETHER = 0x1 - ARPHRD_EUI64 = 0x1b - ARPHRD_FCAL = 0x311 - ARPHRD_FCFABRIC = 0x313 - ARPHRD_FCPL = 0x312 - ARPHRD_FCPP = 0x310 - ARPHRD_FDDI = 0x306 - ARPHRD_FRAD = 0x302 - ARPHRD_HDLC = 0x201 - ARPHRD_HIPPI = 0x30c - ARPHRD_HWX25 = 0x110 - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_IEEE80211 = 0x321 - ARPHRD_IEEE80211_PRISM = 0x322 - ARPHRD_IEEE80211_RADIOTAP = 0x323 - ARPHRD_IEEE802154 = 0x324 - ARPHRD_IEEE802154_MONITOR = 0x325 - ARPHRD_IEEE802_TR = 0x320 - ARPHRD_INFINIBAND = 0x20 - ARPHRD_IP6GRE = 0x337 - ARPHRD_IPDDP = 0x309 - ARPHRD_IPGRE = 0x30a - ARPHRD_IRDA = 0x30f - ARPHRD_LAPB = 0x204 - ARPHRD_LOCALTLK = 0x305 - ARPHRD_LOOPBACK = 0x304 - ARPHRD_METRICOM = 0x17 - ARPHRD_NETLINK = 0x338 - ARPHRD_NETROM = 0x0 - ARPHRD_NONE = 0xfffe - ARPHRD_PHONET = 0x334 - ARPHRD_PHONET_PIPE = 0x335 - ARPHRD_PIMREG = 0x30b - ARPHRD_PPP = 0x200 - ARPHRD_PRONET = 0x4 - ARPHRD_RAWHDLC = 0x206 - ARPHRD_ROSE = 0x10e - ARPHRD_RSRVD = 0x104 - ARPHRD_SIT = 0x308 - ARPHRD_SKIP = 0x303 - ARPHRD_SLIP = 0x100 - ARPHRD_SLIP6 = 0x102 - ARPHRD_TUNNEL = 0x300 - ARPHRD_TUNNEL6 = 0x301 - ARPHRD_VOID = 0xffff - ARPHRD_X25 = 0x10f - B0 = 0x0 - B1000000 = 0x1008 - B110 = 0x3 - B115200 = 0x1002 - B1152000 = 0x1009 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B1500000 = 0x100a - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B2000000 = 0x100b - B230400 = 0x1003 - B2400 = 0xb - B2500000 = 0x100c - B300 = 0x7 - B3000000 = 0x100d - B3500000 = 0x100e - B38400 = 0xf - B4000000 = 0x100f - B460800 = 0x1004 - B4800 = 0xc - B50 = 0x1 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B600 = 0x8 - B75 = 0x2 - B921600 = 0x1007 - B9600 = 0xd - BLKBSZGET = 0x80081270 - BLKBSZSET = 0x40081271 - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80081272 - BLKPBSZGET = 0x127b - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d - BLKRRPART = 0x125f - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 - BOTHER = 0x1000 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIV = 0x30 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LL_OFF = -0x200000 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXINSNS = 0x1000 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_NET_OFF = -0x100000 - BPF_OR = 0x40 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XOR = 0xa0 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x2000 - BSDLY = 0x2000 - CAN_BCM = 0x2 - CAN_EFF_FLAG = 0x80000000 - CAN_EFF_ID_BITS = 0x1d - CAN_EFF_MASK = 0x1fffffff - CAN_ERR_FLAG = 0x20000000 - CAN_ERR_MASK = 0x1fffffff - CAN_INV_FILTER = 0x20000000 - CAN_ISOTP = 0x6 - CAN_MAX_DLC = 0x8 - CAN_MAX_DLEN = 0x8 - CAN_MCNET = 0x5 - CAN_MTU = 0x10 - CAN_NPROTO = 0x7 - CAN_RAW = 0x1 - CAN_RAW_FILTER_MAX = 0x200 - CAN_RTR_FLAG = 0x40000000 - CAN_SFF_ID_BITS = 0xb - CAN_SFF_MASK = 0x7ff - CAN_TP16 = 0x3 - CAN_TP20 = 0x4 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CFLUSH = 0xf - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CLOCK_BOOTTIME = 0x7 - CLOCK_BOOTTIME_ALARM = 0x9 - CLOCK_DEFAULT = 0x0 - CLOCK_EXT = 0x1 - CLOCK_INT = 0x2 - CLOCK_MONOTONIC = 0x1 - CLOCK_MONOTONIC_COARSE = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_ALARM = 0x8 - CLOCK_REALTIME_COARSE = 0x5 - CLOCK_TAI = 0xb - CLOCK_THREAD_CPUTIME_ID = 0x3 - CLOCK_TXFROMRX = 0x4 - CLOCK_TXINT = 0x3 - CLONE_CHILD_CLEARTID = 0x200000 - CLONE_CHILD_SETTID = 0x1000000 - CLONE_DETACHED = 0x400000 - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_IO = 0x80000000 - CLONE_NEWCGROUP = 0x2000000 - CLONE_NEWIPC = 0x8000000 - CLONE_NEWNET = 0x40000000 - CLONE_NEWNS = 0x20000 - CLONE_NEWPID = 0x20000000 - CLONE_NEWUSER = 0x10000000 - CLONE_NEWUTS = 0x4000000 - CLONE_PARENT = 0x8000 - CLONE_PARENT_SETTID = 0x100000 - CLONE_PTRACE = 0x2000 - CLONE_SETTLS = 0x80000 - CLONE_SIGHAND = 0x800 - CLONE_SYSVSEM = 0x40000 - CLONE_THREAD = 0x10000 - CLONE_UNTRACED = 0x800000 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CMSPAR = 0x40000000 - CR0 = 0x0 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRDLY = 0x600 - CREAD = 0x80 - CRTSCTS = 0x80000000 - CS5 = 0x0 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIGNAL = 0xff - CSIZE = 0x30 - CSTART = 0x11 - CSTATUS = 0x0 - CSTOP = 0x13 - CSTOPB = 0x40 - CSUSP = 0x1a - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EFD_SEMAPHORE = 0x1 - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - EPOLLEXCLUSIVE = 0x10000000 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLONESHOT = 0x40000000 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDHUP = 0x2000 - EPOLLRDNORM = 0x40 - EPOLLWAKEUP = 0x20000000 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CLOEXEC = 0x80000 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - ESR_MAGIC = 0x45535201 - ETH_P_1588 = 0x88f7 - ETH_P_8021AD = 0x88a8 - ETH_P_8021AH = 0x88e7 - ETH_P_8021Q = 0x8100 - ETH_P_80221 = 0x8917 - ETH_P_802_2 = 0x4 - ETH_P_802_3 = 0x1 - ETH_P_802_3_MIN = 0x600 - ETH_P_802_EX1 = 0x88b5 - ETH_P_AARP = 0x80f3 - ETH_P_AF_IUCV = 0xfbfb - ETH_P_ALL = 0x3 - ETH_P_AOE = 0x88a2 - ETH_P_ARCNET = 0x1a - ETH_P_ARP = 0x806 - ETH_P_ATALK = 0x809b - ETH_P_ATMFATE = 0x8884 - ETH_P_ATMMPOA = 0x884c - ETH_P_AX25 = 0x2 - ETH_P_BATMAN = 0x4305 - ETH_P_BPQ = 0x8ff - ETH_P_CAIF = 0xf7 - ETH_P_CAN = 0xc - ETH_P_CANFD = 0xd - ETH_P_CONTROL = 0x16 - ETH_P_CUST = 0x6006 - ETH_P_DDCMP = 0x6 - ETH_P_DEC = 0x6000 - ETH_P_DIAG = 0x6005 - ETH_P_DNA_DL = 0x6001 - ETH_P_DNA_RC = 0x6002 - ETH_P_DNA_RT = 0x6003 - ETH_P_DSA = 0x1b - ETH_P_ECONET = 0x18 - ETH_P_EDSA = 0xdada - ETH_P_FCOE = 0x8906 - ETH_P_FIP = 0x8914 - ETH_P_HDLC = 0x19 - ETH_P_HSR = 0x892f - ETH_P_IEEE802154 = 0xf6 - ETH_P_IEEEPUP = 0xa00 - ETH_P_IEEEPUPAT = 0xa01 - ETH_P_IP = 0x800 - ETH_P_IPV6 = 0x86dd - ETH_P_IPX = 0x8137 - ETH_P_IRDA = 0x17 - ETH_P_LAT = 0x6004 - ETH_P_LINK_CTL = 0x886c - ETH_P_LOCALTALK = 0x9 - ETH_P_LOOP = 0x60 - ETH_P_LOOPBACK = 0x9000 - ETH_P_MACSEC = 0x88e5 - ETH_P_MOBITEX = 0x15 - ETH_P_MPLS_MC = 0x8848 - ETH_P_MPLS_UC = 0x8847 - ETH_P_MVRP = 0x88f5 - ETH_P_NCSI = 0x88f8 - ETH_P_PAE = 0x888e - ETH_P_PAUSE = 0x8808 - ETH_P_PHONET = 0xf5 - ETH_P_PPPTALK = 0x10 - ETH_P_PPP_DISC = 0x8863 - ETH_P_PPP_MP = 0x8 - ETH_P_PPP_SES = 0x8864 - ETH_P_PRP = 0x88fb - ETH_P_PUP = 0x200 - ETH_P_PUPAT = 0x201 - ETH_P_QINQ1 = 0x9100 - ETH_P_QINQ2 = 0x9200 - ETH_P_QINQ3 = 0x9300 - ETH_P_RARP = 0x8035 - ETH_P_SCA = 0x6007 - ETH_P_SLOW = 0x8809 - ETH_P_SNAP = 0x5 - ETH_P_TDLS = 0x890d - ETH_P_TEB = 0x6558 - ETH_P_TIPC = 0x88ca - ETH_P_TRAILER = 0x1c - ETH_P_TR_802_2 = 0x11 - ETH_P_TSN = 0x22f0 - ETH_P_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - ETH_P_XDSA = 0xf8 - EXTA = 0xe - EXTB = 0xf - EXTPROC = 0x10000 - FALLOC_FL_COLLAPSE_RANGE = 0x8 - FALLOC_FL_INSERT_RANGE = 0x20 - FALLOC_FL_KEEP_SIZE = 0x1 - FALLOC_FL_NO_HIDE_STALE = 0x4 - FALLOC_FL_PUNCH_HOLE = 0x2 - FALLOC_FL_UNSHARE_RANGE = 0x40 - FALLOC_FL_ZERO_RANGE = 0x10 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x8000 - FFDLY = 0x8000 - FLUSHO = 0x1000 - FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 - FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 - FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 - FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 - FS_ENCRYPTION_MODE_INVALID = 0x0 - FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 - FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 - FS_KEY_DESCRIPTOR_SIZE = 0x8 - FS_KEY_DESC_PREFIX = "fscrypt:" - FS_KEY_DESC_PREFIX_SIZE = 0x8 - FS_MAX_KEY_SIZE = 0x40 - FS_POLICY_FLAGS_PAD_16 = 0x2 - FS_POLICY_FLAGS_PAD_32 = 0x3 - FS_POLICY_FLAGS_PAD_4 = 0x0 - FS_POLICY_FLAGS_PAD_8 = 0x1 - FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x3 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x406 - F_EXLCK = 0x4 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLEASE = 0x401 - F_GETLK = 0x5 - F_GETLK64 = 0x5 - F_GETOWN = 0x9 - F_GETOWN_EX = 0x10 - F_GETPIPE_SZ = 0x408 - F_GETSIG = 0xb - F_LOCK = 0x1 - F_NOTIFY = 0x402 - F_OFD_GETLK = 0x24 - F_OFD_SETLK = 0x25 - F_OFD_SETLKW = 0x26 - F_OK = 0x0 - F_RDLCK = 0x0 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLEASE = 0x400 - F_SETLK = 0x6 - F_SETLK64 = 0x6 - F_SETLKW = 0x7 - F_SETLKW64 = 0x7 - F_SETOWN = 0x8 - F_SETOWN_EX = 0xf - F_SETPIPE_SZ = 0x407 - F_SETSIG = 0xa - F_SHLCK = 0x8 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_ULOCK = 0x0 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - GENL_ADMIN_PERM = 0x1 - GENL_CMD_CAP_DO = 0x2 - GENL_CMD_CAP_DUMP = 0x4 - GENL_CMD_CAP_HASPOL = 0x8 - GENL_HDRLEN = 0x4 - GENL_ID_CTRL = 0x10 - GENL_ID_PMCRAID = 0x12 - GENL_ID_VFS_DQUOT = 0x11 - GENL_MAX_ID = 0x3ff - GENL_MIN_ID = 0x10 - GENL_NAMSIZ = 0x10 - GENL_START_ALLOC = 0x13 - GENL_UNS_ADMIN_PERM = 0x10 - GRND_NONBLOCK = 0x1 - GRND_RANDOM = 0x2 - HUPCL = 0x400 - IBSHIFT = 0x10 - ICANON = 0x2 - ICMPV6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x8000 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_MANAGETEMPADDR = 0x100 - IFA_F_MCAUTOJOIN = 0x400 - IFA_F_NODAD = 0x2 - IFA_F_NOPREFIXROUTE = 0x200 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_STABLE_PRIVACY = 0x800 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0x8 - IFF_ALLMULTI = 0x200 - IFF_ATTACH_QUEUE = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DETACH_QUEUE = 0x400 - IFF_DORMANT = 0x20000 - IFF_DYNAMIC = 0x8000 - IFF_ECHO = 0x40000 - IFF_LOOPBACK = 0x8 - IFF_LOWER_UP = 0x10000 - IFF_MASTER = 0x400 - IFF_MULTICAST = 0x1000 - IFF_MULTI_QUEUE = 0x100 - IFF_NOARP = 0x80 - IFF_NOFILTER = 0x1000 - IFF_NOTRAILERS = 0x20 - IFF_NO_PI = 0x1000 - IFF_ONE_QUEUE = 0x2000 - IFF_PERSIST = 0x800 - IFF_POINTOPOINT = 0x10 - IFF_PORTSEL = 0x2000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SLAVE = 0x800 - IFF_TAP = 0x2 - IFF_TUN = 0x1 - IFF_TUN_EXCL = 0x8000 - IFF_UP = 0x1 - IFF_VNET_HDR = 0x4000 - IFF_VOLATILE = 0x70c5a - IFNAMSIZ = 0x10 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_ACCESS = 0x1 - IN_ALL_EVENTS = 0xfff - IN_ATTRIB = 0x4 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLOEXEC = 0x80000 - IN_CLOSE = 0x18 - IN_CLOSE_NOWRITE = 0x10 - IN_CLOSE_WRITE = 0x8 - IN_CREATE = 0x100 - IN_DELETE = 0x200 - IN_DELETE_SELF = 0x400 - IN_DONT_FOLLOW = 0x2000000 - IN_EXCL_UNLINK = 0x4000000 - IN_IGNORED = 0x8000 - IN_ISDIR = 0x40000000 - IN_LOOPBACKNET = 0x7f - IN_MASK_ADD = 0x20000000 - IN_MODIFY = 0x2 - IN_MOVE = 0xc0 - IN_MOVED_FROM = 0x40 - IN_MOVED_TO = 0x80 - IN_MOVE_SELF = 0x800 - IN_NONBLOCK = 0x800 - IN_ONESHOT = 0x80000000 - IN_ONLYDIR = 0x1000000 - IN_OPEN = 0x20 - IN_Q_OVERFLOW = 0x4000 - IN_UNMOUNT = 0x2000 - IPPROTO_AH = 0x33 - IPPROTO_BEETPH = 0x5e - IPPROTO_COMP = 0x6c - IPPROTO_DCCP = 0x21 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPIP = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MH = 0x87 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_NONE = 0x3b - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_2292DSTOPTS = 0x4 - IPV6_2292HOPLIMIT = 0x8 - IPV6_2292HOPOPTS = 0x3 - IPV6_2292PKTINFO = 0x2 - IPV6_2292PKTOPTIONS = 0x6 - IPV6_2292RTHDR = 0x5 - IPV6_ADDRFORM = 0x1 - IPV6_ADD_MEMBERSHIP = 0x14 - IPV6_AUTHHDR = 0xa - IPV6_CHECKSUM = 0x7 - IPV6_DONTFRAG = 0x3e - IPV6_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - IPV6_HDRINCL = 0x24 - IPV6_HOPLIMIT = 0x34 - IPV6_HOPOPTS = 0x36 - IPV6_IPSEC_POLICY = 0x22 - IPV6_JOIN_ANYCAST = 0x1b - IPV6_JOIN_GROUP = 0x14 - IPV6_LEAVE_ANYCAST = 0x1c - IPV6_LEAVE_GROUP = 0x15 - IPV6_MTU = 0x18 - IPV6_MTU_DISCOVER = 0x17 - IPV6_MULTICAST_HOPS = 0x12 - IPV6_MULTICAST_IF = 0x11 - IPV6_MULTICAST_LOOP = 0x13 - IPV6_NEXTHOP = 0x9 - IPV6_PATHMTU = 0x3d - IPV6_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_INTERFACE = 0x4 - IPV6_PMTUDISC_OMIT = 0x5 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVPATHMTU = 0x3c - IPV6_RECVPKTINFO = 0x31 - IPV6_RECVRTHDR = 0x38 - IPV6_RECVTCLASS = 0x42 - IPV6_ROUTER_ALERT = 0x16 - IPV6_RTHDR = 0x39 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RXDSTOPTS = 0x3b - IPV6_RXHOPOPTS = 0x36 - IPV6_TCLASS = 0x43 - IPV6_UNICAST_HOPS = 0x10 - IPV6_V6ONLY = 0x1a - IPV6_XFRM_POLICY = 0x23 - IP_ADD_MEMBERSHIP = 0x23 - IP_ADD_SOURCE_MEMBERSHIP = 0x27 - IP_BIND_ADDRESS_NO_PORT = 0x18 - IP_BLOCK_SOURCE = 0x26 - IP_CHECKSUM = 0x17 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0x24 - IP_DROP_SOURCE_MEMBERSHIP = 0x28 - IP_FREEBIND = 0xf - IP_HDRINCL = 0x3 - IP_IPSEC_POLICY = 0x10 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINTTL = 0x15 - IP_MSFILTER = 0x29 - IP_MSS = 0x240 - IP_MTU = 0xe - IP_MTU_DISCOVER = 0xa - IP_MULTICAST_ALL = 0x31 - IP_MULTICAST_IF = 0x20 - IP_MULTICAST_LOOP = 0x22 - IP_MULTICAST_TTL = 0x21 - IP_NODEFRAG = 0x16 - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x4 - IP_ORIGDSTADDR = 0x14 - IP_PASSSEC = 0x12 - IP_PKTINFO = 0x8 - IP_PKTOPTIONS = 0x9 - IP_PMTUDISC = 0xa - IP_PMTUDISC_DO = 0x2 - IP_PMTUDISC_DONT = 0x0 - IP_PMTUDISC_INTERFACE = 0x4 - IP_PMTUDISC_OMIT = 0x5 - IP_PMTUDISC_PROBE = 0x3 - IP_PMTUDISC_WANT = 0x1 - IP_RECVERR = 0xb - IP_RECVOPTS = 0x6 - IP_RECVORIGDSTADDR = 0x14 - IP_RECVRETOPTS = 0x7 - IP_RECVTOS = 0xd - IP_RECVTTL = 0xc - IP_RETOPTS = 0x7 - IP_RF = 0x8000 - IP_ROUTER_ALERT = 0x5 - IP_TOS = 0x1 - IP_TRANSPARENT = 0x13 - IP_TTL = 0x2 - IP_UNBLOCK_SOURCE = 0x25 - IP_UNICAST_IF = 0x32 - IP_XFRM_POLICY = 0x11 - ISIG = 0x1 - ISTRIP = 0x20 - IUCLC = 0x200 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x1000 - IXON = 0x400 - KEYCTL_ASSUME_AUTHORITY = 0x10 - KEYCTL_CHOWN = 0x4 - KEYCTL_CLEAR = 0x7 - KEYCTL_DESCRIBE = 0x6 - KEYCTL_DH_COMPUTE = 0x17 - KEYCTL_GET_KEYRING_ID = 0x0 - KEYCTL_GET_PERSISTENT = 0x16 - KEYCTL_GET_SECURITY = 0x11 - KEYCTL_INSTANTIATE = 0xc - KEYCTL_INSTANTIATE_IOV = 0x14 - KEYCTL_INVALIDATE = 0x15 - KEYCTL_JOIN_SESSION_KEYRING = 0x1 - KEYCTL_LINK = 0x8 - KEYCTL_NEGATE = 0xd - KEYCTL_READ = 0xb - KEYCTL_REJECT = 0x13 - KEYCTL_REVOKE = 0x3 - KEYCTL_SEARCH = 0xa - KEYCTL_SESSION_TO_PARENT = 0x12 - KEYCTL_SETPERM = 0x5 - KEYCTL_SET_REQKEY_KEYRING = 0xe - KEYCTL_SET_TIMEOUT = 0xf - KEYCTL_UNLINK = 0x9 - KEYCTL_UPDATE = 0x2 - KEY_REQKEY_DEFL_DEFAULT = 0x0 - KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 - KEY_REQKEY_DEFL_NO_CHANGE = -0x1 - KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 - KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 - KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 - KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 - KEY_REQKEY_DEFL_USER_KEYRING = 0x4 - KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 - KEY_SPEC_GROUP_KEYRING = -0x6 - KEY_SPEC_PROCESS_KEYRING = -0x2 - KEY_SPEC_REQKEY_AUTH_KEY = -0x7 - KEY_SPEC_REQUESTOR_KEYRING = -0x8 - KEY_SPEC_SESSION_KEYRING = -0x3 - KEY_SPEC_THREAD_KEYRING = -0x1 - KEY_SPEC_USER_KEYRING = -0x4 - KEY_SPEC_USER_SESSION_KEYRING = -0x5 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef - LINUX_REBOOT_CMD_HALT = 0xcdef0123 - LINUX_REBOOT_CMD_KEXEC = 0x45584543 - LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc - LINUX_REBOOT_CMD_RESTART = 0x1234567 - LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 - LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 - LINUX_REBOOT_MAGIC1 = 0xfee1dead - LINUX_REBOOT_MAGIC2 = 0x28121969 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DODUMP = 0x11 - MADV_DOFORK = 0xb - MADV_DONTDUMP = 0x10 - MADV_DONTFORK = 0xa - MADV_DONTNEED = 0x4 - MADV_FREE = 0x8 - MADV_HUGEPAGE = 0xe - MADV_HWPOISON = 0x64 - MADV_MERGEABLE = 0xc - MADV_NOHUGEPAGE = 0xf - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_REMOVE = 0x9 - MADV_SEQUENTIAL = 0x2 - MADV_UNMERGEABLE = 0xd - MADV_WILLNEED = 0x3 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_GROWSDOWN = 0x100 - MAP_HUGETLB = 0x40000 - MAP_HUGE_MASK = 0x3f - MAP_HUGE_SHIFT = 0x1a - MAP_LOCKED = 0x2000 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x4000 - MAP_POPULATE = 0x8000 - MAP_PRIVATE = 0x2 - MAP_SHARED = 0x1 - MAP_STACK = 0x20000 - MAP_TYPE = 0xf - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - MSG_BATCH = 0x40000 - MSG_CMSG_CLOEXEC = 0x40000000 - MSG_CONFIRM = 0x800 - MSG_CTRUNC = 0x8 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x40 - MSG_EOR = 0x80 - MSG_ERRQUEUE = 0x2000 - MSG_FASTOPEN = 0x20000000 - MSG_FIN = 0x200 - MSG_MORE = 0x8000 - MSG_NOSIGNAL = 0x4000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_PROXY = 0x10 - MSG_RST = 0x1000 - MSG_SYN = 0x400 - MSG_TRUNC = 0x20 - MSG_TRYHARD = 0x4 - MSG_WAITALL = 0x100 - MSG_WAITFORONE = 0x10000 - MS_ACTIVE = 0x40000000 - MS_ASYNC = 0x1 - MS_BIND = 0x1000 - MS_BORN = 0x20000000 - MS_DIRSYNC = 0x80 - MS_INVALIDATE = 0x2 - MS_I_VERSION = 0x800000 - MS_KERNMOUNT = 0x400000 - MS_LAZYTIME = 0x2000000 - MS_MANDLOCK = 0x40 - MS_MGC_MSK = 0xffff0000 - MS_MGC_VAL = 0xc0ed0000 - MS_MOVE = 0x2000 - MS_NOATIME = 0x400 - MS_NODEV = 0x4 - MS_NODIRATIME = 0x800 - MS_NOEXEC = 0x8 - MS_NOREMOTELOCK = 0x8000000 - MS_NOSEC = 0x10000000 - MS_NOSUID = 0x2 - MS_NOUSER = -0x80000000 - MS_POSIXACL = 0x10000 - MS_PRIVATE = 0x40000 - MS_RDONLY = 0x1 - MS_REC = 0x4000 - MS_RELATIME = 0x200000 - MS_REMOUNT = 0x20 - MS_RMT_MASK = 0x2800051 - MS_SHARED = 0x100000 - MS_SILENT = 0x8000 - MS_SLAVE = 0x80000 - MS_STRICTATIME = 0x1000000 - MS_SYNC = 0x4 - MS_SYNCHRONOUS = 0x10 - MS_UNBINDABLE = 0x20000 - MS_VERBOSE = 0x8000 - NAME_MAX = 0xff - NETLINK_ADD_MEMBERSHIP = 0x1 - NETLINK_AUDIT = 0x9 - NETLINK_BROADCAST_ERROR = 0x4 - NETLINK_CAP_ACK = 0xa - NETLINK_CONNECTOR = 0xb - NETLINK_CRYPTO = 0x15 - NETLINK_DNRTMSG = 0xe - NETLINK_DROP_MEMBERSHIP = 0x2 - NETLINK_ECRYPTFS = 0x13 - NETLINK_FIB_LOOKUP = 0xa - NETLINK_FIREWALL = 0x3 - NETLINK_GENERIC = 0x10 - NETLINK_INET_DIAG = 0x4 - NETLINK_IP6_FW = 0xd - NETLINK_ISCSI = 0x8 - NETLINK_KOBJECT_UEVENT = 0xf - NETLINK_LISTEN_ALL_NSID = 0x8 - NETLINK_LIST_MEMBERSHIPS = 0x9 - NETLINK_NETFILTER = 0xc - NETLINK_NFLOG = 0x5 - NETLINK_NO_ENOBUFS = 0x5 - NETLINK_PKTINFO = 0x3 - NETLINK_RDMA = 0x14 - NETLINK_ROUTE = 0x0 - NETLINK_RX_RING = 0x6 - NETLINK_SCSITRANSPORT = 0x12 - NETLINK_SELINUX = 0x7 - NETLINK_SOCK_DIAG = 0x4 - NETLINK_TX_RING = 0x7 - NETLINK_UNUSED = 0x1 - NETLINK_USERSOCK = 0x2 - NETLINK_XFRM = 0x6 - NL0 = 0x0 - NL1 = 0x100 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - NLDLY = 0x100 - NLMSG_ALIGNTO = 0x4 - NLMSG_DONE = 0x3 - NLMSG_ERROR = 0x2 - NLMSG_HDRLEN = 0x10 - NLMSG_MIN_TYPE = 0x10 - NLMSG_NOOP = 0x1 - NLMSG_OVERRUN = 0x4 - NLM_F_ACK = 0x4 - NLM_F_APPEND = 0x800 - NLM_F_ATOMIC = 0x400 - NLM_F_CREATE = 0x400 - NLM_F_DUMP = 0x300 - NLM_F_DUMP_FILTERED = 0x20 - NLM_F_DUMP_INTR = 0x10 - NLM_F_ECHO = 0x8 - NLM_F_EXCL = 0x200 - NLM_F_MATCH = 0x200 - NLM_F_MULTI = 0x2 - NLM_F_REPLACE = 0x100 - NLM_F_REQUEST = 0x1 - NLM_F_ROOT = 0x100 - NOFLSH = 0x80 - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x2 - ONLCR = 0x4 - ONLRET = 0x20 - ONOCR = 0x10 - OPOST = 0x1 - O_ACCMODE = 0x3 - O_APPEND = 0x400 - O_ASYNC = 0x2000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x40 - O_DIRECT = 0x10000 - O_DIRECTORY = 0x4000 - O_DSYNC = 0x1000 - O_EXCL = 0x80 - O_FSYNC = 0x101000 - O_LARGEFILE = 0x0 - O_NDELAY = 0x800 - O_NOATIME = 0x40000 - O_NOCTTY = 0x100 - O_NOFOLLOW = 0x8000 - O_NONBLOCK = 0x800 - O_PATH = 0x200000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x101000 - O_SYNC = 0x101000 - O_TMPFILE = 0x404000 - O_TRUNC = 0x200 - O_WRONLY = 0x1 - PACKET_ADD_MEMBERSHIP = 0x1 - PACKET_AUXDATA = 0x8 - PACKET_BROADCAST = 0x1 - PACKET_COPY_THRESH = 0x7 - PACKET_DROP_MEMBERSHIP = 0x2 - PACKET_FANOUT = 0x12 - PACKET_FANOUT_CBPF = 0x6 - PACKET_FANOUT_CPU = 0x2 - PACKET_FANOUT_DATA = 0x16 - PACKET_FANOUT_EBPF = 0x7 - PACKET_FANOUT_FLAG_DEFRAG = 0x8000 - PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 - PACKET_FANOUT_HASH = 0x0 - PACKET_FANOUT_LB = 0x1 - PACKET_FANOUT_QM = 0x5 - PACKET_FANOUT_RND = 0x4 - PACKET_FANOUT_ROLLOVER = 0x3 - PACKET_FASTROUTE = 0x6 - PACKET_HDRLEN = 0xb - PACKET_HOST = 0x0 - PACKET_KERNEL = 0x7 - PACKET_LOOPBACK = 0x5 - PACKET_LOSS = 0xe - PACKET_MR_ALLMULTI = 0x2 - PACKET_MR_MULTICAST = 0x0 - PACKET_MR_PROMISC = 0x1 - PACKET_MR_UNICAST = 0x3 - PACKET_MULTICAST = 0x2 - PACKET_ORIGDEV = 0x9 - PACKET_OTHERHOST = 0x3 - PACKET_OUTGOING = 0x4 - PACKET_QDISC_BYPASS = 0x14 - PACKET_RECV_OUTPUT = 0x3 - PACKET_RESERVE = 0xc - PACKET_ROLLOVER_STATS = 0x15 - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - PACKET_TIMESTAMP = 0x11 - PACKET_TX_HAS_OFF = 0x13 - PACKET_TX_RING = 0xd - PACKET_TX_TIMESTAMP = 0x10 - PACKET_USER = 0x6 - PACKET_VERSION = 0xa - PACKET_VNET_HDR = 0xf - PARENB = 0x100 - PARITY_CRC16_PR0 = 0x2 - PARITY_CRC16_PR0_CCITT = 0x4 - PARITY_CRC16_PR1 = 0x3 - PARITY_CRC16_PR1_CCITT = 0x5 - PARITY_CRC32_PR0_CCITT = 0x6 - PARITY_CRC32_PR1_CCITT = 0x7 - PARITY_DEFAULT = 0x0 - PARITY_NONE = 0x1 - PARMRK = 0x8 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x2401 - PERF_EVENT_IOC_ENABLE = 0x2400 - PERF_EVENT_IOC_ID = 0x80082407 - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 - PERF_EVENT_IOC_PERIOD = 0x40082404 - PERF_EVENT_IOC_REFRESH = 0x2402 - PERF_EVENT_IOC_RESET = 0x2403 - PERF_EVENT_IOC_SET_BPF = 0x40042408 - PERF_EVENT_IOC_SET_FILTER = 0x40082406 - PERF_EVENT_IOC_SET_OUTPUT = 0x2405 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_GROWSDOWN = 0x1000000 - PROT_GROWSUP = 0x2000000 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PR_CAPBSET_DROP = 0x18 - PR_CAPBSET_READ = 0x17 - PR_CAP_AMBIENT = 0x2f - PR_CAP_AMBIENT_CLEAR_ALL = 0x4 - PR_CAP_AMBIENT_IS_SET = 0x1 - PR_CAP_AMBIENT_LOWER = 0x3 - PR_CAP_AMBIENT_RAISE = 0x2 - PR_ENDIAN_BIG = 0x0 - PR_ENDIAN_LITTLE = 0x1 - PR_ENDIAN_PPC_LITTLE = 0x2 - PR_FPEMU_NOPRINT = 0x1 - PR_FPEMU_SIGFPE = 0x2 - PR_FP_EXC_ASYNC = 0x2 - PR_FP_EXC_DISABLED = 0x0 - PR_FP_EXC_DIV = 0x10000 - PR_FP_EXC_INV = 0x100000 - PR_FP_EXC_NONRECOV = 0x1 - PR_FP_EXC_OVF = 0x20000 - PR_FP_EXC_PRECISE = 0x3 - PR_FP_EXC_RES = 0x80000 - PR_FP_EXC_SW_ENABLE = 0x80 - PR_FP_EXC_UND = 0x40000 - PR_FP_MODE_FR = 0x1 - PR_FP_MODE_FRE = 0x2 - PR_GET_CHILD_SUBREAPER = 0x25 - PR_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - PR_GET_FP_MODE = 0x2e - PR_GET_KEEPCAPS = 0x7 - PR_GET_NAME = 0x10 - PR_GET_NO_NEW_PRIVS = 0x27 - PR_GET_PDEATHSIG = 0x2 - PR_GET_SECCOMP = 0x15 - PR_GET_SECUREBITS = 0x1b - PR_GET_THP_DISABLE = 0x2a - PR_GET_TID_ADDRESS = 0x28 - PR_GET_TIMERSLACK = 0x1e - PR_GET_TIMING = 0xd - PR_GET_TSC = 0x19 - PR_GET_UNALIGN = 0x5 - PR_MCE_KILL = 0x21 - PR_MCE_KILL_CLEAR = 0x0 - PR_MCE_KILL_DEFAULT = 0x2 - PR_MCE_KILL_EARLY = 0x1 - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_SET_CHILD_SUBREAPER = 0x24 - PR_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - PR_SET_FP_MODE = 0x2d - PR_SET_KEEPCAPS = 0x8 - PR_SET_MM = 0x23 - PR_SET_MM_ARG_END = 0x9 - PR_SET_MM_ARG_START = 0x8 - PR_SET_MM_AUXV = 0xc - PR_SET_MM_BRK = 0x7 - PR_SET_MM_END_CODE = 0x2 - PR_SET_MM_END_DATA = 0x4 - PR_SET_MM_ENV_END = 0xb - PR_SET_MM_ENV_START = 0xa - PR_SET_MM_EXE_FILE = 0xd - PR_SET_MM_MAP = 0xe - PR_SET_MM_MAP_SIZE = 0xf - PR_SET_MM_START_BRK = 0x6 - PR_SET_MM_START_CODE = 0x1 - PR_SET_MM_START_DATA = 0x3 - PR_SET_MM_START_STACK = 0x5 - PR_SET_NAME = 0xf - PR_SET_NO_NEW_PRIVS = 0x26 - PR_SET_PDEATHSIG = 0x1 - PR_SET_PTRACER = 0x59616d61 - PR_SET_PTRACER_ANY = -0x1 - PR_SET_SECCOMP = 0x16 - PR_SET_SECUREBITS = 0x1c - PR_SET_THP_DISABLE = 0x29 - PR_SET_TIMERSLACK = 0x1d - PR_SET_TIMING = 0xe - PR_SET_TSC = 0x1a - PR_SET_UNALIGN = 0x6 - PR_TASK_PERF_EVENTS_DISABLE = 0x1f - PR_TASK_PERF_EVENTS_ENABLE = 0x20 - PR_TIMING_STATISTICAL = 0x0 - PR_TIMING_TIMESTAMP = 0x1 - PR_TSC_ENABLE = 0x1 - PR_TSC_SIGSEGV = 0x2 - PR_UNALIGN_NOPRINT = 0x1 - PR_UNALIGN_SIGBUS = 0x2 - PTRACE_ATTACH = 0x10 - PTRACE_CONT = 0x7 - PTRACE_DETACH = 0x11 - PTRACE_EVENT_CLONE = 0x3 - PTRACE_EVENT_EXEC = 0x4 - PTRACE_EVENT_EXIT = 0x6 - PTRACE_EVENT_FORK = 0x1 - PTRACE_EVENT_SECCOMP = 0x7 - PTRACE_EVENT_STOP = 0x80 - PTRACE_EVENT_VFORK = 0x2 - PTRACE_EVENT_VFORK_DONE = 0x5 - PTRACE_GETEVENTMSG = 0x4201 - PTRACE_GETREGS = 0xc - PTRACE_GETREGSET = 0x4204 - PTRACE_GETSIGINFO = 0x4202 - PTRACE_GETSIGMASK = 0x420a - PTRACE_INTERRUPT = 0x4207 - PTRACE_KILL = 0x8 - PTRACE_LISTEN = 0x4208 - PTRACE_O_EXITKILL = 0x100000 - PTRACE_O_MASK = 0x3000ff - PTRACE_O_SUSPEND_SECCOMP = 0x200000 - PTRACE_O_TRACECLONE = 0x8 - PTRACE_O_TRACEEXEC = 0x10 - PTRACE_O_TRACEEXIT = 0x40 - PTRACE_O_TRACEFORK = 0x2 - PTRACE_O_TRACESECCOMP = 0x80 - PTRACE_O_TRACESYSGOOD = 0x1 - PTRACE_O_TRACEVFORK = 0x4 - PTRACE_O_TRACEVFORKDONE = 0x20 - PTRACE_PEEKDATA = 0x2 - PTRACE_PEEKSIGINFO = 0x4209 - PTRACE_PEEKSIGINFO_SHARED = 0x1 - PTRACE_PEEKTEXT = 0x1 - PTRACE_PEEKUSR = 0x3 - PTRACE_POKEDATA = 0x5 - PTRACE_POKETEXT = 0x4 - PTRACE_POKEUSR = 0x6 - PTRACE_SECCOMP_GET_FILTER = 0x420c - PTRACE_SEIZE = 0x4206 - PTRACE_SETOPTIONS = 0x4200 - PTRACE_SETREGS = 0xd - PTRACE_SETREGSET = 0x4205 - PTRACE_SETSIGINFO = 0x4203 - PTRACE_SETSIGMASK = 0x420b - PTRACE_SINGLESTEP = 0x9 - PTRACE_SYSCALL = 0x18 - PTRACE_TRACEME = 0x0 - RLIMIT_AS = 0x9 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_LOCKS = 0xa - RLIMIT_MEMLOCK = 0x8 - RLIMIT_MSGQUEUE = 0xc - RLIMIT_NICE = 0xd - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x6 - RLIMIT_RSS = 0x5 - RLIMIT_RTPRIO = 0xe - RLIMIT_RTTIME = 0xf - RLIMIT_SIGPENDING = 0xb - RLIMIT_STACK = 0x3 - RLIM_INFINITY = -0x1 - RTAX_ADVMSS = 0x8 - RTAX_CC_ALGO = 0x10 - RTAX_CWND = 0x7 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_MASK = 0xf - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0x10 - RTAX_MTU = 0x2 - RTAX_QUICKACK = 0xf - RTAX_REORDERING = 0x9 - RTAX_RTO_MIN = 0xd - RTAX_RTT = 0x4 - RTAX_RTTVAR = 0x5 - RTAX_SSTHRESH = 0x6 - RTAX_UNSPEC = 0x0 - RTAX_WINDOW = 0x3 - RTA_ALIGNTO = 0x4 - RTA_MAX = 0x19 - RTCF_DIRECTSRC = 0x4000000 - RTCF_DOREDIRECT = 0x1000000 - RTCF_LOG = 0x2000000 - RTCF_MASQ = 0x400000 - RTCF_NAT = 0x800000 - RTCF_VALVE = 0x200000 - RTF_ADDRCLASSMASK = 0xf8000000 - RTF_ADDRCONF = 0x40000 - RTF_ALLONLINK = 0x20000 - RTF_BROADCAST = 0x10000000 - RTF_CACHE = 0x1000000 - RTF_DEFAULT = 0x10000 - RTF_DYNAMIC = 0x10 - RTF_FLOW = 0x2000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_INTERFACE = 0x40000000 - RTF_IRTT = 0x100 - RTF_LINKRT = 0x100000 - RTF_LOCAL = 0x80000000 - RTF_MODIFIED = 0x20 - RTF_MSS = 0x40 - RTF_MTU = 0x40 - RTF_MULTICAST = 0x20000000 - RTF_NAT = 0x8000000 - RTF_NOFORWARD = 0x1000 - RTF_NONEXTHOP = 0x200000 - RTF_NOPMTUDISC = 0x4000 - RTF_POLICY = 0x4000000 - RTF_REINSTATE = 0x8 - RTF_REJECT = 0x200 - RTF_STATIC = 0x400 - RTF_THROW = 0x2000 - RTF_UP = 0x1 - RTF_WINDOW = 0x80 - RTF_XRESOLVE = 0x800 - RTM_BASE = 0x10 - RTM_DELACTION = 0x31 - RTM_DELADDR = 0x15 - RTM_DELADDRLABEL = 0x49 - RTM_DELLINK = 0x11 - RTM_DELMDB = 0x55 - RTM_DELNEIGH = 0x1d - RTM_DELNSID = 0x59 - RTM_DELQDISC = 0x25 - RTM_DELROUTE = 0x19 - RTM_DELRULE = 0x21 - RTM_DELTCLASS = 0x29 - RTM_DELTFILTER = 0x2d - RTM_F_CLONED = 0x200 - RTM_F_EQUALIZE = 0x400 - RTM_F_LOOKUP_TABLE = 0x1000 - RTM_F_NOTIFY = 0x100 - RTM_F_PREFIX = 0x800 - RTM_GETACTION = 0x32 - RTM_GETADDR = 0x16 - RTM_GETADDRLABEL = 0x4a - RTM_GETANYCAST = 0x3e - RTM_GETDCB = 0x4e - RTM_GETLINK = 0x12 - RTM_GETMDB = 0x56 - RTM_GETMULTICAST = 0x3a - RTM_GETNEIGH = 0x1e - RTM_GETNEIGHTBL = 0x42 - RTM_GETNETCONF = 0x52 - RTM_GETNSID = 0x5a - RTM_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETSTATS = 0x5e - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_MAX = 0x5f - RTM_NEWACTION = 0x30 - RTM_NEWADDR = 0x14 - RTM_NEWADDRLABEL = 0x48 - RTM_NEWLINK = 0x10 - RTM_NEWMDB = 0x54 - RTM_NEWNDUSEROPT = 0x44 - RTM_NEWNEIGH = 0x1c - RTM_NEWNEIGHTBL = 0x40 - RTM_NEWNETCONF = 0x50 - RTM_NEWNSID = 0x58 - RTM_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWSTATS = 0x5c - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NR_FAMILIES = 0x14 - RTM_NR_MSGTYPES = 0x50 - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTNH_ALIGNTO = 0x4 - RTNH_COMPARE_MASK = 0x19 - RTNH_F_DEAD = 0x1 - RTNH_F_LINKDOWN = 0x10 - RTNH_F_OFFLOAD = 0x8 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTN_MAX = 0xb - RTPROT_BABEL = 0x2a - RTPROT_BIRD = 0xc - RTPROT_BOOT = 0x3 - RTPROT_DHCP = 0x10 - RTPROT_DNROUTED = 0xd - RTPROT_GATED = 0x8 - RTPROT_KERNEL = 0x2 - RTPROT_MROUTED = 0x11 - RTPROT_MRT = 0xa - RTPROT_NTK = 0xf - RTPROT_RA = 0x9 - RTPROT_REDIRECT = 0x1 - RTPROT_STATIC = 0x4 - RTPROT_UNSPEC = 0x0 - RTPROT_XORP = 0xe - RTPROT_ZEBRA = 0xb - RT_CLASS_DEFAULT = 0xfd - RT_CLASS_LOCAL = 0xff - RT_CLASS_MAIN = 0xfe - RT_CLASS_MAX = 0xff - RT_CLASS_UNSPEC = 0x0 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_CREDENTIALS = 0x2 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPNS = 0x23 - SCM_WIFI_STATUS = 0x29 - SECCOMP_MODE_DISABLED = 0x0 - SECCOMP_MODE_FILTER = 0x2 - SECCOMP_MODE_STRICT = 0x1 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCATMARK = 0x8905 - SIOCBONDCHANGEACTIVE = 0x8995 - SIOCBONDENSLAVE = 0x8990 - SIOCBONDINFOQUERY = 0x8994 - SIOCBONDRELEASE = 0x8991 - SIOCBONDSETHWADDR = 0x8992 - SIOCBONDSLAVEINFOQUERY = 0x8993 - SIOCBRADDBR = 0x89a0 - SIOCBRADDIF = 0x89a2 - SIOCBRDELBR = 0x89a1 - SIOCBRDELIF = 0x89a3 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCETHTOOL = 0x8946 - SIOCGARP = 0x8954 - SIOCGHWTSTAMP = 0x89b1 - SIOCGIFADDR = 0x8915 - SIOCGIFBR = 0x8940 - SIOCGIFBRDADDR = 0x8919 - SIOCGIFCONF = 0x8912 - SIOCGIFCOUNT = 0x8938 - SIOCGIFDSTADDR = 0x8917 - SIOCGIFENCAP = 0x8925 - SIOCGIFFLAGS = 0x8913 - SIOCGIFHWADDR = 0x8927 - SIOCGIFINDEX = 0x8933 - SIOCGIFMAP = 0x8970 - SIOCGIFMEM = 0x891f - SIOCGIFMETRIC = 0x891d - SIOCGIFMTU = 0x8921 - SIOCGIFNAME = 0x8910 - SIOCGIFNETMASK = 0x891b - SIOCGIFPFLAGS = 0x8935 - SIOCGIFSLAVE = 0x8929 - SIOCGIFTXQLEN = 0x8942 - SIOCGIFVLAN = 0x8982 - SIOCGMIIPHY = 0x8947 - SIOCGMIIREG = 0x8948 - SIOCGPGRP = 0x8904 - SIOCGRARP = 0x8961 - SIOCGSKNS = 0x894c - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCINQ = 0x541b - SIOCOUTQ = 0x5411 - SIOCOUTQNSD = 0x894b - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - SIOCSHWTSTAMP = 0x89b0 - SIOCSIFADDR = 0x8916 - SIOCSIFBR = 0x8941 - SIOCSIFBRDADDR = 0x891a - SIOCSIFDSTADDR = 0x8918 - SIOCSIFENCAP = 0x8926 - SIOCSIFFLAGS = 0x8914 - SIOCSIFHWADDR = 0x8924 - SIOCSIFHWBROADCAST = 0x8937 - SIOCSIFLINK = 0x8911 - SIOCSIFMAP = 0x8971 - SIOCSIFMEM = 0x8920 - SIOCSIFMETRIC = 0x891e - SIOCSIFMTU = 0x8922 - SIOCSIFNAME = 0x8923 - SIOCSIFNETMASK = 0x891c - SIOCSIFPFLAGS = 0x8934 - SIOCSIFSLAVE = 0x8930 - SIOCSIFTXQLEN = 0x8943 - SIOCSIFVLAN = 0x8983 - SIOCSMIIREG = 0x8949 - SIOCSPGRP = 0x8902 - SIOCSRARP = 0x8962 - SIOCWANDEV = 0x894a - SOCK_CLOEXEC = 0x80000 - SOCK_DCCP = 0x6 - SOCK_DGRAM = 0x2 - SOCK_IOC_TYPE = 0x89 - SOCK_NONBLOCK = 0x800 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_AAL = 0x109 - SOL_ALG = 0x117 - SOL_ATM = 0x108 - SOL_CAIF = 0x116 - SOL_CAN_BASE = 0x64 - SOL_DCCP = 0x10d - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_IUCV = 0x115 - SOL_KCM = 0x119 - SOL_LLC = 0x10c - SOL_NETBEUI = 0x10b - SOL_NETLINK = 0x10e - SOL_NFC = 0x118 - SOL_PACKET = 0x107 - SOL_PNPIPE = 0x113 - SOL_PPPOL2TP = 0x111 - SOL_RAW = 0xff - SOL_RDS = 0x114 - SOL_RXRPC = 0x110 - SOL_SOCKET = 0x1 - SOL_TCP = 0x6 - SOL_TIPC = 0x10f - SOL_X25 = 0x106 - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_BPF = 0x32 - SO_ATTACH_FILTER = 0x1a - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x6 - SO_BSDCOMPAT = 0xe - SO_BUSY_POLL = 0x2e - SO_CNX_ADVICE = 0x35 - SO_DEBUG = 0x1 - SO_DETACH_BPF = 0x1b - SO_DETACH_FILTER = 0x1b - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_ERROR = 0x4 - SO_GET_FILTER = 0x1a - SO_INCOMING_CPU = 0x31 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_NOFCS = 0x2b - SO_NO_CHECK = 0xb - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x11 - SO_PEERNAME = 0x1c - SO_PEERSEC = 0x1f - SO_PRIORITY = 0xc - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x12 - SO_RCVTIMEO = 0x14 - SO_REUSEADDR = 0x2 - SO_REUSEPORT = 0xf - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x13 - SO_SNDTIMEO = 0x15 - SO_TIMESTAMP = 0x1d - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TYPE = 0x3 - SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 - SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 - SO_VM_SOCKETS_BUFFER_SIZE = 0x0 - SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 - SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 - SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 - SO_VM_SOCKETS_TRUSTED = 0x5 - SO_WIFI_STATUS = 0x29 - SPLICE_F_GIFT = 0x8 - SPLICE_F_MORE = 0x4 - SPLICE_F_MOVE = 0x1 - SPLICE_F_NONBLOCK = 0x2 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TASKSTATS_CMD_ATTR_MAX = 0x4 - TASKSTATS_CMD_MAX = 0x2 - TASKSTATS_GENL_NAME = "TASKSTATS" - TASKSTATS_GENL_VERSION = 0x1 - TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x8 - TCFLSH = 0x540b - TCGETA = 0x5405 - TCGETS = 0x5401 - TCGETS2 = 0x802c542a - TCGETX = 0x5432 - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_CC_INFO = 0x1a - TCP_CONGESTION = 0xd - TCP_COOKIE_IN_ALWAYS = 0x1 - TCP_COOKIE_MAX = 0x10 - TCP_COOKIE_MIN = 0x8 - TCP_COOKIE_OUT_NEVER = 0x2 - TCP_COOKIE_PAIR_SIZE = 0x20 - TCP_COOKIE_TRANSACTIONS = 0xf - TCP_CORK = 0x3 - TCP_DEFER_ACCEPT = 0x9 - TCP_FASTOPEN = 0x17 - TCP_INFO = 0xb - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x4 - TCP_KEEPINTVL = 0x5 - TCP_LINGER2 = 0x8 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0xe - TCP_MD5SIG_MAXKEYLEN = 0x50 - TCP_MSS = 0x200 - TCP_MSS_DEFAULT = 0x218 - TCP_MSS_DESIRED = 0x4c4 - TCP_NODELAY = 0x1 - TCP_NOTSENT_LOWAT = 0x19 - TCP_QUEUE_SEQ = 0x15 - TCP_QUICKACK = 0xc - TCP_REPAIR = 0x13 - TCP_REPAIR_OPTIONS = 0x16 - TCP_REPAIR_QUEUE = 0x14 - TCP_REPAIR_WINDOW = 0x1d - TCP_SAVED_SYN = 0x1c - TCP_SAVE_SYN = 0x1b - TCP_SYNCNT = 0x7 - TCP_S_DATA_IN = 0x4 - TCP_S_DATA_OUT = 0x8 - TCP_THIN_DUPACK = 0x11 - TCP_THIN_LINEAR_TIMEOUTS = 0x10 - TCP_TIMESTAMP = 0x18 - TCP_USER_TIMEOUT = 0x12 - TCP_WINDOW_CLAMP = 0xa - TCSAFLUSH = 0x2 - TCSBRK = 0x5409 - TCSBRKP = 0x5425 - TCSETA = 0x5406 - TCSETAF = 0x5408 - TCSETAW = 0x5407 - TCSETS = 0x5402 - TCSETS2 = 0x402c542b - TCSETSF = 0x5404 - TCSETSF2 = 0x402c542d - TCSETSW = 0x5403 - TCSETSW2 = 0x402c542c - TCSETX = 0x5433 - TCSETXF = 0x5434 - TCSETXW = 0x5435 - TCXONC = 0x540a - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x80045432 - TIOCGETD = 0x5424 - TIOCGEXCL = 0x80045440 - TIOCGICOUNT = 0x545d - TIOCGLCKTRMIOS = 0x5456 - TIOCGPGRP = 0x540f - TIOCGPKT = 0x80045438 - TIOCGPTLCK = 0x80045439 - TIOCGPTN = 0x80045430 - TIOCGRS485 = 0x542e - TIOCGSERIAL = 0x541e - TIOCGSID = 0x5429 - TIOCGSOFTCAR = 0x5419 - TIOCGWINSZ = 0x5413 - TIOCINQ = 0x541b - TIOCLINUX = 0x541c - TIOCMBIC = 0x5417 - TIOCMBIS = 0x5416 - TIOCMGET = 0x5415 - TIOCMIWAIT = 0x545c - TIOCMSET = 0x5418 - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x5422 - TIOCNXCL = 0x540d - TIOCOUTQ = 0x5411 - TIOCPKT = 0x5420 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x540e - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x5423 - TIOCSIG = 0x40045436 - TIOCSLCKTRMIOS = 0x5457 - TIOCSPGRP = 0x5410 - TIOCSPTLCK = 0x40045431 - TIOCSRS485 = 0x542f - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x541a - TIOCSTI = 0x5412 - TIOCSWINSZ = 0x5414 - TIOCVHANGUP = 0x5437 - TOSTOP = 0x100 - TS_COMM_LEN = 0x20 - TUNATTACHFILTER = 0x401054d5 - TUNDETACHFILTER = 0x401054d6 - TUNGETFEATURES = 0x800454cf - TUNGETFILTER = 0x801054db - TUNGETIFF = 0x800454d2 - TUNGETSNDBUF = 0x800454d3 - TUNGETVNETBE = 0x800454df - TUNGETVNETHDRSZ = 0x800454d7 - TUNGETVNETLE = 0x800454dd - TUNSETDEBUG = 0x400454c9 - TUNSETGROUP = 0x400454ce - TUNSETIFF = 0x400454ca - TUNSETIFINDEX = 0x400454da - TUNSETLINK = 0x400454cd - TUNSETNOCSUM = 0x400454c8 - TUNSETOFFLOAD = 0x400454d0 - TUNSETOWNER = 0x400454cc - TUNSETPERSIST = 0x400454cb - TUNSETQUEUE = 0x400454d9 - TUNSETSNDBUF = 0x400454d4 - TUNSETTXFILTER = 0x400454d1 - TUNSETVNETBE = 0x400454de - TUNSETVNETHDRSZ = 0x400454d8 - TUNSETVNETLE = 0x400454dc - UMOUNT_NOFOLLOW = 0x8 - VDISCARD = 0xd - VEOF = 0x4 - VEOL = 0xb - VEOL2 = 0x10 - VERASE = 0x2 - VINTR = 0x0 - VKILL = 0x3 - VLNEXT = 0xf - VMADDR_CID_ANY = 0xffffffff - VMADDR_CID_HOST = 0x2 - VMADDR_CID_HYPERVISOR = 0x0 - VMADDR_CID_RESERVED = 0x1 - VMADDR_PORT_ANY = 0xffffffff - VMIN = 0x6 - VM_SOCKETS_INVALID_VERSION = 0xffffffff - VQUIT = 0x1 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VT0 = 0x0 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WALL = 0x40000000 - WCLONE = 0x80000000 - WCONTINUED = 0x8 - WEXITED = 0x4 - WNOHANG = 0x1 - WNOTHREAD = 0x20000000 - WNOWAIT = 0x1000000 - WORDSIZE = 0x40 - WSTOPPED = 0x2 - WUNTRACED = 0x2 - XATTR_CREATE = 0x1 - XATTR_REPLACE = 0x2 - XCASE = 0x4 - XTABS = 0x1800 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x62) - EADDRNOTAVAIL = syscall.Errno(0x63) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x61) - EAGAIN = syscall.Errno(0xb) - EALREADY = syscall.Errno(0x72) - EBADE = syscall.Errno(0x34) - EBADF = syscall.Errno(0x9) - EBADFD = syscall.Errno(0x4d) - EBADMSG = syscall.Errno(0x4a) - EBADR = syscall.Errno(0x35) - EBADRQC = syscall.Errno(0x38) - EBADSLT = syscall.Errno(0x39) - EBFONT = syscall.Errno(0x3b) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x7d) - ECHILD = syscall.Errno(0xa) - ECHRNG = syscall.Errno(0x2c) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x67) - ECONNREFUSED = syscall.Errno(0x6f) - ECONNRESET = syscall.Errno(0x68) - EDEADLK = syscall.Errno(0x23) - EDEADLOCK = syscall.Errno(0x23) - EDESTADDRREQ = syscall.Errno(0x59) - EDOM = syscall.Errno(0x21) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x7a) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EHOSTDOWN = syscall.Errno(0x70) - EHOSTUNREACH = syscall.Errno(0x71) - EHWPOISON = syscall.Errno(0x85) - EIDRM = syscall.Errno(0x2b) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x73) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x6a) - EISDIR = syscall.Errno(0x15) - EISNAM = syscall.Errno(0x78) - EKEYEXPIRED = syscall.Errno(0x7f) - EKEYREJECTED = syscall.Errno(0x81) - EKEYREVOKED = syscall.Errno(0x80) - EL2HLT = syscall.Errno(0x33) - EL2NSYNC = syscall.Errno(0x2d) - EL3HLT = syscall.Errno(0x2e) - EL3RST = syscall.Errno(0x2f) - ELIBACC = syscall.Errno(0x4f) - ELIBBAD = syscall.Errno(0x50) - ELIBEXEC = syscall.Errno(0x53) - ELIBMAX = syscall.Errno(0x52) - ELIBSCN = syscall.Errno(0x51) - ELNRNG = syscall.Errno(0x30) - ELOOP = syscall.Errno(0x28) - EMEDIUMTYPE = syscall.Errno(0x7c) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x5a) - EMULTIHOP = syscall.Errno(0x48) - ENAMETOOLONG = syscall.Errno(0x24) - ENAVAIL = syscall.Errno(0x77) - ENETDOWN = syscall.Errno(0x64) - ENETRESET = syscall.Errno(0x66) - ENETUNREACH = syscall.Errno(0x65) - ENFILE = syscall.Errno(0x17) - ENOANO = syscall.Errno(0x37) - ENOBUFS = syscall.Errno(0x69) - ENOCSI = syscall.Errno(0x32) - ENODATA = syscall.Errno(0x3d) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOKEY = syscall.Errno(0x7e) - ENOLCK = syscall.Errno(0x25) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x7b) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x2a) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x5c) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x26) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x6b) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x27) - ENOTNAM = syscall.Errno(0x76) - ENOTRECOVERABLE = syscall.Errno(0x83) - ENOTSOCK = syscall.Errno(0x58) - ENOTSUP = syscall.Errno(0x5f) - ENOTTY = syscall.Errno(0x19) - ENOTUNIQ = syscall.Errno(0x4c) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x5f) - EOVERFLOW = syscall.Errno(0x4b) - EOWNERDEAD = syscall.Errno(0x82) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x60) - EPIPE = syscall.Errno(0x20) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x5d) - EPROTOTYPE = syscall.Errno(0x5b) - ERANGE = syscall.Errno(0x22) - EREMCHG = syscall.Errno(0x4e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x79) - ERESTART = syscall.Errno(0x55) - ERFKILL = syscall.Errno(0x84) - EROFS = syscall.Errno(0x1e) - ESHUTDOWN = syscall.Errno(0x6c) - ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x74) - ESTRPIPE = syscall.Errno(0x56) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x6e) - ETOOMANYREFS = syscall.Errno(0x6d) - ETXTBSY = syscall.Errno(0x1a) - EUCLEAN = syscall.Errno(0x75) - EUNATCH = syscall.Errno(0x31) - EUSERS = syscall.Errno(0x57) - EWOULDBLOCK = syscall.Errno(0xb) - EXDEV = syscall.Errno(0x12) - EXFULL = syscall.Errno(0x36) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0x7) - SIGCHLD = syscall.Signal(0x11) - SIGCLD = syscall.Signal(0x11) - SIGCONT = syscall.Signal(0x12) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x1d) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) - SIGPOLL = syscall.Signal(0x1d) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x1e) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTKFLT = syscall.Signal(0x10) - SIGSTOP = syscall.Signal(0x13) - SIGSYS = syscall.Signal(0x1f) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x14) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGUNUSED = syscall.Signal(0x1f) - SIGURG = syscall.Signal(0x17) - SIGUSR1 = syscall.Signal(0xa) - SIGUSR2 = syscall.Signal(0xc) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errors = [...]string{ - 1: "operation not permitted", - 2: "no such file or directory", - 3: "no such process", - 4: "interrupted system call", - 5: "input/output error", - 6: "no such device or address", - 7: "argument list too long", - 8: "exec format error", - 9: "bad file descriptor", - 10: "no child processes", - 11: "resource temporarily unavailable", - 12: "cannot allocate memory", - 13: "permission denied", - 14: "bad address", - 15: "block device required", - 16: "device or resource busy", - 17: "file exists", - 18: "invalid cross-device link", - 19: "no such device", - 20: "not a directory", - 21: "is a directory", - 22: "invalid argument", - 23: "too many open files in system", - 24: "too many open files", - 25: "inappropriate ioctl for device", - 26: "text file busy", - 27: "file too large", - 28: "no space left on device", - 29: "illegal seek", - 30: "read-only file system", - 31: "too many links", - 32: "broken pipe", - 33: "numerical argument out of domain", - 34: "numerical result out of range", - 35: "resource deadlock avoided", - 36: "file name too long", - 37: "no locks available", - 38: "function not implemented", - 39: "directory not empty", - 40: "too many levels of symbolic links", - 42: "no message of desired type", - 43: "identifier removed", - 44: "channel number out of range", - 45: "level 2 not synchronized", - 46: "level 3 halted", - 47: "level 3 reset", - 48: "link number out of range", - 49: "protocol driver not attached", - 50: "no CSI structure available", - 51: "level 2 halted", - 52: "invalid exchange", - 53: "invalid request descriptor", - 54: "exchange full", - 55: "no anode", - 56: "invalid request code", - 57: "invalid slot", - 59: "bad font file format", - 60: "device not a stream", - 61: "no data available", - 62: "timer expired", - 63: "out of streams resources", - 64: "machine is not on the network", - 65: "package not installed", - 66: "object is remote", - 67: "link has been severed", - 68: "advertise error", - 69: "srmount error", - 70: "communication error on send", - 71: "protocol error", - 72: "multihop attempted", - 73: "RFS specific error", - 74: "bad message", - 75: "value too large for defined data type", - 76: "name not unique on network", - 77: "file descriptor in bad state", - 78: "remote address changed", - 79: "can not access a needed shared library", - 80: "accessing a corrupted shared library", - 81: ".lib section in a.out corrupted", - 82: "attempting to link in too many shared libraries", - 83: "cannot exec a shared library directly", - 84: "invalid or incomplete multibyte or wide character", - 85: "interrupted system call should be restarted", - 86: "streams pipe error", - 87: "too many users", - 88: "socket operation on non-socket", - 89: "destination address required", - 90: "message too long", - 91: "protocol wrong type for socket", - 92: "protocol not available", - 93: "protocol not supported", - 94: "socket type not supported", - 95: "operation not supported", - 96: "protocol family not supported", - 97: "address family not supported by protocol", - 98: "address already in use", - 99: "cannot assign requested address", - 100: "network is down", - 101: "network is unreachable", - 102: "network dropped connection on reset", - 103: "software caused connection abort", - 104: "connection reset by peer", - 105: "no buffer space available", - 106: "transport endpoint is already connected", - 107: "transport endpoint is not connected", - 108: "cannot send after transport endpoint shutdown", - 109: "too many references: cannot splice", - 110: "connection timed out", - 111: "connection refused", - 112: "host is down", - 113: "no route to host", - 114: "operation already in progress", - 115: "operation now in progress", - 116: "stale file handle", - 117: "structure needs cleaning", - 118: "not a XENIX named type file", - 119: "no XENIX semaphores available", - 120: "is a named type file", - 121: "remote I/O error", - 122: "disk quota exceeded", - 123: "no medium found", - 124: "wrong medium type", - 125: "operation canceled", - 126: "required key not available", - 127: "key has expired", - 128: "key has been revoked", - 129: "key was rejected by service", - 130: "owner died", - 131: "state not recoverable", - 132: "operation not possible due to RF-kill", - 133: "memory page has hardware error", -} - -// Signal table -var signals = [...]string{ - 1: "hangup", - 2: "interrupt", - 3: "quit", - 4: "illegal instruction", - 5: "trace/breakpoint trap", - 6: "aborted", - 7: "bus error", - 8: "floating point exception", - 9: "killed", - 10: "user defined signal 1", - 11: "segmentation fault", - 12: "user defined signal 2", - 13: "broken pipe", - 14: "alarm clock", - 15: "terminated", - 16: "stack fault", - 17: "child exited", - 18: "continued", - 19: "stopped (signal)", - 20: "stopped", - 21: "stopped (tty input)", - 22: "stopped (tty output)", - 23: "urgent I/O condition", - 24: "CPU time limit exceeded", - 25: "file size limit exceeded", - 26: "virtual timer expired", - 27: "profiling timer expired", - 28: "window changed", - 29: "I/O possible", - 30: "power failure", - 31: "bad system call", -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go deleted file mode 100644 index 900f568..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go +++ /dev/null @@ -1,2209 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/include -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build mips,linux - -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go - -package unix - -import "syscall" - -const ( - AF_ALG = 0x26 - AF_APPLETALK = 0x5 - AF_ASH = 0x12 - AF_ATMPVC = 0x8 - AF_ATMSVC = 0x14 - AF_AX25 = 0x3 - AF_BLUETOOTH = 0x1f - AF_BRIDGE = 0x7 - AF_CAIF = 0x25 - AF_CAN = 0x1d - AF_DECnet = 0xc - AF_ECONET = 0x13 - AF_FILE = 0x1 - AF_IB = 0x1b - AF_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KCM = 0x29 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x2b - AF_MPLS = 0x1c - AF_NETBEUI = 0xd - AF_NETLINK = 0x10 - AF_NETROM = 0x6 - AF_NFC = 0x27 - AF_PACKET = 0x11 - AF_PHONET = 0x23 - AF_PPPOX = 0x18 - AF_QIPCRTR = 0x2a - AF_RDS = 0x15 - AF_ROSE = 0xb - AF_ROUTE = 0x10 - AF_RXRPC = 0x21 - AF_SECURITY = 0xe - AF_SNA = 0x16 - AF_TIPC = 0x1e - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VSOCK = 0x28 - AF_WANPIPE = 0x19 - AF_X25 = 0x9 - ALG_OP_DECRYPT = 0x0 - ALG_OP_ENCRYPT = 0x1 - ALG_SET_AEAD_ASSOCLEN = 0x4 - ALG_SET_AEAD_AUTHSIZE = 0x5 - ALG_SET_IV = 0x2 - ALG_SET_KEY = 0x1 - ALG_SET_OP = 0x3 - ARPHRD_6LOWPAN = 0x339 - ARPHRD_ADAPT = 0x108 - ARPHRD_APPLETLK = 0x8 - ARPHRD_ARCNET = 0x7 - ARPHRD_ASH = 0x30d - ARPHRD_ATM = 0x13 - ARPHRD_AX25 = 0x3 - ARPHRD_BIF = 0x307 - ARPHRD_CAIF = 0x336 - ARPHRD_CAN = 0x118 - ARPHRD_CHAOS = 0x5 - ARPHRD_CISCO = 0x201 - ARPHRD_CSLIP = 0x101 - ARPHRD_CSLIP6 = 0x103 - ARPHRD_DDCMP = 0x205 - ARPHRD_DLCI = 0xf - ARPHRD_ECONET = 0x30e - ARPHRD_EETHER = 0x2 - ARPHRD_ETHER = 0x1 - ARPHRD_EUI64 = 0x1b - ARPHRD_FCAL = 0x311 - ARPHRD_FCFABRIC = 0x313 - ARPHRD_FCPL = 0x312 - ARPHRD_FCPP = 0x310 - ARPHRD_FDDI = 0x306 - ARPHRD_FRAD = 0x302 - ARPHRD_HDLC = 0x201 - ARPHRD_HIPPI = 0x30c - ARPHRD_HWX25 = 0x110 - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_IEEE80211 = 0x321 - ARPHRD_IEEE80211_PRISM = 0x322 - ARPHRD_IEEE80211_RADIOTAP = 0x323 - ARPHRD_IEEE802154 = 0x324 - ARPHRD_IEEE802154_MONITOR = 0x325 - ARPHRD_IEEE802_TR = 0x320 - ARPHRD_INFINIBAND = 0x20 - ARPHRD_IP6GRE = 0x337 - ARPHRD_IPDDP = 0x309 - ARPHRD_IPGRE = 0x30a - ARPHRD_IRDA = 0x30f - ARPHRD_LAPB = 0x204 - ARPHRD_LOCALTLK = 0x305 - ARPHRD_LOOPBACK = 0x304 - ARPHRD_METRICOM = 0x17 - ARPHRD_NETLINK = 0x338 - ARPHRD_NETROM = 0x0 - ARPHRD_NONE = 0xfffe - ARPHRD_PHONET = 0x334 - ARPHRD_PHONET_PIPE = 0x335 - ARPHRD_PIMREG = 0x30b - ARPHRD_PPP = 0x200 - ARPHRD_PRONET = 0x4 - ARPHRD_RAWHDLC = 0x206 - ARPHRD_ROSE = 0x10e - ARPHRD_RSRVD = 0x104 - ARPHRD_SIT = 0x308 - ARPHRD_SKIP = 0x303 - ARPHRD_SLIP = 0x100 - ARPHRD_SLIP6 = 0x102 - ARPHRD_TUNNEL = 0x300 - ARPHRD_TUNNEL6 = 0x301 - ARPHRD_VOID = 0xffff - ARPHRD_X25 = 0x10f - B0 = 0x0 - B1000000 = 0x1008 - B110 = 0x3 - B115200 = 0x1002 - B1152000 = 0x1009 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B1500000 = 0x100a - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B2000000 = 0x100b - B230400 = 0x1003 - B2400 = 0xb - B2500000 = 0x100c - B300 = 0x7 - B3000000 = 0x100d - B3500000 = 0x100e - B38400 = 0xf - B4000000 = 0x100f - B460800 = 0x1004 - B4800 = 0xc - B50 = 0x1 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B600 = 0x8 - B75 = 0x2 - B921600 = 0x1007 - B9600 = 0xd - BLKBSZGET = 0x40041270 - BLKBSZSET = 0x80041271 - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40041272 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d - BLKRRPART = 0x2000125f - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 - BOTHER = 0x1000 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIV = 0x30 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LL_OFF = -0x200000 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXINSNS = 0x1000 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_NET_OFF = -0x100000 - BPF_OR = 0x40 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XOR = 0xa0 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x2000 - BSDLY = 0x2000 - CAN_BCM = 0x2 - CAN_EFF_FLAG = 0x80000000 - CAN_EFF_ID_BITS = 0x1d - CAN_EFF_MASK = 0x1fffffff - CAN_ERR_FLAG = 0x20000000 - CAN_ERR_MASK = 0x1fffffff - CAN_INV_FILTER = 0x20000000 - CAN_ISOTP = 0x6 - CAN_MAX_DLC = 0x8 - CAN_MAX_DLEN = 0x8 - CAN_MCNET = 0x5 - CAN_MTU = 0x10 - CAN_NPROTO = 0x7 - CAN_RAW = 0x1 - CAN_RAW_FILTER_MAX = 0x200 - CAN_RTR_FLAG = 0x40000000 - CAN_SFF_ID_BITS = 0xb - CAN_SFF_MASK = 0x7ff - CAN_TP16 = 0x3 - CAN_TP20 = 0x4 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CFLUSH = 0xf - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CLOCK_BOOTTIME = 0x7 - CLOCK_BOOTTIME_ALARM = 0x9 - CLOCK_DEFAULT = 0x0 - CLOCK_EXT = 0x1 - CLOCK_INT = 0x2 - CLOCK_MONOTONIC = 0x1 - CLOCK_MONOTONIC_COARSE = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_ALARM = 0x8 - CLOCK_REALTIME_COARSE = 0x5 - CLOCK_TAI = 0xb - CLOCK_THREAD_CPUTIME_ID = 0x3 - CLOCK_TXFROMRX = 0x4 - CLOCK_TXINT = 0x3 - CLONE_CHILD_CLEARTID = 0x200000 - CLONE_CHILD_SETTID = 0x1000000 - CLONE_DETACHED = 0x400000 - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_IO = 0x80000000 - CLONE_NEWCGROUP = 0x2000000 - CLONE_NEWIPC = 0x8000000 - CLONE_NEWNET = 0x40000000 - CLONE_NEWNS = 0x20000 - CLONE_NEWPID = 0x20000000 - CLONE_NEWUSER = 0x10000000 - CLONE_NEWUTS = 0x4000000 - CLONE_PARENT = 0x8000 - CLONE_PARENT_SETTID = 0x100000 - CLONE_PTRACE = 0x2000 - CLONE_SETTLS = 0x80000 - CLONE_SIGHAND = 0x800 - CLONE_SYSVSEM = 0x40000 - CLONE_THREAD = 0x10000 - CLONE_UNTRACED = 0x800000 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CMSPAR = 0x40000000 - CR0 = 0x0 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRDLY = 0x600 - CREAD = 0x80 - CRTSCTS = 0x80000000 - CS5 = 0x0 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIGNAL = 0xff - CSIZE = 0x30 - CSTART = 0x11 - CSTATUS = 0x0 - CSTOP = 0x13 - CSTOPB = 0x40 - CSUSP = 0x1a - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x80 - EFD_SEMAPHORE = 0x1 - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - EPOLLEXCLUSIVE = 0x10000000 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLONESHOT = 0x40000000 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDHUP = 0x2000 - EPOLLRDNORM = 0x40 - EPOLLWAKEUP = 0x20000000 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CLOEXEC = 0x80000 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - ETH_P_1588 = 0x88f7 - ETH_P_8021AD = 0x88a8 - ETH_P_8021AH = 0x88e7 - ETH_P_8021Q = 0x8100 - ETH_P_80221 = 0x8917 - ETH_P_802_2 = 0x4 - ETH_P_802_3 = 0x1 - ETH_P_802_3_MIN = 0x600 - ETH_P_802_EX1 = 0x88b5 - ETH_P_AARP = 0x80f3 - ETH_P_AF_IUCV = 0xfbfb - ETH_P_ALL = 0x3 - ETH_P_AOE = 0x88a2 - ETH_P_ARCNET = 0x1a - ETH_P_ARP = 0x806 - ETH_P_ATALK = 0x809b - ETH_P_ATMFATE = 0x8884 - ETH_P_ATMMPOA = 0x884c - ETH_P_AX25 = 0x2 - ETH_P_BATMAN = 0x4305 - ETH_P_BPQ = 0x8ff - ETH_P_CAIF = 0xf7 - ETH_P_CAN = 0xc - ETH_P_CANFD = 0xd - ETH_P_CONTROL = 0x16 - ETH_P_CUST = 0x6006 - ETH_P_DDCMP = 0x6 - ETH_P_DEC = 0x6000 - ETH_P_DIAG = 0x6005 - ETH_P_DNA_DL = 0x6001 - ETH_P_DNA_RC = 0x6002 - ETH_P_DNA_RT = 0x6003 - ETH_P_DSA = 0x1b - ETH_P_ECONET = 0x18 - ETH_P_EDSA = 0xdada - ETH_P_FCOE = 0x8906 - ETH_P_FIP = 0x8914 - ETH_P_HDLC = 0x19 - ETH_P_HSR = 0x892f - ETH_P_IEEE802154 = 0xf6 - ETH_P_IEEEPUP = 0xa00 - ETH_P_IEEEPUPAT = 0xa01 - ETH_P_IP = 0x800 - ETH_P_IPV6 = 0x86dd - ETH_P_IPX = 0x8137 - ETH_P_IRDA = 0x17 - ETH_P_LAT = 0x6004 - ETH_P_LINK_CTL = 0x886c - ETH_P_LOCALTALK = 0x9 - ETH_P_LOOP = 0x60 - ETH_P_LOOPBACK = 0x9000 - ETH_P_MACSEC = 0x88e5 - ETH_P_MOBITEX = 0x15 - ETH_P_MPLS_MC = 0x8848 - ETH_P_MPLS_UC = 0x8847 - ETH_P_MVRP = 0x88f5 - ETH_P_NCSI = 0x88f8 - ETH_P_PAE = 0x888e - ETH_P_PAUSE = 0x8808 - ETH_P_PHONET = 0xf5 - ETH_P_PPPTALK = 0x10 - ETH_P_PPP_DISC = 0x8863 - ETH_P_PPP_MP = 0x8 - ETH_P_PPP_SES = 0x8864 - ETH_P_PRP = 0x88fb - ETH_P_PUP = 0x200 - ETH_P_PUPAT = 0x201 - ETH_P_QINQ1 = 0x9100 - ETH_P_QINQ2 = 0x9200 - ETH_P_QINQ3 = 0x9300 - ETH_P_RARP = 0x8035 - ETH_P_SCA = 0x6007 - ETH_P_SLOW = 0x8809 - ETH_P_SNAP = 0x5 - ETH_P_TDLS = 0x890d - ETH_P_TEB = 0x6558 - ETH_P_TIPC = 0x88ca - ETH_P_TRAILER = 0x1c - ETH_P_TR_802_2 = 0x11 - ETH_P_TSN = 0x22f0 - ETH_P_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - ETH_P_XDSA = 0xf8 - EXTA = 0xe - EXTB = 0xf - EXTPROC = 0x10000 - FALLOC_FL_COLLAPSE_RANGE = 0x8 - FALLOC_FL_INSERT_RANGE = 0x20 - FALLOC_FL_KEEP_SIZE = 0x1 - FALLOC_FL_NO_HIDE_STALE = 0x4 - FALLOC_FL_PUNCH_HOLE = 0x2 - FALLOC_FL_UNSHARE_RANGE = 0x40 - FALLOC_FL_ZERO_RANGE = 0x10 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x8000 - FFDLY = 0x8000 - FLUSHO = 0x2000 - FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 - FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 - FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 - FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 - FS_ENCRYPTION_MODE_INVALID = 0x0 - FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 - FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 - FS_KEY_DESCRIPTOR_SIZE = 0x8 - FS_KEY_DESC_PREFIX = "fscrypt:" - FS_KEY_DESC_PREFIX_SIZE = 0x8 - FS_MAX_KEY_SIZE = 0x40 - FS_POLICY_FLAGS_PAD_16 = 0x2 - FS_POLICY_FLAGS_PAD_32 = 0x3 - FS_POLICY_FLAGS_PAD_4 = 0x0 - FS_POLICY_FLAGS_PAD_8 = 0x1 - FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x3 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x406 - F_EXLCK = 0x4 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLEASE = 0x401 - F_GETLK = 0x21 - F_GETLK64 = 0x21 - F_GETOWN = 0x17 - F_GETOWN_EX = 0x10 - F_GETPIPE_SZ = 0x408 - F_GETSIG = 0xb - F_LOCK = 0x1 - F_NOTIFY = 0x402 - F_OFD_GETLK = 0x24 - F_OFD_SETLK = 0x25 - F_OFD_SETLKW = 0x26 - F_OK = 0x0 - F_RDLCK = 0x0 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLEASE = 0x400 - F_SETLK = 0x22 - F_SETLK64 = 0x22 - F_SETLKW = 0x23 - F_SETLKW64 = 0x23 - F_SETOWN = 0x18 - F_SETOWN_EX = 0xf - F_SETPIPE_SZ = 0x407 - F_SETSIG = 0xa - F_SHLCK = 0x8 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_ULOCK = 0x0 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - GENL_ADMIN_PERM = 0x1 - GENL_CMD_CAP_DO = 0x2 - GENL_CMD_CAP_DUMP = 0x4 - GENL_CMD_CAP_HASPOL = 0x8 - GENL_HDRLEN = 0x4 - GENL_ID_CTRL = 0x10 - GENL_ID_PMCRAID = 0x12 - GENL_ID_VFS_DQUOT = 0x11 - GENL_MAX_ID = 0x3ff - GENL_MIN_ID = 0x10 - GENL_NAMSIZ = 0x10 - GENL_START_ALLOC = 0x13 - GENL_UNS_ADMIN_PERM = 0x10 - GRND_NONBLOCK = 0x1 - GRND_RANDOM = 0x2 - HUPCL = 0x400 - IBSHIFT = 0x10 - ICANON = 0x2 - ICMPV6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x100 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_MANAGETEMPADDR = 0x100 - IFA_F_MCAUTOJOIN = 0x400 - IFA_F_NODAD = 0x2 - IFA_F_NOPREFIXROUTE = 0x200 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_STABLE_PRIVACY = 0x800 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0x8 - IFF_ALLMULTI = 0x200 - IFF_ATTACH_QUEUE = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DETACH_QUEUE = 0x400 - IFF_DORMANT = 0x20000 - IFF_DYNAMIC = 0x8000 - IFF_ECHO = 0x40000 - IFF_LOOPBACK = 0x8 - IFF_LOWER_UP = 0x10000 - IFF_MASTER = 0x400 - IFF_MULTICAST = 0x1000 - IFF_MULTI_QUEUE = 0x100 - IFF_NOARP = 0x80 - IFF_NOFILTER = 0x1000 - IFF_NOTRAILERS = 0x20 - IFF_NO_PI = 0x1000 - IFF_ONE_QUEUE = 0x2000 - IFF_PERSIST = 0x800 - IFF_POINTOPOINT = 0x10 - IFF_PORTSEL = 0x2000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SLAVE = 0x800 - IFF_TAP = 0x2 - IFF_TUN = 0x1 - IFF_TUN_EXCL = 0x8000 - IFF_UP = 0x1 - IFF_VNET_HDR = 0x4000 - IFF_VOLATILE = 0x70c5a - IFNAMSIZ = 0x10 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_ACCESS = 0x1 - IN_ALL_EVENTS = 0xfff - IN_ATTRIB = 0x4 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLOEXEC = 0x80000 - IN_CLOSE = 0x18 - IN_CLOSE_NOWRITE = 0x10 - IN_CLOSE_WRITE = 0x8 - IN_CREATE = 0x100 - IN_DELETE = 0x200 - IN_DELETE_SELF = 0x400 - IN_DONT_FOLLOW = 0x2000000 - IN_EXCL_UNLINK = 0x4000000 - IN_IGNORED = 0x8000 - IN_ISDIR = 0x40000000 - IN_LOOPBACKNET = 0x7f - IN_MASK_ADD = 0x20000000 - IN_MODIFY = 0x2 - IN_MOVE = 0xc0 - IN_MOVED_FROM = 0x40 - IN_MOVED_TO = 0x80 - IN_MOVE_SELF = 0x800 - IN_NONBLOCK = 0x80 - IN_ONESHOT = 0x80000000 - IN_ONLYDIR = 0x1000000 - IN_OPEN = 0x20 - IN_Q_OVERFLOW = 0x4000 - IN_UNMOUNT = 0x2000 - IPPROTO_AH = 0x33 - IPPROTO_BEETPH = 0x5e - IPPROTO_COMP = 0x6c - IPPROTO_DCCP = 0x21 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPIP = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MH = 0x87 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_NONE = 0x3b - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_2292DSTOPTS = 0x4 - IPV6_2292HOPLIMIT = 0x8 - IPV6_2292HOPOPTS = 0x3 - IPV6_2292PKTINFO = 0x2 - IPV6_2292PKTOPTIONS = 0x6 - IPV6_2292RTHDR = 0x5 - IPV6_ADDRFORM = 0x1 - IPV6_ADD_MEMBERSHIP = 0x14 - IPV6_AUTHHDR = 0xa - IPV6_CHECKSUM = 0x7 - IPV6_DONTFRAG = 0x3e - IPV6_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - IPV6_HDRINCL = 0x24 - IPV6_HOPLIMIT = 0x34 - IPV6_HOPOPTS = 0x36 - IPV6_IPSEC_POLICY = 0x22 - IPV6_JOIN_ANYCAST = 0x1b - IPV6_JOIN_GROUP = 0x14 - IPV6_LEAVE_ANYCAST = 0x1c - IPV6_LEAVE_GROUP = 0x15 - IPV6_MTU = 0x18 - IPV6_MTU_DISCOVER = 0x17 - IPV6_MULTICAST_HOPS = 0x12 - IPV6_MULTICAST_IF = 0x11 - IPV6_MULTICAST_LOOP = 0x13 - IPV6_NEXTHOP = 0x9 - IPV6_PATHMTU = 0x3d - IPV6_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_INTERFACE = 0x4 - IPV6_PMTUDISC_OMIT = 0x5 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVPATHMTU = 0x3c - IPV6_RECVPKTINFO = 0x31 - IPV6_RECVRTHDR = 0x38 - IPV6_RECVTCLASS = 0x42 - IPV6_ROUTER_ALERT = 0x16 - IPV6_RTHDR = 0x39 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RXDSTOPTS = 0x3b - IPV6_RXHOPOPTS = 0x36 - IPV6_TCLASS = 0x43 - IPV6_UNICAST_HOPS = 0x10 - IPV6_V6ONLY = 0x1a - IPV6_XFRM_POLICY = 0x23 - IP_ADD_MEMBERSHIP = 0x23 - IP_ADD_SOURCE_MEMBERSHIP = 0x27 - IP_BIND_ADDRESS_NO_PORT = 0x18 - IP_BLOCK_SOURCE = 0x26 - IP_CHECKSUM = 0x17 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0x24 - IP_DROP_SOURCE_MEMBERSHIP = 0x28 - IP_FREEBIND = 0xf - IP_HDRINCL = 0x3 - IP_IPSEC_POLICY = 0x10 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINTTL = 0x15 - IP_MSFILTER = 0x29 - IP_MSS = 0x240 - IP_MTU = 0xe - IP_MTU_DISCOVER = 0xa - IP_MULTICAST_ALL = 0x31 - IP_MULTICAST_IF = 0x20 - IP_MULTICAST_LOOP = 0x22 - IP_MULTICAST_TTL = 0x21 - IP_NODEFRAG = 0x16 - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x4 - IP_ORIGDSTADDR = 0x14 - IP_PASSSEC = 0x12 - IP_PKTINFO = 0x8 - IP_PKTOPTIONS = 0x9 - IP_PMTUDISC = 0xa - IP_PMTUDISC_DO = 0x2 - IP_PMTUDISC_DONT = 0x0 - IP_PMTUDISC_INTERFACE = 0x4 - IP_PMTUDISC_OMIT = 0x5 - IP_PMTUDISC_PROBE = 0x3 - IP_PMTUDISC_WANT = 0x1 - IP_RECVERR = 0xb - IP_RECVOPTS = 0x6 - IP_RECVORIGDSTADDR = 0x14 - IP_RECVRETOPTS = 0x7 - IP_RECVTOS = 0xd - IP_RECVTTL = 0xc - IP_RETOPTS = 0x7 - IP_RF = 0x8000 - IP_ROUTER_ALERT = 0x5 - IP_TOS = 0x1 - IP_TRANSPARENT = 0x13 - IP_TTL = 0x2 - IP_UNBLOCK_SOURCE = 0x25 - IP_UNICAST_IF = 0x32 - IP_XFRM_POLICY = 0x11 - ISIG = 0x1 - ISTRIP = 0x20 - IUCLC = 0x200 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x1000 - IXON = 0x400 - KEYCTL_ASSUME_AUTHORITY = 0x10 - KEYCTL_CHOWN = 0x4 - KEYCTL_CLEAR = 0x7 - KEYCTL_DESCRIBE = 0x6 - KEYCTL_DH_COMPUTE = 0x17 - KEYCTL_GET_KEYRING_ID = 0x0 - KEYCTL_GET_PERSISTENT = 0x16 - KEYCTL_GET_SECURITY = 0x11 - KEYCTL_INSTANTIATE = 0xc - KEYCTL_INSTANTIATE_IOV = 0x14 - KEYCTL_INVALIDATE = 0x15 - KEYCTL_JOIN_SESSION_KEYRING = 0x1 - KEYCTL_LINK = 0x8 - KEYCTL_NEGATE = 0xd - KEYCTL_READ = 0xb - KEYCTL_REJECT = 0x13 - KEYCTL_REVOKE = 0x3 - KEYCTL_SEARCH = 0xa - KEYCTL_SESSION_TO_PARENT = 0x12 - KEYCTL_SETPERM = 0x5 - KEYCTL_SET_REQKEY_KEYRING = 0xe - KEYCTL_SET_TIMEOUT = 0xf - KEYCTL_UNLINK = 0x9 - KEYCTL_UPDATE = 0x2 - KEY_REQKEY_DEFL_DEFAULT = 0x0 - KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 - KEY_REQKEY_DEFL_NO_CHANGE = -0x1 - KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 - KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 - KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 - KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 - KEY_REQKEY_DEFL_USER_KEYRING = 0x4 - KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 - KEY_SPEC_GROUP_KEYRING = -0x6 - KEY_SPEC_PROCESS_KEYRING = -0x2 - KEY_SPEC_REQKEY_AUTH_KEY = -0x7 - KEY_SPEC_REQUESTOR_KEYRING = -0x8 - KEY_SPEC_SESSION_KEYRING = -0x3 - KEY_SPEC_THREAD_KEYRING = -0x1 - KEY_SPEC_USER_KEYRING = -0x4 - KEY_SPEC_USER_SESSION_KEYRING = -0x5 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef - LINUX_REBOOT_CMD_HALT = 0xcdef0123 - LINUX_REBOOT_CMD_KEXEC = 0x45584543 - LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc - LINUX_REBOOT_CMD_RESTART = 0x1234567 - LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 - LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 - LINUX_REBOOT_MAGIC1 = 0xfee1dead - LINUX_REBOOT_MAGIC2 = 0x28121969 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DODUMP = 0x11 - MADV_DOFORK = 0xb - MADV_DONTDUMP = 0x10 - MADV_DONTFORK = 0xa - MADV_DONTNEED = 0x4 - MADV_FREE = 0x8 - MADV_HUGEPAGE = 0xe - MADV_HWPOISON = 0x64 - MADV_MERGEABLE = 0xc - MADV_NOHUGEPAGE = 0xf - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_REMOVE = 0x9 - MADV_SEQUENTIAL = 0x2 - MADV_UNMERGEABLE = 0xd - MADV_WILLNEED = 0x3 - MAP_ANON = 0x800 - MAP_ANONYMOUS = 0x800 - MAP_DENYWRITE = 0x2000 - MAP_EXECUTABLE = 0x4000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_GROWSDOWN = 0x1000 - MAP_HUGETLB = 0x80000 - MAP_HUGE_MASK = 0x3f - MAP_HUGE_SHIFT = 0x1a - MAP_LOCKED = 0x8000 - MAP_NONBLOCK = 0x20000 - MAP_NORESERVE = 0x400 - MAP_POPULATE = 0x10000 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x800 - MAP_SHARED = 0x1 - MAP_STACK = 0x40000 - MAP_TYPE = 0xf - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - MSG_BATCH = 0x40000 - MSG_CMSG_CLOEXEC = 0x40000000 - MSG_CONFIRM = 0x800 - MSG_CTRUNC = 0x8 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x40 - MSG_EOR = 0x80 - MSG_ERRQUEUE = 0x2000 - MSG_FASTOPEN = 0x20000000 - MSG_FIN = 0x200 - MSG_MORE = 0x8000 - MSG_NOSIGNAL = 0x4000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_PROXY = 0x10 - MSG_RST = 0x1000 - MSG_SYN = 0x400 - MSG_TRUNC = 0x20 - MSG_TRYHARD = 0x4 - MSG_WAITALL = 0x100 - MSG_WAITFORONE = 0x10000 - MS_ACTIVE = 0x40000000 - MS_ASYNC = 0x1 - MS_BIND = 0x1000 - MS_BORN = 0x20000000 - MS_DIRSYNC = 0x80 - MS_INVALIDATE = 0x2 - MS_I_VERSION = 0x800000 - MS_KERNMOUNT = 0x400000 - MS_LAZYTIME = 0x2000000 - MS_MANDLOCK = 0x40 - MS_MGC_MSK = 0xffff0000 - MS_MGC_VAL = 0xc0ed0000 - MS_MOVE = 0x2000 - MS_NOATIME = 0x400 - MS_NODEV = 0x4 - MS_NODIRATIME = 0x800 - MS_NOEXEC = 0x8 - MS_NOREMOTELOCK = 0x8000000 - MS_NOSEC = 0x10000000 - MS_NOSUID = 0x2 - MS_NOUSER = -0x80000000 - MS_POSIXACL = 0x10000 - MS_PRIVATE = 0x40000 - MS_RDONLY = 0x1 - MS_REC = 0x4000 - MS_RELATIME = 0x200000 - MS_REMOUNT = 0x20 - MS_RMT_MASK = 0x2800051 - MS_SHARED = 0x100000 - MS_SILENT = 0x8000 - MS_SLAVE = 0x80000 - MS_STRICTATIME = 0x1000000 - MS_SYNC = 0x4 - MS_SYNCHRONOUS = 0x10 - MS_UNBINDABLE = 0x20000 - MS_VERBOSE = 0x8000 - NAME_MAX = 0xff - NETLINK_ADD_MEMBERSHIP = 0x1 - NETLINK_AUDIT = 0x9 - NETLINK_BROADCAST_ERROR = 0x4 - NETLINK_CAP_ACK = 0xa - NETLINK_CONNECTOR = 0xb - NETLINK_CRYPTO = 0x15 - NETLINK_DNRTMSG = 0xe - NETLINK_DROP_MEMBERSHIP = 0x2 - NETLINK_ECRYPTFS = 0x13 - NETLINK_FIB_LOOKUP = 0xa - NETLINK_FIREWALL = 0x3 - NETLINK_GENERIC = 0x10 - NETLINK_INET_DIAG = 0x4 - NETLINK_IP6_FW = 0xd - NETLINK_ISCSI = 0x8 - NETLINK_KOBJECT_UEVENT = 0xf - NETLINK_LISTEN_ALL_NSID = 0x8 - NETLINK_LIST_MEMBERSHIPS = 0x9 - NETLINK_NETFILTER = 0xc - NETLINK_NFLOG = 0x5 - NETLINK_NO_ENOBUFS = 0x5 - NETLINK_PKTINFO = 0x3 - NETLINK_RDMA = 0x14 - NETLINK_ROUTE = 0x0 - NETLINK_RX_RING = 0x6 - NETLINK_SCSITRANSPORT = 0x12 - NETLINK_SELINUX = 0x7 - NETLINK_SOCK_DIAG = 0x4 - NETLINK_TX_RING = 0x7 - NETLINK_UNUSED = 0x1 - NETLINK_USERSOCK = 0x2 - NETLINK_XFRM = 0x6 - NL0 = 0x0 - NL1 = 0x100 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - NLDLY = 0x100 - NLMSG_ALIGNTO = 0x4 - NLMSG_DONE = 0x3 - NLMSG_ERROR = 0x2 - NLMSG_HDRLEN = 0x10 - NLMSG_MIN_TYPE = 0x10 - NLMSG_NOOP = 0x1 - NLMSG_OVERRUN = 0x4 - NLM_F_ACK = 0x4 - NLM_F_APPEND = 0x800 - NLM_F_ATOMIC = 0x400 - NLM_F_CREATE = 0x400 - NLM_F_DUMP = 0x300 - NLM_F_DUMP_FILTERED = 0x20 - NLM_F_DUMP_INTR = 0x10 - NLM_F_ECHO = 0x8 - NLM_F_EXCL = 0x200 - NLM_F_MATCH = 0x200 - NLM_F_MULTI = 0x2 - NLM_F_REPLACE = 0x100 - NLM_F_REQUEST = 0x1 - NLM_F_ROOT = 0x100 - NOFLSH = 0x80 - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x2 - ONLCR = 0x4 - ONLRET = 0x20 - ONOCR = 0x10 - OPOST = 0x1 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x1000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x100 - O_DIRECT = 0x8000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x10 - O_EXCL = 0x400 - O_FSYNC = 0x4010 - O_LARGEFILE = 0x2000 - O_NDELAY = 0x80 - O_NOATIME = 0x40000 - O_NOCTTY = 0x800 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x80 - O_PATH = 0x200000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x4010 - O_SYNC = 0x4010 - O_TMPFILE = 0x410000 - O_TRUNC = 0x200 - O_WRONLY = 0x1 - PACKET_ADD_MEMBERSHIP = 0x1 - PACKET_AUXDATA = 0x8 - PACKET_BROADCAST = 0x1 - PACKET_COPY_THRESH = 0x7 - PACKET_DROP_MEMBERSHIP = 0x2 - PACKET_FANOUT = 0x12 - PACKET_FANOUT_CBPF = 0x6 - PACKET_FANOUT_CPU = 0x2 - PACKET_FANOUT_DATA = 0x16 - PACKET_FANOUT_EBPF = 0x7 - PACKET_FANOUT_FLAG_DEFRAG = 0x8000 - PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 - PACKET_FANOUT_HASH = 0x0 - PACKET_FANOUT_LB = 0x1 - PACKET_FANOUT_QM = 0x5 - PACKET_FANOUT_RND = 0x4 - PACKET_FANOUT_ROLLOVER = 0x3 - PACKET_FASTROUTE = 0x6 - PACKET_HDRLEN = 0xb - PACKET_HOST = 0x0 - PACKET_KERNEL = 0x7 - PACKET_LOOPBACK = 0x5 - PACKET_LOSS = 0xe - PACKET_MR_ALLMULTI = 0x2 - PACKET_MR_MULTICAST = 0x0 - PACKET_MR_PROMISC = 0x1 - PACKET_MR_UNICAST = 0x3 - PACKET_MULTICAST = 0x2 - PACKET_ORIGDEV = 0x9 - PACKET_OTHERHOST = 0x3 - PACKET_OUTGOING = 0x4 - PACKET_QDISC_BYPASS = 0x14 - PACKET_RECV_OUTPUT = 0x3 - PACKET_RESERVE = 0xc - PACKET_ROLLOVER_STATS = 0x15 - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - PACKET_TIMESTAMP = 0x11 - PACKET_TX_HAS_OFF = 0x13 - PACKET_TX_RING = 0xd - PACKET_TX_TIMESTAMP = 0x10 - PACKET_USER = 0x6 - PACKET_VERSION = 0xa - PACKET_VNET_HDR = 0xf - PARENB = 0x100 - PARITY_CRC16_PR0 = 0x2 - PARITY_CRC16_PR0_CCITT = 0x4 - PARITY_CRC16_PR1 = 0x3 - PARITY_CRC16_PR1_CCITT = 0x5 - PARITY_CRC32_PR0_CCITT = 0x6 - PARITY_CRC32_PR1_CCITT = 0x7 - PARITY_DEFAULT = 0x0 - PARITY_NONE = 0x1 - PARMRK = 0x8 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x20002401 - PERF_EVENT_IOC_ENABLE = 0x20002400 - PERF_EVENT_IOC_ID = 0x40042407 - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 - PERF_EVENT_IOC_PERIOD = 0x80082404 - PERF_EVENT_IOC_REFRESH = 0x20002402 - PERF_EVENT_IOC_RESET = 0x20002403 - PERF_EVENT_IOC_SET_BPF = 0x80042408 - PERF_EVENT_IOC_SET_FILTER = 0x80042406 - PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_GROWSDOWN = 0x1000000 - PROT_GROWSUP = 0x2000000 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PR_CAPBSET_DROP = 0x18 - PR_CAPBSET_READ = 0x17 - PR_CAP_AMBIENT = 0x2f - PR_CAP_AMBIENT_CLEAR_ALL = 0x4 - PR_CAP_AMBIENT_IS_SET = 0x1 - PR_CAP_AMBIENT_LOWER = 0x3 - PR_CAP_AMBIENT_RAISE = 0x2 - PR_ENDIAN_BIG = 0x0 - PR_ENDIAN_LITTLE = 0x1 - PR_ENDIAN_PPC_LITTLE = 0x2 - PR_FPEMU_NOPRINT = 0x1 - PR_FPEMU_SIGFPE = 0x2 - PR_FP_EXC_ASYNC = 0x2 - PR_FP_EXC_DISABLED = 0x0 - PR_FP_EXC_DIV = 0x10000 - PR_FP_EXC_INV = 0x100000 - PR_FP_EXC_NONRECOV = 0x1 - PR_FP_EXC_OVF = 0x20000 - PR_FP_EXC_PRECISE = 0x3 - PR_FP_EXC_RES = 0x80000 - PR_FP_EXC_SW_ENABLE = 0x80 - PR_FP_EXC_UND = 0x40000 - PR_FP_MODE_FR = 0x1 - PR_FP_MODE_FRE = 0x2 - PR_GET_CHILD_SUBREAPER = 0x25 - PR_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - PR_GET_FP_MODE = 0x2e - PR_GET_KEEPCAPS = 0x7 - PR_GET_NAME = 0x10 - PR_GET_NO_NEW_PRIVS = 0x27 - PR_GET_PDEATHSIG = 0x2 - PR_GET_SECCOMP = 0x15 - PR_GET_SECUREBITS = 0x1b - PR_GET_THP_DISABLE = 0x2a - PR_GET_TID_ADDRESS = 0x28 - PR_GET_TIMERSLACK = 0x1e - PR_GET_TIMING = 0xd - PR_GET_TSC = 0x19 - PR_GET_UNALIGN = 0x5 - PR_MCE_KILL = 0x21 - PR_MCE_KILL_CLEAR = 0x0 - PR_MCE_KILL_DEFAULT = 0x2 - PR_MCE_KILL_EARLY = 0x1 - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_SET_CHILD_SUBREAPER = 0x24 - PR_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - PR_SET_FP_MODE = 0x2d - PR_SET_KEEPCAPS = 0x8 - PR_SET_MM = 0x23 - PR_SET_MM_ARG_END = 0x9 - PR_SET_MM_ARG_START = 0x8 - PR_SET_MM_AUXV = 0xc - PR_SET_MM_BRK = 0x7 - PR_SET_MM_END_CODE = 0x2 - PR_SET_MM_END_DATA = 0x4 - PR_SET_MM_ENV_END = 0xb - PR_SET_MM_ENV_START = 0xa - PR_SET_MM_EXE_FILE = 0xd - PR_SET_MM_MAP = 0xe - PR_SET_MM_MAP_SIZE = 0xf - PR_SET_MM_START_BRK = 0x6 - PR_SET_MM_START_CODE = 0x1 - PR_SET_MM_START_DATA = 0x3 - PR_SET_MM_START_STACK = 0x5 - PR_SET_NAME = 0xf - PR_SET_NO_NEW_PRIVS = 0x26 - PR_SET_PDEATHSIG = 0x1 - PR_SET_PTRACER = 0x59616d61 - PR_SET_PTRACER_ANY = 0xffffffff - PR_SET_SECCOMP = 0x16 - PR_SET_SECUREBITS = 0x1c - PR_SET_THP_DISABLE = 0x29 - PR_SET_TIMERSLACK = 0x1d - PR_SET_TIMING = 0xe - PR_SET_TSC = 0x1a - PR_SET_UNALIGN = 0x6 - PR_TASK_PERF_EVENTS_DISABLE = 0x1f - PR_TASK_PERF_EVENTS_ENABLE = 0x20 - PR_TIMING_STATISTICAL = 0x0 - PR_TIMING_TIMESTAMP = 0x1 - PR_TSC_ENABLE = 0x1 - PR_TSC_SIGSEGV = 0x2 - PR_UNALIGN_NOPRINT = 0x1 - PR_UNALIGN_SIGBUS = 0x2 - PTRACE_ATTACH = 0x10 - PTRACE_CONT = 0x7 - PTRACE_DETACH = 0x11 - PTRACE_EVENT_CLONE = 0x3 - PTRACE_EVENT_EXEC = 0x4 - PTRACE_EVENT_EXIT = 0x6 - PTRACE_EVENT_FORK = 0x1 - PTRACE_EVENT_SECCOMP = 0x7 - PTRACE_EVENT_STOP = 0x80 - PTRACE_EVENT_VFORK = 0x2 - PTRACE_EVENT_VFORK_DONE = 0x5 - PTRACE_GETEVENTMSG = 0x4201 - PTRACE_GETFPREGS = 0xe - PTRACE_GETREGS = 0xc - PTRACE_GETREGSET = 0x4204 - PTRACE_GETSIGINFO = 0x4202 - PTRACE_GETSIGMASK = 0x420a - PTRACE_GET_THREAD_AREA = 0x19 - PTRACE_GET_THREAD_AREA_3264 = 0xc4 - PTRACE_GET_WATCH_REGS = 0xd0 - PTRACE_INTERRUPT = 0x4207 - PTRACE_KILL = 0x8 - PTRACE_LISTEN = 0x4208 - PTRACE_OLDSETOPTIONS = 0x15 - PTRACE_O_EXITKILL = 0x100000 - PTRACE_O_MASK = 0x3000ff - PTRACE_O_SUSPEND_SECCOMP = 0x200000 - PTRACE_O_TRACECLONE = 0x8 - PTRACE_O_TRACEEXEC = 0x10 - PTRACE_O_TRACEEXIT = 0x40 - PTRACE_O_TRACEFORK = 0x2 - PTRACE_O_TRACESECCOMP = 0x80 - PTRACE_O_TRACESYSGOOD = 0x1 - PTRACE_O_TRACEVFORK = 0x4 - PTRACE_O_TRACEVFORKDONE = 0x20 - PTRACE_PEEKDATA = 0x2 - PTRACE_PEEKDATA_3264 = 0xc1 - PTRACE_PEEKSIGINFO = 0x4209 - PTRACE_PEEKSIGINFO_SHARED = 0x1 - PTRACE_PEEKTEXT = 0x1 - PTRACE_PEEKTEXT_3264 = 0xc0 - PTRACE_PEEKUSR = 0x3 - PTRACE_POKEDATA = 0x5 - PTRACE_POKEDATA_3264 = 0xc3 - PTRACE_POKETEXT = 0x4 - PTRACE_POKETEXT_3264 = 0xc2 - PTRACE_POKEUSR = 0x6 - PTRACE_SECCOMP_GET_FILTER = 0x420c - PTRACE_SEIZE = 0x4206 - PTRACE_SETFPREGS = 0xf - PTRACE_SETOPTIONS = 0x4200 - PTRACE_SETREGS = 0xd - PTRACE_SETREGSET = 0x4205 - PTRACE_SETSIGINFO = 0x4203 - PTRACE_SETSIGMASK = 0x420b - PTRACE_SET_THREAD_AREA = 0x1a - PTRACE_SET_WATCH_REGS = 0xd1 - PTRACE_SINGLESTEP = 0x9 - PTRACE_SYSCALL = 0x18 - PTRACE_TRACEME = 0x0 - RLIMIT_AS = 0x6 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_LOCKS = 0xa - RLIMIT_MEMLOCK = 0x9 - RLIMIT_MSGQUEUE = 0xc - RLIMIT_NICE = 0xd - RLIMIT_NOFILE = 0x5 - RLIMIT_NPROC = 0x8 - RLIMIT_RSS = 0x7 - RLIMIT_RTPRIO = 0xe - RLIMIT_RTTIME = 0xf - RLIMIT_SIGPENDING = 0xb - RLIMIT_STACK = 0x3 - RLIM_INFINITY = -0x1 - RTAX_ADVMSS = 0x8 - RTAX_CC_ALGO = 0x10 - RTAX_CWND = 0x7 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_MASK = 0xf - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0x10 - RTAX_MTU = 0x2 - RTAX_QUICKACK = 0xf - RTAX_REORDERING = 0x9 - RTAX_RTO_MIN = 0xd - RTAX_RTT = 0x4 - RTAX_RTTVAR = 0x5 - RTAX_SSTHRESH = 0x6 - RTAX_UNSPEC = 0x0 - RTAX_WINDOW = 0x3 - RTA_ALIGNTO = 0x4 - RTA_MAX = 0x19 - RTCF_DIRECTSRC = 0x4000000 - RTCF_DOREDIRECT = 0x1000000 - RTCF_LOG = 0x2000000 - RTCF_MASQ = 0x400000 - RTCF_NAT = 0x800000 - RTCF_VALVE = 0x200000 - RTF_ADDRCLASSMASK = 0xf8000000 - RTF_ADDRCONF = 0x40000 - RTF_ALLONLINK = 0x20000 - RTF_BROADCAST = 0x10000000 - RTF_CACHE = 0x1000000 - RTF_DEFAULT = 0x10000 - RTF_DYNAMIC = 0x10 - RTF_FLOW = 0x2000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_INTERFACE = 0x40000000 - RTF_IRTT = 0x100 - RTF_LINKRT = 0x100000 - RTF_LOCAL = 0x80000000 - RTF_MODIFIED = 0x20 - RTF_MSS = 0x40 - RTF_MTU = 0x40 - RTF_MULTICAST = 0x20000000 - RTF_NAT = 0x8000000 - RTF_NOFORWARD = 0x1000 - RTF_NONEXTHOP = 0x200000 - RTF_NOPMTUDISC = 0x4000 - RTF_POLICY = 0x4000000 - RTF_REINSTATE = 0x8 - RTF_REJECT = 0x200 - RTF_STATIC = 0x400 - RTF_THROW = 0x2000 - RTF_UP = 0x1 - RTF_WINDOW = 0x80 - RTF_XRESOLVE = 0x800 - RTM_BASE = 0x10 - RTM_DELACTION = 0x31 - RTM_DELADDR = 0x15 - RTM_DELADDRLABEL = 0x49 - RTM_DELLINK = 0x11 - RTM_DELMDB = 0x55 - RTM_DELNEIGH = 0x1d - RTM_DELNSID = 0x59 - RTM_DELQDISC = 0x25 - RTM_DELROUTE = 0x19 - RTM_DELRULE = 0x21 - RTM_DELTCLASS = 0x29 - RTM_DELTFILTER = 0x2d - RTM_F_CLONED = 0x200 - RTM_F_EQUALIZE = 0x400 - RTM_F_LOOKUP_TABLE = 0x1000 - RTM_F_NOTIFY = 0x100 - RTM_F_PREFIX = 0x800 - RTM_GETACTION = 0x32 - RTM_GETADDR = 0x16 - RTM_GETADDRLABEL = 0x4a - RTM_GETANYCAST = 0x3e - RTM_GETDCB = 0x4e - RTM_GETLINK = 0x12 - RTM_GETMDB = 0x56 - RTM_GETMULTICAST = 0x3a - RTM_GETNEIGH = 0x1e - RTM_GETNEIGHTBL = 0x42 - RTM_GETNETCONF = 0x52 - RTM_GETNSID = 0x5a - RTM_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETSTATS = 0x5e - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_MAX = 0x5f - RTM_NEWACTION = 0x30 - RTM_NEWADDR = 0x14 - RTM_NEWADDRLABEL = 0x48 - RTM_NEWLINK = 0x10 - RTM_NEWMDB = 0x54 - RTM_NEWNDUSEROPT = 0x44 - RTM_NEWNEIGH = 0x1c - RTM_NEWNEIGHTBL = 0x40 - RTM_NEWNETCONF = 0x50 - RTM_NEWNSID = 0x58 - RTM_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWSTATS = 0x5c - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NR_FAMILIES = 0x14 - RTM_NR_MSGTYPES = 0x50 - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTNH_ALIGNTO = 0x4 - RTNH_COMPARE_MASK = 0x19 - RTNH_F_DEAD = 0x1 - RTNH_F_LINKDOWN = 0x10 - RTNH_F_OFFLOAD = 0x8 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTN_MAX = 0xb - RTPROT_BABEL = 0x2a - RTPROT_BIRD = 0xc - RTPROT_BOOT = 0x3 - RTPROT_DHCP = 0x10 - RTPROT_DNROUTED = 0xd - RTPROT_GATED = 0x8 - RTPROT_KERNEL = 0x2 - RTPROT_MROUTED = 0x11 - RTPROT_MRT = 0xa - RTPROT_NTK = 0xf - RTPROT_RA = 0x9 - RTPROT_REDIRECT = 0x1 - RTPROT_STATIC = 0x4 - RTPROT_UNSPEC = 0x0 - RTPROT_XORP = 0xe - RTPROT_ZEBRA = 0xb - RT_CLASS_DEFAULT = 0xfd - RT_CLASS_LOCAL = 0xff - RT_CLASS_MAIN = 0xfe - RT_CLASS_MAX = 0xff - RT_CLASS_UNSPEC = 0x0 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_CREDENTIALS = 0x2 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPNS = 0x23 - SCM_WIFI_STATUS = 0x29 - SECCOMP_MODE_DISABLED = 0x0 - SECCOMP_MODE_FILTER = 0x2 - SECCOMP_MODE_STRICT = 0x1 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCATMARK = 0x40047307 - SIOCBONDCHANGEACTIVE = 0x8995 - SIOCBONDENSLAVE = 0x8990 - SIOCBONDINFOQUERY = 0x8994 - SIOCBONDRELEASE = 0x8991 - SIOCBONDSETHWADDR = 0x8992 - SIOCBONDSLAVEINFOQUERY = 0x8993 - SIOCBRADDBR = 0x89a0 - SIOCBRADDIF = 0x89a2 - SIOCBRDELBR = 0x89a1 - SIOCBRDELIF = 0x89a3 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCETHTOOL = 0x8946 - SIOCGARP = 0x8954 - SIOCGHWTSTAMP = 0x89b1 - SIOCGIFADDR = 0x8915 - SIOCGIFBR = 0x8940 - SIOCGIFBRDADDR = 0x8919 - SIOCGIFCONF = 0x8912 - SIOCGIFCOUNT = 0x8938 - SIOCGIFDSTADDR = 0x8917 - SIOCGIFENCAP = 0x8925 - SIOCGIFFLAGS = 0x8913 - SIOCGIFHWADDR = 0x8927 - SIOCGIFINDEX = 0x8933 - SIOCGIFMAP = 0x8970 - SIOCGIFMEM = 0x891f - SIOCGIFMETRIC = 0x891d - SIOCGIFMTU = 0x8921 - SIOCGIFNAME = 0x8910 - SIOCGIFNETMASK = 0x891b - SIOCGIFPFLAGS = 0x8935 - SIOCGIFSLAVE = 0x8929 - SIOCGIFTXQLEN = 0x8942 - SIOCGIFVLAN = 0x8982 - SIOCGMIIPHY = 0x8947 - SIOCGMIIREG = 0x8948 - SIOCGPGRP = 0x40047309 - SIOCGRARP = 0x8961 - SIOCGSKNS = 0x894c - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCINQ = 0x467f - SIOCOUTQ = 0x7472 - SIOCOUTQNSD = 0x894b - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - SIOCSHWTSTAMP = 0x89b0 - SIOCSIFADDR = 0x8916 - SIOCSIFBR = 0x8941 - SIOCSIFBRDADDR = 0x891a - SIOCSIFDSTADDR = 0x8918 - SIOCSIFENCAP = 0x8926 - SIOCSIFFLAGS = 0x8914 - SIOCSIFHWADDR = 0x8924 - SIOCSIFHWBROADCAST = 0x8937 - SIOCSIFLINK = 0x8911 - SIOCSIFMAP = 0x8971 - SIOCSIFMEM = 0x8920 - SIOCSIFMETRIC = 0x891e - SIOCSIFMTU = 0x8922 - SIOCSIFNAME = 0x8923 - SIOCSIFNETMASK = 0x891c - SIOCSIFPFLAGS = 0x8934 - SIOCSIFSLAVE = 0x8930 - SIOCSIFTXQLEN = 0x8943 - SIOCSIFVLAN = 0x8983 - SIOCSMIIREG = 0x8949 - SIOCSPGRP = 0x80047308 - SIOCSRARP = 0x8962 - SIOCWANDEV = 0x894a - SOCK_CLOEXEC = 0x80000 - SOCK_DCCP = 0x6 - SOCK_DGRAM = 0x1 - SOCK_IOC_TYPE = 0x89 - SOCK_NONBLOCK = 0x80 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x2 - SOL_AAL = 0x109 - SOL_ALG = 0x117 - SOL_ATM = 0x108 - SOL_CAIF = 0x116 - SOL_CAN_BASE = 0x64 - SOL_DCCP = 0x10d - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_IUCV = 0x115 - SOL_KCM = 0x119 - SOL_LLC = 0x10c - SOL_NETBEUI = 0x10b - SOL_NETLINK = 0x10e - SOL_NFC = 0x118 - SOL_PACKET = 0x107 - SOL_PNPIPE = 0x113 - SOL_PPPOL2TP = 0x111 - SOL_RAW = 0xff - SOL_RDS = 0x114 - SOL_RXRPC = 0x110 - SOL_SOCKET = 0xffff - SOL_TCP = 0x6 - SOL_TIPC = 0x10f - SOL_X25 = 0x106 - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x1009 - SO_ATTACH_BPF = 0x32 - SO_ATTACH_FILTER = 0x1a - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x20 - SO_BSDCOMPAT = 0xe - SO_BUSY_POLL = 0x2e - SO_CNX_ADVICE = 0x35 - SO_DEBUG = 0x1 - SO_DETACH_BPF = 0x1b - SO_DETACH_FILTER = 0x1b - SO_DOMAIN = 0x1029 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_GET_FILTER = 0x1a - SO_INCOMING_CPU = 0x31 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_NOFCS = 0x2b - SO_NO_CHECK = 0xb - SO_OOBINLINE = 0x100 - SO_PASSCRED = 0x11 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x12 - SO_PEERNAME = 0x1c - SO_PEERSEC = 0x1e - SO_PRIORITY = 0xc - SO_PROTOCOL = 0x1028 - SO_RCVBUF = 0x1002 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x1001 - SO_SNDBUFFORCE = 0x1f - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_STYLE = 0x1008 - SO_TIMESTAMP = 0x1d - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TYPE = 0x1008 - SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 - SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 - SO_VM_SOCKETS_BUFFER_SIZE = 0x0 - SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 - SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 - SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 - SO_VM_SOCKETS_TRUSTED = 0x5 - SO_WIFI_STATUS = 0x29 - SPLICE_F_GIFT = 0x8 - SPLICE_F_MORE = 0x4 - SPLICE_F_MOVE = 0x1 - SPLICE_F_NONBLOCK = 0x2 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TASKSTATS_CMD_ATTR_MAX = 0x4 - TASKSTATS_CMD_MAX = 0x2 - TASKSTATS_GENL_NAME = "TASKSTATS" - TASKSTATS_GENL_VERSION = 0x1 - TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x8 - TCFLSH = 0x5407 - TCGETA = 0x5401 - TCGETS = 0x540d - TCGETS2 = 0x4030542a - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_CC_INFO = 0x1a - TCP_CONGESTION = 0xd - TCP_COOKIE_IN_ALWAYS = 0x1 - TCP_COOKIE_MAX = 0x10 - TCP_COOKIE_MIN = 0x8 - TCP_COOKIE_OUT_NEVER = 0x2 - TCP_COOKIE_PAIR_SIZE = 0x20 - TCP_COOKIE_TRANSACTIONS = 0xf - TCP_CORK = 0x3 - TCP_DEFER_ACCEPT = 0x9 - TCP_FASTOPEN = 0x17 - TCP_INFO = 0xb - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x4 - TCP_KEEPINTVL = 0x5 - TCP_LINGER2 = 0x8 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0xe - TCP_MD5SIG_MAXKEYLEN = 0x50 - TCP_MSS = 0x200 - TCP_MSS_DEFAULT = 0x218 - TCP_MSS_DESIRED = 0x4c4 - TCP_NODELAY = 0x1 - TCP_NOTSENT_LOWAT = 0x19 - TCP_QUEUE_SEQ = 0x15 - TCP_QUICKACK = 0xc - TCP_REPAIR = 0x13 - TCP_REPAIR_OPTIONS = 0x16 - TCP_REPAIR_QUEUE = 0x14 - TCP_REPAIR_WINDOW = 0x1d - TCP_SAVED_SYN = 0x1c - TCP_SAVE_SYN = 0x1b - TCP_SYNCNT = 0x7 - TCP_S_DATA_IN = 0x4 - TCP_S_DATA_OUT = 0x8 - TCP_THIN_DUPACK = 0x11 - TCP_THIN_LINEAR_TIMEOUTS = 0x10 - TCP_TIMESTAMP = 0x18 - TCP_USER_TIMEOUT = 0x12 - TCP_WINDOW_CLAMP = 0xa - TCSAFLUSH = 0x5410 - TCSBRK = 0x5405 - TCSBRKP = 0x5486 - TCSETA = 0x5402 - TCSETAF = 0x5404 - TCSETAW = 0x5403 - TCSETS = 0x540e - TCSETS2 = 0x8030542b - TCSETSF = 0x5410 - TCSETSF2 = 0x8030542d - TCSETSW = 0x540f - TCSETSW2 = 0x8030542c - TCXONC = 0x5406 - TIOCCBRK = 0x5428 - TIOCCONS = 0x80047478 - TIOCEXCL = 0x740d - TIOCGDEV = 0x40045432 - TIOCGETD = 0x7400 - TIOCGETP = 0x7408 - TIOCGEXCL = 0x40045440 - TIOCGICOUNT = 0x5492 - TIOCGLCKTRMIOS = 0x548b - TIOCGLTC = 0x7474 - TIOCGPGRP = 0x40047477 - TIOCGPKT = 0x40045438 - TIOCGPTLCK = 0x40045439 - TIOCGPTN = 0x40045430 - TIOCGRS485 = 0x4020542e - TIOCGSERIAL = 0x5484 - TIOCGSID = 0x7416 - TIOCGSOFTCAR = 0x5481 - TIOCGWINSZ = 0x40087468 - TIOCINQ = 0x467f - TIOCLINUX = 0x5483 - TIOCMBIC = 0x741c - TIOCMBIS = 0x741b - TIOCMGET = 0x741d - TIOCMIWAIT = 0x5491 - TIOCMSET = 0x741a - TIOCM_CAR = 0x100 - TIOCM_CD = 0x100 - TIOCM_CTS = 0x40 - TIOCM_DSR = 0x400 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x200 - TIOCM_RNG = 0x200 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x20 - TIOCM_ST = 0x10 - TIOCNOTTY = 0x5471 - TIOCNXCL = 0x740e - TIOCOUTQ = 0x7472 - TIOCPKT = 0x5470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x5480 - TIOCSERCONFIG = 0x5488 - TIOCSERGETLSR = 0x548e - TIOCSERGETMULTI = 0x548f - TIOCSERGSTRUCT = 0x548d - TIOCSERGWILD = 0x5489 - TIOCSERSETMULTI = 0x5490 - TIOCSERSWILD = 0x548a - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x7401 - TIOCSETN = 0x740a - TIOCSETP = 0x7409 - TIOCSIG = 0x80045436 - TIOCSLCKTRMIOS = 0x548c - TIOCSLTC = 0x7475 - TIOCSPGRP = 0x80047476 - TIOCSPTLCK = 0x80045431 - TIOCSRS485 = 0xc020542f - TIOCSSERIAL = 0x5485 - TIOCSSOFTCAR = 0x5482 - TIOCSTI = 0x5472 - TIOCSWINSZ = 0x80087467 - TIOCVHANGUP = 0x5437 - TOSTOP = 0x8000 - TS_COMM_LEN = 0x20 - TUNATTACHFILTER = 0x800854d5 - TUNDETACHFILTER = 0x800854d6 - TUNGETFEATURES = 0x400454cf - TUNGETFILTER = 0x400854db - TUNGETIFF = 0x400454d2 - TUNGETSNDBUF = 0x400454d3 - TUNGETVNETBE = 0x400454df - TUNGETVNETHDRSZ = 0x400454d7 - TUNGETVNETLE = 0x400454dd - TUNSETDEBUG = 0x800454c9 - TUNSETGROUP = 0x800454ce - TUNSETIFF = 0x800454ca - TUNSETIFINDEX = 0x800454da - TUNSETLINK = 0x800454cd - TUNSETNOCSUM = 0x800454c8 - TUNSETOFFLOAD = 0x800454d0 - TUNSETOWNER = 0x800454cc - TUNSETPERSIST = 0x800454cb - TUNSETQUEUE = 0x800454d9 - TUNSETSNDBUF = 0x800454d4 - TUNSETTXFILTER = 0x800454d1 - TUNSETVNETBE = 0x800454de - TUNSETVNETHDRSZ = 0x800454d8 - TUNSETVNETLE = 0x800454dc - UMOUNT_NOFOLLOW = 0x8 - VDISCARD = 0xd - VEOF = 0x10 - VEOL = 0x11 - VEOL2 = 0x6 - VERASE = 0x2 - VINTR = 0x0 - VKILL = 0x3 - VLNEXT = 0xf - VMADDR_CID_ANY = 0xffffffff - VMADDR_CID_HOST = 0x2 - VMADDR_CID_HYPERVISOR = 0x0 - VMADDR_CID_RESERVED = 0x1 - VMADDR_PORT_ANY = 0xffffffff - VMIN = 0x4 - VM_SOCKETS_INVALID_VERSION = 0xffffffff - VQUIT = 0x1 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VSWTCH = 0x7 - VT0 = 0x0 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WALL = 0x40000000 - WCLONE = 0x80000000 - WCONTINUED = 0x8 - WEXITED = 0x4 - WNOHANG = 0x1 - WNOTHREAD = 0x20000000 - WNOWAIT = 0x1000000 - WORDSIZE = 0x20 - WSTOPPED = 0x2 - WUNTRACED = 0x2 - XATTR_CREATE = 0x1 - XATTR_REPLACE = 0x2 - XCASE = 0x4 - XTABS = 0x1800 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x7d) - EADDRNOTAVAIL = syscall.Errno(0x7e) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x7c) - EAGAIN = syscall.Errno(0xb) - EALREADY = syscall.Errno(0x95) - EBADE = syscall.Errno(0x32) - EBADF = syscall.Errno(0x9) - EBADFD = syscall.Errno(0x51) - EBADMSG = syscall.Errno(0x4d) - EBADR = syscall.Errno(0x33) - EBADRQC = syscall.Errno(0x36) - EBADSLT = syscall.Errno(0x37) - EBFONT = syscall.Errno(0x3b) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x9e) - ECHILD = syscall.Errno(0xa) - ECHRNG = syscall.Errno(0x25) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x82) - ECONNREFUSED = syscall.Errno(0x92) - ECONNRESET = syscall.Errno(0x83) - EDEADLK = syscall.Errno(0x2d) - EDEADLOCK = syscall.Errno(0x38) - EDESTADDRREQ = syscall.Errno(0x60) - EDOM = syscall.Errno(0x21) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x46d) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EHOSTDOWN = syscall.Errno(0x93) - EHOSTUNREACH = syscall.Errno(0x94) - EHWPOISON = syscall.Errno(0xa8) - EIDRM = syscall.Errno(0x24) - EILSEQ = syscall.Errno(0x58) - EINIT = syscall.Errno(0x8d) - EINPROGRESS = syscall.Errno(0x96) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x85) - EISDIR = syscall.Errno(0x15) - EISNAM = syscall.Errno(0x8b) - EKEYEXPIRED = syscall.Errno(0xa2) - EKEYREJECTED = syscall.Errno(0xa4) - EKEYREVOKED = syscall.Errno(0xa3) - EL2HLT = syscall.Errno(0x2c) - EL2NSYNC = syscall.Errno(0x26) - EL3HLT = syscall.Errno(0x27) - EL3RST = syscall.Errno(0x28) - ELIBACC = syscall.Errno(0x53) - ELIBBAD = syscall.Errno(0x54) - ELIBEXEC = syscall.Errno(0x57) - ELIBMAX = syscall.Errno(0x56) - ELIBSCN = syscall.Errno(0x55) - ELNRNG = syscall.Errno(0x29) - ELOOP = syscall.Errno(0x5a) - EMEDIUMTYPE = syscall.Errno(0xa0) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x61) - EMULTIHOP = syscall.Errno(0x4a) - ENAMETOOLONG = syscall.Errno(0x4e) - ENAVAIL = syscall.Errno(0x8a) - ENETDOWN = syscall.Errno(0x7f) - ENETRESET = syscall.Errno(0x81) - ENETUNREACH = syscall.Errno(0x80) - ENFILE = syscall.Errno(0x17) - ENOANO = syscall.Errno(0x35) - ENOBUFS = syscall.Errno(0x84) - ENOCSI = syscall.Errno(0x2b) - ENODATA = syscall.Errno(0x3d) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOKEY = syscall.Errno(0xa1) - ENOLCK = syscall.Errno(0x2e) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x9f) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x23) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x63) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x59) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x86) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x5d) - ENOTNAM = syscall.Errno(0x89) - ENOTRECOVERABLE = syscall.Errno(0xa6) - ENOTSOCK = syscall.Errno(0x5f) - ENOTSUP = syscall.Errno(0x7a) - ENOTTY = syscall.Errno(0x19) - ENOTUNIQ = syscall.Errno(0x50) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x7a) - EOVERFLOW = syscall.Errno(0x4f) - EOWNERDEAD = syscall.Errno(0xa5) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x7b) - EPIPE = syscall.Errno(0x20) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x78) - EPROTOTYPE = syscall.Errno(0x62) - ERANGE = syscall.Errno(0x22) - EREMCHG = syscall.Errno(0x52) - EREMDEV = syscall.Errno(0x8e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x8c) - ERESTART = syscall.Errno(0x5b) - ERFKILL = syscall.Errno(0xa7) - EROFS = syscall.Errno(0x1e) - ESHUTDOWN = syscall.Errno(0x8f) - ESOCKTNOSUPPORT = syscall.Errno(0x79) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x97) - ESTRPIPE = syscall.Errno(0x5c) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x91) - ETOOMANYREFS = syscall.Errno(0x90) - ETXTBSY = syscall.Errno(0x1a) - EUCLEAN = syscall.Errno(0x87) - EUNATCH = syscall.Errno(0x2a) - EUSERS = syscall.Errno(0x5e) - EWOULDBLOCK = syscall.Errno(0xb) - EXDEV = syscall.Errno(0x12) - EXFULL = syscall.Errno(0x34) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x12) - SIGCLD = syscall.Signal(0x12) - SIGCONT = syscall.Signal(0x19) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x16) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) - SIGPOLL = syscall.Signal(0x16) - SIGPROF = syscall.Signal(0x1d) - SIGPWR = syscall.Signal(0x13) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x17) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x18) - SIGTTIN = syscall.Signal(0x1a) - SIGTTOU = syscall.Signal(0x1b) - SIGURG = syscall.Signal(0x15) - SIGUSR1 = syscall.Signal(0x10) - SIGUSR2 = syscall.Signal(0x11) - SIGVTALRM = syscall.Signal(0x1c) - SIGWINCH = syscall.Signal(0x14) - SIGXCPU = syscall.Signal(0x1e) - SIGXFSZ = syscall.Signal(0x1f) -) - -// Error table -var errors = [...]string{ - 1: "operation not permitted", - 2: "no such file or directory", - 3: "no such process", - 4: "interrupted system call", - 5: "input/output error", - 6: "no such device or address", - 7: "argument list too long", - 8: "exec format error", - 9: "bad file descriptor", - 10: "no child processes", - 11: "resource temporarily unavailable", - 12: "cannot allocate memory", - 13: "permission denied", - 14: "bad address", - 15: "block device required", - 16: "device or resource busy", - 17: "file exists", - 18: "invalid cross-device link", - 19: "no such device", - 20: "not a directory", - 21: "is a directory", - 22: "invalid argument", - 23: "too many open files in system", - 24: "too many open files", - 25: "inappropriate ioctl for device", - 26: "text file busy", - 27: "file too large", - 28: "no space left on device", - 29: "illegal seek", - 30: "read-only file system", - 31: "too many links", - 32: "broken pipe", - 33: "numerical argument out of domain", - 34: "numerical result out of range", - 35: "no message of desired type", - 36: "identifier removed", - 37: "channel number out of range", - 38: "level 2 not synchronized", - 39: "level 3 halted", - 40: "level 3 reset", - 41: "link number out of range", - 42: "protocol driver not attached", - 43: "no CSI structure available", - 44: "level 2 halted", - 45: "resource deadlock avoided", - 46: "no locks available", - 50: "invalid exchange", - 51: "invalid request descriptor", - 52: "exchange full", - 53: "no anode", - 54: "invalid request code", - 55: "invalid slot", - 56: "file locking deadlock error", - 59: "bad font file format", - 60: "device not a stream", - 61: "no data available", - 62: "timer expired", - 63: "out of streams resources", - 64: "machine is not on the network", - 65: "package not installed", - 66: "object is remote", - 67: "link has been severed", - 68: "advertise error", - 69: "srmount error", - 70: "communication error on send", - 71: "protocol error", - 73: "RFS specific error", - 74: "multihop attempted", - 77: "bad message", - 78: "file name too long", - 79: "value too large for defined data type", - 80: "name not unique on network", - 81: "file descriptor in bad state", - 82: "remote address changed", - 83: "can not access a needed shared library", - 84: "accessing a corrupted shared library", - 85: ".lib section in a.out corrupted", - 86: "attempting to link in too many shared libraries", - 87: "cannot exec a shared library directly", - 88: "invalid or incomplete multibyte or wide character", - 89: "function not implemented", - 90: "too many levels of symbolic links", - 91: "interrupted system call should be restarted", - 92: "streams pipe error", - 93: "directory not empty", - 94: "too many users", - 95: "socket operation on non-socket", - 96: "destination address required", - 97: "message too long", - 98: "protocol wrong type for socket", - 99: "protocol not available", - 120: "protocol not supported", - 121: "socket type not supported", - 122: "operation not supported", - 123: "protocol family not supported", - 124: "address family not supported by protocol", - 125: "address already in use", - 126: "cannot assign requested address", - 127: "network is down", - 128: "network is unreachable", - 129: "network dropped connection on reset", - 130: "software caused connection abort", - 131: "connection reset by peer", - 132: "no buffer space available", - 133: "transport endpoint is already connected", - 134: "transport endpoint is not connected", - 135: "structure needs cleaning", - 137: "not a XENIX named type file", - 138: "no XENIX semaphores available", - 139: "is a named type file", - 140: "remote I/O error", - 141: "unknown error 141", - 142: "unknown error 142", - 143: "cannot send after transport endpoint shutdown", - 144: "too many references: cannot splice", - 145: "connection timed out", - 146: "connection refused", - 147: "host is down", - 148: "no route to host", - 149: "operation already in progress", - 150: "operation now in progress", - 151: "stale file handle", - 158: "operation canceled", - 159: "no medium found", - 160: "wrong medium type", - 161: "required key not available", - 162: "key has expired", - 163: "key has been revoked", - 164: "key was rejected by service", - 165: "owner died", - 166: "state not recoverable", - 167: "operation not possible due to RF-kill", - 168: "memory page has hardware error", - 1133: "disk quota exceeded", -} - -// Signal table -var signals = [...]string{ - 1: "hangup", - 2: "interrupt", - 3: "quit", - 4: "illegal instruction", - 5: "trace/breakpoint trap", - 6: "aborted", - 7: "EMT trap", - 8: "floating point exception", - 9: "killed", - 10: "bus error", - 11: "segmentation fault", - 12: "bad system call", - 13: "broken pipe", - 14: "alarm clock", - 15: "terminated", - 16: "user defined signal 1", - 17: "user defined signal 2", - 18: "child exited", - 19: "power failure", - 20: "window changed", - 21: "urgent I/O condition", - 22: "I/O possible", - 23: "stopped (signal)", - 24: "stopped", - 25: "continued", - 26: "stopped (tty input)", - 27: "stopped (tty output)", - 28: "virtual timer expired", - 29: "profiling timer expired", - 30: "CPU time limit exceeded", - 31: "file size limit exceeded", -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go deleted file mode 100644 index 4148f27..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go +++ /dev/null @@ -1,2209 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/include -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build mips64,linux - -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go - -package unix - -import "syscall" - -const ( - AF_ALG = 0x26 - AF_APPLETALK = 0x5 - AF_ASH = 0x12 - AF_ATMPVC = 0x8 - AF_ATMSVC = 0x14 - AF_AX25 = 0x3 - AF_BLUETOOTH = 0x1f - AF_BRIDGE = 0x7 - AF_CAIF = 0x25 - AF_CAN = 0x1d - AF_DECnet = 0xc - AF_ECONET = 0x13 - AF_FILE = 0x1 - AF_IB = 0x1b - AF_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KCM = 0x29 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x2b - AF_MPLS = 0x1c - AF_NETBEUI = 0xd - AF_NETLINK = 0x10 - AF_NETROM = 0x6 - AF_NFC = 0x27 - AF_PACKET = 0x11 - AF_PHONET = 0x23 - AF_PPPOX = 0x18 - AF_QIPCRTR = 0x2a - AF_RDS = 0x15 - AF_ROSE = 0xb - AF_ROUTE = 0x10 - AF_RXRPC = 0x21 - AF_SECURITY = 0xe - AF_SNA = 0x16 - AF_TIPC = 0x1e - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VSOCK = 0x28 - AF_WANPIPE = 0x19 - AF_X25 = 0x9 - ALG_OP_DECRYPT = 0x0 - ALG_OP_ENCRYPT = 0x1 - ALG_SET_AEAD_ASSOCLEN = 0x4 - ALG_SET_AEAD_AUTHSIZE = 0x5 - ALG_SET_IV = 0x2 - ALG_SET_KEY = 0x1 - ALG_SET_OP = 0x3 - ARPHRD_6LOWPAN = 0x339 - ARPHRD_ADAPT = 0x108 - ARPHRD_APPLETLK = 0x8 - ARPHRD_ARCNET = 0x7 - ARPHRD_ASH = 0x30d - ARPHRD_ATM = 0x13 - ARPHRD_AX25 = 0x3 - ARPHRD_BIF = 0x307 - ARPHRD_CAIF = 0x336 - ARPHRD_CAN = 0x118 - ARPHRD_CHAOS = 0x5 - ARPHRD_CISCO = 0x201 - ARPHRD_CSLIP = 0x101 - ARPHRD_CSLIP6 = 0x103 - ARPHRD_DDCMP = 0x205 - ARPHRD_DLCI = 0xf - ARPHRD_ECONET = 0x30e - ARPHRD_EETHER = 0x2 - ARPHRD_ETHER = 0x1 - ARPHRD_EUI64 = 0x1b - ARPHRD_FCAL = 0x311 - ARPHRD_FCFABRIC = 0x313 - ARPHRD_FCPL = 0x312 - ARPHRD_FCPP = 0x310 - ARPHRD_FDDI = 0x306 - ARPHRD_FRAD = 0x302 - ARPHRD_HDLC = 0x201 - ARPHRD_HIPPI = 0x30c - ARPHRD_HWX25 = 0x110 - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_IEEE80211 = 0x321 - ARPHRD_IEEE80211_PRISM = 0x322 - ARPHRD_IEEE80211_RADIOTAP = 0x323 - ARPHRD_IEEE802154 = 0x324 - ARPHRD_IEEE802154_MONITOR = 0x325 - ARPHRD_IEEE802_TR = 0x320 - ARPHRD_INFINIBAND = 0x20 - ARPHRD_IP6GRE = 0x337 - ARPHRD_IPDDP = 0x309 - ARPHRD_IPGRE = 0x30a - ARPHRD_IRDA = 0x30f - ARPHRD_LAPB = 0x204 - ARPHRD_LOCALTLK = 0x305 - ARPHRD_LOOPBACK = 0x304 - ARPHRD_METRICOM = 0x17 - ARPHRD_NETLINK = 0x338 - ARPHRD_NETROM = 0x0 - ARPHRD_NONE = 0xfffe - ARPHRD_PHONET = 0x334 - ARPHRD_PHONET_PIPE = 0x335 - ARPHRD_PIMREG = 0x30b - ARPHRD_PPP = 0x200 - ARPHRD_PRONET = 0x4 - ARPHRD_RAWHDLC = 0x206 - ARPHRD_ROSE = 0x10e - ARPHRD_RSRVD = 0x104 - ARPHRD_SIT = 0x308 - ARPHRD_SKIP = 0x303 - ARPHRD_SLIP = 0x100 - ARPHRD_SLIP6 = 0x102 - ARPHRD_TUNNEL = 0x300 - ARPHRD_TUNNEL6 = 0x301 - ARPHRD_VOID = 0xffff - ARPHRD_X25 = 0x10f - B0 = 0x0 - B1000000 = 0x1008 - B110 = 0x3 - B115200 = 0x1002 - B1152000 = 0x1009 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B1500000 = 0x100a - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B2000000 = 0x100b - B230400 = 0x1003 - B2400 = 0xb - B2500000 = 0x100c - B300 = 0x7 - B3000000 = 0x100d - B3500000 = 0x100e - B38400 = 0xf - B4000000 = 0x100f - B460800 = 0x1004 - B4800 = 0xc - B50 = 0x1 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B600 = 0x8 - B75 = 0x2 - B921600 = 0x1007 - B9600 = 0xd - BLKBSZGET = 0x40081270 - BLKBSZSET = 0x80081271 - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40081272 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d - BLKRRPART = 0x2000125f - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 - BOTHER = 0x1000 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIV = 0x30 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LL_OFF = -0x200000 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXINSNS = 0x1000 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_NET_OFF = -0x100000 - BPF_OR = 0x40 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XOR = 0xa0 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x2000 - BSDLY = 0x2000 - CAN_BCM = 0x2 - CAN_EFF_FLAG = 0x80000000 - CAN_EFF_ID_BITS = 0x1d - CAN_EFF_MASK = 0x1fffffff - CAN_ERR_FLAG = 0x20000000 - CAN_ERR_MASK = 0x1fffffff - CAN_INV_FILTER = 0x20000000 - CAN_ISOTP = 0x6 - CAN_MAX_DLC = 0x8 - CAN_MAX_DLEN = 0x8 - CAN_MCNET = 0x5 - CAN_MTU = 0x10 - CAN_NPROTO = 0x7 - CAN_RAW = 0x1 - CAN_RAW_FILTER_MAX = 0x200 - CAN_RTR_FLAG = 0x40000000 - CAN_SFF_ID_BITS = 0xb - CAN_SFF_MASK = 0x7ff - CAN_TP16 = 0x3 - CAN_TP20 = 0x4 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CFLUSH = 0xf - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CLOCK_BOOTTIME = 0x7 - CLOCK_BOOTTIME_ALARM = 0x9 - CLOCK_DEFAULT = 0x0 - CLOCK_EXT = 0x1 - CLOCK_INT = 0x2 - CLOCK_MONOTONIC = 0x1 - CLOCK_MONOTONIC_COARSE = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_ALARM = 0x8 - CLOCK_REALTIME_COARSE = 0x5 - CLOCK_TAI = 0xb - CLOCK_THREAD_CPUTIME_ID = 0x3 - CLOCK_TXFROMRX = 0x4 - CLOCK_TXINT = 0x3 - CLONE_CHILD_CLEARTID = 0x200000 - CLONE_CHILD_SETTID = 0x1000000 - CLONE_DETACHED = 0x400000 - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_IO = 0x80000000 - CLONE_NEWCGROUP = 0x2000000 - CLONE_NEWIPC = 0x8000000 - CLONE_NEWNET = 0x40000000 - CLONE_NEWNS = 0x20000 - CLONE_NEWPID = 0x20000000 - CLONE_NEWUSER = 0x10000000 - CLONE_NEWUTS = 0x4000000 - CLONE_PARENT = 0x8000 - CLONE_PARENT_SETTID = 0x100000 - CLONE_PTRACE = 0x2000 - CLONE_SETTLS = 0x80000 - CLONE_SIGHAND = 0x800 - CLONE_SYSVSEM = 0x40000 - CLONE_THREAD = 0x10000 - CLONE_UNTRACED = 0x800000 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CMSPAR = 0x40000000 - CR0 = 0x0 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRDLY = 0x600 - CREAD = 0x80 - CRTSCTS = 0x80000000 - CS5 = 0x0 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIGNAL = 0xff - CSIZE = 0x30 - CSTART = 0x11 - CSTATUS = 0x0 - CSTOP = 0x13 - CSTOPB = 0x40 - CSUSP = 0x1a - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x80 - EFD_SEMAPHORE = 0x1 - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - EPOLLEXCLUSIVE = 0x10000000 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLONESHOT = 0x40000000 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDHUP = 0x2000 - EPOLLRDNORM = 0x40 - EPOLLWAKEUP = 0x20000000 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CLOEXEC = 0x80000 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - ETH_P_1588 = 0x88f7 - ETH_P_8021AD = 0x88a8 - ETH_P_8021AH = 0x88e7 - ETH_P_8021Q = 0x8100 - ETH_P_80221 = 0x8917 - ETH_P_802_2 = 0x4 - ETH_P_802_3 = 0x1 - ETH_P_802_3_MIN = 0x600 - ETH_P_802_EX1 = 0x88b5 - ETH_P_AARP = 0x80f3 - ETH_P_AF_IUCV = 0xfbfb - ETH_P_ALL = 0x3 - ETH_P_AOE = 0x88a2 - ETH_P_ARCNET = 0x1a - ETH_P_ARP = 0x806 - ETH_P_ATALK = 0x809b - ETH_P_ATMFATE = 0x8884 - ETH_P_ATMMPOA = 0x884c - ETH_P_AX25 = 0x2 - ETH_P_BATMAN = 0x4305 - ETH_P_BPQ = 0x8ff - ETH_P_CAIF = 0xf7 - ETH_P_CAN = 0xc - ETH_P_CANFD = 0xd - ETH_P_CONTROL = 0x16 - ETH_P_CUST = 0x6006 - ETH_P_DDCMP = 0x6 - ETH_P_DEC = 0x6000 - ETH_P_DIAG = 0x6005 - ETH_P_DNA_DL = 0x6001 - ETH_P_DNA_RC = 0x6002 - ETH_P_DNA_RT = 0x6003 - ETH_P_DSA = 0x1b - ETH_P_ECONET = 0x18 - ETH_P_EDSA = 0xdada - ETH_P_FCOE = 0x8906 - ETH_P_FIP = 0x8914 - ETH_P_HDLC = 0x19 - ETH_P_HSR = 0x892f - ETH_P_IEEE802154 = 0xf6 - ETH_P_IEEEPUP = 0xa00 - ETH_P_IEEEPUPAT = 0xa01 - ETH_P_IP = 0x800 - ETH_P_IPV6 = 0x86dd - ETH_P_IPX = 0x8137 - ETH_P_IRDA = 0x17 - ETH_P_LAT = 0x6004 - ETH_P_LINK_CTL = 0x886c - ETH_P_LOCALTALK = 0x9 - ETH_P_LOOP = 0x60 - ETH_P_LOOPBACK = 0x9000 - ETH_P_MACSEC = 0x88e5 - ETH_P_MOBITEX = 0x15 - ETH_P_MPLS_MC = 0x8848 - ETH_P_MPLS_UC = 0x8847 - ETH_P_MVRP = 0x88f5 - ETH_P_NCSI = 0x88f8 - ETH_P_PAE = 0x888e - ETH_P_PAUSE = 0x8808 - ETH_P_PHONET = 0xf5 - ETH_P_PPPTALK = 0x10 - ETH_P_PPP_DISC = 0x8863 - ETH_P_PPP_MP = 0x8 - ETH_P_PPP_SES = 0x8864 - ETH_P_PRP = 0x88fb - ETH_P_PUP = 0x200 - ETH_P_PUPAT = 0x201 - ETH_P_QINQ1 = 0x9100 - ETH_P_QINQ2 = 0x9200 - ETH_P_QINQ3 = 0x9300 - ETH_P_RARP = 0x8035 - ETH_P_SCA = 0x6007 - ETH_P_SLOW = 0x8809 - ETH_P_SNAP = 0x5 - ETH_P_TDLS = 0x890d - ETH_P_TEB = 0x6558 - ETH_P_TIPC = 0x88ca - ETH_P_TRAILER = 0x1c - ETH_P_TR_802_2 = 0x11 - ETH_P_TSN = 0x22f0 - ETH_P_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - ETH_P_XDSA = 0xf8 - EXTA = 0xe - EXTB = 0xf - EXTPROC = 0x10000 - FALLOC_FL_COLLAPSE_RANGE = 0x8 - FALLOC_FL_INSERT_RANGE = 0x20 - FALLOC_FL_KEEP_SIZE = 0x1 - FALLOC_FL_NO_HIDE_STALE = 0x4 - FALLOC_FL_PUNCH_HOLE = 0x2 - FALLOC_FL_UNSHARE_RANGE = 0x40 - FALLOC_FL_ZERO_RANGE = 0x10 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x8000 - FFDLY = 0x8000 - FLUSHO = 0x2000 - FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 - FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 - FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 - FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 - FS_ENCRYPTION_MODE_INVALID = 0x0 - FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 - FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 - FS_KEY_DESCRIPTOR_SIZE = 0x8 - FS_KEY_DESC_PREFIX = "fscrypt:" - FS_KEY_DESC_PREFIX_SIZE = 0x8 - FS_MAX_KEY_SIZE = 0x40 - FS_POLICY_FLAGS_PAD_16 = 0x2 - FS_POLICY_FLAGS_PAD_32 = 0x3 - FS_POLICY_FLAGS_PAD_4 = 0x0 - FS_POLICY_FLAGS_PAD_8 = 0x1 - FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x3 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x406 - F_EXLCK = 0x4 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLEASE = 0x401 - F_GETLK = 0xe - F_GETLK64 = 0xe - F_GETOWN = 0x17 - F_GETOWN_EX = 0x10 - F_GETPIPE_SZ = 0x408 - F_GETSIG = 0xb - F_LOCK = 0x1 - F_NOTIFY = 0x402 - F_OFD_GETLK = 0x24 - F_OFD_SETLK = 0x25 - F_OFD_SETLKW = 0x26 - F_OK = 0x0 - F_RDLCK = 0x0 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLEASE = 0x400 - F_SETLK = 0x6 - F_SETLK64 = 0x6 - F_SETLKW = 0x7 - F_SETLKW64 = 0x7 - F_SETOWN = 0x18 - F_SETOWN_EX = 0xf - F_SETPIPE_SZ = 0x407 - F_SETSIG = 0xa - F_SHLCK = 0x8 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_ULOCK = 0x0 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - GENL_ADMIN_PERM = 0x1 - GENL_CMD_CAP_DO = 0x2 - GENL_CMD_CAP_DUMP = 0x4 - GENL_CMD_CAP_HASPOL = 0x8 - GENL_HDRLEN = 0x4 - GENL_ID_CTRL = 0x10 - GENL_ID_PMCRAID = 0x12 - GENL_ID_VFS_DQUOT = 0x11 - GENL_MAX_ID = 0x3ff - GENL_MIN_ID = 0x10 - GENL_NAMSIZ = 0x10 - GENL_START_ALLOC = 0x13 - GENL_UNS_ADMIN_PERM = 0x10 - GRND_NONBLOCK = 0x1 - GRND_RANDOM = 0x2 - HUPCL = 0x400 - IBSHIFT = 0x10 - ICANON = 0x2 - ICMPV6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x100 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_MANAGETEMPADDR = 0x100 - IFA_F_MCAUTOJOIN = 0x400 - IFA_F_NODAD = 0x2 - IFA_F_NOPREFIXROUTE = 0x200 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_STABLE_PRIVACY = 0x800 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0x8 - IFF_ALLMULTI = 0x200 - IFF_ATTACH_QUEUE = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DETACH_QUEUE = 0x400 - IFF_DORMANT = 0x20000 - IFF_DYNAMIC = 0x8000 - IFF_ECHO = 0x40000 - IFF_LOOPBACK = 0x8 - IFF_LOWER_UP = 0x10000 - IFF_MASTER = 0x400 - IFF_MULTICAST = 0x1000 - IFF_MULTI_QUEUE = 0x100 - IFF_NOARP = 0x80 - IFF_NOFILTER = 0x1000 - IFF_NOTRAILERS = 0x20 - IFF_NO_PI = 0x1000 - IFF_ONE_QUEUE = 0x2000 - IFF_PERSIST = 0x800 - IFF_POINTOPOINT = 0x10 - IFF_PORTSEL = 0x2000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SLAVE = 0x800 - IFF_TAP = 0x2 - IFF_TUN = 0x1 - IFF_TUN_EXCL = 0x8000 - IFF_UP = 0x1 - IFF_VNET_HDR = 0x4000 - IFF_VOLATILE = 0x70c5a - IFNAMSIZ = 0x10 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_ACCESS = 0x1 - IN_ALL_EVENTS = 0xfff - IN_ATTRIB = 0x4 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLOEXEC = 0x80000 - IN_CLOSE = 0x18 - IN_CLOSE_NOWRITE = 0x10 - IN_CLOSE_WRITE = 0x8 - IN_CREATE = 0x100 - IN_DELETE = 0x200 - IN_DELETE_SELF = 0x400 - IN_DONT_FOLLOW = 0x2000000 - IN_EXCL_UNLINK = 0x4000000 - IN_IGNORED = 0x8000 - IN_ISDIR = 0x40000000 - IN_LOOPBACKNET = 0x7f - IN_MASK_ADD = 0x20000000 - IN_MODIFY = 0x2 - IN_MOVE = 0xc0 - IN_MOVED_FROM = 0x40 - IN_MOVED_TO = 0x80 - IN_MOVE_SELF = 0x800 - IN_NONBLOCK = 0x80 - IN_ONESHOT = 0x80000000 - IN_ONLYDIR = 0x1000000 - IN_OPEN = 0x20 - IN_Q_OVERFLOW = 0x4000 - IN_UNMOUNT = 0x2000 - IPPROTO_AH = 0x33 - IPPROTO_BEETPH = 0x5e - IPPROTO_COMP = 0x6c - IPPROTO_DCCP = 0x21 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPIP = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MH = 0x87 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_NONE = 0x3b - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_2292DSTOPTS = 0x4 - IPV6_2292HOPLIMIT = 0x8 - IPV6_2292HOPOPTS = 0x3 - IPV6_2292PKTINFO = 0x2 - IPV6_2292PKTOPTIONS = 0x6 - IPV6_2292RTHDR = 0x5 - IPV6_ADDRFORM = 0x1 - IPV6_ADD_MEMBERSHIP = 0x14 - IPV6_AUTHHDR = 0xa - IPV6_CHECKSUM = 0x7 - IPV6_DONTFRAG = 0x3e - IPV6_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - IPV6_HDRINCL = 0x24 - IPV6_HOPLIMIT = 0x34 - IPV6_HOPOPTS = 0x36 - IPV6_IPSEC_POLICY = 0x22 - IPV6_JOIN_ANYCAST = 0x1b - IPV6_JOIN_GROUP = 0x14 - IPV6_LEAVE_ANYCAST = 0x1c - IPV6_LEAVE_GROUP = 0x15 - IPV6_MTU = 0x18 - IPV6_MTU_DISCOVER = 0x17 - IPV6_MULTICAST_HOPS = 0x12 - IPV6_MULTICAST_IF = 0x11 - IPV6_MULTICAST_LOOP = 0x13 - IPV6_NEXTHOP = 0x9 - IPV6_PATHMTU = 0x3d - IPV6_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_INTERFACE = 0x4 - IPV6_PMTUDISC_OMIT = 0x5 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVPATHMTU = 0x3c - IPV6_RECVPKTINFO = 0x31 - IPV6_RECVRTHDR = 0x38 - IPV6_RECVTCLASS = 0x42 - IPV6_ROUTER_ALERT = 0x16 - IPV6_RTHDR = 0x39 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RXDSTOPTS = 0x3b - IPV6_RXHOPOPTS = 0x36 - IPV6_TCLASS = 0x43 - IPV6_UNICAST_HOPS = 0x10 - IPV6_V6ONLY = 0x1a - IPV6_XFRM_POLICY = 0x23 - IP_ADD_MEMBERSHIP = 0x23 - IP_ADD_SOURCE_MEMBERSHIP = 0x27 - IP_BIND_ADDRESS_NO_PORT = 0x18 - IP_BLOCK_SOURCE = 0x26 - IP_CHECKSUM = 0x17 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0x24 - IP_DROP_SOURCE_MEMBERSHIP = 0x28 - IP_FREEBIND = 0xf - IP_HDRINCL = 0x3 - IP_IPSEC_POLICY = 0x10 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINTTL = 0x15 - IP_MSFILTER = 0x29 - IP_MSS = 0x240 - IP_MTU = 0xe - IP_MTU_DISCOVER = 0xa - IP_MULTICAST_ALL = 0x31 - IP_MULTICAST_IF = 0x20 - IP_MULTICAST_LOOP = 0x22 - IP_MULTICAST_TTL = 0x21 - IP_NODEFRAG = 0x16 - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x4 - IP_ORIGDSTADDR = 0x14 - IP_PASSSEC = 0x12 - IP_PKTINFO = 0x8 - IP_PKTOPTIONS = 0x9 - IP_PMTUDISC = 0xa - IP_PMTUDISC_DO = 0x2 - IP_PMTUDISC_DONT = 0x0 - IP_PMTUDISC_INTERFACE = 0x4 - IP_PMTUDISC_OMIT = 0x5 - IP_PMTUDISC_PROBE = 0x3 - IP_PMTUDISC_WANT = 0x1 - IP_RECVERR = 0xb - IP_RECVOPTS = 0x6 - IP_RECVORIGDSTADDR = 0x14 - IP_RECVRETOPTS = 0x7 - IP_RECVTOS = 0xd - IP_RECVTTL = 0xc - IP_RETOPTS = 0x7 - IP_RF = 0x8000 - IP_ROUTER_ALERT = 0x5 - IP_TOS = 0x1 - IP_TRANSPARENT = 0x13 - IP_TTL = 0x2 - IP_UNBLOCK_SOURCE = 0x25 - IP_UNICAST_IF = 0x32 - IP_XFRM_POLICY = 0x11 - ISIG = 0x1 - ISTRIP = 0x20 - IUCLC = 0x200 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x1000 - IXON = 0x400 - KEYCTL_ASSUME_AUTHORITY = 0x10 - KEYCTL_CHOWN = 0x4 - KEYCTL_CLEAR = 0x7 - KEYCTL_DESCRIBE = 0x6 - KEYCTL_DH_COMPUTE = 0x17 - KEYCTL_GET_KEYRING_ID = 0x0 - KEYCTL_GET_PERSISTENT = 0x16 - KEYCTL_GET_SECURITY = 0x11 - KEYCTL_INSTANTIATE = 0xc - KEYCTL_INSTANTIATE_IOV = 0x14 - KEYCTL_INVALIDATE = 0x15 - KEYCTL_JOIN_SESSION_KEYRING = 0x1 - KEYCTL_LINK = 0x8 - KEYCTL_NEGATE = 0xd - KEYCTL_READ = 0xb - KEYCTL_REJECT = 0x13 - KEYCTL_REVOKE = 0x3 - KEYCTL_SEARCH = 0xa - KEYCTL_SESSION_TO_PARENT = 0x12 - KEYCTL_SETPERM = 0x5 - KEYCTL_SET_REQKEY_KEYRING = 0xe - KEYCTL_SET_TIMEOUT = 0xf - KEYCTL_UNLINK = 0x9 - KEYCTL_UPDATE = 0x2 - KEY_REQKEY_DEFL_DEFAULT = 0x0 - KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 - KEY_REQKEY_DEFL_NO_CHANGE = -0x1 - KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 - KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 - KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 - KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 - KEY_REQKEY_DEFL_USER_KEYRING = 0x4 - KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 - KEY_SPEC_GROUP_KEYRING = -0x6 - KEY_SPEC_PROCESS_KEYRING = -0x2 - KEY_SPEC_REQKEY_AUTH_KEY = -0x7 - KEY_SPEC_REQUESTOR_KEYRING = -0x8 - KEY_SPEC_SESSION_KEYRING = -0x3 - KEY_SPEC_THREAD_KEYRING = -0x1 - KEY_SPEC_USER_KEYRING = -0x4 - KEY_SPEC_USER_SESSION_KEYRING = -0x5 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef - LINUX_REBOOT_CMD_HALT = 0xcdef0123 - LINUX_REBOOT_CMD_KEXEC = 0x45584543 - LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc - LINUX_REBOOT_CMD_RESTART = 0x1234567 - LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 - LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 - LINUX_REBOOT_MAGIC1 = 0xfee1dead - LINUX_REBOOT_MAGIC2 = 0x28121969 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DODUMP = 0x11 - MADV_DOFORK = 0xb - MADV_DONTDUMP = 0x10 - MADV_DONTFORK = 0xa - MADV_DONTNEED = 0x4 - MADV_FREE = 0x8 - MADV_HUGEPAGE = 0xe - MADV_HWPOISON = 0x64 - MADV_MERGEABLE = 0xc - MADV_NOHUGEPAGE = 0xf - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_REMOVE = 0x9 - MADV_SEQUENTIAL = 0x2 - MADV_UNMERGEABLE = 0xd - MADV_WILLNEED = 0x3 - MAP_ANON = 0x800 - MAP_ANONYMOUS = 0x800 - MAP_DENYWRITE = 0x2000 - MAP_EXECUTABLE = 0x4000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_GROWSDOWN = 0x1000 - MAP_HUGETLB = 0x80000 - MAP_HUGE_MASK = 0x3f - MAP_HUGE_SHIFT = 0x1a - MAP_LOCKED = 0x8000 - MAP_NONBLOCK = 0x20000 - MAP_NORESERVE = 0x400 - MAP_POPULATE = 0x10000 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x800 - MAP_SHARED = 0x1 - MAP_STACK = 0x40000 - MAP_TYPE = 0xf - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - MSG_BATCH = 0x40000 - MSG_CMSG_CLOEXEC = 0x40000000 - MSG_CONFIRM = 0x800 - MSG_CTRUNC = 0x8 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x40 - MSG_EOR = 0x80 - MSG_ERRQUEUE = 0x2000 - MSG_FASTOPEN = 0x20000000 - MSG_FIN = 0x200 - MSG_MORE = 0x8000 - MSG_NOSIGNAL = 0x4000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_PROXY = 0x10 - MSG_RST = 0x1000 - MSG_SYN = 0x400 - MSG_TRUNC = 0x20 - MSG_TRYHARD = 0x4 - MSG_WAITALL = 0x100 - MSG_WAITFORONE = 0x10000 - MS_ACTIVE = 0x40000000 - MS_ASYNC = 0x1 - MS_BIND = 0x1000 - MS_BORN = 0x20000000 - MS_DIRSYNC = 0x80 - MS_INVALIDATE = 0x2 - MS_I_VERSION = 0x800000 - MS_KERNMOUNT = 0x400000 - MS_LAZYTIME = 0x2000000 - MS_MANDLOCK = 0x40 - MS_MGC_MSK = 0xffff0000 - MS_MGC_VAL = 0xc0ed0000 - MS_MOVE = 0x2000 - MS_NOATIME = 0x400 - MS_NODEV = 0x4 - MS_NODIRATIME = 0x800 - MS_NOEXEC = 0x8 - MS_NOREMOTELOCK = 0x8000000 - MS_NOSEC = 0x10000000 - MS_NOSUID = 0x2 - MS_NOUSER = -0x80000000 - MS_POSIXACL = 0x10000 - MS_PRIVATE = 0x40000 - MS_RDONLY = 0x1 - MS_REC = 0x4000 - MS_RELATIME = 0x200000 - MS_REMOUNT = 0x20 - MS_RMT_MASK = 0x2800051 - MS_SHARED = 0x100000 - MS_SILENT = 0x8000 - MS_SLAVE = 0x80000 - MS_STRICTATIME = 0x1000000 - MS_SYNC = 0x4 - MS_SYNCHRONOUS = 0x10 - MS_UNBINDABLE = 0x20000 - MS_VERBOSE = 0x8000 - NAME_MAX = 0xff - NETLINK_ADD_MEMBERSHIP = 0x1 - NETLINK_AUDIT = 0x9 - NETLINK_BROADCAST_ERROR = 0x4 - NETLINK_CAP_ACK = 0xa - NETLINK_CONNECTOR = 0xb - NETLINK_CRYPTO = 0x15 - NETLINK_DNRTMSG = 0xe - NETLINK_DROP_MEMBERSHIP = 0x2 - NETLINK_ECRYPTFS = 0x13 - NETLINK_FIB_LOOKUP = 0xa - NETLINK_FIREWALL = 0x3 - NETLINK_GENERIC = 0x10 - NETLINK_INET_DIAG = 0x4 - NETLINK_IP6_FW = 0xd - NETLINK_ISCSI = 0x8 - NETLINK_KOBJECT_UEVENT = 0xf - NETLINK_LISTEN_ALL_NSID = 0x8 - NETLINK_LIST_MEMBERSHIPS = 0x9 - NETLINK_NETFILTER = 0xc - NETLINK_NFLOG = 0x5 - NETLINK_NO_ENOBUFS = 0x5 - NETLINK_PKTINFO = 0x3 - NETLINK_RDMA = 0x14 - NETLINK_ROUTE = 0x0 - NETLINK_RX_RING = 0x6 - NETLINK_SCSITRANSPORT = 0x12 - NETLINK_SELINUX = 0x7 - NETLINK_SOCK_DIAG = 0x4 - NETLINK_TX_RING = 0x7 - NETLINK_UNUSED = 0x1 - NETLINK_USERSOCK = 0x2 - NETLINK_XFRM = 0x6 - NL0 = 0x0 - NL1 = 0x100 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - NLDLY = 0x100 - NLMSG_ALIGNTO = 0x4 - NLMSG_DONE = 0x3 - NLMSG_ERROR = 0x2 - NLMSG_HDRLEN = 0x10 - NLMSG_MIN_TYPE = 0x10 - NLMSG_NOOP = 0x1 - NLMSG_OVERRUN = 0x4 - NLM_F_ACK = 0x4 - NLM_F_APPEND = 0x800 - NLM_F_ATOMIC = 0x400 - NLM_F_CREATE = 0x400 - NLM_F_DUMP = 0x300 - NLM_F_DUMP_FILTERED = 0x20 - NLM_F_DUMP_INTR = 0x10 - NLM_F_ECHO = 0x8 - NLM_F_EXCL = 0x200 - NLM_F_MATCH = 0x200 - NLM_F_MULTI = 0x2 - NLM_F_REPLACE = 0x100 - NLM_F_REQUEST = 0x1 - NLM_F_ROOT = 0x100 - NOFLSH = 0x80 - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x2 - ONLCR = 0x4 - ONLRET = 0x20 - ONOCR = 0x10 - OPOST = 0x1 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x1000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x100 - O_DIRECT = 0x8000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x10 - O_EXCL = 0x400 - O_FSYNC = 0x4010 - O_LARGEFILE = 0x0 - O_NDELAY = 0x80 - O_NOATIME = 0x40000 - O_NOCTTY = 0x800 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x80 - O_PATH = 0x200000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x4010 - O_SYNC = 0x4010 - O_TMPFILE = 0x410000 - O_TRUNC = 0x200 - O_WRONLY = 0x1 - PACKET_ADD_MEMBERSHIP = 0x1 - PACKET_AUXDATA = 0x8 - PACKET_BROADCAST = 0x1 - PACKET_COPY_THRESH = 0x7 - PACKET_DROP_MEMBERSHIP = 0x2 - PACKET_FANOUT = 0x12 - PACKET_FANOUT_CBPF = 0x6 - PACKET_FANOUT_CPU = 0x2 - PACKET_FANOUT_DATA = 0x16 - PACKET_FANOUT_EBPF = 0x7 - PACKET_FANOUT_FLAG_DEFRAG = 0x8000 - PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 - PACKET_FANOUT_HASH = 0x0 - PACKET_FANOUT_LB = 0x1 - PACKET_FANOUT_QM = 0x5 - PACKET_FANOUT_RND = 0x4 - PACKET_FANOUT_ROLLOVER = 0x3 - PACKET_FASTROUTE = 0x6 - PACKET_HDRLEN = 0xb - PACKET_HOST = 0x0 - PACKET_KERNEL = 0x7 - PACKET_LOOPBACK = 0x5 - PACKET_LOSS = 0xe - PACKET_MR_ALLMULTI = 0x2 - PACKET_MR_MULTICAST = 0x0 - PACKET_MR_PROMISC = 0x1 - PACKET_MR_UNICAST = 0x3 - PACKET_MULTICAST = 0x2 - PACKET_ORIGDEV = 0x9 - PACKET_OTHERHOST = 0x3 - PACKET_OUTGOING = 0x4 - PACKET_QDISC_BYPASS = 0x14 - PACKET_RECV_OUTPUT = 0x3 - PACKET_RESERVE = 0xc - PACKET_ROLLOVER_STATS = 0x15 - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - PACKET_TIMESTAMP = 0x11 - PACKET_TX_HAS_OFF = 0x13 - PACKET_TX_RING = 0xd - PACKET_TX_TIMESTAMP = 0x10 - PACKET_USER = 0x6 - PACKET_VERSION = 0xa - PACKET_VNET_HDR = 0xf - PARENB = 0x100 - PARITY_CRC16_PR0 = 0x2 - PARITY_CRC16_PR0_CCITT = 0x4 - PARITY_CRC16_PR1 = 0x3 - PARITY_CRC16_PR1_CCITT = 0x5 - PARITY_CRC32_PR0_CCITT = 0x6 - PARITY_CRC32_PR1_CCITT = 0x7 - PARITY_DEFAULT = 0x0 - PARITY_NONE = 0x1 - PARMRK = 0x8 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x20002401 - PERF_EVENT_IOC_ENABLE = 0x20002400 - PERF_EVENT_IOC_ID = 0x40082407 - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 - PERF_EVENT_IOC_PERIOD = 0x80082404 - PERF_EVENT_IOC_REFRESH = 0x20002402 - PERF_EVENT_IOC_RESET = 0x20002403 - PERF_EVENT_IOC_SET_BPF = 0x80042408 - PERF_EVENT_IOC_SET_FILTER = 0x80082406 - PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_GROWSDOWN = 0x1000000 - PROT_GROWSUP = 0x2000000 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PR_CAPBSET_DROP = 0x18 - PR_CAPBSET_READ = 0x17 - PR_CAP_AMBIENT = 0x2f - PR_CAP_AMBIENT_CLEAR_ALL = 0x4 - PR_CAP_AMBIENT_IS_SET = 0x1 - PR_CAP_AMBIENT_LOWER = 0x3 - PR_CAP_AMBIENT_RAISE = 0x2 - PR_ENDIAN_BIG = 0x0 - PR_ENDIAN_LITTLE = 0x1 - PR_ENDIAN_PPC_LITTLE = 0x2 - PR_FPEMU_NOPRINT = 0x1 - PR_FPEMU_SIGFPE = 0x2 - PR_FP_EXC_ASYNC = 0x2 - PR_FP_EXC_DISABLED = 0x0 - PR_FP_EXC_DIV = 0x10000 - PR_FP_EXC_INV = 0x100000 - PR_FP_EXC_NONRECOV = 0x1 - PR_FP_EXC_OVF = 0x20000 - PR_FP_EXC_PRECISE = 0x3 - PR_FP_EXC_RES = 0x80000 - PR_FP_EXC_SW_ENABLE = 0x80 - PR_FP_EXC_UND = 0x40000 - PR_FP_MODE_FR = 0x1 - PR_FP_MODE_FRE = 0x2 - PR_GET_CHILD_SUBREAPER = 0x25 - PR_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - PR_GET_FP_MODE = 0x2e - PR_GET_KEEPCAPS = 0x7 - PR_GET_NAME = 0x10 - PR_GET_NO_NEW_PRIVS = 0x27 - PR_GET_PDEATHSIG = 0x2 - PR_GET_SECCOMP = 0x15 - PR_GET_SECUREBITS = 0x1b - PR_GET_THP_DISABLE = 0x2a - PR_GET_TID_ADDRESS = 0x28 - PR_GET_TIMERSLACK = 0x1e - PR_GET_TIMING = 0xd - PR_GET_TSC = 0x19 - PR_GET_UNALIGN = 0x5 - PR_MCE_KILL = 0x21 - PR_MCE_KILL_CLEAR = 0x0 - PR_MCE_KILL_DEFAULT = 0x2 - PR_MCE_KILL_EARLY = 0x1 - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_SET_CHILD_SUBREAPER = 0x24 - PR_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - PR_SET_FP_MODE = 0x2d - PR_SET_KEEPCAPS = 0x8 - PR_SET_MM = 0x23 - PR_SET_MM_ARG_END = 0x9 - PR_SET_MM_ARG_START = 0x8 - PR_SET_MM_AUXV = 0xc - PR_SET_MM_BRK = 0x7 - PR_SET_MM_END_CODE = 0x2 - PR_SET_MM_END_DATA = 0x4 - PR_SET_MM_ENV_END = 0xb - PR_SET_MM_ENV_START = 0xa - PR_SET_MM_EXE_FILE = 0xd - PR_SET_MM_MAP = 0xe - PR_SET_MM_MAP_SIZE = 0xf - PR_SET_MM_START_BRK = 0x6 - PR_SET_MM_START_CODE = 0x1 - PR_SET_MM_START_DATA = 0x3 - PR_SET_MM_START_STACK = 0x5 - PR_SET_NAME = 0xf - PR_SET_NO_NEW_PRIVS = 0x26 - PR_SET_PDEATHSIG = 0x1 - PR_SET_PTRACER = 0x59616d61 - PR_SET_PTRACER_ANY = -0x1 - PR_SET_SECCOMP = 0x16 - PR_SET_SECUREBITS = 0x1c - PR_SET_THP_DISABLE = 0x29 - PR_SET_TIMERSLACK = 0x1d - PR_SET_TIMING = 0xe - PR_SET_TSC = 0x1a - PR_SET_UNALIGN = 0x6 - PR_TASK_PERF_EVENTS_DISABLE = 0x1f - PR_TASK_PERF_EVENTS_ENABLE = 0x20 - PR_TIMING_STATISTICAL = 0x0 - PR_TIMING_TIMESTAMP = 0x1 - PR_TSC_ENABLE = 0x1 - PR_TSC_SIGSEGV = 0x2 - PR_UNALIGN_NOPRINT = 0x1 - PR_UNALIGN_SIGBUS = 0x2 - PTRACE_ATTACH = 0x10 - PTRACE_CONT = 0x7 - PTRACE_DETACH = 0x11 - PTRACE_EVENT_CLONE = 0x3 - PTRACE_EVENT_EXEC = 0x4 - PTRACE_EVENT_EXIT = 0x6 - PTRACE_EVENT_FORK = 0x1 - PTRACE_EVENT_SECCOMP = 0x7 - PTRACE_EVENT_STOP = 0x80 - PTRACE_EVENT_VFORK = 0x2 - PTRACE_EVENT_VFORK_DONE = 0x5 - PTRACE_GETEVENTMSG = 0x4201 - PTRACE_GETFPREGS = 0xe - PTRACE_GETREGS = 0xc - PTRACE_GETREGSET = 0x4204 - PTRACE_GETSIGINFO = 0x4202 - PTRACE_GETSIGMASK = 0x420a - PTRACE_GET_THREAD_AREA = 0x19 - PTRACE_GET_THREAD_AREA_3264 = 0xc4 - PTRACE_GET_WATCH_REGS = 0xd0 - PTRACE_INTERRUPT = 0x4207 - PTRACE_KILL = 0x8 - PTRACE_LISTEN = 0x4208 - PTRACE_OLDSETOPTIONS = 0x15 - PTRACE_O_EXITKILL = 0x100000 - PTRACE_O_MASK = 0x3000ff - PTRACE_O_SUSPEND_SECCOMP = 0x200000 - PTRACE_O_TRACECLONE = 0x8 - PTRACE_O_TRACEEXEC = 0x10 - PTRACE_O_TRACEEXIT = 0x40 - PTRACE_O_TRACEFORK = 0x2 - PTRACE_O_TRACESECCOMP = 0x80 - PTRACE_O_TRACESYSGOOD = 0x1 - PTRACE_O_TRACEVFORK = 0x4 - PTRACE_O_TRACEVFORKDONE = 0x20 - PTRACE_PEEKDATA = 0x2 - PTRACE_PEEKDATA_3264 = 0xc1 - PTRACE_PEEKSIGINFO = 0x4209 - PTRACE_PEEKSIGINFO_SHARED = 0x1 - PTRACE_PEEKTEXT = 0x1 - PTRACE_PEEKTEXT_3264 = 0xc0 - PTRACE_PEEKUSR = 0x3 - PTRACE_POKEDATA = 0x5 - PTRACE_POKEDATA_3264 = 0xc3 - PTRACE_POKETEXT = 0x4 - PTRACE_POKETEXT_3264 = 0xc2 - PTRACE_POKEUSR = 0x6 - PTRACE_SECCOMP_GET_FILTER = 0x420c - PTRACE_SEIZE = 0x4206 - PTRACE_SETFPREGS = 0xf - PTRACE_SETOPTIONS = 0x4200 - PTRACE_SETREGS = 0xd - PTRACE_SETREGSET = 0x4205 - PTRACE_SETSIGINFO = 0x4203 - PTRACE_SETSIGMASK = 0x420b - PTRACE_SET_THREAD_AREA = 0x1a - PTRACE_SET_WATCH_REGS = 0xd1 - PTRACE_SINGLESTEP = 0x9 - PTRACE_SYSCALL = 0x18 - PTRACE_TRACEME = 0x0 - RLIMIT_AS = 0x6 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_LOCKS = 0xa - RLIMIT_MEMLOCK = 0x9 - RLIMIT_MSGQUEUE = 0xc - RLIMIT_NICE = 0xd - RLIMIT_NOFILE = 0x5 - RLIMIT_NPROC = 0x8 - RLIMIT_RSS = 0x7 - RLIMIT_RTPRIO = 0xe - RLIMIT_RTTIME = 0xf - RLIMIT_SIGPENDING = 0xb - RLIMIT_STACK = 0x3 - RLIM_INFINITY = -0x1 - RTAX_ADVMSS = 0x8 - RTAX_CC_ALGO = 0x10 - RTAX_CWND = 0x7 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_MASK = 0xf - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0x10 - RTAX_MTU = 0x2 - RTAX_QUICKACK = 0xf - RTAX_REORDERING = 0x9 - RTAX_RTO_MIN = 0xd - RTAX_RTT = 0x4 - RTAX_RTTVAR = 0x5 - RTAX_SSTHRESH = 0x6 - RTAX_UNSPEC = 0x0 - RTAX_WINDOW = 0x3 - RTA_ALIGNTO = 0x4 - RTA_MAX = 0x19 - RTCF_DIRECTSRC = 0x4000000 - RTCF_DOREDIRECT = 0x1000000 - RTCF_LOG = 0x2000000 - RTCF_MASQ = 0x400000 - RTCF_NAT = 0x800000 - RTCF_VALVE = 0x200000 - RTF_ADDRCLASSMASK = 0xf8000000 - RTF_ADDRCONF = 0x40000 - RTF_ALLONLINK = 0x20000 - RTF_BROADCAST = 0x10000000 - RTF_CACHE = 0x1000000 - RTF_DEFAULT = 0x10000 - RTF_DYNAMIC = 0x10 - RTF_FLOW = 0x2000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_INTERFACE = 0x40000000 - RTF_IRTT = 0x100 - RTF_LINKRT = 0x100000 - RTF_LOCAL = 0x80000000 - RTF_MODIFIED = 0x20 - RTF_MSS = 0x40 - RTF_MTU = 0x40 - RTF_MULTICAST = 0x20000000 - RTF_NAT = 0x8000000 - RTF_NOFORWARD = 0x1000 - RTF_NONEXTHOP = 0x200000 - RTF_NOPMTUDISC = 0x4000 - RTF_POLICY = 0x4000000 - RTF_REINSTATE = 0x8 - RTF_REJECT = 0x200 - RTF_STATIC = 0x400 - RTF_THROW = 0x2000 - RTF_UP = 0x1 - RTF_WINDOW = 0x80 - RTF_XRESOLVE = 0x800 - RTM_BASE = 0x10 - RTM_DELACTION = 0x31 - RTM_DELADDR = 0x15 - RTM_DELADDRLABEL = 0x49 - RTM_DELLINK = 0x11 - RTM_DELMDB = 0x55 - RTM_DELNEIGH = 0x1d - RTM_DELNSID = 0x59 - RTM_DELQDISC = 0x25 - RTM_DELROUTE = 0x19 - RTM_DELRULE = 0x21 - RTM_DELTCLASS = 0x29 - RTM_DELTFILTER = 0x2d - RTM_F_CLONED = 0x200 - RTM_F_EQUALIZE = 0x400 - RTM_F_LOOKUP_TABLE = 0x1000 - RTM_F_NOTIFY = 0x100 - RTM_F_PREFIX = 0x800 - RTM_GETACTION = 0x32 - RTM_GETADDR = 0x16 - RTM_GETADDRLABEL = 0x4a - RTM_GETANYCAST = 0x3e - RTM_GETDCB = 0x4e - RTM_GETLINK = 0x12 - RTM_GETMDB = 0x56 - RTM_GETMULTICAST = 0x3a - RTM_GETNEIGH = 0x1e - RTM_GETNEIGHTBL = 0x42 - RTM_GETNETCONF = 0x52 - RTM_GETNSID = 0x5a - RTM_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETSTATS = 0x5e - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_MAX = 0x5f - RTM_NEWACTION = 0x30 - RTM_NEWADDR = 0x14 - RTM_NEWADDRLABEL = 0x48 - RTM_NEWLINK = 0x10 - RTM_NEWMDB = 0x54 - RTM_NEWNDUSEROPT = 0x44 - RTM_NEWNEIGH = 0x1c - RTM_NEWNEIGHTBL = 0x40 - RTM_NEWNETCONF = 0x50 - RTM_NEWNSID = 0x58 - RTM_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWSTATS = 0x5c - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NR_FAMILIES = 0x14 - RTM_NR_MSGTYPES = 0x50 - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTNH_ALIGNTO = 0x4 - RTNH_COMPARE_MASK = 0x19 - RTNH_F_DEAD = 0x1 - RTNH_F_LINKDOWN = 0x10 - RTNH_F_OFFLOAD = 0x8 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTN_MAX = 0xb - RTPROT_BABEL = 0x2a - RTPROT_BIRD = 0xc - RTPROT_BOOT = 0x3 - RTPROT_DHCP = 0x10 - RTPROT_DNROUTED = 0xd - RTPROT_GATED = 0x8 - RTPROT_KERNEL = 0x2 - RTPROT_MROUTED = 0x11 - RTPROT_MRT = 0xa - RTPROT_NTK = 0xf - RTPROT_RA = 0x9 - RTPROT_REDIRECT = 0x1 - RTPROT_STATIC = 0x4 - RTPROT_UNSPEC = 0x0 - RTPROT_XORP = 0xe - RTPROT_ZEBRA = 0xb - RT_CLASS_DEFAULT = 0xfd - RT_CLASS_LOCAL = 0xff - RT_CLASS_MAIN = 0xfe - RT_CLASS_MAX = 0xff - RT_CLASS_UNSPEC = 0x0 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_CREDENTIALS = 0x2 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPNS = 0x23 - SCM_WIFI_STATUS = 0x29 - SECCOMP_MODE_DISABLED = 0x0 - SECCOMP_MODE_FILTER = 0x2 - SECCOMP_MODE_STRICT = 0x1 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCATMARK = 0x40047307 - SIOCBONDCHANGEACTIVE = 0x8995 - SIOCBONDENSLAVE = 0x8990 - SIOCBONDINFOQUERY = 0x8994 - SIOCBONDRELEASE = 0x8991 - SIOCBONDSETHWADDR = 0x8992 - SIOCBONDSLAVEINFOQUERY = 0x8993 - SIOCBRADDBR = 0x89a0 - SIOCBRADDIF = 0x89a2 - SIOCBRDELBR = 0x89a1 - SIOCBRDELIF = 0x89a3 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCETHTOOL = 0x8946 - SIOCGARP = 0x8954 - SIOCGHWTSTAMP = 0x89b1 - SIOCGIFADDR = 0x8915 - SIOCGIFBR = 0x8940 - SIOCGIFBRDADDR = 0x8919 - SIOCGIFCONF = 0x8912 - SIOCGIFCOUNT = 0x8938 - SIOCGIFDSTADDR = 0x8917 - SIOCGIFENCAP = 0x8925 - SIOCGIFFLAGS = 0x8913 - SIOCGIFHWADDR = 0x8927 - SIOCGIFINDEX = 0x8933 - SIOCGIFMAP = 0x8970 - SIOCGIFMEM = 0x891f - SIOCGIFMETRIC = 0x891d - SIOCGIFMTU = 0x8921 - SIOCGIFNAME = 0x8910 - SIOCGIFNETMASK = 0x891b - SIOCGIFPFLAGS = 0x8935 - SIOCGIFSLAVE = 0x8929 - SIOCGIFTXQLEN = 0x8942 - SIOCGIFVLAN = 0x8982 - SIOCGMIIPHY = 0x8947 - SIOCGMIIREG = 0x8948 - SIOCGPGRP = 0x40047309 - SIOCGRARP = 0x8961 - SIOCGSKNS = 0x894c - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCINQ = 0x467f - SIOCOUTQ = 0x7472 - SIOCOUTQNSD = 0x894b - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - SIOCSHWTSTAMP = 0x89b0 - SIOCSIFADDR = 0x8916 - SIOCSIFBR = 0x8941 - SIOCSIFBRDADDR = 0x891a - SIOCSIFDSTADDR = 0x8918 - SIOCSIFENCAP = 0x8926 - SIOCSIFFLAGS = 0x8914 - SIOCSIFHWADDR = 0x8924 - SIOCSIFHWBROADCAST = 0x8937 - SIOCSIFLINK = 0x8911 - SIOCSIFMAP = 0x8971 - SIOCSIFMEM = 0x8920 - SIOCSIFMETRIC = 0x891e - SIOCSIFMTU = 0x8922 - SIOCSIFNAME = 0x8923 - SIOCSIFNETMASK = 0x891c - SIOCSIFPFLAGS = 0x8934 - SIOCSIFSLAVE = 0x8930 - SIOCSIFTXQLEN = 0x8943 - SIOCSIFVLAN = 0x8983 - SIOCSMIIREG = 0x8949 - SIOCSPGRP = 0x80047308 - SIOCSRARP = 0x8962 - SIOCWANDEV = 0x894a - SOCK_CLOEXEC = 0x80000 - SOCK_DCCP = 0x6 - SOCK_DGRAM = 0x1 - SOCK_IOC_TYPE = 0x89 - SOCK_NONBLOCK = 0x80 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x2 - SOL_AAL = 0x109 - SOL_ALG = 0x117 - SOL_ATM = 0x108 - SOL_CAIF = 0x116 - SOL_CAN_BASE = 0x64 - SOL_DCCP = 0x10d - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_IUCV = 0x115 - SOL_KCM = 0x119 - SOL_LLC = 0x10c - SOL_NETBEUI = 0x10b - SOL_NETLINK = 0x10e - SOL_NFC = 0x118 - SOL_PACKET = 0x107 - SOL_PNPIPE = 0x113 - SOL_PPPOL2TP = 0x111 - SOL_RAW = 0xff - SOL_RDS = 0x114 - SOL_RXRPC = 0x110 - SOL_SOCKET = 0xffff - SOL_TCP = 0x6 - SOL_TIPC = 0x10f - SOL_X25 = 0x106 - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x1009 - SO_ATTACH_BPF = 0x32 - SO_ATTACH_FILTER = 0x1a - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x20 - SO_BSDCOMPAT = 0xe - SO_BUSY_POLL = 0x2e - SO_CNX_ADVICE = 0x35 - SO_DEBUG = 0x1 - SO_DETACH_BPF = 0x1b - SO_DETACH_FILTER = 0x1b - SO_DOMAIN = 0x1029 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_GET_FILTER = 0x1a - SO_INCOMING_CPU = 0x31 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_NOFCS = 0x2b - SO_NO_CHECK = 0xb - SO_OOBINLINE = 0x100 - SO_PASSCRED = 0x11 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x12 - SO_PEERNAME = 0x1c - SO_PEERSEC = 0x1e - SO_PRIORITY = 0xc - SO_PROTOCOL = 0x1028 - SO_RCVBUF = 0x1002 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x1001 - SO_SNDBUFFORCE = 0x1f - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_STYLE = 0x1008 - SO_TIMESTAMP = 0x1d - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TYPE = 0x1008 - SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 - SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 - SO_VM_SOCKETS_BUFFER_SIZE = 0x0 - SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 - SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 - SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 - SO_VM_SOCKETS_TRUSTED = 0x5 - SO_WIFI_STATUS = 0x29 - SPLICE_F_GIFT = 0x8 - SPLICE_F_MORE = 0x4 - SPLICE_F_MOVE = 0x1 - SPLICE_F_NONBLOCK = 0x2 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TASKSTATS_CMD_ATTR_MAX = 0x4 - TASKSTATS_CMD_MAX = 0x2 - TASKSTATS_GENL_NAME = "TASKSTATS" - TASKSTATS_GENL_VERSION = 0x1 - TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x8 - TCFLSH = 0x5407 - TCGETA = 0x5401 - TCGETS = 0x540d - TCGETS2 = 0x4030542a - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_CC_INFO = 0x1a - TCP_CONGESTION = 0xd - TCP_COOKIE_IN_ALWAYS = 0x1 - TCP_COOKIE_MAX = 0x10 - TCP_COOKIE_MIN = 0x8 - TCP_COOKIE_OUT_NEVER = 0x2 - TCP_COOKIE_PAIR_SIZE = 0x20 - TCP_COOKIE_TRANSACTIONS = 0xf - TCP_CORK = 0x3 - TCP_DEFER_ACCEPT = 0x9 - TCP_FASTOPEN = 0x17 - TCP_INFO = 0xb - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x4 - TCP_KEEPINTVL = 0x5 - TCP_LINGER2 = 0x8 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0xe - TCP_MD5SIG_MAXKEYLEN = 0x50 - TCP_MSS = 0x200 - TCP_MSS_DEFAULT = 0x218 - TCP_MSS_DESIRED = 0x4c4 - TCP_NODELAY = 0x1 - TCP_NOTSENT_LOWAT = 0x19 - TCP_QUEUE_SEQ = 0x15 - TCP_QUICKACK = 0xc - TCP_REPAIR = 0x13 - TCP_REPAIR_OPTIONS = 0x16 - TCP_REPAIR_QUEUE = 0x14 - TCP_REPAIR_WINDOW = 0x1d - TCP_SAVED_SYN = 0x1c - TCP_SAVE_SYN = 0x1b - TCP_SYNCNT = 0x7 - TCP_S_DATA_IN = 0x4 - TCP_S_DATA_OUT = 0x8 - TCP_THIN_DUPACK = 0x11 - TCP_THIN_LINEAR_TIMEOUTS = 0x10 - TCP_TIMESTAMP = 0x18 - TCP_USER_TIMEOUT = 0x12 - TCP_WINDOW_CLAMP = 0xa - TCSAFLUSH = 0x5410 - TCSBRK = 0x5405 - TCSBRKP = 0x5486 - TCSETA = 0x5402 - TCSETAF = 0x5404 - TCSETAW = 0x5403 - TCSETS = 0x540e - TCSETS2 = 0x8030542b - TCSETSF = 0x5410 - TCSETSF2 = 0x8030542d - TCSETSW = 0x540f - TCSETSW2 = 0x8030542c - TCXONC = 0x5406 - TIOCCBRK = 0x5428 - TIOCCONS = 0x80047478 - TIOCEXCL = 0x740d - TIOCGDEV = 0x40045432 - TIOCGETD = 0x7400 - TIOCGETP = 0x7408 - TIOCGEXCL = 0x40045440 - TIOCGICOUNT = 0x5492 - TIOCGLCKTRMIOS = 0x548b - TIOCGLTC = 0x7474 - TIOCGPGRP = 0x40047477 - TIOCGPKT = 0x40045438 - TIOCGPTLCK = 0x40045439 - TIOCGPTN = 0x40045430 - TIOCGRS485 = 0x4020542e - TIOCGSERIAL = 0x5484 - TIOCGSID = 0x7416 - TIOCGSOFTCAR = 0x5481 - TIOCGWINSZ = 0x40087468 - TIOCINQ = 0x467f - TIOCLINUX = 0x5483 - TIOCMBIC = 0x741c - TIOCMBIS = 0x741b - TIOCMGET = 0x741d - TIOCMIWAIT = 0x5491 - TIOCMSET = 0x741a - TIOCM_CAR = 0x100 - TIOCM_CD = 0x100 - TIOCM_CTS = 0x40 - TIOCM_DSR = 0x400 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x200 - TIOCM_RNG = 0x200 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x20 - TIOCM_ST = 0x10 - TIOCNOTTY = 0x5471 - TIOCNXCL = 0x740e - TIOCOUTQ = 0x7472 - TIOCPKT = 0x5470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x5480 - TIOCSERCONFIG = 0x5488 - TIOCSERGETLSR = 0x548e - TIOCSERGETMULTI = 0x548f - TIOCSERGSTRUCT = 0x548d - TIOCSERGWILD = 0x5489 - TIOCSERSETMULTI = 0x5490 - TIOCSERSWILD = 0x548a - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x7401 - TIOCSETN = 0x740a - TIOCSETP = 0x7409 - TIOCSIG = 0x80045436 - TIOCSLCKTRMIOS = 0x548c - TIOCSLTC = 0x7475 - TIOCSPGRP = 0x80047476 - TIOCSPTLCK = 0x80045431 - TIOCSRS485 = 0xc020542f - TIOCSSERIAL = 0x5485 - TIOCSSOFTCAR = 0x5482 - TIOCSTI = 0x5472 - TIOCSWINSZ = 0x80087467 - TIOCVHANGUP = 0x5437 - TOSTOP = 0x8000 - TS_COMM_LEN = 0x20 - TUNATTACHFILTER = 0x801054d5 - TUNDETACHFILTER = 0x801054d6 - TUNGETFEATURES = 0x400454cf - TUNGETFILTER = 0x401054db - TUNGETIFF = 0x400454d2 - TUNGETSNDBUF = 0x400454d3 - TUNGETVNETBE = 0x400454df - TUNGETVNETHDRSZ = 0x400454d7 - TUNGETVNETLE = 0x400454dd - TUNSETDEBUG = 0x800454c9 - TUNSETGROUP = 0x800454ce - TUNSETIFF = 0x800454ca - TUNSETIFINDEX = 0x800454da - TUNSETLINK = 0x800454cd - TUNSETNOCSUM = 0x800454c8 - TUNSETOFFLOAD = 0x800454d0 - TUNSETOWNER = 0x800454cc - TUNSETPERSIST = 0x800454cb - TUNSETQUEUE = 0x800454d9 - TUNSETSNDBUF = 0x800454d4 - TUNSETTXFILTER = 0x800454d1 - TUNSETVNETBE = 0x800454de - TUNSETVNETHDRSZ = 0x800454d8 - TUNSETVNETLE = 0x800454dc - UMOUNT_NOFOLLOW = 0x8 - VDISCARD = 0xd - VEOF = 0x10 - VEOL = 0x11 - VEOL2 = 0x6 - VERASE = 0x2 - VINTR = 0x0 - VKILL = 0x3 - VLNEXT = 0xf - VMADDR_CID_ANY = 0xffffffff - VMADDR_CID_HOST = 0x2 - VMADDR_CID_HYPERVISOR = 0x0 - VMADDR_CID_RESERVED = 0x1 - VMADDR_PORT_ANY = 0xffffffff - VMIN = 0x4 - VM_SOCKETS_INVALID_VERSION = 0xffffffff - VQUIT = 0x1 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VSWTCH = 0x7 - VT0 = 0x0 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WALL = 0x40000000 - WCLONE = 0x80000000 - WCONTINUED = 0x8 - WEXITED = 0x4 - WNOHANG = 0x1 - WNOTHREAD = 0x20000000 - WNOWAIT = 0x1000000 - WORDSIZE = 0x40 - WSTOPPED = 0x2 - WUNTRACED = 0x2 - XATTR_CREATE = 0x1 - XATTR_REPLACE = 0x2 - XCASE = 0x4 - XTABS = 0x1800 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x7d) - EADDRNOTAVAIL = syscall.Errno(0x7e) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x7c) - EAGAIN = syscall.Errno(0xb) - EALREADY = syscall.Errno(0x95) - EBADE = syscall.Errno(0x32) - EBADF = syscall.Errno(0x9) - EBADFD = syscall.Errno(0x51) - EBADMSG = syscall.Errno(0x4d) - EBADR = syscall.Errno(0x33) - EBADRQC = syscall.Errno(0x36) - EBADSLT = syscall.Errno(0x37) - EBFONT = syscall.Errno(0x3b) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x9e) - ECHILD = syscall.Errno(0xa) - ECHRNG = syscall.Errno(0x25) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x82) - ECONNREFUSED = syscall.Errno(0x92) - ECONNRESET = syscall.Errno(0x83) - EDEADLK = syscall.Errno(0x2d) - EDEADLOCK = syscall.Errno(0x38) - EDESTADDRREQ = syscall.Errno(0x60) - EDOM = syscall.Errno(0x21) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x46d) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EHOSTDOWN = syscall.Errno(0x93) - EHOSTUNREACH = syscall.Errno(0x94) - EHWPOISON = syscall.Errno(0xa8) - EIDRM = syscall.Errno(0x24) - EILSEQ = syscall.Errno(0x58) - EINIT = syscall.Errno(0x8d) - EINPROGRESS = syscall.Errno(0x96) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x85) - EISDIR = syscall.Errno(0x15) - EISNAM = syscall.Errno(0x8b) - EKEYEXPIRED = syscall.Errno(0xa2) - EKEYREJECTED = syscall.Errno(0xa4) - EKEYREVOKED = syscall.Errno(0xa3) - EL2HLT = syscall.Errno(0x2c) - EL2NSYNC = syscall.Errno(0x26) - EL3HLT = syscall.Errno(0x27) - EL3RST = syscall.Errno(0x28) - ELIBACC = syscall.Errno(0x53) - ELIBBAD = syscall.Errno(0x54) - ELIBEXEC = syscall.Errno(0x57) - ELIBMAX = syscall.Errno(0x56) - ELIBSCN = syscall.Errno(0x55) - ELNRNG = syscall.Errno(0x29) - ELOOP = syscall.Errno(0x5a) - EMEDIUMTYPE = syscall.Errno(0xa0) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x61) - EMULTIHOP = syscall.Errno(0x4a) - ENAMETOOLONG = syscall.Errno(0x4e) - ENAVAIL = syscall.Errno(0x8a) - ENETDOWN = syscall.Errno(0x7f) - ENETRESET = syscall.Errno(0x81) - ENETUNREACH = syscall.Errno(0x80) - ENFILE = syscall.Errno(0x17) - ENOANO = syscall.Errno(0x35) - ENOBUFS = syscall.Errno(0x84) - ENOCSI = syscall.Errno(0x2b) - ENODATA = syscall.Errno(0x3d) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOKEY = syscall.Errno(0xa1) - ENOLCK = syscall.Errno(0x2e) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x9f) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x23) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x63) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x59) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x86) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x5d) - ENOTNAM = syscall.Errno(0x89) - ENOTRECOVERABLE = syscall.Errno(0xa6) - ENOTSOCK = syscall.Errno(0x5f) - ENOTSUP = syscall.Errno(0x7a) - ENOTTY = syscall.Errno(0x19) - ENOTUNIQ = syscall.Errno(0x50) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x7a) - EOVERFLOW = syscall.Errno(0x4f) - EOWNERDEAD = syscall.Errno(0xa5) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x7b) - EPIPE = syscall.Errno(0x20) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x78) - EPROTOTYPE = syscall.Errno(0x62) - ERANGE = syscall.Errno(0x22) - EREMCHG = syscall.Errno(0x52) - EREMDEV = syscall.Errno(0x8e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x8c) - ERESTART = syscall.Errno(0x5b) - ERFKILL = syscall.Errno(0xa7) - EROFS = syscall.Errno(0x1e) - ESHUTDOWN = syscall.Errno(0x8f) - ESOCKTNOSUPPORT = syscall.Errno(0x79) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x97) - ESTRPIPE = syscall.Errno(0x5c) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x91) - ETOOMANYREFS = syscall.Errno(0x90) - ETXTBSY = syscall.Errno(0x1a) - EUCLEAN = syscall.Errno(0x87) - EUNATCH = syscall.Errno(0x2a) - EUSERS = syscall.Errno(0x5e) - EWOULDBLOCK = syscall.Errno(0xb) - EXDEV = syscall.Errno(0x12) - EXFULL = syscall.Errno(0x34) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x12) - SIGCLD = syscall.Signal(0x12) - SIGCONT = syscall.Signal(0x19) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x16) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) - SIGPOLL = syscall.Signal(0x16) - SIGPROF = syscall.Signal(0x1d) - SIGPWR = syscall.Signal(0x13) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x17) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x18) - SIGTTIN = syscall.Signal(0x1a) - SIGTTOU = syscall.Signal(0x1b) - SIGURG = syscall.Signal(0x15) - SIGUSR1 = syscall.Signal(0x10) - SIGUSR2 = syscall.Signal(0x11) - SIGVTALRM = syscall.Signal(0x1c) - SIGWINCH = syscall.Signal(0x14) - SIGXCPU = syscall.Signal(0x1e) - SIGXFSZ = syscall.Signal(0x1f) -) - -// Error table -var errors = [...]string{ - 1: "operation not permitted", - 2: "no such file or directory", - 3: "no such process", - 4: "interrupted system call", - 5: "input/output error", - 6: "no such device or address", - 7: "argument list too long", - 8: "exec format error", - 9: "bad file descriptor", - 10: "no child processes", - 11: "resource temporarily unavailable", - 12: "cannot allocate memory", - 13: "permission denied", - 14: "bad address", - 15: "block device required", - 16: "device or resource busy", - 17: "file exists", - 18: "invalid cross-device link", - 19: "no such device", - 20: "not a directory", - 21: "is a directory", - 22: "invalid argument", - 23: "too many open files in system", - 24: "too many open files", - 25: "inappropriate ioctl for device", - 26: "text file busy", - 27: "file too large", - 28: "no space left on device", - 29: "illegal seek", - 30: "read-only file system", - 31: "too many links", - 32: "broken pipe", - 33: "numerical argument out of domain", - 34: "numerical result out of range", - 35: "no message of desired type", - 36: "identifier removed", - 37: "channel number out of range", - 38: "level 2 not synchronized", - 39: "level 3 halted", - 40: "level 3 reset", - 41: "link number out of range", - 42: "protocol driver not attached", - 43: "no CSI structure available", - 44: "level 2 halted", - 45: "resource deadlock avoided", - 46: "no locks available", - 50: "invalid exchange", - 51: "invalid request descriptor", - 52: "exchange full", - 53: "no anode", - 54: "invalid request code", - 55: "invalid slot", - 56: "file locking deadlock error", - 59: "bad font file format", - 60: "device not a stream", - 61: "no data available", - 62: "timer expired", - 63: "out of streams resources", - 64: "machine is not on the network", - 65: "package not installed", - 66: "object is remote", - 67: "link has been severed", - 68: "advertise error", - 69: "srmount error", - 70: "communication error on send", - 71: "protocol error", - 73: "RFS specific error", - 74: "multihop attempted", - 77: "bad message", - 78: "file name too long", - 79: "value too large for defined data type", - 80: "name not unique on network", - 81: "file descriptor in bad state", - 82: "remote address changed", - 83: "can not access a needed shared library", - 84: "accessing a corrupted shared library", - 85: ".lib section in a.out corrupted", - 86: "attempting to link in too many shared libraries", - 87: "cannot exec a shared library directly", - 88: "invalid or incomplete multibyte or wide character", - 89: "function not implemented", - 90: "too many levels of symbolic links", - 91: "interrupted system call should be restarted", - 92: "streams pipe error", - 93: "directory not empty", - 94: "too many users", - 95: "socket operation on non-socket", - 96: "destination address required", - 97: "message too long", - 98: "protocol wrong type for socket", - 99: "protocol not available", - 120: "protocol not supported", - 121: "socket type not supported", - 122: "operation not supported", - 123: "protocol family not supported", - 124: "address family not supported by protocol", - 125: "address already in use", - 126: "cannot assign requested address", - 127: "network is down", - 128: "network is unreachable", - 129: "network dropped connection on reset", - 130: "software caused connection abort", - 131: "connection reset by peer", - 132: "no buffer space available", - 133: "transport endpoint is already connected", - 134: "transport endpoint is not connected", - 135: "structure needs cleaning", - 137: "not a XENIX named type file", - 138: "no XENIX semaphores available", - 139: "is a named type file", - 140: "remote I/O error", - 141: "unknown error 141", - 142: "unknown error 142", - 143: "cannot send after transport endpoint shutdown", - 144: "too many references: cannot splice", - 145: "connection timed out", - 146: "connection refused", - 147: "host is down", - 148: "no route to host", - 149: "operation already in progress", - 150: "operation now in progress", - 151: "stale file handle", - 158: "operation canceled", - 159: "no medium found", - 160: "wrong medium type", - 161: "required key not available", - 162: "key has expired", - 163: "key has been revoked", - 164: "key was rejected by service", - 165: "owner died", - 166: "state not recoverable", - 167: "operation not possible due to RF-kill", - 168: "memory page has hardware error", - 1133: "disk quota exceeded", -} - -// Signal table -var signals = [...]string{ - 1: "hangup", - 2: "interrupt", - 3: "quit", - 4: "illegal instruction", - 5: "trace/breakpoint trap", - 6: "aborted", - 7: "EMT trap", - 8: "floating point exception", - 9: "killed", - 10: "bus error", - 11: "segmentation fault", - 12: "bad system call", - 13: "broken pipe", - 14: "alarm clock", - 15: "terminated", - 16: "user defined signal 1", - 17: "user defined signal 2", - 18: "child exited", - 19: "power failure", - 20: "window changed", - 21: "urgent I/O condition", - 22: "I/O possible", - 23: "stopped (signal)", - 24: "stopped", - 25: "continued", - 26: "stopped (tty input)", - 27: "stopped (tty output)", - 28: "virtual timer expired", - 29: "profiling timer expired", - 30: "CPU time limit exceeded", - 31: "file size limit exceeded", -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go deleted file mode 100644 index 2310bee..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go +++ /dev/null @@ -1,2209 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/include -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build mips64le,linux - -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go - -package unix - -import "syscall" - -const ( - AF_ALG = 0x26 - AF_APPLETALK = 0x5 - AF_ASH = 0x12 - AF_ATMPVC = 0x8 - AF_ATMSVC = 0x14 - AF_AX25 = 0x3 - AF_BLUETOOTH = 0x1f - AF_BRIDGE = 0x7 - AF_CAIF = 0x25 - AF_CAN = 0x1d - AF_DECnet = 0xc - AF_ECONET = 0x13 - AF_FILE = 0x1 - AF_IB = 0x1b - AF_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KCM = 0x29 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x2b - AF_MPLS = 0x1c - AF_NETBEUI = 0xd - AF_NETLINK = 0x10 - AF_NETROM = 0x6 - AF_NFC = 0x27 - AF_PACKET = 0x11 - AF_PHONET = 0x23 - AF_PPPOX = 0x18 - AF_QIPCRTR = 0x2a - AF_RDS = 0x15 - AF_ROSE = 0xb - AF_ROUTE = 0x10 - AF_RXRPC = 0x21 - AF_SECURITY = 0xe - AF_SNA = 0x16 - AF_TIPC = 0x1e - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VSOCK = 0x28 - AF_WANPIPE = 0x19 - AF_X25 = 0x9 - ALG_OP_DECRYPT = 0x0 - ALG_OP_ENCRYPT = 0x1 - ALG_SET_AEAD_ASSOCLEN = 0x4 - ALG_SET_AEAD_AUTHSIZE = 0x5 - ALG_SET_IV = 0x2 - ALG_SET_KEY = 0x1 - ALG_SET_OP = 0x3 - ARPHRD_6LOWPAN = 0x339 - ARPHRD_ADAPT = 0x108 - ARPHRD_APPLETLK = 0x8 - ARPHRD_ARCNET = 0x7 - ARPHRD_ASH = 0x30d - ARPHRD_ATM = 0x13 - ARPHRD_AX25 = 0x3 - ARPHRD_BIF = 0x307 - ARPHRD_CAIF = 0x336 - ARPHRD_CAN = 0x118 - ARPHRD_CHAOS = 0x5 - ARPHRD_CISCO = 0x201 - ARPHRD_CSLIP = 0x101 - ARPHRD_CSLIP6 = 0x103 - ARPHRD_DDCMP = 0x205 - ARPHRD_DLCI = 0xf - ARPHRD_ECONET = 0x30e - ARPHRD_EETHER = 0x2 - ARPHRD_ETHER = 0x1 - ARPHRD_EUI64 = 0x1b - ARPHRD_FCAL = 0x311 - ARPHRD_FCFABRIC = 0x313 - ARPHRD_FCPL = 0x312 - ARPHRD_FCPP = 0x310 - ARPHRD_FDDI = 0x306 - ARPHRD_FRAD = 0x302 - ARPHRD_HDLC = 0x201 - ARPHRD_HIPPI = 0x30c - ARPHRD_HWX25 = 0x110 - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_IEEE80211 = 0x321 - ARPHRD_IEEE80211_PRISM = 0x322 - ARPHRD_IEEE80211_RADIOTAP = 0x323 - ARPHRD_IEEE802154 = 0x324 - ARPHRD_IEEE802154_MONITOR = 0x325 - ARPHRD_IEEE802_TR = 0x320 - ARPHRD_INFINIBAND = 0x20 - ARPHRD_IP6GRE = 0x337 - ARPHRD_IPDDP = 0x309 - ARPHRD_IPGRE = 0x30a - ARPHRD_IRDA = 0x30f - ARPHRD_LAPB = 0x204 - ARPHRD_LOCALTLK = 0x305 - ARPHRD_LOOPBACK = 0x304 - ARPHRD_METRICOM = 0x17 - ARPHRD_NETLINK = 0x338 - ARPHRD_NETROM = 0x0 - ARPHRD_NONE = 0xfffe - ARPHRD_PHONET = 0x334 - ARPHRD_PHONET_PIPE = 0x335 - ARPHRD_PIMREG = 0x30b - ARPHRD_PPP = 0x200 - ARPHRD_PRONET = 0x4 - ARPHRD_RAWHDLC = 0x206 - ARPHRD_ROSE = 0x10e - ARPHRD_RSRVD = 0x104 - ARPHRD_SIT = 0x308 - ARPHRD_SKIP = 0x303 - ARPHRD_SLIP = 0x100 - ARPHRD_SLIP6 = 0x102 - ARPHRD_TUNNEL = 0x300 - ARPHRD_TUNNEL6 = 0x301 - ARPHRD_VOID = 0xffff - ARPHRD_X25 = 0x10f - B0 = 0x0 - B1000000 = 0x1008 - B110 = 0x3 - B115200 = 0x1002 - B1152000 = 0x1009 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B1500000 = 0x100a - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B2000000 = 0x100b - B230400 = 0x1003 - B2400 = 0xb - B2500000 = 0x100c - B300 = 0x7 - B3000000 = 0x100d - B3500000 = 0x100e - B38400 = 0xf - B4000000 = 0x100f - B460800 = 0x1004 - B4800 = 0xc - B50 = 0x1 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B600 = 0x8 - B75 = 0x2 - B921600 = 0x1007 - B9600 = 0xd - BLKBSZGET = 0x40081270 - BLKBSZSET = 0x80081271 - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40081272 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d - BLKRRPART = 0x2000125f - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 - BOTHER = 0x1000 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIV = 0x30 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LL_OFF = -0x200000 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXINSNS = 0x1000 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_NET_OFF = -0x100000 - BPF_OR = 0x40 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XOR = 0xa0 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x2000 - BSDLY = 0x2000 - CAN_BCM = 0x2 - CAN_EFF_FLAG = 0x80000000 - CAN_EFF_ID_BITS = 0x1d - CAN_EFF_MASK = 0x1fffffff - CAN_ERR_FLAG = 0x20000000 - CAN_ERR_MASK = 0x1fffffff - CAN_INV_FILTER = 0x20000000 - CAN_ISOTP = 0x6 - CAN_MAX_DLC = 0x8 - CAN_MAX_DLEN = 0x8 - CAN_MCNET = 0x5 - CAN_MTU = 0x10 - CAN_NPROTO = 0x7 - CAN_RAW = 0x1 - CAN_RAW_FILTER_MAX = 0x200 - CAN_RTR_FLAG = 0x40000000 - CAN_SFF_ID_BITS = 0xb - CAN_SFF_MASK = 0x7ff - CAN_TP16 = 0x3 - CAN_TP20 = 0x4 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CFLUSH = 0xf - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CLOCK_BOOTTIME = 0x7 - CLOCK_BOOTTIME_ALARM = 0x9 - CLOCK_DEFAULT = 0x0 - CLOCK_EXT = 0x1 - CLOCK_INT = 0x2 - CLOCK_MONOTONIC = 0x1 - CLOCK_MONOTONIC_COARSE = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_ALARM = 0x8 - CLOCK_REALTIME_COARSE = 0x5 - CLOCK_TAI = 0xb - CLOCK_THREAD_CPUTIME_ID = 0x3 - CLOCK_TXFROMRX = 0x4 - CLOCK_TXINT = 0x3 - CLONE_CHILD_CLEARTID = 0x200000 - CLONE_CHILD_SETTID = 0x1000000 - CLONE_DETACHED = 0x400000 - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_IO = 0x80000000 - CLONE_NEWCGROUP = 0x2000000 - CLONE_NEWIPC = 0x8000000 - CLONE_NEWNET = 0x40000000 - CLONE_NEWNS = 0x20000 - CLONE_NEWPID = 0x20000000 - CLONE_NEWUSER = 0x10000000 - CLONE_NEWUTS = 0x4000000 - CLONE_PARENT = 0x8000 - CLONE_PARENT_SETTID = 0x100000 - CLONE_PTRACE = 0x2000 - CLONE_SETTLS = 0x80000 - CLONE_SIGHAND = 0x800 - CLONE_SYSVSEM = 0x40000 - CLONE_THREAD = 0x10000 - CLONE_UNTRACED = 0x800000 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CMSPAR = 0x40000000 - CR0 = 0x0 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRDLY = 0x600 - CREAD = 0x80 - CRTSCTS = 0x80000000 - CS5 = 0x0 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIGNAL = 0xff - CSIZE = 0x30 - CSTART = 0x11 - CSTATUS = 0x0 - CSTOP = 0x13 - CSTOPB = 0x40 - CSUSP = 0x1a - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x80 - EFD_SEMAPHORE = 0x1 - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - EPOLLEXCLUSIVE = 0x10000000 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLONESHOT = 0x40000000 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDHUP = 0x2000 - EPOLLRDNORM = 0x40 - EPOLLWAKEUP = 0x20000000 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CLOEXEC = 0x80000 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - ETH_P_1588 = 0x88f7 - ETH_P_8021AD = 0x88a8 - ETH_P_8021AH = 0x88e7 - ETH_P_8021Q = 0x8100 - ETH_P_80221 = 0x8917 - ETH_P_802_2 = 0x4 - ETH_P_802_3 = 0x1 - ETH_P_802_3_MIN = 0x600 - ETH_P_802_EX1 = 0x88b5 - ETH_P_AARP = 0x80f3 - ETH_P_AF_IUCV = 0xfbfb - ETH_P_ALL = 0x3 - ETH_P_AOE = 0x88a2 - ETH_P_ARCNET = 0x1a - ETH_P_ARP = 0x806 - ETH_P_ATALK = 0x809b - ETH_P_ATMFATE = 0x8884 - ETH_P_ATMMPOA = 0x884c - ETH_P_AX25 = 0x2 - ETH_P_BATMAN = 0x4305 - ETH_P_BPQ = 0x8ff - ETH_P_CAIF = 0xf7 - ETH_P_CAN = 0xc - ETH_P_CANFD = 0xd - ETH_P_CONTROL = 0x16 - ETH_P_CUST = 0x6006 - ETH_P_DDCMP = 0x6 - ETH_P_DEC = 0x6000 - ETH_P_DIAG = 0x6005 - ETH_P_DNA_DL = 0x6001 - ETH_P_DNA_RC = 0x6002 - ETH_P_DNA_RT = 0x6003 - ETH_P_DSA = 0x1b - ETH_P_ECONET = 0x18 - ETH_P_EDSA = 0xdada - ETH_P_FCOE = 0x8906 - ETH_P_FIP = 0x8914 - ETH_P_HDLC = 0x19 - ETH_P_HSR = 0x892f - ETH_P_IEEE802154 = 0xf6 - ETH_P_IEEEPUP = 0xa00 - ETH_P_IEEEPUPAT = 0xa01 - ETH_P_IP = 0x800 - ETH_P_IPV6 = 0x86dd - ETH_P_IPX = 0x8137 - ETH_P_IRDA = 0x17 - ETH_P_LAT = 0x6004 - ETH_P_LINK_CTL = 0x886c - ETH_P_LOCALTALK = 0x9 - ETH_P_LOOP = 0x60 - ETH_P_LOOPBACK = 0x9000 - ETH_P_MACSEC = 0x88e5 - ETH_P_MOBITEX = 0x15 - ETH_P_MPLS_MC = 0x8848 - ETH_P_MPLS_UC = 0x8847 - ETH_P_MVRP = 0x88f5 - ETH_P_NCSI = 0x88f8 - ETH_P_PAE = 0x888e - ETH_P_PAUSE = 0x8808 - ETH_P_PHONET = 0xf5 - ETH_P_PPPTALK = 0x10 - ETH_P_PPP_DISC = 0x8863 - ETH_P_PPP_MP = 0x8 - ETH_P_PPP_SES = 0x8864 - ETH_P_PRP = 0x88fb - ETH_P_PUP = 0x200 - ETH_P_PUPAT = 0x201 - ETH_P_QINQ1 = 0x9100 - ETH_P_QINQ2 = 0x9200 - ETH_P_QINQ3 = 0x9300 - ETH_P_RARP = 0x8035 - ETH_P_SCA = 0x6007 - ETH_P_SLOW = 0x8809 - ETH_P_SNAP = 0x5 - ETH_P_TDLS = 0x890d - ETH_P_TEB = 0x6558 - ETH_P_TIPC = 0x88ca - ETH_P_TRAILER = 0x1c - ETH_P_TR_802_2 = 0x11 - ETH_P_TSN = 0x22f0 - ETH_P_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - ETH_P_XDSA = 0xf8 - EXTA = 0xe - EXTB = 0xf - EXTPROC = 0x10000 - FALLOC_FL_COLLAPSE_RANGE = 0x8 - FALLOC_FL_INSERT_RANGE = 0x20 - FALLOC_FL_KEEP_SIZE = 0x1 - FALLOC_FL_NO_HIDE_STALE = 0x4 - FALLOC_FL_PUNCH_HOLE = 0x2 - FALLOC_FL_UNSHARE_RANGE = 0x40 - FALLOC_FL_ZERO_RANGE = 0x10 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x8000 - FFDLY = 0x8000 - FLUSHO = 0x2000 - FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 - FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 - FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 - FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 - FS_ENCRYPTION_MODE_INVALID = 0x0 - FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 - FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 - FS_KEY_DESCRIPTOR_SIZE = 0x8 - FS_KEY_DESC_PREFIX = "fscrypt:" - FS_KEY_DESC_PREFIX_SIZE = 0x8 - FS_MAX_KEY_SIZE = 0x40 - FS_POLICY_FLAGS_PAD_16 = 0x2 - FS_POLICY_FLAGS_PAD_32 = 0x3 - FS_POLICY_FLAGS_PAD_4 = 0x0 - FS_POLICY_FLAGS_PAD_8 = 0x1 - FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x3 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x406 - F_EXLCK = 0x4 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLEASE = 0x401 - F_GETLK = 0xe - F_GETLK64 = 0xe - F_GETOWN = 0x17 - F_GETOWN_EX = 0x10 - F_GETPIPE_SZ = 0x408 - F_GETSIG = 0xb - F_LOCK = 0x1 - F_NOTIFY = 0x402 - F_OFD_GETLK = 0x24 - F_OFD_SETLK = 0x25 - F_OFD_SETLKW = 0x26 - F_OK = 0x0 - F_RDLCK = 0x0 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLEASE = 0x400 - F_SETLK = 0x6 - F_SETLK64 = 0x6 - F_SETLKW = 0x7 - F_SETLKW64 = 0x7 - F_SETOWN = 0x18 - F_SETOWN_EX = 0xf - F_SETPIPE_SZ = 0x407 - F_SETSIG = 0xa - F_SHLCK = 0x8 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_ULOCK = 0x0 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - GENL_ADMIN_PERM = 0x1 - GENL_CMD_CAP_DO = 0x2 - GENL_CMD_CAP_DUMP = 0x4 - GENL_CMD_CAP_HASPOL = 0x8 - GENL_HDRLEN = 0x4 - GENL_ID_CTRL = 0x10 - GENL_ID_PMCRAID = 0x12 - GENL_ID_VFS_DQUOT = 0x11 - GENL_MAX_ID = 0x3ff - GENL_MIN_ID = 0x10 - GENL_NAMSIZ = 0x10 - GENL_START_ALLOC = 0x13 - GENL_UNS_ADMIN_PERM = 0x10 - GRND_NONBLOCK = 0x1 - GRND_RANDOM = 0x2 - HUPCL = 0x400 - IBSHIFT = 0x10 - ICANON = 0x2 - ICMPV6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x100 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_MANAGETEMPADDR = 0x100 - IFA_F_MCAUTOJOIN = 0x400 - IFA_F_NODAD = 0x2 - IFA_F_NOPREFIXROUTE = 0x200 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_STABLE_PRIVACY = 0x800 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0x8 - IFF_ALLMULTI = 0x200 - IFF_ATTACH_QUEUE = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DETACH_QUEUE = 0x400 - IFF_DORMANT = 0x20000 - IFF_DYNAMIC = 0x8000 - IFF_ECHO = 0x40000 - IFF_LOOPBACK = 0x8 - IFF_LOWER_UP = 0x10000 - IFF_MASTER = 0x400 - IFF_MULTICAST = 0x1000 - IFF_MULTI_QUEUE = 0x100 - IFF_NOARP = 0x80 - IFF_NOFILTER = 0x1000 - IFF_NOTRAILERS = 0x20 - IFF_NO_PI = 0x1000 - IFF_ONE_QUEUE = 0x2000 - IFF_PERSIST = 0x800 - IFF_POINTOPOINT = 0x10 - IFF_PORTSEL = 0x2000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SLAVE = 0x800 - IFF_TAP = 0x2 - IFF_TUN = 0x1 - IFF_TUN_EXCL = 0x8000 - IFF_UP = 0x1 - IFF_VNET_HDR = 0x4000 - IFF_VOLATILE = 0x70c5a - IFNAMSIZ = 0x10 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_ACCESS = 0x1 - IN_ALL_EVENTS = 0xfff - IN_ATTRIB = 0x4 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLOEXEC = 0x80000 - IN_CLOSE = 0x18 - IN_CLOSE_NOWRITE = 0x10 - IN_CLOSE_WRITE = 0x8 - IN_CREATE = 0x100 - IN_DELETE = 0x200 - IN_DELETE_SELF = 0x400 - IN_DONT_FOLLOW = 0x2000000 - IN_EXCL_UNLINK = 0x4000000 - IN_IGNORED = 0x8000 - IN_ISDIR = 0x40000000 - IN_LOOPBACKNET = 0x7f - IN_MASK_ADD = 0x20000000 - IN_MODIFY = 0x2 - IN_MOVE = 0xc0 - IN_MOVED_FROM = 0x40 - IN_MOVED_TO = 0x80 - IN_MOVE_SELF = 0x800 - IN_NONBLOCK = 0x80 - IN_ONESHOT = 0x80000000 - IN_ONLYDIR = 0x1000000 - IN_OPEN = 0x20 - IN_Q_OVERFLOW = 0x4000 - IN_UNMOUNT = 0x2000 - IPPROTO_AH = 0x33 - IPPROTO_BEETPH = 0x5e - IPPROTO_COMP = 0x6c - IPPROTO_DCCP = 0x21 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPIP = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MH = 0x87 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_NONE = 0x3b - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_2292DSTOPTS = 0x4 - IPV6_2292HOPLIMIT = 0x8 - IPV6_2292HOPOPTS = 0x3 - IPV6_2292PKTINFO = 0x2 - IPV6_2292PKTOPTIONS = 0x6 - IPV6_2292RTHDR = 0x5 - IPV6_ADDRFORM = 0x1 - IPV6_ADD_MEMBERSHIP = 0x14 - IPV6_AUTHHDR = 0xa - IPV6_CHECKSUM = 0x7 - IPV6_DONTFRAG = 0x3e - IPV6_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - IPV6_HDRINCL = 0x24 - IPV6_HOPLIMIT = 0x34 - IPV6_HOPOPTS = 0x36 - IPV6_IPSEC_POLICY = 0x22 - IPV6_JOIN_ANYCAST = 0x1b - IPV6_JOIN_GROUP = 0x14 - IPV6_LEAVE_ANYCAST = 0x1c - IPV6_LEAVE_GROUP = 0x15 - IPV6_MTU = 0x18 - IPV6_MTU_DISCOVER = 0x17 - IPV6_MULTICAST_HOPS = 0x12 - IPV6_MULTICAST_IF = 0x11 - IPV6_MULTICAST_LOOP = 0x13 - IPV6_NEXTHOP = 0x9 - IPV6_PATHMTU = 0x3d - IPV6_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_INTERFACE = 0x4 - IPV6_PMTUDISC_OMIT = 0x5 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVPATHMTU = 0x3c - IPV6_RECVPKTINFO = 0x31 - IPV6_RECVRTHDR = 0x38 - IPV6_RECVTCLASS = 0x42 - IPV6_ROUTER_ALERT = 0x16 - IPV6_RTHDR = 0x39 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RXDSTOPTS = 0x3b - IPV6_RXHOPOPTS = 0x36 - IPV6_TCLASS = 0x43 - IPV6_UNICAST_HOPS = 0x10 - IPV6_V6ONLY = 0x1a - IPV6_XFRM_POLICY = 0x23 - IP_ADD_MEMBERSHIP = 0x23 - IP_ADD_SOURCE_MEMBERSHIP = 0x27 - IP_BIND_ADDRESS_NO_PORT = 0x18 - IP_BLOCK_SOURCE = 0x26 - IP_CHECKSUM = 0x17 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0x24 - IP_DROP_SOURCE_MEMBERSHIP = 0x28 - IP_FREEBIND = 0xf - IP_HDRINCL = 0x3 - IP_IPSEC_POLICY = 0x10 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINTTL = 0x15 - IP_MSFILTER = 0x29 - IP_MSS = 0x240 - IP_MTU = 0xe - IP_MTU_DISCOVER = 0xa - IP_MULTICAST_ALL = 0x31 - IP_MULTICAST_IF = 0x20 - IP_MULTICAST_LOOP = 0x22 - IP_MULTICAST_TTL = 0x21 - IP_NODEFRAG = 0x16 - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x4 - IP_ORIGDSTADDR = 0x14 - IP_PASSSEC = 0x12 - IP_PKTINFO = 0x8 - IP_PKTOPTIONS = 0x9 - IP_PMTUDISC = 0xa - IP_PMTUDISC_DO = 0x2 - IP_PMTUDISC_DONT = 0x0 - IP_PMTUDISC_INTERFACE = 0x4 - IP_PMTUDISC_OMIT = 0x5 - IP_PMTUDISC_PROBE = 0x3 - IP_PMTUDISC_WANT = 0x1 - IP_RECVERR = 0xb - IP_RECVOPTS = 0x6 - IP_RECVORIGDSTADDR = 0x14 - IP_RECVRETOPTS = 0x7 - IP_RECVTOS = 0xd - IP_RECVTTL = 0xc - IP_RETOPTS = 0x7 - IP_RF = 0x8000 - IP_ROUTER_ALERT = 0x5 - IP_TOS = 0x1 - IP_TRANSPARENT = 0x13 - IP_TTL = 0x2 - IP_UNBLOCK_SOURCE = 0x25 - IP_UNICAST_IF = 0x32 - IP_XFRM_POLICY = 0x11 - ISIG = 0x1 - ISTRIP = 0x20 - IUCLC = 0x200 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x1000 - IXON = 0x400 - KEYCTL_ASSUME_AUTHORITY = 0x10 - KEYCTL_CHOWN = 0x4 - KEYCTL_CLEAR = 0x7 - KEYCTL_DESCRIBE = 0x6 - KEYCTL_DH_COMPUTE = 0x17 - KEYCTL_GET_KEYRING_ID = 0x0 - KEYCTL_GET_PERSISTENT = 0x16 - KEYCTL_GET_SECURITY = 0x11 - KEYCTL_INSTANTIATE = 0xc - KEYCTL_INSTANTIATE_IOV = 0x14 - KEYCTL_INVALIDATE = 0x15 - KEYCTL_JOIN_SESSION_KEYRING = 0x1 - KEYCTL_LINK = 0x8 - KEYCTL_NEGATE = 0xd - KEYCTL_READ = 0xb - KEYCTL_REJECT = 0x13 - KEYCTL_REVOKE = 0x3 - KEYCTL_SEARCH = 0xa - KEYCTL_SESSION_TO_PARENT = 0x12 - KEYCTL_SETPERM = 0x5 - KEYCTL_SET_REQKEY_KEYRING = 0xe - KEYCTL_SET_TIMEOUT = 0xf - KEYCTL_UNLINK = 0x9 - KEYCTL_UPDATE = 0x2 - KEY_REQKEY_DEFL_DEFAULT = 0x0 - KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 - KEY_REQKEY_DEFL_NO_CHANGE = -0x1 - KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 - KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 - KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 - KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 - KEY_REQKEY_DEFL_USER_KEYRING = 0x4 - KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 - KEY_SPEC_GROUP_KEYRING = -0x6 - KEY_SPEC_PROCESS_KEYRING = -0x2 - KEY_SPEC_REQKEY_AUTH_KEY = -0x7 - KEY_SPEC_REQUESTOR_KEYRING = -0x8 - KEY_SPEC_SESSION_KEYRING = -0x3 - KEY_SPEC_THREAD_KEYRING = -0x1 - KEY_SPEC_USER_KEYRING = -0x4 - KEY_SPEC_USER_SESSION_KEYRING = -0x5 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef - LINUX_REBOOT_CMD_HALT = 0xcdef0123 - LINUX_REBOOT_CMD_KEXEC = 0x45584543 - LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc - LINUX_REBOOT_CMD_RESTART = 0x1234567 - LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 - LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 - LINUX_REBOOT_MAGIC1 = 0xfee1dead - LINUX_REBOOT_MAGIC2 = 0x28121969 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DODUMP = 0x11 - MADV_DOFORK = 0xb - MADV_DONTDUMP = 0x10 - MADV_DONTFORK = 0xa - MADV_DONTNEED = 0x4 - MADV_FREE = 0x8 - MADV_HUGEPAGE = 0xe - MADV_HWPOISON = 0x64 - MADV_MERGEABLE = 0xc - MADV_NOHUGEPAGE = 0xf - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_REMOVE = 0x9 - MADV_SEQUENTIAL = 0x2 - MADV_UNMERGEABLE = 0xd - MADV_WILLNEED = 0x3 - MAP_ANON = 0x800 - MAP_ANONYMOUS = 0x800 - MAP_DENYWRITE = 0x2000 - MAP_EXECUTABLE = 0x4000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_GROWSDOWN = 0x1000 - MAP_HUGETLB = 0x80000 - MAP_HUGE_MASK = 0x3f - MAP_HUGE_SHIFT = 0x1a - MAP_LOCKED = 0x8000 - MAP_NONBLOCK = 0x20000 - MAP_NORESERVE = 0x400 - MAP_POPULATE = 0x10000 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x800 - MAP_SHARED = 0x1 - MAP_STACK = 0x40000 - MAP_TYPE = 0xf - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - MSG_BATCH = 0x40000 - MSG_CMSG_CLOEXEC = 0x40000000 - MSG_CONFIRM = 0x800 - MSG_CTRUNC = 0x8 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x40 - MSG_EOR = 0x80 - MSG_ERRQUEUE = 0x2000 - MSG_FASTOPEN = 0x20000000 - MSG_FIN = 0x200 - MSG_MORE = 0x8000 - MSG_NOSIGNAL = 0x4000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_PROXY = 0x10 - MSG_RST = 0x1000 - MSG_SYN = 0x400 - MSG_TRUNC = 0x20 - MSG_TRYHARD = 0x4 - MSG_WAITALL = 0x100 - MSG_WAITFORONE = 0x10000 - MS_ACTIVE = 0x40000000 - MS_ASYNC = 0x1 - MS_BIND = 0x1000 - MS_BORN = 0x20000000 - MS_DIRSYNC = 0x80 - MS_INVALIDATE = 0x2 - MS_I_VERSION = 0x800000 - MS_KERNMOUNT = 0x400000 - MS_LAZYTIME = 0x2000000 - MS_MANDLOCK = 0x40 - MS_MGC_MSK = 0xffff0000 - MS_MGC_VAL = 0xc0ed0000 - MS_MOVE = 0x2000 - MS_NOATIME = 0x400 - MS_NODEV = 0x4 - MS_NODIRATIME = 0x800 - MS_NOEXEC = 0x8 - MS_NOREMOTELOCK = 0x8000000 - MS_NOSEC = 0x10000000 - MS_NOSUID = 0x2 - MS_NOUSER = -0x80000000 - MS_POSIXACL = 0x10000 - MS_PRIVATE = 0x40000 - MS_RDONLY = 0x1 - MS_REC = 0x4000 - MS_RELATIME = 0x200000 - MS_REMOUNT = 0x20 - MS_RMT_MASK = 0x2800051 - MS_SHARED = 0x100000 - MS_SILENT = 0x8000 - MS_SLAVE = 0x80000 - MS_STRICTATIME = 0x1000000 - MS_SYNC = 0x4 - MS_SYNCHRONOUS = 0x10 - MS_UNBINDABLE = 0x20000 - MS_VERBOSE = 0x8000 - NAME_MAX = 0xff - NETLINK_ADD_MEMBERSHIP = 0x1 - NETLINK_AUDIT = 0x9 - NETLINK_BROADCAST_ERROR = 0x4 - NETLINK_CAP_ACK = 0xa - NETLINK_CONNECTOR = 0xb - NETLINK_CRYPTO = 0x15 - NETLINK_DNRTMSG = 0xe - NETLINK_DROP_MEMBERSHIP = 0x2 - NETLINK_ECRYPTFS = 0x13 - NETLINK_FIB_LOOKUP = 0xa - NETLINK_FIREWALL = 0x3 - NETLINK_GENERIC = 0x10 - NETLINK_INET_DIAG = 0x4 - NETLINK_IP6_FW = 0xd - NETLINK_ISCSI = 0x8 - NETLINK_KOBJECT_UEVENT = 0xf - NETLINK_LISTEN_ALL_NSID = 0x8 - NETLINK_LIST_MEMBERSHIPS = 0x9 - NETLINK_NETFILTER = 0xc - NETLINK_NFLOG = 0x5 - NETLINK_NO_ENOBUFS = 0x5 - NETLINK_PKTINFO = 0x3 - NETLINK_RDMA = 0x14 - NETLINK_ROUTE = 0x0 - NETLINK_RX_RING = 0x6 - NETLINK_SCSITRANSPORT = 0x12 - NETLINK_SELINUX = 0x7 - NETLINK_SOCK_DIAG = 0x4 - NETLINK_TX_RING = 0x7 - NETLINK_UNUSED = 0x1 - NETLINK_USERSOCK = 0x2 - NETLINK_XFRM = 0x6 - NL0 = 0x0 - NL1 = 0x100 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - NLDLY = 0x100 - NLMSG_ALIGNTO = 0x4 - NLMSG_DONE = 0x3 - NLMSG_ERROR = 0x2 - NLMSG_HDRLEN = 0x10 - NLMSG_MIN_TYPE = 0x10 - NLMSG_NOOP = 0x1 - NLMSG_OVERRUN = 0x4 - NLM_F_ACK = 0x4 - NLM_F_APPEND = 0x800 - NLM_F_ATOMIC = 0x400 - NLM_F_CREATE = 0x400 - NLM_F_DUMP = 0x300 - NLM_F_DUMP_FILTERED = 0x20 - NLM_F_DUMP_INTR = 0x10 - NLM_F_ECHO = 0x8 - NLM_F_EXCL = 0x200 - NLM_F_MATCH = 0x200 - NLM_F_MULTI = 0x2 - NLM_F_REPLACE = 0x100 - NLM_F_REQUEST = 0x1 - NLM_F_ROOT = 0x100 - NOFLSH = 0x80 - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x2 - ONLCR = 0x4 - ONLRET = 0x20 - ONOCR = 0x10 - OPOST = 0x1 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x1000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x100 - O_DIRECT = 0x8000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x10 - O_EXCL = 0x400 - O_FSYNC = 0x4010 - O_LARGEFILE = 0x0 - O_NDELAY = 0x80 - O_NOATIME = 0x40000 - O_NOCTTY = 0x800 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x80 - O_PATH = 0x200000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x4010 - O_SYNC = 0x4010 - O_TMPFILE = 0x410000 - O_TRUNC = 0x200 - O_WRONLY = 0x1 - PACKET_ADD_MEMBERSHIP = 0x1 - PACKET_AUXDATA = 0x8 - PACKET_BROADCAST = 0x1 - PACKET_COPY_THRESH = 0x7 - PACKET_DROP_MEMBERSHIP = 0x2 - PACKET_FANOUT = 0x12 - PACKET_FANOUT_CBPF = 0x6 - PACKET_FANOUT_CPU = 0x2 - PACKET_FANOUT_DATA = 0x16 - PACKET_FANOUT_EBPF = 0x7 - PACKET_FANOUT_FLAG_DEFRAG = 0x8000 - PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 - PACKET_FANOUT_HASH = 0x0 - PACKET_FANOUT_LB = 0x1 - PACKET_FANOUT_QM = 0x5 - PACKET_FANOUT_RND = 0x4 - PACKET_FANOUT_ROLLOVER = 0x3 - PACKET_FASTROUTE = 0x6 - PACKET_HDRLEN = 0xb - PACKET_HOST = 0x0 - PACKET_KERNEL = 0x7 - PACKET_LOOPBACK = 0x5 - PACKET_LOSS = 0xe - PACKET_MR_ALLMULTI = 0x2 - PACKET_MR_MULTICAST = 0x0 - PACKET_MR_PROMISC = 0x1 - PACKET_MR_UNICAST = 0x3 - PACKET_MULTICAST = 0x2 - PACKET_ORIGDEV = 0x9 - PACKET_OTHERHOST = 0x3 - PACKET_OUTGOING = 0x4 - PACKET_QDISC_BYPASS = 0x14 - PACKET_RECV_OUTPUT = 0x3 - PACKET_RESERVE = 0xc - PACKET_ROLLOVER_STATS = 0x15 - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - PACKET_TIMESTAMP = 0x11 - PACKET_TX_HAS_OFF = 0x13 - PACKET_TX_RING = 0xd - PACKET_TX_TIMESTAMP = 0x10 - PACKET_USER = 0x6 - PACKET_VERSION = 0xa - PACKET_VNET_HDR = 0xf - PARENB = 0x100 - PARITY_CRC16_PR0 = 0x2 - PARITY_CRC16_PR0_CCITT = 0x4 - PARITY_CRC16_PR1 = 0x3 - PARITY_CRC16_PR1_CCITT = 0x5 - PARITY_CRC32_PR0_CCITT = 0x6 - PARITY_CRC32_PR1_CCITT = 0x7 - PARITY_DEFAULT = 0x0 - PARITY_NONE = 0x1 - PARMRK = 0x8 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x20002401 - PERF_EVENT_IOC_ENABLE = 0x20002400 - PERF_EVENT_IOC_ID = 0x40082407 - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 - PERF_EVENT_IOC_PERIOD = 0x80082404 - PERF_EVENT_IOC_REFRESH = 0x20002402 - PERF_EVENT_IOC_RESET = 0x20002403 - PERF_EVENT_IOC_SET_BPF = 0x80042408 - PERF_EVENT_IOC_SET_FILTER = 0x80082406 - PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_GROWSDOWN = 0x1000000 - PROT_GROWSUP = 0x2000000 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PR_CAPBSET_DROP = 0x18 - PR_CAPBSET_READ = 0x17 - PR_CAP_AMBIENT = 0x2f - PR_CAP_AMBIENT_CLEAR_ALL = 0x4 - PR_CAP_AMBIENT_IS_SET = 0x1 - PR_CAP_AMBIENT_LOWER = 0x3 - PR_CAP_AMBIENT_RAISE = 0x2 - PR_ENDIAN_BIG = 0x0 - PR_ENDIAN_LITTLE = 0x1 - PR_ENDIAN_PPC_LITTLE = 0x2 - PR_FPEMU_NOPRINT = 0x1 - PR_FPEMU_SIGFPE = 0x2 - PR_FP_EXC_ASYNC = 0x2 - PR_FP_EXC_DISABLED = 0x0 - PR_FP_EXC_DIV = 0x10000 - PR_FP_EXC_INV = 0x100000 - PR_FP_EXC_NONRECOV = 0x1 - PR_FP_EXC_OVF = 0x20000 - PR_FP_EXC_PRECISE = 0x3 - PR_FP_EXC_RES = 0x80000 - PR_FP_EXC_SW_ENABLE = 0x80 - PR_FP_EXC_UND = 0x40000 - PR_FP_MODE_FR = 0x1 - PR_FP_MODE_FRE = 0x2 - PR_GET_CHILD_SUBREAPER = 0x25 - PR_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - PR_GET_FP_MODE = 0x2e - PR_GET_KEEPCAPS = 0x7 - PR_GET_NAME = 0x10 - PR_GET_NO_NEW_PRIVS = 0x27 - PR_GET_PDEATHSIG = 0x2 - PR_GET_SECCOMP = 0x15 - PR_GET_SECUREBITS = 0x1b - PR_GET_THP_DISABLE = 0x2a - PR_GET_TID_ADDRESS = 0x28 - PR_GET_TIMERSLACK = 0x1e - PR_GET_TIMING = 0xd - PR_GET_TSC = 0x19 - PR_GET_UNALIGN = 0x5 - PR_MCE_KILL = 0x21 - PR_MCE_KILL_CLEAR = 0x0 - PR_MCE_KILL_DEFAULT = 0x2 - PR_MCE_KILL_EARLY = 0x1 - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_SET_CHILD_SUBREAPER = 0x24 - PR_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - PR_SET_FP_MODE = 0x2d - PR_SET_KEEPCAPS = 0x8 - PR_SET_MM = 0x23 - PR_SET_MM_ARG_END = 0x9 - PR_SET_MM_ARG_START = 0x8 - PR_SET_MM_AUXV = 0xc - PR_SET_MM_BRK = 0x7 - PR_SET_MM_END_CODE = 0x2 - PR_SET_MM_END_DATA = 0x4 - PR_SET_MM_ENV_END = 0xb - PR_SET_MM_ENV_START = 0xa - PR_SET_MM_EXE_FILE = 0xd - PR_SET_MM_MAP = 0xe - PR_SET_MM_MAP_SIZE = 0xf - PR_SET_MM_START_BRK = 0x6 - PR_SET_MM_START_CODE = 0x1 - PR_SET_MM_START_DATA = 0x3 - PR_SET_MM_START_STACK = 0x5 - PR_SET_NAME = 0xf - PR_SET_NO_NEW_PRIVS = 0x26 - PR_SET_PDEATHSIG = 0x1 - PR_SET_PTRACER = 0x59616d61 - PR_SET_PTRACER_ANY = -0x1 - PR_SET_SECCOMP = 0x16 - PR_SET_SECUREBITS = 0x1c - PR_SET_THP_DISABLE = 0x29 - PR_SET_TIMERSLACK = 0x1d - PR_SET_TIMING = 0xe - PR_SET_TSC = 0x1a - PR_SET_UNALIGN = 0x6 - PR_TASK_PERF_EVENTS_DISABLE = 0x1f - PR_TASK_PERF_EVENTS_ENABLE = 0x20 - PR_TIMING_STATISTICAL = 0x0 - PR_TIMING_TIMESTAMP = 0x1 - PR_TSC_ENABLE = 0x1 - PR_TSC_SIGSEGV = 0x2 - PR_UNALIGN_NOPRINT = 0x1 - PR_UNALIGN_SIGBUS = 0x2 - PTRACE_ATTACH = 0x10 - PTRACE_CONT = 0x7 - PTRACE_DETACH = 0x11 - PTRACE_EVENT_CLONE = 0x3 - PTRACE_EVENT_EXEC = 0x4 - PTRACE_EVENT_EXIT = 0x6 - PTRACE_EVENT_FORK = 0x1 - PTRACE_EVENT_SECCOMP = 0x7 - PTRACE_EVENT_STOP = 0x80 - PTRACE_EVENT_VFORK = 0x2 - PTRACE_EVENT_VFORK_DONE = 0x5 - PTRACE_GETEVENTMSG = 0x4201 - PTRACE_GETFPREGS = 0xe - PTRACE_GETREGS = 0xc - PTRACE_GETREGSET = 0x4204 - PTRACE_GETSIGINFO = 0x4202 - PTRACE_GETSIGMASK = 0x420a - PTRACE_GET_THREAD_AREA = 0x19 - PTRACE_GET_THREAD_AREA_3264 = 0xc4 - PTRACE_GET_WATCH_REGS = 0xd0 - PTRACE_INTERRUPT = 0x4207 - PTRACE_KILL = 0x8 - PTRACE_LISTEN = 0x4208 - PTRACE_OLDSETOPTIONS = 0x15 - PTRACE_O_EXITKILL = 0x100000 - PTRACE_O_MASK = 0x3000ff - PTRACE_O_SUSPEND_SECCOMP = 0x200000 - PTRACE_O_TRACECLONE = 0x8 - PTRACE_O_TRACEEXEC = 0x10 - PTRACE_O_TRACEEXIT = 0x40 - PTRACE_O_TRACEFORK = 0x2 - PTRACE_O_TRACESECCOMP = 0x80 - PTRACE_O_TRACESYSGOOD = 0x1 - PTRACE_O_TRACEVFORK = 0x4 - PTRACE_O_TRACEVFORKDONE = 0x20 - PTRACE_PEEKDATA = 0x2 - PTRACE_PEEKDATA_3264 = 0xc1 - PTRACE_PEEKSIGINFO = 0x4209 - PTRACE_PEEKSIGINFO_SHARED = 0x1 - PTRACE_PEEKTEXT = 0x1 - PTRACE_PEEKTEXT_3264 = 0xc0 - PTRACE_PEEKUSR = 0x3 - PTRACE_POKEDATA = 0x5 - PTRACE_POKEDATA_3264 = 0xc3 - PTRACE_POKETEXT = 0x4 - PTRACE_POKETEXT_3264 = 0xc2 - PTRACE_POKEUSR = 0x6 - PTRACE_SECCOMP_GET_FILTER = 0x420c - PTRACE_SEIZE = 0x4206 - PTRACE_SETFPREGS = 0xf - PTRACE_SETOPTIONS = 0x4200 - PTRACE_SETREGS = 0xd - PTRACE_SETREGSET = 0x4205 - PTRACE_SETSIGINFO = 0x4203 - PTRACE_SETSIGMASK = 0x420b - PTRACE_SET_THREAD_AREA = 0x1a - PTRACE_SET_WATCH_REGS = 0xd1 - PTRACE_SINGLESTEP = 0x9 - PTRACE_SYSCALL = 0x18 - PTRACE_TRACEME = 0x0 - RLIMIT_AS = 0x6 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_LOCKS = 0xa - RLIMIT_MEMLOCK = 0x9 - RLIMIT_MSGQUEUE = 0xc - RLIMIT_NICE = 0xd - RLIMIT_NOFILE = 0x5 - RLIMIT_NPROC = 0x8 - RLIMIT_RSS = 0x7 - RLIMIT_RTPRIO = 0xe - RLIMIT_RTTIME = 0xf - RLIMIT_SIGPENDING = 0xb - RLIMIT_STACK = 0x3 - RLIM_INFINITY = -0x1 - RTAX_ADVMSS = 0x8 - RTAX_CC_ALGO = 0x10 - RTAX_CWND = 0x7 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_MASK = 0xf - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0x10 - RTAX_MTU = 0x2 - RTAX_QUICKACK = 0xf - RTAX_REORDERING = 0x9 - RTAX_RTO_MIN = 0xd - RTAX_RTT = 0x4 - RTAX_RTTVAR = 0x5 - RTAX_SSTHRESH = 0x6 - RTAX_UNSPEC = 0x0 - RTAX_WINDOW = 0x3 - RTA_ALIGNTO = 0x4 - RTA_MAX = 0x19 - RTCF_DIRECTSRC = 0x4000000 - RTCF_DOREDIRECT = 0x1000000 - RTCF_LOG = 0x2000000 - RTCF_MASQ = 0x400000 - RTCF_NAT = 0x800000 - RTCF_VALVE = 0x200000 - RTF_ADDRCLASSMASK = 0xf8000000 - RTF_ADDRCONF = 0x40000 - RTF_ALLONLINK = 0x20000 - RTF_BROADCAST = 0x10000000 - RTF_CACHE = 0x1000000 - RTF_DEFAULT = 0x10000 - RTF_DYNAMIC = 0x10 - RTF_FLOW = 0x2000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_INTERFACE = 0x40000000 - RTF_IRTT = 0x100 - RTF_LINKRT = 0x100000 - RTF_LOCAL = 0x80000000 - RTF_MODIFIED = 0x20 - RTF_MSS = 0x40 - RTF_MTU = 0x40 - RTF_MULTICAST = 0x20000000 - RTF_NAT = 0x8000000 - RTF_NOFORWARD = 0x1000 - RTF_NONEXTHOP = 0x200000 - RTF_NOPMTUDISC = 0x4000 - RTF_POLICY = 0x4000000 - RTF_REINSTATE = 0x8 - RTF_REJECT = 0x200 - RTF_STATIC = 0x400 - RTF_THROW = 0x2000 - RTF_UP = 0x1 - RTF_WINDOW = 0x80 - RTF_XRESOLVE = 0x800 - RTM_BASE = 0x10 - RTM_DELACTION = 0x31 - RTM_DELADDR = 0x15 - RTM_DELADDRLABEL = 0x49 - RTM_DELLINK = 0x11 - RTM_DELMDB = 0x55 - RTM_DELNEIGH = 0x1d - RTM_DELNSID = 0x59 - RTM_DELQDISC = 0x25 - RTM_DELROUTE = 0x19 - RTM_DELRULE = 0x21 - RTM_DELTCLASS = 0x29 - RTM_DELTFILTER = 0x2d - RTM_F_CLONED = 0x200 - RTM_F_EQUALIZE = 0x400 - RTM_F_LOOKUP_TABLE = 0x1000 - RTM_F_NOTIFY = 0x100 - RTM_F_PREFIX = 0x800 - RTM_GETACTION = 0x32 - RTM_GETADDR = 0x16 - RTM_GETADDRLABEL = 0x4a - RTM_GETANYCAST = 0x3e - RTM_GETDCB = 0x4e - RTM_GETLINK = 0x12 - RTM_GETMDB = 0x56 - RTM_GETMULTICAST = 0x3a - RTM_GETNEIGH = 0x1e - RTM_GETNEIGHTBL = 0x42 - RTM_GETNETCONF = 0x52 - RTM_GETNSID = 0x5a - RTM_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETSTATS = 0x5e - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_MAX = 0x5f - RTM_NEWACTION = 0x30 - RTM_NEWADDR = 0x14 - RTM_NEWADDRLABEL = 0x48 - RTM_NEWLINK = 0x10 - RTM_NEWMDB = 0x54 - RTM_NEWNDUSEROPT = 0x44 - RTM_NEWNEIGH = 0x1c - RTM_NEWNEIGHTBL = 0x40 - RTM_NEWNETCONF = 0x50 - RTM_NEWNSID = 0x58 - RTM_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWSTATS = 0x5c - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NR_FAMILIES = 0x14 - RTM_NR_MSGTYPES = 0x50 - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTNH_ALIGNTO = 0x4 - RTNH_COMPARE_MASK = 0x19 - RTNH_F_DEAD = 0x1 - RTNH_F_LINKDOWN = 0x10 - RTNH_F_OFFLOAD = 0x8 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTN_MAX = 0xb - RTPROT_BABEL = 0x2a - RTPROT_BIRD = 0xc - RTPROT_BOOT = 0x3 - RTPROT_DHCP = 0x10 - RTPROT_DNROUTED = 0xd - RTPROT_GATED = 0x8 - RTPROT_KERNEL = 0x2 - RTPROT_MROUTED = 0x11 - RTPROT_MRT = 0xa - RTPROT_NTK = 0xf - RTPROT_RA = 0x9 - RTPROT_REDIRECT = 0x1 - RTPROT_STATIC = 0x4 - RTPROT_UNSPEC = 0x0 - RTPROT_XORP = 0xe - RTPROT_ZEBRA = 0xb - RT_CLASS_DEFAULT = 0xfd - RT_CLASS_LOCAL = 0xff - RT_CLASS_MAIN = 0xfe - RT_CLASS_MAX = 0xff - RT_CLASS_UNSPEC = 0x0 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_CREDENTIALS = 0x2 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPNS = 0x23 - SCM_WIFI_STATUS = 0x29 - SECCOMP_MODE_DISABLED = 0x0 - SECCOMP_MODE_FILTER = 0x2 - SECCOMP_MODE_STRICT = 0x1 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCATMARK = 0x40047307 - SIOCBONDCHANGEACTIVE = 0x8995 - SIOCBONDENSLAVE = 0x8990 - SIOCBONDINFOQUERY = 0x8994 - SIOCBONDRELEASE = 0x8991 - SIOCBONDSETHWADDR = 0x8992 - SIOCBONDSLAVEINFOQUERY = 0x8993 - SIOCBRADDBR = 0x89a0 - SIOCBRADDIF = 0x89a2 - SIOCBRDELBR = 0x89a1 - SIOCBRDELIF = 0x89a3 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCETHTOOL = 0x8946 - SIOCGARP = 0x8954 - SIOCGHWTSTAMP = 0x89b1 - SIOCGIFADDR = 0x8915 - SIOCGIFBR = 0x8940 - SIOCGIFBRDADDR = 0x8919 - SIOCGIFCONF = 0x8912 - SIOCGIFCOUNT = 0x8938 - SIOCGIFDSTADDR = 0x8917 - SIOCGIFENCAP = 0x8925 - SIOCGIFFLAGS = 0x8913 - SIOCGIFHWADDR = 0x8927 - SIOCGIFINDEX = 0x8933 - SIOCGIFMAP = 0x8970 - SIOCGIFMEM = 0x891f - SIOCGIFMETRIC = 0x891d - SIOCGIFMTU = 0x8921 - SIOCGIFNAME = 0x8910 - SIOCGIFNETMASK = 0x891b - SIOCGIFPFLAGS = 0x8935 - SIOCGIFSLAVE = 0x8929 - SIOCGIFTXQLEN = 0x8942 - SIOCGIFVLAN = 0x8982 - SIOCGMIIPHY = 0x8947 - SIOCGMIIREG = 0x8948 - SIOCGPGRP = 0x40047309 - SIOCGRARP = 0x8961 - SIOCGSKNS = 0x894c - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCINQ = 0x467f - SIOCOUTQ = 0x7472 - SIOCOUTQNSD = 0x894b - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - SIOCSHWTSTAMP = 0x89b0 - SIOCSIFADDR = 0x8916 - SIOCSIFBR = 0x8941 - SIOCSIFBRDADDR = 0x891a - SIOCSIFDSTADDR = 0x8918 - SIOCSIFENCAP = 0x8926 - SIOCSIFFLAGS = 0x8914 - SIOCSIFHWADDR = 0x8924 - SIOCSIFHWBROADCAST = 0x8937 - SIOCSIFLINK = 0x8911 - SIOCSIFMAP = 0x8971 - SIOCSIFMEM = 0x8920 - SIOCSIFMETRIC = 0x891e - SIOCSIFMTU = 0x8922 - SIOCSIFNAME = 0x8923 - SIOCSIFNETMASK = 0x891c - SIOCSIFPFLAGS = 0x8934 - SIOCSIFSLAVE = 0x8930 - SIOCSIFTXQLEN = 0x8943 - SIOCSIFVLAN = 0x8983 - SIOCSMIIREG = 0x8949 - SIOCSPGRP = 0x80047308 - SIOCSRARP = 0x8962 - SIOCWANDEV = 0x894a - SOCK_CLOEXEC = 0x80000 - SOCK_DCCP = 0x6 - SOCK_DGRAM = 0x1 - SOCK_IOC_TYPE = 0x89 - SOCK_NONBLOCK = 0x80 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x2 - SOL_AAL = 0x109 - SOL_ALG = 0x117 - SOL_ATM = 0x108 - SOL_CAIF = 0x116 - SOL_CAN_BASE = 0x64 - SOL_DCCP = 0x10d - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_IUCV = 0x115 - SOL_KCM = 0x119 - SOL_LLC = 0x10c - SOL_NETBEUI = 0x10b - SOL_NETLINK = 0x10e - SOL_NFC = 0x118 - SOL_PACKET = 0x107 - SOL_PNPIPE = 0x113 - SOL_PPPOL2TP = 0x111 - SOL_RAW = 0xff - SOL_RDS = 0x114 - SOL_RXRPC = 0x110 - SOL_SOCKET = 0xffff - SOL_TCP = 0x6 - SOL_TIPC = 0x10f - SOL_X25 = 0x106 - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x1009 - SO_ATTACH_BPF = 0x32 - SO_ATTACH_FILTER = 0x1a - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x20 - SO_BSDCOMPAT = 0xe - SO_BUSY_POLL = 0x2e - SO_CNX_ADVICE = 0x35 - SO_DEBUG = 0x1 - SO_DETACH_BPF = 0x1b - SO_DETACH_FILTER = 0x1b - SO_DOMAIN = 0x1029 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_GET_FILTER = 0x1a - SO_INCOMING_CPU = 0x31 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_NOFCS = 0x2b - SO_NO_CHECK = 0xb - SO_OOBINLINE = 0x100 - SO_PASSCRED = 0x11 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x12 - SO_PEERNAME = 0x1c - SO_PEERSEC = 0x1e - SO_PRIORITY = 0xc - SO_PROTOCOL = 0x1028 - SO_RCVBUF = 0x1002 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x1001 - SO_SNDBUFFORCE = 0x1f - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_STYLE = 0x1008 - SO_TIMESTAMP = 0x1d - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TYPE = 0x1008 - SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 - SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 - SO_VM_SOCKETS_BUFFER_SIZE = 0x0 - SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 - SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 - SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 - SO_VM_SOCKETS_TRUSTED = 0x5 - SO_WIFI_STATUS = 0x29 - SPLICE_F_GIFT = 0x8 - SPLICE_F_MORE = 0x4 - SPLICE_F_MOVE = 0x1 - SPLICE_F_NONBLOCK = 0x2 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TASKSTATS_CMD_ATTR_MAX = 0x4 - TASKSTATS_CMD_MAX = 0x2 - TASKSTATS_GENL_NAME = "TASKSTATS" - TASKSTATS_GENL_VERSION = 0x1 - TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x8 - TCFLSH = 0x5407 - TCGETA = 0x5401 - TCGETS = 0x540d - TCGETS2 = 0x4030542a - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_CC_INFO = 0x1a - TCP_CONGESTION = 0xd - TCP_COOKIE_IN_ALWAYS = 0x1 - TCP_COOKIE_MAX = 0x10 - TCP_COOKIE_MIN = 0x8 - TCP_COOKIE_OUT_NEVER = 0x2 - TCP_COOKIE_PAIR_SIZE = 0x20 - TCP_COOKIE_TRANSACTIONS = 0xf - TCP_CORK = 0x3 - TCP_DEFER_ACCEPT = 0x9 - TCP_FASTOPEN = 0x17 - TCP_INFO = 0xb - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x4 - TCP_KEEPINTVL = 0x5 - TCP_LINGER2 = 0x8 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0xe - TCP_MD5SIG_MAXKEYLEN = 0x50 - TCP_MSS = 0x200 - TCP_MSS_DEFAULT = 0x218 - TCP_MSS_DESIRED = 0x4c4 - TCP_NODELAY = 0x1 - TCP_NOTSENT_LOWAT = 0x19 - TCP_QUEUE_SEQ = 0x15 - TCP_QUICKACK = 0xc - TCP_REPAIR = 0x13 - TCP_REPAIR_OPTIONS = 0x16 - TCP_REPAIR_QUEUE = 0x14 - TCP_REPAIR_WINDOW = 0x1d - TCP_SAVED_SYN = 0x1c - TCP_SAVE_SYN = 0x1b - TCP_SYNCNT = 0x7 - TCP_S_DATA_IN = 0x4 - TCP_S_DATA_OUT = 0x8 - TCP_THIN_DUPACK = 0x11 - TCP_THIN_LINEAR_TIMEOUTS = 0x10 - TCP_TIMESTAMP = 0x18 - TCP_USER_TIMEOUT = 0x12 - TCP_WINDOW_CLAMP = 0xa - TCSAFLUSH = 0x5410 - TCSBRK = 0x5405 - TCSBRKP = 0x5486 - TCSETA = 0x5402 - TCSETAF = 0x5404 - TCSETAW = 0x5403 - TCSETS = 0x540e - TCSETS2 = 0x8030542b - TCSETSF = 0x5410 - TCSETSF2 = 0x8030542d - TCSETSW = 0x540f - TCSETSW2 = 0x8030542c - TCXONC = 0x5406 - TIOCCBRK = 0x5428 - TIOCCONS = 0x80047478 - TIOCEXCL = 0x740d - TIOCGDEV = 0x40045432 - TIOCGETD = 0x7400 - TIOCGETP = 0x7408 - TIOCGEXCL = 0x40045440 - TIOCGICOUNT = 0x5492 - TIOCGLCKTRMIOS = 0x548b - TIOCGLTC = 0x7474 - TIOCGPGRP = 0x40047477 - TIOCGPKT = 0x40045438 - TIOCGPTLCK = 0x40045439 - TIOCGPTN = 0x40045430 - TIOCGRS485 = 0x4020542e - TIOCGSERIAL = 0x5484 - TIOCGSID = 0x7416 - TIOCGSOFTCAR = 0x5481 - TIOCGWINSZ = 0x40087468 - TIOCINQ = 0x467f - TIOCLINUX = 0x5483 - TIOCMBIC = 0x741c - TIOCMBIS = 0x741b - TIOCMGET = 0x741d - TIOCMIWAIT = 0x5491 - TIOCMSET = 0x741a - TIOCM_CAR = 0x100 - TIOCM_CD = 0x100 - TIOCM_CTS = 0x40 - TIOCM_DSR = 0x400 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x200 - TIOCM_RNG = 0x200 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x20 - TIOCM_ST = 0x10 - TIOCNOTTY = 0x5471 - TIOCNXCL = 0x740e - TIOCOUTQ = 0x7472 - TIOCPKT = 0x5470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x5480 - TIOCSERCONFIG = 0x5488 - TIOCSERGETLSR = 0x548e - TIOCSERGETMULTI = 0x548f - TIOCSERGSTRUCT = 0x548d - TIOCSERGWILD = 0x5489 - TIOCSERSETMULTI = 0x5490 - TIOCSERSWILD = 0x548a - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x7401 - TIOCSETN = 0x740a - TIOCSETP = 0x7409 - TIOCSIG = 0x80045436 - TIOCSLCKTRMIOS = 0x548c - TIOCSLTC = 0x7475 - TIOCSPGRP = 0x80047476 - TIOCSPTLCK = 0x80045431 - TIOCSRS485 = 0xc020542f - TIOCSSERIAL = 0x5485 - TIOCSSOFTCAR = 0x5482 - TIOCSTI = 0x5472 - TIOCSWINSZ = 0x80087467 - TIOCVHANGUP = 0x5437 - TOSTOP = 0x8000 - TS_COMM_LEN = 0x20 - TUNATTACHFILTER = 0x801054d5 - TUNDETACHFILTER = 0x801054d6 - TUNGETFEATURES = 0x400454cf - TUNGETFILTER = 0x401054db - TUNGETIFF = 0x400454d2 - TUNGETSNDBUF = 0x400454d3 - TUNGETVNETBE = 0x400454df - TUNGETVNETHDRSZ = 0x400454d7 - TUNGETVNETLE = 0x400454dd - TUNSETDEBUG = 0x800454c9 - TUNSETGROUP = 0x800454ce - TUNSETIFF = 0x800454ca - TUNSETIFINDEX = 0x800454da - TUNSETLINK = 0x800454cd - TUNSETNOCSUM = 0x800454c8 - TUNSETOFFLOAD = 0x800454d0 - TUNSETOWNER = 0x800454cc - TUNSETPERSIST = 0x800454cb - TUNSETQUEUE = 0x800454d9 - TUNSETSNDBUF = 0x800454d4 - TUNSETTXFILTER = 0x800454d1 - TUNSETVNETBE = 0x800454de - TUNSETVNETHDRSZ = 0x800454d8 - TUNSETVNETLE = 0x800454dc - UMOUNT_NOFOLLOW = 0x8 - VDISCARD = 0xd - VEOF = 0x10 - VEOL = 0x11 - VEOL2 = 0x6 - VERASE = 0x2 - VINTR = 0x0 - VKILL = 0x3 - VLNEXT = 0xf - VMADDR_CID_ANY = 0xffffffff - VMADDR_CID_HOST = 0x2 - VMADDR_CID_HYPERVISOR = 0x0 - VMADDR_CID_RESERVED = 0x1 - VMADDR_PORT_ANY = 0xffffffff - VMIN = 0x4 - VM_SOCKETS_INVALID_VERSION = 0xffffffff - VQUIT = 0x1 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VSWTCH = 0x7 - VT0 = 0x0 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WALL = 0x40000000 - WCLONE = 0x80000000 - WCONTINUED = 0x8 - WEXITED = 0x4 - WNOHANG = 0x1 - WNOTHREAD = 0x20000000 - WNOWAIT = 0x1000000 - WORDSIZE = 0x40 - WSTOPPED = 0x2 - WUNTRACED = 0x2 - XATTR_CREATE = 0x1 - XATTR_REPLACE = 0x2 - XCASE = 0x4 - XTABS = 0x1800 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x7d) - EADDRNOTAVAIL = syscall.Errno(0x7e) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x7c) - EAGAIN = syscall.Errno(0xb) - EALREADY = syscall.Errno(0x95) - EBADE = syscall.Errno(0x32) - EBADF = syscall.Errno(0x9) - EBADFD = syscall.Errno(0x51) - EBADMSG = syscall.Errno(0x4d) - EBADR = syscall.Errno(0x33) - EBADRQC = syscall.Errno(0x36) - EBADSLT = syscall.Errno(0x37) - EBFONT = syscall.Errno(0x3b) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x9e) - ECHILD = syscall.Errno(0xa) - ECHRNG = syscall.Errno(0x25) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x82) - ECONNREFUSED = syscall.Errno(0x92) - ECONNRESET = syscall.Errno(0x83) - EDEADLK = syscall.Errno(0x2d) - EDEADLOCK = syscall.Errno(0x38) - EDESTADDRREQ = syscall.Errno(0x60) - EDOM = syscall.Errno(0x21) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x46d) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EHOSTDOWN = syscall.Errno(0x93) - EHOSTUNREACH = syscall.Errno(0x94) - EHWPOISON = syscall.Errno(0xa8) - EIDRM = syscall.Errno(0x24) - EILSEQ = syscall.Errno(0x58) - EINIT = syscall.Errno(0x8d) - EINPROGRESS = syscall.Errno(0x96) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x85) - EISDIR = syscall.Errno(0x15) - EISNAM = syscall.Errno(0x8b) - EKEYEXPIRED = syscall.Errno(0xa2) - EKEYREJECTED = syscall.Errno(0xa4) - EKEYREVOKED = syscall.Errno(0xa3) - EL2HLT = syscall.Errno(0x2c) - EL2NSYNC = syscall.Errno(0x26) - EL3HLT = syscall.Errno(0x27) - EL3RST = syscall.Errno(0x28) - ELIBACC = syscall.Errno(0x53) - ELIBBAD = syscall.Errno(0x54) - ELIBEXEC = syscall.Errno(0x57) - ELIBMAX = syscall.Errno(0x56) - ELIBSCN = syscall.Errno(0x55) - ELNRNG = syscall.Errno(0x29) - ELOOP = syscall.Errno(0x5a) - EMEDIUMTYPE = syscall.Errno(0xa0) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x61) - EMULTIHOP = syscall.Errno(0x4a) - ENAMETOOLONG = syscall.Errno(0x4e) - ENAVAIL = syscall.Errno(0x8a) - ENETDOWN = syscall.Errno(0x7f) - ENETRESET = syscall.Errno(0x81) - ENETUNREACH = syscall.Errno(0x80) - ENFILE = syscall.Errno(0x17) - ENOANO = syscall.Errno(0x35) - ENOBUFS = syscall.Errno(0x84) - ENOCSI = syscall.Errno(0x2b) - ENODATA = syscall.Errno(0x3d) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOKEY = syscall.Errno(0xa1) - ENOLCK = syscall.Errno(0x2e) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x9f) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x23) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x63) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x59) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x86) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x5d) - ENOTNAM = syscall.Errno(0x89) - ENOTRECOVERABLE = syscall.Errno(0xa6) - ENOTSOCK = syscall.Errno(0x5f) - ENOTSUP = syscall.Errno(0x7a) - ENOTTY = syscall.Errno(0x19) - ENOTUNIQ = syscall.Errno(0x50) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x7a) - EOVERFLOW = syscall.Errno(0x4f) - EOWNERDEAD = syscall.Errno(0xa5) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x7b) - EPIPE = syscall.Errno(0x20) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x78) - EPROTOTYPE = syscall.Errno(0x62) - ERANGE = syscall.Errno(0x22) - EREMCHG = syscall.Errno(0x52) - EREMDEV = syscall.Errno(0x8e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x8c) - ERESTART = syscall.Errno(0x5b) - ERFKILL = syscall.Errno(0xa7) - EROFS = syscall.Errno(0x1e) - ESHUTDOWN = syscall.Errno(0x8f) - ESOCKTNOSUPPORT = syscall.Errno(0x79) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x97) - ESTRPIPE = syscall.Errno(0x5c) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x91) - ETOOMANYREFS = syscall.Errno(0x90) - ETXTBSY = syscall.Errno(0x1a) - EUCLEAN = syscall.Errno(0x87) - EUNATCH = syscall.Errno(0x2a) - EUSERS = syscall.Errno(0x5e) - EWOULDBLOCK = syscall.Errno(0xb) - EXDEV = syscall.Errno(0x12) - EXFULL = syscall.Errno(0x34) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x12) - SIGCLD = syscall.Signal(0x12) - SIGCONT = syscall.Signal(0x19) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x16) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) - SIGPOLL = syscall.Signal(0x16) - SIGPROF = syscall.Signal(0x1d) - SIGPWR = syscall.Signal(0x13) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x17) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x18) - SIGTTIN = syscall.Signal(0x1a) - SIGTTOU = syscall.Signal(0x1b) - SIGURG = syscall.Signal(0x15) - SIGUSR1 = syscall.Signal(0x10) - SIGUSR2 = syscall.Signal(0x11) - SIGVTALRM = syscall.Signal(0x1c) - SIGWINCH = syscall.Signal(0x14) - SIGXCPU = syscall.Signal(0x1e) - SIGXFSZ = syscall.Signal(0x1f) -) - -// Error table -var errors = [...]string{ - 1: "operation not permitted", - 2: "no such file or directory", - 3: "no such process", - 4: "interrupted system call", - 5: "input/output error", - 6: "no such device or address", - 7: "argument list too long", - 8: "exec format error", - 9: "bad file descriptor", - 10: "no child processes", - 11: "resource temporarily unavailable", - 12: "cannot allocate memory", - 13: "permission denied", - 14: "bad address", - 15: "block device required", - 16: "device or resource busy", - 17: "file exists", - 18: "invalid cross-device link", - 19: "no such device", - 20: "not a directory", - 21: "is a directory", - 22: "invalid argument", - 23: "too many open files in system", - 24: "too many open files", - 25: "inappropriate ioctl for device", - 26: "text file busy", - 27: "file too large", - 28: "no space left on device", - 29: "illegal seek", - 30: "read-only file system", - 31: "too many links", - 32: "broken pipe", - 33: "numerical argument out of domain", - 34: "numerical result out of range", - 35: "no message of desired type", - 36: "identifier removed", - 37: "channel number out of range", - 38: "level 2 not synchronized", - 39: "level 3 halted", - 40: "level 3 reset", - 41: "link number out of range", - 42: "protocol driver not attached", - 43: "no CSI structure available", - 44: "level 2 halted", - 45: "resource deadlock avoided", - 46: "no locks available", - 50: "invalid exchange", - 51: "invalid request descriptor", - 52: "exchange full", - 53: "no anode", - 54: "invalid request code", - 55: "invalid slot", - 56: "file locking deadlock error", - 59: "bad font file format", - 60: "device not a stream", - 61: "no data available", - 62: "timer expired", - 63: "out of streams resources", - 64: "machine is not on the network", - 65: "package not installed", - 66: "object is remote", - 67: "link has been severed", - 68: "advertise error", - 69: "srmount error", - 70: "communication error on send", - 71: "protocol error", - 73: "RFS specific error", - 74: "multihop attempted", - 77: "bad message", - 78: "file name too long", - 79: "value too large for defined data type", - 80: "name not unique on network", - 81: "file descriptor in bad state", - 82: "remote address changed", - 83: "can not access a needed shared library", - 84: "accessing a corrupted shared library", - 85: ".lib section in a.out corrupted", - 86: "attempting to link in too many shared libraries", - 87: "cannot exec a shared library directly", - 88: "invalid or incomplete multibyte or wide character", - 89: "function not implemented", - 90: "too many levels of symbolic links", - 91: "interrupted system call should be restarted", - 92: "streams pipe error", - 93: "directory not empty", - 94: "too many users", - 95: "socket operation on non-socket", - 96: "destination address required", - 97: "message too long", - 98: "protocol wrong type for socket", - 99: "protocol not available", - 120: "protocol not supported", - 121: "socket type not supported", - 122: "operation not supported", - 123: "protocol family not supported", - 124: "address family not supported by protocol", - 125: "address already in use", - 126: "cannot assign requested address", - 127: "network is down", - 128: "network is unreachable", - 129: "network dropped connection on reset", - 130: "software caused connection abort", - 131: "connection reset by peer", - 132: "no buffer space available", - 133: "transport endpoint is already connected", - 134: "transport endpoint is not connected", - 135: "structure needs cleaning", - 137: "not a XENIX named type file", - 138: "no XENIX semaphores available", - 139: "is a named type file", - 140: "remote I/O error", - 141: "unknown error 141", - 142: "unknown error 142", - 143: "cannot send after transport endpoint shutdown", - 144: "too many references: cannot splice", - 145: "connection timed out", - 146: "connection refused", - 147: "host is down", - 148: "no route to host", - 149: "operation already in progress", - 150: "operation now in progress", - 151: "stale file handle", - 158: "operation canceled", - 159: "no medium found", - 160: "wrong medium type", - 161: "required key not available", - 162: "key has expired", - 163: "key has been revoked", - 164: "key was rejected by service", - 165: "owner died", - 166: "state not recoverable", - 167: "operation not possible due to RF-kill", - 168: "memory page has hardware error", - 1133: "disk quota exceeded", -} - -// Signal table -var signals = [...]string{ - 1: "hangup", - 2: "interrupt", - 3: "quit", - 4: "illegal instruction", - 5: "trace/breakpoint trap", - 6: "aborted", - 7: "EMT trap", - 8: "floating point exception", - 9: "killed", - 10: "bus error", - 11: "segmentation fault", - 12: "bad system call", - 13: "broken pipe", - 14: "alarm clock", - 15: "terminated", - 16: "user defined signal 1", - 17: "user defined signal 2", - 18: "child exited", - 19: "power failure", - 20: "window changed", - 21: "urgent I/O condition", - 22: "I/O possible", - 23: "stopped (signal)", - 24: "stopped", - 25: "continued", - 26: "stopped (tty input)", - 27: "stopped (tty output)", - 28: "virtual timer expired", - 29: "profiling timer expired", - 30: "CPU time limit exceeded", - 31: "file size limit exceeded", -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go deleted file mode 100644 index 44191b0..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go +++ /dev/null @@ -1,2209 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/include -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build mipsle,linux - -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go - -package unix - -import "syscall" - -const ( - AF_ALG = 0x26 - AF_APPLETALK = 0x5 - AF_ASH = 0x12 - AF_ATMPVC = 0x8 - AF_ATMSVC = 0x14 - AF_AX25 = 0x3 - AF_BLUETOOTH = 0x1f - AF_BRIDGE = 0x7 - AF_CAIF = 0x25 - AF_CAN = 0x1d - AF_DECnet = 0xc - AF_ECONET = 0x13 - AF_FILE = 0x1 - AF_IB = 0x1b - AF_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KCM = 0x29 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x2b - AF_MPLS = 0x1c - AF_NETBEUI = 0xd - AF_NETLINK = 0x10 - AF_NETROM = 0x6 - AF_NFC = 0x27 - AF_PACKET = 0x11 - AF_PHONET = 0x23 - AF_PPPOX = 0x18 - AF_QIPCRTR = 0x2a - AF_RDS = 0x15 - AF_ROSE = 0xb - AF_ROUTE = 0x10 - AF_RXRPC = 0x21 - AF_SECURITY = 0xe - AF_SNA = 0x16 - AF_TIPC = 0x1e - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VSOCK = 0x28 - AF_WANPIPE = 0x19 - AF_X25 = 0x9 - ALG_OP_DECRYPT = 0x0 - ALG_OP_ENCRYPT = 0x1 - ALG_SET_AEAD_ASSOCLEN = 0x4 - ALG_SET_AEAD_AUTHSIZE = 0x5 - ALG_SET_IV = 0x2 - ALG_SET_KEY = 0x1 - ALG_SET_OP = 0x3 - ARPHRD_6LOWPAN = 0x339 - ARPHRD_ADAPT = 0x108 - ARPHRD_APPLETLK = 0x8 - ARPHRD_ARCNET = 0x7 - ARPHRD_ASH = 0x30d - ARPHRD_ATM = 0x13 - ARPHRD_AX25 = 0x3 - ARPHRD_BIF = 0x307 - ARPHRD_CAIF = 0x336 - ARPHRD_CAN = 0x118 - ARPHRD_CHAOS = 0x5 - ARPHRD_CISCO = 0x201 - ARPHRD_CSLIP = 0x101 - ARPHRD_CSLIP6 = 0x103 - ARPHRD_DDCMP = 0x205 - ARPHRD_DLCI = 0xf - ARPHRD_ECONET = 0x30e - ARPHRD_EETHER = 0x2 - ARPHRD_ETHER = 0x1 - ARPHRD_EUI64 = 0x1b - ARPHRD_FCAL = 0x311 - ARPHRD_FCFABRIC = 0x313 - ARPHRD_FCPL = 0x312 - ARPHRD_FCPP = 0x310 - ARPHRD_FDDI = 0x306 - ARPHRD_FRAD = 0x302 - ARPHRD_HDLC = 0x201 - ARPHRD_HIPPI = 0x30c - ARPHRD_HWX25 = 0x110 - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_IEEE80211 = 0x321 - ARPHRD_IEEE80211_PRISM = 0x322 - ARPHRD_IEEE80211_RADIOTAP = 0x323 - ARPHRD_IEEE802154 = 0x324 - ARPHRD_IEEE802154_MONITOR = 0x325 - ARPHRD_IEEE802_TR = 0x320 - ARPHRD_INFINIBAND = 0x20 - ARPHRD_IP6GRE = 0x337 - ARPHRD_IPDDP = 0x309 - ARPHRD_IPGRE = 0x30a - ARPHRD_IRDA = 0x30f - ARPHRD_LAPB = 0x204 - ARPHRD_LOCALTLK = 0x305 - ARPHRD_LOOPBACK = 0x304 - ARPHRD_METRICOM = 0x17 - ARPHRD_NETLINK = 0x338 - ARPHRD_NETROM = 0x0 - ARPHRD_NONE = 0xfffe - ARPHRD_PHONET = 0x334 - ARPHRD_PHONET_PIPE = 0x335 - ARPHRD_PIMREG = 0x30b - ARPHRD_PPP = 0x200 - ARPHRD_PRONET = 0x4 - ARPHRD_RAWHDLC = 0x206 - ARPHRD_ROSE = 0x10e - ARPHRD_RSRVD = 0x104 - ARPHRD_SIT = 0x308 - ARPHRD_SKIP = 0x303 - ARPHRD_SLIP = 0x100 - ARPHRD_SLIP6 = 0x102 - ARPHRD_TUNNEL = 0x300 - ARPHRD_TUNNEL6 = 0x301 - ARPHRD_VOID = 0xffff - ARPHRD_X25 = 0x10f - B0 = 0x0 - B1000000 = 0x1008 - B110 = 0x3 - B115200 = 0x1002 - B1152000 = 0x1009 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B1500000 = 0x100a - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B2000000 = 0x100b - B230400 = 0x1003 - B2400 = 0xb - B2500000 = 0x100c - B300 = 0x7 - B3000000 = 0x100d - B3500000 = 0x100e - B38400 = 0xf - B4000000 = 0x100f - B460800 = 0x1004 - B4800 = 0xc - B50 = 0x1 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B600 = 0x8 - B75 = 0x2 - B921600 = 0x1007 - B9600 = 0xd - BLKBSZGET = 0x40041270 - BLKBSZSET = 0x80041271 - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40041272 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d - BLKRRPART = 0x2000125f - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 - BOTHER = 0x1000 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIV = 0x30 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LL_OFF = -0x200000 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXINSNS = 0x1000 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_NET_OFF = -0x100000 - BPF_OR = 0x40 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XOR = 0xa0 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x2000 - BSDLY = 0x2000 - CAN_BCM = 0x2 - CAN_EFF_FLAG = 0x80000000 - CAN_EFF_ID_BITS = 0x1d - CAN_EFF_MASK = 0x1fffffff - CAN_ERR_FLAG = 0x20000000 - CAN_ERR_MASK = 0x1fffffff - CAN_INV_FILTER = 0x20000000 - CAN_ISOTP = 0x6 - CAN_MAX_DLC = 0x8 - CAN_MAX_DLEN = 0x8 - CAN_MCNET = 0x5 - CAN_MTU = 0x10 - CAN_NPROTO = 0x7 - CAN_RAW = 0x1 - CAN_RAW_FILTER_MAX = 0x200 - CAN_RTR_FLAG = 0x40000000 - CAN_SFF_ID_BITS = 0xb - CAN_SFF_MASK = 0x7ff - CAN_TP16 = 0x3 - CAN_TP20 = 0x4 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CFLUSH = 0xf - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CLOCK_BOOTTIME = 0x7 - CLOCK_BOOTTIME_ALARM = 0x9 - CLOCK_DEFAULT = 0x0 - CLOCK_EXT = 0x1 - CLOCK_INT = 0x2 - CLOCK_MONOTONIC = 0x1 - CLOCK_MONOTONIC_COARSE = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_ALARM = 0x8 - CLOCK_REALTIME_COARSE = 0x5 - CLOCK_TAI = 0xb - CLOCK_THREAD_CPUTIME_ID = 0x3 - CLOCK_TXFROMRX = 0x4 - CLOCK_TXINT = 0x3 - CLONE_CHILD_CLEARTID = 0x200000 - CLONE_CHILD_SETTID = 0x1000000 - CLONE_DETACHED = 0x400000 - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_IO = 0x80000000 - CLONE_NEWCGROUP = 0x2000000 - CLONE_NEWIPC = 0x8000000 - CLONE_NEWNET = 0x40000000 - CLONE_NEWNS = 0x20000 - CLONE_NEWPID = 0x20000000 - CLONE_NEWUSER = 0x10000000 - CLONE_NEWUTS = 0x4000000 - CLONE_PARENT = 0x8000 - CLONE_PARENT_SETTID = 0x100000 - CLONE_PTRACE = 0x2000 - CLONE_SETTLS = 0x80000 - CLONE_SIGHAND = 0x800 - CLONE_SYSVSEM = 0x40000 - CLONE_THREAD = 0x10000 - CLONE_UNTRACED = 0x800000 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CMSPAR = 0x40000000 - CR0 = 0x0 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRDLY = 0x600 - CREAD = 0x80 - CRTSCTS = 0x80000000 - CS5 = 0x0 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIGNAL = 0xff - CSIZE = 0x30 - CSTART = 0x11 - CSTATUS = 0x0 - CSTOP = 0x13 - CSTOPB = 0x40 - CSUSP = 0x1a - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x80 - EFD_SEMAPHORE = 0x1 - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - EPOLLEXCLUSIVE = 0x10000000 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLONESHOT = 0x40000000 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDHUP = 0x2000 - EPOLLRDNORM = 0x40 - EPOLLWAKEUP = 0x20000000 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CLOEXEC = 0x80000 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - ETH_P_1588 = 0x88f7 - ETH_P_8021AD = 0x88a8 - ETH_P_8021AH = 0x88e7 - ETH_P_8021Q = 0x8100 - ETH_P_80221 = 0x8917 - ETH_P_802_2 = 0x4 - ETH_P_802_3 = 0x1 - ETH_P_802_3_MIN = 0x600 - ETH_P_802_EX1 = 0x88b5 - ETH_P_AARP = 0x80f3 - ETH_P_AF_IUCV = 0xfbfb - ETH_P_ALL = 0x3 - ETH_P_AOE = 0x88a2 - ETH_P_ARCNET = 0x1a - ETH_P_ARP = 0x806 - ETH_P_ATALK = 0x809b - ETH_P_ATMFATE = 0x8884 - ETH_P_ATMMPOA = 0x884c - ETH_P_AX25 = 0x2 - ETH_P_BATMAN = 0x4305 - ETH_P_BPQ = 0x8ff - ETH_P_CAIF = 0xf7 - ETH_P_CAN = 0xc - ETH_P_CANFD = 0xd - ETH_P_CONTROL = 0x16 - ETH_P_CUST = 0x6006 - ETH_P_DDCMP = 0x6 - ETH_P_DEC = 0x6000 - ETH_P_DIAG = 0x6005 - ETH_P_DNA_DL = 0x6001 - ETH_P_DNA_RC = 0x6002 - ETH_P_DNA_RT = 0x6003 - ETH_P_DSA = 0x1b - ETH_P_ECONET = 0x18 - ETH_P_EDSA = 0xdada - ETH_P_FCOE = 0x8906 - ETH_P_FIP = 0x8914 - ETH_P_HDLC = 0x19 - ETH_P_HSR = 0x892f - ETH_P_IEEE802154 = 0xf6 - ETH_P_IEEEPUP = 0xa00 - ETH_P_IEEEPUPAT = 0xa01 - ETH_P_IP = 0x800 - ETH_P_IPV6 = 0x86dd - ETH_P_IPX = 0x8137 - ETH_P_IRDA = 0x17 - ETH_P_LAT = 0x6004 - ETH_P_LINK_CTL = 0x886c - ETH_P_LOCALTALK = 0x9 - ETH_P_LOOP = 0x60 - ETH_P_LOOPBACK = 0x9000 - ETH_P_MACSEC = 0x88e5 - ETH_P_MOBITEX = 0x15 - ETH_P_MPLS_MC = 0x8848 - ETH_P_MPLS_UC = 0x8847 - ETH_P_MVRP = 0x88f5 - ETH_P_NCSI = 0x88f8 - ETH_P_PAE = 0x888e - ETH_P_PAUSE = 0x8808 - ETH_P_PHONET = 0xf5 - ETH_P_PPPTALK = 0x10 - ETH_P_PPP_DISC = 0x8863 - ETH_P_PPP_MP = 0x8 - ETH_P_PPP_SES = 0x8864 - ETH_P_PRP = 0x88fb - ETH_P_PUP = 0x200 - ETH_P_PUPAT = 0x201 - ETH_P_QINQ1 = 0x9100 - ETH_P_QINQ2 = 0x9200 - ETH_P_QINQ3 = 0x9300 - ETH_P_RARP = 0x8035 - ETH_P_SCA = 0x6007 - ETH_P_SLOW = 0x8809 - ETH_P_SNAP = 0x5 - ETH_P_TDLS = 0x890d - ETH_P_TEB = 0x6558 - ETH_P_TIPC = 0x88ca - ETH_P_TRAILER = 0x1c - ETH_P_TR_802_2 = 0x11 - ETH_P_TSN = 0x22f0 - ETH_P_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - ETH_P_XDSA = 0xf8 - EXTA = 0xe - EXTB = 0xf - EXTPROC = 0x10000 - FALLOC_FL_COLLAPSE_RANGE = 0x8 - FALLOC_FL_INSERT_RANGE = 0x20 - FALLOC_FL_KEEP_SIZE = 0x1 - FALLOC_FL_NO_HIDE_STALE = 0x4 - FALLOC_FL_PUNCH_HOLE = 0x2 - FALLOC_FL_UNSHARE_RANGE = 0x40 - FALLOC_FL_ZERO_RANGE = 0x10 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x8000 - FFDLY = 0x8000 - FLUSHO = 0x2000 - FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 - FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 - FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 - FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 - FS_ENCRYPTION_MODE_INVALID = 0x0 - FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 - FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 - FS_KEY_DESCRIPTOR_SIZE = 0x8 - FS_KEY_DESC_PREFIX = "fscrypt:" - FS_KEY_DESC_PREFIX_SIZE = 0x8 - FS_MAX_KEY_SIZE = 0x40 - FS_POLICY_FLAGS_PAD_16 = 0x2 - FS_POLICY_FLAGS_PAD_32 = 0x3 - FS_POLICY_FLAGS_PAD_4 = 0x0 - FS_POLICY_FLAGS_PAD_8 = 0x1 - FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x3 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x406 - F_EXLCK = 0x4 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLEASE = 0x401 - F_GETLK = 0x21 - F_GETLK64 = 0x21 - F_GETOWN = 0x17 - F_GETOWN_EX = 0x10 - F_GETPIPE_SZ = 0x408 - F_GETSIG = 0xb - F_LOCK = 0x1 - F_NOTIFY = 0x402 - F_OFD_GETLK = 0x24 - F_OFD_SETLK = 0x25 - F_OFD_SETLKW = 0x26 - F_OK = 0x0 - F_RDLCK = 0x0 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLEASE = 0x400 - F_SETLK = 0x22 - F_SETLK64 = 0x22 - F_SETLKW = 0x23 - F_SETLKW64 = 0x23 - F_SETOWN = 0x18 - F_SETOWN_EX = 0xf - F_SETPIPE_SZ = 0x407 - F_SETSIG = 0xa - F_SHLCK = 0x8 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_ULOCK = 0x0 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - GENL_ADMIN_PERM = 0x1 - GENL_CMD_CAP_DO = 0x2 - GENL_CMD_CAP_DUMP = 0x4 - GENL_CMD_CAP_HASPOL = 0x8 - GENL_HDRLEN = 0x4 - GENL_ID_CTRL = 0x10 - GENL_ID_PMCRAID = 0x12 - GENL_ID_VFS_DQUOT = 0x11 - GENL_MAX_ID = 0x3ff - GENL_MIN_ID = 0x10 - GENL_NAMSIZ = 0x10 - GENL_START_ALLOC = 0x13 - GENL_UNS_ADMIN_PERM = 0x10 - GRND_NONBLOCK = 0x1 - GRND_RANDOM = 0x2 - HUPCL = 0x400 - IBSHIFT = 0x10 - ICANON = 0x2 - ICMPV6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x100 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_MANAGETEMPADDR = 0x100 - IFA_F_MCAUTOJOIN = 0x400 - IFA_F_NODAD = 0x2 - IFA_F_NOPREFIXROUTE = 0x200 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_STABLE_PRIVACY = 0x800 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0x8 - IFF_ALLMULTI = 0x200 - IFF_ATTACH_QUEUE = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DETACH_QUEUE = 0x400 - IFF_DORMANT = 0x20000 - IFF_DYNAMIC = 0x8000 - IFF_ECHO = 0x40000 - IFF_LOOPBACK = 0x8 - IFF_LOWER_UP = 0x10000 - IFF_MASTER = 0x400 - IFF_MULTICAST = 0x1000 - IFF_MULTI_QUEUE = 0x100 - IFF_NOARP = 0x80 - IFF_NOFILTER = 0x1000 - IFF_NOTRAILERS = 0x20 - IFF_NO_PI = 0x1000 - IFF_ONE_QUEUE = 0x2000 - IFF_PERSIST = 0x800 - IFF_POINTOPOINT = 0x10 - IFF_PORTSEL = 0x2000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SLAVE = 0x800 - IFF_TAP = 0x2 - IFF_TUN = 0x1 - IFF_TUN_EXCL = 0x8000 - IFF_UP = 0x1 - IFF_VNET_HDR = 0x4000 - IFF_VOLATILE = 0x70c5a - IFNAMSIZ = 0x10 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_ACCESS = 0x1 - IN_ALL_EVENTS = 0xfff - IN_ATTRIB = 0x4 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLOEXEC = 0x80000 - IN_CLOSE = 0x18 - IN_CLOSE_NOWRITE = 0x10 - IN_CLOSE_WRITE = 0x8 - IN_CREATE = 0x100 - IN_DELETE = 0x200 - IN_DELETE_SELF = 0x400 - IN_DONT_FOLLOW = 0x2000000 - IN_EXCL_UNLINK = 0x4000000 - IN_IGNORED = 0x8000 - IN_ISDIR = 0x40000000 - IN_LOOPBACKNET = 0x7f - IN_MASK_ADD = 0x20000000 - IN_MODIFY = 0x2 - IN_MOVE = 0xc0 - IN_MOVED_FROM = 0x40 - IN_MOVED_TO = 0x80 - IN_MOVE_SELF = 0x800 - IN_NONBLOCK = 0x80 - IN_ONESHOT = 0x80000000 - IN_ONLYDIR = 0x1000000 - IN_OPEN = 0x20 - IN_Q_OVERFLOW = 0x4000 - IN_UNMOUNT = 0x2000 - IPPROTO_AH = 0x33 - IPPROTO_BEETPH = 0x5e - IPPROTO_COMP = 0x6c - IPPROTO_DCCP = 0x21 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPIP = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MH = 0x87 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_NONE = 0x3b - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_2292DSTOPTS = 0x4 - IPV6_2292HOPLIMIT = 0x8 - IPV6_2292HOPOPTS = 0x3 - IPV6_2292PKTINFO = 0x2 - IPV6_2292PKTOPTIONS = 0x6 - IPV6_2292RTHDR = 0x5 - IPV6_ADDRFORM = 0x1 - IPV6_ADD_MEMBERSHIP = 0x14 - IPV6_AUTHHDR = 0xa - IPV6_CHECKSUM = 0x7 - IPV6_DONTFRAG = 0x3e - IPV6_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - IPV6_HDRINCL = 0x24 - IPV6_HOPLIMIT = 0x34 - IPV6_HOPOPTS = 0x36 - IPV6_IPSEC_POLICY = 0x22 - IPV6_JOIN_ANYCAST = 0x1b - IPV6_JOIN_GROUP = 0x14 - IPV6_LEAVE_ANYCAST = 0x1c - IPV6_LEAVE_GROUP = 0x15 - IPV6_MTU = 0x18 - IPV6_MTU_DISCOVER = 0x17 - IPV6_MULTICAST_HOPS = 0x12 - IPV6_MULTICAST_IF = 0x11 - IPV6_MULTICAST_LOOP = 0x13 - IPV6_NEXTHOP = 0x9 - IPV6_PATHMTU = 0x3d - IPV6_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_INTERFACE = 0x4 - IPV6_PMTUDISC_OMIT = 0x5 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVPATHMTU = 0x3c - IPV6_RECVPKTINFO = 0x31 - IPV6_RECVRTHDR = 0x38 - IPV6_RECVTCLASS = 0x42 - IPV6_ROUTER_ALERT = 0x16 - IPV6_RTHDR = 0x39 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RXDSTOPTS = 0x3b - IPV6_RXHOPOPTS = 0x36 - IPV6_TCLASS = 0x43 - IPV6_UNICAST_HOPS = 0x10 - IPV6_V6ONLY = 0x1a - IPV6_XFRM_POLICY = 0x23 - IP_ADD_MEMBERSHIP = 0x23 - IP_ADD_SOURCE_MEMBERSHIP = 0x27 - IP_BIND_ADDRESS_NO_PORT = 0x18 - IP_BLOCK_SOURCE = 0x26 - IP_CHECKSUM = 0x17 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0x24 - IP_DROP_SOURCE_MEMBERSHIP = 0x28 - IP_FREEBIND = 0xf - IP_HDRINCL = 0x3 - IP_IPSEC_POLICY = 0x10 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINTTL = 0x15 - IP_MSFILTER = 0x29 - IP_MSS = 0x240 - IP_MTU = 0xe - IP_MTU_DISCOVER = 0xa - IP_MULTICAST_ALL = 0x31 - IP_MULTICAST_IF = 0x20 - IP_MULTICAST_LOOP = 0x22 - IP_MULTICAST_TTL = 0x21 - IP_NODEFRAG = 0x16 - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x4 - IP_ORIGDSTADDR = 0x14 - IP_PASSSEC = 0x12 - IP_PKTINFO = 0x8 - IP_PKTOPTIONS = 0x9 - IP_PMTUDISC = 0xa - IP_PMTUDISC_DO = 0x2 - IP_PMTUDISC_DONT = 0x0 - IP_PMTUDISC_INTERFACE = 0x4 - IP_PMTUDISC_OMIT = 0x5 - IP_PMTUDISC_PROBE = 0x3 - IP_PMTUDISC_WANT = 0x1 - IP_RECVERR = 0xb - IP_RECVOPTS = 0x6 - IP_RECVORIGDSTADDR = 0x14 - IP_RECVRETOPTS = 0x7 - IP_RECVTOS = 0xd - IP_RECVTTL = 0xc - IP_RETOPTS = 0x7 - IP_RF = 0x8000 - IP_ROUTER_ALERT = 0x5 - IP_TOS = 0x1 - IP_TRANSPARENT = 0x13 - IP_TTL = 0x2 - IP_UNBLOCK_SOURCE = 0x25 - IP_UNICAST_IF = 0x32 - IP_XFRM_POLICY = 0x11 - ISIG = 0x1 - ISTRIP = 0x20 - IUCLC = 0x200 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x1000 - IXON = 0x400 - KEYCTL_ASSUME_AUTHORITY = 0x10 - KEYCTL_CHOWN = 0x4 - KEYCTL_CLEAR = 0x7 - KEYCTL_DESCRIBE = 0x6 - KEYCTL_DH_COMPUTE = 0x17 - KEYCTL_GET_KEYRING_ID = 0x0 - KEYCTL_GET_PERSISTENT = 0x16 - KEYCTL_GET_SECURITY = 0x11 - KEYCTL_INSTANTIATE = 0xc - KEYCTL_INSTANTIATE_IOV = 0x14 - KEYCTL_INVALIDATE = 0x15 - KEYCTL_JOIN_SESSION_KEYRING = 0x1 - KEYCTL_LINK = 0x8 - KEYCTL_NEGATE = 0xd - KEYCTL_READ = 0xb - KEYCTL_REJECT = 0x13 - KEYCTL_REVOKE = 0x3 - KEYCTL_SEARCH = 0xa - KEYCTL_SESSION_TO_PARENT = 0x12 - KEYCTL_SETPERM = 0x5 - KEYCTL_SET_REQKEY_KEYRING = 0xe - KEYCTL_SET_TIMEOUT = 0xf - KEYCTL_UNLINK = 0x9 - KEYCTL_UPDATE = 0x2 - KEY_REQKEY_DEFL_DEFAULT = 0x0 - KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 - KEY_REQKEY_DEFL_NO_CHANGE = -0x1 - KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 - KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 - KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 - KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 - KEY_REQKEY_DEFL_USER_KEYRING = 0x4 - KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 - KEY_SPEC_GROUP_KEYRING = -0x6 - KEY_SPEC_PROCESS_KEYRING = -0x2 - KEY_SPEC_REQKEY_AUTH_KEY = -0x7 - KEY_SPEC_REQUESTOR_KEYRING = -0x8 - KEY_SPEC_SESSION_KEYRING = -0x3 - KEY_SPEC_THREAD_KEYRING = -0x1 - KEY_SPEC_USER_KEYRING = -0x4 - KEY_SPEC_USER_SESSION_KEYRING = -0x5 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef - LINUX_REBOOT_CMD_HALT = 0xcdef0123 - LINUX_REBOOT_CMD_KEXEC = 0x45584543 - LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc - LINUX_REBOOT_CMD_RESTART = 0x1234567 - LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 - LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 - LINUX_REBOOT_MAGIC1 = 0xfee1dead - LINUX_REBOOT_MAGIC2 = 0x28121969 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DODUMP = 0x11 - MADV_DOFORK = 0xb - MADV_DONTDUMP = 0x10 - MADV_DONTFORK = 0xa - MADV_DONTNEED = 0x4 - MADV_FREE = 0x8 - MADV_HUGEPAGE = 0xe - MADV_HWPOISON = 0x64 - MADV_MERGEABLE = 0xc - MADV_NOHUGEPAGE = 0xf - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_REMOVE = 0x9 - MADV_SEQUENTIAL = 0x2 - MADV_UNMERGEABLE = 0xd - MADV_WILLNEED = 0x3 - MAP_ANON = 0x800 - MAP_ANONYMOUS = 0x800 - MAP_DENYWRITE = 0x2000 - MAP_EXECUTABLE = 0x4000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_GROWSDOWN = 0x1000 - MAP_HUGETLB = 0x80000 - MAP_HUGE_MASK = 0x3f - MAP_HUGE_SHIFT = 0x1a - MAP_LOCKED = 0x8000 - MAP_NONBLOCK = 0x20000 - MAP_NORESERVE = 0x400 - MAP_POPULATE = 0x10000 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x800 - MAP_SHARED = 0x1 - MAP_STACK = 0x40000 - MAP_TYPE = 0xf - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - MSG_BATCH = 0x40000 - MSG_CMSG_CLOEXEC = 0x40000000 - MSG_CONFIRM = 0x800 - MSG_CTRUNC = 0x8 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x40 - MSG_EOR = 0x80 - MSG_ERRQUEUE = 0x2000 - MSG_FASTOPEN = 0x20000000 - MSG_FIN = 0x200 - MSG_MORE = 0x8000 - MSG_NOSIGNAL = 0x4000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_PROXY = 0x10 - MSG_RST = 0x1000 - MSG_SYN = 0x400 - MSG_TRUNC = 0x20 - MSG_TRYHARD = 0x4 - MSG_WAITALL = 0x100 - MSG_WAITFORONE = 0x10000 - MS_ACTIVE = 0x40000000 - MS_ASYNC = 0x1 - MS_BIND = 0x1000 - MS_BORN = 0x20000000 - MS_DIRSYNC = 0x80 - MS_INVALIDATE = 0x2 - MS_I_VERSION = 0x800000 - MS_KERNMOUNT = 0x400000 - MS_LAZYTIME = 0x2000000 - MS_MANDLOCK = 0x40 - MS_MGC_MSK = 0xffff0000 - MS_MGC_VAL = 0xc0ed0000 - MS_MOVE = 0x2000 - MS_NOATIME = 0x400 - MS_NODEV = 0x4 - MS_NODIRATIME = 0x800 - MS_NOEXEC = 0x8 - MS_NOREMOTELOCK = 0x8000000 - MS_NOSEC = 0x10000000 - MS_NOSUID = 0x2 - MS_NOUSER = -0x80000000 - MS_POSIXACL = 0x10000 - MS_PRIVATE = 0x40000 - MS_RDONLY = 0x1 - MS_REC = 0x4000 - MS_RELATIME = 0x200000 - MS_REMOUNT = 0x20 - MS_RMT_MASK = 0x2800051 - MS_SHARED = 0x100000 - MS_SILENT = 0x8000 - MS_SLAVE = 0x80000 - MS_STRICTATIME = 0x1000000 - MS_SYNC = 0x4 - MS_SYNCHRONOUS = 0x10 - MS_UNBINDABLE = 0x20000 - MS_VERBOSE = 0x8000 - NAME_MAX = 0xff - NETLINK_ADD_MEMBERSHIP = 0x1 - NETLINK_AUDIT = 0x9 - NETLINK_BROADCAST_ERROR = 0x4 - NETLINK_CAP_ACK = 0xa - NETLINK_CONNECTOR = 0xb - NETLINK_CRYPTO = 0x15 - NETLINK_DNRTMSG = 0xe - NETLINK_DROP_MEMBERSHIP = 0x2 - NETLINK_ECRYPTFS = 0x13 - NETLINK_FIB_LOOKUP = 0xa - NETLINK_FIREWALL = 0x3 - NETLINK_GENERIC = 0x10 - NETLINK_INET_DIAG = 0x4 - NETLINK_IP6_FW = 0xd - NETLINK_ISCSI = 0x8 - NETLINK_KOBJECT_UEVENT = 0xf - NETLINK_LISTEN_ALL_NSID = 0x8 - NETLINK_LIST_MEMBERSHIPS = 0x9 - NETLINK_NETFILTER = 0xc - NETLINK_NFLOG = 0x5 - NETLINK_NO_ENOBUFS = 0x5 - NETLINK_PKTINFO = 0x3 - NETLINK_RDMA = 0x14 - NETLINK_ROUTE = 0x0 - NETLINK_RX_RING = 0x6 - NETLINK_SCSITRANSPORT = 0x12 - NETLINK_SELINUX = 0x7 - NETLINK_SOCK_DIAG = 0x4 - NETLINK_TX_RING = 0x7 - NETLINK_UNUSED = 0x1 - NETLINK_USERSOCK = 0x2 - NETLINK_XFRM = 0x6 - NL0 = 0x0 - NL1 = 0x100 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - NLDLY = 0x100 - NLMSG_ALIGNTO = 0x4 - NLMSG_DONE = 0x3 - NLMSG_ERROR = 0x2 - NLMSG_HDRLEN = 0x10 - NLMSG_MIN_TYPE = 0x10 - NLMSG_NOOP = 0x1 - NLMSG_OVERRUN = 0x4 - NLM_F_ACK = 0x4 - NLM_F_APPEND = 0x800 - NLM_F_ATOMIC = 0x400 - NLM_F_CREATE = 0x400 - NLM_F_DUMP = 0x300 - NLM_F_DUMP_FILTERED = 0x20 - NLM_F_DUMP_INTR = 0x10 - NLM_F_ECHO = 0x8 - NLM_F_EXCL = 0x200 - NLM_F_MATCH = 0x200 - NLM_F_MULTI = 0x2 - NLM_F_REPLACE = 0x100 - NLM_F_REQUEST = 0x1 - NLM_F_ROOT = 0x100 - NOFLSH = 0x80 - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x2 - ONLCR = 0x4 - ONLRET = 0x20 - ONOCR = 0x10 - OPOST = 0x1 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x1000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x100 - O_DIRECT = 0x8000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x10 - O_EXCL = 0x400 - O_FSYNC = 0x4010 - O_LARGEFILE = 0x2000 - O_NDELAY = 0x80 - O_NOATIME = 0x40000 - O_NOCTTY = 0x800 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x80 - O_PATH = 0x200000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x4010 - O_SYNC = 0x4010 - O_TMPFILE = 0x410000 - O_TRUNC = 0x200 - O_WRONLY = 0x1 - PACKET_ADD_MEMBERSHIP = 0x1 - PACKET_AUXDATA = 0x8 - PACKET_BROADCAST = 0x1 - PACKET_COPY_THRESH = 0x7 - PACKET_DROP_MEMBERSHIP = 0x2 - PACKET_FANOUT = 0x12 - PACKET_FANOUT_CBPF = 0x6 - PACKET_FANOUT_CPU = 0x2 - PACKET_FANOUT_DATA = 0x16 - PACKET_FANOUT_EBPF = 0x7 - PACKET_FANOUT_FLAG_DEFRAG = 0x8000 - PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 - PACKET_FANOUT_HASH = 0x0 - PACKET_FANOUT_LB = 0x1 - PACKET_FANOUT_QM = 0x5 - PACKET_FANOUT_RND = 0x4 - PACKET_FANOUT_ROLLOVER = 0x3 - PACKET_FASTROUTE = 0x6 - PACKET_HDRLEN = 0xb - PACKET_HOST = 0x0 - PACKET_KERNEL = 0x7 - PACKET_LOOPBACK = 0x5 - PACKET_LOSS = 0xe - PACKET_MR_ALLMULTI = 0x2 - PACKET_MR_MULTICAST = 0x0 - PACKET_MR_PROMISC = 0x1 - PACKET_MR_UNICAST = 0x3 - PACKET_MULTICAST = 0x2 - PACKET_ORIGDEV = 0x9 - PACKET_OTHERHOST = 0x3 - PACKET_OUTGOING = 0x4 - PACKET_QDISC_BYPASS = 0x14 - PACKET_RECV_OUTPUT = 0x3 - PACKET_RESERVE = 0xc - PACKET_ROLLOVER_STATS = 0x15 - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - PACKET_TIMESTAMP = 0x11 - PACKET_TX_HAS_OFF = 0x13 - PACKET_TX_RING = 0xd - PACKET_TX_TIMESTAMP = 0x10 - PACKET_USER = 0x6 - PACKET_VERSION = 0xa - PACKET_VNET_HDR = 0xf - PARENB = 0x100 - PARITY_CRC16_PR0 = 0x2 - PARITY_CRC16_PR0_CCITT = 0x4 - PARITY_CRC16_PR1 = 0x3 - PARITY_CRC16_PR1_CCITT = 0x5 - PARITY_CRC32_PR0_CCITT = 0x6 - PARITY_CRC32_PR1_CCITT = 0x7 - PARITY_DEFAULT = 0x0 - PARITY_NONE = 0x1 - PARMRK = 0x8 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x20002401 - PERF_EVENT_IOC_ENABLE = 0x20002400 - PERF_EVENT_IOC_ID = 0x40042407 - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 - PERF_EVENT_IOC_PERIOD = 0x80082404 - PERF_EVENT_IOC_REFRESH = 0x20002402 - PERF_EVENT_IOC_RESET = 0x20002403 - PERF_EVENT_IOC_SET_BPF = 0x80042408 - PERF_EVENT_IOC_SET_FILTER = 0x80042406 - PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_GROWSDOWN = 0x1000000 - PROT_GROWSUP = 0x2000000 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PR_CAPBSET_DROP = 0x18 - PR_CAPBSET_READ = 0x17 - PR_CAP_AMBIENT = 0x2f - PR_CAP_AMBIENT_CLEAR_ALL = 0x4 - PR_CAP_AMBIENT_IS_SET = 0x1 - PR_CAP_AMBIENT_LOWER = 0x3 - PR_CAP_AMBIENT_RAISE = 0x2 - PR_ENDIAN_BIG = 0x0 - PR_ENDIAN_LITTLE = 0x1 - PR_ENDIAN_PPC_LITTLE = 0x2 - PR_FPEMU_NOPRINT = 0x1 - PR_FPEMU_SIGFPE = 0x2 - PR_FP_EXC_ASYNC = 0x2 - PR_FP_EXC_DISABLED = 0x0 - PR_FP_EXC_DIV = 0x10000 - PR_FP_EXC_INV = 0x100000 - PR_FP_EXC_NONRECOV = 0x1 - PR_FP_EXC_OVF = 0x20000 - PR_FP_EXC_PRECISE = 0x3 - PR_FP_EXC_RES = 0x80000 - PR_FP_EXC_SW_ENABLE = 0x80 - PR_FP_EXC_UND = 0x40000 - PR_FP_MODE_FR = 0x1 - PR_FP_MODE_FRE = 0x2 - PR_GET_CHILD_SUBREAPER = 0x25 - PR_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - PR_GET_FP_MODE = 0x2e - PR_GET_KEEPCAPS = 0x7 - PR_GET_NAME = 0x10 - PR_GET_NO_NEW_PRIVS = 0x27 - PR_GET_PDEATHSIG = 0x2 - PR_GET_SECCOMP = 0x15 - PR_GET_SECUREBITS = 0x1b - PR_GET_THP_DISABLE = 0x2a - PR_GET_TID_ADDRESS = 0x28 - PR_GET_TIMERSLACK = 0x1e - PR_GET_TIMING = 0xd - PR_GET_TSC = 0x19 - PR_GET_UNALIGN = 0x5 - PR_MCE_KILL = 0x21 - PR_MCE_KILL_CLEAR = 0x0 - PR_MCE_KILL_DEFAULT = 0x2 - PR_MCE_KILL_EARLY = 0x1 - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_SET_CHILD_SUBREAPER = 0x24 - PR_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - PR_SET_FP_MODE = 0x2d - PR_SET_KEEPCAPS = 0x8 - PR_SET_MM = 0x23 - PR_SET_MM_ARG_END = 0x9 - PR_SET_MM_ARG_START = 0x8 - PR_SET_MM_AUXV = 0xc - PR_SET_MM_BRK = 0x7 - PR_SET_MM_END_CODE = 0x2 - PR_SET_MM_END_DATA = 0x4 - PR_SET_MM_ENV_END = 0xb - PR_SET_MM_ENV_START = 0xa - PR_SET_MM_EXE_FILE = 0xd - PR_SET_MM_MAP = 0xe - PR_SET_MM_MAP_SIZE = 0xf - PR_SET_MM_START_BRK = 0x6 - PR_SET_MM_START_CODE = 0x1 - PR_SET_MM_START_DATA = 0x3 - PR_SET_MM_START_STACK = 0x5 - PR_SET_NAME = 0xf - PR_SET_NO_NEW_PRIVS = 0x26 - PR_SET_PDEATHSIG = 0x1 - PR_SET_PTRACER = 0x59616d61 - PR_SET_PTRACER_ANY = 0xffffffff - PR_SET_SECCOMP = 0x16 - PR_SET_SECUREBITS = 0x1c - PR_SET_THP_DISABLE = 0x29 - PR_SET_TIMERSLACK = 0x1d - PR_SET_TIMING = 0xe - PR_SET_TSC = 0x1a - PR_SET_UNALIGN = 0x6 - PR_TASK_PERF_EVENTS_DISABLE = 0x1f - PR_TASK_PERF_EVENTS_ENABLE = 0x20 - PR_TIMING_STATISTICAL = 0x0 - PR_TIMING_TIMESTAMP = 0x1 - PR_TSC_ENABLE = 0x1 - PR_TSC_SIGSEGV = 0x2 - PR_UNALIGN_NOPRINT = 0x1 - PR_UNALIGN_SIGBUS = 0x2 - PTRACE_ATTACH = 0x10 - PTRACE_CONT = 0x7 - PTRACE_DETACH = 0x11 - PTRACE_EVENT_CLONE = 0x3 - PTRACE_EVENT_EXEC = 0x4 - PTRACE_EVENT_EXIT = 0x6 - PTRACE_EVENT_FORK = 0x1 - PTRACE_EVENT_SECCOMP = 0x7 - PTRACE_EVENT_STOP = 0x80 - PTRACE_EVENT_VFORK = 0x2 - PTRACE_EVENT_VFORK_DONE = 0x5 - PTRACE_GETEVENTMSG = 0x4201 - PTRACE_GETFPREGS = 0xe - PTRACE_GETREGS = 0xc - PTRACE_GETREGSET = 0x4204 - PTRACE_GETSIGINFO = 0x4202 - PTRACE_GETSIGMASK = 0x420a - PTRACE_GET_THREAD_AREA = 0x19 - PTRACE_GET_THREAD_AREA_3264 = 0xc4 - PTRACE_GET_WATCH_REGS = 0xd0 - PTRACE_INTERRUPT = 0x4207 - PTRACE_KILL = 0x8 - PTRACE_LISTEN = 0x4208 - PTRACE_OLDSETOPTIONS = 0x15 - PTRACE_O_EXITKILL = 0x100000 - PTRACE_O_MASK = 0x3000ff - PTRACE_O_SUSPEND_SECCOMP = 0x200000 - PTRACE_O_TRACECLONE = 0x8 - PTRACE_O_TRACEEXEC = 0x10 - PTRACE_O_TRACEEXIT = 0x40 - PTRACE_O_TRACEFORK = 0x2 - PTRACE_O_TRACESECCOMP = 0x80 - PTRACE_O_TRACESYSGOOD = 0x1 - PTRACE_O_TRACEVFORK = 0x4 - PTRACE_O_TRACEVFORKDONE = 0x20 - PTRACE_PEEKDATA = 0x2 - PTRACE_PEEKDATA_3264 = 0xc1 - PTRACE_PEEKSIGINFO = 0x4209 - PTRACE_PEEKSIGINFO_SHARED = 0x1 - PTRACE_PEEKTEXT = 0x1 - PTRACE_PEEKTEXT_3264 = 0xc0 - PTRACE_PEEKUSR = 0x3 - PTRACE_POKEDATA = 0x5 - PTRACE_POKEDATA_3264 = 0xc3 - PTRACE_POKETEXT = 0x4 - PTRACE_POKETEXT_3264 = 0xc2 - PTRACE_POKEUSR = 0x6 - PTRACE_SECCOMP_GET_FILTER = 0x420c - PTRACE_SEIZE = 0x4206 - PTRACE_SETFPREGS = 0xf - PTRACE_SETOPTIONS = 0x4200 - PTRACE_SETREGS = 0xd - PTRACE_SETREGSET = 0x4205 - PTRACE_SETSIGINFO = 0x4203 - PTRACE_SETSIGMASK = 0x420b - PTRACE_SET_THREAD_AREA = 0x1a - PTRACE_SET_WATCH_REGS = 0xd1 - PTRACE_SINGLESTEP = 0x9 - PTRACE_SYSCALL = 0x18 - PTRACE_TRACEME = 0x0 - RLIMIT_AS = 0x6 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_LOCKS = 0xa - RLIMIT_MEMLOCK = 0x9 - RLIMIT_MSGQUEUE = 0xc - RLIMIT_NICE = 0xd - RLIMIT_NOFILE = 0x5 - RLIMIT_NPROC = 0x8 - RLIMIT_RSS = 0x7 - RLIMIT_RTPRIO = 0xe - RLIMIT_RTTIME = 0xf - RLIMIT_SIGPENDING = 0xb - RLIMIT_STACK = 0x3 - RLIM_INFINITY = -0x1 - RTAX_ADVMSS = 0x8 - RTAX_CC_ALGO = 0x10 - RTAX_CWND = 0x7 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_MASK = 0xf - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0x10 - RTAX_MTU = 0x2 - RTAX_QUICKACK = 0xf - RTAX_REORDERING = 0x9 - RTAX_RTO_MIN = 0xd - RTAX_RTT = 0x4 - RTAX_RTTVAR = 0x5 - RTAX_SSTHRESH = 0x6 - RTAX_UNSPEC = 0x0 - RTAX_WINDOW = 0x3 - RTA_ALIGNTO = 0x4 - RTA_MAX = 0x19 - RTCF_DIRECTSRC = 0x4000000 - RTCF_DOREDIRECT = 0x1000000 - RTCF_LOG = 0x2000000 - RTCF_MASQ = 0x400000 - RTCF_NAT = 0x800000 - RTCF_VALVE = 0x200000 - RTF_ADDRCLASSMASK = 0xf8000000 - RTF_ADDRCONF = 0x40000 - RTF_ALLONLINK = 0x20000 - RTF_BROADCAST = 0x10000000 - RTF_CACHE = 0x1000000 - RTF_DEFAULT = 0x10000 - RTF_DYNAMIC = 0x10 - RTF_FLOW = 0x2000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_INTERFACE = 0x40000000 - RTF_IRTT = 0x100 - RTF_LINKRT = 0x100000 - RTF_LOCAL = 0x80000000 - RTF_MODIFIED = 0x20 - RTF_MSS = 0x40 - RTF_MTU = 0x40 - RTF_MULTICAST = 0x20000000 - RTF_NAT = 0x8000000 - RTF_NOFORWARD = 0x1000 - RTF_NONEXTHOP = 0x200000 - RTF_NOPMTUDISC = 0x4000 - RTF_POLICY = 0x4000000 - RTF_REINSTATE = 0x8 - RTF_REJECT = 0x200 - RTF_STATIC = 0x400 - RTF_THROW = 0x2000 - RTF_UP = 0x1 - RTF_WINDOW = 0x80 - RTF_XRESOLVE = 0x800 - RTM_BASE = 0x10 - RTM_DELACTION = 0x31 - RTM_DELADDR = 0x15 - RTM_DELADDRLABEL = 0x49 - RTM_DELLINK = 0x11 - RTM_DELMDB = 0x55 - RTM_DELNEIGH = 0x1d - RTM_DELNSID = 0x59 - RTM_DELQDISC = 0x25 - RTM_DELROUTE = 0x19 - RTM_DELRULE = 0x21 - RTM_DELTCLASS = 0x29 - RTM_DELTFILTER = 0x2d - RTM_F_CLONED = 0x200 - RTM_F_EQUALIZE = 0x400 - RTM_F_LOOKUP_TABLE = 0x1000 - RTM_F_NOTIFY = 0x100 - RTM_F_PREFIX = 0x800 - RTM_GETACTION = 0x32 - RTM_GETADDR = 0x16 - RTM_GETADDRLABEL = 0x4a - RTM_GETANYCAST = 0x3e - RTM_GETDCB = 0x4e - RTM_GETLINK = 0x12 - RTM_GETMDB = 0x56 - RTM_GETMULTICAST = 0x3a - RTM_GETNEIGH = 0x1e - RTM_GETNEIGHTBL = 0x42 - RTM_GETNETCONF = 0x52 - RTM_GETNSID = 0x5a - RTM_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETSTATS = 0x5e - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_MAX = 0x5f - RTM_NEWACTION = 0x30 - RTM_NEWADDR = 0x14 - RTM_NEWADDRLABEL = 0x48 - RTM_NEWLINK = 0x10 - RTM_NEWMDB = 0x54 - RTM_NEWNDUSEROPT = 0x44 - RTM_NEWNEIGH = 0x1c - RTM_NEWNEIGHTBL = 0x40 - RTM_NEWNETCONF = 0x50 - RTM_NEWNSID = 0x58 - RTM_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWSTATS = 0x5c - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NR_FAMILIES = 0x14 - RTM_NR_MSGTYPES = 0x50 - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTNH_ALIGNTO = 0x4 - RTNH_COMPARE_MASK = 0x19 - RTNH_F_DEAD = 0x1 - RTNH_F_LINKDOWN = 0x10 - RTNH_F_OFFLOAD = 0x8 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTN_MAX = 0xb - RTPROT_BABEL = 0x2a - RTPROT_BIRD = 0xc - RTPROT_BOOT = 0x3 - RTPROT_DHCP = 0x10 - RTPROT_DNROUTED = 0xd - RTPROT_GATED = 0x8 - RTPROT_KERNEL = 0x2 - RTPROT_MROUTED = 0x11 - RTPROT_MRT = 0xa - RTPROT_NTK = 0xf - RTPROT_RA = 0x9 - RTPROT_REDIRECT = 0x1 - RTPROT_STATIC = 0x4 - RTPROT_UNSPEC = 0x0 - RTPROT_XORP = 0xe - RTPROT_ZEBRA = 0xb - RT_CLASS_DEFAULT = 0xfd - RT_CLASS_LOCAL = 0xff - RT_CLASS_MAIN = 0xfe - RT_CLASS_MAX = 0xff - RT_CLASS_UNSPEC = 0x0 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_CREDENTIALS = 0x2 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPNS = 0x23 - SCM_WIFI_STATUS = 0x29 - SECCOMP_MODE_DISABLED = 0x0 - SECCOMP_MODE_FILTER = 0x2 - SECCOMP_MODE_STRICT = 0x1 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCATMARK = 0x40047307 - SIOCBONDCHANGEACTIVE = 0x8995 - SIOCBONDENSLAVE = 0x8990 - SIOCBONDINFOQUERY = 0x8994 - SIOCBONDRELEASE = 0x8991 - SIOCBONDSETHWADDR = 0x8992 - SIOCBONDSLAVEINFOQUERY = 0x8993 - SIOCBRADDBR = 0x89a0 - SIOCBRADDIF = 0x89a2 - SIOCBRDELBR = 0x89a1 - SIOCBRDELIF = 0x89a3 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCETHTOOL = 0x8946 - SIOCGARP = 0x8954 - SIOCGHWTSTAMP = 0x89b1 - SIOCGIFADDR = 0x8915 - SIOCGIFBR = 0x8940 - SIOCGIFBRDADDR = 0x8919 - SIOCGIFCONF = 0x8912 - SIOCGIFCOUNT = 0x8938 - SIOCGIFDSTADDR = 0x8917 - SIOCGIFENCAP = 0x8925 - SIOCGIFFLAGS = 0x8913 - SIOCGIFHWADDR = 0x8927 - SIOCGIFINDEX = 0x8933 - SIOCGIFMAP = 0x8970 - SIOCGIFMEM = 0x891f - SIOCGIFMETRIC = 0x891d - SIOCGIFMTU = 0x8921 - SIOCGIFNAME = 0x8910 - SIOCGIFNETMASK = 0x891b - SIOCGIFPFLAGS = 0x8935 - SIOCGIFSLAVE = 0x8929 - SIOCGIFTXQLEN = 0x8942 - SIOCGIFVLAN = 0x8982 - SIOCGMIIPHY = 0x8947 - SIOCGMIIREG = 0x8948 - SIOCGPGRP = 0x40047309 - SIOCGRARP = 0x8961 - SIOCGSKNS = 0x894c - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCINQ = 0x467f - SIOCOUTQ = 0x7472 - SIOCOUTQNSD = 0x894b - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - SIOCSHWTSTAMP = 0x89b0 - SIOCSIFADDR = 0x8916 - SIOCSIFBR = 0x8941 - SIOCSIFBRDADDR = 0x891a - SIOCSIFDSTADDR = 0x8918 - SIOCSIFENCAP = 0x8926 - SIOCSIFFLAGS = 0x8914 - SIOCSIFHWADDR = 0x8924 - SIOCSIFHWBROADCAST = 0x8937 - SIOCSIFLINK = 0x8911 - SIOCSIFMAP = 0x8971 - SIOCSIFMEM = 0x8920 - SIOCSIFMETRIC = 0x891e - SIOCSIFMTU = 0x8922 - SIOCSIFNAME = 0x8923 - SIOCSIFNETMASK = 0x891c - SIOCSIFPFLAGS = 0x8934 - SIOCSIFSLAVE = 0x8930 - SIOCSIFTXQLEN = 0x8943 - SIOCSIFVLAN = 0x8983 - SIOCSMIIREG = 0x8949 - SIOCSPGRP = 0x80047308 - SIOCSRARP = 0x8962 - SIOCWANDEV = 0x894a - SOCK_CLOEXEC = 0x80000 - SOCK_DCCP = 0x6 - SOCK_DGRAM = 0x1 - SOCK_IOC_TYPE = 0x89 - SOCK_NONBLOCK = 0x80 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x2 - SOL_AAL = 0x109 - SOL_ALG = 0x117 - SOL_ATM = 0x108 - SOL_CAIF = 0x116 - SOL_CAN_BASE = 0x64 - SOL_DCCP = 0x10d - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_IUCV = 0x115 - SOL_KCM = 0x119 - SOL_LLC = 0x10c - SOL_NETBEUI = 0x10b - SOL_NETLINK = 0x10e - SOL_NFC = 0x118 - SOL_PACKET = 0x107 - SOL_PNPIPE = 0x113 - SOL_PPPOL2TP = 0x111 - SOL_RAW = 0xff - SOL_RDS = 0x114 - SOL_RXRPC = 0x110 - SOL_SOCKET = 0xffff - SOL_TCP = 0x6 - SOL_TIPC = 0x10f - SOL_X25 = 0x106 - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x1009 - SO_ATTACH_BPF = 0x32 - SO_ATTACH_FILTER = 0x1a - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x20 - SO_BSDCOMPAT = 0xe - SO_BUSY_POLL = 0x2e - SO_CNX_ADVICE = 0x35 - SO_DEBUG = 0x1 - SO_DETACH_BPF = 0x1b - SO_DETACH_FILTER = 0x1b - SO_DOMAIN = 0x1029 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_GET_FILTER = 0x1a - SO_INCOMING_CPU = 0x31 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_NOFCS = 0x2b - SO_NO_CHECK = 0xb - SO_OOBINLINE = 0x100 - SO_PASSCRED = 0x11 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x12 - SO_PEERNAME = 0x1c - SO_PEERSEC = 0x1e - SO_PRIORITY = 0xc - SO_PROTOCOL = 0x1028 - SO_RCVBUF = 0x1002 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x1001 - SO_SNDBUFFORCE = 0x1f - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_STYLE = 0x1008 - SO_TIMESTAMP = 0x1d - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TYPE = 0x1008 - SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 - SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 - SO_VM_SOCKETS_BUFFER_SIZE = 0x0 - SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 - SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 - SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 - SO_VM_SOCKETS_TRUSTED = 0x5 - SO_WIFI_STATUS = 0x29 - SPLICE_F_GIFT = 0x8 - SPLICE_F_MORE = 0x4 - SPLICE_F_MOVE = 0x1 - SPLICE_F_NONBLOCK = 0x2 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TASKSTATS_CMD_ATTR_MAX = 0x4 - TASKSTATS_CMD_MAX = 0x2 - TASKSTATS_GENL_NAME = "TASKSTATS" - TASKSTATS_GENL_VERSION = 0x1 - TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x8 - TCFLSH = 0x5407 - TCGETA = 0x5401 - TCGETS = 0x540d - TCGETS2 = 0x4030542a - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_CC_INFO = 0x1a - TCP_CONGESTION = 0xd - TCP_COOKIE_IN_ALWAYS = 0x1 - TCP_COOKIE_MAX = 0x10 - TCP_COOKIE_MIN = 0x8 - TCP_COOKIE_OUT_NEVER = 0x2 - TCP_COOKIE_PAIR_SIZE = 0x20 - TCP_COOKIE_TRANSACTIONS = 0xf - TCP_CORK = 0x3 - TCP_DEFER_ACCEPT = 0x9 - TCP_FASTOPEN = 0x17 - TCP_INFO = 0xb - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x4 - TCP_KEEPINTVL = 0x5 - TCP_LINGER2 = 0x8 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0xe - TCP_MD5SIG_MAXKEYLEN = 0x50 - TCP_MSS = 0x200 - TCP_MSS_DEFAULT = 0x218 - TCP_MSS_DESIRED = 0x4c4 - TCP_NODELAY = 0x1 - TCP_NOTSENT_LOWAT = 0x19 - TCP_QUEUE_SEQ = 0x15 - TCP_QUICKACK = 0xc - TCP_REPAIR = 0x13 - TCP_REPAIR_OPTIONS = 0x16 - TCP_REPAIR_QUEUE = 0x14 - TCP_REPAIR_WINDOW = 0x1d - TCP_SAVED_SYN = 0x1c - TCP_SAVE_SYN = 0x1b - TCP_SYNCNT = 0x7 - TCP_S_DATA_IN = 0x4 - TCP_S_DATA_OUT = 0x8 - TCP_THIN_DUPACK = 0x11 - TCP_THIN_LINEAR_TIMEOUTS = 0x10 - TCP_TIMESTAMP = 0x18 - TCP_USER_TIMEOUT = 0x12 - TCP_WINDOW_CLAMP = 0xa - TCSAFLUSH = 0x5410 - TCSBRK = 0x5405 - TCSBRKP = 0x5486 - TCSETA = 0x5402 - TCSETAF = 0x5404 - TCSETAW = 0x5403 - TCSETS = 0x540e - TCSETS2 = 0x8030542b - TCSETSF = 0x5410 - TCSETSF2 = 0x8030542d - TCSETSW = 0x540f - TCSETSW2 = 0x8030542c - TCXONC = 0x5406 - TIOCCBRK = 0x5428 - TIOCCONS = 0x80047478 - TIOCEXCL = 0x740d - TIOCGDEV = 0x40045432 - TIOCGETD = 0x7400 - TIOCGETP = 0x7408 - TIOCGEXCL = 0x40045440 - TIOCGICOUNT = 0x5492 - TIOCGLCKTRMIOS = 0x548b - TIOCGLTC = 0x7474 - TIOCGPGRP = 0x40047477 - TIOCGPKT = 0x40045438 - TIOCGPTLCK = 0x40045439 - TIOCGPTN = 0x40045430 - TIOCGRS485 = 0x4020542e - TIOCGSERIAL = 0x5484 - TIOCGSID = 0x7416 - TIOCGSOFTCAR = 0x5481 - TIOCGWINSZ = 0x40087468 - TIOCINQ = 0x467f - TIOCLINUX = 0x5483 - TIOCMBIC = 0x741c - TIOCMBIS = 0x741b - TIOCMGET = 0x741d - TIOCMIWAIT = 0x5491 - TIOCMSET = 0x741a - TIOCM_CAR = 0x100 - TIOCM_CD = 0x100 - TIOCM_CTS = 0x40 - TIOCM_DSR = 0x400 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x200 - TIOCM_RNG = 0x200 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x20 - TIOCM_ST = 0x10 - TIOCNOTTY = 0x5471 - TIOCNXCL = 0x740e - TIOCOUTQ = 0x7472 - TIOCPKT = 0x5470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x5480 - TIOCSERCONFIG = 0x5488 - TIOCSERGETLSR = 0x548e - TIOCSERGETMULTI = 0x548f - TIOCSERGSTRUCT = 0x548d - TIOCSERGWILD = 0x5489 - TIOCSERSETMULTI = 0x5490 - TIOCSERSWILD = 0x548a - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x7401 - TIOCSETN = 0x740a - TIOCSETP = 0x7409 - TIOCSIG = 0x80045436 - TIOCSLCKTRMIOS = 0x548c - TIOCSLTC = 0x7475 - TIOCSPGRP = 0x80047476 - TIOCSPTLCK = 0x80045431 - TIOCSRS485 = 0xc020542f - TIOCSSERIAL = 0x5485 - TIOCSSOFTCAR = 0x5482 - TIOCSTI = 0x5472 - TIOCSWINSZ = 0x80087467 - TIOCVHANGUP = 0x5437 - TOSTOP = 0x8000 - TS_COMM_LEN = 0x20 - TUNATTACHFILTER = 0x800854d5 - TUNDETACHFILTER = 0x800854d6 - TUNGETFEATURES = 0x400454cf - TUNGETFILTER = 0x400854db - TUNGETIFF = 0x400454d2 - TUNGETSNDBUF = 0x400454d3 - TUNGETVNETBE = 0x400454df - TUNGETVNETHDRSZ = 0x400454d7 - TUNGETVNETLE = 0x400454dd - TUNSETDEBUG = 0x800454c9 - TUNSETGROUP = 0x800454ce - TUNSETIFF = 0x800454ca - TUNSETIFINDEX = 0x800454da - TUNSETLINK = 0x800454cd - TUNSETNOCSUM = 0x800454c8 - TUNSETOFFLOAD = 0x800454d0 - TUNSETOWNER = 0x800454cc - TUNSETPERSIST = 0x800454cb - TUNSETQUEUE = 0x800454d9 - TUNSETSNDBUF = 0x800454d4 - TUNSETTXFILTER = 0x800454d1 - TUNSETVNETBE = 0x800454de - TUNSETVNETHDRSZ = 0x800454d8 - TUNSETVNETLE = 0x800454dc - UMOUNT_NOFOLLOW = 0x8 - VDISCARD = 0xd - VEOF = 0x10 - VEOL = 0x11 - VEOL2 = 0x6 - VERASE = 0x2 - VINTR = 0x0 - VKILL = 0x3 - VLNEXT = 0xf - VMADDR_CID_ANY = 0xffffffff - VMADDR_CID_HOST = 0x2 - VMADDR_CID_HYPERVISOR = 0x0 - VMADDR_CID_RESERVED = 0x1 - VMADDR_PORT_ANY = 0xffffffff - VMIN = 0x4 - VM_SOCKETS_INVALID_VERSION = 0xffffffff - VQUIT = 0x1 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VSWTCH = 0x7 - VT0 = 0x0 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WALL = 0x40000000 - WCLONE = 0x80000000 - WCONTINUED = 0x8 - WEXITED = 0x4 - WNOHANG = 0x1 - WNOTHREAD = 0x20000000 - WNOWAIT = 0x1000000 - WORDSIZE = 0x20 - WSTOPPED = 0x2 - WUNTRACED = 0x2 - XATTR_CREATE = 0x1 - XATTR_REPLACE = 0x2 - XCASE = 0x4 - XTABS = 0x1800 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x7d) - EADDRNOTAVAIL = syscall.Errno(0x7e) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x7c) - EAGAIN = syscall.Errno(0xb) - EALREADY = syscall.Errno(0x95) - EBADE = syscall.Errno(0x32) - EBADF = syscall.Errno(0x9) - EBADFD = syscall.Errno(0x51) - EBADMSG = syscall.Errno(0x4d) - EBADR = syscall.Errno(0x33) - EBADRQC = syscall.Errno(0x36) - EBADSLT = syscall.Errno(0x37) - EBFONT = syscall.Errno(0x3b) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x9e) - ECHILD = syscall.Errno(0xa) - ECHRNG = syscall.Errno(0x25) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x82) - ECONNREFUSED = syscall.Errno(0x92) - ECONNRESET = syscall.Errno(0x83) - EDEADLK = syscall.Errno(0x2d) - EDEADLOCK = syscall.Errno(0x38) - EDESTADDRREQ = syscall.Errno(0x60) - EDOM = syscall.Errno(0x21) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x46d) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EHOSTDOWN = syscall.Errno(0x93) - EHOSTUNREACH = syscall.Errno(0x94) - EHWPOISON = syscall.Errno(0xa8) - EIDRM = syscall.Errno(0x24) - EILSEQ = syscall.Errno(0x58) - EINIT = syscall.Errno(0x8d) - EINPROGRESS = syscall.Errno(0x96) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x85) - EISDIR = syscall.Errno(0x15) - EISNAM = syscall.Errno(0x8b) - EKEYEXPIRED = syscall.Errno(0xa2) - EKEYREJECTED = syscall.Errno(0xa4) - EKEYREVOKED = syscall.Errno(0xa3) - EL2HLT = syscall.Errno(0x2c) - EL2NSYNC = syscall.Errno(0x26) - EL3HLT = syscall.Errno(0x27) - EL3RST = syscall.Errno(0x28) - ELIBACC = syscall.Errno(0x53) - ELIBBAD = syscall.Errno(0x54) - ELIBEXEC = syscall.Errno(0x57) - ELIBMAX = syscall.Errno(0x56) - ELIBSCN = syscall.Errno(0x55) - ELNRNG = syscall.Errno(0x29) - ELOOP = syscall.Errno(0x5a) - EMEDIUMTYPE = syscall.Errno(0xa0) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x61) - EMULTIHOP = syscall.Errno(0x4a) - ENAMETOOLONG = syscall.Errno(0x4e) - ENAVAIL = syscall.Errno(0x8a) - ENETDOWN = syscall.Errno(0x7f) - ENETRESET = syscall.Errno(0x81) - ENETUNREACH = syscall.Errno(0x80) - ENFILE = syscall.Errno(0x17) - ENOANO = syscall.Errno(0x35) - ENOBUFS = syscall.Errno(0x84) - ENOCSI = syscall.Errno(0x2b) - ENODATA = syscall.Errno(0x3d) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOKEY = syscall.Errno(0xa1) - ENOLCK = syscall.Errno(0x2e) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x9f) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x23) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x63) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x59) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x86) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x5d) - ENOTNAM = syscall.Errno(0x89) - ENOTRECOVERABLE = syscall.Errno(0xa6) - ENOTSOCK = syscall.Errno(0x5f) - ENOTSUP = syscall.Errno(0x7a) - ENOTTY = syscall.Errno(0x19) - ENOTUNIQ = syscall.Errno(0x50) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x7a) - EOVERFLOW = syscall.Errno(0x4f) - EOWNERDEAD = syscall.Errno(0xa5) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x7b) - EPIPE = syscall.Errno(0x20) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x78) - EPROTOTYPE = syscall.Errno(0x62) - ERANGE = syscall.Errno(0x22) - EREMCHG = syscall.Errno(0x52) - EREMDEV = syscall.Errno(0x8e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x8c) - ERESTART = syscall.Errno(0x5b) - ERFKILL = syscall.Errno(0xa7) - EROFS = syscall.Errno(0x1e) - ESHUTDOWN = syscall.Errno(0x8f) - ESOCKTNOSUPPORT = syscall.Errno(0x79) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x97) - ESTRPIPE = syscall.Errno(0x5c) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x91) - ETOOMANYREFS = syscall.Errno(0x90) - ETXTBSY = syscall.Errno(0x1a) - EUCLEAN = syscall.Errno(0x87) - EUNATCH = syscall.Errno(0x2a) - EUSERS = syscall.Errno(0x5e) - EWOULDBLOCK = syscall.Errno(0xb) - EXDEV = syscall.Errno(0x12) - EXFULL = syscall.Errno(0x34) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x12) - SIGCLD = syscall.Signal(0x12) - SIGCONT = syscall.Signal(0x19) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x16) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) - SIGPOLL = syscall.Signal(0x16) - SIGPROF = syscall.Signal(0x1d) - SIGPWR = syscall.Signal(0x13) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x17) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x18) - SIGTTIN = syscall.Signal(0x1a) - SIGTTOU = syscall.Signal(0x1b) - SIGURG = syscall.Signal(0x15) - SIGUSR1 = syscall.Signal(0x10) - SIGUSR2 = syscall.Signal(0x11) - SIGVTALRM = syscall.Signal(0x1c) - SIGWINCH = syscall.Signal(0x14) - SIGXCPU = syscall.Signal(0x1e) - SIGXFSZ = syscall.Signal(0x1f) -) - -// Error table -var errors = [...]string{ - 1: "operation not permitted", - 2: "no such file or directory", - 3: "no such process", - 4: "interrupted system call", - 5: "input/output error", - 6: "no such device or address", - 7: "argument list too long", - 8: "exec format error", - 9: "bad file descriptor", - 10: "no child processes", - 11: "resource temporarily unavailable", - 12: "cannot allocate memory", - 13: "permission denied", - 14: "bad address", - 15: "block device required", - 16: "device or resource busy", - 17: "file exists", - 18: "invalid cross-device link", - 19: "no such device", - 20: "not a directory", - 21: "is a directory", - 22: "invalid argument", - 23: "too many open files in system", - 24: "too many open files", - 25: "inappropriate ioctl for device", - 26: "text file busy", - 27: "file too large", - 28: "no space left on device", - 29: "illegal seek", - 30: "read-only file system", - 31: "too many links", - 32: "broken pipe", - 33: "numerical argument out of domain", - 34: "numerical result out of range", - 35: "no message of desired type", - 36: "identifier removed", - 37: "channel number out of range", - 38: "level 2 not synchronized", - 39: "level 3 halted", - 40: "level 3 reset", - 41: "link number out of range", - 42: "protocol driver not attached", - 43: "no CSI structure available", - 44: "level 2 halted", - 45: "resource deadlock avoided", - 46: "no locks available", - 50: "invalid exchange", - 51: "invalid request descriptor", - 52: "exchange full", - 53: "no anode", - 54: "invalid request code", - 55: "invalid slot", - 56: "file locking deadlock error", - 59: "bad font file format", - 60: "device not a stream", - 61: "no data available", - 62: "timer expired", - 63: "out of streams resources", - 64: "machine is not on the network", - 65: "package not installed", - 66: "object is remote", - 67: "link has been severed", - 68: "advertise error", - 69: "srmount error", - 70: "communication error on send", - 71: "protocol error", - 73: "RFS specific error", - 74: "multihop attempted", - 77: "bad message", - 78: "file name too long", - 79: "value too large for defined data type", - 80: "name not unique on network", - 81: "file descriptor in bad state", - 82: "remote address changed", - 83: "can not access a needed shared library", - 84: "accessing a corrupted shared library", - 85: ".lib section in a.out corrupted", - 86: "attempting to link in too many shared libraries", - 87: "cannot exec a shared library directly", - 88: "invalid or incomplete multibyte or wide character", - 89: "function not implemented", - 90: "too many levels of symbolic links", - 91: "interrupted system call should be restarted", - 92: "streams pipe error", - 93: "directory not empty", - 94: "too many users", - 95: "socket operation on non-socket", - 96: "destination address required", - 97: "message too long", - 98: "protocol wrong type for socket", - 99: "protocol not available", - 120: "protocol not supported", - 121: "socket type not supported", - 122: "operation not supported", - 123: "protocol family not supported", - 124: "address family not supported by protocol", - 125: "address already in use", - 126: "cannot assign requested address", - 127: "network is down", - 128: "network is unreachable", - 129: "network dropped connection on reset", - 130: "software caused connection abort", - 131: "connection reset by peer", - 132: "no buffer space available", - 133: "transport endpoint is already connected", - 134: "transport endpoint is not connected", - 135: "structure needs cleaning", - 137: "not a XENIX named type file", - 138: "no XENIX semaphores available", - 139: "is a named type file", - 140: "remote I/O error", - 141: "unknown error 141", - 142: "unknown error 142", - 143: "cannot send after transport endpoint shutdown", - 144: "too many references: cannot splice", - 145: "connection timed out", - 146: "connection refused", - 147: "host is down", - 148: "no route to host", - 149: "operation already in progress", - 150: "operation now in progress", - 151: "stale file handle", - 158: "operation canceled", - 159: "no medium found", - 160: "wrong medium type", - 161: "required key not available", - 162: "key has expired", - 163: "key has been revoked", - 164: "key was rejected by service", - 165: "owner died", - 166: "state not recoverable", - 167: "operation not possible due to RF-kill", - 168: "memory page has hardware error", - 1133: "disk quota exceeded", -} - -// Signal table -var signals = [...]string{ - 1: "hangup", - 2: "interrupt", - 3: "quit", - 4: "illegal instruction", - 5: "trace/breakpoint trap", - 6: "aborted", - 7: "EMT trap", - 8: "floating point exception", - 9: "killed", - 10: "bus error", - 11: "segmentation fault", - 12: "bad system call", - 13: "broken pipe", - 14: "alarm clock", - 15: "terminated", - 16: "user defined signal 1", - 17: "user defined signal 2", - 18: "child exited", - 19: "power failure", - 20: "window changed", - 21: "urgent I/O condition", - 22: "I/O possible", - 23: "stopped (signal)", - 24: "stopped", - 25: "continued", - 26: "stopped (tty input)", - 27: "stopped (tty output)", - 28: "virtual timer expired", - 29: "profiling timer expired", - 30: "CPU time limit exceeded", - 31: "file size limit exceeded", -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go deleted file mode 100644 index 6772a59..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go +++ /dev/null @@ -1,2263 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/include -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build ppc64,linux - -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go - -package unix - -import "syscall" - -const ( - AF_ALG = 0x26 - AF_APPLETALK = 0x5 - AF_ASH = 0x12 - AF_ATMPVC = 0x8 - AF_ATMSVC = 0x14 - AF_AX25 = 0x3 - AF_BLUETOOTH = 0x1f - AF_BRIDGE = 0x7 - AF_CAIF = 0x25 - AF_CAN = 0x1d - AF_DECnet = 0xc - AF_ECONET = 0x13 - AF_FILE = 0x1 - AF_IB = 0x1b - AF_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KCM = 0x29 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x2b - AF_MPLS = 0x1c - AF_NETBEUI = 0xd - AF_NETLINK = 0x10 - AF_NETROM = 0x6 - AF_NFC = 0x27 - AF_PACKET = 0x11 - AF_PHONET = 0x23 - AF_PPPOX = 0x18 - AF_QIPCRTR = 0x2a - AF_RDS = 0x15 - AF_ROSE = 0xb - AF_ROUTE = 0x10 - AF_RXRPC = 0x21 - AF_SECURITY = 0xe - AF_SNA = 0x16 - AF_TIPC = 0x1e - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VSOCK = 0x28 - AF_WANPIPE = 0x19 - AF_X25 = 0x9 - ALG_OP_DECRYPT = 0x0 - ALG_OP_ENCRYPT = 0x1 - ALG_SET_AEAD_ASSOCLEN = 0x4 - ALG_SET_AEAD_AUTHSIZE = 0x5 - ALG_SET_IV = 0x2 - ALG_SET_KEY = 0x1 - ALG_SET_OP = 0x3 - ARPHRD_6LOWPAN = 0x339 - ARPHRD_ADAPT = 0x108 - ARPHRD_APPLETLK = 0x8 - ARPHRD_ARCNET = 0x7 - ARPHRD_ASH = 0x30d - ARPHRD_ATM = 0x13 - ARPHRD_AX25 = 0x3 - ARPHRD_BIF = 0x307 - ARPHRD_CAIF = 0x336 - ARPHRD_CAN = 0x118 - ARPHRD_CHAOS = 0x5 - ARPHRD_CISCO = 0x201 - ARPHRD_CSLIP = 0x101 - ARPHRD_CSLIP6 = 0x103 - ARPHRD_DDCMP = 0x205 - ARPHRD_DLCI = 0xf - ARPHRD_ECONET = 0x30e - ARPHRD_EETHER = 0x2 - ARPHRD_ETHER = 0x1 - ARPHRD_EUI64 = 0x1b - ARPHRD_FCAL = 0x311 - ARPHRD_FCFABRIC = 0x313 - ARPHRD_FCPL = 0x312 - ARPHRD_FCPP = 0x310 - ARPHRD_FDDI = 0x306 - ARPHRD_FRAD = 0x302 - ARPHRD_HDLC = 0x201 - ARPHRD_HIPPI = 0x30c - ARPHRD_HWX25 = 0x110 - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_IEEE80211 = 0x321 - ARPHRD_IEEE80211_PRISM = 0x322 - ARPHRD_IEEE80211_RADIOTAP = 0x323 - ARPHRD_IEEE802154 = 0x324 - ARPHRD_IEEE802154_MONITOR = 0x325 - ARPHRD_IEEE802_TR = 0x320 - ARPHRD_INFINIBAND = 0x20 - ARPHRD_IP6GRE = 0x337 - ARPHRD_IPDDP = 0x309 - ARPHRD_IPGRE = 0x30a - ARPHRD_IRDA = 0x30f - ARPHRD_LAPB = 0x204 - ARPHRD_LOCALTLK = 0x305 - ARPHRD_LOOPBACK = 0x304 - ARPHRD_METRICOM = 0x17 - ARPHRD_NETLINK = 0x338 - ARPHRD_NETROM = 0x0 - ARPHRD_NONE = 0xfffe - ARPHRD_PHONET = 0x334 - ARPHRD_PHONET_PIPE = 0x335 - ARPHRD_PIMREG = 0x30b - ARPHRD_PPP = 0x200 - ARPHRD_PRONET = 0x4 - ARPHRD_RAWHDLC = 0x206 - ARPHRD_ROSE = 0x10e - ARPHRD_RSRVD = 0x104 - ARPHRD_SIT = 0x308 - ARPHRD_SKIP = 0x303 - ARPHRD_SLIP = 0x100 - ARPHRD_SLIP6 = 0x102 - ARPHRD_TUNNEL = 0x300 - ARPHRD_TUNNEL6 = 0x301 - ARPHRD_VOID = 0xffff - ARPHRD_X25 = 0x10f - B0 = 0x0 - B1000000 = 0x17 - B110 = 0x3 - B115200 = 0x11 - B1152000 = 0x18 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B1500000 = 0x19 - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B2000000 = 0x1a - B230400 = 0x12 - B2400 = 0xb - B2500000 = 0x1b - B300 = 0x7 - B3000000 = 0x1c - B3500000 = 0x1d - B38400 = 0xf - B4000000 = 0x1e - B460800 = 0x13 - B4800 = 0xc - B50 = 0x1 - B500000 = 0x14 - B57600 = 0x10 - B576000 = 0x15 - B600 = 0x8 - B75 = 0x2 - B921600 = 0x16 - B9600 = 0xd - BLKBSZGET = 0x40081270 - BLKBSZSET = 0x80081271 - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40081272 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d - BLKRRPART = 0x2000125f - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 - BOTHER = 0x1f - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIV = 0x30 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LL_OFF = -0x200000 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXINSNS = 0x1000 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_NET_OFF = -0x100000 - BPF_OR = 0x40 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XOR = 0xa0 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x8000 - BSDLY = 0x8000 - CAN_BCM = 0x2 - CAN_EFF_FLAG = 0x80000000 - CAN_EFF_ID_BITS = 0x1d - CAN_EFF_MASK = 0x1fffffff - CAN_ERR_FLAG = 0x20000000 - CAN_ERR_MASK = 0x1fffffff - CAN_INV_FILTER = 0x20000000 - CAN_ISOTP = 0x6 - CAN_MAX_DLC = 0x8 - CAN_MAX_DLEN = 0x8 - CAN_MCNET = 0x5 - CAN_MTU = 0x10 - CAN_NPROTO = 0x7 - CAN_RAW = 0x1 - CAN_RAW_FILTER_MAX = 0x200 - CAN_RTR_FLAG = 0x40000000 - CAN_SFF_ID_BITS = 0xb - CAN_SFF_MASK = 0x7ff - CAN_TP16 = 0x3 - CAN_TP20 = 0x4 - CBAUD = 0xff - CBAUDEX = 0x0 - CFLUSH = 0xf - CIBAUD = 0xff0000 - CLOCAL = 0x8000 - CLOCK_BOOTTIME = 0x7 - CLOCK_BOOTTIME_ALARM = 0x9 - CLOCK_DEFAULT = 0x0 - CLOCK_EXT = 0x1 - CLOCK_INT = 0x2 - CLOCK_MONOTONIC = 0x1 - CLOCK_MONOTONIC_COARSE = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_ALARM = 0x8 - CLOCK_REALTIME_COARSE = 0x5 - CLOCK_TAI = 0xb - CLOCK_THREAD_CPUTIME_ID = 0x3 - CLOCK_TXFROMRX = 0x4 - CLOCK_TXINT = 0x3 - CLONE_CHILD_CLEARTID = 0x200000 - CLONE_CHILD_SETTID = 0x1000000 - CLONE_DETACHED = 0x400000 - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_IO = 0x80000000 - CLONE_NEWCGROUP = 0x2000000 - CLONE_NEWIPC = 0x8000000 - CLONE_NEWNET = 0x40000000 - CLONE_NEWNS = 0x20000 - CLONE_NEWPID = 0x20000000 - CLONE_NEWUSER = 0x10000000 - CLONE_NEWUTS = 0x4000000 - CLONE_PARENT = 0x8000 - CLONE_PARENT_SETTID = 0x100000 - CLONE_PTRACE = 0x2000 - CLONE_SETTLS = 0x80000 - CLONE_SIGHAND = 0x800 - CLONE_SYSVSEM = 0x40000 - CLONE_THREAD = 0x10000 - CLONE_UNTRACED = 0x800000 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CMSPAR = 0x40000000 - CR0 = 0x0 - CR1 = 0x1000 - CR2 = 0x2000 - CR3 = 0x3000 - CRDLY = 0x3000 - CREAD = 0x800 - CRTSCTS = 0x80000000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIGNAL = 0xff - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x0 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EFD_SEMAPHORE = 0x1 - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - EPOLLEXCLUSIVE = 0x10000000 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLONESHOT = 0x40000000 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDHUP = 0x2000 - EPOLLRDNORM = 0x40 - EPOLLWAKEUP = 0x20000000 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CLOEXEC = 0x80000 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - ETH_P_1588 = 0x88f7 - ETH_P_8021AD = 0x88a8 - ETH_P_8021AH = 0x88e7 - ETH_P_8021Q = 0x8100 - ETH_P_80221 = 0x8917 - ETH_P_802_2 = 0x4 - ETH_P_802_3 = 0x1 - ETH_P_802_3_MIN = 0x600 - ETH_P_802_EX1 = 0x88b5 - ETH_P_AARP = 0x80f3 - ETH_P_AF_IUCV = 0xfbfb - ETH_P_ALL = 0x3 - ETH_P_AOE = 0x88a2 - ETH_P_ARCNET = 0x1a - ETH_P_ARP = 0x806 - ETH_P_ATALK = 0x809b - ETH_P_ATMFATE = 0x8884 - ETH_P_ATMMPOA = 0x884c - ETH_P_AX25 = 0x2 - ETH_P_BATMAN = 0x4305 - ETH_P_BPQ = 0x8ff - ETH_P_CAIF = 0xf7 - ETH_P_CAN = 0xc - ETH_P_CANFD = 0xd - ETH_P_CONTROL = 0x16 - ETH_P_CUST = 0x6006 - ETH_P_DDCMP = 0x6 - ETH_P_DEC = 0x6000 - ETH_P_DIAG = 0x6005 - ETH_P_DNA_DL = 0x6001 - ETH_P_DNA_RC = 0x6002 - ETH_P_DNA_RT = 0x6003 - ETH_P_DSA = 0x1b - ETH_P_ECONET = 0x18 - ETH_P_EDSA = 0xdada - ETH_P_FCOE = 0x8906 - ETH_P_FIP = 0x8914 - ETH_P_HDLC = 0x19 - ETH_P_HSR = 0x892f - ETH_P_IEEE802154 = 0xf6 - ETH_P_IEEEPUP = 0xa00 - ETH_P_IEEEPUPAT = 0xa01 - ETH_P_IP = 0x800 - ETH_P_IPV6 = 0x86dd - ETH_P_IPX = 0x8137 - ETH_P_IRDA = 0x17 - ETH_P_LAT = 0x6004 - ETH_P_LINK_CTL = 0x886c - ETH_P_LOCALTALK = 0x9 - ETH_P_LOOP = 0x60 - ETH_P_LOOPBACK = 0x9000 - ETH_P_MACSEC = 0x88e5 - ETH_P_MOBITEX = 0x15 - ETH_P_MPLS_MC = 0x8848 - ETH_P_MPLS_UC = 0x8847 - ETH_P_MVRP = 0x88f5 - ETH_P_NCSI = 0x88f8 - ETH_P_PAE = 0x888e - ETH_P_PAUSE = 0x8808 - ETH_P_PHONET = 0xf5 - ETH_P_PPPTALK = 0x10 - ETH_P_PPP_DISC = 0x8863 - ETH_P_PPP_MP = 0x8 - ETH_P_PPP_SES = 0x8864 - ETH_P_PRP = 0x88fb - ETH_P_PUP = 0x200 - ETH_P_PUPAT = 0x201 - ETH_P_QINQ1 = 0x9100 - ETH_P_QINQ2 = 0x9200 - ETH_P_QINQ3 = 0x9300 - ETH_P_RARP = 0x8035 - ETH_P_SCA = 0x6007 - ETH_P_SLOW = 0x8809 - ETH_P_SNAP = 0x5 - ETH_P_TDLS = 0x890d - ETH_P_TEB = 0x6558 - ETH_P_TIPC = 0x88ca - ETH_P_TRAILER = 0x1c - ETH_P_TR_802_2 = 0x11 - ETH_P_TSN = 0x22f0 - ETH_P_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - ETH_P_XDSA = 0xf8 - EXTA = 0xe - EXTB = 0xf - EXTPROC = 0x10000000 - FALLOC_FL_COLLAPSE_RANGE = 0x8 - FALLOC_FL_INSERT_RANGE = 0x20 - FALLOC_FL_KEEP_SIZE = 0x1 - FALLOC_FL_NO_HIDE_STALE = 0x4 - FALLOC_FL_PUNCH_HOLE = 0x2 - FALLOC_FL_UNSHARE_RANGE = 0x40 - FALLOC_FL_ZERO_RANGE = 0x10 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x4000 - FFDLY = 0x4000 - FLUSHO = 0x800000 - FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 - FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 - FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 - FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 - FS_ENCRYPTION_MODE_INVALID = 0x0 - FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 - FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 - FS_KEY_DESCRIPTOR_SIZE = 0x8 - FS_KEY_DESC_PREFIX = "fscrypt:" - FS_KEY_DESC_PREFIX_SIZE = 0x8 - FS_MAX_KEY_SIZE = 0x40 - FS_POLICY_FLAGS_PAD_16 = 0x2 - FS_POLICY_FLAGS_PAD_32 = 0x3 - FS_POLICY_FLAGS_PAD_4 = 0x0 - FS_POLICY_FLAGS_PAD_8 = 0x1 - FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x3 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x406 - F_EXLCK = 0x4 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLEASE = 0x401 - F_GETLK = 0x5 - F_GETLK64 = 0xc - F_GETOWN = 0x9 - F_GETOWN_EX = 0x10 - F_GETPIPE_SZ = 0x408 - F_GETSIG = 0xb - F_LOCK = 0x1 - F_NOTIFY = 0x402 - F_OFD_GETLK = 0x24 - F_OFD_SETLK = 0x25 - F_OFD_SETLKW = 0x26 - F_OK = 0x0 - F_RDLCK = 0x0 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLEASE = 0x400 - F_SETLK = 0x6 - F_SETLK64 = 0xd - F_SETLKW = 0x7 - F_SETLKW64 = 0xe - F_SETOWN = 0x8 - F_SETOWN_EX = 0xf - F_SETPIPE_SZ = 0x407 - F_SETSIG = 0xa - F_SHLCK = 0x8 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_ULOCK = 0x0 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - GENL_ADMIN_PERM = 0x1 - GENL_CMD_CAP_DO = 0x2 - GENL_CMD_CAP_DUMP = 0x4 - GENL_CMD_CAP_HASPOL = 0x8 - GENL_HDRLEN = 0x4 - GENL_ID_CTRL = 0x10 - GENL_ID_PMCRAID = 0x12 - GENL_ID_VFS_DQUOT = 0x11 - GENL_MAX_ID = 0x3ff - GENL_MIN_ID = 0x10 - GENL_NAMSIZ = 0x10 - GENL_START_ALLOC = 0x13 - GENL_UNS_ADMIN_PERM = 0x10 - GRND_NONBLOCK = 0x1 - GRND_RANDOM = 0x2 - HUPCL = 0x4000 - IBSHIFT = 0x10 - ICANON = 0x100 - ICMPV6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x400 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_MANAGETEMPADDR = 0x100 - IFA_F_MCAUTOJOIN = 0x400 - IFA_F_NODAD = 0x2 - IFA_F_NOPREFIXROUTE = 0x200 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_STABLE_PRIVACY = 0x800 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0x8 - IFF_ALLMULTI = 0x200 - IFF_ATTACH_QUEUE = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DETACH_QUEUE = 0x400 - IFF_DORMANT = 0x20000 - IFF_DYNAMIC = 0x8000 - IFF_ECHO = 0x40000 - IFF_LOOPBACK = 0x8 - IFF_LOWER_UP = 0x10000 - IFF_MASTER = 0x400 - IFF_MULTICAST = 0x1000 - IFF_MULTI_QUEUE = 0x100 - IFF_NOARP = 0x80 - IFF_NOFILTER = 0x1000 - IFF_NOTRAILERS = 0x20 - IFF_NO_PI = 0x1000 - IFF_ONE_QUEUE = 0x2000 - IFF_PERSIST = 0x800 - IFF_POINTOPOINT = 0x10 - IFF_PORTSEL = 0x2000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SLAVE = 0x800 - IFF_TAP = 0x2 - IFF_TUN = 0x1 - IFF_TUN_EXCL = 0x8000 - IFF_UP = 0x1 - IFF_VNET_HDR = 0x4000 - IFF_VOLATILE = 0x70c5a - IFNAMSIZ = 0x10 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_ACCESS = 0x1 - IN_ALL_EVENTS = 0xfff - IN_ATTRIB = 0x4 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLOEXEC = 0x80000 - IN_CLOSE = 0x18 - IN_CLOSE_NOWRITE = 0x10 - IN_CLOSE_WRITE = 0x8 - IN_CREATE = 0x100 - IN_DELETE = 0x200 - IN_DELETE_SELF = 0x400 - IN_DONT_FOLLOW = 0x2000000 - IN_EXCL_UNLINK = 0x4000000 - IN_IGNORED = 0x8000 - IN_ISDIR = 0x40000000 - IN_LOOPBACKNET = 0x7f - IN_MASK_ADD = 0x20000000 - IN_MODIFY = 0x2 - IN_MOVE = 0xc0 - IN_MOVED_FROM = 0x40 - IN_MOVED_TO = 0x80 - IN_MOVE_SELF = 0x800 - IN_NONBLOCK = 0x800 - IN_ONESHOT = 0x80000000 - IN_ONLYDIR = 0x1000000 - IN_OPEN = 0x20 - IN_Q_OVERFLOW = 0x4000 - IN_UNMOUNT = 0x2000 - IPPROTO_AH = 0x33 - IPPROTO_BEETPH = 0x5e - IPPROTO_COMP = 0x6c - IPPROTO_DCCP = 0x21 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPIP = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MH = 0x87 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_NONE = 0x3b - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_2292DSTOPTS = 0x4 - IPV6_2292HOPLIMIT = 0x8 - IPV6_2292HOPOPTS = 0x3 - IPV6_2292PKTINFO = 0x2 - IPV6_2292PKTOPTIONS = 0x6 - IPV6_2292RTHDR = 0x5 - IPV6_ADDRFORM = 0x1 - IPV6_ADD_MEMBERSHIP = 0x14 - IPV6_AUTHHDR = 0xa - IPV6_CHECKSUM = 0x7 - IPV6_DONTFRAG = 0x3e - IPV6_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - IPV6_HDRINCL = 0x24 - IPV6_HOPLIMIT = 0x34 - IPV6_HOPOPTS = 0x36 - IPV6_IPSEC_POLICY = 0x22 - IPV6_JOIN_ANYCAST = 0x1b - IPV6_JOIN_GROUP = 0x14 - IPV6_LEAVE_ANYCAST = 0x1c - IPV6_LEAVE_GROUP = 0x15 - IPV6_MTU = 0x18 - IPV6_MTU_DISCOVER = 0x17 - IPV6_MULTICAST_HOPS = 0x12 - IPV6_MULTICAST_IF = 0x11 - IPV6_MULTICAST_LOOP = 0x13 - IPV6_NEXTHOP = 0x9 - IPV6_PATHMTU = 0x3d - IPV6_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_INTERFACE = 0x4 - IPV6_PMTUDISC_OMIT = 0x5 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVPATHMTU = 0x3c - IPV6_RECVPKTINFO = 0x31 - IPV6_RECVRTHDR = 0x38 - IPV6_RECVTCLASS = 0x42 - IPV6_ROUTER_ALERT = 0x16 - IPV6_RTHDR = 0x39 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RXDSTOPTS = 0x3b - IPV6_RXHOPOPTS = 0x36 - IPV6_TCLASS = 0x43 - IPV6_UNICAST_HOPS = 0x10 - IPV6_V6ONLY = 0x1a - IPV6_XFRM_POLICY = 0x23 - IP_ADD_MEMBERSHIP = 0x23 - IP_ADD_SOURCE_MEMBERSHIP = 0x27 - IP_BIND_ADDRESS_NO_PORT = 0x18 - IP_BLOCK_SOURCE = 0x26 - IP_CHECKSUM = 0x17 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0x24 - IP_DROP_SOURCE_MEMBERSHIP = 0x28 - IP_FREEBIND = 0xf - IP_HDRINCL = 0x3 - IP_IPSEC_POLICY = 0x10 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINTTL = 0x15 - IP_MSFILTER = 0x29 - IP_MSS = 0x240 - IP_MTU = 0xe - IP_MTU_DISCOVER = 0xa - IP_MULTICAST_ALL = 0x31 - IP_MULTICAST_IF = 0x20 - IP_MULTICAST_LOOP = 0x22 - IP_MULTICAST_TTL = 0x21 - IP_NODEFRAG = 0x16 - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x4 - IP_ORIGDSTADDR = 0x14 - IP_PASSSEC = 0x12 - IP_PKTINFO = 0x8 - IP_PKTOPTIONS = 0x9 - IP_PMTUDISC = 0xa - IP_PMTUDISC_DO = 0x2 - IP_PMTUDISC_DONT = 0x0 - IP_PMTUDISC_INTERFACE = 0x4 - IP_PMTUDISC_OMIT = 0x5 - IP_PMTUDISC_PROBE = 0x3 - IP_PMTUDISC_WANT = 0x1 - IP_RECVERR = 0xb - IP_RECVOPTS = 0x6 - IP_RECVORIGDSTADDR = 0x14 - IP_RECVRETOPTS = 0x7 - IP_RECVTOS = 0xd - IP_RECVTTL = 0xc - IP_RETOPTS = 0x7 - IP_RF = 0x8000 - IP_ROUTER_ALERT = 0x5 - IP_TOS = 0x1 - IP_TRANSPARENT = 0x13 - IP_TTL = 0x2 - IP_UNBLOCK_SOURCE = 0x25 - IP_UNICAST_IF = 0x32 - IP_XFRM_POLICY = 0x11 - ISIG = 0x80 - ISTRIP = 0x20 - IUCLC = 0x1000 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KEYCTL_ASSUME_AUTHORITY = 0x10 - KEYCTL_CHOWN = 0x4 - KEYCTL_CLEAR = 0x7 - KEYCTL_DESCRIBE = 0x6 - KEYCTL_DH_COMPUTE = 0x17 - KEYCTL_GET_KEYRING_ID = 0x0 - KEYCTL_GET_PERSISTENT = 0x16 - KEYCTL_GET_SECURITY = 0x11 - KEYCTL_INSTANTIATE = 0xc - KEYCTL_INSTANTIATE_IOV = 0x14 - KEYCTL_INVALIDATE = 0x15 - KEYCTL_JOIN_SESSION_KEYRING = 0x1 - KEYCTL_LINK = 0x8 - KEYCTL_NEGATE = 0xd - KEYCTL_READ = 0xb - KEYCTL_REJECT = 0x13 - KEYCTL_REVOKE = 0x3 - KEYCTL_SEARCH = 0xa - KEYCTL_SESSION_TO_PARENT = 0x12 - KEYCTL_SETPERM = 0x5 - KEYCTL_SET_REQKEY_KEYRING = 0xe - KEYCTL_SET_TIMEOUT = 0xf - KEYCTL_UNLINK = 0x9 - KEYCTL_UPDATE = 0x2 - KEY_REQKEY_DEFL_DEFAULT = 0x0 - KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 - KEY_REQKEY_DEFL_NO_CHANGE = -0x1 - KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 - KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 - KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 - KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 - KEY_REQKEY_DEFL_USER_KEYRING = 0x4 - KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 - KEY_SPEC_GROUP_KEYRING = -0x6 - KEY_SPEC_PROCESS_KEYRING = -0x2 - KEY_SPEC_REQKEY_AUTH_KEY = -0x7 - KEY_SPEC_REQUESTOR_KEYRING = -0x8 - KEY_SPEC_SESSION_KEYRING = -0x3 - KEY_SPEC_THREAD_KEYRING = -0x1 - KEY_SPEC_USER_KEYRING = -0x4 - KEY_SPEC_USER_SESSION_KEYRING = -0x5 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef - LINUX_REBOOT_CMD_HALT = 0xcdef0123 - LINUX_REBOOT_CMD_KEXEC = 0x45584543 - LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc - LINUX_REBOOT_CMD_RESTART = 0x1234567 - LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 - LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 - LINUX_REBOOT_MAGIC1 = 0xfee1dead - LINUX_REBOOT_MAGIC2 = 0x28121969 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DODUMP = 0x11 - MADV_DOFORK = 0xb - MADV_DONTDUMP = 0x10 - MADV_DONTFORK = 0xa - MADV_DONTNEED = 0x4 - MADV_FREE = 0x8 - MADV_HUGEPAGE = 0xe - MADV_HWPOISON = 0x64 - MADV_MERGEABLE = 0xc - MADV_NOHUGEPAGE = 0xf - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_REMOVE = 0x9 - MADV_SEQUENTIAL = 0x2 - MADV_UNMERGEABLE = 0xd - MADV_WILLNEED = 0x3 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_GROWSDOWN = 0x100 - MAP_HUGETLB = 0x40000 - MAP_HUGE_MASK = 0x3f - MAP_HUGE_SHIFT = 0x1a - MAP_LOCKED = 0x80 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x40 - MAP_POPULATE = 0x8000 - MAP_PRIVATE = 0x2 - MAP_SHARED = 0x1 - MAP_STACK = 0x20000 - MAP_TYPE = 0xf - MCL_CURRENT = 0x2000 - MCL_FUTURE = 0x4000 - MCL_ONFAULT = 0x8000 - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - MSG_BATCH = 0x40000 - MSG_CMSG_CLOEXEC = 0x40000000 - MSG_CONFIRM = 0x800 - MSG_CTRUNC = 0x8 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x40 - MSG_EOR = 0x80 - MSG_ERRQUEUE = 0x2000 - MSG_FASTOPEN = 0x20000000 - MSG_FIN = 0x200 - MSG_MORE = 0x8000 - MSG_NOSIGNAL = 0x4000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_PROXY = 0x10 - MSG_RST = 0x1000 - MSG_SYN = 0x400 - MSG_TRUNC = 0x20 - MSG_TRYHARD = 0x4 - MSG_WAITALL = 0x100 - MSG_WAITFORONE = 0x10000 - MS_ACTIVE = 0x40000000 - MS_ASYNC = 0x1 - MS_BIND = 0x1000 - MS_BORN = 0x20000000 - MS_DIRSYNC = 0x80 - MS_INVALIDATE = 0x2 - MS_I_VERSION = 0x800000 - MS_KERNMOUNT = 0x400000 - MS_LAZYTIME = 0x2000000 - MS_MANDLOCK = 0x40 - MS_MGC_MSK = 0xffff0000 - MS_MGC_VAL = 0xc0ed0000 - MS_MOVE = 0x2000 - MS_NOATIME = 0x400 - MS_NODEV = 0x4 - MS_NODIRATIME = 0x800 - MS_NOEXEC = 0x8 - MS_NOREMOTELOCK = 0x8000000 - MS_NOSEC = 0x10000000 - MS_NOSUID = 0x2 - MS_NOUSER = -0x80000000 - MS_POSIXACL = 0x10000 - MS_PRIVATE = 0x40000 - MS_RDONLY = 0x1 - MS_REC = 0x4000 - MS_RELATIME = 0x200000 - MS_REMOUNT = 0x20 - MS_RMT_MASK = 0x2800051 - MS_SHARED = 0x100000 - MS_SILENT = 0x8000 - MS_SLAVE = 0x80000 - MS_STRICTATIME = 0x1000000 - MS_SYNC = 0x4 - MS_SYNCHRONOUS = 0x10 - MS_UNBINDABLE = 0x20000 - MS_VERBOSE = 0x8000 - NAME_MAX = 0xff - NETLINK_ADD_MEMBERSHIP = 0x1 - NETLINK_AUDIT = 0x9 - NETLINK_BROADCAST_ERROR = 0x4 - NETLINK_CAP_ACK = 0xa - NETLINK_CONNECTOR = 0xb - NETLINK_CRYPTO = 0x15 - NETLINK_DNRTMSG = 0xe - NETLINK_DROP_MEMBERSHIP = 0x2 - NETLINK_ECRYPTFS = 0x13 - NETLINK_FIB_LOOKUP = 0xa - NETLINK_FIREWALL = 0x3 - NETLINK_GENERIC = 0x10 - NETLINK_INET_DIAG = 0x4 - NETLINK_IP6_FW = 0xd - NETLINK_ISCSI = 0x8 - NETLINK_KOBJECT_UEVENT = 0xf - NETLINK_LISTEN_ALL_NSID = 0x8 - NETLINK_LIST_MEMBERSHIPS = 0x9 - NETLINK_NETFILTER = 0xc - NETLINK_NFLOG = 0x5 - NETLINK_NO_ENOBUFS = 0x5 - NETLINK_PKTINFO = 0x3 - NETLINK_RDMA = 0x14 - NETLINK_ROUTE = 0x0 - NETLINK_RX_RING = 0x6 - NETLINK_SCSITRANSPORT = 0x12 - NETLINK_SELINUX = 0x7 - NETLINK_SOCK_DIAG = 0x4 - NETLINK_TX_RING = 0x7 - NETLINK_UNUSED = 0x1 - NETLINK_USERSOCK = 0x2 - NETLINK_XFRM = 0x6 - NL0 = 0x0 - NL1 = 0x100 - NL2 = 0x200 - NL3 = 0x300 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - NLDLY = 0x300 - NLMSG_ALIGNTO = 0x4 - NLMSG_DONE = 0x3 - NLMSG_ERROR = 0x2 - NLMSG_HDRLEN = 0x10 - NLMSG_MIN_TYPE = 0x10 - NLMSG_NOOP = 0x1 - NLMSG_OVERRUN = 0x4 - NLM_F_ACK = 0x4 - NLM_F_APPEND = 0x800 - NLM_F_ATOMIC = 0x400 - NLM_F_CREATE = 0x400 - NLM_F_DUMP = 0x300 - NLM_F_DUMP_FILTERED = 0x20 - NLM_F_DUMP_INTR = 0x10 - NLM_F_ECHO = 0x8 - NLM_F_EXCL = 0x200 - NLM_F_MATCH = 0x200 - NLM_F_MULTI = 0x2 - NLM_F_REPLACE = 0x100 - NLM_F_REQUEST = 0x1 - NLM_F_ROOT = 0x100 - NOFLSH = 0x80000000 - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x4 - ONLCR = 0x2 - ONLRET = 0x20 - ONOCR = 0x10 - OPOST = 0x1 - O_ACCMODE = 0x3 - O_APPEND = 0x400 - O_ASYNC = 0x2000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x40 - O_DIRECT = 0x20000 - O_DIRECTORY = 0x4000 - O_DSYNC = 0x1000 - O_EXCL = 0x80 - O_FSYNC = 0x101000 - O_LARGEFILE = 0x0 - O_NDELAY = 0x800 - O_NOATIME = 0x40000 - O_NOCTTY = 0x100 - O_NOFOLLOW = 0x8000 - O_NONBLOCK = 0x800 - O_PATH = 0x200000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x101000 - O_SYNC = 0x101000 - O_TMPFILE = 0x404000 - O_TRUNC = 0x200 - O_WRONLY = 0x1 - PACKET_ADD_MEMBERSHIP = 0x1 - PACKET_AUXDATA = 0x8 - PACKET_BROADCAST = 0x1 - PACKET_COPY_THRESH = 0x7 - PACKET_DROP_MEMBERSHIP = 0x2 - PACKET_FANOUT = 0x12 - PACKET_FANOUT_CBPF = 0x6 - PACKET_FANOUT_CPU = 0x2 - PACKET_FANOUT_DATA = 0x16 - PACKET_FANOUT_EBPF = 0x7 - PACKET_FANOUT_FLAG_DEFRAG = 0x8000 - PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 - PACKET_FANOUT_HASH = 0x0 - PACKET_FANOUT_LB = 0x1 - PACKET_FANOUT_QM = 0x5 - PACKET_FANOUT_RND = 0x4 - PACKET_FANOUT_ROLLOVER = 0x3 - PACKET_FASTROUTE = 0x6 - PACKET_HDRLEN = 0xb - PACKET_HOST = 0x0 - PACKET_KERNEL = 0x7 - PACKET_LOOPBACK = 0x5 - PACKET_LOSS = 0xe - PACKET_MR_ALLMULTI = 0x2 - PACKET_MR_MULTICAST = 0x0 - PACKET_MR_PROMISC = 0x1 - PACKET_MR_UNICAST = 0x3 - PACKET_MULTICAST = 0x2 - PACKET_ORIGDEV = 0x9 - PACKET_OTHERHOST = 0x3 - PACKET_OUTGOING = 0x4 - PACKET_QDISC_BYPASS = 0x14 - PACKET_RECV_OUTPUT = 0x3 - PACKET_RESERVE = 0xc - PACKET_ROLLOVER_STATS = 0x15 - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - PACKET_TIMESTAMP = 0x11 - PACKET_TX_HAS_OFF = 0x13 - PACKET_TX_RING = 0xd - PACKET_TX_TIMESTAMP = 0x10 - PACKET_USER = 0x6 - PACKET_VERSION = 0xa - PACKET_VNET_HDR = 0xf - PARENB = 0x1000 - PARITY_CRC16_PR0 = 0x2 - PARITY_CRC16_PR0_CCITT = 0x4 - PARITY_CRC16_PR1 = 0x3 - PARITY_CRC16_PR1_CCITT = 0x5 - PARITY_CRC32_PR0_CCITT = 0x6 - PARITY_CRC32_PR1_CCITT = 0x7 - PARITY_DEFAULT = 0x0 - PARITY_NONE = 0x1 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PERF_EVENT_IOC_DISABLE = 0x20002401 - PERF_EVENT_IOC_ENABLE = 0x20002400 - PERF_EVENT_IOC_ID = 0x40082407 - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 - PERF_EVENT_IOC_PERIOD = 0x80082404 - PERF_EVENT_IOC_REFRESH = 0x20002402 - PERF_EVENT_IOC_RESET = 0x20002403 - PERF_EVENT_IOC_SET_BPF = 0x80042408 - PERF_EVENT_IOC_SET_FILTER = 0x80082406 - PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_GROWSDOWN = 0x1000000 - PROT_GROWSUP = 0x2000000 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_SAO = 0x10 - PROT_WRITE = 0x2 - PR_CAPBSET_DROP = 0x18 - PR_CAPBSET_READ = 0x17 - PR_CAP_AMBIENT = 0x2f - PR_CAP_AMBIENT_CLEAR_ALL = 0x4 - PR_CAP_AMBIENT_IS_SET = 0x1 - PR_CAP_AMBIENT_LOWER = 0x3 - PR_CAP_AMBIENT_RAISE = 0x2 - PR_ENDIAN_BIG = 0x0 - PR_ENDIAN_LITTLE = 0x1 - PR_ENDIAN_PPC_LITTLE = 0x2 - PR_FPEMU_NOPRINT = 0x1 - PR_FPEMU_SIGFPE = 0x2 - PR_FP_EXC_ASYNC = 0x2 - PR_FP_EXC_DISABLED = 0x0 - PR_FP_EXC_DIV = 0x10000 - PR_FP_EXC_INV = 0x100000 - PR_FP_EXC_NONRECOV = 0x1 - PR_FP_EXC_OVF = 0x20000 - PR_FP_EXC_PRECISE = 0x3 - PR_FP_EXC_RES = 0x80000 - PR_FP_EXC_SW_ENABLE = 0x80 - PR_FP_EXC_UND = 0x40000 - PR_FP_MODE_FR = 0x1 - PR_FP_MODE_FRE = 0x2 - PR_GET_CHILD_SUBREAPER = 0x25 - PR_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - PR_GET_FP_MODE = 0x2e - PR_GET_KEEPCAPS = 0x7 - PR_GET_NAME = 0x10 - PR_GET_NO_NEW_PRIVS = 0x27 - PR_GET_PDEATHSIG = 0x2 - PR_GET_SECCOMP = 0x15 - PR_GET_SECUREBITS = 0x1b - PR_GET_THP_DISABLE = 0x2a - PR_GET_TID_ADDRESS = 0x28 - PR_GET_TIMERSLACK = 0x1e - PR_GET_TIMING = 0xd - PR_GET_TSC = 0x19 - PR_GET_UNALIGN = 0x5 - PR_MCE_KILL = 0x21 - PR_MCE_KILL_CLEAR = 0x0 - PR_MCE_KILL_DEFAULT = 0x2 - PR_MCE_KILL_EARLY = 0x1 - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_SET_CHILD_SUBREAPER = 0x24 - PR_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - PR_SET_FP_MODE = 0x2d - PR_SET_KEEPCAPS = 0x8 - PR_SET_MM = 0x23 - PR_SET_MM_ARG_END = 0x9 - PR_SET_MM_ARG_START = 0x8 - PR_SET_MM_AUXV = 0xc - PR_SET_MM_BRK = 0x7 - PR_SET_MM_END_CODE = 0x2 - PR_SET_MM_END_DATA = 0x4 - PR_SET_MM_ENV_END = 0xb - PR_SET_MM_ENV_START = 0xa - PR_SET_MM_EXE_FILE = 0xd - PR_SET_MM_MAP = 0xe - PR_SET_MM_MAP_SIZE = 0xf - PR_SET_MM_START_BRK = 0x6 - PR_SET_MM_START_CODE = 0x1 - PR_SET_MM_START_DATA = 0x3 - PR_SET_MM_START_STACK = 0x5 - PR_SET_NAME = 0xf - PR_SET_NO_NEW_PRIVS = 0x26 - PR_SET_PDEATHSIG = 0x1 - PR_SET_PTRACER = 0x59616d61 - PR_SET_PTRACER_ANY = -0x1 - PR_SET_SECCOMP = 0x16 - PR_SET_SECUREBITS = 0x1c - PR_SET_THP_DISABLE = 0x29 - PR_SET_TIMERSLACK = 0x1d - PR_SET_TIMING = 0xe - PR_SET_TSC = 0x1a - PR_SET_UNALIGN = 0x6 - PR_TASK_PERF_EVENTS_DISABLE = 0x1f - PR_TASK_PERF_EVENTS_ENABLE = 0x20 - PR_TIMING_STATISTICAL = 0x0 - PR_TIMING_TIMESTAMP = 0x1 - PR_TSC_ENABLE = 0x1 - PR_TSC_SIGSEGV = 0x2 - PR_UNALIGN_NOPRINT = 0x1 - PR_UNALIGN_SIGBUS = 0x2 - PTRACE_ATTACH = 0x10 - PTRACE_CONT = 0x7 - PTRACE_DETACH = 0x11 - PTRACE_EVENT_CLONE = 0x3 - PTRACE_EVENT_EXEC = 0x4 - PTRACE_EVENT_EXIT = 0x6 - PTRACE_EVENT_FORK = 0x1 - PTRACE_EVENT_SECCOMP = 0x7 - PTRACE_EVENT_STOP = 0x80 - PTRACE_EVENT_VFORK = 0x2 - PTRACE_EVENT_VFORK_DONE = 0x5 - PTRACE_GETEVENTMSG = 0x4201 - PTRACE_GETEVRREGS = 0x14 - PTRACE_GETFPREGS = 0xe - PTRACE_GETREGS = 0xc - PTRACE_GETREGS64 = 0x16 - PTRACE_GETREGSET = 0x4204 - PTRACE_GETSIGINFO = 0x4202 - PTRACE_GETSIGMASK = 0x420a - PTRACE_GETVRREGS = 0x12 - PTRACE_GETVSRREGS = 0x1b - PTRACE_GET_DEBUGREG = 0x19 - PTRACE_INTERRUPT = 0x4207 - PTRACE_KILL = 0x8 - PTRACE_LISTEN = 0x4208 - PTRACE_O_EXITKILL = 0x100000 - PTRACE_O_MASK = 0x3000ff - PTRACE_O_SUSPEND_SECCOMP = 0x200000 - PTRACE_O_TRACECLONE = 0x8 - PTRACE_O_TRACEEXEC = 0x10 - PTRACE_O_TRACEEXIT = 0x40 - PTRACE_O_TRACEFORK = 0x2 - PTRACE_O_TRACESECCOMP = 0x80 - PTRACE_O_TRACESYSGOOD = 0x1 - PTRACE_O_TRACEVFORK = 0x4 - PTRACE_O_TRACEVFORKDONE = 0x20 - PTRACE_PEEKDATA = 0x2 - PTRACE_PEEKSIGINFO = 0x4209 - PTRACE_PEEKSIGINFO_SHARED = 0x1 - PTRACE_PEEKTEXT = 0x1 - PTRACE_PEEKUSR = 0x3 - PTRACE_POKEDATA = 0x5 - PTRACE_POKETEXT = 0x4 - PTRACE_POKEUSR = 0x6 - PTRACE_SECCOMP_GET_FILTER = 0x420c - PTRACE_SEIZE = 0x4206 - PTRACE_SETEVRREGS = 0x15 - PTRACE_SETFPREGS = 0xf - PTRACE_SETOPTIONS = 0x4200 - PTRACE_SETREGS = 0xd - PTRACE_SETREGS64 = 0x17 - PTRACE_SETREGSET = 0x4205 - PTRACE_SETSIGINFO = 0x4203 - PTRACE_SETSIGMASK = 0x420b - PTRACE_SETVRREGS = 0x13 - PTRACE_SETVSRREGS = 0x1c - PTRACE_SET_DEBUGREG = 0x1a - PTRACE_SINGLEBLOCK = 0x100 - PTRACE_SINGLESTEP = 0x9 - PTRACE_SYSCALL = 0x18 - PTRACE_TRACEME = 0x0 - PT_CCR = 0x26 - PT_CTR = 0x23 - PT_DAR = 0x29 - PT_DSCR = 0x2c - PT_DSISR = 0x2a - PT_FPR0 = 0x30 - PT_FPSCR = 0x50 - PT_LNK = 0x24 - PT_MSR = 0x21 - PT_NIP = 0x20 - PT_ORIG_R3 = 0x22 - PT_R0 = 0x0 - PT_R1 = 0x1 - PT_R10 = 0xa - PT_R11 = 0xb - PT_R12 = 0xc - PT_R13 = 0xd - PT_R14 = 0xe - PT_R15 = 0xf - PT_R16 = 0x10 - PT_R17 = 0x11 - PT_R18 = 0x12 - PT_R19 = 0x13 - PT_R2 = 0x2 - PT_R20 = 0x14 - PT_R21 = 0x15 - PT_R22 = 0x16 - PT_R23 = 0x17 - PT_R24 = 0x18 - PT_R25 = 0x19 - PT_R26 = 0x1a - PT_R27 = 0x1b - PT_R28 = 0x1c - PT_R29 = 0x1d - PT_R3 = 0x3 - PT_R30 = 0x1e - PT_R31 = 0x1f - PT_R4 = 0x4 - PT_R5 = 0x5 - PT_R6 = 0x6 - PT_R7 = 0x7 - PT_R8 = 0x8 - PT_R9 = 0x9 - PT_REGS_COUNT = 0x2c - PT_RESULT = 0x2b - PT_SOFTE = 0x27 - PT_TRAP = 0x28 - PT_VR0 = 0x52 - PT_VRSAVE = 0x94 - PT_VSCR = 0x93 - PT_VSR0 = 0x96 - PT_VSR31 = 0xd4 - PT_XER = 0x25 - RLIMIT_AS = 0x9 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_LOCKS = 0xa - RLIMIT_MEMLOCK = 0x8 - RLIMIT_MSGQUEUE = 0xc - RLIMIT_NICE = 0xd - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x6 - RLIMIT_RSS = 0x5 - RLIMIT_RTPRIO = 0xe - RLIMIT_RTTIME = 0xf - RLIMIT_SIGPENDING = 0xb - RLIMIT_STACK = 0x3 - RLIM_INFINITY = -0x1 - RTAX_ADVMSS = 0x8 - RTAX_CC_ALGO = 0x10 - RTAX_CWND = 0x7 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_MASK = 0xf - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0x10 - RTAX_MTU = 0x2 - RTAX_QUICKACK = 0xf - RTAX_REORDERING = 0x9 - RTAX_RTO_MIN = 0xd - RTAX_RTT = 0x4 - RTAX_RTTVAR = 0x5 - RTAX_SSTHRESH = 0x6 - RTAX_UNSPEC = 0x0 - RTAX_WINDOW = 0x3 - RTA_ALIGNTO = 0x4 - RTA_MAX = 0x19 - RTCF_DIRECTSRC = 0x4000000 - RTCF_DOREDIRECT = 0x1000000 - RTCF_LOG = 0x2000000 - RTCF_MASQ = 0x400000 - RTCF_NAT = 0x800000 - RTCF_VALVE = 0x200000 - RTF_ADDRCLASSMASK = 0xf8000000 - RTF_ADDRCONF = 0x40000 - RTF_ALLONLINK = 0x20000 - RTF_BROADCAST = 0x10000000 - RTF_CACHE = 0x1000000 - RTF_DEFAULT = 0x10000 - RTF_DYNAMIC = 0x10 - RTF_FLOW = 0x2000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_INTERFACE = 0x40000000 - RTF_IRTT = 0x100 - RTF_LINKRT = 0x100000 - RTF_LOCAL = 0x80000000 - RTF_MODIFIED = 0x20 - RTF_MSS = 0x40 - RTF_MTU = 0x40 - RTF_MULTICAST = 0x20000000 - RTF_NAT = 0x8000000 - RTF_NOFORWARD = 0x1000 - RTF_NONEXTHOP = 0x200000 - RTF_NOPMTUDISC = 0x4000 - RTF_POLICY = 0x4000000 - RTF_REINSTATE = 0x8 - RTF_REJECT = 0x200 - RTF_STATIC = 0x400 - RTF_THROW = 0x2000 - RTF_UP = 0x1 - RTF_WINDOW = 0x80 - RTF_XRESOLVE = 0x800 - RTM_BASE = 0x10 - RTM_DELACTION = 0x31 - RTM_DELADDR = 0x15 - RTM_DELADDRLABEL = 0x49 - RTM_DELLINK = 0x11 - RTM_DELMDB = 0x55 - RTM_DELNEIGH = 0x1d - RTM_DELNSID = 0x59 - RTM_DELQDISC = 0x25 - RTM_DELROUTE = 0x19 - RTM_DELRULE = 0x21 - RTM_DELTCLASS = 0x29 - RTM_DELTFILTER = 0x2d - RTM_F_CLONED = 0x200 - RTM_F_EQUALIZE = 0x400 - RTM_F_LOOKUP_TABLE = 0x1000 - RTM_F_NOTIFY = 0x100 - RTM_F_PREFIX = 0x800 - RTM_GETACTION = 0x32 - RTM_GETADDR = 0x16 - RTM_GETADDRLABEL = 0x4a - RTM_GETANYCAST = 0x3e - RTM_GETDCB = 0x4e - RTM_GETLINK = 0x12 - RTM_GETMDB = 0x56 - RTM_GETMULTICAST = 0x3a - RTM_GETNEIGH = 0x1e - RTM_GETNEIGHTBL = 0x42 - RTM_GETNETCONF = 0x52 - RTM_GETNSID = 0x5a - RTM_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETSTATS = 0x5e - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_MAX = 0x5f - RTM_NEWACTION = 0x30 - RTM_NEWADDR = 0x14 - RTM_NEWADDRLABEL = 0x48 - RTM_NEWLINK = 0x10 - RTM_NEWMDB = 0x54 - RTM_NEWNDUSEROPT = 0x44 - RTM_NEWNEIGH = 0x1c - RTM_NEWNEIGHTBL = 0x40 - RTM_NEWNETCONF = 0x50 - RTM_NEWNSID = 0x58 - RTM_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWSTATS = 0x5c - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NR_FAMILIES = 0x14 - RTM_NR_MSGTYPES = 0x50 - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTNH_ALIGNTO = 0x4 - RTNH_COMPARE_MASK = 0x19 - RTNH_F_DEAD = 0x1 - RTNH_F_LINKDOWN = 0x10 - RTNH_F_OFFLOAD = 0x8 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTN_MAX = 0xb - RTPROT_BABEL = 0x2a - RTPROT_BIRD = 0xc - RTPROT_BOOT = 0x3 - RTPROT_DHCP = 0x10 - RTPROT_DNROUTED = 0xd - RTPROT_GATED = 0x8 - RTPROT_KERNEL = 0x2 - RTPROT_MROUTED = 0x11 - RTPROT_MRT = 0xa - RTPROT_NTK = 0xf - RTPROT_RA = 0x9 - RTPROT_REDIRECT = 0x1 - RTPROT_STATIC = 0x4 - RTPROT_UNSPEC = 0x0 - RTPROT_XORP = 0xe - RTPROT_ZEBRA = 0xb - RT_CLASS_DEFAULT = 0xfd - RT_CLASS_LOCAL = 0xff - RT_CLASS_MAIN = 0xfe - RT_CLASS_MAX = 0xff - RT_CLASS_UNSPEC = 0x0 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_CREDENTIALS = 0x2 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPNS = 0x23 - SCM_WIFI_STATUS = 0x29 - SECCOMP_MODE_DISABLED = 0x0 - SECCOMP_MODE_FILTER = 0x2 - SECCOMP_MODE_STRICT = 0x1 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCATMARK = 0x8905 - SIOCBONDCHANGEACTIVE = 0x8995 - SIOCBONDENSLAVE = 0x8990 - SIOCBONDINFOQUERY = 0x8994 - SIOCBONDRELEASE = 0x8991 - SIOCBONDSETHWADDR = 0x8992 - SIOCBONDSLAVEINFOQUERY = 0x8993 - SIOCBRADDBR = 0x89a0 - SIOCBRADDIF = 0x89a2 - SIOCBRDELBR = 0x89a1 - SIOCBRDELIF = 0x89a3 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCETHTOOL = 0x8946 - SIOCGARP = 0x8954 - SIOCGHWTSTAMP = 0x89b1 - SIOCGIFADDR = 0x8915 - SIOCGIFBR = 0x8940 - SIOCGIFBRDADDR = 0x8919 - SIOCGIFCONF = 0x8912 - SIOCGIFCOUNT = 0x8938 - SIOCGIFDSTADDR = 0x8917 - SIOCGIFENCAP = 0x8925 - SIOCGIFFLAGS = 0x8913 - SIOCGIFHWADDR = 0x8927 - SIOCGIFINDEX = 0x8933 - SIOCGIFMAP = 0x8970 - SIOCGIFMEM = 0x891f - SIOCGIFMETRIC = 0x891d - SIOCGIFMTU = 0x8921 - SIOCGIFNAME = 0x8910 - SIOCGIFNETMASK = 0x891b - SIOCGIFPFLAGS = 0x8935 - SIOCGIFSLAVE = 0x8929 - SIOCGIFTXQLEN = 0x8942 - SIOCGIFVLAN = 0x8982 - SIOCGMIIPHY = 0x8947 - SIOCGMIIREG = 0x8948 - SIOCGPGRP = 0x8904 - SIOCGRARP = 0x8961 - SIOCGSKNS = 0x894c - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCINQ = 0x4004667f - SIOCOUTQ = 0x40047473 - SIOCOUTQNSD = 0x894b - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - SIOCSHWTSTAMP = 0x89b0 - SIOCSIFADDR = 0x8916 - SIOCSIFBR = 0x8941 - SIOCSIFBRDADDR = 0x891a - SIOCSIFDSTADDR = 0x8918 - SIOCSIFENCAP = 0x8926 - SIOCSIFFLAGS = 0x8914 - SIOCSIFHWADDR = 0x8924 - SIOCSIFHWBROADCAST = 0x8937 - SIOCSIFLINK = 0x8911 - SIOCSIFMAP = 0x8971 - SIOCSIFMEM = 0x8920 - SIOCSIFMETRIC = 0x891e - SIOCSIFMTU = 0x8922 - SIOCSIFNAME = 0x8923 - SIOCSIFNETMASK = 0x891c - SIOCSIFPFLAGS = 0x8934 - SIOCSIFSLAVE = 0x8930 - SIOCSIFTXQLEN = 0x8943 - SIOCSIFVLAN = 0x8983 - SIOCSMIIREG = 0x8949 - SIOCSPGRP = 0x8902 - SIOCSRARP = 0x8962 - SIOCWANDEV = 0x894a - SOCK_CLOEXEC = 0x80000 - SOCK_DCCP = 0x6 - SOCK_DGRAM = 0x2 - SOCK_IOC_TYPE = 0x89 - SOCK_NONBLOCK = 0x800 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_AAL = 0x109 - SOL_ALG = 0x117 - SOL_ATM = 0x108 - SOL_CAIF = 0x116 - SOL_CAN_BASE = 0x64 - SOL_DCCP = 0x10d - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_IUCV = 0x115 - SOL_KCM = 0x119 - SOL_LLC = 0x10c - SOL_NETBEUI = 0x10b - SOL_NETLINK = 0x10e - SOL_NFC = 0x118 - SOL_PACKET = 0x107 - SOL_PNPIPE = 0x113 - SOL_PPPOL2TP = 0x111 - SOL_RAW = 0xff - SOL_RDS = 0x114 - SOL_RXRPC = 0x110 - SOL_SOCKET = 0x1 - SOL_TCP = 0x6 - SOL_TIPC = 0x10f - SOL_X25 = 0x106 - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_BPF = 0x32 - SO_ATTACH_FILTER = 0x1a - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x6 - SO_BSDCOMPAT = 0xe - SO_BUSY_POLL = 0x2e - SO_CNX_ADVICE = 0x35 - SO_DEBUG = 0x1 - SO_DETACH_BPF = 0x1b - SO_DETACH_FILTER = 0x1b - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_ERROR = 0x4 - SO_GET_FILTER = 0x1a - SO_INCOMING_CPU = 0x31 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_NOFCS = 0x2b - SO_NO_CHECK = 0xb - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x14 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x15 - SO_PEERNAME = 0x1c - SO_PEERSEC = 0x1f - SO_PRIORITY = 0xc - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x10 - SO_RCVTIMEO = 0x12 - SO_REUSEADDR = 0x2 - SO_REUSEPORT = 0xf - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x11 - SO_SNDTIMEO = 0x13 - SO_TIMESTAMP = 0x1d - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TYPE = 0x3 - SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 - SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 - SO_VM_SOCKETS_BUFFER_SIZE = 0x0 - SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 - SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 - SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 - SO_VM_SOCKETS_TRUSTED = 0x5 - SO_WIFI_STATUS = 0x29 - SPLICE_F_GIFT = 0x8 - SPLICE_F_MORE = 0x4 - SPLICE_F_MOVE = 0x1 - SPLICE_F_NONBLOCK = 0x2 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x400 - TAB2 = 0x800 - TAB3 = 0xc00 - TABDLY = 0xc00 - TASKSTATS_CMD_ATTR_MAX = 0x4 - TASKSTATS_CMD_MAX = 0x2 - TASKSTATS_GENL_NAME = "TASKSTATS" - TASKSTATS_GENL_VERSION = 0x1 - TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x8 - TCFLSH = 0x2000741f - TCGETA = 0x40147417 - TCGETS = 0x402c7413 - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_CC_INFO = 0x1a - TCP_CONGESTION = 0xd - TCP_COOKIE_IN_ALWAYS = 0x1 - TCP_COOKIE_MAX = 0x10 - TCP_COOKIE_MIN = 0x8 - TCP_COOKIE_OUT_NEVER = 0x2 - TCP_COOKIE_PAIR_SIZE = 0x20 - TCP_COOKIE_TRANSACTIONS = 0xf - TCP_CORK = 0x3 - TCP_DEFER_ACCEPT = 0x9 - TCP_FASTOPEN = 0x17 - TCP_INFO = 0xb - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x4 - TCP_KEEPINTVL = 0x5 - TCP_LINGER2 = 0x8 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0xe - TCP_MD5SIG_MAXKEYLEN = 0x50 - TCP_MSS = 0x200 - TCP_MSS_DEFAULT = 0x218 - TCP_MSS_DESIRED = 0x4c4 - TCP_NODELAY = 0x1 - TCP_NOTSENT_LOWAT = 0x19 - TCP_QUEUE_SEQ = 0x15 - TCP_QUICKACK = 0xc - TCP_REPAIR = 0x13 - TCP_REPAIR_OPTIONS = 0x16 - TCP_REPAIR_QUEUE = 0x14 - TCP_REPAIR_WINDOW = 0x1d - TCP_SAVED_SYN = 0x1c - TCP_SAVE_SYN = 0x1b - TCP_SYNCNT = 0x7 - TCP_S_DATA_IN = 0x4 - TCP_S_DATA_OUT = 0x8 - TCP_THIN_DUPACK = 0x11 - TCP_THIN_LINEAR_TIMEOUTS = 0x10 - TCP_TIMESTAMP = 0x18 - TCP_USER_TIMEOUT = 0x12 - TCP_WINDOW_CLAMP = 0xa - TCSAFLUSH = 0x2 - TCSBRK = 0x2000741d - TCSBRKP = 0x5425 - TCSETA = 0x80147418 - TCSETAF = 0x8014741c - TCSETAW = 0x80147419 - TCSETS = 0x802c7414 - TCSETSF = 0x802c7416 - TCSETSW = 0x802c7415 - TCXONC = 0x2000741e - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x40045432 - TIOCGETC = 0x40067412 - TIOCGETD = 0x5424 - TIOCGETP = 0x40067408 - TIOCGEXCL = 0x40045440 - TIOCGICOUNT = 0x545d - TIOCGLCKTRMIOS = 0x5456 - TIOCGLTC = 0x40067474 - TIOCGPGRP = 0x40047477 - TIOCGPKT = 0x40045438 - TIOCGPTLCK = 0x40045439 - TIOCGPTN = 0x40045430 - TIOCGRS485 = 0x542e - TIOCGSERIAL = 0x541e - TIOCGSID = 0x5429 - TIOCGSOFTCAR = 0x5419 - TIOCGWINSZ = 0x40087468 - TIOCINQ = 0x4004667f - TIOCLINUX = 0x541c - TIOCMBIC = 0x5417 - TIOCMBIS = 0x5416 - TIOCMGET = 0x5415 - TIOCMIWAIT = 0x545c - TIOCMSET = 0x5418 - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_LOOP = 0x8000 - TIOCM_OUT1 = 0x2000 - TIOCM_OUT2 = 0x4000 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x5422 - TIOCNXCL = 0x540d - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x5420 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x540e - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSER_TEMT = 0x1 - TIOCSETC = 0x80067411 - TIOCSETD = 0x5423 - TIOCSETN = 0x8006740a - TIOCSETP = 0x80067409 - TIOCSIG = 0x80045436 - TIOCSLCKTRMIOS = 0x5457 - TIOCSLTC = 0x80067475 - TIOCSPGRP = 0x80047476 - TIOCSPTLCK = 0x80045431 - TIOCSRS485 = 0x542f - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x541a - TIOCSTART = 0x2000746e - TIOCSTI = 0x5412 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCVHANGUP = 0x5437 - TOSTOP = 0x400000 - TS_COMM_LEN = 0x20 - TUNATTACHFILTER = 0x801054d5 - TUNDETACHFILTER = 0x801054d6 - TUNGETFEATURES = 0x400454cf - TUNGETFILTER = 0x401054db - TUNGETIFF = 0x400454d2 - TUNGETSNDBUF = 0x400454d3 - TUNGETVNETBE = 0x400454df - TUNGETVNETHDRSZ = 0x400454d7 - TUNGETVNETLE = 0x400454dd - TUNSETDEBUG = 0x800454c9 - TUNSETGROUP = 0x800454ce - TUNSETIFF = 0x800454ca - TUNSETIFINDEX = 0x800454da - TUNSETLINK = 0x800454cd - TUNSETNOCSUM = 0x800454c8 - TUNSETOFFLOAD = 0x800454d0 - TUNSETOWNER = 0x800454cc - TUNSETPERSIST = 0x800454cb - TUNSETQUEUE = 0x800454d9 - TUNSETSNDBUF = 0x800454d4 - TUNSETTXFILTER = 0x800454d1 - TUNSETVNETBE = 0x800454de - TUNSETVNETHDRSZ = 0x800454d8 - TUNSETVNETLE = 0x800454dc - UMOUNT_NOFOLLOW = 0x8 - VDISCARD = 0x10 - VEOF = 0x4 - VEOL = 0x6 - VEOL2 = 0x8 - VERASE = 0x2 - VINTR = 0x0 - VKILL = 0x3 - VLNEXT = 0xf - VMADDR_CID_ANY = 0xffffffff - VMADDR_CID_HOST = 0x2 - VMADDR_CID_HYPERVISOR = 0x0 - VMADDR_CID_RESERVED = 0x1 - VMADDR_PORT_ANY = 0xffffffff - VMIN = 0x5 - VM_SOCKETS_INVALID_VERSION = 0xffffffff - VQUIT = 0x1 - VREPRINT = 0xb - VSTART = 0xd - VSTOP = 0xe - VSUSP = 0xc - VSWTC = 0x9 - VT0 = 0x0 - VT1 = 0x10000 - VTDLY = 0x10000 - VTIME = 0x7 - VWERASE = 0xa - WALL = 0x40000000 - WCLONE = 0x80000000 - WCONTINUED = 0x8 - WEXITED = 0x4 - WNOHANG = 0x1 - WNOTHREAD = 0x20000000 - WNOWAIT = 0x1000000 - WORDSIZE = 0x40 - WSTOPPED = 0x2 - WUNTRACED = 0x2 - XATTR_CREATE = 0x1 - XATTR_REPLACE = 0x2 - XCASE = 0x4000 - XTABS = 0xc00 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x62) - EADDRNOTAVAIL = syscall.Errno(0x63) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x61) - EAGAIN = syscall.Errno(0xb) - EALREADY = syscall.Errno(0x72) - EBADE = syscall.Errno(0x34) - EBADF = syscall.Errno(0x9) - EBADFD = syscall.Errno(0x4d) - EBADMSG = syscall.Errno(0x4a) - EBADR = syscall.Errno(0x35) - EBADRQC = syscall.Errno(0x38) - EBADSLT = syscall.Errno(0x39) - EBFONT = syscall.Errno(0x3b) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x7d) - ECHILD = syscall.Errno(0xa) - ECHRNG = syscall.Errno(0x2c) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x67) - ECONNREFUSED = syscall.Errno(0x6f) - ECONNRESET = syscall.Errno(0x68) - EDEADLK = syscall.Errno(0x23) - EDEADLOCK = syscall.Errno(0x3a) - EDESTADDRREQ = syscall.Errno(0x59) - EDOM = syscall.Errno(0x21) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x7a) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EHOSTDOWN = syscall.Errno(0x70) - EHOSTUNREACH = syscall.Errno(0x71) - EHWPOISON = syscall.Errno(0x85) - EIDRM = syscall.Errno(0x2b) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x73) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x6a) - EISDIR = syscall.Errno(0x15) - EISNAM = syscall.Errno(0x78) - EKEYEXPIRED = syscall.Errno(0x7f) - EKEYREJECTED = syscall.Errno(0x81) - EKEYREVOKED = syscall.Errno(0x80) - EL2HLT = syscall.Errno(0x33) - EL2NSYNC = syscall.Errno(0x2d) - EL3HLT = syscall.Errno(0x2e) - EL3RST = syscall.Errno(0x2f) - ELIBACC = syscall.Errno(0x4f) - ELIBBAD = syscall.Errno(0x50) - ELIBEXEC = syscall.Errno(0x53) - ELIBMAX = syscall.Errno(0x52) - ELIBSCN = syscall.Errno(0x51) - ELNRNG = syscall.Errno(0x30) - ELOOP = syscall.Errno(0x28) - EMEDIUMTYPE = syscall.Errno(0x7c) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x5a) - EMULTIHOP = syscall.Errno(0x48) - ENAMETOOLONG = syscall.Errno(0x24) - ENAVAIL = syscall.Errno(0x77) - ENETDOWN = syscall.Errno(0x64) - ENETRESET = syscall.Errno(0x66) - ENETUNREACH = syscall.Errno(0x65) - ENFILE = syscall.Errno(0x17) - ENOANO = syscall.Errno(0x37) - ENOBUFS = syscall.Errno(0x69) - ENOCSI = syscall.Errno(0x32) - ENODATA = syscall.Errno(0x3d) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOKEY = syscall.Errno(0x7e) - ENOLCK = syscall.Errno(0x25) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x7b) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x2a) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x5c) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x26) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x6b) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x27) - ENOTNAM = syscall.Errno(0x76) - ENOTRECOVERABLE = syscall.Errno(0x83) - ENOTSOCK = syscall.Errno(0x58) - ENOTSUP = syscall.Errno(0x5f) - ENOTTY = syscall.Errno(0x19) - ENOTUNIQ = syscall.Errno(0x4c) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x5f) - EOVERFLOW = syscall.Errno(0x4b) - EOWNERDEAD = syscall.Errno(0x82) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x60) - EPIPE = syscall.Errno(0x20) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x5d) - EPROTOTYPE = syscall.Errno(0x5b) - ERANGE = syscall.Errno(0x22) - EREMCHG = syscall.Errno(0x4e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x79) - ERESTART = syscall.Errno(0x55) - ERFKILL = syscall.Errno(0x84) - EROFS = syscall.Errno(0x1e) - ESHUTDOWN = syscall.Errno(0x6c) - ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x74) - ESTRPIPE = syscall.Errno(0x56) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x6e) - ETOOMANYREFS = syscall.Errno(0x6d) - ETXTBSY = syscall.Errno(0x1a) - EUCLEAN = syscall.Errno(0x75) - EUNATCH = syscall.Errno(0x31) - EUSERS = syscall.Errno(0x57) - EWOULDBLOCK = syscall.Errno(0xb) - EXDEV = syscall.Errno(0x12) - EXFULL = syscall.Errno(0x36) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0x7) - SIGCHLD = syscall.Signal(0x11) - SIGCLD = syscall.Signal(0x11) - SIGCONT = syscall.Signal(0x12) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x1d) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) - SIGPOLL = syscall.Signal(0x1d) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x1e) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTKFLT = syscall.Signal(0x10) - SIGSTOP = syscall.Signal(0x13) - SIGSYS = syscall.Signal(0x1f) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x14) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGUNUSED = syscall.Signal(0x1f) - SIGURG = syscall.Signal(0x17) - SIGUSR1 = syscall.Signal(0xa) - SIGUSR2 = syscall.Signal(0xc) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errors = [...]string{ - 1: "operation not permitted", - 2: "no such file or directory", - 3: "no such process", - 4: "interrupted system call", - 5: "input/output error", - 6: "no such device or address", - 7: "argument list too long", - 8: "exec format error", - 9: "bad file descriptor", - 10: "no child processes", - 11: "resource temporarily unavailable", - 12: "cannot allocate memory", - 13: "permission denied", - 14: "bad address", - 15: "block device required", - 16: "device or resource busy", - 17: "file exists", - 18: "invalid cross-device link", - 19: "no such device", - 20: "not a directory", - 21: "is a directory", - 22: "invalid argument", - 23: "too many open files in system", - 24: "too many open files", - 25: "inappropriate ioctl for device", - 26: "text file busy", - 27: "file too large", - 28: "no space left on device", - 29: "illegal seek", - 30: "read-only file system", - 31: "too many links", - 32: "broken pipe", - 33: "numerical argument out of domain", - 34: "numerical result out of range", - 35: "resource deadlock avoided", - 36: "file name too long", - 37: "no locks available", - 38: "function not implemented", - 39: "directory not empty", - 40: "too many levels of symbolic links", - 42: "no message of desired type", - 43: "identifier removed", - 44: "channel number out of range", - 45: "level 2 not synchronized", - 46: "level 3 halted", - 47: "level 3 reset", - 48: "link number out of range", - 49: "protocol driver not attached", - 50: "no CSI structure available", - 51: "level 2 halted", - 52: "invalid exchange", - 53: "invalid request descriptor", - 54: "exchange full", - 55: "no anode", - 56: "invalid request code", - 57: "invalid slot", - 58: "file locking deadlock error", - 59: "bad font file format", - 60: "device not a stream", - 61: "no data available", - 62: "timer expired", - 63: "out of streams resources", - 64: "machine is not on the network", - 65: "package not installed", - 66: "object is remote", - 67: "link has been severed", - 68: "advertise error", - 69: "srmount error", - 70: "communication error on send", - 71: "protocol error", - 72: "multihop attempted", - 73: "RFS specific error", - 74: "bad message", - 75: "value too large for defined data type", - 76: "name not unique on network", - 77: "file descriptor in bad state", - 78: "remote address changed", - 79: "can not access a needed shared library", - 80: "accessing a corrupted shared library", - 81: ".lib section in a.out corrupted", - 82: "attempting to link in too many shared libraries", - 83: "cannot exec a shared library directly", - 84: "invalid or incomplete multibyte or wide character", - 85: "interrupted system call should be restarted", - 86: "streams pipe error", - 87: "too many users", - 88: "socket operation on non-socket", - 89: "destination address required", - 90: "message too long", - 91: "protocol wrong type for socket", - 92: "protocol not available", - 93: "protocol not supported", - 94: "socket type not supported", - 95: "operation not supported", - 96: "protocol family not supported", - 97: "address family not supported by protocol", - 98: "address already in use", - 99: "cannot assign requested address", - 100: "network is down", - 101: "network is unreachable", - 102: "network dropped connection on reset", - 103: "software caused connection abort", - 104: "connection reset by peer", - 105: "no buffer space available", - 106: "transport endpoint is already connected", - 107: "transport endpoint is not connected", - 108: "cannot send after transport endpoint shutdown", - 109: "too many references: cannot splice", - 110: "connection timed out", - 111: "connection refused", - 112: "host is down", - 113: "no route to host", - 114: "operation already in progress", - 115: "operation now in progress", - 116: "stale file handle", - 117: "structure needs cleaning", - 118: "not a XENIX named type file", - 119: "no XENIX semaphores available", - 120: "is a named type file", - 121: "remote I/O error", - 122: "disk quota exceeded", - 123: "no medium found", - 124: "wrong medium type", - 125: "operation canceled", - 126: "required key not available", - 127: "key has expired", - 128: "key has been revoked", - 129: "key was rejected by service", - 130: "owner died", - 131: "state not recoverable", - 132: "operation not possible due to RF-kill", - 133: "memory page has hardware error", -} - -// Signal table -var signals = [...]string{ - 1: "hangup", - 2: "interrupt", - 3: "quit", - 4: "illegal instruction", - 5: "trace/breakpoint trap", - 6: "aborted", - 7: "bus error", - 8: "floating point exception", - 9: "killed", - 10: "user defined signal 1", - 11: "segmentation fault", - 12: "user defined signal 2", - 13: "broken pipe", - 14: "alarm clock", - 15: "terminated", - 16: "stack fault", - 17: "child exited", - 18: "continued", - 19: "stopped (signal)", - 20: "stopped", - 21: "stopped (tty input)", - 22: "stopped (tty output)", - 23: "urgent I/O condition", - 24: "CPU time limit exceeded", - 25: "file size limit exceeded", - 26: "virtual timer expired", - 27: "profiling timer expired", - 28: "window changed", - 29: "I/O possible", - 30: "power failure", - 31: "bad system call", -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go deleted file mode 100644 index ad29c3d..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go +++ /dev/null @@ -1,2263 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/include -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build ppc64le,linux - -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go - -package unix - -import "syscall" - -const ( - AF_ALG = 0x26 - AF_APPLETALK = 0x5 - AF_ASH = 0x12 - AF_ATMPVC = 0x8 - AF_ATMSVC = 0x14 - AF_AX25 = 0x3 - AF_BLUETOOTH = 0x1f - AF_BRIDGE = 0x7 - AF_CAIF = 0x25 - AF_CAN = 0x1d - AF_DECnet = 0xc - AF_ECONET = 0x13 - AF_FILE = 0x1 - AF_IB = 0x1b - AF_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KCM = 0x29 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x2b - AF_MPLS = 0x1c - AF_NETBEUI = 0xd - AF_NETLINK = 0x10 - AF_NETROM = 0x6 - AF_NFC = 0x27 - AF_PACKET = 0x11 - AF_PHONET = 0x23 - AF_PPPOX = 0x18 - AF_QIPCRTR = 0x2a - AF_RDS = 0x15 - AF_ROSE = 0xb - AF_ROUTE = 0x10 - AF_RXRPC = 0x21 - AF_SECURITY = 0xe - AF_SNA = 0x16 - AF_TIPC = 0x1e - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VSOCK = 0x28 - AF_WANPIPE = 0x19 - AF_X25 = 0x9 - ALG_OP_DECRYPT = 0x0 - ALG_OP_ENCRYPT = 0x1 - ALG_SET_AEAD_ASSOCLEN = 0x4 - ALG_SET_AEAD_AUTHSIZE = 0x5 - ALG_SET_IV = 0x2 - ALG_SET_KEY = 0x1 - ALG_SET_OP = 0x3 - ARPHRD_6LOWPAN = 0x339 - ARPHRD_ADAPT = 0x108 - ARPHRD_APPLETLK = 0x8 - ARPHRD_ARCNET = 0x7 - ARPHRD_ASH = 0x30d - ARPHRD_ATM = 0x13 - ARPHRD_AX25 = 0x3 - ARPHRD_BIF = 0x307 - ARPHRD_CAIF = 0x336 - ARPHRD_CAN = 0x118 - ARPHRD_CHAOS = 0x5 - ARPHRD_CISCO = 0x201 - ARPHRD_CSLIP = 0x101 - ARPHRD_CSLIP6 = 0x103 - ARPHRD_DDCMP = 0x205 - ARPHRD_DLCI = 0xf - ARPHRD_ECONET = 0x30e - ARPHRD_EETHER = 0x2 - ARPHRD_ETHER = 0x1 - ARPHRD_EUI64 = 0x1b - ARPHRD_FCAL = 0x311 - ARPHRD_FCFABRIC = 0x313 - ARPHRD_FCPL = 0x312 - ARPHRD_FCPP = 0x310 - ARPHRD_FDDI = 0x306 - ARPHRD_FRAD = 0x302 - ARPHRD_HDLC = 0x201 - ARPHRD_HIPPI = 0x30c - ARPHRD_HWX25 = 0x110 - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_IEEE80211 = 0x321 - ARPHRD_IEEE80211_PRISM = 0x322 - ARPHRD_IEEE80211_RADIOTAP = 0x323 - ARPHRD_IEEE802154 = 0x324 - ARPHRD_IEEE802154_MONITOR = 0x325 - ARPHRD_IEEE802_TR = 0x320 - ARPHRD_INFINIBAND = 0x20 - ARPHRD_IP6GRE = 0x337 - ARPHRD_IPDDP = 0x309 - ARPHRD_IPGRE = 0x30a - ARPHRD_IRDA = 0x30f - ARPHRD_LAPB = 0x204 - ARPHRD_LOCALTLK = 0x305 - ARPHRD_LOOPBACK = 0x304 - ARPHRD_METRICOM = 0x17 - ARPHRD_NETLINK = 0x338 - ARPHRD_NETROM = 0x0 - ARPHRD_NONE = 0xfffe - ARPHRD_PHONET = 0x334 - ARPHRD_PHONET_PIPE = 0x335 - ARPHRD_PIMREG = 0x30b - ARPHRD_PPP = 0x200 - ARPHRD_PRONET = 0x4 - ARPHRD_RAWHDLC = 0x206 - ARPHRD_ROSE = 0x10e - ARPHRD_RSRVD = 0x104 - ARPHRD_SIT = 0x308 - ARPHRD_SKIP = 0x303 - ARPHRD_SLIP = 0x100 - ARPHRD_SLIP6 = 0x102 - ARPHRD_TUNNEL = 0x300 - ARPHRD_TUNNEL6 = 0x301 - ARPHRD_VOID = 0xffff - ARPHRD_X25 = 0x10f - B0 = 0x0 - B1000000 = 0x17 - B110 = 0x3 - B115200 = 0x11 - B1152000 = 0x18 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B1500000 = 0x19 - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B2000000 = 0x1a - B230400 = 0x12 - B2400 = 0xb - B2500000 = 0x1b - B300 = 0x7 - B3000000 = 0x1c - B3500000 = 0x1d - B38400 = 0xf - B4000000 = 0x1e - B460800 = 0x13 - B4800 = 0xc - B50 = 0x1 - B500000 = 0x14 - B57600 = 0x10 - B576000 = 0x15 - B600 = 0x8 - B75 = 0x2 - B921600 = 0x16 - B9600 = 0xd - BLKBSZGET = 0x40081270 - BLKBSZSET = 0x80081271 - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40081272 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d - BLKRRPART = 0x2000125f - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 - BOTHER = 0x1f - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIV = 0x30 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LL_OFF = -0x200000 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXINSNS = 0x1000 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_NET_OFF = -0x100000 - BPF_OR = 0x40 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XOR = 0xa0 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x8000 - BSDLY = 0x8000 - CAN_BCM = 0x2 - CAN_EFF_FLAG = 0x80000000 - CAN_EFF_ID_BITS = 0x1d - CAN_EFF_MASK = 0x1fffffff - CAN_ERR_FLAG = 0x20000000 - CAN_ERR_MASK = 0x1fffffff - CAN_INV_FILTER = 0x20000000 - CAN_ISOTP = 0x6 - CAN_MAX_DLC = 0x8 - CAN_MAX_DLEN = 0x8 - CAN_MCNET = 0x5 - CAN_MTU = 0x10 - CAN_NPROTO = 0x7 - CAN_RAW = 0x1 - CAN_RAW_FILTER_MAX = 0x200 - CAN_RTR_FLAG = 0x40000000 - CAN_SFF_ID_BITS = 0xb - CAN_SFF_MASK = 0x7ff - CAN_TP16 = 0x3 - CAN_TP20 = 0x4 - CBAUD = 0xff - CBAUDEX = 0x0 - CFLUSH = 0xf - CIBAUD = 0xff0000 - CLOCAL = 0x8000 - CLOCK_BOOTTIME = 0x7 - CLOCK_BOOTTIME_ALARM = 0x9 - CLOCK_DEFAULT = 0x0 - CLOCK_EXT = 0x1 - CLOCK_INT = 0x2 - CLOCK_MONOTONIC = 0x1 - CLOCK_MONOTONIC_COARSE = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_ALARM = 0x8 - CLOCK_REALTIME_COARSE = 0x5 - CLOCK_TAI = 0xb - CLOCK_THREAD_CPUTIME_ID = 0x3 - CLOCK_TXFROMRX = 0x4 - CLOCK_TXINT = 0x3 - CLONE_CHILD_CLEARTID = 0x200000 - CLONE_CHILD_SETTID = 0x1000000 - CLONE_DETACHED = 0x400000 - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_IO = 0x80000000 - CLONE_NEWCGROUP = 0x2000000 - CLONE_NEWIPC = 0x8000000 - CLONE_NEWNET = 0x40000000 - CLONE_NEWNS = 0x20000 - CLONE_NEWPID = 0x20000000 - CLONE_NEWUSER = 0x10000000 - CLONE_NEWUTS = 0x4000000 - CLONE_PARENT = 0x8000 - CLONE_PARENT_SETTID = 0x100000 - CLONE_PTRACE = 0x2000 - CLONE_SETTLS = 0x80000 - CLONE_SIGHAND = 0x800 - CLONE_SYSVSEM = 0x40000 - CLONE_THREAD = 0x10000 - CLONE_UNTRACED = 0x800000 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CMSPAR = 0x40000000 - CR0 = 0x0 - CR1 = 0x1000 - CR2 = 0x2000 - CR3 = 0x3000 - CRDLY = 0x3000 - CREAD = 0x800 - CRTSCTS = 0x80000000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIGNAL = 0xff - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x0 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EFD_SEMAPHORE = 0x1 - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - EPOLLEXCLUSIVE = 0x10000000 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLONESHOT = 0x40000000 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDHUP = 0x2000 - EPOLLRDNORM = 0x40 - EPOLLWAKEUP = 0x20000000 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CLOEXEC = 0x80000 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - ETH_P_1588 = 0x88f7 - ETH_P_8021AD = 0x88a8 - ETH_P_8021AH = 0x88e7 - ETH_P_8021Q = 0x8100 - ETH_P_80221 = 0x8917 - ETH_P_802_2 = 0x4 - ETH_P_802_3 = 0x1 - ETH_P_802_3_MIN = 0x600 - ETH_P_802_EX1 = 0x88b5 - ETH_P_AARP = 0x80f3 - ETH_P_AF_IUCV = 0xfbfb - ETH_P_ALL = 0x3 - ETH_P_AOE = 0x88a2 - ETH_P_ARCNET = 0x1a - ETH_P_ARP = 0x806 - ETH_P_ATALK = 0x809b - ETH_P_ATMFATE = 0x8884 - ETH_P_ATMMPOA = 0x884c - ETH_P_AX25 = 0x2 - ETH_P_BATMAN = 0x4305 - ETH_P_BPQ = 0x8ff - ETH_P_CAIF = 0xf7 - ETH_P_CAN = 0xc - ETH_P_CANFD = 0xd - ETH_P_CONTROL = 0x16 - ETH_P_CUST = 0x6006 - ETH_P_DDCMP = 0x6 - ETH_P_DEC = 0x6000 - ETH_P_DIAG = 0x6005 - ETH_P_DNA_DL = 0x6001 - ETH_P_DNA_RC = 0x6002 - ETH_P_DNA_RT = 0x6003 - ETH_P_DSA = 0x1b - ETH_P_ECONET = 0x18 - ETH_P_EDSA = 0xdada - ETH_P_FCOE = 0x8906 - ETH_P_FIP = 0x8914 - ETH_P_HDLC = 0x19 - ETH_P_HSR = 0x892f - ETH_P_IEEE802154 = 0xf6 - ETH_P_IEEEPUP = 0xa00 - ETH_P_IEEEPUPAT = 0xa01 - ETH_P_IP = 0x800 - ETH_P_IPV6 = 0x86dd - ETH_P_IPX = 0x8137 - ETH_P_IRDA = 0x17 - ETH_P_LAT = 0x6004 - ETH_P_LINK_CTL = 0x886c - ETH_P_LOCALTALK = 0x9 - ETH_P_LOOP = 0x60 - ETH_P_LOOPBACK = 0x9000 - ETH_P_MACSEC = 0x88e5 - ETH_P_MOBITEX = 0x15 - ETH_P_MPLS_MC = 0x8848 - ETH_P_MPLS_UC = 0x8847 - ETH_P_MVRP = 0x88f5 - ETH_P_NCSI = 0x88f8 - ETH_P_PAE = 0x888e - ETH_P_PAUSE = 0x8808 - ETH_P_PHONET = 0xf5 - ETH_P_PPPTALK = 0x10 - ETH_P_PPP_DISC = 0x8863 - ETH_P_PPP_MP = 0x8 - ETH_P_PPP_SES = 0x8864 - ETH_P_PRP = 0x88fb - ETH_P_PUP = 0x200 - ETH_P_PUPAT = 0x201 - ETH_P_QINQ1 = 0x9100 - ETH_P_QINQ2 = 0x9200 - ETH_P_QINQ3 = 0x9300 - ETH_P_RARP = 0x8035 - ETH_P_SCA = 0x6007 - ETH_P_SLOW = 0x8809 - ETH_P_SNAP = 0x5 - ETH_P_TDLS = 0x890d - ETH_P_TEB = 0x6558 - ETH_P_TIPC = 0x88ca - ETH_P_TRAILER = 0x1c - ETH_P_TR_802_2 = 0x11 - ETH_P_TSN = 0x22f0 - ETH_P_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - ETH_P_XDSA = 0xf8 - EXTA = 0xe - EXTB = 0xf - EXTPROC = 0x10000000 - FALLOC_FL_COLLAPSE_RANGE = 0x8 - FALLOC_FL_INSERT_RANGE = 0x20 - FALLOC_FL_KEEP_SIZE = 0x1 - FALLOC_FL_NO_HIDE_STALE = 0x4 - FALLOC_FL_PUNCH_HOLE = 0x2 - FALLOC_FL_UNSHARE_RANGE = 0x40 - FALLOC_FL_ZERO_RANGE = 0x10 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x4000 - FFDLY = 0x4000 - FLUSHO = 0x800000 - FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 - FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 - FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 - FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 - FS_ENCRYPTION_MODE_INVALID = 0x0 - FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 - FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 - FS_KEY_DESCRIPTOR_SIZE = 0x8 - FS_KEY_DESC_PREFIX = "fscrypt:" - FS_KEY_DESC_PREFIX_SIZE = 0x8 - FS_MAX_KEY_SIZE = 0x40 - FS_POLICY_FLAGS_PAD_16 = 0x2 - FS_POLICY_FLAGS_PAD_32 = 0x3 - FS_POLICY_FLAGS_PAD_4 = 0x0 - FS_POLICY_FLAGS_PAD_8 = 0x1 - FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x3 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x406 - F_EXLCK = 0x4 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLEASE = 0x401 - F_GETLK = 0x5 - F_GETLK64 = 0xc - F_GETOWN = 0x9 - F_GETOWN_EX = 0x10 - F_GETPIPE_SZ = 0x408 - F_GETSIG = 0xb - F_LOCK = 0x1 - F_NOTIFY = 0x402 - F_OFD_GETLK = 0x24 - F_OFD_SETLK = 0x25 - F_OFD_SETLKW = 0x26 - F_OK = 0x0 - F_RDLCK = 0x0 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLEASE = 0x400 - F_SETLK = 0x6 - F_SETLK64 = 0xd - F_SETLKW = 0x7 - F_SETLKW64 = 0xe - F_SETOWN = 0x8 - F_SETOWN_EX = 0xf - F_SETPIPE_SZ = 0x407 - F_SETSIG = 0xa - F_SHLCK = 0x8 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_ULOCK = 0x0 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - GENL_ADMIN_PERM = 0x1 - GENL_CMD_CAP_DO = 0x2 - GENL_CMD_CAP_DUMP = 0x4 - GENL_CMD_CAP_HASPOL = 0x8 - GENL_HDRLEN = 0x4 - GENL_ID_CTRL = 0x10 - GENL_ID_PMCRAID = 0x12 - GENL_ID_VFS_DQUOT = 0x11 - GENL_MAX_ID = 0x3ff - GENL_MIN_ID = 0x10 - GENL_NAMSIZ = 0x10 - GENL_START_ALLOC = 0x13 - GENL_UNS_ADMIN_PERM = 0x10 - GRND_NONBLOCK = 0x1 - GRND_RANDOM = 0x2 - HUPCL = 0x4000 - IBSHIFT = 0x10 - ICANON = 0x100 - ICMPV6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x400 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_MANAGETEMPADDR = 0x100 - IFA_F_MCAUTOJOIN = 0x400 - IFA_F_NODAD = 0x2 - IFA_F_NOPREFIXROUTE = 0x200 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_STABLE_PRIVACY = 0x800 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0x8 - IFF_ALLMULTI = 0x200 - IFF_ATTACH_QUEUE = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DETACH_QUEUE = 0x400 - IFF_DORMANT = 0x20000 - IFF_DYNAMIC = 0x8000 - IFF_ECHO = 0x40000 - IFF_LOOPBACK = 0x8 - IFF_LOWER_UP = 0x10000 - IFF_MASTER = 0x400 - IFF_MULTICAST = 0x1000 - IFF_MULTI_QUEUE = 0x100 - IFF_NOARP = 0x80 - IFF_NOFILTER = 0x1000 - IFF_NOTRAILERS = 0x20 - IFF_NO_PI = 0x1000 - IFF_ONE_QUEUE = 0x2000 - IFF_PERSIST = 0x800 - IFF_POINTOPOINT = 0x10 - IFF_PORTSEL = 0x2000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SLAVE = 0x800 - IFF_TAP = 0x2 - IFF_TUN = 0x1 - IFF_TUN_EXCL = 0x8000 - IFF_UP = 0x1 - IFF_VNET_HDR = 0x4000 - IFF_VOLATILE = 0x70c5a - IFNAMSIZ = 0x10 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_ACCESS = 0x1 - IN_ALL_EVENTS = 0xfff - IN_ATTRIB = 0x4 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLOEXEC = 0x80000 - IN_CLOSE = 0x18 - IN_CLOSE_NOWRITE = 0x10 - IN_CLOSE_WRITE = 0x8 - IN_CREATE = 0x100 - IN_DELETE = 0x200 - IN_DELETE_SELF = 0x400 - IN_DONT_FOLLOW = 0x2000000 - IN_EXCL_UNLINK = 0x4000000 - IN_IGNORED = 0x8000 - IN_ISDIR = 0x40000000 - IN_LOOPBACKNET = 0x7f - IN_MASK_ADD = 0x20000000 - IN_MODIFY = 0x2 - IN_MOVE = 0xc0 - IN_MOVED_FROM = 0x40 - IN_MOVED_TO = 0x80 - IN_MOVE_SELF = 0x800 - IN_NONBLOCK = 0x800 - IN_ONESHOT = 0x80000000 - IN_ONLYDIR = 0x1000000 - IN_OPEN = 0x20 - IN_Q_OVERFLOW = 0x4000 - IN_UNMOUNT = 0x2000 - IPPROTO_AH = 0x33 - IPPROTO_BEETPH = 0x5e - IPPROTO_COMP = 0x6c - IPPROTO_DCCP = 0x21 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPIP = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MH = 0x87 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_NONE = 0x3b - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_2292DSTOPTS = 0x4 - IPV6_2292HOPLIMIT = 0x8 - IPV6_2292HOPOPTS = 0x3 - IPV6_2292PKTINFO = 0x2 - IPV6_2292PKTOPTIONS = 0x6 - IPV6_2292RTHDR = 0x5 - IPV6_ADDRFORM = 0x1 - IPV6_ADD_MEMBERSHIP = 0x14 - IPV6_AUTHHDR = 0xa - IPV6_CHECKSUM = 0x7 - IPV6_DONTFRAG = 0x3e - IPV6_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - IPV6_HDRINCL = 0x24 - IPV6_HOPLIMIT = 0x34 - IPV6_HOPOPTS = 0x36 - IPV6_IPSEC_POLICY = 0x22 - IPV6_JOIN_ANYCAST = 0x1b - IPV6_JOIN_GROUP = 0x14 - IPV6_LEAVE_ANYCAST = 0x1c - IPV6_LEAVE_GROUP = 0x15 - IPV6_MTU = 0x18 - IPV6_MTU_DISCOVER = 0x17 - IPV6_MULTICAST_HOPS = 0x12 - IPV6_MULTICAST_IF = 0x11 - IPV6_MULTICAST_LOOP = 0x13 - IPV6_NEXTHOP = 0x9 - IPV6_PATHMTU = 0x3d - IPV6_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_INTERFACE = 0x4 - IPV6_PMTUDISC_OMIT = 0x5 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVPATHMTU = 0x3c - IPV6_RECVPKTINFO = 0x31 - IPV6_RECVRTHDR = 0x38 - IPV6_RECVTCLASS = 0x42 - IPV6_ROUTER_ALERT = 0x16 - IPV6_RTHDR = 0x39 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RXDSTOPTS = 0x3b - IPV6_RXHOPOPTS = 0x36 - IPV6_TCLASS = 0x43 - IPV6_UNICAST_HOPS = 0x10 - IPV6_V6ONLY = 0x1a - IPV6_XFRM_POLICY = 0x23 - IP_ADD_MEMBERSHIP = 0x23 - IP_ADD_SOURCE_MEMBERSHIP = 0x27 - IP_BIND_ADDRESS_NO_PORT = 0x18 - IP_BLOCK_SOURCE = 0x26 - IP_CHECKSUM = 0x17 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0x24 - IP_DROP_SOURCE_MEMBERSHIP = 0x28 - IP_FREEBIND = 0xf - IP_HDRINCL = 0x3 - IP_IPSEC_POLICY = 0x10 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINTTL = 0x15 - IP_MSFILTER = 0x29 - IP_MSS = 0x240 - IP_MTU = 0xe - IP_MTU_DISCOVER = 0xa - IP_MULTICAST_ALL = 0x31 - IP_MULTICAST_IF = 0x20 - IP_MULTICAST_LOOP = 0x22 - IP_MULTICAST_TTL = 0x21 - IP_NODEFRAG = 0x16 - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x4 - IP_ORIGDSTADDR = 0x14 - IP_PASSSEC = 0x12 - IP_PKTINFO = 0x8 - IP_PKTOPTIONS = 0x9 - IP_PMTUDISC = 0xa - IP_PMTUDISC_DO = 0x2 - IP_PMTUDISC_DONT = 0x0 - IP_PMTUDISC_INTERFACE = 0x4 - IP_PMTUDISC_OMIT = 0x5 - IP_PMTUDISC_PROBE = 0x3 - IP_PMTUDISC_WANT = 0x1 - IP_RECVERR = 0xb - IP_RECVOPTS = 0x6 - IP_RECVORIGDSTADDR = 0x14 - IP_RECVRETOPTS = 0x7 - IP_RECVTOS = 0xd - IP_RECVTTL = 0xc - IP_RETOPTS = 0x7 - IP_RF = 0x8000 - IP_ROUTER_ALERT = 0x5 - IP_TOS = 0x1 - IP_TRANSPARENT = 0x13 - IP_TTL = 0x2 - IP_UNBLOCK_SOURCE = 0x25 - IP_UNICAST_IF = 0x32 - IP_XFRM_POLICY = 0x11 - ISIG = 0x80 - ISTRIP = 0x20 - IUCLC = 0x1000 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KEYCTL_ASSUME_AUTHORITY = 0x10 - KEYCTL_CHOWN = 0x4 - KEYCTL_CLEAR = 0x7 - KEYCTL_DESCRIBE = 0x6 - KEYCTL_DH_COMPUTE = 0x17 - KEYCTL_GET_KEYRING_ID = 0x0 - KEYCTL_GET_PERSISTENT = 0x16 - KEYCTL_GET_SECURITY = 0x11 - KEYCTL_INSTANTIATE = 0xc - KEYCTL_INSTANTIATE_IOV = 0x14 - KEYCTL_INVALIDATE = 0x15 - KEYCTL_JOIN_SESSION_KEYRING = 0x1 - KEYCTL_LINK = 0x8 - KEYCTL_NEGATE = 0xd - KEYCTL_READ = 0xb - KEYCTL_REJECT = 0x13 - KEYCTL_REVOKE = 0x3 - KEYCTL_SEARCH = 0xa - KEYCTL_SESSION_TO_PARENT = 0x12 - KEYCTL_SETPERM = 0x5 - KEYCTL_SET_REQKEY_KEYRING = 0xe - KEYCTL_SET_TIMEOUT = 0xf - KEYCTL_UNLINK = 0x9 - KEYCTL_UPDATE = 0x2 - KEY_REQKEY_DEFL_DEFAULT = 0x0 - KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 - KEY_REQKEY_DEFL_NO_CHANGE = -0x1 - KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 - KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 - KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 - KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 - KEY_REQKEY_DEFL_USER_KEYRING = 0x4 - KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 - KEY_SPEC_GROUP_KEYRING = -0x6 - KEY_SPEC_PROCESS_KEYRING = -0x2 - KEY_SPEC_REQKEY_AUTH_KEY = -0x7 - KEY_SPEC_REQUESTOR_KEYRING = -0x8 - KEY_SPEC_SESSION_KEYRING = -0x3 - KEY_SPEC_THREAD_KEYRING = -0x1 - KEY_SPEC_USER_KEYRING = -0x4 - KEY_SPEC_USER_SESSION_KEYRING = -0x5 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef - LINUX_REBOOT_CMD_HALT = 0xcdef0123 - LINUX_REBOOT_CMD_KEXEC = 0x45584543 - LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc - LINUX_REBOOT_CMD_RESTART = 0x1234567 - LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 - LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 - LINUX_REBOOT_MAGIC1 = 0xfee1dead - LINUX_REBOOT_MAGIC2 = 0x28121969 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DODUMP = 0x11 - MADV_DOFORK = 0xb - MADV_DONTDUMP = 0x10 - MADV_DONTFORK = 0xa - MADV_DONTNEED = 0x4 - MADV_FREE = 0x8 - MADV_HUGEPAGE = 0xe - MADV_HWPOISON = 0x64 - MADV_MERGEABLE = 0xc - MADV_NOHUGEPAGE = 0xf - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_REMOVE = 0x9 - MADV_SEQUENTIAL = 0x2 - MADV_UNMERGEABLE = 0xd - MADV_WILLNEED = 0x3 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_GROWSDOWN = 0x100 - MAP_HUGETLB = 0x40000 - MAP_HUGE_MASK = 0x3f - MAP_HUGE_SHIFT = 0x1a - MAP_LOCKED = 0x80 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x40 - MAP_POPULATE = 0x8000 - MAP_PRIVATE = 0x2 - MAP_SHARED = 0x1 - MAP_STACK = 0x20000 - MAP_TYPE = 0xf - MCL_CURRENT = 0x2000 - MCL_FUTURE = 0x4000 - MCL_ONFAULT = 0x8000 - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - MSG_BATCH = 0x40000 - MSG_CMSG_CLOEXEC = 0x40000000 - MSG_CONFIRM = 0x800 - MSG_CTRUNC = 0x8 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x40 - MSG_EOR = 0x80 - MSG_ERRQUEUE = 0x2000 - MSG_FASTOPEN = 0x20000000 - MSG_FIN = 0x200 - MSG_MORE = 0x8000 - MSG_NOSIGNAL = 0x4000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_PROXY = 0x10 - MSG_RST = 0x1000 - MSG_SYN = 0x400 - MSG_TRUNC = 0x20 - MSG_TRYHARD = 0x4 - MSG_WAITALL = 0x100 - MSG_WAITFORONE = 0x10000 - MS_ACTIVE = 0x40000000 - MS_ASYNC = 0x1 - MS_BIND = 0x1000 - MS_BORN = 0x20000000 - MS_DIRSYNC = 0x80 - MS_INVALIDATE = 0x2 - MS_I_VERSION = 0x800000 - MS_KERNMOUNT = 0x400000 - MS_LAZYTIME = 0x2000000 - MS_MANDLOCK = 0x40 - MS_MGC_MSK = 0xffff0000 - MS_MGC_VAL = 0xc0ed0000 - MS_MOVE = 0x2000 - MS_NOATIME = 0x400 - MS_NODEV = 0x4 - MS_NODIRATIME = 0x800 - MS_NOEXEC = 0x8 - MS_NOREMOTELOCK = 0x8000000 - MS_NOSEC = 0x10000000 - MS_NOSUID = 0x2 - MS_NOUSER = -0x80000000 - MS_POSIXACL = 0x10000 - MS_PRIVATE = 0x40000 - MS_RDONLY = 0x1 - MS_REC = 0x4000 - MS_RELATIME = 0x200000 - MS_REMOUNT = 0x20 - MS_RMT_MASK = 0x2800051 - MS_SHARED = 0x100000 - MS_SILENT = 0x8000 - MS_SLAVE = 0x80000 - MS_STRICTATIME = 0x1000000 - MS_SYNC = 0x4 - MS_SYNCHRONOUS = 0x10 - MS_UNBINDABLE = 0x20000 - MS_VERBOSE = 0x8000 - NAME_MAX = 0xff - NETLINK_ADD_MEMBERSHIP = 0x1 - NETLINK_AUDIT = 0x9 - NETLINK_BROADCAST_ERROR = 0x4 - NETLINK_CAP_ACK = 0xa - NETLINK_CONNECTOR = 0xb - NETLINK_CRYPTO = 0x15 - NETLINK_DNRTMSG = 0xe - NETLINK_DROP_MEMBERSHIP = 0x2 - NETLINK_ECRYPTFS = 0x13 - NETLINK_FIB_LOOKUP = 0xa - NETLINK_FIREWALL = 0x3 - NETLINK_GENERIC = 0x10 - NETLINK_INET_DIAG = 0x4 - NETLINK_IP6_FW = 0xd - NETLINK_ISCSI = 0x8 - NETLINK_KOBJECT_UEVENT = 0xf - NETLINK_LISTEN_ALL_NSID = 0x8 - NETLINK_LIST_MEMBERSHIPS = 0x9 - NETLINK_NETFILTER = 0xc - NETLINK_NFLOG = 0x5 - NETLINK_NO_ENOBUFS = 0x5 - NETLINK_PKTINFO = 0x3 - NETLINK_RDMA = 0x14 - NETLINK_ROUTE = 0x0 - NETLINK_RX_RING = 0x6 - NETLINK_SCSITRANSPORT = 0x12 - NETLINK_SELINUX = 0x7 - NETLINK_SOCK_DIAG = 0x4 - NETLINK_TX_RING = 0x7 - NETLINK_UNUSED = 0x1 - NETLINK_USERSOCK = 0x2 - NETLINK_XFRM = 0x6 - NL0 = 0x0 - NL1 = 0x100 - NL2 = 0x200 - NL3 = 0x300 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - NLDLY = 0x300 - NLMSG_ALIGNTO = 0x4 - NLMSG_DONE = 0x3 - NLMSG_ERROR = 0x2 - NLMSG_HDRLEN = 0x10 - NLMSG_MIN_TYPE = 0x10 - NLMSG_NOOP = 0x1 - NLMSG_OVERRUN = 0x4 - NLM_F_ACK = 0x4 - NLM_F_APPEND = 0x800 - NLM_F_ATOMIC = 0x400 - NLM_F_CREATE = 0x400 - NLM_F_DUMP = 0x300 - NLM_F_DUMP_FILTERED = 0x20 - NLM_F_DUMP_INTR = 0x10 - NLM_F_ECHO = 0x8 - NLM_F_EXCL = 0x200 - NLM_F_MATCH = 0x200 - NLM_F_MULTI = 0x2 - NLM_F_REPLACE = 0x100 - NLM_F_REQUEST = 0x1 - NLM_F_ROOT = 0x100 - NOFLSH = 0x80000000 - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x4 - ONLCR = 0x2 - ONLRET = 0x20 - ONOCR = 0x10 - OPOST = 0x1 - O_ACCMODE = 0x3 - O_APPEND = 0x400 - O_ASYNC = 0x2000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x40 - O_DIRECT = 0x20000 - O_DIRECTORY = 0x4000 - O_DSYNC = 0x1000 - O_EXCL = 0x80 - O_FSYNC = 0x101000 - O_LARGEFILE = 0x0 - O_NDELAY = 0x800 - O_NOATIME = 0x40000 - O_NOCTTY = 0x100 - O_NOFOLLOW = 0x8000 - O_NONBLOCK = 0x800 - O_PATH = 0x200000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x101000 - O_SYNC = 0x101000 - O_TMPFILE = 0x404000 - O_TRUNC = 0x200 - O_WRONLY = 0x1 - PACKET_ADD_MEMBERSHIP = 0x1 - PACKET_AUXDATA = 0x8 - PACKET_BROADCAST = 0x1 - PACKET_COPY_THRESH = 0x7 - PACKET_DROP_MEMBERSHIP = 0x2 - PACKET_FANOUT = 0x12 - PACKET_FANOUT_CBPF = 0x6 - PACKET_FANOUT_CPU = 0x2 - PACKET_FANOUT_DATA = 0x16 - PACKET_FANOUT_EBPF = 0x7 - PACKET_FANOUT_FLAG_DEFRAG = 0x8000 - PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 - PACKET_FANOUT_HASH = 0x0 - PACKET_FANOUT_LB = 0x1 - PACKET_FANOUT_QM = 0x5 - PACKET_FANOUT_RND = 0x4 - PACKET_FANOUT_ROLLOVER = 0x3 - PACKET_FASTROUTE = 0x6 - PACKET_HDRLEN = 0xb - PACKET_HOST = 0x0 - PACKET_KERNEL = 0x7 - PACKET_LOOPBACK = 0x5 - PACKET_LOSS = 0xe - PACKET_MR_ALLMULTI = 0x2 - PACKET_MR_MULTICAST = 0x0 - PACKET_MR_PROMISC = 0x1 - PACKET_MR_UNICAST = 0x3 - PACKET_MULTICAST = 0x2 - PACKET_ORIGDEV = 0x9 - PACKET_OTHERHOST = 0x3 - PACKET_OUTGOING = 0x4 - PACKET_QDISC_BYPASS = 0x14 - PACKET_RECV_OUTPUT = 0x3 - PACKET_RESERVE = 0xc - PACKET_ROLLOVER_STATS = 0x15 - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - PACKET_TIMESTAMP = 0x11 - PACKET_TX_HAS_OFF = 0x13 - PACKET_TX_RING = 0xd - PACKET_TX_TIMESTAMP = 0x10 - PACKET_USER = 0x6 - PACKET_VERSION = 0xa - PACKET_VNET_HDR = 0xf - PARENB = 0x1000 - PARITY_CRC16_PR0 = 0x2 - PARITY_CRC16_PR0_CCITT = 0x4 - PARITY_CRC16_PR1 = 0x3 - PARITY_CRC16_PR1_CCITT = 0x5 - PARITY_CRC32_PR0_CCITT = 0x6 - PARITY_CRC32_PR1_CCITT = 0x7 - PARITY_DEFAULT = 0x0 - PARITY_NONE = 0x1 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PERF_EVENT_IOC_DISABLE = 0x20002401 - PERF_EVENT_IOC_ENABLE = 0x20002400 - PERF_EVENT_IOC_ID = 0x40082407 - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 - PERF_EVENT_IOC_PERIOD = 0x80082404 - PERF_EVENT_IOC_REFRESH = 0x20002402 - PERF_EVENT_IOC_RESET = 0x20002403 - PERF_EVENT_IOC_SET_BPF = 0x80042408 - PERF_EVENT_IOC_SET_FILTER = 0x80082406 - PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_GROWSDOWN = 0x1000000 - PROT_GROWSUP = 0x2000000 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_SAO = 0x10 - PROT_WRITE = 0x2 - PR_CAPBSET_DROP = 0x18 - PR_CAPBSET_READ = 0x17 - PR_CAP_AMBIENT = 0x2f - PR_CAP_AMBIENT_CLEAR_ALL = 0x4 - PR_CAP_AMBIENT_IS_SET = 0x1 - PR_CAP_AMBIENT_LOWER = 0x3 - PR_CAP_AMBIENT_RAISE = 0x2 - PR_ENDIAN_BIG = 0x0 - PR_ENDIAN_LITTLE = 0x1 - PR_ENDIAN_PPC_LITTLE = 0x2 - PR_FPEMU_NOPRINT = 0x1 - PR_FPEMU_SIGFPE = 0x2 - PR_FP_EXC_ASYNC = 0x2 - PR_FP_EXC_DISABLED = 0x0 - PR_FP_EXC_DIV = 0x10000 - PR_FP_EXC_INV = 0x100000 - PR_FP_EXC_NONRECOV = 0x1 - PR_FP_EXC_OVF = 0x20000 - PR_FP_EXC_PRECISE = 0x3 - PR_FP_EXC_RES = 0x80000 - PR_FP_EXC_SW_ENABLE = 0x80 - PR_FP_EXC_UND = 0x40000 - PR_FP_MODE_FR = 0x1 - PR_FP_MODE_FRE = 0x2 - PR_GET_CHILD_SUBREAPER = 0x25 - PR_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - PR_GET_FP_MODE = 0x2e - PR_GET_KEEPCAPS = 0x7 - PR_GET_NAME = 0x10 - PR_GET_NO_NEW_PRIVS = 0x27 - PR_GET_PDEATHSIG = 0x2 - PR_GET_SECCOMP = 0x15 - PR_GET_SECUREBITS = 0x1b - PR_GET_THP_DISABLE = 0x2a - PR_GET_TID_ADDRESS = 0x28 - PR_GET_TIMERSLACK = 0x1e - PR_GET_TIMING = 0xd - PR_GET_TSC = 0x19 - PR_GET_UNALIGN = 0x5 - PR_MCE_KILL = 0x21 - PR_MCE_KILL_CLEAR = 0x0 - PR_MCE_KILL_DEFAULT = 0x2 - PR_MCE_KILL_EARLY = 0x1 - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_SET_CHILD_SUBREAPER = 0x24 - PR_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - PR_SET_FP_MODE = 0x2d - PR_SET_KEEPCAPS = 0x8 - PR_SET_MM = 0x23 - PR_SET_MM_ARG_END = 0x9 - PR_SET_MM_ARG_START = 0x8 - PR_SET_MM_AUXV = 0xc - PR_SET_MM_BRK = 0x7 - PR_SET_MM_END_CODE = 0x2 - PR_SET_MM_END_DATA = 0x4 - PR_SET_MM_ENV_END = 0xb - PR_SET_MM_ENV_START = 0xa - PR_SET_MM_EXE_FILE = 0xd - PR_SET_MM_MAP = 0xe - PR_SET_MM_MAP_SIZE = 0xf - PR_SET_MM_START_BRK = 0x6 - PR_SET_MM_START_CODE = 0x1 - PR_SET_MM_START_DATA = 0x3 - PR_SET_MM_START_STACK = 0x5 - PR_SET_NAME = 0xf - PR_SET_NO_NEW_PRIVS = 0x26 - PR_SET_PDEATHSIG = 0x1 - PR_SET_PTRACER = 0x59616d61 - PR_SET_PTRACER_ANY = -0x1 - PR_SET_SECCOMP = 0x16 - PR_SET_SECUREBITS = 0x1c - PR_SET_THP_DISABLE = 0x29 - PR_SET_TIMERSLACK = 0x1d - PR_SET_TIMING = 0xe - PR_SET_TSC = 0x1a - PR_SET_UNALIGN = 0x6 - PR_TASK_PERF_EVENTS_DISABLE = 0x1f - PR_TASK_PERF_EVENTS_ENABLE = 0x20 - PR_TIMING_STATISTICAL = 0x0 - PR_TIMING_TIMESTAMP = 0x1 - PR_TSC_ENABLE = 0x1 - PR_TSC_SIGSEGV = 0x2 - PR_UNALIGN_NOPRINT = 0x1 - PR_UNALIGN_SIGBUS = 0x2 - PTRACE_ATTACH = 0x10 - PTRACE_CONT = 0x7 - PTRACE_DETACH = 0x11 - PTRACE_EVENT_CLONE = 0x3 - PTRACE_EVENT_EXEC = 0x4 - PTRACE_EVENT_EXIT = 0x6 - PTRACE_EVENT_FORK = 0x1 - PTRACE_EVENT_SECCOMP = 0x7 - PTRACE_EVENT_STOP = 0x80 - PTRACE_EVENT_VFORK = 0x2 - PTRACE_EVENT_VFORK_DONE = 0x5 - PTRACE_GETEVENTMSG = 0x4201 - PTRACE_GETEVRREGS = 0x14 - PTRACE_GETFPREGS = 0xe - PTRACE_GETREGS = 0xc - PTRACE_GETREGS64 = 0x16 - PTRACE_GETREGSET = 0x4204 - PTRACE_GETSIGINFO = 0x4202 - PTRACE_GETSIGMASK = 0x420a - PTRACE_GETVRREGS = 0x12 - PTRACE_GETVSRREGS = 0x1b - PTRACE_GET_DEBUGREG = 0x19 - PTRACE_INTERRUPT = 0x4207 - PTRACE_KILL = 0x8 - PTRACE_LISTEN = 0x4208 - PTRACE_O_EXITKILL = 0x100000 - PTRACE_O_MASK = 0x3000ff - PTRACE_O_SUSPEND_SECCOMP = 0x200000 - PTRACE_O_TRACECLONE = 0x8 - PTRACE_O_TRACEEXEC = 0x10 - PTRACE_O_TRACEEXIT = 0x40 - PTRACE_O_TRACEFORK = 0x2 - PTRACE_O_TRACESECCOMP = 0x80 - PTRACE_O_TRACESYSGOOD = 0x1 - PTRACE_O_TRACEVFORK = 0x4 - PTRACE_O_TRACEVFORKDONE = 0x20 - PTRACE_PEEKDATA = 0x2 - PTRACE_PEEKSIGINFO = 0x4209 - PTRACE_PEEKSIGINFO_SHARED = 0x1 - PTRACE_PEEKTEXT = 0x1 - PTRACE_PEEKUSR = 0x3 - PTRACE_POKEDATA = 0x5 - PTRACE_POKETEXT = 0x4 - PTRACE_POKEUSR = 0x6 - PTRACE_SECCOMP_GET_FILTER = 0x420c - PTRACE_SEIZE = 0x4206 - PTRACE_SETEVRREGS = 0x15 - PTRACE_SETFPREGS = 0xf - PTRACE_SETOPTIONS = 0x4200 - PTRACE_SETREGS = 0xd - PTRACE_SETREGS64 = 0x17 - PTRACE_SETREGSET = 0x4205 - PTRACE_SETSIGINFO = 0x4203 - PTRACE_SETSIGMASK = 0x420b - PTRACE_SETVRREGS = 0x13 - PTRACE_SETVSRREGS = 0x1c - PTRACE_SET_DEBUGREG = 0x1a - PTRACE_SINGLEBLOCK = 0x100 - PTRACE_SINGLESTEP = 0x9 - PTRACE_SYSCALL = 0x18 - PTRACE_TRACEME = 0x0 - PT_CCR = 0x26 - PT_CTR = 0x23 - PT_DAR = 0x29 - PT_DSCR = 0x2c - PT_DSISR = 0x2a - PT_FPR0 = 0x30 - PT_FPSCR = 0x50 - PT_LNK = 0x24 - PT_MSR = 0x21 - PT_NIP = 0x20 - PT_ORIG_R3 = 0x22 - PT_R0 = 0x0 - PT_R1 = 0x1 - PT_R10 = 0xa - PT_R11 = 0xb - PT_R12 = 0xc - PT_R13 = 0xd - PT_R14 = 0xe - PT_R15 = 0xf - PT_R16 = 0x10 - PT_R17 = 0x11 - PT_R18 = 0x12 - PT_R19 = 0x13 - PT_R2 = 0x2 - PT_R20 = 0x14 - PT_R21 = 0x15 - PT_R22 = 0x16 - PT_R23 = 0x17 - PT_R24 = 0x18 - PT_R25 = 0x19 - PT_R26 = 0x1a - PT_R27 = 0x1b - PT_R28 = 0x1c - PT_R29 = 0x1d - PT_R3 = 0x3 - PT_R30 = 0x1e - PT_R31 = 0x1f - PT_R4 = 0x4 - PT_R5 = 0x5 - PT_R6 = 0x6 - PT_R7 = 0x7 - PT_R8 = 0x8 - PT_R9 = 0x9 - PT_REGS_COUNT = 0x2c - PT_RESULT = 0x2b - PT_SOFTE = 0x27 - PT_TRAP = 0x28 - PT_VR0 = 0x52 - PT_VRSAVE = 0x94 - PT_VSCR = 0x93 - PT_VSR0 = 0x96 - PT_VSR31 = 0xd4 - PT_XER = 0x25 - RLIMIT_AS = 0x9 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_LOCKS = 0xa - RLIMIT_MEMLOCK = 0x8 - RLIMIT_MSGQUEUE = 0xc - RLIMIT_NICE = 0xd - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x6 - RLIMIT_RSS = 0x5 - RLIMIT_RTPRIO = 0xe - RLIMIT_RTTIME = 0xf - RLIMIT_SIGPENDING = 0xb - RLIMIT_STACK = 0x3 - RLIM_INFINITY = -0x1 - RTAX_ADVMSS = 0x8 - RTAX_CC_ALGO = 0x10 - RTAX_CWND = 0x7 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_MASK = 0xf - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0x10 - RTAX_MTU = 0x2 - RTAX_QUICKACK = 0xf - RTAX_REORDERING = 0x9 - RTAX_RTO_MIN = 0xd - RTAX_RTT = 0x4 - RTAX_RTTVAR = 0x5 - RTAX_SSTHRESH = 0x6 - RTAX_UNSPEC = 0x0 - RTAX_WINDOW = 0x3 - RTA_ALIGNTO = 0x4 - RTA_MAX = 0x19 - RTCF_DIRECTSRC = 0x4000000 - RTCF_DOREDIRECT = 0x1000000 - RTCF_LOG = 0x2000000 - RTCF_MASQ = 0x400000 - RTCF_NAT = 0x800000 - RTCF_VALVE = 0x200000 - RTF_ADDRCLASSMASK = 0xf8000000 - RTF_ADDRCONF = 0x40000 - RTF_ALLONLINK = 0x20000 - RTF_BROADCAST = 0x10000000 - RTF_CACHE = 0x1000000 - RTF_DEFAULT = 0x10000 - RTF_DYNAMIC = 0x10 - RTF_FLOW = 0x2000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_INTERFACE = 0x40000000 - RTF_IRTT = 0x100 - RTF_LINKRT = 0x100000 - RTF_LOCAL = 0x80000000 - RTF_MODIFIED = 0x20 - RTF_MSS = 0x40 - RTF_MTU = 0x40 - RTF_MULTICAST = 0x20000000 - RTF_NAT = 0x8000000 - RTF_NOFORWARD = 0x1000 - RTF_NONEXTHOP = 0x200000 - RTF_NOPMTUDISC = 0x4000 - RTF_POLICY = 0x4000000 - RTF_REINSTATE = 0x8 - RTF_REJECT = 0x200 - RTF_STATIC = 0x400 - RTF_THROW = 0x2000 - RTF_UP = 0x1 - RTF_WINDOW = 0x80 - RTF_XRESOLVE = 0x800 - RTM_BASE = 0x10 - RTM_DELACTION = 0x31 - RTM_DELADDR = 0x15 - RTM_DELADDRLABEL = 0x49 - RTM_DELLINK = 0x11 - RTM_DELMDB = 0x55 - RTM_DELNEIGH = 0x1d - RTM_DELNSID = 0x59 - RTM_DELQDISC = 0x25 - RTM_DELROUTE = 0x19 - RTM_DELRULE = 0x21 - RTM_DELTCLASS = 0x29 - RTM_DELTFILTER = 0x2d - RTM_F_CLONED = 0x200 - RTM_F_EQUALIZE = 0x400 - RTM_F_LOOKUP_TABLE = 0x1000 - RTM_F_NOTIFY = 0x100 - RTM_F_PREFIX = 0x800 - RTM_GETACTION = 0x32 - RTM_GETADDR = 0x16 - RTM_GETADDRLABEL = 0x4a - RTM_GETANYCAST = 0x3e - RTM_GETDCB = 0x4e - RTM_GETLINK = 0x12 - RTM_GETMDB = 0x56 - RTM_GETMULTICAST = 0x3a - RTM_GETNEIGH = 0x1e - RTM_GETNEIGHTBL = 0x42 - RTM_GETNETCONF = 0x52 - RTM_GETNSID = 0x5a - RTM_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETSTATS = 0x5e - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_MAX = 0x5f - RTM_NEWACTION = 0x30 - RTM_NEWADDR = 0x14 - RTM_NEWADDRLABEL = 0x48 - RTM_NEWLINK = 0x10 - RTM_NEWMDB = 0x54 - RTM_NEWNDUSEROPT = 0x44 - RTM_NEWNEIGH = 0x1c - RTM_NEWNEIGHTBL = 0x40 - RTM_NEWNETCONF = 0x50 - RTM_NEWNSID = 0x58 - RTM_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWSTATS = 0x5c - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NR_FAMILIES = 0x14 - RTM_NR_MSGTYPES = 0x50 - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTNH_ALIGNTO = 0x4 - RTNH_COMPARE_MASK = 0x19 - RTNH_F_DEAD = 0x1 - RTNH_F_LINKDOWN = 0x10 - RTNH_F_OFFLOAD = 0x8 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTN_MAX = 0xb - RTPROT_BABEL = 0x2a - RTPROT_BIRD = 0xc - RTPROT_BOOT = 0x3 - RTPROT_DHCP = 0x10 - RTPROT_DNROUTED = 0xd - RTPROT_GATED = 0x8 - RTPROT_KERNEL = 0x2 - RTPROT_MROUTED = 0x11 - RTPROT_MRT = 0xa - RTPROT_NTK = 0xf - RTPROT_RA = 0x9 - RTPROT_REDIRECT = 0x1 - RTPROT_STATIC = 0x4 - RTPROT_UNSPEC = 0x0 - RTPROT_XORP = 0xe - RTPROT_ZEBRA = 0xb - RT_CLASS_DEFAULT = 0xfd - RT_CLASS_LOCAL = 0xff - RT_CLASS_MAIN = 0xfe - RT_CLASS_MAX = 0xff - RT_CLASS_UNSPEC = 0x0 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_CREDENTIALS = 0x2 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPNS = 0x23 - SCM_WIFI_STATUS = 0x29 - SECCOMP_MODE_DISABLED = 0x0 - SECCOMP_MODE_FILTER = 0x2 - SECCOMP_MODE_STRICT = 0x1 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCATMARK = 0x8905 - SIOCBONDCHANGEACTIVE = 0x8995 - SIOCBONDENSLAVE = 0x8990 - SIOCBONDINFOQUERY = 0x8994 - SIOCBONDRELEASE = 0x8991 - SIOCBONDSETHWADDR = 0x8992 - SIOCBONDSLAVEINFOQUERY = 0x8993 - SIOCBRADDBR = 0x89a0 - SIOCBRADDIF = 0x89a2 - SIOCBRDELBR = 0x89a1 - SIOCBRDELIF = 0x89a3 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCETHTOOL = 0x8946 - SIOCGARP = 0x8954 - SIOCGHWTSTAMP = 0x89b1 - SIOCGIFADDR = 0x8915 - SIOCGIFBR = 0x8940 - SIOCGIFBRDADDR = 0x8919 - SIOCGIFCONF = 0x8912 - SIOCGIFCOUNT = 0x8938 - SIOCGIFDSTADDR = 0x8917 - SIOCGIFENCAP = 0x8925 - SIOCGIFFLAGS = 0x8913 - SIOCGIFHWADDR = 0x8927 - SIOCGIFINDEX = 0x8933 - SIOCGIFMAP = 0x8970 - SIOCGIFMEM = 0x891f - SIOCGIFMETRIC = 0x891d - SIOCGIFMTU = 0x8921 - SIOCGIFNAME = 0x8910 - SIOCGIFNETMASK = 0x891b - SIOCGIFPFLAGS = 0x8935 - SIOCGIFSLAVE = 0x8929 - SIOCGIFTXQLEN = 0x8942 - SIOCGIFVLAN = 0x8982 - SIOCGMIIPHY = 0x8947 - SIOCGMIIREG = 0x8948 - SIOCGPGRP = 0x8904 - SIOCGRARP = 0x8961 - SIOCGSKNS = 0x894c - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCINQ = 0x4004667f - SIOCOUTQ = 0x40047473 - SIOCOUTQNSD = 0x894b - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - SIOCSHWTSTAMP = 0x89b0 - SIOCSIFADDR = 0x8916 - SIOCSIFBR = 0x8941 - SIOCSIFBRDADDR = 0x891a - SIOCSIFDSTADDR = 0x8918 - SIOCSIFENCAP = 0x8926 - SIOCSIFFLAGS = 0x8914 - SIOCSIFHWADDR = 0x8924 - SIOCSIFHWBROADCAST = 0x8937 - SIOCSIFLINK = 0x8911 - SIOCSIFMAP = 0x8971 - SIOCSIFMEM = 0x8920 - SIOCSIFMETRIC = 0x891e - SIOCSIFMTU = 0x8922 - SIOCSIFNAME = 0x8923 - SIOCSIFNETMASK = 0x891c - SIOCSIFPFLAGS = 0x8934 - SIOCSIFSLAVE = 0x8930 - SIOCSIFTXQLEN = 0x8943 - SIOCSIFVLAN = 0x8983 - SIOCSMIIREG = 0x8949 - SIOCSPGRP = 0x8902 - SIOCSRARP = 0x8962 - SIOCWANDEV = 0x894a - SOCK_CLOEXEC = 0x80000 - SOCK_DCCP = 0x6 - SOCK_DGRAM = 0x2 - SOCK_IOC_TYPE = 0x89 - SOCK_NONBLOCK = 0x800 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_AAL = 0x109 - SOL_ALG = 0x117 - SOL_ATM = 0x108 - SOL_CAIF = 0x116 - SOL_CAN_BASE = 0x64 - SOL_DCCP = 0x10d - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_IUCV = 0x115 - SOL_KCM = 0x119 - SOL_LLC = 0x10c - SOL_NETBEUI = 0x10b - SOL_NETLINK = 0x10e - SOL_NFC = 0x118 - SOL_PACKET = 0x107 - SOL_PNPIPE = 0x113 - SOL_PPPOL2TP = 0x111 - SOL_RAW = 0xff - SOL_RDS = 0x114 - SOL_RXRPC = 0x110 - SOL_SOCKET = 0x1 - SOL_TCP = 0x6 - SOL_TIPC = 0x10f - SOL_X25 = 0x106 - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_BPF = 0x32 - SO_ATTACH_FILTER = 0x1a - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x6 - SO_BSDCOMPAT = 0xe - SO_BUSY_POLL = 0x2e - SO_CNX_ADVICE = 0x35 - SO_DEBUG = 0x1 - SO_DETACH_BPF = 0x1b - SO_DETACH_FILTER = 0x1b - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_ERROR = 0x4 - SO_GET_FILTER = 0x1a - SO_INCOMING_CPU = 0x31 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_NOFCS = 0x2b - SO_NO_CHECK = 0xb - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x14 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x15 - SO_PEERNAME = 0x1c - SO_PEERSEC = 0x1f - SO_PRIORITY = 0xc - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x10 - SO_RCVTIMEO = 0x12 - SO_REUSEADDR = 0x2 - SO_REUSEPORT = 0xf - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x11 - SO_SNDTIMEO = 0x13 - SO_TIMESTAMP = 0x1d - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TYPE = 0x3 - SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 - SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 - SO_VM_SOCKETS_BUFFER_SIZE = 0x0 - SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 - SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 - SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 - SO_VM_SOCKETS_TRUSTED = 0x5 - SO_WIFI_STATUS = 0x29 - SPLICE_F_GIFT = 0x8 - SPLICE_F_MORE = 0x4 - SPLICE_F_MOVE = 0x1 - SPLICE_F_NONBLOCK = 0x2 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x400 - TAB2 = 0x800 - TAB3 = 0xc00 - TABDLY = 0xc00 - TASKSTATS_CMD_ATTR_MAX = 0x4 - TASKSTATS_CMD_MAX = 0x2 - TASKSTATS_GENL_NAME = "TASKSTATS" - TASKSTATS_GENL_VERSION = 0x1 - TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x8 - TCFLSH = 0x2000741f - TCGETA = 0x40147417 - TCGETS = 0x402c7413 - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_CC_INFO = 0x1a - TCP_CONGESTION = 0xd - TCP_COOKIE_IN_ALWAYS = 0x1 - TCP_COOKIE_MAX = 0x10 - TCP_COOKIE_MIN = 0x8 - TCP_COOKIE_OUT_NEVER = 0x2 - TCP_COOKIE_PAIR_SIZE = 0x20 - TCP_COOKIE_TRANSACTIONS = 0xf - TCP_CORK = 0x3 - TCP_DEFER_ACCEPT = 0x9 - TCP_FASTOPEN = 0x17 - TCP_INFO = 0xb - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x4 - TCP_KEEPINTVL = 0x5 - TCP_LINGER2 = 0x8 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0xe - TCP_MD5SIG_MAXKEYLEN = 0x50 - TCP_MSS = 0x200 - TCP_MSS_DEFAULT = 0x218 - TCP_MSS_DESIRED = 0x4c4 - TCP_NODELAY = 0x1 - TCP_NOTSENT_LOWAT = 0x19 - TCP_QUEUE_SEQ = 0x15 - TCP_QUICKACK = 0xc - TCP_REPAIR = 0x13 - TCP_REPAIR_OPTIONS = 0x16 - TCP_REPAIR_QUEUE = 0x14 - TCP_REPAIR_WINDOW = 0x1d - TCP_SAVED_SYN = 0x1c - TCP_SAVE_SYN = 0x1b - TCP_SYNCNT = 0x7 - TCP_S_DATA_IN = 0x4 - TCP_S_DATA_OUT = 0x8 - TCP_THIN_DUPACK = 0x11 - TCP_THIN_LINEAR_TIMEOUTS = 0x10 - TCP_TIMESTAMP = 0x18 - TCP_USER_TIMEOUT = 0x12 - TCP_WINDOW_CLAMP = 0xa - TCSAFLUSH = 0x2 - TCSBRK = 0x2000741d - TCSBRKP = 0x5425 - TCSETA = 0x80147418 - TCSETAF = 0x8014741c - TCSETAW = 0x80147419 - TCSETS = 0x802c7414 - TCSETSF = 0x802c7416 - TCSETSW = 0x802c7415 - TCXONC = 0x2000741e - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x40045432 - TIOCGETC = 0x40067412 - TIOCGETD = 0x5424 - TIOCGETP = 0x40067408 - TIOCGEXCL = 0x40045440 - TIOCGICOUNT = 0x545d - TIOCGLCKTRMIOS = 0x5456 - TIOCGLTC = 0x40067474 - TIOCGPGRP = 0x40047477 - TIOCGPKT = 0x40045438 - TIOCGPTLCK = 0x40045439 - TIOCGPTN = 0x40045430 - TIOCGRS485 = 0x542e - TIOCGSERIAL = 0x541e - TIOCGSID = 0x5429 - TIOCGSOFTCAR = 0x5419 - TIOCGWINSZ = 0x40087468 - TIOCINQ = 0x4004667f - TIOCLINUX = 0x541c - TIOCMBIC = 0x5417 - TIOCMBIS = 0x5416 - TIOCMGET = 0x5415 - TIOCMIWAIT = 0x545c - TIOCMSET = 0x5418 - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_LOOP = 0x8000 - TIOCM_OUT1 = 0x2000 - TIOCM_OUT2 = 0x4000 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x5422 - TIOCNXCL = 0x540d - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x5420 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x540e - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSER_TEMT = 0x1 - TIOCSETC = 0x80067411 - TIOCSETD = 0x5423 - TIOCSETN = 0x8006740a - TIOCSETP = 0x80067409 - TIOCSIG = 0x80045436 - TIOCSLCKTRMIOS = 0x5457 - TIOCSLTC = 0x80067475 - TIOCSPGRP = 0x80047476 - TIOCSPTLCK = 0x80045431 - TIOCSRS485 = 0x542f - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x541a - TIOCSTART = 0x2000746e - TIOCSTI = 0x5412 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCVHANGUP = 0x5437 - TOSTOP = 0x400000 - TS_COMM_LEN = 0x20 - TUNATTACHFILTER = 0x801054d5 - TUNDETACHFILTER = 0x801054d6 - TUNGETFEATURES = 0x400454cf - TUNGETFILTER = 0x401054db - TUNGETIFF = 0x400454d2 - TUNGETSNDBUF = 0x400454d3 - TUNGETVNETBE = 0x400454df - TUNGETVNETHDRSZ = 0x400454d7 - TUNGETVNETLE = 0x400454dd - TUNSETDEBUG = 0x800454c9 - TUNSETGROUP = 0x800454ce - TUNSETIFF = 0x800454ca - TUNSETIFINDEX = 0x800454da - TUNSETLINK = 0x800454cd - TUNSETNOCSUM = 0x800454c8 - TUNSETOFFLOAD = 0x800454d0 - TUNSETOWNER = 0x800454cc - TUNSETPERSIST = 0x800454cb - TUNSETQUEUE = 0x800454d9 - TUNSETSNDBUF = 0x800454d4 - TUNSETTXFILTER = 0x800454d1 - TUNSETVNETBE = 0x800454de - TUNSETVNETHDRSZ = 0x800454d8 - TUNSETVNETLE = 0x800454dc - UMOUNT_NOFOLLOW = 0x8 - VDISCARD = 0x10 - VEOF = 0x4 - VEOL = 0x6 - VEOL2 = 0x8 - VERASE = 0x2 - VINTR = 0x0 - VKILL = 0x3 - VLNEXT = 0xf - VMADDR_CID_ANY = 0xffffffff - VMADDR_CID_HOST = 0x2 - VMADDR_CID_HYPERVISOR = 0x0 - VMADDR_CID_RESERVED = 0x1 - VMADDR_PORT_ANY = 0xffffffff - VMIN = 0x5 - VM_SOCKETS_INVALID_VERSION = 0xffffffff - VQUIT = 0x1 - VREPRINT = 0xb - VSTART = 0xd - VSTOP = 0xe - VSUSP = 0xc - VSWTC = 0x9 - VT0 = 0x0 - VT1 = 0x10000 - VTDLY = 0x10000 - VTIME = 0x7 - VWERASE = 0xa - WALL = 0x40000000 - WCLONE = 0x80000000 - WCONTINUED = 0x8 - WEXITED = 0x4 - WNOHANG = 0x1 - WNOTHREAD = 0x20000000 - WNOWAIT = 0x1000000 - WORDSIZE = 0x40 - WSTOPPED = 0x2 - WUNTRACED = 0x2 - XATTR_CREATE = 0x1 - XATTR_REPLACE = 0x2 - XCASE = 0x4000 - XTABS = 0xc00 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x62) - EADDRNOTAVAIL = syscall.Errno(0x63) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x61) - EAGAIN = syscall.Errno(0xb) - EALREADY = syscall.Errno(0x72) - EBADE = syscall.Errno(0x34) - EBADF = syscall.Errno(0x9) - EBADFD = syscall.Errno(0x4d) - EBADMSG = syscall.Errno(0x4a) - EBADR = syscall.Errno(0x35) - EBADRQC = syscall.Errno(0x38) - EBADSLT = syscall.Errno(0x39) - EBFONT = syscall.Errno(0x3b) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x7d) - ECHILD = syscall.Errno(0xa) - ECHRNG = syscall.Errno(0x2c) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x67) - ECONNREFUSED = syscall.Errno(0x6f) - ECONNRESET = syscall.Errno(0x68) - EDEADLK = syscall.Errno(0x23) - EDEADLOCK = syscall.Errno(0x3a) - EDESTADDRREQ = syscall.Errno(0x59) - EDOM = syscall.Errno(0x21) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x7a) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EHOSTDOWN = syscall.Errno(0x70) - EHOSTUNREACH = syscall.Errno(0x71) - EHWPOISON = syscall.Errno(0x85) - EIDRM = syscall.Errno(0x2b) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x73) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x6a) - EISDIR = syscall.Errno(0x15) - EISNAM = syscall.Errno(0x78) - EKEYEXPIRED = syscall.Errno(0x7f) - EKEYREJECTED = syscall.Errno(0x81) - EKEYREVOKED = syscall.Errno(0x80) - EL2HLT = syscall.Errno(0x33) - EL2NSYNC = syscall.Errno(0x2d) - EL3HLT = syscall.Errno(0x2e) - EL3RST = syscall.Errno(0x2f) - ELIBACC = syscall.Errno(0x4f) - ELIBBAD = syscall.Errno(0x50) - ELIBEXEC = syscall.Errno(0x53) - ELIBMAX = syscall.Errno(0x52) - ELIBSCN = syscall.Errno(0x51) - ELNRNG = syscall.Errno(0x30) - ELOOP = syscall.Errno(0x28) - EMEDIUMTYPE = syscall.Errno(0x7c) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x5a) - EMULTIHOP = syscall.Errno(0x48) - ENAMETOOLONG = syscall.Errno(0x24) - ENAVAIL = syscall.Errno(0x77) - ENETDOWN = syscall.Errno(0x64) - ENETRESET = syscall.Errno(0x66) - ENETUNREACH = syscall.Errno(0x65) - ENFILE = syscall.Errno(0x17) - ENOANO = syscall.Errno(0x37) - ENOBUFS = syscall.Errno(0x69) - ENOCSI = syscall.Errno(0x32) - ENODATA = syscall.Errno(0x3d) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOKEY = syscall.Errno(0x7e) - ENOLCK = syscall.Errno(0x25) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x7b) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x2a) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x5c) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x26) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x6b) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x27) - ENOTNAM = syscall.Errno(0x76) - ENOTRECOVERABLE = syscall.Errno(0x83) - ENOTSOCK = syscall.Errno(0x58) - ENOTSUP = syscall.Errno(0x5f) - ENOTTY = syscall.Errno(0x19) - ENOTUNIQ = syscall.Errno(0x4c) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x5f) - EOVERFLOW = syscall.Errno(0x4b) - EOWNERDEAD = syscall.Errno(0x82) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x60) - EPIPE = syscall.Errno(0x20) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x5d) - EPROTOTYPE = syscall.Errno(0x5b) - ERANGE = syscall.Errno(0x22) - EREMCHG = syscall.Errno(0x4e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x79) - ERESTART = syscall.Errno(0x55) - ERFKILL = syscall.Errno(0x84) - EROFS = syscall.Errno(0x1e) - ESHUTDOWN = syscall.Errno(0x6c) - ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x74) - ESTRPIPE = syscall.Errno(0x56) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x6e) - ETOOMANYREFS = syscall.Errno(0x6d) - ETXTBSY = syscall.Errno(0x1a) - EUCLEAN = syscall.Errno(0x75) - EUNATCH = syscall.Errno(0x31) - EUSERS = syscall.Errno(0x57) - EWOULDBLOCK = syscall.Errno(0xb) - EXDEV = syscall.Errno(0x12) - EXFULL = syscall.Errno(0x36) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0x7) - SIGCHLD = syscall.Signal(0x11) - SIGCLD = syscall.Signal(0x11) - SIGCONT = syscall.Signal(0x12) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x1d) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) - SIGPOLL = syscall.Signal(0x1d) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x1e) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTKFLT = syscall.Signal(0x10) - SIGSTOP = syscall.Signal(0x13) - SIGSYS = syscall.Signal(0x1f) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x14) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGUNUSED = syscall.Signal(0x1f) - SIGURG = syscall.Signal(0x17) - SIGUSR1 = syscall.Signal(0xa) - SIGUSR2 = syscall.Signal(0xc) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errors = [...]string{ - 1: "operation not permitted", - 2: "no such file or directory", - 3: "no such process", - 4: "interrupted system call", - 5: "input/output error", - 6: "no such device or address", - 7: "argument list too long", - 8: "exec format error", - 9: "bad file descriptor", - 10: "no child processes", - 11: "resource temporarily unavailable", - 12: "cannot allocate memory", - 13: "permission denied", - 14: "bad address", - 15: "block device required", - 16: "device or resource busy", - 17: "file exists", - 18: "invalid cross-device link", - 19: "no such device", - 20: "not a directory", - 21: "is a directory", - 22: "invalid argument", - 23: "too many open files in system", - 24: "too many open files", - 25: "inappropriate ioctl for device", - 26: "text file busy", - 27: "file too large", - 28: "no space left on device", - 29: "illegal seek", - 30: "read-only file system", - 31: "too many links", - 32: "broken pipe", - 33: "numerical argument out of domain", - 34: "numerical result out of range", - 35: "resource deadlock avoided", - 36: "file name too long", - 37: "no locks available", - 38: "function not implemented", - 39: "directory not empty", - 40: "too many levels of symbolic links", - 42: "no message of desired type", - 43: "identifier removed", - 44: "channel number out of range", - 45: "level 2 not synchronized", - 46: "level 3 halted", - 47: "level 3 reset", - 48: "link number out of range", - 49: "protocol driver not attached", - 50: "no CSI structure available", - 51: "level 2 halted", - 52: "invalid exchange", - 53: "invalid request descriptor", - 54: "exchange full", - 55: "no anode", - 56: "invalid request code", - 57: "invalid slot", - 58: "file locking deadlock error", - 59: "bad font file format", - 60: "device not a stream", - 61: "no data available", - 62: "timer expired", - 63: "out of streams resources", - 64: "machine is not on the network", - 65: "package not installed", - 66: "object is remote", - 67: "link has been severed", - 68: "advertise error", - 69: "srmount error", - 70: "communication error on send", - 71: "protocol error", - 72: "multihop attempted", - 73: "RFS specific error", - 74: "bad message", - 75: "value too large for defined data type", - 76: "name not unique on network", - 77: "file descriptor in bad state", - 78: "remote address changed", - 79: "can not access a needed shared library", - 80: "accessing a corrupted shared library", - 81: ".lib section in a.out corrupted", - 82: "attempting to link in too many shared libraries", - 83: "cannot exec a shared library directly", - 84: "invalid or incomplete multibyte or wide character", - 85: "interrupted system call should be restarted", - 86: "streams pipe error", - 87: "too many users", - 88: "socket operation on non-socket", - 89: "destination address required", - 90: "message too long", - 91: "protocol wrong type for socket", - 92: "protocol not available", - 93: "protocol not supported", - 94: "socket type not supported", - 95: "operation not supported", - 96: "protocol family not supported", - 97: "address family not supported by protocol", - 98: "address already in use", - 99: "cannot assign requested address", - 100: "network is down", - 101: "network is unreachable", - 102: "network dropped connection on reset", - 103: "software caused connection abort", - 104: "connection reset by peer", - 105: "no buffer space available", - 106: "transport endpoint is already connected", - 107: "transport endpoint is not connected", - 108: "cannot send after transport endpoint shutdown", - 109: "too many references: cannot splice", - 110: "connection timed out", - 111: "connection refused", - 112: "host is down", - 113: "no route to host", - 114: "operation already in progress", - 115: "operation now in progress", - 116: "stale file handle", - 117: "structure needs cleaning", - 118: "not a XENIX named type file", - 119: "no XENIX semaphores available", - 120: "is a named type file", - 121: "remote I/O error", - 122: "disk quota exceeded", - 123: "no medium found", - 124: "wrong medium type", - 125: "operation canceled", - 126: "required key not available", - 127: "key has expired", - 128: "key has been revoked", - 129: "key was rejected by service", - 130: "owner died", - 131: "state not recoverable", - 132: "operation not possible due to RF-kill", - 133: "memory page has hardware error", -} - -// Signal table -var signals = [...]string{ - 1: "hangup", - 2: "interrupt", - 3: "quit", - 4: "illegal instruction", - 5: "trace/breakpoint trap", - 6: "aborted", - 7: "bus error", - 8: "floating point exception", - 9: "killed", - 10: "user defined signal 1", - 11: "segmentation fault", - 12: "user defined signal 2", - 13: "broken pipe", - 14: "alarm clock", - 15: "terminated", - 16: "stack fault", - 17: "child exited", - 18: "continued", - 19: "stopped (signal)", - 20: "stopped", - 21: "stopped (tty input)", - 22: "stopped (tty output)", - 23: "urgent I/O condition", - 24: "CPU time limit exceeded", - 25: "file size limit exceeded", - 26: "virtual timer expired", - 27: "profiling timer expired", - 28: "window changed", - 29: "I/O possible", - 30: "power failure", - 31: "bad system call", -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go deleted file mode 100644 index 3b57075..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go +++ /dev/null @@ -1,2262 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/include -fsigned-char -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build s390x,linux - -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char _const.go - -package unix - -import "syscall" - -const ( - AF_ALG = 0x26 - AF_APPLETALK = 0x5 - AF_ASH = 0x12 - AF_ATMPVC = 0x8 - AF_ATMSVC = 0x14 - AF_AX25 = 0x3 - AF_BLUETOOTH = 0x1f - AF_BRIDGE = 0x7 - AF_CAIF = 0x25 - AF_CAN = 0x1d - AF_DECnet = 0xc - AF_ECONET = 0x13 - AF_FILE = 0x1 - AF_IB = 0x1b - AF_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KCM = 0x29 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x2b - AF_MPLS = 0x1c - AF_NETBEUI = 0xd - AF_NETLINK = 0x10 - AF_NETROM = 0x6 - AF_NFC = 0x27 - AF_PACKET = 0x11 - AF_PHONET = 0x23 - AF_PPPOX = 0x18 - AF_QIPCRTR = 0x2a - AF_RDS = 0x15 - AF_ROSE = 0xb - AF_ROUTE = 0x10 - AF_RXRPC = 0x21 - AF_SECURITY = 0xe - AF_SNA = 0x16 - AF_TIPC = 0x1e - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VSOCK = 0x28 - AF_WANPIPE = 0x19 - AF_X25 = 0x9 - ALG_OP_DECRYPT = 0x0 - ALG_OP_ENCRYPT = 0x1 - ALG_SET_AEAD_ASSOCLEN = 0x4 - ALG_SET_AEAD_AUTHSIZE = 0x5 - ALG_SET_IV = 0x2 - ALG_SET_KEY = 0x1 - ALG_SET_OP = 0x3 - ARPHRD_6LOWPAN = 0x339 - ARPHRD_ADAPT = 0x108 - ARPHRD_APPLETLK = 0x8 - ARPHRD_ARCNET = 0x7 - ARPHRD_ASH = 0x30d - ARPHRD_ATM = 0x13 - ARPHRD_AX25 = 0x3 - ARPHRD_BIF = 0x307 - ARPHRD_CAIF = 0x336 - ARPHRD_CAN = 0x118 - ARPHRD_CHAOS = 0x5 - ARPHRD_CISCO = 0x201 - ARPHRD_CSLIP = 0x101 - ARPHRD_CSLIP6 = 0x103 - ARPHRD_DDCMP = 0x205 - ARPHRD_DLCI = 0xf - ARPHRD_ECONET = 0x30e - ARPHRD_EETHER = 0x2 - ARPHRD_ETHER = 0x1 - ARPHRD_EUI64 = 0x1b - ARPHRD_FCAL = 0x311 - ARPHRD_FCFABRIC = 0x313 - ARPHRD_FCPL = 0x312 - ARPHRD_FCPP = 0x310 - ARPHRD_FDDI = 0x306 - ARPHRD_FRAD = 0x302 - ARPHRD_HDLC = 0x201 - ARPHRD_HIPPI = 0x30c - ARPHRD_HWX25 = 0x110 - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_IEEE80211 = 0x321 - ARPHRD_IEEE80211_PRISM = 0x322 - ARPHRD_IEEE80211_RADIOTAP = 0x323 - ARPHRD_IEEE802154 = 0x324 - ARPHRD_IEEE802154_MONITOR = 0x325 - ARPHRD_IEEE802_TR = 0x320 - ARPHRD_INFINIBAND = 0x20 - ARPHRD_IP6GRE = 0x337 - ARPHRD_IPDDP = 0x309 - ARPHRD_IPGRE = 0x30a - ARPHRD_IRDA = 0x30f - ARPHRD_LAPB = 0x204 - ARPHRD_LOCALTLK = 0x305 - ARPHRD_LOOPBACK = 0x304 - ARPHRD_METRICOM = 0x17 - ARPHRD_NETLINK = 0x338 - ARPHRD_NETROM = 0x0 - ARPHRD_NONE = 0xfffe - ARPHRD_PHONET = 0x334 - ARPHRD_PHONET_PIPE = 0x335 - ARPHRD_PIMREG = 0x30b - ARPHRD_PPP = 0x200 - ARPHRD_PRONET = 0x4 - ARPHRD_RAWHDLC = 0x206 - ARPHRD_ROSE = 0x10e - ARPHRD_RSRVD = 0x104 - ARPHRD_SIT = 0x308 - ARPHRD_SKIP = 0x303 - ARPHRD_SLIP = 0x100 - ARPHRD_SLIP6 = 0x102 - ARPHRD_TUNNEL = 0x300 - ARPHRD_TUNNEL6 = 0x301 - ARPHRD_VOID = 0xffff - ARPHRD_X25 = 0x10f - B0 = 0x0 - B1000000 = 0x1008 - B110 = 0x3 - B115200 = 0x1002 - B1152000 = 0x1009 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B1500000 = 0x100a - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B2000000 = 0x100b - B230400 = 0x1003 - B2400 = 0xb - B2500000 = 0x100c - B300 = 0x7 - B3000000 = 0x100d - B3500000 = 0x100e - B38400 = 0xf - B4000000 = 0x100f - B460800 = 0x1004 - B4800 = 0xc - B50 = 0x1 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B600 = 0x8 - B75 = 0x2 - B921600 = 0x1007 - B9600 = 0xd - BLKBSZGET = 0x80081270 - BLKBSZSET = 0x40081271 - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80081272 - BLKPBSZGET = 0x127b - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d - BLKRRPART = 0x125f - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 - BOTHER = 0x1000 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIV = 0x30 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LL_OFF = -0x200000 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXINSNS = 0x1000 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_NET_OFF = -0x100000 - BPF_OR = 0x40 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XOR = 0xa0 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x2000 - BSDLY = 0x2000 - CAN_BCM = 0x2 - CAN_EFF_FLAG = 0x80000000 - CAN_EFF_ID_BITS = 0x1d - CAN_EFF_MASK = 0x1fffffff - CAN_ERR_FLAG = 0x20000000 - CAN_ERR_MASK = 0x1fffffff - CAN_INV_FILTER = 0x20000000 - CAN_ISOTP = 0x6 - CAN_MAX_DLC = 0x8 - CAN_MAX_DLEN = 0x8 - CAN_MCNET = 0x5 - CAN_MTU = 0x10 - CAN_NPROTO = 0x7 - CAN_RAW = 0x1 - CAN_RAW_FILTER_MAX = 0x200 - CAN_RTR_FLAG = 0x40000000 - CAN_SFF_ID_BITS = 0xb - CAN_SFF_MASK = 0x7ff - CAN_TP16 = 0x3 - CAN_TP20 = 0x4 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CFLUSH = 0xf - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CLOCK_BOOTTIME = 0x7 - CLOCK_BOOTTIME_ALARM = 0x9 - CLOCK_DEFAULT = 0x0 - CLOCK_EXT = 0x1 - CLOCK_INT = 0x2 - CLOCK_MONOTONIC = 0x1 - CLOCK_MONOTONIC_COARSE = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_ALARM = 0x8 - CLOCK_REALTIME_COARSE = 0x5 - CLOCK_TAI = 0xb - CLOCK_THREAD_CPUTIME_ID = 0x3 - CLOCK_TXFROMRX = 0x4 - CLOCK_TXINT = 0x3 - CLONE_CHILD_CLEARTID = 0x200000 - CLONE_CHILD_SETTID = 0x1000000 - CLONE_DETACHED = 0x400000 - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_IO = 0x80000000 - CLONE_NEWCGROUP = 0x2000000 - CLONE_NEWIPC = 0x8000000 - CLONE_NEWNET = 0x40000000 - CLONE_NEWNS = 0x20000 - CLONE_NEWPID = 0x20000000 - CLONE_NEWUSER = 0x10000000 - CLONE_NEWUTS = 0x4000000 - CLONE_PARENT = 0x8000 - CLONE_PARENT_SETTID = 0x100000 - CLONE_PTRACE = 0x2000 - CLONE_SETTLS = 0x80000 - CLONE_SIGHAND = 0x800 - CLONE_SYSVSEM = 0x40000 - CLONE_THREAD = 0x10000 - CLONE_UNTRACED = 0x800000 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CMSPAR = 0x40000000 - CR0 = 0x0 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRDLY = 0x600 - CREAD = 0x80 - CRTSCTS = 0x80000000 - CS5 = 0x0 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIGNAL = 0xff - CSIZE = 0x30 - CSTART = 0x11 - CSTATUS = 0x0 - CSTOP = 0x13 - CSTOPB = 0x40 - CSUSP = 0x1a - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EFD_SEMAPHORE = 0x1 - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - EPOLLEXCLUSIVE = 0x10000000 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLONESHOT = 0x40000000 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDHUP = 0x2000 - EPOLLRDNORM = 0x40 - EPOLLWAKEUP = 0x20000000 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CLOEXEC = 0x80000 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - ETH_P_1588 = 0x88f7 - ETH_P_8021AD = 0x88a8 - ETH_P_8021AH = 0x88e7 - ETH_P_8021Q = 0x8100 - ETH_P_80221 = 0x8917 - ETH_P_802_2 = 0x4 - ETH_P_802_3 = 0x1 - ETH_P_802_3_MIN = 0x600 - ETH_P_802_EX1 = 0x88b5 - ETH_P_AARP = 0x80f3 - ETH_P_AF_IUCV = 0xfbfb - ETH_P_ALL = 0x3 - ETH_P_AOE = 0x88a2 - ETH_P_ARCNET = 0x1a - ETH_P_ARP = 0x806 - ETH_P_ATALK = 0x809b - ETH_P_ATMFATE = 0x8884 - ETH_P_ATMMPOA = 0x884c - ETH_P_AX25 = 0x2 - ETH_P_BATMAN = 0x4305 - ETH_P_BPQ = 0x8ff - ETH_P_CAIF = 0xf7 - ETH_P_CAN = 0xc - ETH_P_CANFD = 0xd - ETH_P_CONTROL = 0x16 - ETH_P_CUST = 0x6006 - ETH_P_DDCMP = 0x6 - ETH_P_DEC = 0x6000 - ETH_P_DIAG = 0x6005 - ETH_P_DNA_DL = 0x6001 - ETH_P_DNA_RC = 0x6002 - ETH_P_DNA_RT = 0x6003 - ETH_P_DSA = 0x1b - ETH_P_ECONET = 0x18 - ETH_P_EDSA = 0xdada - ETH_P_FCOE = 0x8906 - ETH_P_FIP = 0x8914 - ETH_P_HDLC = 0x19 - ETH_P_HSR = 0x892f - ETH_P_IEEE802154 = 0xf6 - ETH_P_IEEEPUP = 0xa00 - ETH_P_IEEEPUPAT = 0xa01 - ETH_P_IP = 0x800 - ETH_P_IPV6 = 0x86dd - ETH_P_IPX = 0x8137 - ETH_P_IRDA = 0x17 - ETH_P_LAT = 0x6004 - ETH_P_LINK_CTL = 0x886c - ETH_P_LOCALTALK = 0x9 - ETH_P_LOOP = 0x60 - ETH_P_LOOPBACK = 0x9000 - ETH_P_MACSEC = 0x88e5 - ETH_P_MOBITEX = 0x15 - ETH_P_MPLS_MC = 0x8848 - ETH_P_MPLS_UC = 0x8847 - ETH_P_MVRP = 0x88f5 - ETH_P_NCSI = 0x88f8 - ETH_P_PAE = 0x888e - ETH_P_PAUSE = 0x8808 - ETH_P_PHONET = 0xf5 - ETH_P_PPPTALK = 0x10 - ETH_P_PPP_DISC = 0x8863 - ETH_P_PPP_MP = 0x8 - ETH_P_PPP_SES = 0x8864 - ETH_P_PRP = 0x88fb - ETH_P_PUP = 0x200 - ETH_P_PUPAT = 0x201 - ETH_P_QINQ1 = 0x9100 - ETH_P_QINQ2 = 0x9200 - ETH_P_QINQ3 = 0x9300 - ETH_P_RARP = 0x8035 - ETH_P_SCA = 0x6007 - ETH_P_SLOW = 0x8809 - ETH_P_SNAP = 0x5 - ETH_P_TDLS = 0x890d - ETH_P_TEB = 0x6558 - ETH_P_TIPC = 0x88ca - ETH_P_TRAILER = 0x1c - ETH_P_TR_802_2 = 0x11 - ETH_P_TSN = 0x22f0 - ETH_P_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - ETH_P_XDSA = 0xf8 - EXTA = 0xe - EXTB = 0xf - EXTPROC = 0x10000 - FALLOC_FL_COLLAPSE_RANGE = 0x8 - FALLOC_FL_INSERT_RANGE = 0x20 - FALLOC_FL_KEEP_SIZE = 0x1 - FALLOC_FL_NO_HIDE_STALE = 0x4 - FALLOC_FL_PUNCH_HOLE = 0x2 - FALLOC_FL_UNSHARE_RANGE = 0x40 - FALLOC_FL_ZERO_RANGE = 0x10 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x8000 - FFDLY = 0x8000 - FLUSHO = 0x1000 - FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 - FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 - FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 - FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 - FS_ENCRYPTION_MODE_INVALID = 0x0 - FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 - FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 - FS_KEY_DESCRIPTOR_SIZE = 0x8 - FS_KEY_DESC_PREFIX = "fscrypt:" - FS_KEY_DESC_PREFIX_SIZE = 0x8 - FS_MAX_KEY_SIZE = 0x40 - FS_POLICY_FLAGS_PAD_16 = 0x2 - FS_POLICY_FLAGS_PAD_32 = 0x3 - FS_POLICY_FLAGS_PAD_4 = 0x0 - FS_POLICY_FLAGS_PAD_8 = 0x1 - FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x3 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x406 - F_EXLCK = 0x4 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLEASE = 0x401 - F_GETLK = 0x5 - F_GETLK64 = 0x5 - F_GETOWN = 0x9 - F_GETOWN_EX = 0x10 - F_GETPIPE_SZ = 0x408 - F_GETSIG = 0xb - F_LOCK = 0x1 - F_NOTIFY = 0x402 - F_OFD_GETLK = 0x24 - F_OFD_SETLK = 0x25 - F_OFD_SETLKW = 0x26 - F_OK = 0x0 - F_RDLCK = 0x0 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLEASE = 0x400 - F_SETLK = 0x6 - F_SETLK64 = 0x6 - F_SETLKW = 0x7 - F_SETLKW64 = 0x7 - F_SETOWN = 0x8 - F_SETOWN_EX = 0xf - F_SETPIPE_SZ = 0x407 - F_SETSIG = 0xa - F_SHLCK = 0x8 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_ULOCK = 0x0 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - GENL_ADMIN_PERM = 0x1 - GENL_CMD_CAP_DO = 0x2 - GENL_CMD_CAP_DUMP = 0x4 - GENL_CMD_CAP_HASPOL = 0x8 - GENL_HDRLEN = 0x4 - GENL_ID_CTRL = 0x10 - GENL_ID_PMCRAID = 0x12 - GENL_ID_VFS_DQUOT = 0x11 - GENL_MAX_ID = 0x3ff - GENL_MIN_ID = 0x10 - GENL_NAMSIZ = 0x10 - GENL_START_ALLOC = 0x13 - GENL_UNS_ADMIN_PERM = 0x10 - GRND_NONBLOCK = 0x1 - GRND_RANDOM = 0x2 - HUPCL = 0x400 - IBSHIFT = 0x10 - ICANON = 0x2 - ICMPV6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x8000 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_MANAGETEMPADDR = 0x100 - IFA_F_MCAUTOJOIN = 0x400 - IFA_F_NODAD = 0x2 - IFA_F_NOPREFIXROUTE = 0x200 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_STABLE_PRIVACY = 0x800 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0x8 - IFF_ALLMULTI = 0x200 - IFF_ATTACH_QUEUE = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DETACH_QUEUE = 0x400 - IFF_DORMANT = 0x20000 - IFF_DYNAMIC = 0x8000 - IFF_ECHO = 0x40000 - IFF_LOOPBACK = 0x8 - IFF_LOWER_UP = 0x10000 - IFF_MASTER = 0x400 - IFF_MULTICAST = 0x1000 - IFF_MULTI_QUEUE = 0x100 - IFF_NOARP = 0x80 - IFF_NOFILTER = 0x1000 - IFF_NOTRAILERS = 0x20 - IFF_NO_PI = 0x1000 - IFF_ONE_QUEUE = 0x2000 - IFF_PERSIST = 0x800 - IFF_POINTOPOINT = 0x10 - IFF_PORTSEL = 0x2000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SLAVE = 0x800 - IFF_TAP = 0x2 - IFF_TUN = 0x1 - IFF_TUN_EXCL = 0x8000 - IFF_UP = 0x1 - IFF_VNET_HDR = 0x4000 - IFF_VOLATILE = 0x70c5a - IFNAMSIZ = 0x10 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_ACCESS = 0x1 - IN_ALL_EVENTS = 0xfff - IN_ATTRIB = 0x4 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLOEXEC = 0x80000 - IN_CLOSE = 0x18 - IN_CLOSE_NOWRITE = 0x10 - IN_CLOSE_WRITE = 0x8 - IN_CREATE = 0x100 - IN_DELETE = 0x200 - IN_DELETE_SELF = 0x400 - IN_DONT_FOLLOW = 0x2000000 - IN_EXCL_UNLINK = 0x4000000 - IN_IGNORED = 0x8000 - IN_ISDIR = 0x40000000 - IN_LOOPBACKNET = 0x7f - IN_MASK_ADD = 0x20000000 - IN_MODIFY = 0x2 - IN_MOVE = 0xc0 - IN_MOVED_FROM = 0x40 - IN_MOVED_TO = 0x80 - IN_MOVE_SELF = 0x800 - IN_NONBLOCK = 0x800 - IN_ONESHOT = 0x80000000 - IN_ONLYDIR = 0x1000000 - IN_OPEN = 0x20 - IN_Q_OVERFLOW = 0x4000 - IN_UNMOUNT = 0x2000 - IPPROTO_AH = 0x33 - IPPROTO_BEETPH = 0x5e - IPPROTO_COMP = 0x6c - IPPROTO_DCCP = 0x21 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPIP = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MH = 0x87 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_NONE = 0x3b - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_2292DSTOPTS = 0x4 - IPV6_2292HOPLIMIT = 0x8 - IPV6_2292HOPOPTS = 0x3 - IPV6_2292PKTINFO = 0x2 - IPV6_2292PKTOPTIONS = 0x6 - IPV6_2292RTHDR = 0x5 - IPV6_ADDRFORM = 0x1 - IPV6_ADD_MEMBERSHIP = 0x14 - IPV6_AUTHHDR = 0xa - IPV6_CHECKSUM = 0x7 - IPV6_DONTFRAG = 0x3e - IPV6_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - IPV6_HDRINCL = 0x24 - IPV6_HOPLIMIT = 0x34 - IPV6_HOPOPTS = 0x36 - IPV6_IPSEC_POLICY = 0x22 - IPV6_JOIN_ANYCAST = 0x1b - IPV6_JOIN_GROUP = 0x14 - IPV6_LEAVE_ANYCAST = 0x1c - IPV6_LEAVE_GROUP = 0x15 - IPV6_MTU = 0x18 - IPV6_MTU_DISCOVER = 0x17 - IPV6_MULTICAST_HOPS = 0x12 - IPV6_MULTICAST_IF = 0x11 - IPV6_MULTICAST_LOOP = 0x13 - IPV6_NEXTHOP = 0x9 - IPV6_PATHMTU = 0x3d - IPV6_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_INTERFACE = 0x4 - IPV6_PMTUDISC_OMIT = 0x5 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVPATHMTU = 0x3c - IPV6_RECVPKTINFO = 0x31 - IPV6_RECVRTHDR = 0x38 - IPV6_RECVTCLASS = 0x42 - IPV6_ROUTER_ALERT = 0x16 - IPV6_RTHDR = 0x39 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RXDSTOPTS = 0x3b - IPV6_RXHOPOPTS = 0x36 - IPV6_TCLASS = 0x43 - IPV6_UNICAST_HOPS = 0x10 - IPV6_V6ONLY = 0x1a - IPV6_XFRM_POLICY = 0x23 - IP_ADD_MEMBERSHIP = 0x23 - IP_ADD_SOURCE_MEMBERSHIP = 0x27 - IP_BIND_ADDRESS_NO_PORT = 0x18 - IP_BLOCK_SOURCE = 0x26 - IP_CHECKSUM = 0x17 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0x24 - IP_DROP_SOURCE_MEMBERSHIP = 0x28 - IP_FREEBIND = 0xf - IP_HDRINCL = 0x3 - IP_IPSEC_POLICY = 0x10 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINTTL = 0x15 - IP_MSFILTER = 0x29 - IP_MSS = 0x240 - IP_MTU = 0xe - IP_MTU_DISCOVER = 0xa - IP_MULTICAST_ALL = 0x31 - IP_MULTICAST_IF = 0x20 - IP_MULTICAST_LOOP = 0x22 - IP_MULTICAST_TTL = 0x21 - IP_NODEFRAG = 0x16 - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x4 - IP_ORIGDSTADDR = 0x14 - IP_PASSSEC = 0x12 - IP_PKTINFO = 0x8 - IP_PKTOPTIONS = 0x9 - IP_PMTUDISC = 0xa - IP_PMTUDISC_DO = 0x2 - IP_PMTUDISC_DONT = 0x0 - IP_PMTUDISC_INTERFACE = 0x4 - IP_PMTUDISC_OMIT = 0x5 - IP_PMTUDISC_PROBE = 0x3 - IP_PMTUDISC_WANT = 0x1 - IP_RECVERR = 0xb - IP_RECVOPTS = 0x6 - IP_RECVORIGDSTADDR = 0x14 - IP_RECVRETOPTS = 0x7 - IP_RECVTOS = 0xd - IP_RECVTTL = 0xc - IP_RETOPTS = 0x7 - IP_RF = 0x8000 - IP_ROUTER_ALERT = 0x5 - IP_TOS = 0x1 - IP_TRANSPARENT = 0x13 - IP_TTL = 0x2 - IP_UNBLOCK_SOURCE = 0x25 - IP_UNICAST_IF = 0x32 - IP_XFRM_POLICY = 0x11 - ISIG = 0x1 - ISTRIP = 0x20 - IUCLC = 0x200 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x1000 - IXON = 0x400 - KEYCTL_ASSUME_AUTHORITY = 0x10 - KEYCTL_CHOWN = 0x4 - KEYCTL_CLEAR = 0x7 - KEYCTL_DESCRIBE = 0x6 - KEYCTL_DH_COMPUTE = 0x17 - KEYCTL_GET_KEYRING_ID = 0x0 - KEYCTL_GET_PERSISTENT = 0x16 - KEYCTL_GET_SECURITY = 0x11 - KEYCTL_INSTANTIATE = 0xc - KEYCTL_INSTANTIATE_IOV = 0x14 - KEYCTL_INVALIDATE = 0x15 - KEYCTL_JOIN_SESSION_KEYRING = 0x1 - KEYCTL_LINK = 0x8 - KEYCTL_NEGATE = 0xd - KEYCTL_READ = 0xb - KEYCTL_REJECT = 0x13 - KEYCTL_REVOKE = 0x3 - KEYCTL_SEARCH = 0xa - KEYCTL_SESSION_TO_PARENT = 0x12 - KEYCTL_SETPERM = 0x5 - KEYCTL_SET_REQKEY_KEYRING = 0xe - KEYCTL_SET_TIMEOUT = 0xf - KEYCTL_UNLINK = 0x9 - KEYCTL_UPDATE = 0x2 - KEY_REQKEY_DEFL_DEFAULT = 0x0 - KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 - KEY_REQKEY_DEFL_NO_CHANGE = -0x1 - KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 - KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 - KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 - KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 - KEY_REQKEY_DEFL_USER_KEYRING = 0x4 - KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 - KEY_SPEC_GROUP_KEYRING = -0x6 - KEY_SPEC_PROCESS_KEYRING = -0x2 - KEY_SPEC_REQKEY_AUTH_KEY = -0x7 - KEY_SPEC_REQUESTOR_KEYRING = -0x8 - KEY_SPEC_SESSION_KEYRING = -0x3 - KEY_SPEC_THREAD_KEYRING = -0x1 - KEY_SPEC_USER_KEYRING = -0x4 - KEY_SPEC_USER_SESSION_KEYRING = -0x5 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef - LINUX_REBOOT_CMD_HALT = 0xcdef0123 - LINUX_REBOOT_CMD_KEXEC = 0x45584543 - LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc - LINUX_REBOOT_CMD_RESTART = 0x1234567 - LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 - LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 - LINUX_REBOOT_MAGIC1 = 0xfee1dead - LINUX_REBOOT_MAGIC2 = 0x28121969 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DODUMP = 0x11 - MADV_DOFORK = 0xb - MADV_DONTDUMP = 0x10 - MADV_DONTFORK = 0xa - MADV_DONTNEED = 0x4 - MADV_FREE = 0x8 - MADV_HUGEPAGE = 0xe - MADV_HWPOISON = 0x64 - MADV_MERGEABLE = 0xc - MADV_NOHUGEPAGE = 0xf - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_REMOVE = 0x9 - MADV_SEQUENTIAL = 0x2 - MADV_UNMERGEABLE = 0xd - MADV_WILLNEED = 0x3 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_GROWSDOWN = 0x100 - MAP_HUGETLB = 0x40000 - MAP_HUGE_MASK = 0x3f - MAP_HUGE_SHIFT = 0x1a - MAP_LOCKED = 0x2000 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x4000 - MAP_POPULATE = 0x8000 - MAP_PRIVATE = 0x2 - MAP_SHARED = 0x1 - MAP_STACK = 0x20000 - MAP_TYPE = 0xf - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - MSG_BATCH = 0x40000 - MSG_CMSG_CLOEXEC = 0x40000000 - MSG_CONFIRM = 0x800 - MSG_CTRUNC = 0x8 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x40 - MSG_EOR = 0x80 - MSG_ERRQUEUE = 0x2000 - MSG_FASTOPEN = 0x20000000 - MSG_FIN = 0x200 - MSG_MORE = 0x8000 - MSG_NOSIGNAL = 0x4000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_PROXY = 0x10 - MSG_RST = 0x1000 - MSG_SYN = 0x400 - MSG_TRUNC = 0x20 - MSG_TRYHARD = 0x4 - MSG_WAITALL = 0x100 - MSG_WAITFORONE = 0x10000 - MS_ACTIVE = 0x40000000 - MS_ASYNC = 0x1 - MS_BIND = 0x1000 - MS_BORN = 0x20000000 - MS_DIRSYNC = 0x80 - MS_INVALIDATE = 0x2 - MS_I_VERSION = 0x800000 - MS_KERNMOUNT = 0x400000 - MS_LAZYTIME = 0x2000000 - MS_MANDLOCK = 0x40 - MS_MGC_MSK = 0xffff0000 - MS_MGC_VAL = 0xc0ed0000 - MS_MOVE = 0x2000 - MS_NOATIME = 0x400 - MS_NODEV = 0x4 - MS_NODIRATIME = 0x800 - MS_NOEXEC = 0x8 - MS_NOREMOTELOCK = 0x8000000 - MS_NOSEC = 0x10000000 - MS_NOSUID = 0x2 - MS_NOUSER = -0x80000000 - MS_POSIXACL = 0x10000 - MS_PRIVATE = 0x40000 - MS_RDONLY = 0x1 - MS_REC = 0x4000 - MS_RELATIME = 0x200000 - MS_REMOUNT = 0x20 - MS_RMT_MASK = 0x2800051 - MS_SHARED = 0x100000 - MS_SILENT = 0x8000 - MS_SLAVE = 0x80000 - MS_STRICTATIME = 0x1000000 - MS_SYNC = 0x4 - MS_SYNCHRONOUS = 0x10 - MS_UNBINDABLE = 0x20000 - MS_VERBOSE = 0x8000 - NAME_MAX = 0xff - NETLINK_ADD_MEMBERSHIP = 0x1 - NETLINK_AUDIT = 0x9 - NETLINK_BROADCAST_ERROR = 0x4 - NETLINK_CAP_ACK = 0xa - NETLINK_CONNECTOR = 0xb - NETLINK_CRYPTO = 0x15 - NETLINK_DNRTMSG = 0xe - NETLINK_DROP_MEMBERSHIP = 0x2 - NETLINK_ECRYPTFS = 0x13 - NETLINK_FIB_LOOKUP = 0xa - NETLINK_FIREWALL = 0x3 - NETLINK_GENERIC = 0x10 - NETLINK_INET_DIAG = 0x4 - NETLINK_IP6_FW = 0xd - NETLINK_ISCSI = 0x8 - NETLINK_KOBJECT_UEVENT = 0xf - NETLINK_LISTEN_ALL_NSID = 0x8 - NETLINK_LIST_MEMBERSHIPS = 0x9 - NETLINK_NETFILTER = 0xc - NETLINK_NFLOG = 0x5 - NETLINK_NO_ENOBUFS = 0x5 - NETLINK_PKTINFO = 0x3 - NETLINK_RDMA = 0x14 - NETLINK_ROUTE = 0x0 - NETLINK_RX_RING = 0x6 - NETLINK_SCSITRANSPORT = 0x12 - NETLINK_SELINUX = 0x7 - NETLINK_SOCK_DIAG = 0x4 - NETLINK_TX_RING = 0x7 - NETLINK_UNUSED = 0x1 - NETLINK_USERSOCK = 0x2 - NETLINK_XFRM = 0x6 - NL0 = 0x0 - NL1 = 0x100 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - NLDLY = 0x100 - NLMSG_ALIGNTO = 0x4 - NLMSG_DONE = 0x3 - NLMSG_ERROR = 0x2 - NLMSG_HDRLEN = 0x10 - NLMSG_MIN_TYPE = 0x10 - NLMSG_NOOP = 0x1 - NLMSG_OVERRUN = 0x4 - NLM_F_ACK = 0x4 - NLM_F_APPEND = 0x800 - NLM_F_ATOMIC = 0x400 - NLM_F_CREATE = 0x400 - NLM_F_DUMP = 0x300 - NLM_F_DUMP_FILTERED = 0x20 - NLM_F_DUMP_INTR = 0x10 - NLM_F_ECHO = 0x8 - NLM_F_EXCL = 0x200 - NLM_F_MATCH = 0x200 - NLM_F_MULTI = 0x2 - NLM_F_REPLACE = 0x100 - NLM_F_REQUEST = 0x1 - NLM_F_ROOT = 0x100 - NOFLSH = 0x80 - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x2 - ONLCR = 0x4 - ONLRET = 0x20 - ONOCR = 0x10 - OPOST = 0x1 - O_ACCMODE = 0x3 - O_APPEND = 0x400 - O_ASYNC = 0x2000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x40 - O_DIRECT = 0x4000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x1000 - O_EXCL = 0x80 - O_FSYNC = 0x101000 - O_LARGEFILE = 0x0 - O_NDELAY = 0x800 - O_NOATIME = 0x40000 - O_NOCTTY = 0x100 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x800 - O_PATH = 0x200000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x101000 - O_SYNC = 0x101000 - O_TMPFILE = 0x410000 - O_TRUNC = 0x200 - O_WRONLY = 0x1 - PACKET_ADD_MEMBERSHIP = 0x1 - PACKET_AUXDATA = 0x8 - PACKET_BROADCAST = 0x1 - PACKET_COPY_THRESH = 0x7 - PACKET_DROP_MEMBERSHIP = 0x2 - PACKET_FANOUT = 0x12 - PACKET_FANOUT_CBPF = 0x6 - PACKET_FANOUT_CPU = 0x2 - PACKET_FANOUT_DATA = 0x16 - PACKET_FANOUT_EBPF = 0x7 - PACKET_FANOUT_FLAG_DEFRAG = 0x8000 - PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 - PACKET_FANOUT_HASH = 0x0 - PACKET_FANOUT_LB = 0x1 - PACKET_FANOUT_QM = 0x5 - PACKET_FANOUT_RND = 0x4 - PACKET_FANOUT_ROLLOVER = 0x3 - PACKET_FASTROUTE = 0x6 - PACKET_HDRLEN = 0xb - PACKET_HOST = 0x0 - PACKET_KERNEL = 0x7 - PACKET_LOOPBACK = 0x5 - PACKET_LOSS = 0xe - PACKET_MR_ALLMULTI = 0x2 - PACKET_MR_MULTICAST = 0x0 - PACKET_MR_PROMISC = 0x1 - PACKET_MR_UNICAST = 0x3 - PACKET_MULTICAST = 0x2 - PACKET_ORIGDEV = 0x9 - PACKET_OTHERHOST = 0x3 - PACKET_OUTGOING = 0x4 - PACKET_QDISC_BYPASS = 0x14 - PACKET_RECV_OUTPUT = 0x3 - PACKET_RESERVE = 0xc - PACKET_ROLLOVER_STATS = 0x15 - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - PACKET_TIMESTAMP = 0x11 - PACKET_TX_HAS_OFF = 0x13 - PACKET_TX_RING = 0xd - PACKET_TX_TIMESTAMP = 0x10 - PACKET_USER = 0x6 - PACKET_VERSION = 0xa - PACKET_VNET_HDR = 0xf - PARENB = 0x100 - PARITY_CRC16_PR0 = 0x2 - PARITY_CRC16_PR0_CCITT = 0x4 - PARITY_CRC16_PR1 = 0x3 - PARITY_CRC16_PR1_CCITT = 0x5 - PARITY_CRC32_PR0_CCITT = 0x6 - PARITY_CRC32_PR1_CCITT = 0x7 - PARITY_DEFAULT = 0x0 - PARITY_NONE = 0x1 - PARMRK = 0x8 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x2401 - PERF_EVENT_IOC_ENABLE = 0x2400 - PERF_EVENT_IOC_ID = 0x80082407 - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 - PERF_EVENT_IOC_PERIOD = 0x40082404 - PERF_EVENT_IOC_REFRESH = 0x2402 - PERF_EVENT_IOC_RESET = 0x2403 - PERF_EVENT_IOC_SET_BPF = 0x40042408 - PERF_EVENT_IOC_SET_FILTER = 0x40082406 - PERF_EVENT_IOC_SET_OUTPUT = 0x2405 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_GROWSDOWN = 0x1000000 - PROT_GROWSUP = 0x2000000 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PR_CAPBSET_DROP = 0x18 - PR_CAPBSET_READ = 0x17 - PR_CAP_AMBIENT = 0x2f - PR_CAP_AMBIENT_CLEAR_ALL = 0x4 - PR_CAP_AMBIENT_IS_SET = 0x1 - PR_CAP_AMBIENT_LOWER = 0x3 - PR_CAP_AMBIENT_RAISE = 0x2 - PR_ENDIAN_BIG = 0x0 - PR_ENDIAN_LITTLE = 0x1 - PR_ENDIAN_PPC_LITTLE = 0x2 - PR_FPEMU_NOPRINT = 0x1 - PR_FPEMU_SIGFPE = 0x2 - PR_FP_EXC_ASYNC = 0x2 - PR_FP_EXC_DISABLED = 0x0 - PR_FP_EXC_DIV = 0x10000 - PR_FP_EXC_INV = 0x100000 - PR_FP_EXC_NONRECOV = 0x1 - PR_FP_EXC_OVF = 0x20000 - PR_FP_EXC_PRECISE = 0x3 - PR_FP_EXC_RES = 0x80000 - PR_FP_EXC_SW_ENABLE = 0x80 - PR_FP_EXC_UND = 0x40000 - PR_FP_MODE_FR = 0x1 - PR_FP_MODE_FRE = 0x2 - PR_GET_CHILD_SUBREAPER = 0x25 - PR_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - PR_GET_FP_MODE = 0x2e - PR_GET_KEEPCAPS = 0x7 - PR_GET_NAME = 0x10 - PR_GET_NO_NEW_PRIVS = 0x27 - PR_GET_PDEATHSIG = 0x2 - PR_GET_SECCOMP = 0x15 - PR_GET_SECUREBITS = 0x1b - PR_GET_THP_DISABLE = 0x2a - PR_GET_TID_ADDRESS = 0x28 - PR_GET_TIMERSLACK = 0x1e - PR_GET_TIMING = 0xd - PR_GET_TSC = 0x19 - PR_GET_UNALIGN = 0x5 - PR_MCE_KILL = 0x21 - PR_MCE_KILL_CLEAR = 0x0 - PR_MCE_KILL_DEFAULT = 0x2 - PR_MCE_KILL_EARLY = 0x1 - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_SET_CHILD_SUBREAPER = 0x24 - PR_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - PR_SET_FP_MODE = 0x2d - PR_SET_KEEPCAPS = 0x8 - PR_SET_MM = 0x23 - PR_SET_MM_ARG_END = 0x9 - PR_SET_MM_ARG_START = 0x8 - PR_SET_MM_AUXV = 0xc - PR_SET_MM_BRK = 0x7 - PR_SET_MM_END_CODE = 0x2 - PR_SET_MM_END_DATA = 0x4 - PR_SET_MM_ENV_END = 0xb - PR_SET_MM_ENV_START = 0xa - PR_SET_MM_EXE_FILE = 0xd - PR_SET_MM_MAP = 0xe - PR_SET_MM_MAP_SIZE = 0xf - PR_SET_MM_START_BRK = 0x6 - PR_SET_MM_START_CODE = 0x1 - PR_SET_MM_START_DATA = 0x3 - PR_SET_MM_START_STACK = 0x5 - PR_SET_NAME = 0xf - PR_SET_NO_NEW_PRIVS = 0x26 - PR_SET_PDEATHSIG = 0x1 - PR_SET_PTRACER = 0x59616d61 - PR_SET_PTRACER_ANY = -0x1 - PR_SET_SECCOMP = 0x16 - PR_SET_SECUREBITS = 0x1c - PR_SET_THP_DISABLE = 0x29 - PR_SET_TIMERSLACK = 0x1d - PR_SET_TIMING = 0xe - PR_SET_TSC = 0x1a - PR_SET_UNALIGN = 0x6 - PR_TASK_PERF_EVENTS_DISABLE = 0x1f - PR_TASK_PERF_EVENTS_ENABLE = 0x20 - PR_TIMING_STATISTICAL = 0x0 - PR_TIMING_TIMESTAMP = 0x1 - PR_TSC_ENABLE = 0x1 - PR_TSC_SIGSEGV = 0x2 - PR_UNALIGN_NOPRINT = 0x1 - PR_UNALIGN_SIGBUS = 0x2 - PTRACE_ATTACH = 0x10 - PTRACE_CONT = 0x7 - PTRACE_DETACH = 0x11 - PTRACE_DISABLE_TE = 0x5010 - PTRACE_ENABLE_TE = 0x5009 - PTRACE_EVENT_CLONE = 0x3 - PTRACE_EVENT_EXEC = 0x4 - PTRACE_EVENT_EXIT = 0x6 - PTRACE_EVENT_FORK = 0x1 - PTRACE_EVENT_SECCOMP = 0x7 - PTRACE_EVENT_STOP = 0x80 - PTRACE_EVENT_VFORK = 0x2 - PTRACE_EVENT_VFORK_DONE = 0x5 - PTRACE_GETEVENTMSG = 0x4201 - PTRACE_GETREGS = 0xc - PTRACE_GETREGSET = 0x4204 - PTRACE_GETSIGINFO = 0x4202 - PTRACE_GETSIGMASK = 0x420a - PTRACE_GET_LAST_BREAK = 0x5006 - PTRACE_INTERRUPT = 0x4207 - PTRACE_KILL = 0x8 - PTRACE_LISTEN = 0x4208 - PTRACE_OLDSETOPTIONS = 0x15 - PTRACE_O_EXITKILL = 0x100000 - PTRACE_O_MASK = 0x3000ff - PTRACE_O_SUSPEND_SECCOMP = 0x200000 - PTRACE_O_TRACECLONE = 0x8 - PTRACE_O_TRACEEXEC = 0x10 - PTRACE_O_TRACEEXIT = 0x40 - PTRACE_O_TRACEFORK = 0x2 - PTRACE_O_TRACESECCOMP = 0x80 - PTRACE_O_TRACESYSGOOD = 0x1 - PTRACE_O_TRACEVFORK = 0x4 - PTRACE_O_TRACEVFORKDONE = 0x20 - PTRACE_PEEKDATA = 0x2 - PTRACE_PEEKDATA_AREA = 0x5003 - PTRACE_PEEKSIGINFO = 0x4209 - PTRACE_PEEKSIGINFO_SHARED = 0x1 - PTRACE_PEEKTEXT = 0x1 - PTRACE_PEEKTEXT_AREA = 0x5002 - PTRACE_PEEKUSR = 0x3 - PTRACE_PEEKUSR_AREA = 0x5000 - PTRACE_PEEK_SYSTEM_CALL = 0x5007 - PTRACE_POKEDATA = 0x5 - PTRACE_POKEDATA_AREA = 0x5005 - PTRACE_POKETEXT = 0x4 - PTRACE_POKETEXT_AREA = 0x5004 - PTRACE_POKEUSR = 0x6 - PTRACE_POKEUSR_AREA = 0x5001 - PTRACE_POKE_SYSTEM_CALL = 0x5008 - PTRACE_PROT = 0x15 - PTRACE_SECCOMP_GET_FILTER = 0x420c - PTRACE_SEIZE = 0x4206 - PTRACE_SETOPTIONS = 0x4200 - PTRACE_SETREGS = 0xd - PTRACE_SETREGSET = 0x4205 - PTRACE_SETSIGINFO = 0x4203 - PTRACE_SETSIGMASK = 0x420b - PTRACE_SINGLEBLOCK = 0xc - PTRACE_SINGLESTEP = 0x9 - PTRACE_SYSCALL = 0x18 - PTRACE_TE_ABORT_RAND = 0x5011 - PTRACE_TRACEME = 0x0 - PT_ACR0 = 0x90 - PT_ACR1 = 0x94 - PT_ACR10 = 0xb8 - PT_ACR11 = 0xbc - PT_ACR12 = 0xc0 - PT_ACR13 = 0xc4 - PT_ACR14 = 0xc8 - PT_ACR15 = 0xcc - PT_ACR2 = 0x98 - PT_ACR3 = 0x9c - PT_ACR4 = 0xa0 - PT_ACR5 = 0xa4 - PT_ACR6 = 0xa8 - PT_ACR7 = 0xac - PT_ACR8 = 0xb0 - PT_ACR9 = 0xb4 - PT_CR_10 = 0x168 - PT_CR_11 = 0x170 - PT_CR_9 = 0x160 - PT_ENDREGS = 0x1af - PT_FPC = 0xd8 - PT_FPR0 = 0xe0 - PT_FPR1 = 0xe8 - PT_FPR10 = 0x130 - PT_FPR11 = 0x138 - PT_FPR12 = 0x140 - PT_FPR13 = 0x148 - PT_FPR14 = 0x150 - PT_FPR15 = 0x158 - PT_FPR2 = 0xf0 - PT_FPR3 = 0xf8 - PT_FPR4 = 0x100 - PT_FPR5 = 0x108 - PT_FPR6 = 0x110 - PT_FPR7 = 0x118 - PT_FPR8 = 0x120 - PT_FPR9 = 0x128 - PT_GPR0 = 0x10 - PT_GPR1 = 0x18 - PT_GPR10 = 0x60 - PT_GPR11 = 0x68 - PT_GPR12 = 0x70 - PT_GPR13 = 0x78 - PT_GPR14 = 0x80 - PT_GPR15 = 0x88 - PT_GPR2 = 0x20 - PT_GPR3 = 0x28 - PT_GPR4 = 0x30 - PT_GPR5 = 0x38 - PT_GPR6 = 0x40 - PT_GPR7 = 0x48 - PT_GPR8 = 0x50 - PT_GPR9 = 0x58 - PT_IEEE_IP = 0x1a8 - PT_LASTOFF = 0x1a8 - PT_ORIGGPR2 = 0xd0 - PT_PSWADDR = 0x8 - PT_PSWMASK = 0x0 - RLIMIT_AS = 0x9 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_LOCKS = 0xa - RLIMIT_MEMLOCK = 0x8 - RLIMIT_MSGQUEUE = 0xc - RLIMIT_NICE = 0xd - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x6 - RLIMIT_RSS = 0x5 - RLIMIT_RTPRIO = 0xe - RLIMIT_RTTIME = 0xf - RLIMIT_SIGPENDING = 0xb - RLIMIT_STACK = 0x3 - RLIM_INFINITY = -0x1 - RTAX_ADVMSS = 0x8 - RTAX_CC_ALGO = 0x10 - RTAX_CWND = 0x7 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_MASK = 0xf - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0x10 - RTAX_MTU = 0x2 - RTAX_QUICKACK = 0xf - RTAX_REORDERING = 0x9 - RTAX_RTO_MIN = 0xd - RTAX_RTT = 0x4 - RTAX_RTTVAR = 0x5 - RTAX_SSTHRESH = 0x6 - RTAX_UNSPEC = 0x0 - RTAX_WINDOW = 0x3 - RTA_ALIGNTO = 0x4 - RTA_MAX = 0x19 - RTCF_DIRECTSRC = 0x4000000 - RTCF_DOREDIRECT = 0x1000000 - RTCF_LOG = 0x2000000 - RTCF_MASQ = 0x400000 - RTCF_NAT = 0x800000 - RTCF_VALVE = 0x200000 - RTF_ADDRCLASSMASK = 0xf8000000 - RTF_ADDRCONF = 0x40000 - RTF_ALLONLINK = 0x20000 - RTF_BROADCAST = 0x10000000 - RTF_CACHE = 0x1000000 - RTF_DEFAULT = 0x10000 - RTF_DYNAMIC = 0x10 - RTF_FLOW = 0x2000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_INTERFACE = 0x40000000 - RTF_IRTT = 0x100 - RTF_LINKRT = 0x100000 - RTF_LOCAL = 0x80000000 - RTF_MODIFIED = 0x20 - RTF_MSS = 0x40 - RTF_MTU = 0x40 - RTF_MULTICAST = 0x20000000 - RTF_NAT = 0x8000000 - RTF_NOFORWARD = 0x1000 - RTF_NONEXTHOP = 0x200000 - RTF_NOPMTUDISC = 0x4000 - RTF_POLICY = 0x4000000 - RTF_REINSTATE = 0x8 - RTF_REJECT = 0x200 - RTF_STATIC = 0x400 - RTF_THROW = 0x2000 - RTF_UP = 0x1 - RTF_WINDOW = 0x80 - RTF_XRESOLVE = 0x800 - RTM_BASE = 0x10 - RTM_DELACTION = 0x31 - RTM_DELADDR = 0x15 - RTM_DELADDRLABEL = 0x49 - RTM_DELLINK = 0x11 - RTM_DELMDB = 0x55 - RTM_DELNEIGH = 0x1d - RTM_DELNSID = 0x59 - RTM_DELQDISC = 0x25 - RTM_DELROUTE = 0x19 - RTM_DELRULE = 0x21 - RTM_DELTCLASS = 0x29 - RTM_DELTFILTER = 0x2d - RTM_F_CLONED = 0x200 - RTM_F_EQUALIZE = 0x400 - RTM_F_LOOKUP_TABLE = 0x1000 - RTM_F_NOTIFY = 0x100 - RTM_F_PREFIX = 0x800 - RTM_GETACTION = 0x32 - RTM_GETADDR = 0x16 - RTM_GETADDRLABEL = 0x4a - RTM_GETANYCAST = 0x3e - RTM_GETDCB = 0x4e - RTM_GETLINK = 0x12 - RTM_GETMDB = 0x56 - RTM_GETMULTICAST = 0x3a - RTM_GETNEIGH = 0x1e - RTM_GETNEIGHTBL = 0x42 - RTM_GETNETCONF = 0x52 - RTM_GETNSID = 0x5a - RTM_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETSTATS = 0x5e - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_MAX = 0x5f - RTM_NEWACTION = 0x30 - RTM_NEWADDR = 0x14 - RTM_NEWADDRLABEL = 0x48 - RTM_NEWLINK = 0x10 - RTM_NEWMDB = 0x54 - RTM_NEWNDUSEROPT = 0x44 - RTM_NEWNEIGH = 0x1c - RTM_NEWNEIGHTBL = 0x40 - RTM_NEWNETCONF = 0x50 - RTM_NEWNSID = 0x58 - RTM_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWSTATS = 0x5c - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NR_FAMILIES = 0x14 - RTM_NR_MSGTYPES = 0x50 - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTNH_ALIGNTO = 0x4 - RTNH_COMPARE_MASK = 0x19 - RTNH_F_DEAD = 0x1 - RTNH_F_LINKDOWN = 0x10 - RTNH_F_OFFLOAD = 0x8 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTN_MAX = 0xb - RTPROT_BABEL = 0x2a - RTPROT_BIRD = 0xc - RTPROT_BOOT = 0x3 - RTPROT_DHCP = 0x10 - RTPROT_DNROUTED = 0xd - RTPROT_GATED = 0x8 - RTPROT_KERNEL = 0x2 - RTPROT_MROUTED = 0x11 - RTPROT_MRT = 0xa - RTPROT_NTK = 0xf - RTPROT_RA = 0x9 - RTPROT_REDIRECT = 0x1 - RTPROT_STATIC = 0x4 - RTPROT_UNSPEC = 0x0 - RTPROT_XORP = 0xe - RTPROT_ZEBRA = 0xb - RT_CLASS_DEFAULT = 0xfd - RT_CLASS_LOCAL = 0xff - RT_CLASS_MAIN = 0xfe - RT_CLASS_MAX = 0xff - RT_CLASS_UNSPEC = 0x0 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_CREDENTIALS = 0x2 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPNS = 0x23 - SCM_WIFI_STATUS = 0x29 - SECCOMP_MODE_DISABLED = 0x0 - SECCOMP_MODE_FILTER = 0x2 - SECCOMP_MODE_STRICT = 0x1 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCATMARK = 0x8905 - SIOCBONDCHANGEACTIVE = 0x8995 - SIOCBONDENSLAVE = 0x8990 - SIOCBONDINFOQUERY = 0x8994 - SIOCBONDRELEASE = 0x8991 - SIOCBONDSETHWADDR = 0x8992 - SIOCBONDSLAVEINFOQUERY = 0x8993 - SIOCBRADDBR = 0x89a0 - SIOCBRADDIF = 0x89a2 - SIOCBRDELBR = 0x89a1 - SIOCBRDELIF = 0x89a3 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCETHTOOL = 0x8946 - SIOCGARP = 0x8954 - SIOCGHWTSTAMP = 0x89b1 - SIOCGIFADDR = 0x8915 - SIOCGIFBR = 0x8940 - SIOCGIFBRDADDR = 0x8919 - SIOCGIFCONF = 0x8912 - SIOCGIFCOUNT = 0x8938 - SIOCGIFDSTADDR = 0x8917 - SIOCGIFENCAP = 0x8925 - SIOCGIFFLAGS = 0x8913 - SIOCGIFHWADDR = 0x8927 - SIOCGIFINDEX = 0x8933 - SIOCGIFMAP = 0x8970 - SIOCGIFMEM = 0x891f - SIOCGIFMETRIC = 0x891d - SIOCGIFMTU = 0x8921 - SIOCGIFNAME = 0x8910 - SIOCGIFNETMASK = 0x891b - SIOCGIFPFLAGS = 0x8935 - SIOCGIFSLAVE = 0x8929 - SIOCGIFTXQLEN = 0x8942 - SIOCGIFVLAN = 0x8982 - SIOCGMIIPHY = 0x8947 - SIOCGMIIREG = 0x8948 - SIOCGPGRP = 0x8904 - SIOCGRARP = 0x8961 - SIOCGSKNS = 0x894c - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCINQ = 0x541b - SIOCOUTQ = 0x5411 - SIOCOUTQNSD = 0x894b - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - SIOCSHWTSTAMP = 0x89b0 - SIOCSIFADDR = 0x8916 - SIOCSIFBR = 0x8941 - SIOCSIFBRDADDR = 0x891a - SIOCSIFDSTADDR = 0x8918 - SIOCSIFENCAP = 0x8926 - SIOCSIFFLAGS = 0x8914 - SIOCSIFHWADDR = 0x8924 - SIOCSIFHWBROADCAST = 0x8937 - SIOCSIFLINK = 0x8911 - SIOCSIFMAP = 0x8971 - SIOCSIFMEM = 0x8920 - SIOCSIFMETRIC = 0x891e - SIOCSIFMTU = 0x8922 - SIOCSIFNAME = 0x8923 - SIOCSIFNETMASK = 0x891c - SIOCSIFPFLAGS = 0x8934 - SIOCSIFSLAVE = 0x8930 - SIOCSIFTXQLEN = 0x8943 - SIOCSIFVLAN = 0x8983 - SIOCSMIIREG = 0x8949 - SIOCSPGRP = 0x8902 - SIOCSRARP = 0x8962 - SIOCWANDEV = 0x894a - SOCK_CLOEXEC = 0x80000 - SOCK_DCCP = 0x6 - SOCK_DGRAM = 0x2 - SOCK_IOC_TYPE = 0x89 - SOCK_NONBLOCK = 0x800 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_AAL = 0x109 - SOL_ALG = 0x117 - SOL_ATM = 0x108 - SOL_CAIF = 0x116 - SOL_CAN_BASE = 0x64 - SOL_DCCP = 0x10d - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_IUCV = 0x115 - SOL_KCM = 0x119 - SOL_LLC = 0x10c - SOL_NETBEUI = 0x10b - SOL_NETLINK = 0x10e - SOL_NFC = 0x118 - SOL_PACKET = 0x107 - SOL_PNPIPE = 0x113 - SOL_PPPOL2TP = 0x111 - SOL_RAW = 0xff - SOL_RDS = 0x114 - SOL_RXRPC = 0x110 - SOL_SOCKET = 0x1 - SOL_TCP = 0x6 - SOL_TIPC = 0x10f - SOL_X25 = 0x106 - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_BPF = 0x32 - SO_ATTACH_FILTER = 0x1a - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x6 - SO_BSDCOMPAT = 0xe - SO_BUSY_POLL = 0x2e - SO_CNX_ADVICE = 0x35 - SO_DEBUG = 0x1 - SO_DETACH_BPF = 0x1b - SO_DETACH_FILTER = 0x1b - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_ERROR = 0x4 - SO_GET_FILTER = 0x1a - SO_INCOMING_CPU = 0x31 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_NOFCS = 0x2b - SO_NO_CHECK = 0xb - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x11 - SO_PEERNAME = 0x1c - SO_PEERSEC = 0x1f - SO_PRIORITY = 0xc - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x12 - SO_RCVTIMEO = 0x14 - SO_REUSEADDR = 0x2 - SO_REUSEPORT = 0xf - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x13 - SO_SNDTIMEO = 0x15 - SO_TIMESTAMP = 0x1d - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TYPE = 0x3 - SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 - SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 - SO_VM_SOCKETS_BUFFER_SIZE = 0x0 - SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 - SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 - SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 - SO_VM_SOCKETS_TRUSTED = 0x5 - SO_WIFI_STATUS = 0x29 - SPLICE_F_GIFT = 0x8 - SPLICE_F_MORE = 0x4 - SPLICE_F_MOVE = 0x1 - SPLICE_F_NONBLOCK = 0x2 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TASKSTATS_CMD_ATTR_MAX = 0x4 - TASKSTATS_CMD_MAX = 0x2 - TASKSTATS_GENL_NAME = "TASKSTATS" - TASKSTATS_GENL_VERSION = 0x1 - TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x8 - TCFLSH = 0x540b - TCGETA = 0x5405 - TCGETS = 0x5401 - TCGETS2 = 0x802c542a - TCGETX = 0x5432 - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_CC_INFO = 0x1a - TCP_CONGESTION = 0xd - TCP_COOKIE_IN_ALWAYS = 0x1 - TCP_COOKIE_MAX = 0x10 - TCP_COOKIE_MIN = 0x8 - TCP_COOKIE_OUT_NEVER = 0x2 - TCP_COOKIE_PAIR_SIZE = 0x20 - TCP_COOKIE_TRANSACTIONS = 0xf - TCP_CORK = 0x3 - TCP_DEFER_ACCEPT = 0x9 - TCP_FASTOPEN = 0x17 - TCP_INFO = 0xb - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x4 - TCP_KEEPINTVL = 0x5 - TCP_LINGER2 = 0x8 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0xe - TCP_MD5SIG_MAXKEYLEN = 0x50 - TCP_MSS = 0x200 - TCP_MSS_DEFAULT = 0x218 - TCP_MSS_DESIRED = 0x4c4 - TCP_NODELAY = 0x1 - TCP_NOTSENT_LOWAT = 0x19 - TCP_QUEUE_SEQ = 0x15 - TCP_QUICKACK = 0xc - TCP_REPAIR = 0x13 - TCP_REPAIR_OPTIONS = 0x16 - TCP_REPAIR_QUEUE = 0x14 - TCP_REPAIR_WINDOW = 0x1d - TCP_SAVED_SYN = 0x1c - TCP_SAVE_SYN = 0x1b - TCP_SYNCNT = 0x7 - TCP_S_DATA_IN = 0x4 - TCP_S_DATA_OUT = 0x8 - TCP_THIN_DUPACK = 0x11 - TCP_THIN_LINEAR_TIMEOUTS = 0x10 - TCP_TIMESTAMP = 0x18 - TCP_USER_TIMEOUT = 0x12 - TCP_WINDOW_CLAMP = 0xa - TCSAFLUSH = 0x2 - TCSBRK = 0x5409 - TCSBRKP = 0x5425 - TCSETA = 0x5406 - TCSETAF = 0x5408 - TCSETAW = 0x5407 - TCSETS = 0x5402 - TCSETS2 = 0x402c542b - TCSETSF = 0x5404 - TCSETSF2 = 0x402c542d - TCSETSW = 0x5403 - TCSETSW2 = 0x402c542c - TCSETX = 0x5433 - TCSETXF = 0x5434 - TCSETXW = 0x5435 - TCXONC = 0x540a - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x80045432 - TIOCGETD = 0x5424 - TIOCGEXCL = 0x80045440 - TIOCGICOUNT = 0x545d - TIOCGLCKTRMIOS = 0x5456 - TIOCGPGRP = 0x540f - TIOCGPKT = 0x80045438 - TIOCGPTLCK = 0x80045439 - TIOCGPTN = 0x80045430 - TIOCGRS485 = 0x542e - TIOCGSERIAL = 0x541e - TIOCGSID = 0x5429 - TIOCGSOFTCAR = 0x5419 - TIOCGWINSZ = 0x5413 - TIOCINQ = 0x541b - TIOCLINUX = 0x541c - TIOCMBIC = 0x5417 - TIOCMBIS = 0x5416 - TIOCMGET = 0x5415 - TIOCMIWAIT = 0x545c - TIOCMSET = 0x5418 - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x5422 - TIOCNXCL = 0x540d - TIOCOUTQ = 0x5411 - TIOCPKT = 0x5420 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x540e - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x5423 - TIOCSIG = 0x40045436 - TIOCSLCKTRMIOS = 0x5457 - TIOCSPGRP = 0x5410 - TIOCSPTLCK = 0x40045431 - TIOCSRS485 = 0x542f - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x541a - TIOCSTI = 0x5412 - TIOCSWINSZ = 0x5414 - TIOCVHANGUP = 0x5437 - TOSTOP = 0x100 - TS_COMM_LEN = 0x20 - TUNATTACHFILTER = 0x401054d5 - TUNDETACHFILTER = 0x401054d6 - TUNGETFEATURES = 0x800454cf - TUNGETFILTER = 0x801054db - TUNGETIFF = 0x800454d2 - TUNGETSNDBUF = 0x800454d3 - TUNGETVNETBE = 0x800454df - TUNGETVNETHDRSZ = 0x800454d7 - TUNGETVNETLE = 0x800454dd - TUNSETDEBUG = 0x400454c9 - TUNSETGROUP = 0x400454ce - TUNSETIFF = 0x400454ca - TUNSETIFINDEX = 0x400454da - TUNSETLINK = 0x400454cd - TUNSETNOCSUM = 0x400454c8 - TUNSETOFFLOAD = 0x400454d0 - TUNSETOWNER = 0x400454cc - TUNSETPERSIST = 0x400454cb - TUNSETQUEUE = 0x400454d9 - TUNSETSNDBUF = 0x400454d4 - TUNSETTXFILTER = 0x400454d1 - TUNSETVNETBE = 0x400454de - TUNSETVNETHDRSZ = 0x400454d8 - TUNSETVNETLE = 0x400454dc - UMOUNT_NOFOLLOW = 0x8 - VDISCARD = 0xd - VEOF = 0x4 - VEOL = 0xb - VEOL2 = 0x10 - VERASE = 0x2 - VINTR = 0x0 - VKILL = 0x3 - VLNEXT = 0xf - VMADDR_CID_ANY = 0xffffffff - VMADDR_CID_HOST = 0x2 - VMADDR_CID_HYPERVISOR = 0x0 - VMADDR_CID_RESERVED = 0x1 - VMADDR_PORT_ANY = 0xffffffff - VMIN = 0x6 - VM_SOCKETS_INVALID_VERSION = 0xffffffff - VQUIT = 0x1 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VT0 = 0x0 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WALL = 0x40000000 - WCLONE = 0x80000000 - WCONTINUED = 0x8 - WEXITED = 0x4 - WNOHANG = 0x1 - WNOTHREAD = 0x20000000 - WNOWAIT = 0x1000000 - WORDSIZE = 0x40 - WSTOPPED = 0x2 - WUNTRACED = 0x2 - XATTR_CREATE = 0x1 - XATTR_REPLACE = 0x2 - XCASE = 0x4 - XTABS = 0x1800 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x62) - EADDRNOTAVAIL = syscall.Errno(0x63) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x61) - EAGAIN = syscall.Errno(0xb) - EALREADY = syscall.Errno(0x72) - EBADE = syscall.Errno(0x34) - EBADF = syscall.Errno(0x9) - EBADFD = syscall.Errno(0x4d) - EBADMSG = syscall.Errno(0x4a) - EBADR = syscall.Errno(0x35) - EBADRQC = syscall.Errno(0x38) - EBADSLT = syscall.Errno(0x39) - EBFONT = syscall.Errno(0x3b) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x7d) - ECHILD = syscall.Errno(0xa) - ECHRNG = syscall.Errno(0x2c) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x67) - ECONNREFUSED = syscall.Errno(0x6f) - ECONNRESET = syscall.Errno(0x68) - EDEADLK = syscall.Errno(0x23) - EDEADLOCK = syscall.Errno(0x23) - EDESTADDRREQ = syscall.Errno(0x59) - EDOM = syscall.Errno(0x21) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x7a) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EHOSTDOWN = syscall.Errno(0x70) - EHOSTUNREACH = syscall.Errno(0x71) - EHWPOISON = syscall.Errno(0x85) - EIDRM = syscall.Errno(0x2b) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x73) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x6a) - EISDIR = syscall.Errno(0x15) - EISNAM = syscall.Errno(0x78) - EKEYEXPIRED = syscall.Errno(0x7f) - EKEYREJECTED = syscall.Errno(0x81) - EKEYREVOKED = syscall.Errno(0x80) - EL2HLT = syscall.Errno(0x33) - EL2NSYNC = syscall.Errno(0x2d) - EL3HLT = syscall.Errno(0x2e) - EL3RST = syscall.Errno(0x2f) - ELIBACC = syscall.Errno(0x4f) - ELIBBAD = syscall.Errno(0x50) - ELIBEXEC = syscall.Errno(0x53) - ELIBMAX = syscall.Errno(0x52) - ELIBSCN = syscall.Errno(0x51) - ELNRNG = syscall.Errno(0x30) - ELOOP = syscall.Errno(0x28) - EMEDIUMTYPE = syscall.Errno(0x7c) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x5a) - EMULTIHOP = syscall.Errno(0x48) - ENAMETOOLONG = syscall.Errno(0x24) - ENAVAIL = syscall.Errno(0x77) - ENETDOWN = syscall.Errno(0x64) - ENETRESET = syscall.Errno(0x66) - ENETUNREACH = syscall.Errno(0x65) - ENFILE = syscall.Errno(0x17) - ENOANO = syscall.Errno(0x37) - ENOBUFS = syscall.Errno(0x69) - ENOCSI = syscall.Errno(0x32) - ENODATA = syscall.Errno(0x3d) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOKEY = syscall.Errno(0x7e) - ENOLCK = syscall.Errno(0x25) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x7b) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x2a) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x5c) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x26) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x6b) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x27) - ENOTNAM = syscall.Errno(0x76) - ENOTRECOVERABLE = syscall.Errno(0x83) - ENOTSOCK = syscall.Errno(0x58) - ENOTSUP = syscall.Errno(0x5f) - ENOTTY = syscall.Errno(0x19) - ENOTUNIQ = syscall.Errno(0x4c) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x5f) - EOVERFLOW = syscall.Errno(0x4b) - EOWNERDEAD = syscall.Errno(0x82) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x60) - EPIPE = syscall.Errno(0x20) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x5d) - EPROTOTYPE = syscall.Errno(0x5b) - ERANGE = syscall.Errno(0x22) - EREMCHG = syscall.Errno(0x4e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x79) - ERESTART = syscall.Errno(0x55) - ERFKILL = syscall.Errno(0x84) - EROFS = syscall.Errno(0x1e) - ESHUTDOWN = syscall.Errno(0x6c) - ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x74) - ESTRPIPE = syscall.Errno(0x56) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x6e) - ETOOMANYREFS = syscall.Errno(0x6d) - ETXTBSY = syscall.Errno(0x1a) - EUCLEAN = syscall.Errno(0x75) - EUNATCH = syscall.Errno(0x31) - EUSERS = syscall.Errno(0x57) - EWOULDBLOCK = syscall.Errno(0xb) - EXDEV = syscall.Errno(0x12) - EXFULL = syscall.Errno(0x36) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0x7) - SIGCHLD = syscall.Signal(0x11) - SIGCLD = syscall.Signal(0x11) - SIGCONT = syscall.Signal(0x12) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x1d) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) - SIGPOLL = syscall.Signal(0x1d) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x1e) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTKFLT = syscall.Signal(0x10) - SIGSTOP = syscall.Signal(0x13) - SIGSYS = syscall.Signal(0x1f) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x14) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGUNUSED = syscall.Signal(0x1f) - SIGURG = syscall.Signal(0x17) - SIGUSR1 = syscall.Signal(0xa) - SIGUSR2 = syscall.Signal(0xc) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errors = [...]string{ - 1: "operation not permitted", - 2: "no such file or directory", - 3: "no such process", - 4: "interrupted system call", - 5: "input/output error", - 6: "no such device or address", - 7: "argument list too long", - 8: "exec format error", - 9: "bad file descriptor", - 10: "no child processes", - 11: "resource temporarily unavailable", - 12: "cannot allocate memory", - 13: "permission denied", - 14: "bad address", - 15: "block device required", - 16: "device or resource busy", - 17: "file exists", - 18: "invalid cross-device link", - 19: "no such device", - 20: "not a directory", - 21: "is a directory", - 22: "invalid argument", - 23: "too many open files in system", - 24: "too many open files", - 25: "inappropriate ioctl for device", - 26: "text file busy", - 27: "file too large", - 28: "no space left on device", - 29: "illegal seek", - 30: "read-only file system", - 31: "too many links", - 32: "broken pipe", - 33: "numerical argument out of domain", - 34: "numerical result out of range", - 35: "resource deadlock avoided", - 36: "file name too long", - 37: "no locks available", - 38: "function not implemented", - 39: "directory not empty", - 40: "too many levels of symbolic links", - 42: "no message of desired type", - 43: "identifier removed", - 44: "channel number out of range", - 45: "level 2 not synchronized", - 46: "level 3 halted", - 47: "level 3 reset", - 48: "link number out of range", - 49: "protocol driver not attached", - 50: "no CSI structure available", - 51: "level 2 halted", - 52: "invalid exchange", - 53: "invalid request descriptor", - 54: "exchange full", - 55: "no anode", - 56: "invalid request code", - 57: "invalid slot", - 59: "bad font file format", - 60: "device not a stream", - 61: "no data available", - 62: "timer expired", - 63: "out of streams resources", - 64: "machine is not on the network", - 65: "package not installed", - 66: "object is remote", - 67: "link has been severed", - 68: "advertise error", - 69: "srmount error", - 70: "communication error on send", - 71: "protocol error", - 72: "multihop attempted", - 73: "RFS specific error", - 74: "bad message", - 75: "value too large for defined data type", - 76: "name not unique on network", - 77: "file descriptor in bad state", - 78: "remote address changed", - 79: "can not access a needed shared library", - 80: "accessing a corrupted shared library", - 81: ".lib section in a.out corrupted", - 82: "attempting to link in too many shared libraries", - 83: "cannot exec a shared library directly", - 84: "invalid or incomplete multibyte or wide character", - 85: "interrupted system call should be restarted", - 86: "streams pipe error", - 87: "too many users", - 88: "socket operation on non-socket", - 89: "destination address required", - 90: "message too long", - 91: "protocol wrong type for socket", - 92: "protocol not available", - 93: "protocol not supported", - 94: "socket type not supported", - 95: "operation not supported", - 96: "protocol family not supported", - 97: "address family not supported by protocol", - 98: "address already in use", - 99: "cannot assign requested address", - 100: "network is down", - 101: "network is unreachable", - 102: "network dropped connection on reset", - 103: "software caused connection abort", - 104: "connection reset by peer", - 105: "no buffer space available", - 106: "transport endpoint is already connected", - 107: "transport endpoint is not connected", - 108: "cannot send after transport endpoint shutdown", - 109: "too many references: cannot splice", - 110: "connection timed out", - 111: "connection refused", - 112: "host is down", - 113: "no route to host", - 114: "operation already in progress", - 115: "operation now in progress", - 116: "stale file handle", - 117: "structure needs cleaning", - 118: "not a XENIX named type file", - 119: "no XENIX semaphores available", - 120: "is a named type file", - 121: "remote I/O error", - 122: "disk quota exceeded", - 123: "no medium found", - 124: "wrong medium type", - 125: "operation canceled", - 126: "required key not available", - 127: "key has expired", - 128: "key has been revoked", - 129: "key was rejected by service", - 130: "owner died", - 131: "state not recoverable", - 132: "operation not possible due to RF-kill", - 133: "memory page has hardware error", -} - -// Signal table -var signals = [...]string{ - 1: "hangup", - 2: "interrupt", - 3: "quit", - 4: "illegal instruction", - 5: "trace/breakpoint trap", - 6: "aborted", - 7: "bus error", - 8: "floating point exception", - 9: "killed", - 10: "user defined signal 1", - 11: "segmentation fault", - 12: "user defined signal 2", - 13: "broken pipe", - 14: "alarm clock", - 15: "terminated", - 16: "stack fault", - 17: "child exited", - 18: "continued", - 19: "stopped (signal)", - 20: "stopped", - 21: "stopped (tty input)", - 22: "stopped (tty output)", - 23: "urgent I/O condition", - 24: "CPU time limit exceeded", - 25: "file size limit exceeded", - 26: "virtual timer expired", - 27: "profiling timer expired", - 28: "window changed", - 29: "I/O possible", - 30: "power failure", - 31: "bad system call", -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go deleted file mode 100644 index 95de199..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go +++ /dev/null @@ -1,2142 +0,0 @@ -// mkerrors.sh -m64 -// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT - -// +build sparc64,linux - -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs -- -m64 _const.go - -package unix - -import "syscall" - -const ( - AF_ALG = 0x26 - AF_APPLETALK = 0x5 - AF_ASH = 0x12 - AF_ATMPVC = 0x8 - AF_ATMSVC = 0x14 - AF_AX25 = 0x3 - AF_BLUETOOTH = 0x1f - AF_BRIDGE = 0x7 - AF_CAIF = 0x25 - AF_CAN = 0x1d - AF_DECnet = 0xc - AF_ECONET = 0x13 - AF_FILE = 0x1 - AF_IB = 0x1b - AF_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KCM = 0x29 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x2a - AF_MPLS = 0x1c - AF_NETBEUI = 0xd - AF_NETLINK = 0x10 - AF_NETROM = 0x6 - AF_NFC = 0x27 - AF_PACKET = 0x11 - AF_PHONET = 0x23 - AF_PPPOX = 0x18 - AF_RDS = 0x15 - AF_ROSE = 0xb - AF_ROUTE = 0x10 - AF_RXRPC = 0x21 - AF_SECURITY = 0xe - AF_SNA = 0x16 - AF_TIPC = 0x1e - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VSOCK = 0x28 - AF_WANPIPE = 0x19 - AF_X25 = 0x9 - ALG_OP_DECRYPT = 0x0 - ALG_OP_ENCRYPT = 0x1 - ALG_SET_AEAD_ASSOCLEN = 0x4 - ALG_SET_AEAD_AUTHSIZE = 0x5 - ALG_SET_IV = 0x2 - ALG_SET_KEY = 0x1 - ALG_SET_OP = 0x3 - ARPHRD_6LOWPAN = 0x339 - ARPHRD_ADAPT = 0x108 - ARPHRD_APPLETLK = 0x8 - ARPHRD_ARCNET = 0x7 - ARPHRD_ASH = 0x30d - ARPHRD_ATM = 0x13 - ARPHRD_AX25 = 0x3 - ARPHRD_BIF = 0x307 - ARPHRD_CAIF = 0x336 - ARPHRD_CAN = 0x118 - ARPHRD_CHAOS = 0x5 - ARPHRD_CISCO = 0x201 - ARPHRD_CSLIP = 0x101 - ARPHRD_CSLIP6 = 0x103 - ARPHRD_DDCMP = 0x205 - ARPHRD_DLCI = 0xf - ARPHRD_ECONET = 0x30e - ARPHRD_EETHER = 0x2 - ARPHRD_ETHER = 0x1 - ARPHRD_EUI64 = 0x1b - ARPHRD_FCAL = 0x311 - ARPHRD_FCFABRIC = 0x313 - ARPHRD_FCPL = 0x312 - ARPHRD_FCPP = 0x310 - ARPHRD_FDDI = 0x306 - ARPHRD_FRAD = 0x302 - ARPHRD_HDLC = 0x201 - ARPHRD_HIPPI = 0x30c - ARPHRD_HWX25 = 0x110 - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_IEEE80211 = 0x321 - ARPHRD_IEEE80211_PRISM = 0x322 - ARPHRD_IEEE80211_RADIOTAP = 0x323 - ARPHRD_IEEE802154 = 0x324 - ARPHRD_IEEE802154_MONITOR = 0x325 - ARPHRD_IEEE802_TR = 0x320 - ARPHRD_INFINIBAND = 0x20 - ARPHRD_IP6GRE = 0x337 - ARPHRD_IPDDP = 0x309 - ARPHRD_IPGRE = 0x30a - ARPHRD_IRDA = 0x30f - ARPHRD_LAPB = 0x204 - ARPHRD_LOCALTLK = 0x305 - ARPHRD_LOOPBACK = 0x304 - ARPHRD_METRICOM = 0x17 - ARPHRD_NETLINK = 0x338 - ARPHRD_NETROM = 0x0 - ARPHRD_NONE = 0xfffe - ARPHRD_PHONET = 0x334 - ARPHRD_PHONET_PIPE = 0x335 - ARPHRD_PIMREG = 0x30b - ARPHRD_PPP = 0x200 - ARPHRD_PRONET = 0x4 - ARPHRD_RAWHDLC = 0x206 - ARPHRD_ROSE = 0x10e - ARPHRD_RSRVD = 0x104 - ARPHRD_SIT = 0x308 - ARPHRD_SKIP = 0x303 - ARPHRD_SLIP = 0x100 - ARPHRD_SLIP6 = 0x102 - ARPHRD_TUNNEL = 0x300 - ARPHRD_TUNNEL6 = 0x301 - ARPHRD_VOID = 0xffff - ARPHRD_X25 = 0x10f - ASI_LEON_DFLUSH = 0x11 - ASI_LEON_IFLUSH = 0x10 - ASI_LEON_MMUFLUSH = 0x18 - B0 = 0x0 - B1000000 = 0x100c - B110 = 0x3 - B115200 = 0x1002 - B1152000 = 0x100d - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B1500000 = 0x100e - B153600 = 0x1006 - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B2000000 = 0x100f - B230400 = 0x1003 - B2400 = 0xb - B300 = 0x7 - B307200 = 0x1007 - B38400 = 0xf - B460800 = 0x1004 - B4800 = 0xc - B50 = 0x1 - B500000 = 0x100a - B57600 = 0x1001 - B576000 = 0x100b - B600 = 0x8 - B614400 = 0x1008 - B75 = 0x2 - B76800 = 0x1005 - B921600 = 0x1009 - B9600 = 0xd - BLKBSZGET = 0x80081270 - BLKBSZSET = 0x40081271 - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80081272 - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d - BLKRRPART = 0x125f - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 - BOTHER = 0x1000 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIV = 0x30 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LL_OFF = -0x200000 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXINSNS = 0x1000 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_NET_OFF = -0x100000 - BPF_OR = 0x40 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XOR = 0xa0 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x2000 - BSDLY = 0x2000 - CAN_BCM = 0x2 - CAN_EFF_FLAG = 0x80000000 - CAN_EFF_ID_BITS = 0x1d - CAN_EFF_MASK = 0x1fffffff - CAN_ERR_FLAG = 0x20000000 - CAN_ERR_MASK = 0x1fffffff - CAN_INV_FILTER = 0x20000000 - CAN_ISOTP = 0x6 - CAN_MAX_DLC = 0x8 - CAN_MAX_DLEN = 0x8 - CAN_MCNET = 0x5 - CAN_MTU = 0x10 - CAN_NPROTO = 0x7 - CAN_RAW = 0x1 - CAN_RTR_FLAG = 0x40000000 - CAN_SFF_ID_BITS = 0xb - CAN_SFF_MASK = 0x7ff - CAN_TP16 = 0x3 - CAN_TP20 = 0x4 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CFLUSH = 0xf - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CLOCK_BOOTTIME = 0x7 - CLOCK_BOOTTIME_ALARM = 0x9 - CLOCK_DEFAULT = 0x0 - CLOCK_EXT = 0x1 - CLOCK_INT = 0x2 - CLOCK_MONOTONIC = 0x1 - CLOCK_MONOTONIC_COARSE = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_ALARM = 0x8 - CLOCK_REALTIME_COARSE = 0x5 - CLOCK_TAI = 0xb - CLOCK_THREAD_CPUTIME_ID = 0x3 - CLOCK_TXFROMRX = 0x4 - CLOCK_TXINT = 0x3 - CLONE_CHILD_CLEARTID = 0x200000 - CLONE_CHILD_SETTID = 0x1000000 - CLONE_DETACHED = 0x400000 - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_IO = 0x80000000 - CLONE_NEWCGROUP = 0x2000000 - CLONE_NEWIPC = 0x8000000 - CLONE_NEWNET = 0x40000000 - CLONE_NEWNS = 0x20000 - CLONE_NEWPID = 0x20000000 - CLONE_NEWUSER = 0x10000000 - CLONE_NEWUTS = 0x4000000 - CLONE_PARENT = 0x8000 - CLONE_PARENT_SETTID = 0x100000 - CLONE_PTRACE = 0x2000 - CLONE_SETTLS = 0x80000 - CLONE_SIGHAND = 0x800 - CLONE_SYSVSEM = 0x40000 - CLONE_THREAD = 0x10000 - CLONE_UNTRACED = 0x800000 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CMSPAR = 0x40000000 - CR0 = 0x0 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRDLY = 0x600 - CREAD = 0x80 - CRTSCTS = 0x80000000 - CS5 = 0x0 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIGNAL = 0xff - CSIZE = 0x30 - CSTART = 0x11 - CSTATUS = 0x0 - CSTOP = 0x13 - CSTOPB = 0x40 - CSUSP = 0x1a - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EMT_TAGOVF = 0x1 - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - EPOLLEXCLUSIVE = 0x10000000 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLONESHOT = 0x40000000 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDHUP = 0x2000 - EPOLLRDNORM = 0x40 - EPOLLWAKEUP = 0x20000000 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CLOEXEC = 0x400000 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - ETH_P_1588 = 0x88f7 - ETH_P_8021AD = 0x88a8 - ETH_P_8021AH = 0x88e7 - ETH_P_8021Q = 0x8100 - ETH_P_80221 = 0x8917 - ETH_P_802_2 = 0x4 - ETH_P_802_3 = 0x1 - ETH_P_802_3_MIN = 0x600 - ETH_P_802_EX1 = 0x88b5 - ETH_P_AARP = 0x80f3 - ETH_P_AF_IUCV = 0xfbfb - ETH_P_ALL = 0x3 - ETH_P_AOE = 0x88a2 - ETH_P_ARCNET = 0x1a - ETH_P_ARP = 0x806 - ETH_P_ATALK = 0x809b - ETH_P_ATMFATE = 0x8884 - ETH_P_ATMMPOA = 0x884c - ETH_P_AX25 = 0x2 - ETH_P_BATMAN = 0x4305 - ETH_P_BPQ = 0x8ff - ETH_P_CAIF = 0xf7 - ETH_P_CAN = 0xc - ETH_P_CANFD = 0xd - ETH_P_CONTROL = 0x16 - ETH_P_CUST = 0x6006 - ETH_P_DDCMP = 0x6 - ETH_P_DEC = 0x6000 - ETH_P_DIAG = 0x6005 - ETH_P_DNA_DL = 0x6001 - ETH_P_DNA_RC = 0x6002 - ETH_P_DNA_RT = 0x6003 - ETH_P_DSA = 0x1b - ETH_P_ECONET = 0x18 - ETH_P_EDSA = 0xdada - ETH_P_FCOE = 0x8906 - ETH_P_FIP = 0x8914 - ETH_P_HDLC = 0x19 - ETH_P_HSR = 0x892f - ETH_P_IEEE802154 = 0xf6 - ETH_P_IEEEPUP = 0xa00 - ETH_P_IEEEPUPAT = 0xa01 - ETH_P_IP = 0x800 - ETH_P_IPV6 = 0x86dd - ETH_P_IPX = 0x8137 - ETH_P_IRDA = 0x17 - ETH_P_LAT = 0x6004 - ETH_P_LINK_CTL = 0x886c - ETH_P_LOCALTALK = 0x9 - ETH_P_LOOP = 0x60 - ETH_P_LOOPBACK = 0x9000 - ETH_P_MACSEC = 0x88e5 - ETH_P_MOBITEX = 0x15 - ETH_P_MPLS_MC = 0x8848 - ETH_P_MPLS_UC = 0x8847 - ETH_P_MVRP = 0x88f5 - ETH_P_PAE = 0x888e - ETH_P_PAUSE = 0x8808 - ETH_P_PHONET = 0xf5 - ETH_P_PPPTALK = 0x10 - ETH_P_PPP_DISC = 0x8863 - ETH_P_PPP_MP = 0x8 - ETH_P_PPP_SES = 0x8864 - ETH_P_PRP = 0x88fb - ETH_P_PUP = 0x200 - ETH_P_PUPAT = 0x201 - ETH_P_QINQ1 = 0x9100 - ETH_P_QINQ2 = 0x9200 - ETH_P_QINQ3 = 0x9300 - ETH_P_RARP = 0x8035 - ETH_P_SCA = 0x6007 - ETH_P_SLOW = 0x8809 - ETH_P_SNAP = 0x5 - ETH_P_TDLS = 0x890d - ETH_P_TEB = 0x6558 - ETH_P_TIPC = 0x88ca - ETH_P_TRAILER = 0x1c - ETH_P_TR_802_2 = 0x11 - ETH_P_TSN = 0x22f0 - ETH_P_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - ETH_P_XDSA = 0xf8 - EXTA = 0xe - EXTB = 0xf - EXTPROC = 0x10000 - FALLOC_FL_COLLAPSE_RANGE = 0x8 - FALLOC_FL_INSERT_RANGE = 0x20 - FALLOC_FL_KEEP_SIZE = 0x1 - FALLOC_FL_NO_HIDE_STALE = 0x4 - FALLOC_FL_PUNCH_HOLE = 0x2 - FALLOC_FL_ZERO_RANGE = 0x10 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x8000 - FFDLY = 0x8000 - FLUSHO = 0x2000 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x406 - F_EXLCK = 0x4 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLEASE = 0x401 - F_GETLK = 0x7 - F_GETLK64 = 0x7 - F_GETOWN = 0x5 - F_GETOWN_EX = 0x10 - F_GETPIPE_SZ = 0x408 - F_GETSIG = 0xb - F_LOCK = 0x1 - F_NOTIFY = 0x402 - F_OFD_GETLK = 0x24 - F_OFD_SETLK = 0x25 - F_OFD_SETLKW = 0x26 - F_OK = 0x0 - F_RDLCK = 0x1 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLEASE = 0x400 - F_SETLK = 0x8 - F_SETLK64 = 0x8 - F_SETLKW = 0x9 - F_SETLKW64 = 0x9 - F_SETOWN = 0x6 - F_SETOWN_EX = 0xf - F_SETPIPE_SZ = 0x407 - F_SETSIG = 0xa - F_SHLCK = 0x8 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_ULOCK = 0x0 - F_UNLCK = 0x3 - F_WRLCK = 0x2 - GRND_NONBLOCK = 0x1 - GRND_RANDOM = 0x2 - HUPCL = 0x400 - IBSHIFT = 0x10 - ICANON = 0x2 - ICMPV6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x8000 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_MANAGETEMPADDR = 0x100 - IFA_F_MCAUTOJOIN = 0x400 - IFA_F_NODAD = 0x2 - IFA_F_NOPREFIXROUTE = 0x200 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_STABLE_PRIVACY = 0x800 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0x8 - IFF_ALLMULTI = 0x200 - IFF_ATTACH_QUEUE = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DETACH_QUEUE = 0x400 - IFF_DORMANT = 0x20000 - IFF_DYNAMIC = 0x8000 - IFF_ECHO = 0x40000 - IFF_LOOPBACK = 0x8 - IFF_LOWER_UP = 0x10000 - IFF_MASTER = 0x400 - IFF_MULTICAST = 0x1000 - IFF_MULTI_QUEUE = 0x100 - IFF_NOARP = 0x80 - IFF_NOFILTER = 0x1000 - IFF_NOTRAILERS = 0x20 - IFF_NO_PI = 0x1000 - IFF_ONE_QUEUE = 0x2000 - IFF_PERSIST = 0x800 - IFF_POINTOPOINT = 0x10 - IFF_PORTSEL = 0x2000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SLAVE = 0x800 - IFF_TAP = 0x2 - IFF_TUN = 0x1 - IFF_TUN_EXCL = 0x8000 - IFF_UP = 0x1 - IFF_VNET_HDR = 0x4000 - IFF_VOLATILE = 0x70c5a - IFNAMSIZ = 0x10 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_ACCESS = 0x1 - IN_ALL_EVENTS = 0xfff - IN_ATTRIB = 0x4 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLOEXEC = 0x400000 - IN_CLOSE = 0x18 - IN_CLOSE_NOWRITE = 0x10 - IN_CLOSE_WRITE = 0x8 - IN_CREATE = 0x100 - IN_DELETE = 0x200 - IN_DELETE_SELF = 0x400 - IN_DONT_FOLLOW = 0x2000000 - IN_EXCL_UNLINK = 0x4000000 - IN_IGNORED = 0x8000 - IN_ISDIR = 0x40000000 - IN_LOOPBACKNET = 0x7f - IN_MASK_ADD = 0x20000000 - IN_MODIFY = 0x2 - IN_MOVE = 0xc0 - IN_MOVED_FROM = 0x40 - IN_MOVED_TO = 0x80 - IN_MOVE_SELF = 0x800 - IN_NONBLOCK = 0x4000 - IN_ONESHOT = 0x80000000 - IN_ONLYDIR = 0x1000000 - IN_OPEN = 0x20 - IN_Q_OVERFLOW = 0x4000 - IN_UNMOUNT = 0x2000 - IPPROTO_AH = 0x33 - IPPROTO_BEETPH = 0x5e - IPPROTO_COMP = 0x6c - IPPROTO_DCCP = 0x21 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPIP = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MH = 0x87 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_NONE = 0x3b - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_2292DSTOPTS = 0x4 - IPV6_2292HOPLIMIT = 0x8 - IPV6_2292HOPOPTS = 0x3 - IPV6_2292PKTINFO = 0x2 - IPV6_2292PKTOPTIONS = 0x6 - IPV6_2292RTHDR = 0x5 - IPV6_ADDRFORM = 0x1 - IPV6_ADD_MEMBERSHIP = 0x14 - IPV6_AUTHHDR = 0xa - IPV6_CHECKSUM = 0x7 - IPV6_DONTFRAG = 0x3e - IPV6_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - IPV6_HDRINCL = 0x24 - IPV6_HOPLIMIT = 0x34 - IPV6_HOPOPTS = 0x36 - IPV6_IPSEC_POLICY = 0x22 - IPV6_JOIN_ANYCAST = 0x1b - IPV6_JOIN_GROUP = 0x14 - IPV6_LEAVE_ANYCAST = 0x1c - IPV6_LEAVE_GROUP = 0x15 - IPV6_MTU = 0x18 - IPV6_MTU_DISCOVER = 0x17 - IPV6_MULTICAST_HOPS = 0x12 - IPV6_MULTICAST_IF = 0x11 - IPV6_MULTICAST_LOOP = 0x13 - IPV6_NEXTHOP = 0x9 - IPV6_PATHMTU = 0x3d - IPV6_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_INTERFACE = 0x4 - IPV6_PMTUDISC_OMIT = 0x5 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVPATHMTU = 0x3c - IPV6_RECVPKTINFO = 0x31 - IPV6_RECVRTHDR = 0x38 - IPV6_RECVTCLASS = 0x42 - IPV6_ROUTER_ALERT = 0x16 - IPV6_RTHDR = 0x39 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RXDSTOPTS = 0x3b - IPV6_RXHOPOPTS = 0x36 - IPV6_TCLASS = 0x43 - IPV6_UNICAST_HOPS = 0x10 - IPV6_V6ONLY = 0x1a - IPV6_XFRM_POLICY = 0x23 - IP_ADD_MEMBERSHIP = 0x23 - IP_ADD_SOURCE_MEMBERSHIP = 0x27 - IP_BIND_ADDRESS_NO_PORT = 0x18 - IP_BLOCK_SOURCE = 0x26 - IP_CHECKSUM = 0x17 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0x24 - IP_DROP_SOURCE_MEMBERSHIP = 0x28 - IP_FREEBIND = 0xf - IP_HDRINCL = 0x3 - IP_IPSEC_POLICY = 0x10 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINTTL = 0x15 - IP_MSFILTER = 0x29 - IP_MSS = 0x240 - IP_MTU = 0xe - IP_MTU_DISCOVER = 0xa - IP_MULTICAST_ALL = 0x31 - IP_MULTICAST_IF = 0x20 - IP_MULTICAST_LOOP = 0x22 - IP_MULTICAST_TTL = 0x21 - IP_NODEFRAG = 0x16 - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x4 - IP_ORIGDSTADDR = 0x14 - IP_PASSSEC = 0x12 - IP_PKTINFO = 0x8 - IP_PKTOPTIONS = 0x9 - IP_PMTUDISC = 0xa - IP_PMTUDISC_DO = 0x2 - IP_PMTUDISC_DONT = 0x0 - IP_PMTUDISC_INTERFACE = 0x4 - IP_PMTUDISC_OMIT = 0x5 - IP_PMTUDISC_PROBE = 0x3 - IP_PMTUDISC_WANT = 0x1 - IP_RECVERR = 0xb - IP_RECVOPTS = 0x6 - IP_RECVORIGDSTADDR = 0x14 - IP_RECVRETOPTS = 0x7 - IP_RECVTOS = 0xd - IP_RECVTTL = 0xc - IP_RETOPTS = 0x7 - IP_RF = 0x8000 - IP_ROUTER_ALERT = 0x5 - IP_TOS = 0x1 - IP_TRANSPARENT = 0x13 - IP_TTL = 0x2 - IP_UNBLOCK_SOURCE = 0x25 - IP_UNICAST_IF = 0x32 - IP_XFRM_POLICY = 0x11 - ISIG = 0x1 - ISTRIP = 0x20 - IUCLC = 0x200 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x1000 - IXON = 0x400 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef - LINUX_REBOOT_CMD_HALT = 0xcdef0123 - LINUX_REBOOT_CMD_KEXEC = 0x45584543 - LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc - LINUX_REBOOT_CMD_RESTART = 0x1234567 - LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 - LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 - LINUX_REBOOT_MAGIC1 = 0xfee1dead - LINUX_REBOOT_MAGIC2 = 0x28121969 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DODUMP = 0x11 - MADV_DOFORK = 0xb - MADV_DONTDUMP = 0x10 - MADV_DONTFORK = 0xa - MADV_DONTNEED = 0x4 - MADV_FREE = 0x8 - MADV_HUGEPAGE = 0xe - MADV_HWPOISON = 0x64 - MADV_MERGEABLE = 0xc - MADV_NOHUGEPAGE = 0xf - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_REMOVE = 0x9 - MADV_SEQUENTIAL = 0x2 - MADV_UNMERGEABLE = 0xd - MADV_WILLNEED = 0x3 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_GROWSDOWN = 0x200 - MAP_HUGETLB = 0x40000 - MAP_HUGE_MASK = 0x3f - MAP_HUGE_SHIFT = 0x1a - MAP_LOCKED = 0x100 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x40 - MAP_POPULATE = 0x8000 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 - MAP_SHARED = 0x1 - MAP_STACK = 0x20000 - MAP_TYPE = 0xf - MCL_CURRENT = 0x2000 - MCL_FUTURE = 0x4000 - MCL_ONFAULT = 0x8000 - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - MSG_BATCH = 0x40000 - MSG_CMSG_CLOEXEC = 0x40000000 - MSG_CONFIRM = 0x800 - MSG_CTRUNC = 0x8 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x40 - MSG_EOR = 0x80 - MSG_ERRQUEUE = 0x2000 - MSG_FASTOPEN = 0x20000000 - MSG_FIN = 0x200 - MSG_MORE = 0x8000 - MSG_NOSIGNAL = 0x4000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_PROXY = 0x10 - MSG_RST = 0x1000 - MSG_SYN = 0x400 - MSG_TRUNC = 0x20 - MSG_TRYHARD = 0x4 - MSG_WAITALL = 0x100 - MSG_WAITFORONE = 0x10000 - MS_ACTIVE = 0x40000000 - MS_ASYNC = 0x1 - MS_BIND = 0x1000 - MS_DIRSYNC = 0x80 - MS_INVALIDATE = 0x2 - MS_I_VERSION = 0x800000 - MS_KERNMOUNT = 0x400000 - MS_LAZYTIME = 0x2000000 - MS_MANDLOCK = 0x40 - MS_MGC_MSK = 0xffff0000 - MS_MGC_VAL = 0xc0ed0000 - MS_MOVE = 0x2000 - MS_NOATIME = 0x400 - MS_NODEV = 0x4 - MS_NODIRATIME = 0x800 - MS_NOEXEC = 0x8 - MS_NOSUID = 0x2 - MS_NOUSER = -0x80000000 - MS_POSIXACL = 0x10000 - MS_PRIVATE = 0x40000 - MS_RDONLY = 0x1 - MS_REC = 0x4000 - MS_RELATIME = 0x200000 - MS_REMOUNT = 0x20 - MS_RMT_MASK = 0x2800051 - MS_SHARED = 0x100000 - MS_SILENT = 0x8000 - MS_SLAVE = 0x80000 - MS_STRICTATIME = 0x1000000 - MS_SYNC = 0x4 - MS_SYNCHRONOUS = 0x10 - MS_UNBINDABLE = 0x20000 - NAME_MAX = 0xff - NETLINK_ADD_MEMBERSHIP = 0x1 - NETLINK_AUDIT = 0x9 - NETLINK_BROADCAST_ERROR = 0x4 - NETLINK_CAP_ACK = 0xa - NETLINK_CONNECTOR = 0xb - NETLINK_CRYPTO = 0x15 - NETLINK_DNRTMSG = 0xe - NETLINK_DROP_MEMBERSHIP = 0x2 - NETLINK_ECRYPTFS = 0x13 - NETLINK_FIB_LOOKUP = 0xa - NETLINK_FIREWALL = 0x3 - NETLINK_GENERIC = 0x10 - NETLINK_INET_DIAG = 0x4 - NETLINK_IP6_FW = 0xd - NETLINK_ISCSI = 0x8 - NETLINK_KOBJECT_UEVENT = 0xf - NETLINK_LISTEN_ALL_NSID = 0x8 - NETLINK_LIST_MEMBERSHIPS = 0x9 - NETLINK_NETFILTER = 0xc - NETLINK_NFLOG = 0x5 - NETLINK_NO_ENOBUFS = 0x5 - NETLINK_PKTINFO = 0x3 - NETLINK_RDMA = 0x14 - NETLINK_ROUTE = 0x0 - NETLINK_RX_RING = 0x6 - NETLINK_SCSITRANSPORT = 0x12 - NETLINK_SELINUX = 0x7 - NETLINK_SOCK_DIAG = 0x4 - NETLINK_TX_RING = 0x7 - NETLINK_UNUSED = 0x1 - NETLINK_USERSOCK = 0x2 - NETLINK_XFRM = 0x6 - NL0 = 0x0 - NL1 = 0x100 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - NLDLY = 0x100 - NLMSG_ALIGNTO = 0x4 - NLMSG_DONE = 0x3 - NLMSG_ERROR = 0x2 - NLMSG_HDRLEN = 0x10 - NLMSG_MIN_TYPE = 0x10 - NLMSG_NOOP = 0x1 - NLMSG_OVERRUN = 0x4 - NLM_F_ACK = 0x4 - NLM_F_APPEND = 0x800 - NLM_F_ATOMIC = 0x400 - NLM_F_CREATE = 0x400 - NLM_F_DUMP = 0x300 - NLM_F_DUMP_FILTERED = 0x20 - NLM_F_DUMP_INTR = 0x10 - NLM_F_ECHO = 0x8 - NLM_F_EXCL = 0x200 - NLM_F_MATCH = 0x200 - NLM_F_MULTI = 0x2 - NLM_F_REPLACE = 0x100 - NLM_F_REQUEST = 0x1 - NLM_F_ROOT = 0x100 - NOFLSH = 0x80 - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x2 - ONLCR = 0x4 - ONLRET = 0x20 - ONOCR = 0x10 - OPOST = 0x1 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x400000 - O_CREAT = 0x200 - O_DIRECT = 0x100000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x2000 - O_EXCL = 0x800 - O_FSYNC = 0x802000 - O_LARGEFILE = 0x0 - O_NDELAY = 0x4004 - O_NOATIME = 0x200000 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x4000 - O_PATH = 0x1000000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x802000 - O_SYNC = 0x802000 - O_TMPFILE = 0x2010000 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PACKET_ADD_MEMBERSHIP = 0x1 - PACKET_AUXDATA = 0x8 - PACKET_BROADCAST = 0x1 - PACKET_COPY_THRESH = 0x7 - PACKET_DROP_MEMBERSHIP = 0x2 - PACKET_FANOUT = 0x12 - PACKET_FANOUT_CBPF = 0x6 - PACKET_FANOUT_CPU = 0x2 - PACKET_FANOUT_DATA = 0x16 - PACKET_FANOUT_EBPF = 0x7 - PACKET_FANOUT_FLAG_DEFRAG = 0x8000 - PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 - PACKET_FANOUT_HASH = 0x0 - PACKET_FANOUT_LB = 0x1 - PACKET_FANOUT_QM = 0x5 - PACKET_FANOUT_RND = 0x4 - PACKET_FANOUT_ROLLOVER = 0x3 - PACKET_FASTROUTE = 0x6 - PACKET_HDRLEN = 0xb - PACKET_HOST = 0x0 - PACKET_KERNEL = 0x7 - PACKET_LOOPBACK = 0x5 - PACKET_LOSS = 0xe - PACKET_MR_ALLMULTI = 0x2 - PACKET_MR_MULTICAST = 0x0 - PACKET_MR_PROMISC = 0x1 - PACKET_MR_UNICAST = 0x3 - PACKET_MULTICAST = 0x2 - PACKET_ORIGDEV = 0x9 - PACKET_OTHERHOST = 0x3 - PACKET_OUTGOING = 0x4 - PACKET_QDISC_BYPASS = 0x14 - PACKET_RECV_OUTPUT = 0x3 - PACKET_RESERVE = 0xc - PACKET_ROLLOVER_STATS = 0x15 - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - PACKET_TIMESTAMP = 0x11 - PACKET_TX_HAS_OFF = 0x13 - PACKET_TX_RING = 0xd - PACKET_TX_TIMESTAMP = 0x10 - PACKET_USER = 0x6 - PACKET_VERSION = 0xa - PACKET_VNET_HDR = 0xf - PARENB = 0x100 - PARITY_CRC16_PR0 = 0x2 - PARITY_CRC16_PR0_CCITT = 0x4 - PARITY_CRC16_PR1 = 0x3 - PARITY_CRC16_PR1_CCITT = 0x5 - PARITY_CRC32_PR0_CCITT = 0x6 - PARITY_CRC32_PR1_CCITT = 0x7 - PARITY_DEFAULT = 0x0 - PARITY_NONE = 0x1 - PARMRK = 0x8 - PARODD = 0x200 - PENDIN = 0x4000 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_GROWSDOWN = 0x1000000 - PROT_GROWSUP = 0x2000000 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PR_CAPBSET_DROP = 0x18 - PR_CAPBSET_READ = 0x17 - PR_CAP_AMBIENT = 0x2f - PR_CAP_AMBIENT_CLEAR_ALL = 0x4 - PR_CAP_AMBIENT_IS_SET = 0x1 - PR_CAP_AMBIENT_LOWER = 0x3 - PR_CAP_AMBIENT_RAISE = 0x2 - PR_ENDIAN_BIG = 0x0 - PR_ENDIAN_LITTLE = 0x1 - PR_ENDIAN_PPC_LITTLE = 0x2 - PR_FPEMU_NOPRINT = 0x1 - PR_FPEMU_SIGFPE = 0x2 - PR_FP_EXC_ASYNC = 0x2 - PR_FP_EXC_DISABLED = 0x0 - PR_FP_EXC_DIV = 0x10000 - PR_FP_EXC_INV = 0x100000 - PR_FP_EXC_NONRECOV = 0x1 - PR_FP_EXC_OVF = 0x20000 - PR_FP_EXC_PRECISE = 0x3 - PR_FP_EXC_RES = 0x80000 - PR_FP_EXC_SW_ENABLE = 0x80 - PR_FP_EXC_UND = 0x40000 - PR_FP_MODE_FR = 0x1 - PR_FP_MODE_FRE = 0x2 - PR_GET_CHILD_SUBREAPER = 0x25 - PR_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - PR_GET_FP_MODE = 0x2e - PR_GET_KEEPCAPS = 0x7 - PR_GET_NAME = 0x10 - PR_GET_NO_NEW_PRIVS = 0x27 - PR_GET_PDEATHSIG = 0x2 - PR_GET_SECCOMP = 0x15 - PR_GET_SECUREBITS = 0x1b - PR_GET_THP_DISABLE = 0x2a - PR_GET_TID_ADDRESS = 0x28 - PR_GET_TIMERSLACK = 0x1e - PR_GET_TIMING = 0xd - PR_GET_TSC = 0x19 - PR_GET_UNALIGN = 0x5 - PR_MCE_KILL = 0x21 - PR_MCE_KILL_CLEAR = 0x0 - PR_MCE_KILL_DEFAULT = 0x2 - PR_MCE_KILL_EARLY = 0x1 - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_SET_CHILD_SUBREAPER = 0x24 - PR_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - PR_SET_FP_MODE = 0x2d - PR_SET_KEEPCAPS = 0x8 - PR_SET_MM = 0x23 - PR_SET_MM_ARG_END = 0x9 - PR_SET_MM_ARG_START = 0x8 - PR_SET_MM_AUXV = 0xc - PR_SET_MM_BRK = 0x7 - PR_SET_MM_END_CODE = 0x2 - PR_SET_MM_END_DATA = 0x4 - PR_SET_MM_ENV_END = 0xb - PR_SET_MM_ENV_START = 0xa - PR_SET_MM_EXE_FILE = 0xd - PR_SET_MM_MAP = 0xe - PR_SET_MM_MAP_SIZE = 0xf - PR_SET_MM_START_BRK = 0x6 - PR_SET_MM_START_CODE = 0x1 - PR_SET_MM_START_DATA = 0x3 - PR_SET_MM_START_STACK = 0x5 - PR_SET_NAME = 0xf - PR_SET_NO_NEW_PRIVS = 0x26 - PR_SET_PDEATHSIG = 0x1 - PR_SET_PTRACER = 0x59616d61 - PR_SET_PTRACER_ANY = -0x1 - PR_SET_SECCOMP = 0x16 - PR_SET_SECUREBITS = 0x1c - PR_SET_THP_DISABLE = 0x29 - PR_SET_TIMERSLACK = 0x1d - PR_SET_TIMING = 0xe - PR_SET_TSC = 0x1a - PR_SET_UNALIGN = 0x6 - PR_TASK_PERF_EVENTS_DISABLE = 0x1f - PR_TASK_PERF_EVENTS_ENABLE = 0x20 - PR_TIMING_STATISTICAL = 0x0 - PR_TIMING_TIMESTAMP = 0x1 - PR_TSC_ENABLE = 0x1 - PR_TSC_SIGSEGV = 0x2 - PR_UNALIGN_NOPRINT = 0x1 - PR_UNALIGN_SIGBUS = 0x2 - PTRACE_ATTACH = 0x10 - PTRACE_CONT = 0x7 - PTRACE_DETACH = 0x11 - PTRACE_EVENT_CLONE = 0x3 - PTRACE_EVENT_EXEC = 0x4 - PTRACE_EVENT_EXIT = 0x6 - PTRACE_EVENT_FORK = 0x1 - PTRACE_EVENT_SECCOMP = 0x7 - PTRACE_EVENT_STOP = 0x80 - PTRACE_EVENT_VFORK = 0x2 - PTRACE_EVENT_VFORK_DONE = 0x5 - PTRACE_GETEVENTMSG = 0x4201 - PTRACE_GETFPAREGS = 0x14 - PTRACE_GETFPREGS = 0xe - PTRACE_GETFPREGS64 = 0x19 - PTRACE_GETREGS = 0xc - PTRACE_GETREGS64 = 0x16 - PTRACE_GETREGSET = 0x4204 - PTRACE_GETSIGINFO = 0x4202 - PTRACE_GETSIGMASK = 0x420a - PTRACE_INTERRUPT = 0x4207 - PTRACE_KILL = 0x8 - PTRACE_LISTEN = 0x4208 - PTRACE_O_EXITKILL = 0x100000 - PTRACE_O_MASK = 0x3000ff - PTRACE_O_SUSPEND_SECCOMP = 0x200000 - PTRACE_O_TRACECLONE = 0x8 - PTRACE_O_TRACEEXEC = 0x10 - PTRACE_O_TRACEEXIT = 0x40 - PTRACE_O_TRACEFORK = 0x2 - PTRACE_O_TRACESECCOMP = 0x80 - PTRACE_O_TRACESYSGOOD = 0x1 - PTRACE_O_TRACEVFORK = 0x4 - PTRACE_O_TRACEVFORKDONE = 0x20 - PTRACE_PEEKDATA = 0x2 - PTRACE_PEEKSIGINFO = 0x4209 - PTRACE_PEEKSIGINFO_SHARED = 0x1 - PTRACE_PEEKTEXT = 0x1 - PTRACE_PEEKUSR = 0x3 - PTRACE_POKEDATA = 0x5 - PTRACE_POKETEXT = 0x4 - PTRACE_POKEUSR = 0x6 - PTRACE_READDATA = 0x10 - PTRACE_READTEXT = 0x12 - PTRACE_SECCOMP_GET_FILTER = 0x420c - PTRACE_SEIZE = 0x4206 - PTRACE_SETFPAREGS = 0x15 - PTRACE_SETFPREGS = 0xf - PTRACE_SETFPREGS64 = 0x1a - PTRACE_SETOPTIONS = 0x4200 - PTRACE_SETREGS = 0xd - PTRACE_SETREGS64 = 0x17 - PTRACE_SETREGSET = 0x4205 - PTRACE_SETSIGINFO = 0x4203 - PTRACE_SETSIGMASK = 0x420b - PTRACE_SINGLESTEP = 0x9 - PTRACE_SPARC_DETACH = 0xb - PTRACE_SYSCALL = 0x18 - PTRACE_TRACEME = 0x0 - PTRACE_WRITEDATA = 0x11 - PTRACE_WRITETEXT = 0x13 - PT_FP = 0x48 - PT_G0 = 0x10 - PT_G1 = 0x14 - PT_G2 = 0x18 - PT_G3 = 0x1c - PT_G4 = 0x20 - PT_G5 = 0x24 - PT_G6 = 0x28 - PT_G7 = 0x2c - PT_I0 = 0x30 - PT_I1 = 0x34 - PT_I2 = 0x38 - PT_I3 = 0x3c - PT_I4 = 0x40 - PT_I5 = 0x44 - PT_I6 = 0x48 - PT_I7 = 0x4c - PT_NPC = 0x8 - PT_PC = 0x4 - PT_PSR = 0x0 - PT_REGS_MAGIC = 0x57ac6c00 - PT_TNPC = 0x90 - PT_TPC = 0x88 - PT_TSTATE = 0x80 - PT_V9_FP = 0x70 - PT_V9_G0 = 0x0 - PT_V9_G1 = 0x8 - PT_V9_G2 = 0x10 - PT_V9_G3 = 0x18 - PT_V9_G4 = 0x20 - PT_V9_G5 = 0x28 - PT_V9_G6 = 0x30 - PT_V9_G7 = 0x38 - PT_V9_I0 = 0x40 - PT_V9_I1 = 0x48 - PT_V9_I2 = 0x50 - PT_V9_I3 = 0x58 - PT_V9_I4 = 0x60 - PT_V9_I5 = 0x68 - PT_V9_I6 = 0x70 - PT_V9_I7 = 0x78 - PT_V9_MAGIC = 0x9c - PT_V9_TNPC = 0x90 - PT_V9_TPC = 0x88 - PT_V9_TSTATE = 0x80 - PT_V9_Y = 0x98 - PT_WIM = 0x10 - PT_Y = 0xc - RLIMIT_AS = 0x9 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_NOFILE = 0x6 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = -0x1 - RTAX_ADVMSS = 0x8 - RTAX_CC_ALGO = 0x10 - RTAX_CWND = 0x7 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_MASK = 0xf - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0x10 - RTAX_MTU = 0x2 - RTAX_QUICKACK = 0xf - RTAX_REORDERING = 0x9 - RTAX_RTO_MIN = 0xd - RTAX_RTT = 0x4 - RTAX_RTTVAR = 0x5 - RTAX_SSTHRESH = 0x6 - RTAX_UNSPEC = 0x0 - RTAX_WINDOW = 0x3 - RTA_ALIGNTO = 0x4 - RTA_MAX = 0x18 - RTCF_DIRECTSRC = 0x4000000 - RTCF_DOREDIRECT = 0x1000000 - RTCF_LOG = 0x2000000 - RTCF_MASQ = 0x400000 - RTCF_NAT = 0x800000 - RTCF_VALVE = 0x200000 - RTF_ADDRCLASSMASK = 0xf8000000 - RTF_ADDRCONF = 0x40000 - RTF_ALLONLINK = 0x20000 - RTF_BROADCAST = 0x10000000 - RTF_CACHE = 0x1000000 - RTF_DEFAULT = 0x10000 - RTF_DYNAMIC = 0x10 - RTF_FLOW = 0x2000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_INTERFACE = 0x40000000 - RTF_IRTT = 0x100 - RTF_LINKRT = 0x100000 - RTF_LOCAL = 0x80000000 - RTF_MODIFIED = 0x20 - RTF_MSS = 0x40 - RTF_MTU = 0x40 - RTF_MULTICAST = 0x20000000 - RTF_NAT = 0x8000000 - RTF_NOFORWARD = 0x1000 - RTF_NONEXTHOP = 0x200000 - RTF_NOPMTUDISC = 0x4000 - RTF_POLICY = 0x4000000 - RTF_REINSTATE = 0x8 - RTF_REJECT = 0x200 - RTF_STATIC = 0x400 - RTF_THROW = 0x2000 - RTF_UP = 0x1 - RTF_WINDOW = 0x80 - RTF_XRESOLVE = 0x800 - RTM_BASE = 0x10 - RTM_DELACTION = 0x31 - RTM_DELADDR = 0x15 - RTM_DELADDRLABEL = 0x49 - RTM_DELLINK = 0x11 - RTM_DELMDB = 0x55 - RTM_DELNEIGH = 0x1d - RTM_DELNSID = 0x59 - RTM_DELQDISC = 0x25 - RTM_DELROUTE = 0x19 - RTM_DELRULE = 0x21 - RTM_DELTCLASS = 0x29 - RTM_DELTFILTER = 0x2d - RTM_F_CLONED = 0x200 - RTM_F_EQUALIZE = 0x400 - RTM_F_LOOKUP_TABLE = 0x1000 - RTM_F_NOTIFY = 0x100 - RTM_F_PREFIX = 0x800 - RTM_GETACTION = 0x32 - RTM_GETADDR = 0x16 - RTM_GETADDRLABEL = 0x4a - RTM_GETANYCAST = 0x3e - RTM_GETDCB = 0x4e - RTM_GETLINK = 0x12 - RTM_GETMDB = 0x56 - RTM_GETMULTICAST = 0x3a - RTM_GETNEIGH = 0x1e - RTM_GETNEIGHTBL = 0x42 - RTM_GETNETCONF = 0x52 - RTM_GETNSID = 0x5a - RTM_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETSTATS = 0x5e - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_MAX = 0x5f - RTM_NEWACTION = 0x30 - RTM_NEWADDR = 0x14 - RTM_NEWADDRLABEL = 0x48 - RTM_NEWLINK = 0x10 - RTM_NEWMDB = 0x54 - RTM_NEWNDUSEROPT = 0x44 - RTM_NEWNEIGH = 0x1c - RTM_NEWNEIGHTBL = 0x40 - RTM_NEWNETCONF = 0x50 - RTM_NEWNSID = 0x58 - RTM_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWSTATS = 0x5c - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NR_FAMILIES = 0x14 - RTM_NR_MSGTYPES = 0x50 - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTNH_ALIGNTO = 0x4 - RTNH_COMPARE_MASK = 0x11 - RTNH_F_DEAD = 0x1 - RTNH_F_LINKDOWN = 0x10 - RTNH_F_OFFLOAD = 0x8 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTN_MAX = 0xb - RTPROT_BABEL = 0x2a - RTPROT_BIRD = 0xc - RTPROT_BOOT = 0x3 - RTPROT_DHCP = 0x10 - RTPROT_DNROUTED = 0xd - RTPROT_GATED = 0x8 - RTPROT_KERNEL = 0x2 - RTPROT_MROUTED = 0x11 - RTPROT_MRT = 0xa - RTPROT_NTK = 0xf - RTPROT_RA = 0x9 - RTPROT_REDIRECT = 0x1 - RTPROT_STATIC = 0x4 - RTPROT_UNSPEC = 0x0 - RTPROT_XORP = 0xe - RTPROT_ZEBRA = 0xb - RT_CLASS_DEFAULT = 0xfd - RT_CLASS_LOCAL = 0xff - RT_CLASS_MAIN = 0xfe - RT_CLASS_MAX = 0xff - RT_CLASS_UNSPEC = 0x0 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_CREDENTIALS = 0x2 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d - SCM_TIMESTAMPING = 0x23 - SCM_TIMESTAMPNS = 0x21 - SCM_WIFI_STATUS = 0x25 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCATMARK = 0x8905 - SIOCBONDCHANGEACTIVE = 0x8995 - SIOCBONDENSLAVE = 0x8990 - SIOCBONDINFOQUERY = 0x8994 - SIOCBONDRELEASE = 0x8991 - SIOCBONDSETHWADDR = 0x8992 - SIOCBONDSLAVEINFOQUERY = 0x8993 - SIOCBRADDBR = 0x89a0 - SIOCBRADDIF = 0x89a2 - SIOCBRDELBR = 0x89a1 - SIOCBRDELIF = 0x89a3 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCETHTOOL = 0x8946 - SIOCGARP = 0x8954 - SIOCGHWTSTAMP = 0x89b1 - SIOCGIFADDR = 0x8915 - SIOCGIFBR = 0x8940 - SIOCGIFBRDADDR = 0x8919 - SIOCGIFCONF = 0x8912 - SIOCGIFCOUNT = 0x8938 - SIOCGIFDSTADDR = 0x8917 - SIOCGIFENCAP = 0x8925 - SIOCGIFFLAGS = 0x8913 - SIOCGIFHWADDR = 0x8927 - SIOCGIFINDEX = 0x8933 - SIOCGIFMAP = 0x8970 - SIOCGIFMEM = 0x891f - SIOCGIFMETRIC = 0x891d - SIOCGIFMTU = 0x8921 - SIOCGIFNAME = 0x8910 - SIOCGIFNETMASK = 0x891b - SIOCGIFPFLAGS = 0x8935 - SIOCGIFSLAVE = 0x8929 - SIOCGIFTXQLEN = 0x8942 - SIOCGIFVLAN = 0x8982 - SIOCGMIIPHY = 0x8947 - SIOCGMIIREG = 0x8948 - SIOCGPGRP = 0x8904 - SIOCGRARP = 0x8961 - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCINQ = 0x4004667f - SIOCOUTQ = 0x40047473 - SIOCOUTQNSD = 0x894b - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - SIOCSHWTSTAMP = 0x89b0 - SIOCSIFADDR = 0x8916 - SIOCSIFBR = 0x8941 - SIOCSIFBRDADDR = 0x891a - SIOCSIFDSTADDR = 0x8918 - SIOCSIFENCAP = 0x8926 - SIOCSIFFLAGS = 0x8914 - SIOCSIFHWADDR = 0x8924 - SIOCSIFHWBROADCAST = 0x8937 - SIOCSIFLINK = 0x8911 - SIOCSIFMAP = 0x8971 - SIOCSIFMEM = 0x8920 - SIOCSIFMETRIC = 0x891e - SIOCSIFMTU = 0x8922 - SIOCSIFNAME = 0x8923 - SIOCSIFNETMASK = 0x891c - SIOCSIFPFLAGS = 0x8934 - SIOCSIFSLAVE = 0x8930 - SIOCSIFTXQLEN = 0x8943 - SIOCSIFVLAN = 0x8983 - SIOCSMIIREG = 0x8949 - SIOCSPGRP = 0x8902 - SIOCSRARP = 0x8962 - SIOCWANDEV = 0x894a - SOCK_CLOEXEC = 0x400000 - SOCK_DCCP = 0x6 - SOCK_DGRAM = 0x2 - SOCK_NONBLOCK = 0x4000 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_AAL = 0x109 - SOL_ALG = 0x117 - SOL_ATM = 0x108 - SOL_CAIF = 0x116 - SOL_DCCP = 0x10d - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_IUCV = 0x115 - SOL_KCM = 0x119 - SOL_LLC = 0x10c - SOL_NETBEUI = 0x10b - SOL_NETLINK = 0x10e - SOL_NFC = 0x118 - SOL_PACKET = 0x107 - SOL_PNPIPE = 0x113 - SOL_PPPOL2TP = 0x111 - SOL_RAW = 0xff - SOL_RDS = 0x114 - SOL_RXRPC = 0x110 - SOL_SOCKET = 0xffff - SOL_TCP = 0x6 - SOL_TIPC = 0x10f - SOL_X25 = 0x106 - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x8000 - SO_ATTACH_BPF = 0x34 - SO_ATTACH_FILTER = 0x1a - SO_ATTACH_REUSEPORT_CBPF = 0x35 - SO_ATTACH_REUSEPORT_EBPF = 0x36 - SO_BINDTODEVICE = 0xd - SO_BPF_EXTENSIONS = 0x32 - SO_BROADCAST = 0x20 - SO_BSDCOMPAT = 0x400 - SO_BUSY_POLL = 0x30 - SO_CNX_ADVICE = 0x37 - SO_DEBUG = 0x1 - SO_DETACH_BPF = 0x1b - SO_DETACH_FILTER = 0x1b - SO_DOMAIN = 0x1029 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_GET_FILTER = 0x1a - SO_INCOMING_CPU = 0x33 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_LOCK_FILTER = 0x28 - SO_MARK = 0x22 - SO_MAX_PACING_RATE = 0x31 - SO_NOFCS = 0x27 - SO_NO_CHECK = 0xb - SO_OOBINLINE = 0x100 - SO_PASSCRED = 0x2 - SO_PASSSEC = 0x1f - SO_PEEK_OFF = 0x26 - SO_PEERCRED = 0x40 - SO_PEERNAME = 0x1c - SO_PEERSEC = 0x1e - SO_PRIORITY = 0xc - SO_PROTOCOL = 0x1028 - SO_RCVBUF = 0x1002 - SO_RCVBUFFORCE = 0x100b - SO_RCVLOWAT = 0x800 - SO_RCVTIMEO = 0x2000 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_RXQ_OVFL = 0x24 - SO_SECURITY_AUTHENTICATION = 0x5001 - SO_SECURITY_ENCRYPTION_NETWORK = 0x5004 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x5002 - SO_SELECT_ERR_QUEUE = 0x29 - SO_SNDBUF = 0x1001 - SO_SNDBUFFORCE = 0x100a - SO_SNDLOWAT = 0x1000 - SO_SNDTIMEO = 0x4000 - SO_TIMESTAMP = 0x1d - SO_TIMESTAMPING = 0x23 - SO_TIMESTAMPNS = 0x21 - SO_TYPE = 0x1008 - SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 - SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 - SO_VM_SOCKETS_BUFFER_SIZE = 0x0 - SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 - SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 - SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 - SO_VM_SOCKETS_TRUSTED = 0x5 - SO_WIFI_STATUS = 0x25 - SPLICE_F_GIFT = 0x8 - SPLICE_F_MORE = 0x4 - SPLICE_F_MOVE = 0x1 - SPLICE_F_NONBLOCK = 0x2 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TCFLSH = 0x20005407 - TCGETA = 0x40125401 - TCGETS = 0x40245408 - TCGETS2 = 0x402c540c - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_CC_INFO = 0x1a - TCP_CONGESTION = 0xd - TCP_COOKIE_IN_ALWAYS = 0x1 - TCP_COOKIE_MAX = 0x10 - TCP_COOKIE_MIN = 0x8 - TCP_COOKIE_OUT_NEVER = 0x2 - TCP_COOKIE_PAIR_SIZE = 0x20 - TCP_COOKIE_TRANSACTIONS = 0xf - TCP_CORK = 0x3 - TCP_DEFER_ACCEPT = 0x9 - TCP_FASTOPEN = 0x17 - TCP_INFO = 0xb - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x4 - TCP_KEEPINTVL = 0x5 - TCP_LINGER2 = 0x8 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0xe - TCP_MD5SIG_MAXKEYLEN = 0x50 - TCP_MSS = 0x200 - TCP_MSS_DEFAULT = 0x218 - TCP_MSS_DESIRED = 0x4c4 - TCP_NODELAY = 0x1 - TCP_NOTSENT_LOWAT = 0x19 - TCP_QUEUE_SEQ = 0x15 - TCP_QUICKACK = 0xc - TCP_REPAIR = 0x13 - TCP_REPAIR_OPTIONS = 0x16 - TCP_REPAIR_QUEUE = 0x14 - TCP_SAVED_SYN = 0x1c - TCP_SAVE_SYN = 0x1b - TCP_SYNCNT = 0x7 - TCP_S_DATA_IN = 0x4 - TCP_S_DATA_OUT = 0x8 - TCP_THIN_DUPACK = 0x11 - TCP_THIN_LINEAR_TIMEOUTS = 0x10 - TCP_TIMESTAMP = 0x18 - TCP_USER_TIMEOUT = 0x12 - TCP_WINDOW_CLAMP = 0xa - TCSAFLUSH = 0x2 - TCSBRK = 0x20005405 - TCSBRKP = 0x5425 - TCSETA = 0x80125402 - TCSETAF = 0x80125404 - TCSETAW = 0x80125403 - TCSETS = 0x80245409 - TCSETS2 = 0x802c540d - TCSETSF = 0x8024540b - TCSETSF2 = 0x802c540f - TCSETSW = 0x8024540a - TCSETSW2 = 0x802c540e - TCXONC = 0x20005406 - TIOCCBRK = 0x2000747a - TIOCCONS = 0x20007424 - TIOCEXCL = 0x2000740d - TIOCGDEV = 0x40045432 - TIOCGETD = 0x40047400 - TIOCGEXCL = 0x40045440 - TIOCGICOUNT = 0x545d - TIOCGLCKTRMIOS = 0x5456 - TIOCGPGRP = 0x40047483 - TIOCGPKT = 0x40045438 - TIOCGPTLCK = 0x40045439 - TIOCGPTN = 0x40047486 - TIOCGRS485 = 0x40205441 - TIOCGSERIAL = 0x541e - TIOCGSID = 0x40047485 - TIOCGSOFTCAR = 0x40047464 - TIOCGWINSZ = 0x40087468 - TIOCINQ = 0x4004667f - TIOCLINUX = 0x541c - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGET = 0x4004746a - TIOCMIWAIT = 0x545c - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_LOOP = 0x8000 - TIOCM_OUT1 = 0x2000 - TIOCM_OUT2 = 0x4000 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x20007471 - TIOCNXCL = 0x2000740e - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x80047470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007484 - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x80047401 - TIOCSIG = 0x80047488 - TIOCSLCKTRMIOS = 0x5457 - TIOCSPGRP = 0x80047482 - TIOCSPTLCK = 0x80047487 - TIOCSRS485 = 0xc0205442 - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x80047465 - TIOCSTART = 0x2000746e - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCVHANGUP = 0x20005437 - TOSTOP = 0x100 - TUNATTACHFILTER = 0x801054d5 - TUNDETACHFILTER = 0x801054d6 - TUNGETFEATURES = 0x400454cf - TUNGETFILTER = 0x401054db - TUNGETIFF = 0x400454d2 - TUNGETSNDBUF = 0x400454d3 - TUNGETVNETBE = 0x400454df - TUNGETVNETHDRSZ = 0x400454d7 - TUNGETVNETLE = 0x400454dd - TUNSETDEBUG = 0x800454c9 - TUNSETGROUP = 0x800454ce - TUNSETIFF = 0x800454ca - TUNSETIFINDEX = 0x800454da - TUNSETLINK = 0x800454cd - TUNSETNOCSUM = 0x800454c8 - TUNSETOFFLOAD = 0x800454d0 - TUNSETOWNER = 0x800454cc - TUNSETPERSIST = 0x800454cb - TUNSETQUEUE = 0x800454d9 - TUNSETSNDBUF = 0x800454d4 - TUNSETTXFILTER = 0x800454d1 - TUNSETVNETBE = 0x800454de - TUNSETVNETHDRSZ = 0x800454d8 - TUNSETVNETLE = 0x800454dc - VDISCARD = 0xd - VDSUSP = 0xb - VEOF = 0x4 - VEOL = 0x5 - VEOL2 = 0x6 - VERASE = 0x2 - VINTR = 0x0 - VKILL = 0x3 - VLNEXT = 0xf - VMADDR_CID_ANY = 0xffffffff - VMADDR_CID_HOST = 0x2 - VMADDR_CID_HYPERVISOR = 0x0 - VMADDR_CID_RESERVED = 0x1 - VMADDR_PORT_ANY = 0xffffffff - VMIN = 0x4 - VQUIT = 0x1 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VT0 = 0x0 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WALL = 0x40000000 - WCLONE = 0x80000000 - WCONTINUED = 0x8 - WEXITED = 0x4 - WNOHANG = 0x1 - WNOTHREAD = 0x20000000 - WNOWAIT = 0x1000000 - WORDSIZE = 0x40 - WRAP = 0x20000 - WSTOPPED = 0x2 - WUNTRACED = 0x2 - XCASE = 0x4 - XTABS = 0x1800 - __TIOCFLUSH = 0x80047410 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x30) - EADDRNOTAVAIL = syscall.Errno(0x31) - EADV = syscall.Errno(0x53) - EAFNOSUPPORT = syscall.Errno(0x2f) - EAGAIN = syscall.Errno(0xb) - EALREADY = syscall.Errno(0x25) - EBADE = syscall.Errno(0x66) - EBADF = syscall.Errno(0x9) - EBADFD = syscall.Errno(0x5d) - EBADMSG = syscall.Errno(0x4c) - EBADR = syscall.Errno(0x67) - EBADRQC = syscall.Errno(0x6a) - EBADSLT = syscall.Errno(0x6b) - EBFONT = syscall.Errno(0x6d) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x7f) - ECHILD = syscall.Errno(0xa) - ECHRNG = syscall.Errno(0x5e) - ECOMM = syscall.Errno(0x55) - ECONNABORTED = syscall.Errno(0x35) - ECONNREFUSED = syscall.Errno(0x3d) - ECONNRESET = syscall.Errno(0x36) - EDEADLK = syscall.Errno(0x4e) - EDEADLOCK = syscall.Errno(0x6c) - EDESTADDRREQ = syscall.Errno(0x27) - EDOM = syscall.Errno(0x21) - EDOTDOT = syscall.Errno(0x58) - EDQUOT = syscall.Errno(0x45) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EHOSTDOWN = syscall.Errno(0x40) - EHOSTUNREACH = syscall.Errno(0x41) - EHWPOISON = syscall.Errno(0x87) - EIDRM = syscall.Errno(0x4d) - EILSEQ = syscall.Errno(0x7a) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - EISNAM = syscall.Errno(0x78) - EKEYEXPIRED = syscall.Errno(0x81) - EKEYREJECTED = syscall.Errno(0x83) - EKEYREVOKED = syscall.Errno(0x82) - EL2HLT = syscall.Errno(0x65) - EL2NSYNC = syscall.Errno(0x5f) - EL3HLT = syscall.Errno(0x60) - EL3RST = syscall.Errno(0x61) - ELIBACC = syscall.Errno(0x72) - ELIBBAD = syscall.Errno(0x70) - ELIBEXEC = syscall.Errno(0x6e) - ELIBMAX = syscall.Errno(0x7b) - ELIBSCN = syscall.Errno(0x7c) - ELNRNG = syscall.Errno(0x62) - ELOOP = syscall.Errno(0x3e) - EMEDIUMTYPE = syscall.Errno(0x7e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x57) - ENAMETOOLONG = syscall.Errno(0x3f) - ENAVAIL = syscall.Errno(0x77) - ENETDOWN = syscall.Errno(0x32) - ENETRESET = syscall.Errno(0x34) - ENETUNREACH = syscall.Errno(0x33) - ENFILE = syscall.Errno(0x17) - ENOANO = syscall.Errno(0x69) - ENOBUFS = syscall.Errno(0x37) - ENOCSI = syscall.Errno(0x64) - ENODATA = syscall.Errno(0x6f) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOKEY = syscall.Errno(0x80) - ENOLCK = syscall.Errno(0x4f) - ENOLINK = syscall.Errno(0x52) - ENOMEDIUM = syscall.Errno(0x7d) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x4b) - ENONET = syscall.Errno(0x50) - ENOPKG = syscall.Errno(0x71) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x4a) - ENOSTR = syscall.Errno(0x48) - ENOSYS = syscall.Errno(0x5a) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTNAM = syscall.Errno(0x76) - ENOTRECOVERABLE = syscall.Errno(0x85) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x2d) - ENOTTY = syscall.Errno(0x19) - ENOTUNIQ = syscall.Errno(0x73) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x5c) - EOWNERDEAD = syscall.Errno(0x84) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x2e) - EPIPE = syscall.Errno(0x20) - EPROCLIM = syscall.Errno(0x43) - EPROTO = syscall.Errno(0x56) - EPROTONOSUPPORT = syscall.Errno(0x2b) - EPROTOTYPE = syscall.Errno(0x29) - ERANGE = syscall.Errno(0x22) - EREMCHG = syscall.Errno(0x59) - EREMOTE = syscall.Errno(0x47) - EREMOTEIO = syscall.Errno(0x79) - ERESTART = syscall.Errno(0x74) - ERFKILL = syscall.Errno(0x86) - EROFS = syscall.Errno(0x1e) - ERREMOTE = syscall.Errno(0x51) - ESHUTDOWN = syscall.Errno(0x3a) - ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESRMNT = syscall.Errno(0x54) - ESTALE = syscall.Errno(0x46) - ESTRPIPE = syscall.Errno(0x5b) - ETIME = syscall.Errno(0x49) - ETIMEDOUT = syscall.Errno(0x3c) - ETOOMANYREFS = syscall.Errno(0x3b) - ETXTBSY = syscall.Errno(0x1a) - EUCLEAN = syscall.Errno(0x75) - EUNATCH = syscall.Errno(0x63) - EUSERS = syscall.Errno(0x44) - EWOULDBLOCK = syscall.Errno(0xb) - EXDEV = syscall.Errno(0x12) - EXFULL = syscall.Errno(0x68) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x14) - SIGCLD = syscall.Signal(0x14) - SIGCONT = syscall.Signal(0x13) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x17) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGLOST = syscall.Signal(0x1d) - SIGPIPE = syscall.Signal(0xd) - SIGPOLL = syscall.Signal(0x17) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x1d) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x12) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x10) - SIGUSR1 = syscall.Signal(0x1e) - SIGUSR2 = syscall.Signal(0x1f) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errors = [...]string{ - 1: "operation not permitted", - 2: "no such file or directory", - 3: "no such process", - 4: "interrupted system call", - 5: "input/output error", - 6: "no such device or address", - 7: "argument list too long", - 8: "exec format error", - 9: "bad file descriptor", - 10: "no child processes", - 11: "resource temporarily unavailable", - 12: "cannot allocate memory", - 13: "permission denied", - 14: "bad address", - 15: "block device required", - 16: "device or resource busy", - 17: "file exists", - 18: "invalid cross-device link", - 19: "no such device", - 20: "not a directory", - 21: "is a directory", - 22: "invalid argument", - 23: "too many open files in system", - 24: "too many open files", - 25: "inappropriate ioctl for device", - 26: "text file busy", - 27: "file too large", - 28: "no space left on device", - 29: "illegal seek", - 30: "read-only file system", - 31: "too many links", - 32: "broken pipe", - 33: "numerical argument out of domain", - 34: "numerical result out of range", - 36: "operation now in progress", - 37: "operation already in progress", - 38: "socket operation on non-socket", - 39: "destination address required", - 40: "message too long", - 41: "protocol wrong type for socket", - 42: "protocol not available", - 43: "protocol not supported", - 44: "socket type not supported", - 45: "operation not supported", - 46: "protocol family not supported", - 47: "address family not supported by protocol", - 48: "address already in use", - 49: "cannot assign requested address", - 50: "network is down", - 51: "network is unreachable", - 52: "network dropped connection on reset", - 53: "software caused connection abort", - 54: "connection reset by peer", - 55: "no buffer space available", - 56: "transport endpoint is already connected", - 57: "transport endpoint is not connected", - 58: "cannot send after transport endpoint shutdown", - 59: "too many references: cannot splice", - 60: "connection timed out", - 61: "connection refused", - 62: "too many levels of symbolic links", - 63: "file name too long", - 64: "host is down", - 65: "no route to host", - 66: "directory not empty", - 67: "too many processes", - 68: "too many users", - 69: "disk quota exceeded", - 70: "stale file handle", - 71: "object is remote", - 72: "device not a stream", - 73: "timer expired", - 74: "out of streams resources", - 75: "no message of desired type", - 76: "bad message", - 77: "identifier removed", - 78: "resource deadlock avoided", - 79: "no locks available", - 80: "machine is not on the network", - 81: "unknown error 81", - 82: "link has been severed", - 83: "advertise error", - 84: "srmount error", - 85: "communication error on send", - 86: "protocol error", - 87: "multihop attempted", - 88: "RFS specific error", - 89: "remote address changed", - 90: "function not implemented", - 91: "streams pipe error", - 92: "value too large for defined data type", - 93: "file descriptor in bad state", - 94: "channel number out of range", - 95: "level 2 not synchronized", - 96: "level 3 halted", - 97: "level 3 reset", - 98: "link number out of range", - 99: "protocol driver not attached", - 100: "no CSI structure available", - 101: "level 2 halted", - 102: "invalid exchange", - 103: "invalid request descriptor", - 104: "exchange full", - 105: "no anode", - 106: "invalid request code", - 107: "invalid slot", - 108: "file locking deadlock error", - 109: "bad font file format", - 110: "cannot exec a shared library directly", - 111: "no data available", - 112: "accessing a corrupted shared library", - 113: "package not installed", - 114: "can not access a needed shared library", - 115: "name not unique on network", - 116: "interrupted system call should be restarted", - 117: "structure needs cleaning", - 118: "not a XENIX named type file", - 119: "no XENIX semaphores available", - 120: "is a named type file", - 121: "remote I/O error", - 122: "invalid or incomplete multibyte or wide character", - 123: "attempting to link in too many shared libraries", - 124: ".lib section in a.out corrupted", - 125: "no medium found", - 126: "wrong medium type", - 127: "operation canceled", - 128: "required key not available", - 129: "key has expired", - 130: "key has been revoked", - 131: "key was rejected by service", - 132: "owner died", - 133: "state not recoverable", - 134: "operation not possible due to RF-kill", - 135: "memory page has hardware error", -} - -// Signal table -var signals = [...]string{ - 1: "hangup", - 2: "interrupt", - 3: "quit", - 4: "illegal instruction", - 5: "trace/breakpoint trap", - 6: "aborted", - 7: "EMT trap", - 8: "floating point exception", - 9: "killed", - 10: "bus error", - 11: "segmentation fault", - 12: "bad system call", - 13: "broken pipe", - 14: "alarm clock", - 15: "terminated", - 16: "urgent I/O condition", - 17: "stopped (signal)", - 18: "stopped", - 19: "continued", - 20: "child exited", - 21: "stopped (tty input)", - 22: "stopped (tty output)", - 23: "I/O possible", - 24: "CPU time limit exceeded", - 25: "file size limit exceeded", - 26: "virtual timer expired", - 27: "profiling timer expired", - 28: "window changed", - 29: "resource lost", - 30: "user defined signal 1", - 31: "user defined signal 2", -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go deleted file mode 100644 index b4338d5..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go +++ /dev/null @@ -1,1712 +0,0 @@ -// mkerrors.sh -m32 -// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT - -// +build 386,netbsd - -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs -- -m32 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_ARP = 0x1c - AF_BLUETOOTH = 0x1f - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_CNT = 0x15 - AF_COIP = 0x14 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_E164 = 0x1a - AF_ECMA = 0x8 - AF_HYLINK = 0xf - AF_IEEE80211 = 0x20 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x18 - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x23 - AF_MPLS = 0x21 - AF_NATM = 0x1b - AF_NS = 0x6 - AF_OROUTE = 0x11 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x22 - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - ARPHRD_ARCNET = 0x7 - ARPHRD_ETHER = 0x1 - ARPHRD_FRELAY = 0xf - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_STRIP = 0x17 - B0 = 0x0 - B110 = 0x6e - B115200 = 0x1c200 - B1200 = 0x4b0 - B134 = 0x86 - B14400 = 0x3840 - B150 = 0x96 - B1800 = 0x708 - B19200 = 0x4b00 - B200 = 0xc8 - B230400 = 0x38400 - B2400 = 0x960 - B28800 = 0x7080 - B300 = 0x12c - B38400 = 0x9600 - B460800 = 0x70800 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B921600 = 0xe1000 - B9600 = 0x2580 - BIOCFEEDBACK = 0x8004427d - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc0084277 - BIOCGETIF = 0x4090426b - BIOCGFEEDBACK = 0x4004427c - BIOCGHDRCMPLT = 0x40044274 - BIOCGRTIMEOUT = 0x400c427b - BIOCGSEESENT = 0x40044278 - BIOCGSTATS = 0x4080426f - BIOCGSTATSOLD = 0x4008426f - BIOCIMMEDIATE = 0x80044270 - BIOCPROMISC = 0x20004269 - BIOCSBLEN = 0xc0044266 - BIOCSDLT = 0x80044276 - BIOCSETF = 0x80084267 - BIOCSETIF = 0x8090426c - BIOCSFEEDBACK = 0x8004427d - BIOCSHDRCMPLT = 0x80044275 - BIOCSRTIMEOUT = 0x800c427a - BIOCSSEESENT = 0x80044279 - BIOCSTCPF = 0x80084272 - BIOCSUDPF = 0x80084273 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x4 - BPF_ALIGNMENT32 = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DFLTBUFSIZE = 0x100000 - BPF_DIV = 0x30 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXBUFSIZE = 0x1000000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_OR = 0x40 - BPF_RELEASE = 0x30bb6 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BRKINT = 0x2 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLONE_CSIGNAL = 0xff - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_PID = 0x1000 - CLONE_PTRACE = 0x2000 - CLONE_SIGHAND = 0x800 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CREAD = 0x800 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_MAXNAME = 0xc - CTL_NET = 0x4 - CTL_QUERY = -0x2 - DIOCBSFLUSH = 0x20006478 - DLT_A429 = 0xb8 - DLT_A653_ICM = 0xb9 - DLT_AIRONET_HEADER = 0x78 - DLT_AOS = 0xde - DLT_APPLE_IP_OVER_IEEE1394 = 0x8a - DLT_ARCNET = 0x7 - DLT_ARCNET_LINUX = 0x81 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_AX25_KISS = 0xca - DLT_BACNET_MS_TP = 0xa5 - DLT_BLUETOOTH_HCI_H4 = 0xbb - DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 - DLT_CAN20B = 0xbe - DLT_CAN_SOCKETCAN = 0xe3 - DLT_CHAOS = 0x5 - DLT_CISCO_IOS = 0x76 - DLT_C_HDLC = 0x68 - DLT_C_HDLC_WITH_DIR = 0xcd - DLT_DECT = 0xdd - DLT_DOCSIS = 0x8f - DLT_ECONET = 0x73 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_ERF = 0xc5 - DLT_ERF_ETH = 0xaf - DLT_ERF_POS = 0xb0 - DLT_FC_2 = 0xe0 - DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 - DLT_FDDI = 0xa - DLT_FLEXRAY = 0xd2 - DLT_FRELAY = 0x6b - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_GSMTAP_ABIS = 0xda - DLT_GSMTAP_UM = 0xd9 - DLT_HDLC = 0x10 - DLT_HHDLC = 0x79 - DLT_HIPPI = 0xf - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_IEEE802_15_4 = 0xc3 - DLT_IEEE802_15_4_LINUX = 0xbf - DLT_IEEE802_15_4_NONASK_PHY = 0xd7 - DLT_IEEE802_16_MAC_CPS = 0xbc - DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 - DLT_IPMB = 0xc7 - DLT_IPMB_LINUX = 0xd1 - DLT_IPNET = 0xe2 - DLT_IPV4 = 0xe4 - DLT_IPV6 = 0xe5 - DLT_IP_OVER_FC = 0x7a - DLT_JUNIPER_ATM1 = 0x89 - DLT_JUNIPER_ATM2 = 0x87 - DLT_JUNIPER_CHDLC = 0xb5 - DLT_JUNIPER_ES = 0x84 - DLT_JUNIPER_ETHER = 0xb2 - DLT_JUNIPER_FRELAY = 0xb4 - DLT_JUNIPER_GGSN = 0x85 - DLT_JUNIPER_ISM = 0xc2 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - DLT_JUNIPER_PPPOE = 0xa7 - DLT_JUNIPER_PPPOE_ATM = 0xa8 - DLT_JUNIPER_SERVICES = 0x88 - DLT_JUNIPER_ST = 0xc8 - DLT_JUNIPER_VP = 0xb7 - DLT_LAPB_WITH_DIR = 0xcf - DLT_LAPD = 0xcb - DLT_LIN = 0xd4 - DLT_LINUX_EVDEV = 0xd8 - DLT_LINUX_IRDA = 0x90 - DLT_LINUX_LAPD = 0xb1 - DLT_LINUX_SLL = 0x71 - DLT_LOOP = 0x6c - DLT_LTALK = 0x72 - DLT_MFR = 0xb6 - DLT_MOST = 0xd3 - DLT_MPLS = 0xdb - DLT_MTP2 = 0x8c - DLT_MTP2_WITH_PHDR = 0x8b - DLT_MTP3 = 0x8d - DLT_NULL = 0x0 - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PPI = 0xc0 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0xe - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PRISM_HEADER = 0x77 - DLT_PRONET = 0x4 - DLT_RAIF1 = 0xc6 - DLT_RAW = 0xc - DLT_RAWAF_MASK = 0x2240000 - DLT_RIO = 0x7c - DLT_SCCP = 0x8e - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xd - DLT_SUNATM = 0x7b - DLT_SYMANTEC_FIREWALL = 0x63 - DLT_TZSP = 0x80 - DLT_USB = 0xba - DLT_USB_LINUX = 0xbd - DLT_USB_LINUX_MMAPPED = 0xdc - DLT_WIHART = 0xdf - DLT_X2E_SERIAL = 0xd5 - DLT_X2E_XORAYA = 0xd6 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EMUL_LINUX = 0x1 - EMUL_LINUX32 = 0x5 - EMUL_MAXID = 0x6 - EN_SW_CTL_INF = 0x1000 - EN_SW_CTL_PREC = 0x300 - EN_SW_CTL_ROUND = 0xc00 - EN_SW_DATACHAIN = 0x80 - EN_SW_DENORM = 0x2 - EN_SW_INVOP = 0x1 - EN_SW_OVERFLOW = 0x8 - EN_SW_PRECLOSS = 0x20 - EN_SW_UNDERFLOW = 0x10 - EN_SW_ZERODIV = 0x4 - ETHERCAP_JUMBO_MTU = 0x4 - ETHERCAP_VLAN_HWTAGGING = 0x2 - ETHERCAP_VLAN_MTU = 0x1 - ETHERMIN = 0x2e - ETHERMTU = 0x5dc - ETHERMTU_JUMBO = 0x2328 - ETHERTYPE_8023 = 0x4 - ETHERTYPE_AARP = 0x80f3 - ETHERTYPE_ACCTON = 0x8390 - ETHERTYPE_AEONIC = 0x8036 - ETHERTYPE_ALPHA = 0x814a - ETHERTYPE_AMBER = 0x6008 - ETHERTYPE_AMOEBA = 0x8145 - ETHERTYPE_APOLLO = 0x80f7 - ETHERTYPE_APOLLODOMAIN = 0x8019 - ETHERTYPE_APPLETALK = 0x809b - ETHERTYPE_APPLITEK = 0x80c7 - ETHERTYPE_ARGONAUT = 0x803a - ETHERTYPE_ARP = 0x806 - ETHERTYPE_AT = 0x809b - ETHERTYPE_ATALK = 0x809b - ETHERTYPE_ATOMIC = 0x86df - ETHERTYPE_ATT = 0x8069 - ETHERTYPE_ATTSTANFORD = 0x8008 - ETHERTYPE_AUTOPHON = 0x806a - ETHERTYPE_AXIS = 0x8856 - ETHERTYPE_BCLOOP = 0x9003 - ETHERTYPE_BOFL = 0x8102 - ETHERTYPE_CABLETRON = 0x7034 - ETHERTYPE_CHAOS = 0x804 - ETHERTYPE_COMDESIGN = 0x806c - ETHERTYPE_COMPUGRAPHIC = 0x806d - ETHERTYPE_COUNTERPOINT = 0x8062 - ETHERTYPE_CRONUS = 0x8004 - ETHERTYPE_CRONUSVLN = 0x8003 - ETHERTYPE_DCA = 0x1234 - ETHERTYPE_DDE = 0x807b - ETHERTYPE_DEBNI = 0xaaaa - ETHERTYPE_DECAM = 0x8048 - ETHERTYPE_DECCUST = 0x6006 - ETHERTYPE_DECDIAG = 0x6005 - ETHERTYPE_DECDNS = 0x803c - ETHERTYPE_DECDTS = 0x803e - ETHERTYPE_DECEXPER = 0x6000 - ETHERTYPE_DECLAST = 0x8041 - ETHERTYPE_DECLTM = 0x803f - ETHERTYPE_DECMUMPS = 0x6009 - ETHERTYPE_DECNETBIOS = 0x8040 - ETHERTYPE_DELTACON = 0x86de - ETHERTYPE_DIDDLE = 0x4321 - ETHERTYPE_DLOG1 = 0x660 - ETHERTYPE_DLOG2 = 0x661 - ETHERTYPE_DN = 0x6003 - ETHERTYPE_DOGFIGHT = 0x1989 - ETHERTYPE_DSMD = 0x8039 - ETHERTYPE_ECMA = 0x803 - ETHERTYPE_ENCRYPT = 0x803d - ETHERTYPE_ES = 0x805d - ETHERTYPE_EXCELAN = 0x8010 - ETHERTYPE_EXPERDATA = 0x8049 - ETHERTYPE_FLIP = 0x8146 - ETHERTYPE_FLOWCONTROL = 0x8808 - ETHERTYPE_FRARP = 0x808 - ETHERTYPE_GENDYN = 0x8068 - ETHERTYPE_HAYES = 0x8130 - ETHERTYPE_HIPPI_FP = 0x8180 - ETHERTYPE_HITACHI = 0x8820 - ETHERTYPE_HP = 0x8005 - ETHERTYPE_IEEEPUP = 0xa00 - ETHERTYPE_IEEEPUPAT = 0xa01 - ETHERTYPE_IMLBL = 0x4c42 - ETHERTYPE_IMLBLDIAG = 0x424c - ETHERTYPE_IP = 0x800 - ETHERTYPE_IPAS = 0x876c - ETHERTYPE_IPV6 = 0x86dd - ETHERTYPE_IPX = 0x8137 - ETHERTYPE_IPXNEW = 0x8037 - ETHERTYPE_KALPANA = 0x8582 - ETHERTYPE_LANBRIDGE = 0x8038 - ETHERTYPE_LANPROBE = 0x8888 - ETHERTYPE_LAT = 0x6004 - ETHERTYPE_LBACK = 0x9000 - ETHERTYPE_LITTLE = 0x8060 - ETHERTYPE_LOGICRAFT = 0x8148 - ETHERTYPE_LOOPBACK = 0x9000 - ETHERTYPE_MATRA = 0x807a - ETHERTYPE_MAX = 0xffff - ETHERTYPE_MERIT = 0x807c - ETHERTYPE_MICP = 0x873a - ETHERTYPE_MOPDL = 0x6001 - ETHERTYPE_MOPRC = 0x6002 - ETHERTYPE_MOTOROLA = 0x818d - ETHERTYPE_MPLS = 0x8847 - ETHERTYPE_MPLS_MCAST = 0x8848 - ETHERTYPE_MUMPS = 0x813f - ETHERTYPE_NBPCC = 0x3c04 - ETHERTYPE_NBPCLAIM = 0x3c09 - ETHERTYPE_NBPCLREQ = 0x3c05 - ETHERTYPE_NBPCLRSP = 0x3c06 - ETHERTYPE_NBPCREQ = 0x3c02 - ETHERTYPE_NBPCRSP = 0x3c03 - ETHERTYPE_NBPDG = 0x3c07 - ETHERTYPE_NBPDGB = 0x3c08 - ETHERTYPE_NBPDLTE = 0x3c0a - ETHERTYPE_NBPRAR = 0x3c0c - ETHERTYPE_NBPRAS = 0x3c0b - ETHERTYPE_NBPRST = 0x3c0d - ETHERTYPE_NBPSCD = 0x3c01 - ETHERTYPE_NBPVCD = 0x3c00 - ETHERTYPE_NBS = 0x802 - ETHERTYPE_NCD = 0x8149 - ETHERTYPE_NESTAR = 0x8006 - ETHERTYPE_NETBEUI = 0x8191 - ETHERTYPE_NOVELL = 0x8138 - ETHERTYPE_NS = 0x600 - ETHERTYPE_NSAT = 0x601 - ETHERTYPE_NSCOMPAT = 0x807 - ETHERTYPE_NTRAILER = 0x10 - ETHERTYPE_OS9 = 0x7007 - ETHERTYPE_OS9NET = 0x7009 - ETHERTYPE_PACER = 0x80c6 - ETHERTYPE_PAE = 0x888e - ETHERTYPE_PCS = 0x4242 - ETHERTYPE_PLANNING = 0x8044 - ETHERTYPE_PPP = 0x880b - ETHERTYPE_PPPOE = 0x8864 - ETHERTYPE_PPPOEDISC = 0x8863 - ETHERTYPE_PRIMENTS = 0x7031 - ETHERTYPE_PUP = 0x200 - ETHERTYPE_PUPAT = 0x200 - ETHERTYPE_RACAL = 0x7030 - ETHERTYPE_RATIONAL = 0x8150 - ETHERTYPE_RAWFR = 0x6559 - ETHERTYPE_RCL = 0x1995 - ETHERTYPE_RDP = 0x8739 - ETHERTYPE_RETIX = 0x80f2 - ETHERTYPE_REVARP = 0x8035 - ETHERTYPE_SCA = 0x6007 - ETHERTYPE_SECTRA = 0x86db - ETHERTYPE_SECUREDATA = 0x876d - ETHERTYPE_SGITW = 0x817e - ETHERTYPE_SG_BOUNCE = 0x8016 - ETHERTYPE_SG_DIAG = 0x8013 - ETHERTYPE_SG_NETGAMES = 0x8014 - ETHERTYPE_SG_RESV = 0x8015 - ETHERTYPE_SIMNET = 0x5208 - ETHERTYPE_SLOWPROTOCOLS = 0x8809 - ETHERTYPE_SNA = 0x80d5 - ETHERTYPE_SNMP = 0x814c - ETHERTYPE_SONIX = 0xfaf5 - ETHERTYPE_SPIDER = 0x809f - ETHERTYPE_SPRITE = 0x500 - ETHERTYPE_STP = 0x8181 - ETHERTYPE_TALARIS = 0x812b - ETHERTYPE_TALARISMC = 0x852b - ETHERTYPE_TCPCOMP = 0x876b - ETHERTYPE_TCPSM = 0x9002 - ETHERTYPE_TEC = 0x814f - ETHERTYPE_TIGAN = 0x802f - ETHERTYPE_TRAIL = 0x1000 - ETHERTYPE_TRANSETHER = 0x6558 - ETHERTYPE_TYMSHARE = 0x802e - ETHERTYPE_UBBST = 0x7005 - ETHERTYPE_UBDEBUG = 0x900 - ETHERTYPE_UBDIAGLOOP = 0x7002 - ETHERTYPE_UBDL = 0x7000 - ETHERTYPE_UBNIU = 0x7001 - ETHERTYPE_UBNMC = 0x7003 - ETHERTYPE_VALID = 0x1600 - ETHERTYPE_VARIAN = 0x80dd - ETHERTYPE_VAXELN = 0x803b - ETHERTYPE_VEECO = 0x8067 - ETHERTYPE_VEXP = 0x805b - ETHERTYPE_VGLAB = 0x8131 - ETHERTYPE_VINES = 0xbad - ETHERTYPE_VINESECHO = 0xbaf - ETHERTYPE_VINESLOOP = 0xbae - ETHERTYPE_VITAL = 0xff00 - ETHERTYPE_VLAN = 0x8100 - ETHERTYPE_VLTLMAN = 0x8080 - ETHERTYPE_VPROD = 0x805c - ETHERTYPE_VURESERVED = 0x8147 - ETHERTYPE_WATERLOO = 0x8130 - ETHERTYPE_WELLFLEET = 0x8103 - ETHERTYPE_X25 = 0x805 - ETHERTYPE_X75 = 0x801 - ETHERTYPE_XNSSM = 0x9001 - ETHERTYPE_XTP = 0x817d - ETHER_ADDR_LEN = 0x6 - ETHER_CRC_LEN = 0x4 - ETHER_CRC_POLY_BE = 0x4c11db6 - ETHER_CRC_POLY_LE = 0xedb88320 - ETHER_HDR_LEN = 0xe - ETHER_MAX_LEN = 0x5ee - ETHER_MAX_LEN_JUMBO = 0x233a - ETHER_MIN_LEN = 0x40 - ETHER_PPPOE_ENCAP_LEN = 0x8 - ETHER_TYPE_LEN = 0x2 - ETHER_VLAN_ENCAP_LEN = 0x4 - EVFILT_AIO = 0x2 - EVFILT_PROC = 0x4 - EVFILT_READ = 0x0 - EVFILT_SIGNAL = 0x5 - EVFILT_SYSCOUNT = 0x7 - EVFILT_TIMER = 0x6 - EVFILT_VNODE = 0x3 - EVFILT_WRITE = 0x1 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_ONESHOT = 0x10 - EV_SYSFLAGS = 0xf000 - EXTA = 0x4b00 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x100 - FLUSHO = 0x800000 - F_CLOSEM = 0xa - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0xc - F_FSCTL = -0x80000000 - F_FSDIRMASK = 0x70000000 - F_FSIN = 0x10000000 - F_FSINOUT = 0x30000000 - F_FSOUT = 0x20000000 - F_FSPRIV = 0x8000 - F_FSVOID = 0x40000000 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0x7 - F_GETNOSIGPIPE = 0xd - F_GETOWN = 0x5 - F_MAXFD = 0xb - F_OK = 0x0 - F_PARAM_MASK = 0xfff - F_PARAM_MAX = 0xfff - F_RDLCK = 0x1 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x8 - F_SETLKW = 0x9 - F_SETNOSIGPIPE = 0xe - F_SETOWN = 0x6 - F_UNLCK = 0x2 - F_WRLCK = 0x3 - HUPCL = 0x4000 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFAN_ARRIVAL = 0x0 - IFAN_DEPARTURE = 0x1 - IFA_ROUTE = 0x1 - IFF_ALLMULTI = 0x200 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x8f52 - IFF_DEBUG = 0x4 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NOTRAILERS = 0x20 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_1822 = 0x2 - IFT_A12MPPSWITCH = 0x82 - IFT_AAL2 = 0xbb - IFT_AAL5 = 0x31 - IFT_ADSL = 0x5e - IFT_AFLANE8023 = 0x3b - IFT_AFLANE8025 = 0x3c - IFT_ARAP = 0x58 - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ASYNC = 0x54 - IFT_ATM = 0x25 - IFT_ATMDXI = 0x69 - IFT_ATMFUNI = 0x6a - IFT_ATMIMA = 0x6b - IFT_ATMLOGICAL = 0x50 - IFT_ATMRADIO = 0xbd - IFT_ATMSUBINTERFACE = 0x86 - IFT_ATMVCIENDPT = 0xc2 - IFT_ATMVIRTUAL = 0x95 - IFT_BGPPOLICYACCOUNTING = 0xa2 - IFT_BRIDGE = 0xd1 - IFT_BSC = 0x53 - IFT_CARP = 0xf8 - IFT_CCTEMUL = 0x3d - IFT_CEPT = 0x13 - IFT_CES = 0x85 - IFT_CHANNEL = 0x46 - IFT_CNR = 0x55 - IFT_COFFEE = 0x84 - IFT_COMPOSITELINK = 0x9b - IFT_DCN = 0x8d - IFT_DIGITALPOWERLINE = 0x8a - IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba - IFT_DLSW = 0x4a - IFT_DOCSCABLEDOWNSTREAM = 0x80 - IFT_DOCSCABLEMACLAYER = 0x7f - IFT_DOCSCABLEUPSTREAM = 0x81 - IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd - IFT_DS0 = 0x51 - IFT_DS0BUNDLE = 0x52 - IFT_DS1FDL = 0xaa - IFT_DS3 = 0x1e - IFT_DTM = 0x8c - IFT_DVBASILN = 0xac - IFT_DVBASIOUT = 0xad - IFT_DVBRCCDOWNSTREAM = 0x93 - IFT_DVBRCCMACLAYER = 0x92 - IFT_DVBRCCUPSTREAM = 0x94 - IFT_ECONET = 0xce - IFT_EON = 0x19 - IFT_EPLRS = 0x57 - IFT_ESCON = 0x49 - IFT_ETHER = 0x6 - IFT_FAITH = 0xf2 - IFT_FAST = 0x7d - IFT_FASTETHER = 0x3e - IFT_FASTETHERFX = 0x45 - IFT_FDDI = 0xf - IFT_FIBRECHANNEL = 0x38 - IFT_FRAMERELAYINTERCONNECT = 0x3a - IFT_FRAMERELAYMPI = 0x5c - IFT_FRDLCIENDPT = 0xc1 - IFT_FRELAY = 0x20 - IFT_FRELAYDCE = 0x2c - IFT_FRF16MFRBUNDLE = 0xa3 - IFT_FRFORWARD = 0x9e - IFT_G703AT2MB = 0x43 - IFT_G703AT64K = 0x42 - IFT_GIF = 0xf0 - IFT_GIGABITETHERNET = 0x75 - IFT_GR303IDT = 0xb2 - IFT_GR303RDT = 0xb1 - IFT_H323GATEKEEPER = 0xa4 - IFT_H323PROXY = 0xa5 - IFT_HDH1822 = 0x3 - IFT_HDLC = 0x76 - IFT_HDSL2 = 0xa8 - IFT_HIPERLAN2 = 0xb7 - IFT_HIPPI = 0x2f - IFT_HIPPIINTERFACE = 0x39 - IFT_HOSTPAD = 0x5a - IFT_HSSI = 0x2e - IFT_HY = 0xe - IFT_IBM370PARCHAN = 0x48 - IFT_IDSL = 0x9a - IFT_IEEE1394 = 0x90 - IFT_IEEE80211 = 0x47 - IFT_IEEE80212 = 0x37 - IFT_IEEE8023ADLAG = 0xa1 - IFT_IFGSN = 0x91 - IFT_IMT = 0xbe - IFT_INFINIBAND = 0xc7 - IFT_INTERLEAVE = 0x7c - IFT_IP = 0x7e - IFT_IPFORWARD = 0x8e - IFT_IPOVERATM = 0x72 - IFT_IPOVERCDLC = 0x6d - IFT_IPOVERCLAW = 0x6e - IFT_IPSWITCH = 0x4e - IFT_ISDN = 0x3f - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_ISDNS = 0x4b - IFT_ISDNU = 0x4c - IFT_ISO88022LLC = 0x29 - IFT_ISO88023 = 0x7 - IFT_ISO88024 = 0x8 - IFT_ISO88025 = 0x9 - IFT_ISO88025CRFPINT = 0x62 - IFT_ISO88025DTR = 0x56 - IFT_ISO88025FIBER = 0x73 - IFT_ISO88026 = 0xa - IFT_ISUP = 0xb3 - IFT_L2VLAN = 0x87 - IFT_L3IPVLAN = 0x88 - IFT_L3IPXVLAN = 0x89 - IFT_LAPB = 0x10 - IFT_LAPD = 0x4d - IFT_LAPF = 0x77 - IFT_LINEGROUP = 0xd2 - IFT_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - IFT_MEDIAMAILOVERIP = 0x8b - IFT_MFSIGLINK = 0xa7 - IFT_MIOX25 = 0x26 - IFT_MODEM = 0x30 - IFT_MPC = 0x71 - IFT_MPLS = 0xa6 - IFT_MPLSTUNNEL = 0x96 - IFT_MSDSL = 0x8f - IFT_MVL = 0xbf - IFT_MYRINET = 0x63 - IFT_NFAS = 0xaf - IFT_NSIP = 0x1b - IFT_OPTICALCHANNEL = 0xc3 - IFT_OPTICALTRANSPORT = 0xc4 - IFT_OTHER = 0x1 - IFT_P10 = 0xc - IFT_P80 = 0xd - IFT_PARA = 0x22 - IFT_PFLOG = 0xf5 - IFT_PFSYNC = 0xf6 - IFT_PLC = 0xae - IFT_PON155 = 0xcf - IFT_PON622 = 0xd0 - IFT_POS = 0xab - IFT_PPP = 0x17 - IFT_PPPMULTILINKBUNDLE = 0x6c - IFT_PROPATM = 0xc5 - IFT_PROPBWAP2MP = 0xb8 - IFT_PROPCNLS = 0x59 - IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 - IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 - IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 - IFT_PROPMUX = 0x36 - IFT_PROPVIRTUAL = 0x35 - IFT_PROPWIRELESSP2P = 0x9d - IFT_PTPSERIAL = 0x16 - IFT_PVC = 0xf1 - IFT_Q2931 = 0xc9 - IFT_QLLC = 0x44 - IFT_RADIOMAC = 0xbc - IFT_RADSL = 0x5f - IFT_REACHDSL = 0xc0 - IFT_RFC1483 = 0x9f - IFT_RS232 = 0x21 - IFT_RSRB = 0x4f - IFT_SDLC = 0x11 - IFT_SDSL = 0x60 - IFT_SHDSL = 0xa9 - IFT_SIP = 0x1f - IFT_SIPSIG = 0xcc - IFT_SIPTG = 0xcb - IFT_SLIP = 0x1c - IFT_SMDSDXI = 0x2b - IFT_SMDSICIP = 0x34 - IFT_SONET = 0x27 - IFT_SONETOVERHEADCHANNEL = 0xb9 - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_SRP = 0x97 - IFT_SS7SIGLINK = 0x9c - IFT_STACKTOSTACK = 0x6f - IFT_STARLAN = 0xb - IFT_STF = 0xd7 - IFT_T1 = 0x12 - IFT_TDLC = 0x74 - IFT_TELINK = 0xc8 - IFT_TERMPAD = 0x5b - IFT_TR008 = 0xb0 - IFT_TRANSPHDLC = 0x7b - IFT_TUNNEL = 0x83 - IFT_ULTRA = 0x1d - IFT_USB = 0xa0 - IFT_V11 = 0x40 - IFT_V35 = 0x2d - IFT_V36 = 0x41 - IFT_V37 = 0x78 - IFT_VDSL = 0x61 - IFT_VIRTUALIPADDRESS = 0x70 - IFT_VIRTUALTG = 0xca - IFT_VOICEDID = 0xd5 - IFT_VOICEEM = 0x64 - IFT_VOICEEMFGD = 0xd3 - IFT_VOICEENCAP = 0x67 - IFT_VOICEFGDEANA = 0xd4 - IFT_VOICEFXO = 0x65 - IFT_VOICEFXS = 0x66 - IFT_VOICEOVERATM = 0x98 - IFT_VOICEOVERCABLE = 0xc6 - IFT_VOICEOVERFRAMERELAY = 0x99 - IFT_VOICEOVERIP = 0x68 - IFT_X213 = 0x5d - IFT_X25 = 0x5 - IFT_X25DDN = 0x4 - IFT_X25HUNTGROUP = 0x7a - IFT_X25MLP = 0x79 - IFT_X25PLE = 0x28 - IFT_XETHER = 0x1a - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLASSD_HOST = 0xfffffff - IN_CLASSD_NET = 0xf0000000 - IN_CLASSD_NSHIFT = 0x1c - IN_LOOPBACKNET = 0x7f - IPPROTO_AH = 0x33 - IPPROTO_CARP = 0x70 - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPIP = 0x4 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_IPV6_ICMP = 0x3a - IPPROTO_MAX = 0x100 - IPPROTO_MAXID = 0x34 - IPPROTO_MOBILE = 0x37 - IPPROTO_NONE = 0x3b - IPPROTO_PFSYNC = 0xf0 - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_VRRP = 0x70 - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_FAITH = 0x1d - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FRAGTTL = 0x78 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_IPSEC_POLICY = 0x1c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXPACKET = 0xffff - IPV6_MMTU = 0x500 - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_PATHMTU = 0x2c - IPV6_PKTINFO = 0x2e - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - IPV6_RTHDR = 0x33 - IPV6_RTHDRDSTOPTS = 0x23 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_SOCKOPT_RESERVED1 = 0x3 - IPV6_TCLASS = 0x3d - IPV6_UNICAST_HOPS = 0x4 - IPV6_USE_MIN_MTU = 0x2a - IPV6_V6ONLY = 0x1b - IPV6_VERSION = 0x60 - IPV6_VERSION_MASK = 0xf0 - IP_ADD_MEMBERSHIP = 0xc - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0xd - IP_EF = 0x8000 - IP_ERRORMTU = 0x15 - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x16 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINFRAGSIZE = 0x45 - IP_MINTTL = 0x18 - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x1 - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVRETOPTS = 0x6 - IP_RECVTTL = 0x17 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_TOS = 0x3 - IP_TTL = 0x4 - ISIG = 0x80 - ISTRIP = 0x20 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x6 - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_SPACEAVAIL = 0x5 - MADV_WILLNEED = 0x3 - MAP_ALIGNMENT_16MB = 0x18000000 - MAP_ALIGNMENT_1TB = 0x28000000 - MAP_ALIGNMENT_256TB = 0x30000000 - MAP_ALIGNMENT_4GB = 0x20000000 - MAP_ALIGNMENT_64KB = 0x10000000 - MAP_ALIGNMENT_64PB = 0x38000000 - MAP_ALIGNMENT_MASK = -0x1000000 - MAP_ALIGNMENT_SHIFT = 0x18 - MAP_ANON = 0x1000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_HASSEMAPHORE = 0x200 - MAP_INHERIT = 0x80 - MAP_INHERIT_COPY = 0x1 - MAP_INHERIT_DEFAULT = 0x1 - MAP_INHERIT_DONATE_COPY = 0x3 - MAP_INHERIT_NONE = 0x2 - MAP_INHERIT_SHARE = 0x0 - MAP_NORESERVE = 0x40 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 - MAP_SHARED = 0x1 - MAP_STACK = 0x2000 - MAP_TRYFIXED = 0x400 - MAP_WIRED = 0x800 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MSG_BCAST = 0x100 - MSG_CMSG_CLOEXEC = 0x800 - MSG_CONTROLMBUF = 0x2000000 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOR = 0x8 - MSG_IOVUSRSPACE = 0x4000000 - MSG_LENUSRSPACE = 0x8000000 - MSG_MCAST = 0x200 - MSG_NAMEMBUF = 0x1000000 - MSG_NBIO = 0x1000 - MSG_NOSIGNAL = 0x400 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_USERFLAGS = 0xffffff - MSG_WAITALL = 0x40 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x2 - MS_SYNC = 0x4 - NAME_MAX = 0x1ff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x5 - NET_RT_MAXID = 0x6 - NET_RT_OIFLIST = 0x4 - NET_RT_OOIFLIST = 0x3 - NOFLSH = 0x80000000 - NOTE_ATTRIB = 0x8 - NOTE_CHILD = 0x4 - NOTE_DELETE = 0x1 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXTEND = 0x4 - NOTE_FORK = 0x40000000 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_PCTRLMASK = 0xf0000000 - NOTE_PDATAMASK = 0xfffff - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - OFIOGETBMAP = 0xc004667a - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - O_ACCMODE = 0x3 - O_ALT_IO = 0x40000 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x400000 - O_CREAT = 0x200 - O_DIRECT = 0x80000 - O_DIRECTORY = 0x200000 - O_DSYNC = 0x10000 - O_EXCL = 0x800 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_NOSIGPIPE = 0x1000000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x20000 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PRI_IOFLUSH = 0x7c - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - RLIMIT_AS = 0xa - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_NOFILE = 0x8 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0x7fffffffffffffff - RTAX_AUTHOR = 0x6 - RTAX_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x9 - RTAX_NETMASK = 0x2 - RTAX_TAG = 0x8 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTA_TAG = 0x100 - RTF_ANNOUNCE = 0x20000 - RTF_BLACKHOLE = 0x1000 - RTF_CLONED = 0x2000 - RTF_CLONING = 0x100 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_LLINFO = 0x400 - RTF_MASK = 0x80 - RTF_MODIFIED = 0x20 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_REJECT = 0x8 - RTF_SRC = 0x10000 - RTF_STATIC = 0x800 - RTF_UP = 0x1 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_CHGADDR = 0x15 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_GET = 0x4 - RTM_IEEE80211 = 0x11 - RTM_IFANNOUNCE = 0x10 - RTM_IFINFO = 0x14 - RTM_LLINFO_UPD = 0x13 - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_OIFINFO = 0xf - RTM_OLDADD = 0x9 - RTM_OLDDEL = 0xa - RTM_OOIFINFO = 0xe - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 - RTM_SETGATE = 0x12 - RTM_VERSION = 0x4 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - SCM_CREDS = 0x4 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x8 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80906931 - SIOCADDRT = 0x8030720a - SIOCAIFADDR = 0x8040691a - SIOCALIFADDR = 0x8118691c - SIOCATMARK = 0x40047307 - SIOCDELMULTI = 0x80906932 - SIOCDELRT = 0x8030720b - SIOCDIFADDR = 0x80906919 - SIOCDIFPHYADDR = 0x80906949 - SIOCDLIFADDR = 0x8118691e - SIOCGDRVSPEC = 0xc01c697b - SIOCGETPFSYNC = 0xc09069f8 - SIOCGETSGCNT = 0xc0147534 - SIOCGETVIFCNT = 0xc0147533 - SIOCGHIWAT = 0x40047301 - SIOCGIFADDR = 0xc0906921 - SIOCGIFADDRPREF = 0xc0946920 - SIOCGIFALIAS = 0xc040691b - SIOCGIFBRDADDR = 0xc0906923 - SIOCGIFCAP = 0xc0206976 - SIOCGIFCONF = 0xc0086926 - SIOCGIFDATA = 0xc0946985 - SIOCGIFDLT = 0xc0906977 - SIOCGIFDSTADDR = 0xc0906922 - SIOCGIFFLAGS = 0xc0906911 - SIOCGIFGENERIC = 0xc090693a - SIOCGIFMEDIA = 0xc0286936 - SIOCGIFMETRIC = 0xc0906917 - SIOCGIFMTU = 0xc090697e - SIOCGIFNETMASK = 0xc0906925 - SIOCGIFPDSTADDR = 0xc0906948 - SIOCGIFPSRCADDR = 0xc0906947 - SIOCGLIFADDR = 0xc118691d - SIOCGLIFPHYADDR = 0xc118694b - SIOCGLINKSTR = 0xc01c6987 - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCGVH = 0xc0906983 - SIOCIFCREATE = 0x8090697a - SIOCIFDESTROY = 0x80906979 - SIOCIFGCLONERS = 0xc00c6978 - SIOCINITIFADDR = 0xc0446984 - SIOCSDRVSPEC = 0x801c697b - SIOCSETPFSYNC = 0x809069f7 - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8090690c - SIOCSIFADDRPREF = 0x8094691f - SIOCSIFBRDADDR = 0x80906913 - SIOCSIFCAP = 0x80206975 - SIOCSIFDSTADDR = 0x8090690e - SIOCSIFFLAGS = 0x80906910 - SIOCSIFGENERIC = 0x80906939 - SIOCSIFMEDIA = 0xc0906935 - SIOCSIFMETRIC = 0x80906918 - SIOCSIFMTU = 0x8090697f - SIOCSIFNETMASK = 0x80906916 - SIOCSIFPHYADDR = 0x80406946 - SIOCSLIFPHYADDR = 0x8118694a - SIOCSLINKSTR = 0x801c6988 - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SIOCSVH = 0xc0906982 - SIOCZIFDATA = 0xc0946986 - SOCK_CLOEXEC = 0x10000000 - SOCK_DGRAM = 0x2 - SOCK_FLAGS_MASK = 0xf0000000 - SOCK_NONBLOCK = 0x20000000 - SOCK_NOSIGPIPE = 0x40000000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_ACCEPTFILTER = 0x1000 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_NOHEADER = 0x100a - SO_NOSIGPIPE = 0x800 - SO_OOBINLINE = 0x100 - SO_OVERFLOWED = 0x1009 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x100c - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x100b - SO_TIMESTAMP = 0x2000 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SYSCTL_VERSION = 0x1000000 - SYSCTL_VERS_0 = 0x0 - SYSCTL_VERS_1 = 0x1000000 - SYSCTL_VERS_MASK = 0xff000000 - S_ARCH1 = 0x10000 - S_ARCH2 = 0x20000 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IFWHT = 0xe000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISTXT = 0x200 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - S_LOGIN_SET = 0x1 - TCIFLUSH = 0x1 - TCIOFLUSH = 0x3 - TCOFLUSH = 0x2 - TCP_CONGCTL = 0x20 - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x3 - TCP_KEEPINIT = 0x7 - TCP_KEEPINTVL = 0x5 - TCP_MAXBURST = 0x4 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0x10 - TCP_MINMSS = 0xd8 - TCP_MSS = 0x218 - TCP_NODELAY = 0x1 - TCSAFLUSH = 0x2 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDCDTIMESTAMP = 0x400c7458 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLAG_CDTRCTS = 0x10 - TIOCFLAG_CLOCAL = 0x2 - TIOCFLAG_CRTSCTS = 0x4 - TIOCFLAG_MDMBUF = 0x8 - TIOCFLAG_SOFTCAR = 0x1 - TIOCFLUSH = 0x80047410 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGFLAGS = 0x4004745d - TIOCGLINED = 0x40207442 - TIOCGPGRP = 0x40047477 - TIOCGQSIZE = 0x40047481 - TIOCGRANTPT = 0x20007447 - TIOCGSID = 0x40047463 - TIOCGSIZE = 0x40087468 - TIOCGWINSZ = 0x40087468 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGET = 0x4004746a - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x20007471 - TIOCNXCL = 0x2000740e - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x80047470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCPTMGET = 0x40287446 - TIOCPTSNAME = 0x40287448 - TIOCRCVFRAME = 0x80047445 - TIOCREMOTE = 0x80047469 - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSFLAGS = 0x8004745c - TIOCSIG = 0x2000745f - TIOCSLINED = 0x80207443 - TIOCSPGRP = 0x80047476 - TIOCSQSIZE = 0x80047480 - TIOCSSIZE = 0x80087467 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x80047465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCUCNTL = 0x80047466 - TIOCXMTFRAME = 0x80047444 - TOSTOP = 0x400000 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WALL = 0x8 - WALLSIG = 0x8 - WALTSIG = 0x4 - WCLONE = 0x4 - WCOREFLAG = 0x80 - WNOHANG = 0x1 - WNOWAIT = 0x10000 - WNOZOMBIE = 0x20000 - WOPTSCHECKED = 0x40000 - WSTOPPED = 0x7f - WUNTRACED = 0x2 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x30) - EADDRNOTAVAIL = syscall.Errno(0x31) - EAFNOSUPPORT = syscall.Errno(0x2f) - EAGAIN = syscall.Errno(0x23) - EALREADY = syscall.Errno(0x25) - EAUTH = syscall.Errno(0x50) - EBADF = syscall.Errno(0x9) - EBADMSG = syscall.Errno(0x58) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x57) - ECHILD = syscall.Errno(0xa) - ECONNABORTED = syscall.Errno(0x35) - ECONNREFUSED = syscall.Errno(0x3d) - ECONNRESET = syscall.Errno(0x36) - EDEADLK = syscall.Errno(0xb) - EDESTADDRREQ = syscall.Errno(0x27) - EDOM = syscall.Errno(0x21) - EDQUOT = syscall.Errno(0x45) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EFTYPE = syscall.Errno(0x4f) - EHOSTDOWN = syscall.Errno(0x40) - EHOSTUNREACH = syscall.Errno(0x41) - EIDRM = syscall.Errno(0x52) - EILSEQ = syscall.Errno(0x55) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x60) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5e) - ENAMETOOLONG = syscall.Errno(0x3f) - ENEEDAUTH = syscall.Errno(0x51) - ENETDOWN = syscall.Errno(0x32) - ENETRESET = syscall.Errno(0x34) - ENETUNREACH = syscall.Errno(0x33) - ENFILE = syscall.Errno(0x17) - ENOATTR = syscall.Errno(0x5d) - ENOBUFS = syscall.Errno(0x37) - ENODATA = syscall.Errno(0x59) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x5f) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x53) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x5a) - ENOSTR = syscall.Errno(0x5b) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x56) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x54) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x2e) - EPIPE = syscall.Errno(0x20) - EPROCLIM = syscall.Errno(0x43) - EPROCUNAVAIL = syscall.Errno(0x4c) - EPROGMISMATCH = syscall.Errno(0x4b) - EPROGUNAVAIL = syscall.Errno(0x4a) - EPROTO = syscall.Errno(0x60) - EPROTONOSUPPORT = syscall.Errno(0x2b) - EPROTOTYPE = syscall.Errno(0x29) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x47) - EROFS = syscall.Errno(0x1e) - ERPCMISMATCH = syscall.Errno(0x49) - ESHUTDOWN = syscall.Errno(0x3a) - ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x46) - ETIME = syscall.Errno(0x5c) - ETIMEDOUT = syscall.Errno(0x3c) - ETOOMANYREFS = syscall.Errno(0x3b) - ETXTBSY = syscall.Errno(0x1a) - EUSERS = syscall.Errno(0x44) - EWOULDBLOCK = syscall.Errno(0x23) - EXDEV = syscall.Errno(0x12) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x14) - SIGCONT = syscall.Signal(0x13) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINFO = syscall.Signal(0x1d) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x17) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x20) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x12) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x10) - SIGUSR1 = syscall.Signal(0x1e) - SIGUSR2 = syscall.Signal(0x1f) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errors = [...]string{ - 1: "operation not permitted", - 2: "no such file or directory", - 3: "no such process", - 4: "interrupted system call", - 5: "input/output error", - 6: "device not configured", - 7: "argument list too long", - 8: "exec format error", - 9: "bad file descriptor", - 10: "no child processes", - 11: "resource deadlock avoided", - 12: "cannot allocate memory", - 13: "permission denied", - 14: "bad address", - 15: "block device required", - 16: "device busy", - 17: "file exists", - 18: "cross-device link", - 19: "operation not supported by device", - 20: "not a directory", - 21: "is a directory", - 22: "invalid argument", - 23: "too many open files in system", - 24: "too many open files", - 25: "inappropriate ioctl for device", - 26: "text file busy", - 27: "file too large", - 28: "no space left on device", - 29: "illegal seek", - 30: "read-only file system", - 31: "too many links", - 32: "broken pipe", - 33: "numerical argument out of domain", - 34: "result too large or too small", - 35: "resource temporarily unavailable", - 36: "operation now in progress", - 37: "operation already in progress", - 38: "socket operation on non-socket", - 39: "destination address required", - 40: "message too long", - 41: "protocol wrong type for socket", - 42: "protocol option not available", - 43: "protocol not supported", - 44: "socket type not supported", - 45: "operation not supported", - 46: "protocol family not supported", - 47: "address family not supported by protocol family", - 48: "address already in use", - 49: "can't assign requested address", - 50: "network is down", - 51: "network is unreachable", - 52: "network dropped connection on reset", - 53: "software caused connection abort", - 54: "connection reset by peer", - 55: "no buffer space available", - 56: "socket is already connected", - 57: "socket is not connected", - 58: "can't send after socket shutdown", - 59: "too many references: can't splice", - 60: "connection timed out", - 61: "connection refused", - 62: "too many levels of symbolic links", - 63: "file name too long", - 64: "host is down", - 65: "no route to host", - 66: "directory not empty", - 67: "too many processes", - 68: "too many users", - 69: "disc quota exceeded", - 70: "stale NFS file handle", - 71: "too many levels of remote in path", - 72: "RPC struct is bad", - 73: "RPC version wrong", - 74: "RPC prog. not avail", - 75: "program version wrong", - 76: "bad procedure for program", - 77: "no locks available", - 78: "function not implemented", - 79: "inappropriate file type or format", - 80: "authentication error", - 81: "need authenticator", - 82: "identifier removed", - 83: "no message of desired type", - 84: "value too large to be stored in data type", - 85: "illegal byte sequence", - 86: "not supported", - 87: "operation Canceled", - 88: "bad or Corrupt message", - 89: "no message available", - 90: "no STREAM resources", - 91: "not a STREAM", - 92: "STREAM ioctl timeout", - 93: "attribute not found", - 94: "multihop attempted", - 95: "link has been severed", - 96: "protocol error", -} - -// Signal table -var signals = [...]string{ - 1: "hangup", - 2: "interrupt", - 3: "quit", - 4: "illegal instruction", - 5: "trace/BPT trap", - 6: "abort trap", - 7: "EMT trap", - 8: "floating point exception", - 9: "killed", - 10: "bus error", - 11: "segmentation fault", - 12: "bad system call", - 13: "broken pipe", - 14: "alarm clock", - 15: "terminated", - 16: "urgent I/O condition", - 17: "stopped (signal)", - 18: "stopped", - 19: "continued", - 20: "child exited", - 21: "stopped (tty input)", - 22: "stopped (tty output)", - 23: "I/O possible", - 24: "cputime limit exceeded", - 25: "filesize limit exceeded", - 26: "virtual timer expired", - 27: "profiling timer expired", - 28: "window size changes", - 29: "information request", - 30: "user defined signal 1", - 31: "user defined signal 2", - 32: "power fail/restart", -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go deleted file mode 100644 index 4994437..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go +++ /dev/null @@ -1,1702 +0,0 @@ -// mkerrors.sh -m64 -// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT - -// +build amd64,netbsd - -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs -- -m64 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_ARP = 0x1c - AF_BLUETOOTH = 0x1f - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_CNT = 0x15 - AF_COIP = 0x14 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_E164 = 0x1a - AF_ECMA = 0x8 - AF_HYLINK = 0xf - AF_IEEE80211 = 0x20 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x18 - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x23 - AF_MPLS = 0x21 - AF_NATM = 0x1b - AF_NS = 0x6 - AF_OROUTE = 0x11 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x22 - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - ARPHRD_ARCNET = 0x7 - ARPHRD_ETHER = 0x1 - ARPHRD_FRELAY = 0xf - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_STRIP = 0x17 - B0 = 0x0 - B110 = 0x6e - B115200 = 0x1c200 - B1200 = 0x4b0 - B134 = 0x86 - B14400 = 0x3840 - B150 = 0x96 - B1800 = 0x708 - B19200 = 0x4b00 - B200 = 0xc8 - B230400 = 0x38400 - B2400 = 0x960 - B28800 = 0x7080 - B300 = 0x12c - B38400 = 0x9600 - B460800 = 0x70800 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B921600 = 0xe1000 - B9600 = 0x2580 - BIOCFEEDBACK = 0x8004427d - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc0104277 - BIOCGETIF = 0x4090426b - BIOCGFEEDBACK = 0x4004427c - BIOCGHDRCMPLT = 0x40044274 - BIOCGRTIMEOUT = 0x4010427b - BIOCGSEESENT = 0x40044278 - BIOCGSTATS = 0x4080426f - BIOCGSTATSOLD = 0x4008426f - BIOCIMMEDIATE = 0x80044270 - BIOCPROMISC = 0x20004269 - BIOCSBLEN = 0xc0044266 - BIOCSDLT = 0x80044276 - BIOCSETF = 0x80104267 - BIOCSETIF = 0x8090426c - BIOCSFEEDBACK = 0x8004427d - BIOCSHDRCMPLT = 0x80044275 - BIOCSRTIMEOUT = 0x8010427a - BIOCSSEESENT = 0x80044279 - BIOCSTCPF = 0x80104272 - BIOCSUDPF = 0x80104273 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x8 - BPF_ALIGNMENT32 = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DFLTBUFSIZE = 0x100000 - BPF_DIV = 0x30 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXBUFSIZE = 0x1000000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_OR = 0x40 - BPF_RELEASE = 0x30bb6 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BRKINT = 0x2 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLONE_CSIGNAL = 0xff - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_PID = 0x1000 - CLONE_PTRACE = 0x2000 - CLONE_SIGHAND = 0x800 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CREAD = 0x800 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_MAXNAME = 0xc - CTL_NET = 0x4 - CTL_QUERY = -0x2 - DIOCBSFLUSH = 0x20006478 - DLT_A429 = 0xb8 - DLT_A653_ICM = 0xb9 - DLT_AIRONET_HEADER = 0x78 - DLT_AOS = 0xde - DLT_APPLE_IP_OVER_IEEE1394 = 0x8a - DLT_ARCNET = 0x7 - DLT_ARCNET_LINUX = 0x81 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_AX25_KISS = 0xca - DLT_BACNET_MS_TP = 0xa5 - DLT_BLUETOOTH_HCI_H4 = 0xbb - DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 - DLT_CAN20B = 0xbe - DLT_CAN_SOCKETCAN = 0xe3 - DLT_CHAOS = 0x5 - DLT_CISCO_IOS = 0x76 - DLT_C_HDLC = 0x68 - DLT_C_HDLC_WITH_DIR = 0xcd - DLT_DECT = 0xdd - DLT_DOCSIS = 0x8f - DLT_ECONET = 0x73 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_ERF = 0xc5 - DLT_ERF_ETH = 0xaf - DLT_ERF_POS = 0xb0 - DLT_FC_2 = 0xe0 - DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 - DLT_FDDI = 0xa - DLT_FLEXRAY = 0xd2 - DLT_FRELAY = 0x6b - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_GSMTAP_ABIS = 0xda - DLT_GSMTAP_UM = 0xd9 - DLT_HDLC = 0x10 - DLT_HHDLC = 0x79 - DLT_HIPPI = 0xf - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_IEEE802_15_4 = 0xc3 - DLT_IEEE802_15_4_LINUX = 0xbf - DLT_IEEE802_15_4_NONASK_PHY = 0xd7 - DLT_IEEE802_16_MAC_CPS = 0xbc - DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 - DLT_IPMB = 0xc7 - DLT_IPMB_LINUX = 0xd1 - DLT_IPNET = 0xe2 - DLT_IPV4 = 0xe4 - DLT_IPV6 = 0xe5 - DLT_IP_OVER_FC = 0x7a - DLT_JUNIPER_ATM1 = 0x89 - DLT_JUNIPER_ATM2 = 0x87 - DLT_JUNIPER_CHDLC = 0xb5 - DLT_JUNIPER_ES = 0x84 - DLT_JUNIPER_ETHER = 0xb2 - DLT_JUNIPER_FRELAY = 0xb4 - DLT_JUNIPER_GGSN = 0x85 - DLT_JUNIPER_ISM = 0xc2 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - DLT_JUNIPER_PPPOE = 0xa7 - DLT_JUNIPER_PPPOE_ATM = 0xa8 - DLT_JUNIPER_SERVICES = 0x88 - DLT_JUNIPER_ST = 0xc8 - DLT_JUNIPER_VP = 0xb7 - DLT_LAPB_WITH_DIR = 0xcf - DLT_LAPD = 0xcb - DLT_LIN = 0xd4 - DLT_LINUX_EVDEV = 0xd8 - DLT_LINUX_IRDA = 0x90 - DLT_LINUX_LAPD = 0xb1 - DLT_LINUX_SLL = 0x71 - DLT_LOOP = 0x6c - DLT_LTALK = 0x72 - DLT_MFR = 0xb6 - DLT_MOST = 0xd3 - DLT_MPLS = 0xdb - DLT_MTP2 = 0x8c - DLT_MTP2_WITH_PHDR = 0x8b - DLT_MTP3 = 0x8d - DLT_NULL = 0x0 - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PPI = 0xc0 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0xe - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PRISM_HEADER = 0x77 - DLT_PRONET = 0x4 - DLT_RAIF1 = 0xc6 - DLT_RAW = 0xc - DLT_RAWAF_MASK = 0x2240000 - DLT_RIO = 0x7c - DLT_SCCP = 0x8e - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xd - DLT_SUNATM = 0x7b - DLT_SYMANTEC_FIREWALL = 0x63 - DLT_TZSP = 0x80 - DLT_USB = 0xba - DLT_USB_LINUX = 0xbd - DLT_USB_LINUX_MMAPPED = 0xdc - DLT_WIHART = 0xdf - DLT_X2E_SERIAL = 0xd5 - DLT_X2E_XORAYA = 0xd6 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EMUL_LINUX = 0x1 - EMUL_LINUX32 = 0x5 - EMUL_MAXID = 0x6 - ETHERCAP_JUMBO_MTU = 0x4 - ETHERCAP_VLAN_HWTAGGING = 0x2 - ETHERCAP_VLAN_MTU = 0x1 - ETHERMIN = 0x2e - ETHERMTU = 0x5dc - ETHERMTU_JUMBO = 0x2328 - ETHERTYPE_8023 = 0x4 - ETHERTYPE_AARP = 0x80f3 - ETHERTYPE_ACCTON = 0x8390 - ETHERTYPE_AEONIC = 0x8036 - ETHERTYPE_ALPHA = 0x814a - ETHERTYPE_AMBER = 0x6008 - ETHERTYPE_AMOEBA = 0x8145 - ETHERTYPE_APOLLO = 0x80f7 - ETHERTYPE_APOLLODOMAIN = 0x8019 - ETHERTYPE_APPLETALK = 0x809b - ETHERTYPE_APPLITEK = 0x80c7 - ETHERTYPE_ARGONAUT = 0x803a - ETHERTYPE_ARP = 0x806 - ETHERTYPE_AT = 0x809b - ETHERTYPE_ATALK = 0x809b - ETHERTYPE_ATOMIC = 0x86df - ETHERTYPE_ATT = 0x8069 - ETHERTYPE_ATTSTANFORD = 0x8008 - ETHERTYPE_AUTOPHON = 0x806a - ETHERTYPE_AXIS = 0x8856 - ETHERTYPE_BCLOOP = 0x9003 - ETHERTYPE_BOFL = 0x8102 - ETHERTYPE_CABLETRON = 0x7034 - ETHERTYPE_CHAOS = 0x804 - ETHERTYPE_COMDESIGN = 0x806c - ETHERTYPE_COMPUGRAPHIC = 0x806d - ETHERTYPE_COUNTERPOINT = 0x8062 - ETHERTYPE_CRONUS = 0x8004 - ETHERTYPE_CRONUSVLN = 0x8003 - ETHERTYPE_DCA = 0x1234 - ETHERTYPE_DDE = 0x807b - ETHERTYPE_DEBNI = 0xaaaa - ETHERTYPE_DECAM = 0x8048 - ETHERTYPE_DECCUST = 0x6006 - ETHERTYPE_DECDIAG = 0x6005 - ETHERTYPE_DECDNS = 0x803c - ETHERTYPE_DECDTS = 0x803e - ETHERTYPE_DECEXPER = 0x6000 - ETHERTYPE_DECLAST = 0x8041 - ETHERTYPE_DECLTM = 0x803f - ETHERTYPE_DECMUMPS = 0x6009 - ETHERTYPE_DECNETBIOS = 0x8040 - ETHERTYPE_DELTACON = 0x86de - ETHERTYPE_DIDDLE = 0x4321 - ETHERTYPE_DLOG1 = 0x660 - ETHERTYPE_DLOG2 = 0x661 - ETHERTYPE_DN = 0x6003 - ETHERTYPE_DOGFIGHT = 0x1989 - ETHERTYPE_DSMD = 0x8039 - ETHERTYPE_ECMA = 0x803 - ETHERTYPE_ENCRYPT = 0x803d - ETHERTYPE_ES = 0x805d - ETHERTYPE_EXCELAN = 0x8010 - ETHERTYPE_EXPERDATA = 0x8049 - ETHERTYPE_FLIP = 0x8146 - ETHERTYPE_FLOWCONTROL = 0x8808 - ETHERTYPE_FRARP = 0x808 - ETHERTYPE_GENDYN = 0x8068 - ETHERTYPE_HAYES = 0x8130 - ETHERTYPE_HIPPI_FP = 0x8180 - ETHERTYPE_HITACHI = 0x8820 - ETHERTYPE_HP = 0x8005 - ETHERTYPE_IEEEPUP = 0xa00 - ETHERTYPE_IEEEPUPAT = 0xa01 - ETHERTYPE_IMLBL = 0x4c42 - ETHERTYPE_IMLBLDIAG = 0x424c - ETHERTYPE_IP = 0x800 - ETHERTYPE_IPAS = 0x876c - ETHERTYPE_IPV6 = 0x86dd - ETHERTYPE_IPX = 0x8137 - ETHERTYPE_IPXNEW = 0x8037 - ETHERTYPE_KALPANA = 0x8582 - ETHERTYPE_LANBRIDGE = 0x8038 - ETHERTYPE_LANPROBE = 0x8888 - ETHERTYPE_LAT = 0x6004 - ETHERTYPE_LBACK = 0x9000 - ETHERTYPE_LITTLE = 0x8060 - ETHERTYPE_LOGICRAFT = 0x8148 - ETHERTYPE_LOOPBACK = 0x9000 - ETHERTYPE_MATRA = 0x807a - ETHERTYPE_MAX = 0xffff - ETHERTYPE_MERIT = 0x807c - ETHERTYPE_MICP = 0x873a - ETHERTYPE_MOPDL = 0x6001 - ETHERTYPE_MOPRC = 0x6002 - ETHERTYPE_MOTOROLA = 0x818d - ETHERTYPE_MPLS = 0x8847 - ETHERTYPE_MPLS_MCAST = 0x8848 - ETHERTYPE_MUMPS = 0x813f - ETHERTYPE_NBPCC = 0x3c04 - ETHERTYPE_NBPCLAIM = 0x3c09 - ETHERTYPE_NBPCLREQ = 0x3c05 - ETHERTYPE_NBPCLRSP = 0x3c06 - ETHERTYPE_NBPCREQ = 0x3c02 - ETHERTYPE_NBPCRSP = 0x3c03 - ETHERTYPE_NBPDG = 0x3c07 - ETHERTYPE_NBPDGB = 0x3c08 - ETHERTYPE_NBPDLTE = 0x3c0a - ETHERTYPE_NBPRAR = 0x3c0c - ETHERTYPE_NBPRAS = 0x3c0b - ETHERTYPE_NBPRST = 0x3c0d - ETHERTYPE_NBPSCD = 0x3c01 - ETHERTYPE_NBPVCD = 0x3c00 - ETHERTYPE_NBS = 0x802 - ETHERTYPE_NCD = 0x8149 - ETHERTYPE_NESTAR = 0x8006 - ETHERTYPE_NETBEUI = 0x8191 - ETHERTYPE_NOVELL = 0x8138 - ETHERTYPE_NS = 0x600 - ETHERTYPE_NSAT = 0x601 - ETHERTYPE_NSCOMPAT = 0x807 - ETHERTYPE_NTRAILER = 0x10 - ETHERTYPE_OS9 = 0x7007 - ETHERTYPE_OS9NET = 0x7009 - ETHERTYPE_PACER = 0x80c6 - ETHERTYPE_PAE = 0x888e - ETHERTYPE_PCS = 0x4242 - ETHERTYPE_PLANNING = 0x8044 - ETHERTYPE_PPP = 0x880b - ETHERTYPE_PPPOE = 0x8864 - ETHERTYPE_PPPOEDISC = 0x8863 - ETHERTYPE_PRIMENTS = 0x7031 - ETHERTYPE_PUP = 0x200 - ETHERTYPE_PUPAT = 0x200 - ETHERTYPE_RACAL = 0x7030 - ETHERTYPE_RATIONAL = 0x8150 - ETHERTYPE_RAWFR = 0x6559 - ETHERTYPE_RCL = 0x1995 - ETHERTYPE_RDP = 0x8739 - ETHERTYPE_RETIX = 0x80f2 - ETHERTYPE_REVARP = 0x8035 - ETHERTYPE_SCA = 0x6007 - ETHERTYPE_SECTRA = 0x86db - ETHERTYPE_SECUREDATA = 0x876d - ETHERTYPE_SGITW = 0x817e - ETHERTYPE_SG_BOUNCE = 0x8016 - ETHERTYPE_SG_DIAG = 0x8013 - ETHERTYPE_SG_NETGAMES = 0x8014 - ETHERTYPE_SG_RESV = 0x8015 - ETHERTYPE_SIMNET = 0x5208 - ETHERTYPE_SLOWPROTOCOLS = 0x8809 - ETHERTYPE_SNA = 0x80d5 - ETHERTYPE_SNMP = 0x814c - ETHERTYPE_SONIX = 0xfaf5 - ETHERTYPE_SPIDER = 0x809f - ETHERTYPE_SPRITE = 0x500 - ETHERTYPE_STP = 0x8181 - ETHERTYPE_TALARIS = 0x812b - ETHERTYPE_TALARISMC = 0x852b - ETHERTYPE_TCPCOMP = 0x876b - ETHERTYPE_TCPSM = 0x9002 - ETHERTYPE_TEC = 0x814f - ETHERTYPE_TIGAN = 0x802f - ETHERTYPE_TRAIL = 0x1000 - ETHERTYPE_TRANSETHER = 0x6558 - ETHERTYPE_TYMSHARE = 0x802e - ETHERTYPE_UBBST = 0x7005 - ETHERTYPE_UBDEBUG = 0x900 - ETHERTYPE_UBDIAGLOOP = 0x7002 - ETHERTYPE_UBDL = 0x7000 - ETHERTYPE_UBNIU = 0x7001 - ETHERTYPE_UBNMC = 0x7003 - ETHERTYPE_VALID = 0x1600 - ETHERTYPE_VARIAN = 0x80dd - ETHERTYPE_VAXELN = 0x803b - ETHERTYPE_VEECO = 0x8067 - ETHERTYPE_VEXP = 0x805b - ETHERTYPE_VGLAB = 0x8131 - ETHERTYPE_VINES = 0xbad - ETHERTYPE_VINESECHO = 0xbaf - ETHERTYPE_VINESLOOP = 0xbae - ETHERTYPE_VITAL = 0xff00 - ETHERTYPE_VLAN = 0x8100 - ETHERTYPE_VLTLMAN = 0x8080 - ETHERTYPE_VPROD = 0x805c - ETHERTYPE_VURESERVED = 0x8147 - ETHERTYPE_WATERLOO = 0x8130 - ETHERTYPE_WELLFLEET = 0x8103 - ETHERTYPE_X25 = 0x805 - ETHERTYPE_X75 = 0x801 - ETHERTYPE_XNSSM = 0x9001 - ETHERTYPE_XTP = 0x817d - ETHER_ADDR_LEN = 0x6 - ETHER_CRC_LEN = 0x4 - ETHER_CRC_POLY_BE = 0x4c11db6 - ETHER_CRC_POLY_LE = 0xedb88320 - ETHER_HDR_LEN = 0xe - ETHER_MAX_LEN = 0x5ee - ETHER_MAX_LEN_JUMBO = 0x233a - ETHER_MIN_LEN = 0x40 - ETHER_PPPOE_ENCAP_LEN = 0x8 - ETHER_TYPE_LEN = 0x2 - ETHER_VLAN_ENCAP_LEN = 0x4 - EVFILT_AIO = 0x2 - EVFILT_PROC = 0x4 - EVFILT_READ = 0x0 - EVFILT_SIGNAL = 0x5 - EVFILT_SYSCOUNT = 0x7 - EVFILT_TIMER = 0x6 - EVFILT_VNODE = 0x3 - EVFILT_WRITE = 0x1 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_ONESHOT = 0x10 - EV_SYSFLAGS = 0xf000 - EXTA = 0x4b00 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x100 - FLUSHO = 0x800000 - F_CLOSEM = 0xa - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0xc - F_FSCTL = -0x80000000 - F_FSDIRMASK = 0x70000000 - F_FSIN = 0x10000000 - F_FSINOUT = 0x30000000 - F_FSOUT = 0x20000000 - F_FSPRIV = 0x8000 - F_FSVOID = 0x40000000 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0x7 - F_GETNOSIGPIPE = 0xd - F_GETOWN = 0x5 - F_MAXFD = 0xb - F_OK = 0x0 - F_PARAM_MASK = 0xfff - F_PARAM_MAX = 0xfff - F_RDLCK = 0x1 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x8 - F_SETLKW = 0x9 - F_SETNOSIGPIPE = 0xe - F_SETOWN = 0x6 - F_UNLCK = 0x2 - F_WRLCK = 0x3 - HUPCL = 0x4000 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFAN_ARRIVAL = 0x0 - IFAN_DEPARTURE = 0x1 - IFA_ROUTE = 0x1 - IFF_ALLMULTI = 0x200 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x8f52 - IFF_DEBUG = 0x4 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NOTRAILERS = 0x20 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_1822 = 0x2 - IFT_A12MPPSWITCH = 0x82 - IFT_AAL2 = 0xbb - IFT_AAL5 = 0x31 - IFT_ADSL = 0x5e - IFT_AFLANE8023 = 0x3b - IFT_AFLANE8025 = 0x3c - IFT_ARAP = 0x58 - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ASYNC = 0x54 - IFT_ATM = 0x25 - IFT_ATMDXI = 0x69 - IFT_ATMFUNI = 0x6a - IFT_ATMIMA = 0x6b - IFT_ATMLOGICAL = 0x50 - IFT_ATMRADIO = 0xbd - IFT_ATMSUBINTERFACE = 0x86 - IFT_ATMVCIENDPT = 0xc2 - IFT_ATMVIRTUAL = 0x95 - IFT_BGPPOLICYACCOUNTING = 0xa2 - IFT_BRIDGE = 0xd1 - IFT_BSC = 0x53 - IFT_CARP = 0xf8 - IFT_CCTEMUL = 0x3d - IFT_CEPT = 0x13 - IFT_CES = 0x85 - IFT_CHANNEL = 0x46 - IFT_CNR = 0x55 - IFT_COFFEE = 0x84 - IFT_COMPOSITELINK = 0x9b - IFT_DCN = 0x8d - IFT_DIGITALPOWERLINE = 0x8a - IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba - IFT_DLSW = 0x4a - IFT_DOCSCABLEDOWNSTREAM = 0x80 - IFT_DOCSCABLEMACLAYER = 0x7f - IFT_DOCSCABLEUPSTREAM = 0x81 - IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd - IFT_DS0 = 0x51 - IFT_DS0BUNDLE = 0x52 - IFT_DS1FDL = 0xaa - IFT_DS3 = 0x1e - IFT_DTM = 0x8c - IFT_DVBASILN = 0xac - IFT_DVBASIOUT = 0xad - IFT_DVBRCCDOWNSTREAM = 0x93 - IFT_DVBRCCMACLAYER = 0x92 - IFT_DVBRCCUPSTREAM = 0x94 - IFT_ECONET = 0xce - IFT_EON = 0x19 - IFT_EPLRS = 0x57 - IFT_ESCON = 0x49 - IFT_ETHER = 0x6 - IFT_FAITH = 0xf2 - IFT_FAST = 0x7d - IFT_FASTETHER = 0x3e - IFT_FASTETHERFX = 0x45 - IFT_FDDI = 0xf - IFT_FIBRECHANNEL = 0x38 - IFT_FRAMERELAYINTERCONNECT = 0x3a - IFT_FRAMERELAYMPI = 0x5c - IFT_FRDLCIENDPT = 0xc1 - IFT_FRELAY = 0x20 - IFT_FRELAYDCE = 0x2c - IFT_FRF16MFRBUNDLE = 0xa3 - IFT_FRFORWARD = 0x9e - IFT_G703AT2MB = 0x43 - IFT_G703AT64K = 0x42 - IFT_GIF = 0xf0 - IFT_GIGABITETHERNET = 0x75 - IFT_GR303IDT = 0xb2 - IFT_GR303RDT = 0xb1 - IFT_H323GATEKEEPER = 0xa4 - IFT_H323PROXY = 0xa5 - IFT_HDH1822 = 0x3 - IFT_HDLC = 0x76 - IFT_HDSL2 = 0xa8 - IFT_HIPERLAN2 = 0xb7 - IFT_HIPPI = 0x2f - IFT_HIPPIINTERFACE = 0x39 - IFT_HOSTPAD = 0x5a - IFT_HSSI = 0x2e - IFT_HY = 0xe - IFT_IBM370PARCHAN = 0x48 - IFT_IDSL = 0x9a - IFT_IEEE1394 = 0x90 - IFT_IEEE80211 = 0x47 - IFT_IEEE80212 = 0x37 - IFT_IEEE8023ADLAG = 0xa1 - IFT_IFGSN = 0x91 - IFT_IMT = 0xbe - IFT_INFINIBAND = 0xc7 - IFT_INTERLEAVE = 0x7c - IFT_IP = 0x7e - IFT_IPFORWARD = 0x8e - IFT_IPOVERATM = 0x72 - IFT_IPOVERCDLC = 0x6d - IFT_IPOVERCLAW = 0x6e - IFT_IPSWITCH = 0x4e - IFT_ISDN = 0x3f - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_ISDNS = 0x4b - IFT_ISDNU = 0x4c - IFT_ISO88022LLC = 0x29 - IFT_ISO88023 = 0x7 - IFT_ISO88024 = 0x8 - IFT_ISO88025 = 0x9 - IFT_ISO88025CRFPINT = 0x62 - IFT_ISO88025DTR = 0x56 - IFT_ISO88025FIBER = 0x73 - IFT_ISO88026 = 0xa - IFT_ISUP = 0xb3 - IFT_L2VLAN = 0x87 - IFT_L3IPVLAN = 0x88 - IFT_L3IPXVLAN = 0x89 - IFT_LAPB = 0x10 - IFT_LAPD = 0x4d - IFT_LAPF = 0x77 - IFT_LINEGROUP = 0xd2 - IFT_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - IFT_MEDIAMAILOVERIP = 0x8b - IFT_MFSIGLINK = 0xa7 - IFT_MIOX25 = 0x26 - IFT_MODEM = 0x30 - IFT_MPC = 0x71 - IFT_MPLS = 0xa6 - IFT_MPLSTUNNEL = 0x96 - IFT_MSDSL = 0x8f - IFT_MVL = 0xbf - IFT_MYRINET = 0x63 - IFT_NFAS = 0xaf - IFT_NSIP = 0x1b - IFT_OPTICALCHANNEL = 0xc3 - IFT_OPTICALTRANSPORT = 0xc4 - IFT_OTHER = 0x1 - IFT_P10 = 0xc - IFT_P80 = 0xd - IFT_PARA = 0x22 - IFT_PFLOG = 0xf5 - IFT_PFSYNC = 0xf6 - IFT_PLC = 0xae - IFT_PON155 = 0xcf - IFT_PON622 = 0xd0 - IFT_POS = 0xab - IFT_PPP = 0x17 - IFT_PPPMULTILINKBUNDLE = 0x6c - IFT_PROPATM = 0xc5 - IFT_PROPBWAP2MP = 0xb8 - IFT_PROPCNLS = 0x59 - IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 - IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 - IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 - IFT_PROPMUX = 0x36 - IFT_PROPVIRTUAL = 0x35 - IFT_PROPWIRELESSP2P = 0x9d - IFT_PTPSERIAL = 0x16 - IFT_PVC = 0xf1 - IFT_Q2931 = 0xc9 - IFT_QLLC = 0x44 - IFT_RADIOMAC = 0xbc - IFT_RADSL = 0x5f - IFT_REACHDSL = 0xc0 - IFT_RFC1483 = 0x9f - IFT_RS232 = 0x21 - IFT_RSRB = 0x4f - IFT_SDLC = 0x11 - IFT_SDSL = 0x60 - IFT_SHDSL = 0xa9 - IFT_SIP = 0x1f - IFT_SIPSIG = 0xcc - IFT_SIPTG = 0xcb - IFT_SLIP = 0x1c - IFT_SMDSDXI = 0x2b - IFT_SMDSICIP = 0x34 - IFT_SONET = 0x27 - IFT_SONETOVERHEADCHANNEL = 0xb9 - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_SRP = 0x97 - IFT_SS7SIGLINK = 0x9c - IFT_STACKTOSTACK = 0x6f - IFT_STARLAN = 0xb - IFT_STF = 0xd7 - IFT_T1 = 0x12 - IFT_TDLC = 0x74 - IFT_TELINK = 0xc8 - IFT_TERMPAD = 0x5b - IFT_TR008 = 0xb0 - IFT_TRANSPHDLC = 0x7b - IFT_TUNNEL = 0x83 - IFT_ULTRA = 0x1d - IFT_USB = 0xa0 - IFT_V11 = 0x40 - IFT_V35 = 0x2d - IFT_V36 = 0x41 - IFT_V37 = 0x78 - IFT_VDSL = 0x61 - IFT_VIRTUALIPADDRESS = 0x70 - IFT_VIRTUALTG = 0xca - IFT_VOICEDID = 0xd5 - IFT_VOICEEM = 0x64 - IFT_VOICEEMFGD = 0xd3 - IFT_VOICEENCAP = 0x67 - IFT_VOICEFGDEANA = 0xd4 - IFT_VOICEFXO = 0x65 - IFT_VOICEFXS = 0x66 - IFT_VOICEOVERATM = 0x98 - IFT_VOICEOVERCABLE = 0xc6 - IFT_VOICEOVERFRAMERELAY = 0x99 - IFT_VOICEOVERIP = 0x68 - IFT_X213 = 0x5d - IFT_X25 = 0x5 - IFT_X25DDN = 0x4 - IFT_X25HUNTGROUP = 0x7a - IFT_X25MLP = 0x79 - IFT_X25PLE = 0x28 - IFT_XETHER = 0x1a - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLASSD_HOST = 0xfffffff - IN_CLASSD_NET = 0xf0000000 - IN_CLASSD_NSHIFT = 0x1c - IN_LOOPBACKNET = 0x7f - IPPROTO_AH = 0x33 - IPPROTO_CARP = 0x70 - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPIP = 0x4 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_IPV6_ICMP = 0x3a - IPPROTO_MAX = 0x100 - IPPROTO_MAXID = 0x34 - IPPROTO_MOBILE = 0x37 - IPPROTO_NONE = 0x3b - IPPROTO_PFSYNC = 0xf0 - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_VRRP = 0x70 - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_FAITH = 0x1d - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FRAGTTL = 0x78 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_IPSEC_POLICY = 0x1c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXPACKET = 0xffff - IPV6_MMTU = 0x500 - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_PATHMTU = 0x2c - IPV6_PKTINFO = 0x2e - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - IPV6_RTHDR = 0x33 - IPV6_RTHDRDSTOPTS = 0x23 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_SOCKOPT_RESERVED1 = 0x3 - IPV6_TCLASS = 0x3d - IPV6_UNICAST_HOPS = 0x4 - IPV6_USE_MIN_MTU = 0x2a - IPV6_V6ONLY = 0x1b - IPV6_VERSION = 0x60 - IPV6_VERSION_MASK = 0xf0 - IP_ADD_MEMBERSHIP = 0xc - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0xd - IP_EF = 0x8000 - IP_ERRORMTU = 0x15 - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x16 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINFRAGSIZE = 0x45 - IP_MINTTL = 0x18 - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x1 - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVRETOPTS = 0x6 - IP_RECVTTL = 0x17 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_TOS = 0x3 - IP_TTL = 0x4 - ISIG = 0x80 - ISTRIP = 0x20 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x6 - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_SPACEAVAIL = 0x5 - MADV_WILLNEED = 0x3 - MAP_ALIGNMENT_16MB = 0x18000000 - MAP_ALIGNMENT_1TB = 0x28000000 - MAP_ALIGNMENT_256TB = 0x30000000 - MAP_ALIGNMENT_4GB = 0x20000000 - MAP_ALIGNMENT_64KB = 0x10000000 - MAP_ALIGNMENT_64PB = 0x38000000 - MAP_ALIGNMENT_MASK = -0x1000000 - MAP_ALIGNMENT_SHIFT = 0x18 - MAP_ANON = 0x1000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_HASSEMAPHORE = 0x200 - MAP_INHERIT = 0x80 - MAP_INHERIT_COPY = 0x1 - MAP_INHERIT_DEFAULT = 0x1 - MAP_INHERIT_DONATE_COPY = 0x3 - MAP_INHERIT_NONE = 0x2 - MAP_INHERIT_SHARE = 0x0 - MAP_NORESERVE = 0x40 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 - MAP_SHARED = 0x1 - MAP_STACK = 0x2000 - MAP_TRYFIXED = 0x400 - MAP_WIRED = 0x800 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MSG_BCAST = 0x100 - MSG_CMSG_CLOEXEC = 0x800 - MSG_CONTROLMBUF = 0x2000000 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOR = 0x8 - MSG_IOVUSRSPACE = 0x4000000 - MSG_LENUSRSPACE = 0x8000000 - MSG_MCAST = 0x200 - MSG_NAMEMBUF = 0x1000000 - MSG_NBIO = 0x1000 - MSG_NOSIGNAL = 0x400 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_USERFLAGS = 0xffffff - MSG_WAITALL = 0x40 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x2 - MS_SYNC = 0x4 - NAME_MAX = 0x1ff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x5 - NET_RT_MAXID = 0x6 - NET_RT_OIFLIST = 0x4 - NET_RT_OOIFLIST = 0x3 - NOFLSH = 0x80000000 - NOTE_ATTRIB = 0x8 - NOTE_CHILD = 0x4 - NOTE_DELETE = 0x1 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXTEND = 0x4 - NOTE_FORK = 0x40000000 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_PCTRLMASK = 0xf0000000 - NOTE_PDATAMASK = 0xfffff - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - OFIOGETBMAP = 0xc004667a - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - O_ACCMODE = 0x3 - O_ALT_IO = 0x40000 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x400000 - O_CREAT = 0x200 - O_DIRECT = 0x80000 - O_DIRECTORY = 0x200000 - O_DSYNC = 0x10000 - O_EXCL = 0x800 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_NOSIGPIPE = 0x1000000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x20000 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PRI_IOFLUSH = 0x7c - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - RLIMIT_AS = 0xa - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_NOFILE = 0x8 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0x7fffffffffffffff - RTAX_AUTHOR = 0x6 - RTAX_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x9 - RTAX_NETMASK = 0x2 - RTAX_TAG = 0x8 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTA_TAG = 0x100 - RTF_ANNOUNCE = 0x20000 - RTF_BLACKHOLE = 0x1000 - RTF_CLONED = 0x2000 - RTF_CLONING = 0x100 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_LLINFO = 0x400 - RTF_MASK = 0x80 - RTF_MODIFIED = 0x20 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_REJECT = 0x8 - RTF_SRC = 0x10000 - RTF_STATIC = 0x800 - RTF_UP = 0x1 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_CHGADDR = 0x15 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_GET = 0x4 - RTM_IEEE80211 = 0x11 - RTM_IFANNOUNCE = 0x10 - RTM_IFINFO = 0x14 - RTM_LLINFO_UPD = 0x13 - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_OIFINFO = 0xf - RTM_OLDADD = 0x9 - RTM_OLDDEL = 0xa - RTM_OOIFINFO = 0xe - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 - RTM_SETGATE = 0x12 - RTM_VERSION = 0x4 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - SCM_CREDS = 0x4 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x8 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80906931 - SIOCADDRT = 0x8038720a - SIOCAIFADDR = 0x8040691a - SIOCALIFADDR = 0x8118691c - SIOCATMARK = 0x40047307 - SIOCDELMULTI = 0x80906932 - SIOCDELRT = 0x8038720b - SIOCDIFADDR = 0x80906919 - SIOCDIFPHYADDR = 0x80906949 - SIOCDLIFADDR = 0x8118691e - SIOCGDRVSPEC = 0xc028697b - SIOCGETPFSYNC = 0xc09069f8 - SIOCGETSGCNT = 0xc0207534 - SIOCGETVIFCNT = 0xc0287533 - SIOCGHIWAT = 0x40047301 - SIOCGIFADDR = 0xc0906921 - SIOCGIFADDRPREF = 0xc0986920 - SIOCGIFALIAS = 0xc040691b - SIOCGIFBRDADDR = 0xc0906923 - SIOCGIFCAP = 0xc0206976 - SIOCGIFCONF = 0xc0106926 - SIOCGIFDATA = 0xc0986985 - SIOCGIFDLT = 0xc0906977 - SIOCGIFDSTADDR = 0xc0906922 - SIOCGIFFLAGS = 0xc0906911 - SIOCGIFGENERIC = 0xc090693a - SIOCGIFMEDIA = 0xc0306936 - SIOCGIFMETRIC = 0xc0906917 - SIOCGIFMTU = 0xc090697e - SIOCGIFNETMASK = 0xc0906925 - SIOCGIFPDSTADDR = 0xc0906948 - SIOCGIFPSRCADDR = 0xc0906947 - SIOCGLIFADDR = 0xc118691d - SIOCGLIFPHYADDR = 0xc118694b - SIOCGLINKSTR = 0xc0286987 - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCGVH = 0xc0906983 - SIOCIFCREATE = 0x8090697a - SIOCIFDESTROY = 0x80906979 - SIOCIFGCLONERS = 0xc0106978 - SIOCINITIFADDR = 0xc0706984 - SIOCSDRVSPEC = 0x8028697b - SIOCSETPFSYNC = 0x809069f7 - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8090690c - SIOCSIFADDRPREF = 0x8098691f - SIOCSIFBRDADDR = 0x80906913 - SIOCSIFCAP = 0x80206975 - SIOCSIFDSTADDR = 0x8090690e - SIOCSIFFLAGS = 0x80906910 - SIOCSIFGENERIC = 0x80906939 - SIOCSIFMEDIA = 0xc0906935 - SIOCSIFMETRIC = 0x80906918 - SIOCSIFMTU = 0x8090697f - SIOCSIFNETMASK = 0x80906916 - SIOCSIFPHYADDR = 0x80406946 - SIOCSLIFPHYADDR = 0x8118694a - SIOCSLINKSTR = 0x80286988 - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SIOCSVH = 0xc0906982 - SIOCZIFDATA = 0xc0986986 - SOCK_CLOEXEC = 0x10000000 - SOCK_DGRAM = 0x2 - SOCK_FLAGS_MASK = 0xf0000000 - SOCK_NONBLOCK = 0x20000000 - SOCK_NOSIGPIPE = 0x40000000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_ACCEPTFILTER = 0x1000 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_NOHEADER = 0x100a - SO_NOSIGPIPE = 0x800 - SO_OOBINLINE = 0x100 - SO_OVERFLOWED = 0x1009 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x100c - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x100b - SO_TIMESTAMP = 0x2000 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SYSCTL_VERSION = 0x1000000 - SYSCTL_VERS_0 = 0x0 - SYSCTL_VERS_1 = 0x1000000 - SYSCTL_VERS_MASK = 0xff000000 - S_ARCH1 = 0x10000 - S_ARCH2 = 0x20000 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IFWHT = 0xe000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISTXT = 0x200 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - S_LOGIN_SET = 0x1 - TCIFLUSH = 0x1 - TCIOFLUSH = 0x3 - TCOFLUSH = 0x2 - TCP_CONGCTL = 0x20 - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x3 - TCP_KEEPINIT = 0x7 - TCP_KEEPINTVL = 0x5 - TCP_MAXBURST = 0x4 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0x10 - TCP_MINMSS = 0xd8 - TCP_MSS = 0x218 - TCP_NODELAY = 0x1 - TCSAFLUSH = 0x2 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDCDTIMESTAMP = 0x40107458 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLAG_CDTRCTS = 0x10 - TIOCFLAG_CLOCAL = 0x2 - TIOCFLAG_CRTSCTS = 0x4 - TIOCFLAG_MDMBUF = 0x8 - TIOCFLAG_SOFTCAR = 0x1 - TIOCFLUSH = 0x80047410 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGFLAGS = 0x4004745d - TIOCGLINED = 0x40207442 - TIOCGPGRP = 0x40047477 - TIOCGQSIZE = 0x40047481 - TIOCGRANTPT = 0x20007447 - TIOCGSID = 0x40047463 - TIOCGSIZE = 0x40087468 - TIOCGWINSZ = 0x40087468 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGET = 0x4004746a - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x20007471 - TIOCNXCL = 0x2000740e - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x80047470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCPTMGET = 0x40287446 - TIOCPTSNAME = 0x40287448 - TIOCRCVFRAME = 0x80087445 - TIOCREMOTE = 0x80047469 - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSFLAGS = 0x8004745c - TIOCSIG = 0x2000745f - TIOCSLINED = 0x80207443 - TIOCSPGRP = 0x80047476 - TIOCSQSIZE = 0x80047480 - TIOCSSIZE = 0x80087467 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x80047465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCUCNTL = 0x80047466 - TIOCXMTFRAME = 0x80087444 - TOSTOP = 0x400000 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WALL = 0x8 - WALLSIG = 0x8 - WALTSIG = 0x4 - WCLONE = 0x4 - WCOREFLAG = 0x80 - WNOHANG = 0x1 - WNOWAIT = 0x10000 - WNOZOMBIE = 0x20000 - WOPTSCHECKED = 0x40000 - WSTOPPED = 0x7f - WUNTRACED = 0x2 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x30) - EADDRNOTAVAIL = syscall.Errno(0x31) - EAFNOSUPPORT = syscall.Errno(0x2f) - EAGAIN = syscall.Errno(0x23) - EALREADY = syscall.Errno(0x25) - EAUTH = syscall.Errno(0x50) - EBADF = syscall.Errno(0x9) - EBADMSG = syscall.Errno(0x58) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x57) - ECHILD = syscall.Errno(0xa) - ECONNABORTED = syscall.Errno(0x35) - ECONNREFUSED = syscall.Errno(0x3d) - ECONNRESET = syscall.Errno(0x36) - EDEADLK = syscall.Errno(0xb) - EDESTADDRREQ = syscall.Errno(0x27) - EDOM = syscall.Errno(0x21) - EDQUOT = syscall.Errno(0x45) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EFTYPE = syscall.Errno(0x4f) - EHOSTDOWN = syscall.Errno(0x40) - EHOSTUNREACH = syscall.Errno(0x41) - EIDRM = syscall.Errno(0x52) - EILSEQ = syscall.Errno(0x55) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x60) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5e) - ENAMETOOLONG = syscall.Errno(0x3f) - ENEEDAUTH = syscall.Errno(0x51) - ENETDOWN = syscall.Errno(0x32) - ENETRESET = syscall.Errno(0x34) - ENETUNREACH = syscall.Errno(0x33) - ENFILE = syscall.Errno(0x17) - ENOATTR = syscall.Errno(0x5d) - ENOBUFS = syscall.Errno(0x37) - ENODATA = syscall.Errno(0x59) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x5f) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x53) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x5a) - ENOSTR = syscall.Errno(0x5b) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x56) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x54) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x2e) - EPIPE = syscall.Errno(0x20) - EPROCLIM = syscall.Errno(0x43) - EPROCUNAVAIL = syscall.Errno(0x4c) - EPROGMISMATCH = syscall.Errno(0x4b) - EPROGUNAVAIL = syscall.Errno(0x4a) - EPROTO = syscall.Errno(0x60) - EPROTONOSUPPORT = syscall.Errno(0x2b) - EPROTOTYPE = syscall.Errno(0x29) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x47) - EROFS = syscall.Errno(0x1e) - ERPCMISMATCH = syscall.Errno(0x49) - ESHUTDOWN = syscall.Errno(0x3a) - ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x46) - ETIME = syscall.Errno(0x5c) - ETIMEDOUT = syscall.Errno(0x3c) - ETOOMANYREFS = syscall.Errno(0x3b) - ETXTBSY = syscall.Errno(0x1a) - EUSERS = syscall.Errno(0x44) - EWOULDBLOCK = syscall.Errno(0x23) - EXDEV = syscall.Errno(0x12) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x14) - SIGCONT = syscall.Signal(0x13) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINFO = syscall.Signal(0x1d) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x17) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x20) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x12) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x10) - SIGUSR1 = syscall.Signal(0x1e) - SIGUSR2 = syscall.Signal(0x1f) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errors = [...]string{ - 1: "operation not permitted", - 2: "no such file or directory", - 3: "no such process", - 4: "interrupted system call", - 5: "input/output error", - 6: "device not configured", - 7: "argument list too long", - 8: "exec format error", - 9: "bad file descriptor", - 10: "no child processes", - 11: "resource deadlock avoided", - 12: "cannot allocate memory", - 13: "permission denied", - 14: "bad address", - 15: "block device required", - 16: "device busy", - 17: "file exists", - 18: "cross-device link", - 19: "operation not supported by device", - 20: "not a directory", - 21: "is a directory", - 22: "invalid argument", - 23: "too many open files in system", - 24: "too many open files", - 25: "inappropriate ioctl for device", - 26: "text file busy", - 27: "file too large", - 28: "no space left on device", - 29: "illegal seek", - 30: "read-only file system", - 31: "too many links", - 32: "broken pipe", - 33: "numerical argument out of domain", - 34: "result too large or too small", - 35: "resource temporarily unavailable", - 36: "operation now in progress", - 37: "operation already in progress", - 38: "socket operation on non-socket", - 39: "destination address required", - 40: "message too long", - 41: "protocol wrong type for socket", - 42: "protocol option not available", - 43: "protocol not supported", - 44: "socket type not supported", - 45: "operation not supported", - 46: "protocol family not supported", - 47: "address family not supported by protocol family", - 48: "address already in use", - 49: "can't assign requested address", - 50: "network is down", - 51: "network is unreachable", - 52: "network dropped connection on reset", - 53: "software caused connection abort", - 54: "connection reset by peer", - 55: "no buffer space available", - 56: "socket is already connected", - 57: "socket is not connected", - 58: "can't send after socket shutdown", - 59: "too many references: can't splice", - 60: "connection timed out", - 61: "connection refused", - 62: "too many levels of symbolic links", - 63: "file name too long", - 64: "host is down", - 65: "no route to host", - 66: "directory not empty", - 67: "too many processes", - 68: "too many users", - 69: "disc quota exceeded", - 70: "stale NFS file handle", - 71: "too many levels of remote in path", - 72: "RPC struct is bad", - 73: "RPC version wrong", - 74: "RPC prog. not avail", - 75: "program version wrong", - 76: "bad procedure for program", - 77: "no locks available", - 78: "function not implemented", - 79: "inappropriate file type or format", - 80: "authentication error", - 81: "need authenticator", - 82: "identifier removed", - 83: "no message of desired type", - 84: "value too large to be stored in data type", - 85: "illegal byte sequence", - 86: "not supported", - 87: "operation Canceled", - 88: "bad or Corrupt message", - 89: "no message available", - 90: "no STREAM resources", - 91: "not a STREAM", - 92: "STREAM ioctl timeout", - 93: "attribute not found", - 94: "multihop attempted", - 95: "link has been severed", - 96: "protocol error", -} - -// Signal table -var signals = [...]string{ - 1: "hangup", - 2: "interrupt", - 3: "quit", - 4: "illegal instruction", - 5: "trace/BPT trap", - 6: "abort trap", - 7: "EMT trap", - 8: "floating point exception", - 9: "killed", - 10: "bus error", - 11: "segmentation fault", - 12: "bad system call", - 13: "broken pipe", - 14: "alarm clock", - 15: "terminated", - 16: "urgent I/O condition", - 17: "stopped (signal)", - 18: "stopped", - 19: "continued", - 20: "child exited", - 21: "stopped (tty input)", - 22: "stopped (tty output)", - 23: "I/O possible", - 24: "cputime limit exceeded", - 25: "filesize limit exceeded", - 26: "virtual timer expired", - 27: "profiling timer expired", - 28: "window size changes", - 29: "information request", - 30: "user defined signal 1", - 31: "user defined signal 2", - 32: "power fail/restart", -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go deleted file mode 100644 index 206c75f..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go +++ /dev/null @@ -1,1691 +0,0 @@ -// mkerrors.sh -marm -// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT - -// +build arm,netbsd - -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs -- -marm _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_ARP = 0x1c - AF_BLUETOOTH = 0x1f - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_CNT = 0x15 - AF_COIP = 0x14 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_E164 = 0x1a - AF_ECMA = 0x8 - AF_HYLINK = 0xf - AF_IEEE80211 = 0x20 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x18 - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x23 - AF_MPLS = 0x21 - AF_NATM = 0x1b - AF_NS = 0x6 - AF_OROUTE = 0x11 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x22 - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - ARPHRD_ARCNET = 0x7 - ARPHRD_ETHER = 0x1 - ARPHRD_FRELAY = 0xf - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_STRIP = 0x17 - B0 = 0x0 - B110 = 0x6e - B115200 = 0x1c200 - B1200 = 0x4b0 - B134 = 0x86 - B14400 = 0x3840 - B150 = 0x96 - B1800 = 0x708 - B19200 = 0x4b00 - B200 = 0xc8 - B230400 = 0x38400 - B2400 = 0x960 - B28800 = 0x7080 - B300 = 0x12c - B38400 = 0x9600 - B460800 = 0x70800 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B921600 = 0xe1000 - B9600 = 0x2580 - BIOCFEEDBACK = 0x8004427d - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc0084277 - BIOCGETIF = 0x4090426b - BIOCGFEEDBACK = 0x4004427c - BIOCGHDRCMPLT = 0x40044274 - BIOCGRTIMEOUT = 0x400c427b - BIOCGSEESENT = 0x40044278 - BIOCGSTATS = 0x4080426f - BIOCGSTATSOLD = 0x4008426f - BIOCIMMEDIATE = 0x80044270 - BIOCPROMISC = 0x20004269 - BIOCSBLEN = 0xc0044266 - BIOCSDLT = 0x80044276 - BIOCSETF = 0x80084267 - BIOCSETIF = 0x8090426c - BIOCSFEEDBACK = 0x8004427d - BIOCSHDRCMPLT = 0x80044275 - BIOCSRTIMEOUT = 0x800c427a - BIOCSSEESENT = 0x80044279 - BIOCSTCPF = 0x80084272 - BIOCSUDPF = 0x80084273 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x4 - BPF_ALIGNMENT32 = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DFLTBUFSIZE = 0x100000 - BPF_DIV = 0x30 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXBUFSIZE = 0x1000000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_OR = 0x40 - BPF_RELEASE = 0x30bb6 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BRKINT = 0x2 - CFLUSH = 0xf - CLOCAL = 0x8000 - CREAD = 0x800 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_MAXNAME = 0xc - CTL_NET = 0x4 - CTL_QUERY = -0x2 - DIOCBSFLUSH = 0x20006478 - DLT_A429 = 0xb8 - DLT_A653_ICM = 0xb9 - DLT_AIRONET_HEADER = 0x78 - DLT_AOS = 0xde - DLT_APPLE_IP_OVER_IEEE1394 = 0x8a - DLT_ARCNET = 0x7 - DLT_ARCNET_LINUX = 0x81 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_AX25_KISS = 0xca - DLT_BACNET_MS_TP = 0xa5 - DLT_BLUETOOTH_HCI_H4 = 0xbb - DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 - DLT_CAN20B = 0xbe - DLT_CAN_SOCKETCAN = 0xe3 - DLT_CHAOS = 0x5 - DLT_CISCO_IOS = 0x76 - DLT_C_HDLC = 0x68 - DLT_C_HDLC_WITH_DIR = 0xcd - DLT_DECT = 0xdd - DLT_DOCSIS = 0x8f - DLT_ECONET = 0x73 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_ERF = 0xc5 - DLT_ERF_ETH = 0xaf - DLT_ERF_POS = 0xb0 - DLT_FC_2 = 0xe0 - DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 - DLT_FDDI = 0xa - DLT_FLEXRAY = 0xd2 - DLT_FRELAY = 0x6b - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_GSMTAP_ABIS = 0xda - DLT_GSMTAP_UM = 0xd9 - DLT_HDLC = 0x10 - DLT_HHDLC = 0x79 - DLT_HIPPI = 0xf - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_IEEE802_15_4 = 0xc3 - DLT_IEEE802_15_4_LINUX = 0xbf - DLT_IEEE802_15_4_NONASK_PHY = 0xd7 - DLT_IEEE802_16_MAC_CPS = 0xbc - DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 - DLT_IPMB = 0xc7 - DLT_IPMB_LINUX = 0xd1 - DLT_IPNET = 0xe2 - DLT_IPV4 = 0xe4 - DLT_IPV6 = 0xe5 - DLT_IP_OVER_FC = 0x7a - DLT_JUNIPER_ATM1 = 0x89 - DLT_JUNIPER_ATM2 = 0x87 - DLT_JUNIPER_CHDLC = 0xb5 - DLT_JUNIPER_ES = 0x84 - DLT_JUNIPER_ETHER = 0xb2 - DLT_JUNIPER_FRELAY = 0xb4 - DLT_JUNIPER_GGSN = 0x85 - DLT_JUNIPER_ISM = 0xc2 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - DLT_JUNIPER_PPPOE = 0xa7 - DLT_JUNIPER_PPPOE_ATM = 0xa8 - DLT_JUNIPER_SERVICES = 0x88 - DLT_JUNIPER_ST = 0xc8 - DLT_JUNIPER_VP = 0xb7 - DLT_LAPB_WITH_DIR = 0xcf - DLT_LAPD = 0xcb - DLT_LIN = 0xd4 - DLT_LINUX_EVDEV = 0xd8 - DLT_LINUX_IRDA = 0x90 - DLT_LINUX_LAPD = 0xb1 - DLT_LINUX_SLL = 0x71 - DLT_LOOP = 0x6c - DLT_LTALK = 0x72 - DLT_MFR = 0xb6 - DLT_MOST = 0xd3 - DLT_MPLS = 0xdb - DLT_MTP2 = 0x8c - DLT_MTP2_WITH_PHDR = 0x8b - DLT_MTP3 = 0x8d - DLT_NULL = 0x0 - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PPI = 0xc0 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0xe - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PRISM_HEADER = 0x77 - DLT_PRONET = 0x4 - DLT_RAIF1 = 0xc6 - DLT_RAW = 0xc - DLT_RAWAF_MASK = 0x2240000 - DLT_RIO = 0x7c - DLT_SCCP = 0x8e - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xd - DLT_SUNATM = 0x7b - DLT_SYMANTEC_FIREWALL = 0x63 - DLT_TZSP = 0x80 - DLT_USB = 0xba - DLT_USB_LINUX = 0xbd - DLT_USB_LINUX_MMAPPED = 0xdc - DLT_WIHART = 0xdf - DLT_X2E_SERIAL = 0xd5 - DLT_X2E_XORAYA = 0xd6 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EMUL_LINUX = 0x1 - EMUL_LINUX32 = 0x5 - EMUL_MAXID = 0x6 - ETHERCAP_JUMBO_MTU = 0x4 - ETHERCAP_VLAN_HWTAGGING = 0x2 - ETHERCAP_VLAN_MTU = 0x1 - ETHERMIN = 0x2e - ETHERMTU = 0x5dc - ETHERMTU_JUMBO = 0x2328 - ETHERTYPE_8023 = 0x4 - ETHERTYPE_AARP = 0x80f3 - ETHERTYPE_ACCTON = 0x8390 - ETHERTYPE_AEONIC = 0x8036 - ETHERTYPE_ALPHA = 0x814a - ETHERTYPE_AMBER = 0x6008 - ETHERTYPE_AMOEBA = 0x8145 - ETHERTYPE_APOLLO = 0x80f7 - ETHERTYPE_APOLLODOMAIN = 0x8019 - ETHERTYPE_APPLETALK = 0x809b - ETHERTYPE_APPLITEK = 0x80c7 - ETHERTYPE_ARGONAUT = 0x803a - ETHERTYPE_ARP = 0x806 - ETHERTYPE_AT = 0x809b - ETHERTYPE_ATALK = 0x809b - ETHERTYPE_ATOMIC = 0x86df - ETHERTYPE_ATT = 0x8069 - ETHERTYPE_ATTSTANFORD = 0x8008 - ETHERTYPE_AUTOPHON = 0x806a - ETHERTYPE_AXIS = 0x8856 - ETHERTYPE_BCLOOP = 0x9003 - ETHERTYPE_BOFL = 0x8102 - ETHERTYPE_CABLETRON = 0x7034 - ETHERTYPE_CHAOS = 0x804 - ETHERTYPE_COMDESIGN = 0x806c - ETHERTYPE_COMPUGRAPHIC = 0x806d - ETHERTYPE_COUNTERPOINT = 0x8062 - ETHERTYPE_CRONUS = 0x8004 - ETHERTYPE_CRONUSVLN = 0x8003 - ETHERTYPE_DCA = 0x1234 - ETHERTYPE_DDE = 0x807b - ETHERTYPE_DEBNI = 0xaaaa - ETHERTYPE_DECAM = 0x8048 - ETHERTYPE_DECCUST = 0x6006 - ETHERTYPE_DECDIAG = 0x6005 - ETHERTYPE_DECDNS = 0x803c - ETHERTYPE_DECDTS = 0x803e - ETHERTYPE_DECEXPER = 0x6000 - ETHERTYPE_DECLAST = 0x8041 - ETHERTYPE_DECLTM = 0x803f - ETHERTYPE_DECMUMPS = 0x6009 - ETHERTYPE_DECNETBIOS = 0x8040 - ETHERTYPE_DELTACON = 0x86de - ETHERTYPE_DIDDLE = 0x4321 - ETHERTYPE_DLOG1 = 0x660 - ETHERTYPE_DLOG2 = 0x661 - ETHERTYPE_DN = 0x6003 - ETHERTYPE_DOGFIGHT = 0x1989 - ETHERTYPE_DSMD = 0x8039 - ETHERTYPE_ECMA = 0x803 - ETHERTYPE_ENCRYPT = 0x803d - ETHERTYPE_ES = 0x805d - ETHERTYPE_EXCELAN = 0x8010 - ETHERTYPE_EXPERDATA = 0x8049 - ETHERTYPE_FLIP = 0x8146 - ETHERTYPE_FLOWCONTROL = 0x8808 - ETHERTYPE_FRARP = 0x808 - ETHERTYPE_GENDYN = 0x8068 - ETHERTYPE_HAYES = 0x8130 - ETHERTYPE_HIPPI_FP = 0x8180 - ETHERTYPE_HITACHI = 0x8820 - ETHERTYPE_HP = 0x8005 - ETHERTYPE_IEEEPUP = 0xa00 - ETHERTYPE_IEEEPUPAT = 0xa01 - ETHERTYPE_IMLBL = 0x4c42 - ETHERTYPE_IMLBLDIAG = 0x424c - ETHERTYPE_IP = 0x800 - ETHERTYPE_IPAS = 0x876c - ETHERTYPE_IPV6 = 0x86dd - ETHERTYPE_IPX = 0x8137 - ETHERTYPE_IPXNEW = 0x8037 - ETHERTYPE_KALPANA = 0x8582 - ETHERTYPE_LANBRIDGE = 0x8038 - ETHERTYPE_LANPROBE = 0x8888 - ETHERTYPE_LAT = 0x6004 - ETHERTYPE_LBACK = 0x9000 - ETHERTYPE_LITTLE = 0x8060 - ETHERTYPE_LOGICRAFT = 0x8148 - ETHERTYPE_LOOPBACK = 0x9000 - ETHERTYPE_MATRA = 0x807a - ETHERTYPE_MAX = 0xffff - ETHERTYPE_MERIT = 0x807c - ETHERTYPE_MICP = 0x873a - ETHERTYPE_MOPDL = 0x6001 - ETHERTYPE_MOPRC = 0x6002 - ETHERTYPE_MOTOROLA = 0x818d - ETHERTYPE_MPLS = 0x8847 - ETHERTYPE_MPLS_MCAST = 0x8848 - ETHERTYPE_MUMPS = 0x813f - ETHERTYPE_NBPCC = 0x3c04 - ETHERTYPE_NBPCLAIM = 0x3c09 - ETHERTYPE_NBPCLREQ = 0x3c05 - ETHERTYPE_NBPCLRSP = 0x3c06 - ETHERTYPE_NBPCREQ = 0x3c02 - ETHERTYPE_NBPCRSP = 0x3c03 - ETHERTYPE_NBPDG = 0x3c07 - ETHERTYPE_NBPDGB = 0x3c08 - ETHERTYPE_NBPDLTE = 0x3c0a - ETHERTYPE_NBPRAR = 0x3c0c - ETHERTYPE_NBPRAS = 0x3c0b - ETHERTYPE_NBPRST = 0x3c0d - ETHERTYPE_NBPSCD = 0x3c01 - ETHERTYPE_NBPVCD = 0x3c00 - ETHERTYPE_NBS = 0x802 - ETHERTYPE_NCD = 0x8149 - ETHERTYPE_NESTAR = 0x8006 - ETHERTYPE_NETBEUI = 0x8191 - ETHERTYPE_NOVELL = 0x8138 - ETHERTYPE_NS = 0x600 - ETHERTYPE_NSAT = 0x601 - ETHERTYPE_NSCOMPAT = 0x807 - ETHERTYPE_NTRAILER = 0x10 - ETHERTYPE_OS9 = 0x7007 - ETHERTYPE_OS9NET = 0x7009 - ETHERTYPE_PACER = 0x80c6 - ETHERTYPE_PAE = 0x888e - ETHERTYPE_PCS = 0x4242 - ETHERTYPE_PLANNING = 0x8044 - ETHERTYPE_PPP = 0x880b - ETHERTYPE_PPPOE = 0x8864 - ETHERTYPE_PPPOEDISC = 0x8863 - ETHERTYPE_PRIMENTS = 0x7031 - ETHERTYPE_PUP = 0x200 - ETHERTYPE_PUPAT = 0x200 - ETHERTYPE_RACAL = 0x7030 - ETHERTYPE_RATIONAL = 0x8150 - ETHERTYPE_RAWFR = 0x6559 - ETHERTYPE_RCL = 0x1995 - ETHERTYPE_RDP = 0x8739 - ETHERTYPE_RETIX = 0x80f2 - ETHERTYPE_REVARP = 0x8035 - ETHERTYPE_SCA = 0x6007 - ETHERTYPE_SECTRA = 0x86db - ETHERTYPE_SECUREDATA = 0x876d - ETHERTYPE_SGITW = 0x817e - ETHERTYPE_SG_BOUNCE = 0x8016 - ETHERTYPE_SG_DIAG = 0x8013 - ETHERTYPE_SG_NETGAMES = 0x8014 - ETHERTYPE_SG_RESV = 0x8015 - ETHERTYPE_SIMNET = 0x5208 - ETHERTYPE_SLOWPROTOCOLS = 0x8809 - ETHERTYPE_SNA = 0x80d5 - ETHERTYPE_SNMP = 0x814c - ETHERTYPE_SONIX = 0xfaf5 - ETHERTYPE_SPIDER = 0x809f - ETHERTYPE_SPRITE = 0x500 - ETHERTYPE_STP = 0x8181 - ETHERTYPE_TALARIS = 0x812b - ETHERTYPE_TALARISMC = 0x852b - ETHERTYPE_TCPCOMP = 0x876b - ETHERTYPE_TCPSM = 0x9002 - ETHERTYPE_TEC = 0x814f - ETHERTYPE_TIGAN = 0x802f - ETHERTYPE_TRAIL = 0x1000 - ETHERTYPE_TRANSETHER = 0x6558 - ETHERTYPE_TYMSHARE = 0x802e - ETHERTYPE_UBBST = 0x7005 - ETHERTYPE_UBDEBUG = 0x900 - ETHERTYPE_UBDIAGLOOP = 0x7002 - ETHERTYPE_UBDL = 0x7000 - ETHERTYPE_UBNIU = 0x7001 - ETHERTYPE_UBNMC = 0x7003 - ETHERTYPE_VALID = 0x1600 - ETHERTYPE_VARIAN = 0x80dd - ETHERTYPE_VAXELN = 0x803b - ETHERTYPE_VEECO = 0x8067 - ETHERTYPE_VEXP = 0x805b - ETHERTYPE_VGLAB = 0x8131 - ETHERTYPE_VINES = 0xbad - ETHERTYPE_VINESECHO = 0xbaf - ETHERTYPE_VINESLOOP = 0xbae - ETHERTYPE_VITAL = 0xff00 - ETHERTYPE_VLAN = 0x8100 - ETHERTYPE_VLTLMAN = 0x8080 - ETHERTYPE_VPROD = 0x805c - ETHERTYPE_VURESERVED = 0x8147 - ETHERTYPE_WATERLOO = 0x8130 - ETHERTYPE_WELLFLEET = 0x8103 - ETHERTYPE_X25 = 0x805 - ETHERTYPE_X75 = 0x801 - ETHERTYPE_XNSSM = 0x9001 - ETHERTYPE_XTP = 0x817d - ETHER_ADDR_LEN = 0x6 - ETHER_CRC_LEN = 0x4 - ETHER_CRC_POLY_BE = 0x4c11db6 - ETHER_CRC_POLY_LE = 0xedb88320 - ETHER_HDR_LEN = 0xe - ETHER_MAX_LEN = 0x5ee - ETHER_MAX_LEN_JUMBO = 0x233a - ETHER_MIN_LEN = 0x40 - ETHER_PPPOE_ENCAP_LEN = 0x8 - ETHER_TYPE_LEN = 0x2 - ETHER_VLAN_ENCAP_LEN = 0x4 - EVFILT_AIO = 0x2 - EVFILT_PROC = 0x4 - EVFILT_READ = 0x0 - EVFILT_SIGNAL = 0x5 - EVFILT_SYSCOUNT = 0x7 - EVFILT_TIMER = 0x6 - EVFILT_VNODE = 0x3 - EVFILT_WRITE = 0x1 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_ONESHOT = 0x10 - EV_SYSFLAGS = 0xf000 - EXTA = 0x4b00 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x100 - FLUSHO = 0x800000 - F_CLOSEM = 0xa - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0xc - F_FSCTL = -0x80000000 - F_FSDIRMASK = 0x70000000 - F_FSIN = 0x10000000 - F_FSINOUT = 0x30000000 - F_FSOUT = 0x20000000 - F_FSPRIV = 0x8000 - F_FSVOID = 0x40000000 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0x7 - F_GETNOSIGPIPE = 0xd - F_GETOWN = 0x5 - F_MAXFD = 0xb - F_OK = 0x0 - F_PARAM_MASK = 0xfff - F_PARAM_MAX = 0xfff - F_RDLCK = 0x1 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x8 - F_SETLKW = 0x9 - F_SETNOSIGPIPE = 0xe - F_SETOWN = 0x6 - F_UNLCK = 0x2 - F_WRLCK = 0x3 - HUPCL = 0x4000 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFAN_ARRIVAL = 0x0 - IFAN_DEPARTURE = 0x1 - IFA_ROUTE = 0x1 - IFF_ALLMULTI = 0x200 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x8f52 - IFF_DEBUG = 0x4 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NOTRAILERS = 0x20 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_1822 = 0x2 - IFT_A12MPPSWITCH = 0x82 - IFT_AAL2 = 0xbb - IFT_AAL5 = 0x31 - IFT_ADSL = 0x5e - IFT_AFLANE8023 = 0x3b - IFT_AFLANE8025 = 0x3c - IFT_ARAP = 0x58 - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ASYNC = 0x54 - IFT_ATM = 0x25 - IFT_ATMDXI = 0x69 - IFT_ATMFUNI = 0x6a - IFT_ATMIMA = 0x6b - IFT_ATMLOGICAL = 0x50 - IFT_ATMRADIO = 0xbd - IFT_ATMSUBINTERFACE = 0x86 - IFT_ATMVCIENDPT = 0xc2 - IFT_ATMVIRTUAL = 0x95 - IFT_BGPPOLICYACCOUNTING = 0xa2 - IFT_BRIDGE = 0xd1 - IFT_BSC = 0x53 - IFT_CARP = 0xf8 - IFT_CCTEMUL = 0x3d - IFT_CEPT = 0x13 - IFT_CES = 0x85 - IFT_CHANNEL = 0x46 - IFT_CNR = 0x55 - IFT_COFFEE = 0x84 - IFT_COMPOSITELINK = 0x9b - IFT_DCN = 0x8d - IFT_DIGITALPOWERLINE = 0x8a - IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba - IFT_DLSW = 0x4a - IFT_DOCSCABLEDOWNSTREAM = 0x80 - IFT_DOCSCABLEMACLAYER = 0x7f - IFT_DOCSCABLEUPSTREAM = 0x81 - IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd - IFT_DS0 = 0x51 - IFT_DS0BUNDLE = 0x52 - IFT_DS1FDL = 0xaa - IFT_DS3 = 0x1e - IFT_DTM = 0x8c - IFT_DVBASILN = 0xac - IFT_DVBASIOUT = 0xad - IFT_DVBRCCDOWNSTREAM = 0x93 - IFT_DVBRCCMACLAYER = 0x92 - IFT_DVBRCCUPSTREAM = 0x94 - IFT_ECONET = 0xce - IFT_EON = 0x19 - IFT_EPLRS = 0x57 - IFT_ESCON = 0x49 - IFT_ETHER = 0x6 - IFT_FAITH = 0xf2 - IFT_FAST = 0x7d - IFT_FASTETHER = 0x3e - IFT_FASTETHERFX = 0x45 - IFT_FDDI = 0xf - IFT_FIBRECHANNEL = 0x38 - IFT_FRAMERELAYINTERCONNECT = 0x3a - IFT_FRAMERELAYMPI = 0x5c - IFT_FRDLCIENDPT = 0xc1 - IFT_FRELAY = 0x20 - IFT_FRELAYDCE = 0x2c - IFT_FRF16MFRBUNDLE = 0xa3 - IFT_FRFORWARD = 0x9e - IFT_G703AT2MB = 0x43 - IFT_G703AT64K = 0x42 - IFT_GIF = 0xf0 - IFT_GIGABITETHERNET = 0x75 - IFT_GR303IDT = 0xb2 - IFT_GR303RDT = 0xb1 - IFT_H323GATEKEEPER = 0xa4 - IFT_H323PROXY = 0xa5 - IFT_HDH1822 = 0x3 - IFT_HDLC = 0x76 - IFT_HDSL2 = 0xa8 - IFT_HIPERLAN2 = 0xb7 - IFT_HIPPI = 0x2f - IFT_HIPPIINTERFACE = 0x39 - IFT_HOSTPAD = 0x5a - IFT_HSSI = 0x2e - IFT_HY = 0xe - IFT_IBM370PARCHAN = 0x48 - IFT_IDSL = 0x9a - IFT_IEEE1394 = 0x90 - IFT_IEEE80211 = 0x47 - IFT_IEEE80212 = 0x37 - IFT_IEEE8023ADLAG = 0xa1 - IFT_IFGSN = 0x91 - IFT_IMT = 0xbe - IFT_INFINIBAND = 0xc7 - IFT_INTERLEAVE = 0x7c - IFT_IP = 0x7e - IFT_IPFORWARD = 0x8e - IFT_IPOVERATM = 0x72 - IFT_IPOVERCDLC = 0x6d - IFT_IPOVERCLAW = 0x6e - IFT_IPSWITCH = 0x4e - IFT_ISDN = 0x3f - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_ISDNS = 0x4b - IFT_ISDNU = 0x4c - IFT_ISO88022LLC = 0x29 - IFT_ISO88023 = 0x7 - IFT_ISO88024 = 0x8 - IFT_ISO88025 = 0x9 - IFT_ISO88025CRFPINT = 0x62 - IFT_ISO88025DTR = 0x56 - IFT_ISO88025FIBER = 0x73 - IFT_ISO88026 = 0xa - IFT_ISUP = 0xb3 - IFT_L2VLAN = 0x87 - IFT_L3IPVLAN = 0x88 - IFT_L3IPXVLAN = 0x89 - IFT_LAPB = 0x10 - IFT_LAPD = 0x4d - IFT_LAPF = 0x77 - IFT_LINEGROUP = 0xd2 - IFT_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - IFT_MEDIAMAILOVERIP = 0x8b - IFT_MFSIGLINK = 0xa7 - IFT_MIOX25 = 0x26 - IFT_MODEM = 0x30 - IFT_MPC = 0x71 - IFT_MPLS = 0xa6 - IFT_MPLSTUNNEL = 0x96 - IFT_MSDSL = 0x8f - IFT_MVL = 0xbf - IFT_MYRINET = 0x63 - IFT_NFAS = 0xaf - IFT_NSIP = 0x1b - IFT_OPTICALCHANNEL = 0xc3 - IFT_OPTICALTRANSPORT = 0xc4 - IFT_OTHER = 0x1 - IFT_P10 = 0xc - IFT_P80 = 0xd - IFT_PARA = 0x22 - IFT_PFLOG = 0xf5 - IFT_PFSYNC = 0xf6 - IFT_PLC = 0xae - IFT_PON155 = 0xcf - IFT_PON622 = 0xd0 - IFT_POS = 0xab - IFT_PPP = 0x17 - IFT_PPPMULTILINKBUNDLE = 0x6c - IFT_PROPATM = 0xc5 - IFT_PROPBWAP2MP = 0xb8 - IFT_PROPCNLS = 0x59 - IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 - IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 - IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 - IFT_PROPMUX = 0x36 - IFT_PROPVIRTUAL = 0x35 - IFT_PROPWIRELESSP2P = 0x9d - IFT_PTPSERIAL = 0x16 - IFT_PVC = 0xf1 - IFT_Q2931 = 0xc9 - IFT_QLLC = 0x44 - IFT_RADIOMAC = 0xbc - IFT_RADSL = 0x5f - IFT_REACHDSL = 0xc0 - IFT_RFC1483 = 0x9f - IFT_RS232 = 0x21 - IFT_RSRB = 0x4f - IFT_SDLC = 0x11 - IFT_SDSL = 0x60 - IFT_SHDSL = 0xa9 - IFT_SIP = 0x1f - IFT_SIPSIG = 0xcc - IFT_SIPTG = 0xcb - IFT_SLIP = 0x1c - IFT_SMDSDXI = 0x2b - IFT_SMDSICIP = 0x34 - IFT_SONET = 0x27 - IFT_SONETOVERHEADCHANNEL = 0xb9 - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_SRP = 0x97 - IFT_SS7SIGLINK = 0x9c - IFT_STACKTOSTACK = 0x6f - IFT_STARLAN = 0xb - IFT_STF = 0xd7 - IFT_T1 = 0x12 - IFT_TDLC = 0x74 - IFT_TELINK = 0xc8 - IFT_TERMPAD = 0x5b - IFT_TR008 = 0xb0 - IFT_TRANSPHDLC = 0x7b - IFT_TUNNEL = 0x83 - IFT_ULTRA = 0x1d - IFT_USB = 0xa0 - IFT_V11 = 0x40 - IFT_V35 = 0x2d - IFT_V36 = 0x41 - IFT_V37 = 0x78 - IFT_VDSL = 0x61 - IFT_VIRTUALIPADDRESS = 0x70 - IFT_VIRTUALTG = 0xca - IFT_VOICEDID = 0xd5 - IFT_VOICEEM = 0x64 - IFT_VOICEEMFGD = 0xd3 - IFT_VOICEENCAP = 0x67 - IFT_VOICEFGDEANA = 0xd4 - IFT_VOICEFXO = 0x65 - IFT_VOICEFXS = 0x66 - IFT_VOICEOVERATM = 0x98 - IFT_VOICEOVERCABLE = 0xc6 - IFT_VOICEOVERFRAMERELAY = 0x99 - IFT_VOICEOVERIP = 0x68 - IFT_X213 = 0x5d - IFT_X25 = 0x5 - IFT_X25DDN = 0x4 - IFT_X25HUNTGROUP = 0x7a - IFT_X25MLP = 0x79 - IFT_X25PLE = 0x28 - IFT_XETHER = 0x1a - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLASSD_HOST = 0xfffffff - IN_CLASSD_NET = 0xf0000000 - IN_CLASSD_NSHIFT = 0x1c - IN_LOOPBACKNET = 0x7f - IPPROTO_AH = 0x33 - IPPROTO_CARP = 0x70 - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPIP = 0x4 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_IPV6_ICMP = 0x3a - IPPROTO_MAX = 0x100 - IPPROTO_MAXID = 0x34 - IPPROTO_MOBILE = 0x37 - IPPROTO_NONE = 0x3b - IPPROTO_PFSYNC = 0xf0 - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_VRRP = 0x70 - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_FAITH = 0x1d - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FRAGTTL = 0x78 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_IPSEC_POLICY = 0x1c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXPACKET = 0xffff - IPV6_MMTU = 0x500 - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_PATHMTU = 0x2c - IPV6_PKTINFO = 0x2e - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - IPV6_RTHDR = 0x33 - IPV6_RTHDRDSTOPTS = 0x23 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_SOCKOPT_RESERVED1 = 0x3 - IPV6_TCLASS = 0x3d - IPV6_UNICAST_HOPS = 0x4 - IPV6_USE_MIN_MTU = 0x2a - IPV6_V6ONLY = 0x1b - IPV6_VERSION = 0x60 - IPV6_VERSION_MASK = 0xf0 - IP_ADD_MEMBERSHIP = 0xc - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0xd - IP_EF = 0x8000 - IP_ERRORMTU = 0x15 - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x16 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINFRAGSIZE = 0x45 - IP_MINTTL = 0x18 - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x1 - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVRETOPTS = 0x6 - IP_RECVTTL = 0x17 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_TOS = 0x3 - IP_TTL = 0x4 - ISIG = 0x80 - ISTRIP = 0x20 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x6 - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_SPACEAVAIL = 0x5 - MADV_WILLNEED = 0x3 - MAP_ALIGNMENT_16MB = 0x18000000 - MAP_ALIGNMENT_1TB = 0x28000000 - MAP_ALIGNMENT_256TB = 0x30000000 - MAP_ALIGNMENT_4GB = 0x20000000 - MAP_ALIGNMENT_64KB = 0x10000000 - MAP_ALIGNMENT_64PB = 0x38000000 - MAP_ALIGNMENT_MASK = -0x1000000 - MAP_ALIGNMENT_SHIFT = 0x18 - MAP_ANON = 0x1000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_HASSEMAPHORE = 0x200 - MAP_INHERIT = 0x80 - MAP_INHERIT_COPY = 0x1 - MAP_INHERIT_DEFAULT = 0x1 - MAP_INHERIT_DONATE_COPY = 0x3 - MAP_INHERIT_NONE = 0x2 - MAP_INHERIT_SHARE = 0x0 - MAP_NORESERVE = 0x40 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 - MAP_SHARED = 0x1 - MAP_STACK = 0x2000 - MAP_TRYFIXED = 0x400 - MAP_WIRED = 0x800 - MSG_BCAST = 0x100 - MSG_CMSG_CLOEXEC = 0x800 - MSG_CONTROLMBUF = 0x2000000 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOR = 0x8 - MSG_IOVUSRSPACE = 0x4000000 - MSG_LENUSRSPACE = 0x8000000 - MSG_MCAST = 0x200 - MSG_NAMEMBUF = 0x1000000 - MSG_NBIO = 0x1000 - MSG_NOSIGNAL = 0x400 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_USERFLAGS = 0xffffff - MSG_WAITALL = 0x40 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x2 - MS_SYNC = 0x4 - NAME_MAX = 0x1ff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x5 - NET_RT_MAXID = 0x6 - NET_RT_OIFLIST = 0x4 - NET_RT_OOIFLIST = 0x3 - NOFLSH = 0x80000000 - NOTE_ATTRIB = 0x8 - NOTE_CHILD = 0x4 - NOTE_DELETE = 0x1 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXTEND = 0x4 - NOTE_FORK = 0x40000000 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_PCTRLMASK = 0xf0000000 - NOTE_PDATAMASK = 0xfffff - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - OFIOGETBMAP = 0xc004667a - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - O_ACCMODE = 0x3 - O_ALT_IO = 0x40000 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x400000 - O_CREAT = 0x200 - O_DIRECT = 0x80000 - O_DIRECTORY = 0x200000 - O_DSYNC = 0x10000 - O_EXCL = 0x800 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_NOSIGPIPE = 0x1000000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x20000 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PRI_IOFLUSH = 0x7c - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - RLIMIT_AS = 0xa - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_NOFILE = 0x8 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0x7fffffffffffffff - RTAX_AUTHOR = 0x6 - RTAX_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x9 - RTAX_NETMASK = 0x2 - RTAX_TAG = 0x8 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTA_TAG = 0x100 - RTF_ANNOUNCE = 0x20000 - RTF_BLACKHOLE = 0x1000 - RTF_CLONED = 0x2000 - RTF_CLONING = 0x100 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_LLINFO = 0x400 - RTF_MASK = 0x80 - RTF_MODIFIED = 0x20 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_REJECT = 0x8 - RTF_SRC = 0x10000 - RTF_STATIC = 0x800 - RTF_UP = 0x1 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_CHGADDR = 0x15 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_GET = 0x4 - RTM_IEEE80211 = 0x11 - RTM_IFANNOUNCE = 0x10 - RTM_IFINFO = 0x14 - RTM_LLINFO_UPD = 0x13 - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_OIFINFO = 0xf - RTM_OLDADD = 0x9 - RTM_OLDDEL = 0xa - RTM_OOIFINFO = 0xe - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 - RTM_SETGATE = 0x12 - RTM_VERSION = 0x4 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - SCM_CREDS = 0x4 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x8 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80906931 - SIOCADDRT = 0x8030720a - SIOCAIFADDR = 0x8040691a - SIOCALIFADDR = 0x8118691c - SIOCATMARK = 0x40047307 - SIOCDELMULTI = 0x80906932 - SIOCDELRT = 0x8030720b - SIOCDIFADDR = 0x80906919 - SIOCDIFPHYADDR = 0x80906949 - SIOCDLIFADDR = 0x8118691e - SIOCGDRVSPEC = 0xc01c697b - SIOCGETPFSYNC = 0xc09069f8 - SIOCGETSGCNT = 0xc0147534 - SIOCGETVIFCNT = 0xc0147533 - SIOCGHIWAT = 0x40047301 - SIOCGIFADDR = 0xc0906921 - SIOCGIFADDRPREF = 0xc0946920 - SIOCGIFALIAS = 0xc040691b - SIOCGIFBRDADDR = 0xc0906923 - SIOCGIFCAP = 0xc0206976 - SIOCGIFCONF = 0xc0086926 - SIOCGIFDATA = 0xc0946985 - SIOCGIFDLT = 0xc0906977 - SIOCGIFDSTADDR = 0xc0906922 - SIOCGIFFLAGS = 0xc0906911 - SIOCGIFGENERIC = 0xc090693a - SIOCGIFMEDIA = 0xc0286936 - SIOCGIFMETRIC = 0xc0906917 - SIOCGIFMTU = 0xc090697e - SIOCGIFNETMASK = 0xc0906925 - SIOCGIFPDSTADDR = 0xc0906948 - SIOCGIFPSRCADDR = 0xc0906947 - SIOCGLIFADDR = 0xc118691d - SIOCGLIFPHYADDR = 0xc118694b - SIOCGLINKSTR = 0xc01c6987 - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCGVH = 0xc0906983 - SIOCIFCREATE = 0x8090697a - SIOCIFDESTROY = 0x80906979 - SIOCIFGCLONERS = 0xc00c6978 - SIOCINITIFADDR = 0xc0446984 - SIOCSDRVSPEC = 0x801c697b - SIOCSETPFSYNC = 0x809069f7 - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8090690c - SIOCSIFADDRPREF = 0x8094691f - SIOCSIFBRDADDR = 0x80906913 - SIOCSIFCAP = 0x80206975 - SIOCSIFDSTADDR = 0x8090690e - SIOCSIFFLAGS = 0x80906910 - SIOCSIFGENERIC = 0x80906939 - SIOCSIFMEDIA = 0xc0906935 - SIOCSIFMETRIC = 0x80906918 - SIOCSIFMTU = 0x8090697f - SIOCSIFNETMASK = 0x80906916 - SIOCSIFPHYADDR = 0x80406946 - SIOCSLIFPHYADDR = 0x8118694a - SIOCSLINKSTR = 0x801c6988 - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SIOCSVH = 0xc0906982 - SIOCZIFDATA = 0xc0946986 - SOCK_CLOEXEC = 0x10000000 - SOCK_DGRAM = 0x2 - SOCK_FLAGS_MASK = 0xf0000000 - SOCK_NONBLOCK = 0x20000000 - SOCK_NOSIGPIPE = 0x40000000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_ACCEPTFILTER = 0x1000 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_NOHEADER = 0x100a - SO_NOSIGPIPE = 0x800 - SO_OOBINLINE = 0x100 - SO_OVERFLOWED = 0x1009 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x100c - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x100b - SO_TIMESTAMP = 0x2000 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SYSCTL_VERSION = 0x1000000 - SYSCTL_VERS_0 = 0x0 - SYSCTL_VERS_1 = 0x1000000 - SYSCTL_VERS_MASK = 0xff000000 - S_ARCH1 = 0x10000 - S_ARCH2 = 0x20000 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IFWHT = 0xe000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISTXT = 0x200 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TCIFLUSH = 0x1 - TCIOFLUSH = 0x3 - TCOFLUSH = 0x2 - TCP_CONGCTL = 0x20 - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x3 - TCP_KEEPINIT = 0x7 - TCP_KEEPINTVL = 0x5 - TCP_MAXBURST = 0x4 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0x10 - TCP_MINMSS = 0xd8 - TCP_MSS = 0x218 - TCP_NODELAY = 0x1 - TCSAFLUSH = 0x2 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDCDTIMESTAMP = 0x400c7458 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLAG_CDTRCTS = 0x10 - TIOCFLAG_CLOCAL = 0x2 - TIOCFLAG_CRTSCTS = 0x4 - TIOCFLAG_MDMBUF = 0x8 - TIOCFLAG_SOFTCAR = 0x1 - TIOCFLUSH = 0x80047410 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGFLAGS = 0x4004745d - TIOCGLINED = 0x40207442 - TIOCGPGRP = 0x40047477 - TIOCGQSIZE = 0x40047481 - TIOCGRANTPT = 0x20007447 - TIOCGSID = 0x40047463 - TIOCGSIZE = 0x40087468 - TIOCGWINSZ = 0x40087468 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGET = 0x4004746a - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x20007471 - TIOCNXCL = 0x2000740e - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x80047470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCPTMGET = 0x48087446 - TIOCPTSNAME = 0x48087448 - TIOCRCVFRAME = 0x80047445 - TIOCREMOTE = 0x80047469 - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSFLAGS = 0x8004745c - TIOCSIG = 0x2000745f - TIOCSLINED = 0x80207443 - TIOCSPGRP = 0x80047476 - TIOCSQSIZE = 0x80047480 - TIOCSSIZE = 0x80087467 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x80047465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCUCNTL = 0x80047466 - TIOCXMTFRAME = 0x80047444 - TOSTOP = 0x400000 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WALL = 0x8 - WALLSIG = 0x8 - WALTSIG = 0x4 - WCLONE = 0x4 - WCOREFLAG = 0x80 - WNOHANG = 0x1 - WNOWAIT = 0x10000 - WNOZOMBIE = 0x20000 - WOPTSCHECKED = 0x40000 - WSTOPPED = 0x7f - WUNTRACED = 0x2 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x30) - EADDRNOTAVAIL = syscall.Errno(0x31) - EAFNOSUPPORT = syscall.Errno(0x2f) - EAGAIN = syscall.Errno(0x23) - EALREADY = syscall.Errno(0x25) - EAUTH = syscall.Errno(0x50) - EBADF = syscall.Errno(0x9) - EBADMSG = syscall.Errno(0x58) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x57) - ECHILD = syscall.Errno(0xa) - ECONNABORTED = syscall.Errno(0x35) - ECONNREFUSED = syscall.Errno(0x3d) - ECONNRESET = syscall.Errno(0x36) - EDEADLK = syscall.Errno(0xb) - EDESTADDRREQ = syscall.Errno(0x27) - EDOM = syscall.Errno(0x21) - EDQUOT = syscall.Errno(0x45) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EFTYPE = syscall.Errno(0x4f) - EHOSTDOWN = syscall.Errno(0x40) - EHOSTUNREACH = syscall.Errno(0x41) - EIDRM = syscall.Errno(0x52) - EILSEQ = syscall.Errno(0x55) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x60) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5e) - ENAMETOOLONG = syscall.Errno(0x3f) - ENEEDAUTH = syscall.Errno(0x51) - ENETDOWN = syscall.Errno(0x32) - ENETRESET = syscall.Errno(0x34) - ENETUNREACH = syscall.Errno(0x33) - ENFILE = syscall.Errno(0x17) - ENOATTR = syscall.Errno(0x5d) - ENOBUFS = syscall.Errno(0x37) - ENODATA = syscall.Errno(0x59) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x5f) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x53) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x5a) - ENOSTR = syscall.Errno(0x5b) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x56) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x54) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x2e) - EPIPE = syscall.Errno(0x20) - EPROCLIM = syscall.Errno(0x43) - EPROCUNAVAIL = syscall.Errno(0x4c) - EPROGMISMATCH = syscall.Errno(0x4b) - EPROGUNAVAIL = syscall.Errno(0x4a) - EPROTO = syscall.Errno(0x60) - EPROTONOSUPPORT = syscall.Errno(0x2b) - EPROTOTYPE = syscall.Errno(0x29) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x47) - EROFS = syscall.Errno(0x1e) - ERPCMISMATCH = syscall.Errno(0x49) - ESHUTDOWN = syscall.Errno(0x3a) - ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x46) - ETIME = syscall.Errno(0x5c) - ETIMEDOUT = syscall.Errno(0x3c) - ETOOMANYREFS = syscall.Errno(0x3b) - ETXTBSY = syscall.Errno(0x1a) - EUSERS = syscall.Errno(0x44) - EWOULDBLOCK = syscall.Errno(0x23) - EXDEV = syscall.Errno(0x12) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x14) - SIGCONT = syscall.Signal(0x13) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINFO = syscall.Signal(0x1d) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x17) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x20) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x12) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x10) - SIGUSR1 = syscall.Signal(0x1e) - SIGUSR2 = syscall.Signal(0x1f) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errors = [...]string{ - 1: "operation not permitted", - 2: "no such file or directory", - 3: "no such process", - 4: "interrupted system call", - 5: "input/output error", - 6: "device not configured", - 7: "argument list too long", - 8: "exec format error", - 9: "bad file descriptor", - 10: "no child processes", - 11: "resource deadlock avoided", - 12: "cannot allocate memory", - 13: "permission denied", - 14: "bad address", - 15: "block device required", - 16: "device busy", - 17: "file exists", - 18: "cross-device link", - 19: "operation not supported by device", - 20: "not a directory", - 21: "is a directory", - 22: "invalid argument", - 23: "too many open files in system", - 24: "too many open files", - 25: "inappropriate ioctl for device", - 26: "text file busy", - 27: "file too large", - 28: "no space left on device", - 29: "illegal seek", - 30: "read-only file system", - 31: "too many links", - 32: "broken pipe", - 33: "numerical argument out of domain", - 34: "result too large or too small", - 35: "resource temporarily unavailable", - 36: "operation now in progress", - 37: "operation already in progress", - 38: "socket operation on non-socket", - 39: "destination address required", - 40: "message too long", - 41: "protocol wrong type for socket", - 42: "protocol option not available", - 43: "protocol not supported", - 44: "socket type not supported", - 45: "operation not supported", - 46: "protocol family not supported", - 47: "address family not supported by protocol family", - 48: "address already in use", - 49: "can't assign requested address", - 50: "network is down", - 51: "network is unreachable", - 52: "network dropped connection on reset", - 53: "software caused connection abort", - 54: "connection reset by peer", - 55: "no buffer space available", - 56: "socket is already connected", - 57: "socket is not connected", - 58: "can't send after socket shutdown", - 59: "too many references: can't splice", - 60: "connection timed out", - 61: "connection refused", - 62: "too many levels of symbolic links", - 63: "file name too long", - 64: "host is down", - 65: "no route to host", - 66: "directory not empty", - 67: "too many processes", - 68: "too many users", - 69: "disc quota exceeded", - 70: "stale NFS file handle", - 71: "too many levels of remote in path", - 72: "RPC struct is bad", - 73: "RPC version wrong", - 74: "RPC prog. not avail", - 75: "program version wrong", - 76: "bad procedure for program", - 77: "no locks available", - 78: "function not implemented", - 79: "inappropriate file type or format", - 80: "authentication error", - 81: "need authenticator", - 82: "identifier removed", - 83: "no message of desired type", - 84: "value too large to be stored in data type", - 85: "illegal byte sequence", - 86: "not supported", - 87: "operation Canceled", - 88: "bad or Corrupt message", - 89: "no message available", - 90: "no STREAM resources", - 91: "not a STREAM", - 92: "STREAM ioctl timeout", - 93: "attribute not found", - 94: "multihop attempted", - 95: "link has been severed", - 96: "protocol error", -} - -// Signal table -var signals = [...]string{ - 1: "hangup", - 2: "interrupt", - 3: "quit", - 4: "illegal instruction", - 5: "trace/BPT trap", - 6: "abort trap", - 7: "EMT trap", - 8: "floating point exception", - 9: "killed", - 10: "bus error", - 11: "segmentation fault", - 12: "bad system call", - 13: "broken pipe", - 14: "alarm clock", - 15: "terminated", - 16: "urgent I/O condition", - 17: "stopped (signal)", - 18: "stopped", - 19: "continued", - 20: "child exited", - 21: "stopped (tty input)", - 22: "stopped (tty output)", - 23: "I/O possible", - 24: "cputime limit exceeded", - 25: "filesize limit exceeded", - 26: "virtual timer expired", - 27: "profiling timer expired", - 28: "window size changes", - 29: "information request", - 30: "user defined signal 1", - 31: "user defined signal 2", - 32: "power fail/restart", -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go deleted file mode 100644 index 3322e99..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go +++ /dev/null @@ -1,1584 +0,0 @@ -// mkerrors.sh -m32 -// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT - -// +build 386,openbsd - -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs -- -m32 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_BLUETOOTH = 0x20 - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_CNT = 0x15 - AF_COIP = 0x14 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_E164 = 0x1a - AF_ECMA = 0x8 - AF_ENCAP = 0x1c - AF_HYLINK = 0xf - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x18 - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_KEY = 0x1e - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x24 - AF_MPLS = 0x21 - AF_NATM = 0x1b - AF_NS = 0x6 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x11 - AF_SIP = 0x1d - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - ARPHRD_ETHER = 0x1 - ARPHRD_FRELAY = 0xf - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - B0 = 0x0 - B110 = 0x6e - B115200 = 0x1c200 - B1200 = 0x4b0 - B134 = 0x86 - B14400 = 0x3840 - B150 = 0x96 - B1800 = 0x708 - B19200 = 0x4b00 - B200 = 0xc8 - B230400 = 0x38400 - B2400 = 0x960 - B28800 = 0x7080 - B300 = 0x12c - B38400 = 0x9600 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B9600 = 0x2580 - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDIRFILT = 0x4004427c - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc008427b - BIOCGETIF = 0x4020426b - BIOCGFILDROP = 0x40044278 - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044273 - BIOCGRTIMEOUT = 0x400c426e - BIOCGSTATS = 0x4008426f - BIOCIMMEDIATE = 0x80044270 - BIOCLOCK = 0x20004276 - BIOCPROMISC = 0x20004269 - BIOCSBLEN = 0xc0044266 - BIOCSDIRFILT = 0x8004427d - BIOCSDLT = 0x8004427a - BIOCSETF = 0x80084267 - BIOCSETIF = 0x8020426c - BIOCSETWF = 0x80084277 - BIOCSFILDROP = 0x80044279 - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044272 - BIOCSRTIMEOUT = 0x800c426d - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIRECTION_IN = 0x1 - BPF_DIRECTION_OUT = 0x2 - BPF_DIV = 0x30 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXBUFSIZE = 0x200000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_OR = 0x40 - BPF_RELEASE = 0x30bb6 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BRKINT = 0x2 - CFLUSH = 0xf - CLOCAL = 0x8000 - CREAD = 0x800 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0xff - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_MAXNAME = 0xc - CTL_NET = 0x4 - DIOCOSFPFLUSH = 0x2000444e - DLT_ARCNET = 0x7 - DLT_ATM_RFC1483 = 0xb - DLT_AX25 = 0x3 - DLT_CHAOS = 0x5 - DLT_C_HDLC = 0x68 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0xd - DLT_FDDI = 0xa - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_LOOP = 0xc - DLT_MPLS = 0xdb - DLT_NULL = 0x0 - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0x10 - DLT_PPP_ETHER = 0x33 - DLT_PPP_SERIAL = 0x32 - DLT_PRONET = 0x4 - DLT_RAW = 0xe - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xf - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EMT_TAGOVF = 0x1 - EMUL_ENABLED = 0x1 - EMUL_NATIVE = 0x2 - ENDRUNDISC = 0x9 - ETHERMIN = 0x2e - ETHERMTU = 0x5dc - ETHERTYPE_8023 = 0x4 - ETHERTYPE_AARP = 0x80f3 - ETHERTYPE_ACCTON = 0x8390 - ETHERTYPE_AEONIC = 0x8036 - ETHERTYPE_ALPHA = 0x814a - ETHERTYPE_AMBER = 0x6008 - ETHERTYPE_AMOEBA = 0x8145 - ETHERTYPE_AOE = 0x88a2 - ETHERTYPE_APOLLO = 0x80f7 - ETHERTYPE_APOLLODOMAIN = 0x8019 - ETHERTYPE_APPLETALK = 0x809b - ETHERTYPE_APPLITEK = 0x80c7 - ETHERTYPE_ARGONAUT = 0x803a - ETHERTYPE_ARP = 0x806 - ETHERTYPE_AT = 0x809b - ETHERTYPE_ATALK = 0x809b - ETHERTYPE_ATOMIC = 0x86df - ETHERTYPE_ATT = 0x8069 - ETHERTYPE_ATTSTANFORD = 0x8008 - ETHERTYPE_AUTOPHON = 0x806a - ETHERTYPE_AXIS = 0x8856 - ETHERTYPE_BCLOOP = 0x9003 - ETHERTYPE_BOFL = 0x8102 - ETHERTYPE_CABLETRON = 0x7034 - ETHERTYPE_CHAOS = 0x804 - ETHERTYPE_COMDESIGN = 0x806c - ETHERTYPE_COMPUGRAPHIC = 0x806d - ETHERTYPE_COUNTERPOINT = 0x8062 - ETHERTYPE_CRONUS = 0x8004 - ETHERTYPE_CRONUSVLN = 0x8003 - ETHERTYPE_DCA = 0x1234 - ETHERTYPE_DDE = 0x807b - ETHERTYPE_DEBNI = 0xaaaa - ETHERTYPE_DECAM = 0x8048 - ETHERTYPE_DECCUST = 0x6006 - ETHERTYPE_DECDIAG = 0x6005 - ETHERTYPE_DECDNS = 0x803c - ETHERTYPE_DECDTS = 0x803e - ETHERTYPE_DECEXPER = 0x6000 - ETHERTYPE_DECLAST = 0x8041 - ETHERTYPE_DECLTM = 0x803f - ETHERTYPE_DECMUMPS = 0x6009 - ETHERTYPE_DECNETBIOS = 0x8040 - ETHERTYPE_DELTACON = 0x86de - ETHERTYPE_DIDDLE = 0x4321 - ETHERTYPE_DLOG1 = 0x660 - ETHERTYPE_DLOG2 = 0x661 - ETHERTYPE_DN = 0x6003 - ETHERTYPE_DOGFIGHT = 0x1989 - ETHERTYPE_DSMD = 0x8039 - ETHERTYPE_ECMA = 0x803 - ETHERTYPE_ENCRYPT = 0x803d - ETHERTYPE_ES = 0x805d - ETHERTYPE_EXCELAN = 0x8010 - ETHERTYPE_EXPERDATA = 0x8049 - ETHERTYPE_FLIP = 0x8146 - ETHERTYPE_FLOWCONTROL = 0x8808 - ETHERTYPE_FRARP = 0x808 - ETHERTYPE_GENDYN = 0x8068 - ETHERTYPE_HAYES = 0x8130 - ETHERTYPE_HIPPI_FP = 0x8180 - ETHERTYPE_HITACHI = 0x8820 - ETHERTYPE_HP = 0x8005 - ETHERTYPE_IEEEPUP = 0xa00 - ETHERTYPE_IEEEPUPAT = 0xa01 - ETHERTYPE_IMLBL = 0x4c42 - ETHERTYPE_IMLBLDIAG = 0x424c - ETHERTYPE_IP = 0x800 - ETHERTYPE_IPAS = 0x876c - ETHERTYPE_IPV6 = 0x86dd - ETHERTYPE_IPX = 0x8137 - ETHERTYPE_IPXNEW = 0x8037 - ETHERTYPE_KALPANA = 0x8582 - ETHERTYPE_LANBRIDGE = 0x8038 - ETHERTYPE_LANPROBE = 0x8888 - ETHERTYPE_LAT = 0x6004 - ETHERTYPE_LBACK = 0x9000 - ETHERTYPE_LITTLE = 0x8060 - ETHERTYPE_LLDP = 0x88cc - ETHERTYPE_LOGICRAFT = 0x8148 - ETHERTYPE_LOOPBACK = 0x9000 - ETHERTYPE_MATRA = 0x807a - ETHERTYPE_MAX = 0xffff - ETHERTYPE_MERIT = 0x807c - ETHERTYPE_MICP = 0x873a - ETHERTYPE_MOPDL = 0x6001 - ETHERTYPE_MOPRC = 0x6002 - ETHERTYPE_MOTOROLA = 0x818d - ETHERTYPE_MPLS = 0x8847 - ETHERTYPE_MPLS_MCAST = 0x8848 - ETHERTYPE_MUMPS = 0x813f - ETHERTYPE_NBPCC = 0x3c04 - ETHERTYPE_NBPCLAIM = 0x3c09 - ETHERTYPE_NBPCLREQ = 0x3c05 - ETHERTYPE_NBPCLRSP = 0x3c06 - ETHERTYPE_NBPCREQ = 0x3c02 - ETHERTYPE_NBPCRSP = 0x3c03 - ETHERTYPE_NBPDG = 0x3c07 - ETHERTYPE_NBPDGB = 0x3c08 - ETHERTYPE_NBPDLTE = 0x3c0a - ETHERTYPE_NBPRAR = 0x3c0c - ETHERTYPE_NBPRAS = 0x3c0b - ETHERTYPE_NBPRST = 0x3c0d - ETHERTYPE_NBPSCD = 0x3c01 - ETHERTYPE_NBPVCD = 0x3c00 - ETHERTYPE_NBS = 0x802 - ETHERTYPE_NCD = 0x8149 - ETHERTYPE_NESTAR = 0x8006 - ETHERTYPE_NETBEUI = 0x8191 - ETHERTYPE_NOVELL = 0x8138 - ETHERTYPE_NS = 0x600 - ETHERTYPE_NSAT = 0x601 - ETHERTYPE_NSCOMPAT = 0x807 - ETHERTYPE_NTRAILER = 0x10 - ETHERTYPE_OS9 = 0x7007 - ETHERTYPE_OS9NET = 0x7009 - ETHERTYPE_PACER = 0x80c6 - ETHERTYPE_PAE = 0x888e - ETHERTYPE_PCS = 0x4242 - ETHERTYPE_PLANNING = 0x8044 - ETHERTYPE_PPP = 0x880b - ETHERTYPE_PPPOE = 0x8864 - ETHERTYPE_PPPOEDISC = 0x8863 - ETHERTYPE_PRIMENTS = 0x7031 - ETHERTYPE_PUP = 0x200 - ETHERTYPE_PUPAT = 0x200 - ETHERTYPE_QINQ = 0x88a8 - ETHERTYPE_RACAL = 0x7030 - ETHERTYPE_RATIONAL = 0x8150 - ETHERTYPE_RAWFR = 0x6559 - ETHERTYPE_RCL = 0x1995 - ETHERTYPE_RDP = 0x8739 - ETHERTYPE_RETIX = 0x80f2 - ETHERTYPE_REVARP = 0x8035 - ETHERTYPE_SCA = 0x6007 - ETHERTYPE_SECTRA = 0x86db - ETHERTYPE_SECUREDATA = 0x876d - ETHERTYPE_SGITW = 0x817e - ETHERTYPE_SG_BOUNCE = 0x8016 - ETHERTYPE_SG_DIAG = 0x8013 - ETHERTYPE_SG_NETGAMES = 0x8014 - ETHERTYPE_SG_RESV = 0x8015 - ETHERTYPE_SIMNET = 0x5208 - ETHERTYPE_SLOW = 0x8809 - ETHERTYPE_SNA = 0x80d5 - ETHERTYPE_SNMP = 0x814c - ETHERTYPE_SONIX = 0xfaf5 - ETHERTYPE_SPIDER = 0x809f - ETHERTYPE_SPRITE = 0x500 - ETHERTYPE_STP = 0x8181 - ETHERTYPE_TALARIS = 0x812b - ETHERTYPE_TALARISMC = 0x852b - ETHERTYPE_TCPCOMP = 0x876b - ETHERTYPE_TCPSM = 0x9002 - ETHERTYPE_TEC = 0x814f - ETHERTYPE_TIGAN = 0x802f - ETHERTYPE_TRAIL = 0x1000 - ETHERTYPE_TRANSETHER = 0x6558 - ETHERTYPE_TYMSHARE = 0x802e - ETHERTYPE_UBBST = 0x7005 - ETHERTYPE_UBDEBUG = 0x900 - ETHERTYPE_UBDIAGLOOP = 0x7002 - ETHERTYPE_UBDL = 0x7000 - ETHERTYPE_UBNIU = 0x7001 - ETHERTYPE_UBNMC = 0x7003 - ETHERTYPE_VALID = 0x1600 - ETHERTYPE_VARIAN = 0x80dd - ETHERTYPE_VAXELN = 0x803b - ETHERTYPE_VEECO = 0x8067 - ETHERTYPE_VEXP = 0x805b - ETHERTYPE_VGLAB = 0x8131 - ETHERTYPE_VINES = 0xbad - ETHERTYPE_VINESECHO = 0xbaf - ETHERTYPE_VINESLOOP = 0xbae - ETHERTYPE_VITAL = 0xff00 - ETHERTYPE_VLAN = 0x8100 - ETHERTYPE_VLTLMAN = 0x8080 - ETHERTYPE_VPROD = 0x805c - ETHERTYPE_VURESERVED = 0x8147 - ETHERTYPE_WATERLOO = 0x8130 - ETHERTYPE_WELLFLEET = 0x8103 - ETHERTYPE_X25 = 0x805 - ETHERTYPE_X75 = 0x801 - ETHERTYPE_XNSSM = 0x9001 - ETHERTYPE_XTP = 0x817d - ETHER_ADDR_LEN = 0x6 - ETHER_ALIGN = 0x2 - ETHER_CRC_LEN = 0x4 - ETHER_CRC_POLY_BE = 0x4c11db6 - ETHER_CRC_POLY_LE = 0xedb88320 - ETHER_HDR_LEN = 0xe - ETHER_MAX_DIX_LEN = 0x600 - ETHER_MAX_LEN = 0x5ee - ETHER_MIN_LEN = 0x40 - ETHER_TYPE_LEN = 0x2 - ETHER_VLAN_ENCAP_LEN = 0x4 - EVFILT_AIO = -0x3 - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0x7 - EVFILT_TIMER = -0x7 - EVFILT_VNODE = -0x4 - EVFILT_WRITE = -0x2 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_ONESHOT = 0x10 - EV_SYSFLAGS = 0xf000 - EXTA = 0x4b00 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FLUSHO = 0x800000 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0xa - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0x7 - F_GETOWN = 0x5 - F_OK = 0x0 - F_RDLCK = 0x1 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x8 - F_SETLKW = 0x9 - F_SETOWN = 0x6 - F_UNLCK = 0x2 - F_WRLCK = 0x3 - HUPCL = 0x4000 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFAN_ARRIVAL = 0x0 - IFAN_DEPARTURE = 0x1 - IFA_ROUTE = 0x1 - IFF_ALLMULTI = 0x200 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x8e52 - IFF_DEBUG = 0x4 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NOTRAILERS = 0x20 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_1822 = 0x2 - IFT_A12MPPSWITCH = 0x82 - IFT_AAL2 = 0xbb - IFT_AAL5 = 0x31 - IFT_ADSL = 0x5e - IFT_AFLANE8023 = 0x3b - IFT_AFLANE8025 = 0x3c - IFT_ARAP = 0x58 - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ASYNC = 0x54 - IFT_ATM = 0x25 - IFT_ATMDXI = 0x69 - IFT_ATMFUNI = 0x6a - IFT_ATMIMA = 0x6b - IFT_ATMLOGICAL = 0x50 - IFT_ATMRADIO = 0xbd - IFT_ATMSUBINTERFACE = 0x86 - IFT_ATMVCIENDPT = 0xc2 - IFT_ATMVIRTUAL = 0x95 - IFT_BGPPOLICYACCOUNTING = 0xa2 - IFT_BLUETOOTH = 0xf8 - IFT_BRIDGE = 0xd1 - IFT_BSC = 0x53 - IFT_CARP = 0xf7 - IFT_CCTEMUL = 0x3d - IFT_CEPT = 0x13 - IFT_CES = 0x85 - IFT_CHANNEL = 0x46 - IFT_CNR = 0x55 - IFT_COFFEE = 0x84 - IFT_COMPOSITELINK = 0x9b - IFT_DCN = 0x8d - IFT_DIGITALPOWERLINE = 0x8a - IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba - IFT_DLSW = 0x4a - IFT_DOCSCABLEDOWNSTREAM = 0x80 - IFT_DOCSCABLEMACLAYER = 0x7f - IFT_DOCSCABLEUPSTREAM = 0x81 - IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd - IFT_DS0 = 0x51 - IFT_DS0BUNDLE = 0x52 - IFT_DS1FDL = 0xaa - IFT_DS3 = 0x1e - IFT_DTM = 0x8c - IFT_DUMMY = 0xf1 - IFT_DVBASILN = 0xac - IFT_DVBASIOUT = 0xad - IFT_DVBRCCDOWNSTREAM = 0x93 - IFT_DVBRCCMACLAYER = 0x92 - IFT_DVBRCCUPSTREAM = 0x94 - IFT_ECONET = 0xce - IFT_ENC = 0xf4 - IFT_EON = 0x19 - IFT_EPLRS = 0x57 - IFT_ESCON = 0x49 - IFT_ETHER = 0x6 - IFT_FAITH = 0xf3 - IFT_FAST = 0x7d - IFT_FASTETHER = 0x3e - IFT_FASTETHERFX = 0x45 - IFT_FDDI = 0xf - IFT_FIBRECHANNEL = 0x38 - IFT_FRAMERELAYINTERCONNECT = 0x3a - IFT_FRAMERELAYMPI = 0x5c - IFT_FRDLCIENDPT = 0xc1 - IFT_FRELAY = 0x20 - IFT_FRELAYDCE = 0x2c - IFT_FRF16MFRBUNDLE = 0xa3 - IFT_FRFORWARD = 0x9e - IFT_G703AT2MB = 0x43 - IFT_G703AT64K = 0x42 - IFT_GIF = 0xf0 - IFT_GIGABITETHERNET = 0x75 - IFT_GR303IDT = 0xb2 - IFT_GR303RDT = 0xb1 - IFT_H323GATEKEEPER = 0xa4 - IFT_H323PROXY = 0xa5 - IFT_HDH1822 = 0x3 - IFT_HDLC = 0x76 - IFT_HDSL2 = 0xa8 - IFT_HIPERLAN2 = 0xb7 - IFT_HIPPI = 0x2f - IFT_HIPPIINTERFACE = 0x39 - IFT_HOSTPAD = 0x5a - IFT_HSSI = 0x2e - IFT_HY = 0xe - IFT_IBM370PARCHAN = 0x48 - IFT_IDSL = 0x9a - IFT_IEEE1394 = 0x90 - IFT_IEEE80211 = 0x47 - IFT_IEEE80212 = 0x37 - IFT_IEEE8023ADLAG = 0xa1 - IFT_IFGSN = 0x91 - IFT_IMT = 0xbe - IFT_INFINIBAND = 0xc7 - IFT_INTERLEAVE = 0x7c - IFT_IP = 0x7e - IFT_IPFORWARD = 0x8e - IFT_IPOVERATM = 0x72 - IFT_IPOVERCDLC = 0x6d - IFT_IPOVERCLAW = 0x6e - IFT_IPSWITCH = 0x4e - IFT_ISDN = 0x3f - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_ISDNS = 0x4b - IFT_ISDNU = 0x4c - IFT_ISO88022LLC = 0x29 - IFT_ISO88023 = 0x7 - IFT_ISO88024 = 0x8 - IFT_ISO88025 = 0x9 - IFT_ISO88025CRFPINT = 0x62 - IFT_ISO88025DTR = 0x56 - IFT_ISO88025FIBER = 0x73 - IFT_ISO88026 = 0xa - IFT_ISUP = 0xb3 - IFT_L2VLAN = 0x87 - IFT_L3IPVLAN = 0x88 - IFT_L3IPXVLAN = 0x89 - IFT_LAPB = 0x10 - IFT_LAPD = 0x4d - IFT_LAPF = 0x77 - IFT_LINEGROUP = 0xd2 - IFT_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - IFT_MEDIAMAILOVERIP = 0x8b - IFT_MFSIGLINK = 0xa7 - IFT_MIOX25 = 0x26 - IFT_MODEM = 0x30 - IFT_MPC = 0x71 - IFT_MPLS = 0xa6 - IFT_MPLSTUNNEL = 0x96 - IFT_MSDSL = 0x8f - IFT_MVL = 0xbf - IFT_MYRINET = 0x63 - IFT_NFAS = 0xaf - IFT_NSIP = 0x1b - IFT_OPTICALCHANNEL = 0xc3 - IFT_OPTICALTRANSPORT = 0xc4 - IFT_OTHER = 0x1 - IFT_P10 = 0xc - IFT_P80 = 0xd - IFT_PARA = 0x22 - IFT_PFLOG = 0xf5 - IFT_PFLOW = 0xf9 - IFT_PFSYNC = 0xf6 - IFT_PLC = 0xae - IFT_PON155 = 0xcf - IFT_PON622 = 0xd0 - IFT_POS = 0xab - IFT_PPP = 0x17 - IFT_PPPMULTILINKBUNDLE = 0x6c - IFT_PROPATM = 0xc5 - IFT_PROPBWAP2MP = 0xb8 - IFT_PROPCNLS = 0x59 - IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 - IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 - IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 - IFT_PROPMUX = 0x36 - IFT_PROPVIRTUAL = 0x35 - IFT_PROPWIRELESSP2P = 0x9d - IFT_PTPSERIAL = 0x16 - IFT_PVC = 0xf2 - IFT_Q2931 = 0xc9 - IFT_QLLC = 0x44 - IFT_RADIOMAC = 0xbc - IFT_RADSL = 0x5f - IFT_REACHDSL = 0xc0 - IFT_RFC1483 = 0x9f - IFT_RS232 = 0x21 - IFT_RSRB = 0x4f - IFT_SDLC = 0x11 - IFT_SDSL = 0x60 - IFT_SHDSL = 0xa9 - IFT_SIP = 0x1f - IFT_SIPSIG = 0xcc - IFT_SIPTG = 0xcb - IFT_SLIP = 0x1c - IFT_SMDSDXI = 0x2b - IFT_SMDSICIP = 0x34 - IFT_SONET = 0x27 - IFT_SONETOVERHEADCHANNEL = 0xb9 - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_SRP = 0x97 - IFT_SS7SIGLINK = 0x9c - IFT_STACKTOSTACK = 0x6f - IFT_STARLAN = 0xb - IFT_T1 = 0x12 - IFT_TDLC = 0x74 - IFT_TELINK = 0xc8 - IFT_TERMPAD = 0x5b - IFT_TR008 = 0xb0 - IFT_TRANSPHDLC = 0x7b - IFT_TUNNEL = 0x83 - IFT_ULTRA = 0x1d - IFT_USB = 0xa0 - IFT_V11 = 0x40 - IFT_V35 = 0x2d - IFT_V36 = 0x41 - IFT_V37 = 0x78 - IFT_VDSL = 0x61 - IFT_VIRTUALIPADDRESS = 0x70 - IFT_VIRTUALTG = 0xca - IFT_VOICEDID = 0xd5 - IFT_VOICEEM = 0x64 - IFT_VOICEEMFGD = 0xd3 - IFT_VOICEENCAP = 0x67 - IFT_VOICEFGDEANA = 0xd4 - IFT_VOICEFXO = 0x65 - IFT_VOICEFXS = 0x66 - IFT_VOICEOVERATM = 0x98 - IFT_VOICEOVERCABLE = 0xc6 - IFT_VOICEOVERFRAMERELAY = 0x99 - IFT_VOICEOVERIP = 0x68 - IFT_X213 = 0x5d - IFT_X25 = 0x5 - IFT_X25DDN = 0x4 - IFT_X25HUNTGROUP = 0x7a - IFT_X25MLP = 0x79 - IFT_X25PLE = 0x28 - IFT_XETHER = 0x1a - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLASSD_HOST = 0xfffffff - IN_CLASSD_NET = 0xf0000000 - IN_CLASSD_NSHIFT = 0x1c - IN_LOOPBACKNET = 0x7f - IN_RFC3021_HOST = 0x1 - IN_RFC3021_NET = 0xfffffffe - IN_RFC3021_NSHIFT = 0x1f - IPPROTO_AH = 0x33 - IPPROTO_CARP = 0x70 - IPPROTO_DIVERT = 0x102 - IPPROTO_DIVERT_INIT = 0x2 - IPPROTO_DIVERT_RESP = 0x1 - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPIP = 0x4 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MAX = 0x100 - IPPROTO_MAXID = 0x103 - IPPROTO_MOBILE = 0x37 - IPPROTO_MPLS = 0x89 - IPPROTO_NONE = 0x3b - IPPROTO_PFSYNC = 0xf0 - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPV6_AUTH_LEVEL = 0x35 - IPV6_AUTOFLOWLABEL = 0x3b - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_ESP_NETWORK_LEVEL = 0x37 - IPV6_ESP_TRANS_LEVEL = 0x36 - IPV6_FAITH = 0x1d - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FRAGTTL = 0x78 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_IPCOMP_LEVEL = 0x3c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXPACKET = 0xffff - IPV6_MMTU = 0x500 - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_OPTIONS = 0x1 - IPV6_PATHMTU = 0x2c - IPV6_PIPEX = 0x3f - IPV6_PKTINFO = 0x2e - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVDSTPORT = 0x40 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - IPV6_RTABLE = 0x1021 - IPV6_RTHDR = 0x33 - IPV6_RTHDRDSTOPTS = 0x23 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_SOCKOPT_RESERVED1 = 0x3 - IPV6_TCLASS = 0x3d - IPV6_UNICAST_HOPS = 0x4 - IPV6_USE_MIN_MTU = 0x2a - IPV6_V6ONLY = 0x1b - IPV6_VERSION = 0x60 - IPV6_VERSION_MASK = 0xf0 - IP_ADD_MEMBERSHIP = 0xc - IP_AUTH_LEVEL = 0x14 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DIVERTFL = 0x1022 - IP_DROP_MEMBERSHIP = 0xd - IP_ESP_NETWORK_LEVEL = 0x16 - IP_ESP_TRANS_LEVEL = 0x15 - IP_HDRINCL = 0x2 - IP_IPCOMP_LEVEL = 0x1d - IP_IPSECFLOWINFO = 0x24 - IP_IPSEC_LOCAL_AUTH = 0x1b - IP_IPSEC_LOCAL_CRED = 0x19 - IP_IPSEC_LOCAL_ID = 0x17 - IP_IPSEC_REMOTE_AUTH = 0x1c - IP_IPSEC_REMOTE_CRED = 0x1a - IP_IPSEC_REMOTE_ID = 0x18 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0xfff - IP_MF = 0x2000 - IP_MINTTL = 0x20 - IP_MIN_MEMBERSHIPS = 0xf - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x1 - IP_PIPEX = 0x22 - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVDSTPORT = 0x21 - IP_RECVIF = 0x1e - IP_RECVOPTS = 0x5 - IP_RECVRETOPTS = 0x6 - IP_RECVRTABLE = 0x23 - IP_RECVTTL = 0x1f - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_RTABLE = 0x1021 - IP_TOS = 0x3 - IP_TTL = 0x4 - ISIG = 0x80 - ISTRIP = 0x20 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - LCNT_OVERLOAD_FLUSH = 0x6 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x6 - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_SPACEAVAIL = 0x5 - MADV_WILLNEED = 0x3 - MAP_ANON = 0x1000 - MAP_COPY = 0x4 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_FLAGMASK = 0x1ff7 - MAP_HASSEMAPHORE = 0x200 - MAP_INHERIT = 0x80 - MAP_INHERIT_COPY = 0x1 - MAP_INHERIT_DONATE_COPY = 0x3 - MAP_INHERIT_NONE = 0x2 - MAP_INHERIT_SHARE = 0x0 - MAP_NOEXTEND = 0x100 - MAP_NORESERVE = 0x40 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 - MAP_SHARED = 0x1 - MAP_TRYFIXED = 0x400 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MSG_BCAST = 0x100 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOR = 0x8 - MSG_MCAST = 0x200 - MSG_NOSIGNAL = 0x400 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x4 - MS_SYNC = 0x2 - NAME_MAX = 0xff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x3 - NET_RT_MAXID = 0x6 - NET_RT_STATS = 0x4 - NET_RT_TABLE = 0x5 - NOFLSH = 0x80000000 - NOTE_ATTRIB = 0x8 - NOTE_CHILD = 0x4 - NOTE_DELETE = 0x1 - NOTE_EOF = 0x2 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXTEND = 0x4 - NOTE_FORK = 0x40000000 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_PCTRLMASK = 0xf0000000 - NOTE_PDATAMASK = 0xfffff - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_TRUNCATE = 0x80 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - ONLCR = 0x2 - ONLRET = 0x80 - ONOCR = 0x40 - ONOEOT = 0x8 - OPOST = 0x1 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x10000 - O_CREAT = 0x200 - O_DIRECTORY = 0x20000 - O_DSYNC = 0x80 - O_EXCL = 0x800 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x80 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PF_FLUSH = 0x1 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PT_MASK = 0x3ff000 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_NOFILE = 0x8 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0x7fffffffffffffff - RTAX_AUTHOR = 0x6 - RTAX_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_LABEL = 0xa - RTAX_MAX = 0xb - RTAX_NETMASK = 0x2 - RTAX_SRC = 0x8 - RTAX_SRCMASK = 0x9 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_LABEL = 0x400 - RTA_NETMASK = 0x4 - RTA_SRC = 0x100 - RTA_SRCMASK = 0x200 - RTF_ANNOUNCE = 0x4000 - RTF_BLACKHOLE = 0x1000 - RTF_CLONED = 0x10000 - RTF_CLONING = 0x100 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_FMASK = 0x10f808 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_LLINFO = 0x400 - RTF_MASK = 0x80 - RTF_MODIFIED = 0x20 - RTF_MPATH = 0x40000 - RTF_MPLS = 0x100000 - RTF_PERMANENT_ARP = 0x2000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x2000 - RTF_REJECT = 0x8 - RTF_SOURCE = 0x20000 - RTF_STATIC = 0x800 - RTF_TUNNEL = 0x100000 - RTF_UP = 0x1 - RTF_USETRAILERS = 0x8000 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_DESYNC = 0x10 - RTM_GET = 0x4 - RTM_IFANNOUNCE = 0xf - RTM_IFINFO = 0xe - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MAXSIZE = 0x800 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 - RTM_VERSION = 0x5 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RT_TABLEID_MAX = 0xff - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x4 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCAIFGROUP = 0x80246987 - SIOCALIFADDR = 0x8218691c - SIOCATMARK = 0x40047307 - SIOCBRDGADD = 0x8054693c - SIOCBRDGADDS = 0x80546941 - SIOCBRDGARL = 0x806e694d - SIOCBRDGDADDR = 0x81286947 - SIOCBRDGDEL = 0x8054693d - SIOCBRDGDELS = 0x80546942 - SIOCBRDGFLUSH = 0x80546948 - SIOCBRDGFRL = 0x806e694e - SIOCBRDGGCACHE = 0xc0146941 - SIOCBRDGGFD = 0xc0146952 - SIOCBRDGGHT = 0xc0146951 - SIOCBRDGGIFFLGS = 0xc054693e - SIOCBRDGGMA = 0xc0146953 - SIOCBRDGGPARAM = 0xc03c6958 - SIOCBRDGGPRI = 0xc0146950 - SIOCBRDGGRL = 0xc028694f - SIOCBRDGGSIFS = 0xc054693c - SIOCBRDGGTO = 0xc0146946 - SIOCBRDGIFS = 0xc0546942 - SIOCBRDGRTS = 0xc0186943 - SIOCBRDGSADDR = 0xc1286944 - SIOCBRDGSCACHE = 0x80146940 - SIOCBRDGSFD = 0x80146952 - SIOCBRDGSHT = 0x80146951 - SIOCBRDGSIFCOST = 0x80546955 - SIOCBRDGSIFFLGS = 0x8054693f - SIOCBRDGSIFPRIO = 0x80546954 - SIOCBRDGSMA = 0x80146953 - SIOCBRDGSPRI = 0x80146950 - SIOCBRDGSPROTO = 0x8014695a - SIOCBRDGSTO = 0x80146945 - SIOCBRDGSTXHC = 0x80146959 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFGROUP = 0x80246989 - SIOCDIFPHYADDR = 0x80206949 - SIOCDLIFADDR = 0x8218691e - SIOCGETKALIVE = 0xc01869a4 - SIOCGETLABEL = 0x8020699a - SIOCGETPFLOW = 0xc02069fe - SIOCGETPFSYNC = 0xc02069f8 - SIOCGETSGCNT = 0xc0147534 - SIOCGETVIFCNT = 0xc0147533 - SIOCGETVLAN = 0xc0206990 - SIOCGHIWAT = 0x40047301 - SIOCGIFADDR = 0xc0206921 - SIOCGIFASYNCMAP = 0xc020697c - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCONF = 0xc0086924 - SIOCGIFDATA = 0xc020691b - SIOCGIFDESCR = 0xc0206981 - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFGATTR = 0xc024698b - SIOCGIFGENERIC = 0xc020693a - SIOCGIFGMEMB = 0xc024698a - SIOCGIFGROUP = 0xc0246988 - SIOCGIFHARDMTU = 0xc02069a5 - SIOCGIFMEDIA = 0xc0286936 - SIOCGIFMETRIC = 0xc0206917 - SIOCGIFMTU = 0xc020697e - SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPDSTADDR = 0xc0206948 - SIOCGIFPRIORITY = 0xc020699c - SIOCGIFPSRCADDR = 0xc0206947 - SIOCGIFRDOMAIN = 0xc02069a0 - SIOCGIFRTLABEL = 0xc0206983 - SIOCGIFTIMESLOT = 0xc0206986 - SIOCGIFXFLAGS = 0xc020699e - SIOCGLIFADDR = 0xc218691d - SIOCGLIFPHYADDR = 0xc218694b - SIOCGLIFPHYRTABLE = 0xc02069a2 - SIOCGLIFPHYTTL = 0xc02069a9 - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCGSPPPPARAMS = 0xc0206994 - SIOCGVH = 0xc02069f6 - SIOCGVNETID = 0xc02069a7 - SIOCIFCREATE = 0x8020697a - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc00c6978 - SIOCSETKALIVE = 0x801869a3 - SIOCSETLABEL = 0x80206999 - SIOCSETPFLOW = 0x802069fd - SIOCSETPFSYNC = 0x802069f7 - SIOCSETVLAN = 0x8020698f - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8020690c - SIOCSIFASYNCMAP = 0x8020697d - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFDESCR = 0x80206980 - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGATTR = 0x8024698c - SIOCSIFGENERIC = 0x80206939 - SIOCSIFLLADDR = 0x8020691f - SIOCSIFMEDIA = 0xc0206935 - SIOCSIFMETRIC = 0x80206918 - SIOCSIFMTU = 0x8020697f - SIOCSIFNETMASK = 0x80206916 - SIOCSIFPHYADDR = 0x80406946 - SIOCSIFPRIORITY = 0x8020699b - SIOCSIFRDOMAIN = 0x8020699f - SIOCSIFRTLABEL = 0x80206982 - SIOCSIFTIMESLOT = 0x80206985 - SIOCSIFXFLAGS = 0x8020699d - SIOCSLIFPHYADDR = 0x8218694a - SIOCSLIFPHYRTABLE = 0x802069a1 - SIOCSLIFPHYTTL = 0x802069a8 - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SIOCSSPPPPARAMS = 0x80206993 - SIOCSVH = 0xc02069f5 - SIOCSVNETID = 0x802069a6 - SOCK_DGRAM = 0x2 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_BINDANY = 0x1000 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_NETPROC = 0x1020 - SO_OOBINLINE = 0x100 - SO_PEERCRED = 0x1022 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_RTABLE = 0x1021 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_SPLICE = 0x1023 - SO_TIMESTAMP = 0x800 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - TCIFLUSH = 0x1 - TCIOFLUSH = 0x3 - TCOFLUSH = 0x2 - TCP_MAXBURST = 0x4 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_SACK = 0x3 - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0x4 - TCP_MSS = 0x200 - TCP_NODELAY = 0x1 - TCP_NOPUSH = 0x10 - TCP_NSTATES = 0xb - TCP_SACK_ENABLE = 0x8 - TCSAFLUSH = 0x2 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLAG_CLOCAL = 0x2 - TIOCFLAG_CRTSCTS = 0x4 - TIOCFLAG_MDMBUF = 0x8 - TIOCFLAG_PPS = 0x10 - TIOCFLAG_SOFTCAR = 0x1 - TIOCFLUSH = 0x80047410 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGFLAGS = 0x4004745d - TIOCGPGRP = 0x40047477 - TIOCGSID = 0x40047463 - TIOCGTSTAMP = 0x400c745b - TIOCGWINSZ = 0x40087468 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGET = 0x4004746a - TIOCMODG = 0x4004746a - TIOCMODS = 0x8004746d - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x20007471 - TIOCNXCL = 0x2000740e - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x80047470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCREMOTE = 0x80047469 - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSFLAGS = 0x8004745c - TIOCSIG = 0x8004745f - TIOCSPGRP = 0x80047476 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x80047465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSTSTAMP = 0x8008745a - TIOCSWINSZ = 0x80087467 - TIOCUCNTL = 0x80047466 - TOSTOP = 0x400000 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WALTSIG = 0x4 - WCONTINUED = 0x8 - WCOREFLAG = 0x80 - WNOHANG = 0x1 - WSTOPPED = 0x7f - WUNTRACED = 0x2 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x30) - EADDRNOTAVAIL = syscall.Errno(0x31) - EAFNOSUPPORT = syscall.Errno(0x2f) - EAGAIN = syscall.Errno(0x23) - EALREADY = syscall.Errno(0x25) - EAUTH = syscall.Errno(0x50) - EBADF = syscall.Errno(0x9) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x58) - ECHILD = syscall.Errno(0xa) - ECONNABORTED = syscall.Errno(0x35) - ECONNREFUSED = syscall.Errno(0x3d) - ECONNRESET = syscall.Errno(0x36) - EDEADLK = syscall.Errno(0xb) - EDESTADDRREQ = syscall.Errno(0x27) - EDOM = syscall.Errno(0x21) - EDQUOT = syscall.Errno(0x45) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EFTYPE = syscall.Errno(0x4f) - EHOSTDOWN = syscall.Errno(0x40) - EHOSTUNREACH = syscall.Errno(0x41) - EIDRM = syscall.Errno(0x59) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EIPSEC = syscall.Errno(0x52) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x5b) - ELOOP = syscall.Errno(0x3e) - EMEDIUMTYPE = syscall.Errno(0x56) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - ENAMETOOLONG = syscall.Errno(0x3f) - ENEEDAUTH = syscall.Errno(0x51) - ENETDOWN = syscall.Errno(0x32) - ENETRESET = syscall.Errno(0x34) - ENETUNREACH = syscall.Errno(0x33) - ENFILE = syscall.Errno(0x17) - ENOATTR = syscall.Errno(0x53) - ENOBUFS = syscall.Errno(0x37) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOMEDIUM = syscall.Errno(0x55) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x5a) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x5b) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x57) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x2e) - EPIPE = syscall.Errno(0x20) - EPROCLIM = syscall.Errno(0x43) - EPROCUNAVAIL = syscall.Errno(0x4c) - EPROGMISMATCH = syscall.Errno(0x4b) - EPROGUNAVAIL = syscall.Errno(0x4a) - EPROTONOSUPPORT = syscall.Errno(0x2b) - EPROTOTYPE = syscall.Errno(0x29) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x47) - EROFS = syscall.Errno(0x1e) - ERPCMISMATCH = syscall.Errno(0x49) - ESHUTDOWN = syscall.Errno(0x3a) - ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x46) - ETIMEDOUT = syscall.Errno(0x3c) - ETOOMANYREFS = syscall.Errno(0x3b) - ETXTBSY = syscall.Errno(0x1a) - EUSERS = syscall.Errno(0x44) - EWOULDBLOCK = syscall.Errno(0x23) - EXDEV = syscall.Errno(0x12) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x14) - SIGCONT = syscall.Signal(0x13) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINFO = syscall.Signal(0x1d) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x17) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) - SIGPROF = syscall.Signal(0x1b) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTHR = syscall.Signal(0x20) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x12) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x10) - SIGUSR1 = syscall.Signal(0x1e) - SIGUSR2 = syscall.Signal(0x1f) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errors = [...]string{ - 1: "operation not permitted", - 2: "no such file or directory", - 3: "no such process", - 4: "interrupted system call", - 5: "input/output error", - 6: "device not configured", - 7: "argument list too long", - 8: "exec format error", - 9: "bad file descriptor", - 10: "no child processes", - 11: "resource deadlock avoided", - 12: "cannot allocate memory", - 13: "permission denied", - 14: "bad address", - 15: "block device required", - 16: "device busy", - 17: "file exists", - 18: "cross-device link", - 19: "operation not supported by device", - 20: "not a directory", - 21: "is a directory", - 22: "invalid argument", - 23: "too many open files in system", - 24: "too many open files", - 25: "inappropriate ioctl for device", - 26: "text file busy", - 27: "file too large", - 28: "no space left on device", - 29: "illegal seek", - 30: "read-only file system", - 31: "too many links", - 32: "broken pipe", - 33: "numerical argument out of domain", - 34: "result too large", - 35: "resource temporarily unavailable", - 36: "operation now in progress", - 37: "operation already in progress", - 38: "socket operation on non-socket", - 39: "destination address required", - 40: "message too long", - 41: "protocol wrong type for socket", - 42: "protocol not available", - 43: "protocol not supported", - 44: "socket type not supported", - 45: "operation not supported", - 46: "protocol family not supported", - 47: "address family not supported by protocol family", - 48: "address already in use", - 49: "can't assign requested address", - 50: "network is down", - 51: "network is unreachable", - 52: "network dropped connection on reset", - 53: "software caused connection abort", - 54: "connection reset by peer", - 55: "no buffer space available", - 56: "socket is already connected", - 57: "socket is not connected", - 58: "can't send after socket shutdown", - 59: "too many references: can't splice", - 60: "connection timed out", - 61: "connection refused", - 62: "too many levels of symbolic links", - 63: "file name too long", - 64: "host is down", - 65: "no route to host", - 66: "directory not empty", - 67: "too many processes", - 68: "too many users", - 69: "disc quota exceeded", - 70: "stale NFS file handle", - 71: "too many levels of remote in path", - 72: "RPC struct is bad", - 73: "RPC version wrong", - 74: "RPC prog. not avail", - 75: "program version wrong", - 76: "bad procedure for program", - 77: "no locks available", - 78: "function not implemented", - 79: "inappropriate file type or format", - 80: "authentication error", - 81: "need authenticator", - 82: "IPsec processing failure", - 83: "attribute not found", - 84: "illegal byte sequence", - 85: "no medium found", - 86: "wrong medium type", - 87: "value too large to be stored in data type", - 88: "operation canceled", - 89: "identifier removed", - 90: "no message of desired type", - 91: "not supported", -} - -// Signal table -var signals = [...]string{ - 1: "hangup", - 2: "interrupt", - 3: "quit", - 4: "illegal instruction", - 5: "trace/BPT trap", - 6: "abort trap", - 7: "EMT trap", - 8: "floating point exception", - 9: "killed", - 10: "bus error", - 11: "segmentation fault", - 12: "bad system call", - 13: "broken pipe", - 14: "alarm clock", - 15: "terminated", - 16: "urgent I/O condition", - 17: "stopped (signal)", - 18: "stopped", - 19: "continued", - 20: "child exited", - 21: "stopped (tty input)", - 22: "stopped (tty output)", - 23: "I/O possible", - 24: "cputime limit exceeded", - 25: "filesize limit exceeded", - 26: "virtual timer expired", - 27: "profiling timer expired", - 28: "window size changes", - 29: "information request", - 30: "user defined signal 1", - 31: "user defined signal 2", - 32: "thread AST", -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go deleted file mode 100644 index 1758ecc..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go +++ /dev/null @@ -1,1583 +0,0 @@ -// mkerrors.sh -m64 -// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT - -// +build amd64,openbsd - -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs -- -m64 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_BLUETOOTH = 0x20 - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_CNT = 0x15 - AF_COIP = 0x14 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_E164 = 0x1a - AF_ECMA = 0x8 - AF_ENCAP = 0x1c - AF_HYLINK = 0xf - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x18 - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_KEY = 0x1e - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x24 - AF_MPLS = 0x21 - AF_NATM = 0x1b - AF_NS = 0x6 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x11 - AF_SIP = 0x1d - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - ARPHRD_ETHER = 0x1 - ARPHRD_FRELAY = 0xf - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - B0 = 0x0 - B110 = 0x6e - B115200 = 0x1c200 - B1200 = 0x4b0 - B134 = 0x86 - B14400 = 0x3840 - B150 = 0x96 - B1800 = 0x708 - B19200 = 0x4b00 - B200 = 0xc8 - B230400 = 0x38400 - B2400 = 0x960 - B28800 = 0x7080 - B300 = 0x12c - B38400 = 0x9600 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B9600 = 0x2580 - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDIRFILT = 0x4004427c - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc010427b - BIOCGETIF = 0x4020426b - BIOCGFILDROP = 0x40044278 - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044273 - BIOCGRTIMEOUT = 0x4010426e - BIOCGSTATS = 0x4008426f - BIOCIMMEDIATE = 0x80044270 - BIOCLOCK = 0x20004276 - BIOCPROMISC = 0x20004269 - BIOCSBLEN = 0xc0044266 - BIOCSDIRFILT = 0x8004427d - BIOCSDLT = 0x8004427a - BIOCSETF = 0x80104267 - BIOCSETIF = 0x8020426c - BIOCSETWF = 0x80104277 - BIOCSFILDROP = 0x80044279 - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044272 - BIOCSRTIMEOUT = 0x8010426d - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIRECTION_IN = 0x1 - BPF_DIRECTION_OUT = 0x2 - BPF_DIV = 0x30 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXBUFSIZE = 0x200000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_OR = 0x40 - BPF_RELEASE = 0x30bb6 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BRKINT = 0x2 - CFLUSH = 0xf - CLOCAL = 0x8000 - CREAD = 0x800 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0xff - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_MAXNAME = 0xc - CTL_NET = 0x4 - DIOCOSFPFLUSH = 0x2000444e - DLT_ARCNET = 0x7 - DLT_ATM_RFC1483 = 0xb - DLT_AX25 = 0x3 - DLT_CHAOS = 0x5 - DLT_C_HDLC = 0x68 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0xd - DLT_FDDI = 0xa - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_LOOP = 0xc - DLT_MPLS = 0xdb - DLT_NULL = 0x0 - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0x10 - DLT_PPP_ETHER = 0x33 - DLT_PPP_SERIAL = 0x32 - DLT_PRONET = 0x4 - DLT_RAW = 0xe - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xf - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EMT_TAGOVF = 0x1 - EMUL_ENABLED = 0x1 - EMUL_NATIVE = 0x2 - ENDRUNDISC = 0x9 - ETHERMIN = 0x2e - ETHERMTU = 0x5dc - ETHERTYPE_8023 = 0x4 - ETHERTYPE_AARP = 0x80f3 - ETHERTYPE_ACCTON = 0x8390 - ETHERTYPE_AEONIC = 0x8036 - ETHERTYPE_ALPHA = 0x814a - ETHERTYPE_AMBER = 0x6008 - ETHERTYPE_AMOEBA = 0x8145 - ETHERTYPE_AOE = 0x88a2 - ETHERTYPE_APOLLO = 0x80f7 - ETHERTYPE_APOLLODOMAIN = 0x8019 - ETHERTYPE_APPLETALK = 0x809b - ETHERTYPE_APPLITEK = 0x80c7 - ETHERTYPE_ARGONAUT = 0x803a - ETHERTYPE_ARP = 0x806 - ETHERTYPE_AT = 0x809b - ETHERTYPE_ATALK = 0x809b - ETHERTYPE_ATOMIC = 0x86df - ETHERTYPE_ATT = 0x8069 - ETHERTYPE_ATTSTANFORD = 0x8008 - ETHERTYPE_AUTOPHON = 0x806a - ETHERTYPE_AXIS = 0x8856 - ETHERTYPE_BCLOOP = 0x9003 - ETHERTYPE_BOFL = 0x8102 - ETHERTYPE_CABLETRON = 0x7034 - ETHERTYPE_CHAOS = 0x804 - ETHERTYPE_COMDESIGN = 0x806c - ETHERTYPE_COMPUGRAPHIC = 0x806d - ETHERTYPE_COUNTERPOINT = 0x8062 - ETHERTYPE_CRONUS = 0x8004 - ETHERTYPE_CRONUSVLN = 0x8003 - ETHERTYPE_DCA = 0x1234 - ETHERTYPE_DDE = 0x807b - ETHERTYPE_DEBNI = 0xaaaa - ETHERTYPE_DECAM = 0x8048 - ETHERTYPE_DECCUST = 0x6006 - ETHERTYPE_DECDIAG = 0x6005 - ETHERTYPE_DECDNS = 0x803c - ETHERTYPE_DECDTS = 0x803e - ETHERTYPE_DECEXPER = 0x6000 - ETHERTYPE_DECLAST = 0x8041 - ETHERTYPE_DECLTM = 0x803f - ETHERTYPE_DECMUMPS = 0x6009 - ETHERTYPE_DECNETBIOS = 0x8040 - ETHERTYPE_DELTACON = 0x86de - ETHERTYPE_DIDDLE = 0x4321 - ETHERTYPE_DLOG1 = 0x660 - ETHERTYPE_DLOG2 = 0x661 - ETHERTYPE_DN = 0x6003 - ETHERTYPE_DOGFIGHT = 0x1989 - ETHERTYPE_DSMD = 0x8039 - ETHERTYPE_ECMA = 0x803 - ETHERTYPE_ENCRYPT = 0x803d - ETHERTYPE_ES = 0x805d - ETHERTYPE_EXCELAN = 0x8010 - ETHERTYPE_EXPERDATA = 0x8049 - ETHERTYPE_FLIP = 0x8146 - ETHERTYPE_FLOWCONTROL = 0x8808 - ETHERTYPE_FRARP = 0x808 - ETHERTYPE_GENDYN = 0x8068 - ETHERTYPE_HAYES = 0x8130 - ETHERTYPE_HIPPI_FP = 0x8180 - ETHERTYPE_HITACHI = 0x8820 - ETHERTYPE_HP = 0x8005 - ETHERTYPE_IEEEPUP = 0xa00 - ETHERTYPE_IEEEPUPAT = 0xa01 - ETHERTYPE_IMLBL = 0x4c42 - ETHERTYPE_IMLBLDIAG = 0x424c - ETHERTYPE_IP = 0x800 - ETHERTYPE_IPAS = 0x876c - ETHERTYPE_IPV6 = 0x86dd - ETHERTYPE_IPX = 0x8137 - ETHERTYPE_IPXNEW = 0x8037 - ETHERTYPE_KALPANA = 0x8582 - ETHERTYPE_LANBRIDGE = 0x8038 - ETHERTYPE_LANPROBE = 0x8888 - ETHERTYPE_LAT = 0x6004 - ETHERTYPE_LBACK = 0x9000 - ETHERTYPE_LITTLE = 0x8060 - ETHERTYPE_LLDP = 0x88cc - ETHERTYPE_LOGICRAFT = 0x8148 - ETHERTYPE_LOOPBACK = 0x9000 - ETHERTYPE_MATRA = 0x807a - ETHERTYPE_MAX = 0xffff - ETHERTYPE_MERIT = 0x807c - ETHERTYPE_MICP = 0x873a - ETHERTYPE_MOPDL = 0x6001 - ETHERTYPE_MOPRC = 0x6002 - ETHERTYPE_MOTOROLA = 0x818d - ETHERTYPE_MPLS = 0x8847 - ETHERTYPE_MPLS_MCAST = 0x8848 - ETHERTYPE_MUMPS = 0x813f - ETHERTYPE_NBPCC = 0x3c04 - ETHERTYPE_NBPCLAIM = 0x3c09 - ETHERTYPE_NBPCLREQ = 0x3c05 - ETHERTYPE_NBPCLRSP = 0x3c06 - ETHERTYPE_NBPCREQ = 0x3c02 - ETHERTYPE_NBPCRSP = 0x3c03 - ETHERTYPE_NBPDG = 0x3c07 - ETHERTYPE_NBPDGB = 0x3c08 - ETHERTYPE_NBPDLTE = 0x3c0a - ETHERTYPE_NBPRAR = 0x3c0c - ETHERTYPE_NBPRAS = 0x3c0b - ETHERTYPE_NBPRST = 0x3c0d - ETHERTYPE_NBPSCD = 0x3c01 - ETHERTYPE_NBPVCD = 0x3c00 - ETHERTYPE_NBS = 0x802 - ETHERTYPE_NCD = 0x8149 - ETHERTYPE_NESTAR = 0x8006 - ETHERTYPE_NETBEUI = 0x8191 - ETHERTYPE_NOVELL = 0x8138 - ETHERTYPE_NS = 0x600 - ETHERTYPE_NSAT = 0x601 - ETHERTYPE_NSCOMPAT = 0x807 - ETHERTYPE_NTRAILER = 0x10 - ETHERTYPE_OS9 = 0x7007 - ETHERTYPE_OS9NET = 0x7009 - ETHERTYPE_PACER = 0x80c6 - ETHERTYPE_PAE = 0x888e - ETHERTYPE_PCS = 0x4242 - ETHERTYPE_PLANNING = 0x8044 - ETHERTYPE_PPP = 0x880b - ETHERTYPE_PPPOE = 0x8864 - ETHERTYPE_PPPOEDISC = 0x8863 - ETHERTYPE_PRIMENTS = 0x7031 - ETHERTYPE_PUP = 0x200 - ETHERTYPE_PUPAT = 0x200 - ETHERTYPE_QINQ = 0x88a8 - ETHERTYPE_RACAL = 0x7030 - ETHERTYPE_RATIONAL = 0x8150 - ETHERTYPE_RAWFR = 0x6559 - ETHERTYPE_RCL = 0x1995 - ETHERTYPE_RDP = 0x8739 - ETHERTYPE_RETIX = 0x80f2 - ETHERTYPE_REVARP = 0x8035 - ETHERTYPE_SCA = 0x6007 - ETHERTYPE_SECTRA = 0x86db - ETHERTYPE_SECUREDATA = 0x876d - ETHERTYPE_SGITW = 0x817e - ETHERTYPE_SG_BOUNCE = 0x8016 - ETHERTYPE_SG_DIAG = 0x8013 - ETHERTYPE_SG_NETGAMES = 0x8014 - ETHERTYPE_SG_RESV = 0x8015 - ETHERTYPE_SIMNET = 0x5208 - ETHERTYPE_SLOW = 0x8809 - ETHERTYPE_SNA = 0x80d5 - ETHERTYPE_SNMP = 0x814c - ETHERTYPE_SONIX = 0xfaf5 - ETHERTYPE_SPIDER = 0x809f - ETHERTYPE_SPRITE = 0x500 - ETHERTYPE_STP = 0x8181 - ETHERTYPE_TALARIS = 0x812b - ETHERTYPE_TALARISMC = 0x852b - ETHERTYPE_TCPCOMP = 0x876b - ETHERTYPE_TCPSM = 0x9002 - ETHERTYPE_TEC = 0x814f - ETHERTYPE_TIGAN = 0x802f - ETHERTYPE_TRAIL = 0x1000 - ETHERTYPE_TRANSETHER = 0x6558 - ETHERTYPE_TYMSHARE = 0x802e - ETHERTYPE_UBBST = 0x7005 - ETHERTYPE_UBDEBUG = 0x900 - ETHERTYPE_UBDIAGLOOP = 0x7002 - ETHERTYPE_UBDL = 0x7000 - ETHERTYPE_UBNIU = 0x7001 - ETHERTYPE_UBNMC = 0x7003 - ETHERTYPE_VALID = 0x1600 - ETHERTYPE_VARIAN = 0x80dd - ETHERTYPE_VAXELN = 0x803b - ETHERTYPE_VEECO = 0x8067 - ETHERTYPE_VEXP = 0x805b - ETHERTYPE_VGLAB = 0x8131 - ETHERTYPE_VINES = 0xbad - ETHERTYPE_VINESECHO = 0xbaf - ETHERTYPE_VINESLOOP = 0xbae - ETHERTYPE_VITAL = 0xff00 - ETHERTYPE_VLAN = 0x8100 - ETHERTYPE_VLTLMAN = 0x8080 - ETHERTYPE_VPROD = 0x805c - ETHERTYPE_VURESERVED = 0x8147 - ETHERTYPE_WATERLOO = 0x8130 - ETHERTYPE_WELLFLEET = 0x8103 - ETHERTYPE_X25 = 0x805 - ETHERTYPE_X75 = 0x801 - ETHERTYPE_XNSSM = 0x9001 - ETHERTYPE_XTP = 0x817d - ETHER_ADDR_LEN = 0x6 - ETHER_ALIGN = 0x2 - ETHER_CRC_LEN = 0x4 - ETHER_CRC_POLY_BE = 0x4c11db6 - ETHER_CRC_POLY_LE = 0xedb88320 - ETHER_HDR_LEN = 0xe - ETHER_MAX_DIX_LEN = 0x600 - ETHER_MAX_LEN = 0x5ee - ETHER_MIN_LEN = 0x40 - ETHER_TYPE_LEN = 0x2 - ETHER_VLAN_ENCAP_LEN = 0x4 - EVFILT_AIO = -0x3 - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0x7 - EVFILT_TIMER = -0x7 - EVFILT_VNODE = -0x4 - EVFILT_WRITE = -0x2 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_ONESHOT = 0x10 - EV_SYSFLAGS = 0xf000 - EXTA = 0x4b00 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FLUSHO = 0x800000 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0xa - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0x7 - F_GETOWN = 0x5 - F_OK = 0x0 - F_RDLCK = 0x1 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x8 - F_SETLKW = 0x9 - F_SETOWN = 0x6 - F_UNLCK = 0x2 - F_WRLCK = 0x3 - HUPCL = 0x4000 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFAN_ARRIVAL = 0x0 - IFAN_DEPARTURE = 0x1 - IFA_ROUTE = 0x1 - IFF_ALLMULTI = 0x200 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x8e52 - IFF_DEBUG = 0x4 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NOTRAILERS = 0x20 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_1822 = 0x2 - IFT_A12MPPSWITCH = 0x82 - IFT_AAL2 = 0xbb - IFT_AAL5 = 0x31 - IFT_ADSL = 0x5e - IFT_AFLANE8023 = 0x3b - IFT_AFLANE8025 = 0x3c - IFT_ARAP = 0x58 - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ASYNC = 0x54 - IFT_ATM = 0x25 - IFT_ATMDXI = 0x69 - IFT_ATMFUNI = 0x6a - IFT_ATMIMA = 0x6b - IFT_ATMLOGICAL = 0x50 - IFT_ATMRADIO = 0xbd - IFT_ATMSUBINTERFACE = 0x86 - IFT_ATMVCIENDPT = 0xc2 - IFT_ATMVIRTUAL = 0x95 - IFT_BGPPOLICYACCOUNTING = 0xa2 - IFT_BLUETOOTH = 0xf8 - IFT_BRIDGE = 0xd1 - IFT_BSC = 0x53 - IFT_CARP = 0xf7 - IFT_CCTEMUL = 0x3d - IFT_CEPT = 0x13 - IFT_CES = 0x85 - IFT_CHANNEL = 0x46 - IFT_CNR = 0x55 - IFT_COFFEE = 0x84 - IFT_COMPOSITELINK = 0x9b - IFT_DCN = 0x8d - IFT_DIGITALPOWERLINE = 0x8a - IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba - IFT_DLSW = 0x4a - IFT_DOCSCABLEDOWNSTREAM = 0x80 - IFT_DOCSCABLEMACLAYER = 0x7f - IFT_DOCSCABLEUPSTREAM = 0x81 - IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd - IFT_DS0 = 0x51 - IFT_DS0BUNDLE = 0x52 - IFT_DS1FDL = 0xaa - IFT_DS3 = 0x1e - IFT_DTM = 0x8c - IFT_DUMMY = 0xf1 - IFT_DVBASILN = 0xac - IFT_DVBASIOUT = 0xad - IFT_DVBRCCDOWNSTREAM = 0x93 - IFT_DVBRCCMACLAYER = 0x92 - IFT_DVBRCCUPSTREAM = 0x94 - IFT_ECONET = 0xce - IFT_ENC = 0xf4 - IFT_EON = 0x19 - IFT_EPLRS = 0x57 - IFT_ESCON = 0x49 - IFT_ETHER = 0x6 - IFT_FAITH = 0xf3 - IFT_FAST = 0x7d - IFT_FASTETHER = 0x3e - IFT_FASTETHERFX = 0x45 - IFT_FDDI = 0xf - IFT_FIBRECHANNEL = 0x38 - IFT_FRAMERELAYINTERCONNECT = 0x3a - IFT_FRAMERELAYMPI = 0x5c - IFT_FRDLCIENDPT = 0xc1 - IFT_FRELAY = 0x20 - IFT_FRELAYDCE = 0x2c - IFT_FRF16MFRBUNDLE = 0xa3 - IFT_FRFORWARD = 0x9e - IFT_G703AT2MB = 0x43 - IFT_G703AT64K = 0x42 - IFT_GIF = 0xf0 - IFT_GIGABITETHERNET = 0x75 - IFT_GR303IDT = 0xb2 - IFT_GR303RDT = 0xb1 - IFT_H323GATEKEEPER = 0xa4 - IFT_H323PROXY = 0xa5 - IFT_HDH1822 = 0x3 - IFT_HDLC = 0x76 - IFT_HDSL2 = 0xa8 - IFT_HIPERLAN2 = 0xb7 - IFT_HIPPI = 0x2f - IFT_HIPPIINTERFACE = 0x39 - IFT_HOSTPAD = 0x5a - IFT_HSSI = 0x2e - IFT_HY = 0xe - IFT_IBM370PARCHAN = 0x48 - IFT_IDSL = 0x9a - IFT_IEEE1394 = 0x90 - IFT_IEEE80211 = 0x47 - IFT_IEEE80212 = 0x37 - IFT_IEEE8023ADLAG = 0xa1 - IFT_IFGSN = 0x91 - IFT_IMT = 0xbe - IFT_INFINIBAND = 0xc7 - IFT_INTERLEAVE = 0x7c - IFT_IP = 0x7e - IFT_IPFORWARD = 0x8e - IFT_IPOVERATM = 0x72 - IFT_IPOVERCDLC = 0x6d - IFT_IPOVERCLAW = 0x6e - IFT_IPSWITCH = 0x4e - IFT_ISDN = 0x3f - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_ISDNS = 0x4b - IFT_ISDNU = 0x4c - IFT_ISO88022LLC = 0x29 - IFT_ISO88023 = 0x7 - IFT_ISO88024 = 0x8 - IFT_ISO88025 = 0x9 - IFT_ISO88025CRFPINT = 0x62 - IFT_ISO88025DTR = 0x56 - IFT_ISO88025FIBER = 0x73 - IFT_ISO88026 = 0xa - IFT_ISUP = 0xb3 - IFT_L2VLAN = 0x87 - IFT_L3IPVLAN = 0x88 - IFT_L3IPXVLAN = 0x89 - IFT_LAPB = 0x10 - IFT_LAPD = 0x4d - IFT_LAPF = 0x77 - IFT_LINEGROUP = 0xd2 - IFT_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - IFT_MEDIAMAILOVERIP = 0x8b - IFT_MFSIGLINK = 0xa7 - IFT_MIOX25 = 0x26 - IFT_MODEM = 0x30 - IFT_MPC = 0x71 - IFT_MPLS = 0xa6 - IFT_MPLSTUNNEL = 0x96 - IFT_MSDSL = 0x8f - IFT_MVL = 0xbf - IFT_MYRINET = 0x63 - IFT_NFAS = 0xaf - IFT_NSIP = 0x1b - IFT_OPTICALCHANNEL = 0xc3 - IFT_OPTICALTRANSPORT = 0xc4 - IFT_OTHER = 0x1 - IFT_P10 = 0xc - IFT_P80 = 0xd - IFT_PARA = 0x22 - IFT_PFLOG = 0xf5 - IFT_PFLOW = 0xf9 - IFT_PFSYNC = 0xf6 - IFT_PLC = 0xae - IFT_PON155 = 0xcf - IFT_PON622 = 0xd0 - IFT_POS = 0xab - IFT_PPP = 0x17 - IFT_PPPMULTILINKBUNDLE = 0x6c - IFT_PROPATM = 0xc5 - IFT_PROPBWAP2MP = 0xb8 - IFT_PROPCNLS = 0x59 - IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 - IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 - IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 - IFT_PROPMUX = 0x36 - IFT_PROPVIRTUAL = 0x35 - IFT_PROPWIRELESSP2P = 0x9d - IFT_PTPSERIAL = 0x16 - IFT_PVC = 0xf2 - IFT_Q2931 = 0xc9 - IFT_QLLC = 0x44 - IFT_RADIOMAC = 0xbc - IFT_RADSL = 0x5f - IFT_REACHDSL = 0xc0 - IFT_RFC1483 = 0x9f - IFT_RS232 = 0x21 - IFT_RSRB = 0x4f - IFT_SDLC = 0x11 - IFT_SDSL = 0x60 - IFT_SHDSL = 0xa9 - IFT_SIP = 0x1f - IFT_SIPSIG = 0xcc - IFT_SIPTG = 0xcb - IFT_SLIP = 0x1c - IFT_SMDSDXI = 0x2b - IFT_SMDSICIP = 0x34 - IFT_SONET = 0x27 - IFT_SONETOVERHEADCHANNEL = 0xb9 - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_SRP = 0x97 - IFT_SS7SIGLINK = 0x9c - IFT_STACKTOSTACK = 0x6f - IFT_STARLAN = 0xb - IFT_T1 = 0x12 - IFT_TDLC = 0x74 - IFT_TELINK = 0xc8 - IFT_TERMPAD = 0x5b - IFT_TR008 = 0xb0 - IFT_TRANSPHDLC = 0x7b - IFT_TUNNEL = 0x83 - IFT_ULTRA = 0x1d - IFT_USB = 0xa0 - IFT_V11 = 0x40 - IFT_V35 = 0x2d - IFT_V36 = 0x41 - IFT_V37 = 0x78 - IFT_VDSL = 0x61 - IFT_VIRTUALIPADDRESS = 0x70 - IFT_VIRTUALTG = 0xca - IFT_VOICEDID = 0xd5 - IFT_VOICEEM = 0x64 - IFT_VOICEEMFGD = 0xd3 - IFT_VOICEENCAP = 0x67 - IFT_VOICEFGDEANA = 0xd4 - IFT_VOICEFXO = 0x65 - IFT_VOICEFXS = 0x66 - IFT_VOICEOVERATM = 0x98 - IFT_VOICEOVERCABLE = 0xc6 - IFT_VOICEOVERFRAMERELAY = 0x99 - IFT_VOICEOVERIP = 0x68 - IFT_X213 = 0x5d - IFT_X25 = 0x5 - IFT_X25DDN = 0x4 - IFT_X25HUNTGROUP = 0x7a - IFT_X25MLP = 0x79 - IFT_X25PLE = 0x28 - IFT_XETHER = 0x1a - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLASSD_HOST = 0xfffffff - IN_CLASSD_NET = 0xf0000000 - IN_CLASSD_NSHIFT = 0x1c - IN_LOOPBACKNET = 0x7f - IN_RFC3021_HOST = 0x1 - IN_RFC3021_NET = 0xfffffffe - IN_RFC3021_NSHIFT = 0x1f - IPPROTO_AH = 0x33 - IPPROTO_CARP = 0x70 - IPPROTO_DIVERT = 0x102 - IPPROTO_DIVERT_INIT = 0x2 - IPPROTO_DIVERT_RESP = 0x1 - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPIP = 0x4 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MAX = 0x100 - IPPROTO_MAXID = 0x103 - IPPROTO_MOBILE = 0x37 - IPPROTO_MPLS = 0x89 - IPPROTO_NONE = 0x3b - IPPROTO_PFSYNC = 0xf0 - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPV6_AUTH_LEVEL = 0x35 - IPV6_AUTOFLOWLABEL = 0x3b - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_ESP_NETWORK_LEVEL = 0x37 - IPV6_ESP_TRANS_LEVEL = 0x36 - IPV6_FAITH = 0x1d - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FRAGTTL = 0x78 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_IPCOMP_LEVEL = 0x3c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXPACKET = 0xffff - IPV6_MMTU = 0x500 - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_OPTIONS = 0x1 - IPV6_PATHMTU = 0x2c - IPV6_PIPEX = 0x3f - IPV6_PKTINFO = 0x2e - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVDSTPORT = 0x40 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - IPV6_RTABLE = 0x1021 - IPV6_RTHDR = 0x33 - IPV6_RTHDRDSTOPTS = 0x23 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_SOCKOPT_RESERVED1 = 0x3 - IPV6_TCLASS = 0x3d - IPV6_UNICAST_HOPS = 0x4 - IPV6_USE_MIN_MTU = 0x2a - IPV6_V6ONLY = 0x1b - IPV6_VERSION = 0x60 - IPV6_VERSION_MASK = 0xf0 - IP_ADD_MEMBERSHIP = 0xc - IP_AUTH_LEVEL = 0x14 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DIVERTFL = 0x1022 - IP_DROP_MEMBERSHIP = 0xd - IP_ESP_NETWORK_LEVEL = 0x16 - IP_ESP_TRANS_LEVEL = 0x15 - IP_HDRINCL = 0x2 - IP_IPCOMP_LEVEL = 0x1d - IP_IPSECFLOWINFO = 0x24 - IP_IPSEC_LOCAL_AUTH = 0x1b - IP_IPSEC_LOCAL_CRED = 0x19 - IP_IPSEC_LOCAL_ID = 0x17 - IP_IPSEC_REMOTE_AUTH = 0x1c - IP_IPSEC_REMOTE_CRED = 0x1a - IP_IPSEC_REMOTE_ID = 0x18 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0xfff - IP_MF = 0x2000 - IP_MINTTL = 0x20 - IP_MIN_MEMBERSHIPS = 0xf - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x1 - IP_PIPEX = 0x22 - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVDSTPORT = 0x21 - IP_RECVIF = 0x1e - IP_RECVOPTS = 0x5 - IP_RECVRETOPTS = 0x6 - IP_RECVRTABLE = 0x23 - IP_RECVTTL = 0x1f - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_RTABLE = 0x1021 - IP_TOS = 0x3 - IP_TTL = 0x4 - ISIG = 0x80 - ISTRIP = 0x20 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - LCNT_OVERLOAD_FLUSH = 0x6 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x6 - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_SPACEAVAIL = 0x5 - MADV_WILLNEED = 0x3 - MAP_ANON = 0x1000 - MAP_COPY = 0x4 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_FLAGMASK = 0x1ff7 - MAP_HASSEMAPHORE = 0x200 - MAP_INHERIT = 0x80 - MAP_INHERIT_COPY = 0x1 - MAP_INHERIT_DONATE_COPY = 0x3 - MAP_INHERIT_NONE = 0x2 - MAP_INHERIT_SHARE = 0x0 - MAP_NOEXTEND = 0x100 - MAP_NORESERVE = 0x40 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 - MAP_SHARED = 0x1 - MAP_TRYFIXED = 0x400 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MSG_BCAST = 0x100 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOR = 0x8 - MSG_MCAST = 0x200 - MSG_NOSIGNAL = 0x400 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x4 - MS_SYNC = 0x2 - NAME_MAX = 0xff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x3 - NET_RT_MAXID = 0x6 - NET_RT_STATS = 0x4 - NET_RT_TABLE = 0x5 - NOFLSH = 0x80000000 - NOTE_ATTRIB = 0x8 - NOTE_CHILD = 0x4 - NOTE_DELETE = 0x1 - NOTE_EOF = 0x2 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXTEND = 0x4 - NOTE_FORK = 0x40000000 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_PCTRLMASK = 0xf0000000 - NOTE_PDATAMASK = 0xfffff - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_TRUNCATE = 0x80 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - ONLCR = 0x2 - ONLRET = 0x80 - ONOCR = 0x40 - ONOEOT = 0x8 - OPOST = 0x1 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x10000 - O_CREAT = 0x200 - O_DIRECTORY = 0x20000 - O_DSYNC = 0x80 - O_EXCL = 0x800 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x80 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PF_FLUSH = 0x1 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_NOFILE = 0x8 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0x7fffffffffffffff - RTAX_AUTHOR = 0x6 - RTAX_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_LABEL = 0xa - RTAX_MAX = 0xb - RTAX_NETMASK = 0x2 - RTAX_SRC = 0x8 - RTAX_SRCMASK = 0x9 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_LABEL = 0x400 - RTA_NETMASK = 0x4 - RTA_SRC = 0x100 - RTA_SRCMASK = 0x200 - RTF_ANNOUNCE = 0x4000 - RTF_BLACKHOLE = 0x1000 - RTF_CLONED = 0x10000 - RTF_CLONING = 0x100 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_FMASK = 0x10f808 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_LLINFO = 0x400 - RTF_MASK = 0x80 - RTF_MODIFIED = 0x20 - RTF_MPATH = 0x40000 - RTF_MPLS = 0x100000 - RTF_PERMANENT_ARP = 0x2000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x2000 - RTF_REJECT = 0x8 - RTF_SOURCE = 0x20000 - RTF_STATIC = 0x800 - RTF_TUNNEL = 0x100000 - RTF_UP = 0x1 - RTF_USETRAILERS = 0x8000 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_DESYNC = 0x10 - RTM_GET = 0x4 - RTM_IFANNOUNCE = 0xf - RTM_IFINFO = 0xe - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MAXSIZE = 0x800 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 - RTM_VERSION = 0x5 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RT_TABLEID_MAX = 0xff - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x4 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCAIFGROUP = 0x80286987 - SIOCALIFADDR = 0x8218691c - SIOCATMARK = 0x40047307 - SIOCBRDGADD = 0x8058693c - SIOCBRDGADDS = 0x80586941 - SIOCBRDGARL = 0x806e694d - SIOCBRDGDADDR = 0x81286947 - SIOCBRDGDEL = 0x8058693d - SIOCBRDGDELS = 0x80586942 - SIOCBRDGFLUSH = 0x80586948 - SIOCBRDGFRL = 0x806e694e - SIOCBRDGGCACHE = 0xc0146941 - SIOCBRDGGFD = 0xc0146952 - SIOCBRDGGHT = 0xc0146951 - SIOCBRDGGIFFLGS = 0xc058693e - SIOCBRDGGMA = 0xc0146953 - SIOCBRDGGPARAM = 0xc0406958 - SIOCBRDGGPRI = 0xc0146950 - SIOCBRDGGRL = 0xc030694f - SIOCBRDGGSIFS = 0xc058693c - SIOCBRDGGTO = 0xc0146946 - SIOCBRDGIFS = 0xc0586942 - SIOCBRDGRTS = 0xc0206943 - SIOCBRDGSADDR = 0xc1286944 - SIOCBRDGSCACHE = 0x80146940 - SIOCBRDGSFD = 0x80146952 - SIOCBRDGSHT = 0x80146951 - SIOCBRDGSIFCOST = 0x80586955 - SIOCBRDGSIFFLGS = 0x8058693f - SIOCBRDGSIFPRIO = 0x80586954 - SIOCBRDGSMA = 0x80146953 - SIOCBRDGSPRI = 0x80146950 - SIOCBRDGSPROTO = 0x8014695a - SIOCBRDGSTO = 0x80146945 - SIOCBRDGSTXHC = 0x80146959 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFGROUP = 0x80286989 - SIOCDIFPHYADDR = 0x80206949 - SIOCDLIFADDR = 0x8218691e - SIOCGETKALIVE = 0xc01869a4 - SIOCGETLABEL = 0x8020699a - SIOCGETPFLOW = 0xc02069fe - SIOCGETPFSYNC = 0xc02069f8 - SIOCGETSGCNT = 0xc0207534 - SIOCGETVIFCNT = 0xc0287533 - SIOCGETVLAN = 0xc0206990 - SIOCGHIWAT = 0x40047301 - SIOCGIFADDR = 0xc0206921 - SIOCGIFASYNCMAP = 0xc020697c - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCONF = 0xc0106924 - SIOCGIFDATA = 0xc020691b - SIOCGIFDESCR = 0xc0206981 - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFGATTR = 0xc028698b - SIOCGIFGENERIC = 0xc020693a - SIOCGIFGMEMB = 0xc028698a - SIOCGIFGROUP = 0xc0286988 - SIOCGIFHARDMTU = 0xc02069a5 - SIOCGIFMEDIA = 0xc0306936 - SIOCGIFMETRIC = 0xc0206917 - SIOCGIFMTU = 0xc020697e - SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPDSTADDR = 0xc0206948 - SIOCGIFPRIORITY = 0xc020699c - SIOCGIFPSRCADDR = 0xc0206947 - SIOCGIFRDOMAIN = 0xc02069a0 - SIOCGIFRTLABEL = 0xc0206983 - SIOCGIFTIMESLOT = 0xc0206986 - SIOCGIFXFLAGS = 0xc020699e - SIOCGLIFADDR = 0xc218691d - SIOCGLIFPHYADDR = 0xc218694b - SIOCGLIFPHYRTABLE = 0xc02069a2 - SIOCGLIFPHYTTL = 0xc02069a9 - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCGSPPPPARAMS = 0xc0206994 - SIOCGVH = 0xc02069f6 - SIOCGVNETID = 0xc02069a7 - SIOCIFCREATE = 0x8020697a - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc0106978 - SIOCSETKALIVE = 0x801869a3 - SIOCSETLABEL = 0x80206999 - SIOCSETPFLOW = 0x802069fd - SIOCSETPFSYNC = 0x802069f7 - SIOCSETVLAN = 0x8020698f - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8020690c - SIOCSIFASYNCMAP = 0x8020697d - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFDESCR = 0x80206980 - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGATTR = 0x8028698c - SIOCSIFGENERIC = 0x80206939 - SIOCSIFLLADDR = 0x8020691f - SIOCSIFMEDIA = 0xc0206935 - SIOCSIFMETRIC = 0x80206918 - SIOCSIFMTU = 0x8020697f - SIOCSIFNETMASK = 0x80206916 - SIOCSIFPHYADDR = 0x80406946 - SIOCSIFPRIORITY = 0x8020699b - SIOCSIFRDOMAIN = 0x8020699f - SIOCSIFRTLABEL = 0x80206982 - SIOCSIFTIMESLOT = 0x80206985 - SIOCSIFXFLAGS = 0x8020699d - SIOCSLIFPHYADDR = 0x8218694a - SIOCSLIFPHYRTABLE = 0x802069a1 - SIOCSLIFPHYTTL = 0x802069a8 - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SIOCSSPPPPARAMS = 0x80206993 - SIOCSVH = 0xc02069f5 - SIOCSVNETID = 0x802069a6 - SOCK_DGRAM = 0x2 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_BINDANY = 0x1000 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_NETPROC = 0x1020 - SO_OOBINLINE = 0x100 - SO_PEERCRED = 0x1022 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_RTABLE = 0x1021 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_SPLICE = 0x1023 - SO_TIMESTAMP = 0x800 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - TCIFLUSH = 0x1 - TCIOFLUSH = 0x3 - TCOFLUSH = 0x2 - TCP_MAXBURST = 0x4 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_SACK = 0x3 - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0x4 - TCP_MSS = 0x200 - TCP_NODELAY = 0x1 - TCP_NOPUSH = 0x10 - TCP_NSTATES = 0xb - TCP_SACK_ENABLE = 0x8 - TCSAFLUSH = 0x2 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLAG_CLOCAL = 0x2 - TIOCFLAG_CRTSCTS = 0x4 - TIOCFLAG_MDMBUF = 0x8 - TIOCFLAG_PPS = 0x10 - TIOCFLAG_SOFTCAR = 0x1 - TIOCFLUSH = 0x80047410 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGFLAGS = 0x4004745d - TIOCGPGRP = 0x40047477 - TIOCGSID = 0x40047463 - TIOCGTSTAMP = 0x4010745b - TIOCGWINSZ = 0x40087468 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGET = 0x4004746a - TIOCMODG = 0x4004746a - TIOCMODS = 0x8004746d - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x20007471 - TIOCNXCL = 0x2000740e - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x80047470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCREMOTE = 0x80047469 - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSFLAGS = 0x8004745c - TIOCSIG = 0x8004745f - TIOCSPGRP = 0x80047476 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x80047465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSTSTAMP = 0x8008745a - TIOCSWINSZ = 0x80087467 - TIOCUCNTL = 0x80047466 - TOSTOP = 0x400000 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WALTSIG = 0x4 - WCONTINUED = 0x8 - WCOREFLAG = 0x80 - WNOHANG = 0x1 - WSTOPPED = 0x7f - WUNTRACED = 0x2 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x30) - EADDRNOTAVAIL = syscall.Errno(0x31) - EAFNOSUPPORT = syscall.Errno(0x2f) - EAGAIN = syscall.Errno(0x23) - EALREADY = syscall.Errno(0x25) - EAUTH = syscall.Errno(0x50) - EBADF = syscall.Errno(0x9) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x58) - ECHILD = syscall.Errno(0xa) - ECONNABORTED = syscall.Errno(0x35) - ECONNREFUSED = syscall.Errno(0x3d) - ECONNRESET = syscall.Errno(0x36) - EDEADLK = syscall.Errno(0xb) - EDESTADDRREQ = syscall.Errno(0x27) - EDOM = syscall.Errno(0x21) - EDQUOT = syscall.Errno(0x45) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EFTYPE = syscall.Errno(0x4f) - EHOSTDOWN = syscall.Errno(0x40) - EHOSTUNREACH = syscall.Errno(0x41) - EIDRM = syscall.Errno(0x59) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EIPSEC = syscall.Errno(0x52) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x5b) - ELOOP = syscall.Errno(0x3e) - EMEDIUMTYPE = syscall.Errno(0x56) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - ENAMETOOLONG = syscall.Errno(0x3f) - ENEEDAUTH = syscall.Errno(0x51) - ENETDOWN = syscall.Errno(0x32) - ENETRESET = syscall.Errno(0x34) - ENETUNREACH = syscall.Errno(0x33) - ENFILE = syscall.Errno(0x17) - ENOATTR = syscall.Errno(0x53) - ENOBUFS = syscall.Errno(0x37) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOMEDIUM = syscall.Errno(0x55) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x5a) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x5b) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x57) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x2e) - EPIPE = syscall.Errno(0x20) - EPROCLIM = syscall.Errno(0x43) - EPROCUNAVAIL = syscall.Errno(0x4c) - EPROGMISMATCH = syscall.Errno(0x4b) - EPROGUNAVAIL = syscall.Errno(0x4a) - EPROTONOSUPPORT = syscall.Errno(0x2b) - EPROTOTYPE = syscall.Errno(0x29) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x47) - EROFS = syscall.Errno(0x1e) - ERPCMISMATCH = syscall.Errno(0x49) - ESHUTDOWN = syscall.Errno(0x3a) - ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x46) - ETIMEDOUT = syscall.Errno(0x3c) - ETOOMANYREFS = syscall.Errno(0x3b) - ETXTBSY = syscall.Errno(0x1a) - EUSERS = syscall.Errno(0x44) - EWOULDBLOCK = syscall.Errno(0x23) - EXDEV = syscall.Errno(0x12) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x14) - SIGCONT = syscall.Signal(0x13) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINFO = syscall.Signal(0x1d) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x17) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) - SIGPROF = syscall.Signal(0x1b) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTHR = syscall.Signal(0x20) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x12) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x10) - SIGUSR1 = syscall.Signal(0x1e) - SIGUSR2 = syscall.Signal(0x1f) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errors = [...]string{ - 1: "operation not permitted", - 2: "no such file or directory", - 3: "no such process", - 4: "interrupted system call", - 5: "input/output error", - 6: "device not configured", - 7: "argument list too long", - 8: "exec format error", - 9: "bad file descriptor", - 10: "no child processes", - 11: "resource deadlock avoided", - 12: "cannot allocate memory", - 13: "permission denied", - 14: "bad address", - 15: "block device required", - 16: "device busy", - 17: "file exists", - 18: "cross-device link", - 19: "operation not supported by device", - 20: "not a directory", - 21: "is a directory", - 22: "invalid argument", - 23: "too many open files in system", - 24: "too many open files", - 25: "inappropriate ioctl for device", - 26: "text file busy", - 27: "file too large", - 28: "no space left on device", - 29: "illegal seek", - 30: "read-only file system", - 31: "too many links", - 32: "broken pipe", - 33: "numerical argument out of domain", - 34: "result too large", - 35: "resource temporarily unavailable", - 36: "operation now in progress", - 37: "operation already in progress", - 38: "socket operation on non-socket", - 39: "destination address required", - 40: "message too long", - 41: "protocol wrong type for socket", - 42: "protocol not available", - 43: "protocol not supported", - 44: "socket type not supported", - 45: "operation not supported", - 46: "protocol family not supported", - 47: "address family not supported by protocol family", - 48: "address already in use", - 49: "can't assign requested address", - 50: "network is down", - 51: "network is unreachable", - 52: "network dropped connection on reset", - 53: "software caused connection abort", - 54: "connection reset by peer", - 55: "no buffer space available", - 56: "socket is already connected", - 57: "socket is not connected", - 58: "can't send after socket shutdown", - 59: "too many references: can't splice", - 60: "connection timed out", - 61: "connection refused", - 62: "too many levels of symbolic links", - 63: "file name too long", - 64: "host is down", - 65: "no route to host", - 66: "directory not empty", - 67: "too many processes", - 68: "too many users", - 69: "disc quota exceeded", - 70: "stale NFS file handle", - 71: "too many levels of remote in path", - 72: "RPC struct is bad", - 73: "RPC version wrong", - 74: "RPC prog. not avail", - 75: "program version wrong", - 76: "bad procedure for program", - 77: "no locks available", - 78: "function not implemented", - 79: "inappropriate file type or format", - 80: "authentication error", - 81: "need authenticator", - 82: "IPsec processing failure", - 83: "attribute not found", - 84: "illegal byte sequence", - 85: "no medium found", - 86: "wrong medium type", - 87: "value too large to be stored in data type", - 88: "operation canceled", - 89: "identifier removed", - 90: "no message of desired type", - 91: "not supported", -} - -// Signal table -var signals = [...]string{ - 1: "hangup", - 2: "interrupt", - 3: "quit", - 4: "illegal instruction", - 5: "trace/BPT trap", - 6: "abort trap", - 7: "EMT trap", - 8: "floating point exception", - 9: "killed", - 10: "bus error", - 11: "segmentation fault", - 12: "bad system call", - 13: "broken pipe", - 14: "alarm clock", - 15: "terminated", - 16: "urgent I/O condition", - 17: "stopped (signal)", - 18: "stopped", - 19: "continued", - 20: "child exited", - 21: "stopped (tty input)", - 22: "stopped (tty output)", - 23: "I/O possible", - 24: "cputime limit exceeded", - 25: "filesize limit exceeded", - 26: "virtual timer expired", - 27: "profiling timer expired", - 28: "window size changes", - 29: "information request", - 30: "user defined signal 1", - 31: "user defined signal 2", - 32: "thread AST", -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go deleted file mode 100644 index 3ed0b26..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go +++ /dev/null @@ -1,1586 +0,0 @@ -// mkerrors.sh -// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT - -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs -- _const.go - -// +build arm,openbsd - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_BLUETOOTH = 0x20 - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_CNT = 0x15 - AF_COIP = 0x14 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_E164 = 0x1a - AF_ECMA = 0x8 - AF_ENCAP = 0x1c - AF_HYLINK = 0xf - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x18 - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_KEY = 0x1e - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x24 - AF_MPLS = 0x21 - AF_NATM = 0x1b - AF_NS = 0x6 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x11 - AF_SIP = 0x1d - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - ARPHRD_ETHER = 0x1 - ARPHRD_FRELAY = 0xf - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - B0 = 0x0 - B110 = 0x6e - B115200 = 0x1c200 - B1200 = 0x4b0 - B134 = 0x86 - B14400 = 0x3840 - B150 = 0x96 - B1800 = 0x708 - B19200 = 0x4b00 - B200 = 0xc8 - B230400 = 0x38400 - B2400 = 0x960 - B28800 = 0x7080 - B300 = 0x12c - B38400 = 0x9600 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B9600 = 0x2580 - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDIRFILT = 0x4004427c - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc008427b - BIOCGETIF = 0x4020426b - BIOCGFILDROP = 0x40044278 - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044273 - BIOCGRTIMEOUT = 0x400c426e - BIOCGSTATS = 0x4008426f - BIOCIMMEDIATE = 0x80044270 - BIOCLOCK = 0x20004276 - BIOCPROMISC = 0x20004269 - BIOCSBLEN = 0xc0044266 - BIOCSDIRFILT = 0x8004427d - BIOCSDLT = 0x8004427a - BIOCSETF = 0x80084267 - BIOCSETIF = 0x8020426c - BIOCSETWF = 0x80084277 - BIOCSFILDROP = 0x80044279 - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044272 - BIOCSRTIMEOUT = 0x800c426d - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIRECTION_IN = 0x1 - BPF_DIRECTION_OUT = 0x2 - BPF_DIV = 0x30 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXBUFSIZE = 0x200000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_OR = 0x40 - BPF_RELEASE = 0x30bb6 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BRKINT = 0x2 - CFLUSH = 0xf - CLOCAL = 0x8000 - CREAD = 0x800 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0xff - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_MAXNAME = 0xc - CTL_NET = 0x4 - DIOCOSFPFLUSH = 0x2000444e - DLT_ARCNET = 0x7 - DLT_ATM_RFC1483 = 0xb - DLT_AX25 = 0x3 - DLT_CHAOS = 0x5 - DLT_C_HDLC = 0x68 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0xd - DLT_FDDI = 0xa - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_LOOP = 0xc - DLT_MPLS = 0xdb - DLT_NULL = 0x0 - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0x10 - DLT_PPP_ETHER = 0x33 - DLT_PPP_SERIAL = 0x32 - DLT_PRONET = 0x4 - DLT_RAW = 0xe - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xf - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EMT_TAGOVF = 0x1 - EMUL_ENABLED = 0x1 - EMUL_NATIVE = 0x2 - ENDRUNDISC = 0x9 - ETHERMIN = 0x2e - ETHERMTU = 0x5dc - ETHERTYPE_8023 = 0x4 - ETHERTYPE_AARP = 0x80f3 - ETHERTYPE_ACCTON = 0x8390 - ETHERTYPE_AEONIC = 0x8036 - ETHERTYPE_ALPHA = 0x814a - ETHERTYPE_AMBER = 0x6008 - ETHERTYPE_AMOEBA = 0x8145 - ETHERTYPE_AOE = 0x88a2 - ETHERTYPE_APOLLO = 0x80f7 - ETHERTYPE_APOLLODOMAIN = 0x8019 - ETHERTYPE_APPLETALK = 0x809b - ETHERTYPE_APPLITEK = 0x80c7 - ETHERTYPE_ARGONAUT = 0x803a - ETHERTYPE_ARP = 0x806 - ETHERTYPE_AT = 0x809b - ETHERTYPE_ATALK = 0x809b - ETHERTYPE_ATOMIC = 0x86df - ETHERTYPE_ATT = 0x8069 - ETHERTYPE_ATTSTANFORD = 0x8008 - ETHERTYPE_AUTOPHON = 0x806a - ETHERTYPE_AXIS = 0x8856 - ETHERTYPE_BCLOOP = 0x9003 - ETHERTYPE_BOFL = 0x8102 - ETHERTYPE_CABLETRON = 0x7034 - ETHERTYPE_CHAOS = 0x804 - ETHERTYPE_COMDESIGN = 0x806c - ETHERTYPE_COMPUGRAPHIC = 0x806d - ETHERTYPE_COUNTERPOINT = 0x8062 - ETHERTYPE_CRONUS = 0x8004 - ETHERTYPE_CRONUSVLN = 0x8003 - ETHERTYPE_DCA = 0x1234 - ETHERTYPE_DDE = 0x807b - ETHERTYPE_DEBNI = 0xaaaa - ETHERTYPE_DECAM = 0x8048 - ETHERTYPE_DECCUST = 0x6006 - ETHERTYPE_DECDIAG = 0x6005 - ETHERTYPE_DECDNS = 0x803c - ETHERTYPE_DECDTS = 0x803e - ETHERTYPE_DECEXPER = 0x6000 - ETHERTYPE_DECLAST = 0x8041 - ETHERTYPE_DECLTM = 0x803f - ETHERTYPE_DECMUMPS = 0x6009 - ETHERTYPE_DECNETBIOS = 0x8040 - ETHERTYPE_DELTACON = 0x86de - ETHERTYPE_DIDDLE = 0x4321 - ETHERTYPE_DLOG1 = 0x660 - ETHERTYPE_DLOG2 = 0x661 - ETHERTYPE_DN = 0x6003 - ETHERTYPE_DOGFIGHT = 0x1989 - ETHERTYPE_DSMD = 0x8039 - ETHERTYPE_ECMA = 0x803 - ETHERTYPE_ENCRYPT = 0x803d - ETHERTYPE_ES = 0x805d - ETHERTYPE_EXCELAN = 0x8010 - ETHERTYPE_EXPERDATA = 0x8049 - ETHERTYPE_FLIP = 0x8146 - ETHERTYPE_FLOWCONTROL = 0x8808 - ETHERTYPE_FRARP = 0x808 - ETHERTYPE_GENDYN = 0x8068 - ETHERTYPE_HAYES = 0x8130 - ETHERTYPE_HIPPI_FP = 0x8180 - ETHERTYPE_HITACHI = 0x8820 - ETHERTYPE_HP = 0x8005 - ETHERTYPE_IEEEPUP = 0xa00 - ETHERTYPE_IEEEPUPAT = 0xa01 - ETHERTYPE_IMLBL = 0x4c42 - ETHERTYPE_IMLBLDIAG = 0x424c - ETHERTYPE_IP = 0x800 - ETHERTYPE_IPAS = 0x876c - ETHERTYPE_IPV6 = 0x86dd - ETHERTYPE_IPX = 0x8137 - ETHERTYPE_IPXNEW = 0x8037 - ETHERTYPE_KALPANA = 0x8582 - ETHERTYPE_LANBRIDGE = 0x8038 - ETHERTYPE_LANPROBE = 0x8888 - ETHERTYPE_LAT = 0x6004 - ETHERTYPE_LBACK = 0x9000 - ETHERTYPE_LITTLE = 0x8060 - ETHERTYPE_LLDP = 0x88cc - ETHERTYPE_LOGICRAFT = 0x8148 - ETHERTYPE_LOOPBACK = 0x9000 - ETHERTYPE_MATRA = 0x807a - ETHERTYPE_MAX = 0xffff - ETHERTYPE_MERIT = 0x807c - ETHERTYPE_MICP = 0x873a - ETHERTYPE_MOPDL = 0x6001 - ETHERTYPE_MOPRC = 0x6002 - ETHERTYPE_MOTOROLA = 0x818d - ETHERTYPE_MPLS = 0x8847 - ETHERTYPE_MPLS_MCAST = 0x8848 - ETHERTYPE_MUMPS = 0x813f - ETHERTYPE_NBPCC = 0x3c04 - ETHERTYPE_NBPCLAIM = 0x3c09 - ETHERTYPE_NBPCLREQ = 0x3c05 - ETHERTYPE_NBPCLRSP = 0x3c06 - ETHERTYPE_NBPCREQ = 0x3c02 - ETHERTYPE_NBPCRSP = 0x3c03 - ETHERTYPE_NBPDG = 0x3c07 - ETHERTYPE_NBPDGB = 0x3c08 - ETHERTYPE_NBPDLTE = 0x3c0a - ETHERTYPE_NBPRAR = 0x3c0c - ETHERTYPE_NBPRAS = 0x3c0b - ETHERTYPE_NBPRST = 0x3c0d - ETHERTYPE_NBPSCD = 0x3c01 - ETHERTYPE_NBPVCD = 0x3c00 - ETHERTYPE_NBS = 0x802 - ETHERTYPE_NCD = 0x8149 - ETHERTYPE_NESTAR = 0x8006 - ETHERTYPE_NETBEUI = 0x8191 - ETHERTYPE_NOVELL = 0x8138 - ETHERTYPE_NS = 0x600 - ETHERTYPE_NSAT = 0x601 - ETHERTYPE_NSCOMPAT = 0x807 - ETHERTYPE_NTRAILER = 0x10 - ETHERTYPE_OS9 = 0x7007 - ETHERTYPE_OS9NET = 0x7009 - ETHERTYPE_PACER = 0x80c6 - ETHERTYPE_PAE = 0x888e - ETHERTYPE_PCS = 0x4242 - ETHERTYPE_PLANNING = 0x8044 - ETHERTYPE_PPP = 0x880b - ETHERTYPE_PPPOE = 0x8864 - ETHERTYPE_PPPOEDISC = 0x8863 - ETHERTYPE_PRIMENTS = 0x7031 - ETHERTYPE_PUP = 0x200 - ETHERTYPE_PUPAT = 0x200 - ETHERTYPE_QINQ = 0x88a8 - ETHERTYPE_RACAL = 0x7030 - ETHERTYPE_RATIONAL = 0x8150 - ETHERTYPE_RAWFR = 0x6559 - ETHERTYPE_RCL = 0x1995 - ETHERTYPE_RDP = 0x8739 - ETHERTYPE_RETIX = 0x80f2 - ETHERTYPE_REVARP = 0x8035 - ETHERTYPE_SCA = 0x6007 - ETHERTYPE_SECTRA = 0x86db - ETHERTYPE_SECUREDATA = 0x876d - ETHERTYPE_SGITW = 0x817e - ETHERTYPE_SG_BOUNCE = 0x8016 - ETHERTYPE_SG_DIAG = 0x8013 - ETHERTYPE_SG_NETGAMES = 0x8014 - ETHERTYPE_SG_RESV = 0x8015 - ETHERTYPE_SIMNET = 0x5208 - ETHERTYPE_SLOW = 0x8809 - ETHERTYPE_SNA = 0x80d5 - ETHERTYPE_SNMP = 0x814c - ETHERTYPE_SONIX = 0xfaf5 - ETHERTYPE_SPIDER = 0x809f - ETHERTYPE_SPRITE = 0x500 - ETHERTYPE_STP = 0x8181 - ETHERTYPE_TALARIS = 0x812b - ETHERTYPE_TALARISMC = 0x852b - ETHERTYPE_TCPCOMP = 0x876b - ETHERTYPE_TCPSM = 0x9002 - ETHERTYPE_TEC = 0x814f - ETHERTYPE_TIGAN = 0x802f - ETHERTYPE_TRAIL = 0x1000 - ETHERTYPE_TRANSETHER = 0x6558 - ETHERTYPE_TYMSHARE = 0x802e - ETHERTYPE_UBBST = 0x7005 - ETHERTYPE_UBDEBUG = 0x900 - ETHERTYPE_UBDIAGLOOP = 0x7002 - ETHERTYPE_UBDL = 0x7000 - ETHERTYPE_UBNIU = 0x7001 - ETHERTYPE_UBNMC = 0x7003 - ETHERTYPE_VALID = 0x1600 - ETHERTYPE_VARIAN = 0x80dd - ETHERTYPE_VAXELN = 0x803b - ETHERTYPE_VEECO = 0x8067 - ETHERTYPE_VEXP = 0x805b - ETHERTYPE_VGLAB = 0x8131 - ETHERTYPE_VINES = 0xbad - ETHERTYPE_VINESECHO = 0xbaf - ETHERTYPE_VINESLOOP = 0xbae - ETHERTYPE_VITAL = 0xff00 - ETHERTYPE_VLAN = 0x8100 - ETHERTYPE_VLTLMAN = 0x8080 - ETHERTYPE_VPROD = 0x805c - ETHERTYPE_VURESERVED = 0x8147 - ETHERTYPE_WATERLOO = 0x8130 - ETHERTYPE_WELLFLEET = 0x8103 - ETHERTYPE_X25 = 0x805 - ETHERTYPE_X75 = 0x801 - ETHERTYPE_XNSSM = 0x9001 - ETHERTYPE_XTP = 0x817d - ETHER_ADDR_LEN = 0x6 - ETHER_ALIGN = 0x2 - ETHER_CRC_LEN = 0x4 - ETHER_CRC_POLY_BE = 0x4c11db6 - ETHER_CRC_POLY_LE = 0xedb88320 - ETHER_HDR_LEN = 0xe - ETHER_MAX_DIX_LEN = 0x600 - ETHER_MAX_LEN = 0x5ee - ETHER_MIN_LEN = 0x40 - ETHER_TYPE_LEN = 0x2 - ETHER_VLAN_ENCAP_LEN = 0x4 - EVFILT_AIO = -0x3 - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0x7 - EVFILT_TIMER = -0x7 - EVFILT_VNODE = -0x4 - EVFILT_WRITE = -0x2 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_ONESHOT = 0x10 - EV_SYSFLAGS = 0xf000 - EXTA = 0x4b00 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FLUSHO = 0x800000 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0xa - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0x7 - F_GETOWN = 0x5 - F_RDLCK = 0x1 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x8 - F_SETLKW = 0x9 - F_SETOWN = 0x6 - F_UNLCK = 0x2 - F_WRLCK = 0x3 - HUPCL = 0x4000 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFAN_ARRIVAL = 0x0 - IFAN_DEPARTURE = 0x1 - IFA_ROUTE = 0x1 - IFF_ALLMULTI = 0x200 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x8e52 - IFF_DEBUG = 0x4 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NOTRAILERS = 0x20 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_1822 = 0x2 - IFT_A12MPPSWITCH = 0x82 - IFT_AAL2 = 0xbb - IFT_AAL5 = 0x31 - IFT_ADSL = 0x5e - IFT_AFLANE8023 = 0x3b - IFT_AFLANE8025 = 0x3c - IFT_ARAP = 0x58 - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ASYNC = 0x54 - IFT_ATM = 0x25 - IFT_ATMDXI = 0x69 - IFT_ATMFUNI = 0x6a - IFT_ATMIMA = 0x6b - IFT_ATMLOGICAL = 0x50 - IFT_ATMRADIO = 0xbd - IFT_ATMSUBINTERFACE = 0x86 - IFT_ATMVCIENDPT = 0xc2 - IFT_ATMVIRTUAL = 0x95 - IFT_BGPPOLICYACCOUNTING = 0xa2 - IFT_BLUETOOTH = 0xf8 - IFT_BRIDGE = 0xd1 - IFT_BSC = 0x53 - IFT_CARP = 0xf7 - IFT_CCTEMUL = 0x3d - IFT_CEPT = 0x13 - IFT_CES = 0x85 - IFT_CHANNEL = 0x46 - IFT_CNR = 0x55 - IFT_COFFEE = 0x84 - IFT_COMPOSITELINK = 0x9b - IFT_DCN = 0x8d - IFT_DIGITALPOWERLINE = 0x8a - IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba - IFT_DLSW = 0x4a - IFT_DOCSCABLEDOWNSTREAM = 0x80 - IFT_DOCSCABLEMACLAYER = 0x7f - IFT_DOCSCABLEUPSTREAM = 0x81 - IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd - IFT_DS0 = 0x51 - IFT_DS0BUNDLE = 0x52 - IFT_DS1FDL = 0xaa - IFT_DS3 = 0x1e - IFT_DTM = 0x8c - IFT_DUMMY = 0xf1 - IFT_DVBASILN = 0xac - IFT_DVBASIOUT = 0xad - IFT_DVBRCCDOWNSTREAM = 0x93 - IFT_DVBRCCMACLAYER = 0x92 - IFT_DVBRCCUPSTREAM = 0x94 - IFT_ECONET = 0xce - IFT_ENC = 0xf4 - IFT_EON = 0x19 - IFT_EPLRS = 0x57 - IFT_ESCON = 0x49 - IFT_ETHER = 0x6 - IFT_FAITH = 0xf3 - IFT_FAST = 0x7d - IFT_FASTETHER = 0x3e - IFT_FASTETHERFX = 0x45 - IFT_FDDI = 0xf - IFT_FIBRECHANNEL = 0x38 - IFT_FRAMERELAYINTERCONNECT = 0x3a - IFT_FRAMERELAYMPI = 0x5c - IFT_FRDLCIENDPT = 0xc1 - IFT_FRELAY = 0x20 - IFT_FRELAYDCE = 0x2c - IFT_FRF16MFRBUNDLE = 0xa3 - IFT_FRFORWARD = 0x9e - IFT_G703AT2MB = 0x43 - IFT_G703AT64K = 0x42 - IFT_GIF = 0xf0 - IFT_GIGABITETHERNET = 0x75 - IFT_GR303IDT = 0xb2 - IFT_GR303RDT = 0xb1 - IFT_H323GATEKEEPER = 0xa4 - IFT_H323PROXY = 0xa5 - IFT_HDH1822 = 0x3 - IFT_HDLC = 0x76 - IFT_HDSL2 = 0xa8 - IFT_HIPERLAN2 = 0xb7 - IFT_HIPPI = 0x2f - IFT_HIPPIINTERFACE = 0x39 - IFT_HOSTPAD = 0x5a - IFT_HSSI = 0x2e - IFT_HY = 0xe - IFT_IBM370PARCHAN = 0x48 - IFT_IDSL = 0x9a - IFT_IEEE1394 = 0x90 - IFT_IEEE80211 = 0x47 - IFT_IEEE80212 = 0x37 - IFT_IEEE8023ADLAG = 0xa1 - IFT_IFGSN = 0x91 - IFT_IMT = 0xbe - IFT_INFINIBAND = 0xc7 - IFT_INTERLEAVE = 0x7c - IFT_IP = 0x7e - IFT_IPFORWARD = 0x8e - IFT_IPOVERATM = 0x72 - IFT_IPOVERCDLC = 0x6d - IFT_IPOVERCLAW = 0x6e - IFT_IPSWITCH = 0x4e - IFT_ISDN = 0x3f - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_ISDNS = 0x4b - IFT_ISDNU = 0x4c - IFT_ISO88022LLC = 0x29 - IFT_ISO88023 = 0x7 - IFT_ISO88024 = 0x8 - IFT_ISO88025 = 0x9 - IFT_ISO88025CRFPINT = 0x62 - IFT_ISO88025DTR = 0x56 - IFT_ISO88025FIBER = 0x73 - IFT_ISO88026 = 0xa - IFT_ISUP = 0xb3 - IFT_L2VLAN = 0x87 - IFT_L3IPVLAN = 0x88 - IFT_L3IPXVLAN = 0x89 - IFT_LAPB = 0x10 - IFT_LAPD = 0x4d - IFT_LAPF = 0x77 - IFT_LINEGROUP = 0xd2 - IFT_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - IFT_MEDIAMAILOVERIP = 0x8b - IFT_MFSIGLINK = 0xa7 - IFT_MIOX25 = 0x26 - IFT_MODEM = 0x30 - IFT_MPC = 0x71 - IFT_MPLS = 0xa6 - IFT_MPLSTUNNEL = 0x96 - IFT_MSDSL = 0x8f - IFT_MVL = 0xbf - IFT_MYRINET = 0x63 - IFT_NFAS = 0xaf - IFT_NSIP = 0x1b - IFT_OPTICALCHANNEL = 0xc3 - IFT_OPTICALTRANSPORT = 0xc4 - IFT_OTHER = 0x1 - IFT_P10 = 0xc - IFT_P80 = 0xd - IFT_PARA = 0x22 - IFT_PFLOG = 0xf5 - IFT_PFLOW = 0xf9 - IFT_PFSYNC = 0xf6 - IFT_PLC = 0xae - IFT_PON155 = 0xcf - IFT_PON622 = 0xd0 - IFT_POS = 0xab - IFT_PPP = 0x17 - IFT_PPPMULTILINKBUNDLE = 0x6c - IFT_PROPATM = 0xc5 - IFT_PROPBWAP2MP = 0xb8 - IFT_PROPCNLS = 0x59 - IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 - IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 - IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 - IFT_PROPMUX = 0x36 - IFT_PROPVIRTUAL = 0x35 - IFT_PROPWIRELESSP2P = 0x9d - IFT_PTPSERIAL = 0x16 - IFT_PVC = 0xf2 - IFT_Q2931 = 0xc9 - IFT_QLLC = 0x44 - IFT_RADIOMAC = 0xbc - IFT_RADSL = 0x5f - IFT_REACHDSL = 0xc0 - IFT_RFC1483 = 0x9f - IFT_RS232 = 0x21 - IFT_RSRB = 0x4f - IFT_SDLC = 0x11 - IFT_SDSL = 0x60 - IFT_SHDSL = 0xa9 - IFT_SIP = 0x1f - IFT_SIPSIG = 0xcc - IFT_SIPTG = 0xcb - IFT_SLIP = 0x1c - IFT_SMDSDXI = 0x2b - IFT_SMDSICIP = 0x34 - IFT_SONET = 0x27 - IFT_SONETOVERHEADCHANNEL = 0xb9 - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_SRP = 0x97 - IFT_SS7SIGLINK = 0x9c - IFT_STACKTOSTACK = 0x6f - IFT_STARLAN = 0xb - IFT_T1 = 0x12 - IFT_TDLC = 0x74 - IFT_TELINK = 0xc8 - IFT_TERMPAD = 0x5b - IFT_TR008 = 0xb0 - IFT_TRANSPHDLC = 0x7b - IFT_TUNNEL = 0x83 - IFT_ULTRA = 0x1d - IFT_USB = 0xa0 - IFT_V11 = 0x40 - IFT_V35 = 0x2d - IFT_V36 = 0x41 - IFT_V37 = 0x78 - IFT_VDSL = 0x61 - IFT_VIRTUALIPADDRESS = 0x70 - IFT_VIRTUALTG = 0xca - IFT_VOICEDID = 0xd5 - IFT_VOICEEM = 0x64 - IFT_VOICEEMFGD = 0xd3 - IFT_VOICEENCAP = 0x67 - IFT_VOICEFGDEANA = 0xd4 - IFT_VOICEFXO = 0x65 - IFT_VOICEFXS = 0x66 - IFT_VOICEOVERATM = 0x98 - IFT_VOICEOVERCABLE = 0xc6 - IFT_VOICEOVERFRAMERELAY = 0x99 - IFT_VOICEOVERIP = 0x68 - IFT_X213 = 0x5d - IFT_X25 = 0x5 - IFT_X25DDN = 0x4 - IFT_X25HUNTGROUP = 0x7a - IFT_X25MLP = 0x79 - IFT_X25PLE = 0x28 - IFT_XETHER = 0x1a - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLASSD_HOST = 0xfffffff - IN_CLASSD_NET = 0xf0000000 - IN_CLASSD_NSHIFT = 0x1c - IN_LOOPBACKNET = 0x7f - IN_RFC3021_HOST = 0x1 - IN_RFC3021_NET = 0xfffffffe - IN_RFC3021_NSHIFT = 0x1f - IPPROTO_AH = 0x33 - IPPROTO_CARP = 0x70 - IPPROTO_DIVERT = 0x102 - IPPROTO_DIVERT_INIT = 0x2 - IPPROTO_DIVERT_RESP = 0x1 - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPIP = 0x4 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MAX = 0x100 - IPPROTO_MAXID = 0x103 - IPPROTO_MOBILE = 0x37 - IPPROTO_MPLS = 0x89 - IPPROTO_NONE = 0x3b - IPPROTO_PFSYNC = 0xf0 - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPV6_AUTH_LEVEL = 0x35 - IPV6_AUTOFLOWLABEL = 0x3b - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_ESP_NETWORK_LEVEL = 0x37 - IPV6_ESP_TRANS_LEVEL = 0x36 - IPV6_FAITH = 0x1d - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FRAGTTL = 0x78 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_IPCOMP_LEVEL = 0x3c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXPACKET = 0xffff - IPV6_MMTU = 0x500 - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_OPTIONS = 0x1 - IPV6_PATHMTU = 0x2c - IPV6_PIPEX = 0x3f - IPV6_PKTINFO = 0x2e - IPV6_PORTRANGE = 0xe - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVDSTPORT = 0x40 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - IPV6_RTABLE = 0x1021 - IPV6_RTHDR = 0x33 - IPV6_RTHDRDSTOPTS = 0x23 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_SOCKOPT_RESERVED1 = 0x3 - IPV6_TCLASS = 0x3d - IPV6_UNICAST_HOPS = 0x4 - IPV6_USE_MIN_MTU = 0x2a - IPV6_V6ONLY = 0x1b - IPV6_VERSION = 0x60 - IPV6_VERSION_MASK = 0xf0 - IP_ADD_MEMBERSHIP = 0xc - IP_AUTH_LEVEL = 0x14 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DIVERTFL = 0x1022 - IP_DROP_MEMBERSHIP = 0xd - IP_ESP_NETWORK_LEVEL = 0x16 - IP_ESP_TRANS_LEVEL = 0x15 - IP_HDRINCL = 0x2 - IP_IPCOMP_LEVEL = 0x1d - IP_IPSECFLOWINFO = 0x24 - IP_IPSEC_LOCAL_AUTH = 0x1b - IP_IPSEC_LOCAL_CRED = 0x19 - IP_IPSEC_LOCAL_ID = 0x17 - IP_IPSEC_REMOTE_AUTH = 0x1c - IP_IPSEC_REMOTE_CRED = 0x1a - IP_IPSEC_REMOTE_ID = 0x18 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0xfff - IP_MF = 0x2000 - IP_MINTTL = 0x20 - IP_MIN_MEMBERSHIPS = 0xf - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x1 - IP_PIPEX = 0x22 - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVDSTPORT = 0x21 - IP_RECVIF = 0x1e - IP_RECVOPTS = 0x5 - IP_RECVRETOPTS = 0x6 - IP_RECVRTABLE = 0x23 - IP_RECVTTL = 0x1f - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_RTABLE = 0x1021 - IP_TOS = 0x3 - IP_TTL = 0x4 - ISIG = 0x80 - ISTRIP = 0x20 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - LCNT_OVERLOAD_FLUSH = 0x6 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x6 - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_SPACEAVAIL = 0x5 - MADV_WILLNEED = 0x3 - MAP_ANON = 0x1000 - MAP_ANONYMOUS = 0x1000 - MAP_COPY = 0x2 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_FLAGMASK = 0x3ff7 - MAP_HASSEMAPHORE = 0x0 - MAP_INHERIT = 0x0 - MAP_INHERIT_COPY = 0x1 - MAP_INHERIT_NONE = 0x2 - MAP_INHERIT_SHARE = 0x0 - MAP_INHERIT_ZERO = 0x3 - MAP_NOEXTEND = 0x0 - MAP_NORESERVE = 0x0 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x0 - MAP_SHARED = 0x1 - MAP_TRYFIXED = 0x0 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MSG_BCAST = 0x100 - MSG_CMSG_CLOEXEC = 0x800 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOR = 0x8 - MSG_MCAST = 0x200 - MSG_NOSIGNAL = 0x400 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x4 - MS_SYNC = 0x2 - NAME_MAX = 0xff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x3 - NET_RT_MAXID = 0x6 - NET_RT_STATS = 0x4 - NET_RT_TABLE = 0x5 - NOFLSH = 0x80000000 - NOTE_ATTRIB = 0x8 - NOTE_CHILD = 0x4 - NOTE_DELETE = 0x1 - NOTE_EOF = 0x2 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXTEND = 0x4 - NOTE_FORK = 0x40000000 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_PCTRLMASK = 0xf0000000 - NOTE_PDATAMASK = 0xfffff - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_TRUNCATE = 0x80 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - ONLCR = 0x2 - ONLRET = 0x80 - ONOCR = 0x40 - ONOEOT = 0x8 - OPOST = 0x1 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x10000 - O_CREAT = 0x200 - O_DIRECTORY = 0x20000 - O_DSYNC = 0x80 - O_EXCL = 0x800 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x80 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PF_FLUSH = 0x1 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_NOFILE = 0x8 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0x7fffffffffffffff - RTAX_AUTHOR = 0x6 - RTAX_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_LABEL = 0xa - RTAX_MAX = 0xb - RTAX_NETMASK = 0x2 - RTAX_SRC = 0x8 - RTAX_SRCMASK = 0x9 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_LABEL = 0x400 - RTA_NETMASK = 0x4 - RTA_SRC = 0x100 - RTA_SRCMASK = 0x200 - RTF_ANNOUNCE = 0x4000 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_CLONED = 0x10000 - RTF_CLONING = 0x100 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_FMASK = 0x70f808 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MASK = 0x80 - RTF_MODIFIED = 0x20 - RTF_MPATH = 0x40000 - RTF_MPLS = 0x100000 - RTF_PERMANENT_ARP = 0x2000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x2000 - RTF_REJECT = 0x8 - RTF_STATIC = 0x800 - RTF_UP = 0x1 - RTF_USETRAILERS = 0x8000 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_DESYNC = 0x10 - RTM_GET = 0x4 - RTM_IFANNOUNCE = 0xf - RTM_IFINFO = 0xe - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MAXSIZE = 0x800 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 - RTM_VERSION = 0x5 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RT_TABLEID_MAX = 0xff - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x4 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCAIFGROUP = 0x80246987 - SIOCALIFADDR = 0x8218691c - SIOCATMARK = 0x40047307 - SIOCBRDGADD = 0x8054693c - SIOCBRDGADDS = 0x80546941 - SIOCBRDGARL = 0x806e694d - SIOCBRDGDADDR = 0x81286947 - SIOCBRDGDEL = 0x8054693d - SIOCBRDGDELS = 0x80546942 - SIOCBRDGFLUSH = 0x80546948 - SIOCBRDGFRL = 0x806e694e - SIOCBRDGGCACHE = 0xc0146941 - SIOCBRDGGFD = 0xc0146952 - SIOCBRDGGHT = 0xc0146951 - SIOCBRDGGIFFLGS = 0xc054693e - SIOCBRDGGMA = 0xc0146953 - SIOCBRDGGPARAM = 0xc03c6958 - SIOCBRDGGPRI = 0xc0146950 - SIOCBRDGGRL = 0xc028694f - SIOCBRDGGSIFS = 0xc054693c - SIOCBRDGGTO = 0xc0146946 - SIOCBRDGIFS = 0xc0546942 - SIOCBRDGRTS = 0xc0186943 - SIOCBRDGSADDR = 0xc1286944 - SIOCBRDGSCACHE = 0x80146940 - SIOCBRDGSFD = 0x80146952 - SIOCBRDGSHT = 0x80146951 - SIOCBRDGSIFCOST = 0x80546955 - SIOCBRDGSIFFLGS = 0x8054693f - SIOCBRDGSIFPRIO = 0x80546954 - SIOCBRDGSMA = 0x80146953 - SIOCBRDGSPRI = 0x80146950 - SIOCBRDGSPROTO = 0x8014695a - SIOCBRDGSTO = 0x80146945 - SIOCBRDGSTXHC = 0x80146959 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFGROUP = 0x80246989 - SIOCDIFPHYADDR = 0x80206949 - SIOCDLIFADDR = 0x8218691e - SIOCGETKALIVE = 0xc01869a4 - SIOCGETLABEL = 0x8020699a - SIOCGETPFLOW = 0xc02069fe - SIOCGETPFSYNC = 0xc02069f8 - SIOCGETSGCNT = 0xc0147534 - SIOCGETVIFCNT = 0xc0147533 - SIOCGETVLAN = 0xc0206990 - SIOCGHIWAT = 0x40047301 - SIOCGIFADDR = 0xc0206921 - SIOCGIFASYNCMAP = 0xc020697c - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCONF = 0xc0086924 - SIOCGIFDATA = 0xc020691b - SIOCGIFDESCR = 0xc0206981 - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFGATTR = 0xc024698b - SIOCGIFGENERIC = 0xc020693a - SIOCGIFGMEMB = 0xc024698a - SIOCGIFGROUP = 0xc0246988 - SIOCGIFHARDMTU = 0xc02069a5 - SIOCGIFMEDIA = 0xc0286936 - SIOCGIFMETRIC = 0xc0206917 - SIOCGIFMTU = 0xc020697e - SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPDSTADDR = 0xc0206948 - SIOCGIFPRIORITY = 0xc020699c - SIOCGIFPSRCADDR = 0xc0206947 - SIOCGIFRDOMAIN = 0xc02069a0 - SIOCGIFRTLABEL = 0xc0206983 - SIOCGIFRXR = 0x802069aa - SIOCGIFTIMESLOT = 0xc0206986 - SIOCGIFXFLAGS = 0xc020699e - SIOCGLIFADDR = 0xc218691d - SIOCGLIFPHYADDR = 0xc218694b - SIOCGLIFPHYRTABLE = 0xc02069a2 - SIOCGLIFPHYTTL = 0xc02069a9 - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCGSPPPPARAMS = 0xc0206994 - SIOCGVH = 0xc02069f6 - SIOCGVNETID = 0xc02069a7 - SIOCIFCREATE = 0x8020697a - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc00c6978 - SIOCSETKALIVE = 0x801869a3 - SIOCSETLABEL = 0x80206999 - SIOCSETPFLOW = 0x802069fd - SIOCSETPFSYNC = 0x802069f7 - SIOCSETVLAN = 0x8020698f - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8020690c - SIOCSIFASYNCMAP = 0x8020697d - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFDESCR = 0x80206980 - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGATTR = 0x8024698c - SIOCSIFGENERIC = 0x80206939 - SIOCSIFLLADDR = 0x8020691f - SIOCSIFMEDIA = 0xc0206935 - SIOCSIFMETRIC = 0x80206918 - SIOCSIFMTU = 0x8020697f - SIOCSIFNETMASK = 0x80206916 - SIOCSIFPHYADDR = 0x80406946 - SIOCSIFPRIORITY = 0x8020699b - SIOCSIFRDOMAIN = 0x8020699f - SIOCSIFRTLABEL = 0x80206982 - SIOCSIFTIMESLOT = 0x80206985 - SIOCSIFXFLAGS = 0x8020699d - SIOCSLIFPHYADDR = 0x8218694a - SIOCSLIFPHYRTABLE = 0x802069a1 - SIOCSLIFPHYTTL = 0x802069a8 - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SIOCSSPPPPARAMS = 0x80206993 - SIOCSVH = 0xc02069f5 - SIOCSVNETID = 0x802069a6 - SOCK_CLOEXEC = 0x8000 - SOCK_DGRAM = 0x2 - SOCK_NONBLOCK = 0x4000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_BINDANY = 0x1000 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_NETPROC = 0x1020 - SO_OOBINLINE = 0x100 - SO_PEERCRED = 0x1022 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_RTABLE = 0x1021 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_SPLICE = 0x1023 - SO_TIMESTAMP = 0x800 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - TCIFLUSH = 0x1 - TCIOFLUSH = 0x3 - TCOFLUSH = 0x2 - TCP_MAXBURST = 0x4 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_SACK = 0x3 - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0x4 - TCP_MSS = 0x200 - TCP_NODELAY = 0x1 - TCP_NOPUSH = 0x10 - TCP_NSTATES = 0xb - TCP_SACK_ENABLE = 0x8 - TCSAFLUSH = 0x2 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLAG_CLOCAL = 0x2 - TIOCFLAG_CRTSCTS = 0x4 - TIOCFLAG_MDMBUF = 0x8 - TIOCFLAG_PPS = 0x10 - TIOCFLAG_SOFTCAR = 0x1 - TIOCFLUSH = 0x80047410 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGFLAGS = 0x4004745d - TIOCGPGRP = 0x40047477 - TIOCGSID = 0x40047463 - TIOCGTSTAMP = 0x400c745b - TIOCGWINSZ = 0x40087468 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGET = 0x4004746a - TIOCMODG = 0x4004746a - TIOCMODS = 0x8004746d - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x20007471 - TIOCNXCL = 0x2000740e - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x80047470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCREMOTE = 0x80047469 - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSFLAGS = 0x8004745c - TIOCSIG = 0x8004745f - TIOCSPGRP = 0x80047476 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x80047465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSTSTAMP = 0x8008745a - TIOCSWINSZ = 0x80087467 - TIOCUCNTL = 0x80047466 - TOSTOP = 0x400000 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WALTSIG = 0x4 - WCONTINUED = 0x8 - WCOREFLAG = 0x80 - WNOHANG = 0x1 - WUNTRACED = 0x2 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x30) - EADDRNOTAVAIL = syscall.Errno(0x31) - EAFNOSUPPORT = syscall.Errno(0x2f) - EAGAIN = syscall.Errno(0x23) - EALREADY = syscall.Errno(0x25) - EAUTH = syscall.Errno(0x50) - EBADF = syscall.Errno(0x9) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x58) - ECHILD = syscall.Errno(0xa) - ECONNABORTED = syscall.Errno(0x35) - ECONNREFUSED = syscall.Errno(0x3d) - ECONNRESET = syscall.Errno(0x36) - EDEADLK = syscall.Errno(0xb) - EDESTADDRREQ = syscall.Errno(0x27) - EDOM = syscall.Errno(0x21) - EDQUOT = syscall.Errno(0x45) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EFTYPE = syscall.Errno(0x4f) - EHOSTDOWN = syscall.Errno(0x40) - EHOSTUNREACH = syscall.Errno(0x41) - EIDRM = syscall.Errno(0x59) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EIPSEC = syscall.Errno(0x52) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x5b) - ELOOP = syscall.Errno(0x3e) - EMEDIUMTYPE = syscall.Errno(0x56) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - ENAMETOOLONG = syscall.Errno(0x3f) - ENEEDAUTH = syscall.Errno(0x51) - ENETDOWN = syscall.Errno(0x32) - ENETRESET = syscall.Errno(0x34) - ENETUNREACH = syscall.Errno(0x33) - ENFILE = syscall.Errno(0x17) - ENOATTR = syscall.Errno(0x53) - ENOBUFS = syscall.Errno(0x37) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOMEDIUM = syscall.Errno(0x55) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x5a) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x5b) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x57) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x2e) - EPIPE = syscall.Errno(0x20) - EPROCLIM = syscall.Errno(0x43) - EPROCUNAVAIL = syscall.Errno(0x4c) - EPROGMISMATCH = syscall.Errno(0x4b) - EPROGUNAVAIL = syscall.Errno(0x4a) - EPROTONOSUPPORT = syscall.Errno(0x2b) - EPROTOTYPE = syscall.Errno(0x29) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x47) - EROFS = syscall.Errno(0x1e) - ERPCMISMATCH = syscall.Errno(0x49) - ESHUTDOWN = syscall.Errno(0x3a) - ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x46) - ETIMEDOUT = syscall.Errno(0x3c) - ETOOMANYREFS = syscall.Errno(0x3b) - ETXTBSY = syscall.Errno(0x1a) - EUSERS = syscall.Errno(0x44) - EWOULDBLOCK = syscall.Errno(0x23) - EXDEV = syscall.Errno(0x12) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x14) - SIGCONT = syscall.Signal(0x13) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINFO = syscall.Signal(0x1d) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x17) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) - SIGPROF = syscall.Signal(0x1b) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTHR = syscall.Signal(0x20) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x12) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x10) - SIGUSR1 = syscall.Signal(0x1e) - SIGUSR2 = syscall.Signal(0x1f) - SIGVTALRM = syscall.Signal(0x1a) - SIGWINCH = syscall.Signal(0x1c) - SIGXCPU = syscall.Signal(0x18) - SIGXFSZ = syscall.Signal(0x19) -) - -// Error table -var errors = [...]string{ - 1: "operation not permitted", - 2: "no such file or directory", - 3: "no such process", - 4: "interrupted system call", - 5: "input/output error", - 6: "device not configured", - 7: "argument list too long", - 8: "exec format error", - 9: "bad file descriptor", - 10: "no child processes", - 11: "resource deadlock avoided", - 12: "cannot allocate memory", - 13: "permission denied", - 14: "bad address", - 15: "block device required", - 16: "device busy", - 17: "file exists", - 18: "cross-device link", - 19: "operation not supported by device", - 20: "not a directory", - 21: "is a directory", - 22: "invalid argument", - 23: "too many open files in system", - 24: "too many open files", - 25: "inappropriate ioctl for device", - 26: "text file busy", - 27: "file too large", - 28: "no space left on device", - 29: "illegal seek", - 30: "read-only file system", - 31: "too many links", - 32: "broken pipe", - 33: "numerical argument out of domain", - 34: "result too large", - 35: "resource temporarily unavailable", - 36: "operation now in progress", - 37: "operation already in progress", - 38: "socket operation on non-socket", - 39: "destination address required", - 40: "message too long", - 41: "protocol wrong type for socket", - 42: "protocol not available", - 43: "protocol not supported", - 44: "socket type not supported", - 45: "operation not supported", - 46: "protocol family not supported", - 47: "address family not supported by protocol family", - 48: "address already in use", - 49: "can't assign requested address", - 50: "network is down", - 51: "network is unreachable", - 52: "network dropped connection on reset", - 53: "software caused connection abort", - 54: "connection reset by peer", - 55: "no buffer space available", - 56: "socket is already connected", - 57: "socket is not connected", - 58: "can't send after socket shutdown", - 59: "too many references: can't splice", - 60: "connection timed out", - 61: "connection refused", - 62: "too many levels of symbolic links", - 63: "file name too long", - 64: "host is down", - 65: "no route to host", - 66: "directory not empty", - 67: "too many processes", - 68: "too many users", - 69: "disc quota exceeded", - 70: "stale NFS file handle", - 71: "too many levels of remote in path", - 72: "RPC struct is bad", - 73: "RPC version wrong", - 74: "RPC prog. not avail", - 75: "program version wrong", - 76: "bad procedure for program", - 77: "no locks available", - 78: "function not implemented", - 79: "inappropriate file type or format", - 80: "authentication error", - 81: "need authenticator", - 82: "IPsec processing failure", - 83: "attribute not found", - 84: "illegal byte sequence", - 85: "no medium found", - 86: "wrong medium type", - 87: "value too large to be stored in data type", - 88: "operation canceled", - 89: "identifier removed", - 90: "no message of desired type", - 91: "not supported", -} - -// Signal table -var signals = [...]string{ - 1: "hangup", - 2: "interrupt", - 3: "quit", - 4: "illegal instruction", - 5: "trace/BPT trap", - 6: "abort trap", - 7: "EMT trap", - 8: "floating point exception", - 9: "killed", - 10: "bus error", - 11: "segmentation fault", - 12: "bad system call", - 13: "broken pipe", - 14: "alarm clock", - 15: "terminated", - 16: "urgent I/O condition", - 17: "stopped (signal)", - 18: "stopped", - 19: "continued", - 20: "child exited", - 21: "stopped (tty input)", - 22: "stopped (tty output)", - 23: "I/O possible", - 24: "cputime limit exceeded", - 25: "filesize limit exceeded", - 26: "virtual timer expired", - 27: "profiling timer expired", - 28: "window size changes", - 29: "information request", - 30: "user defined signal 1", - 31: "user defined signal 2", - 32: "thread AST", -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go deleted file mode 100644 index 81e83d7..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go +++ /dev/null @@ -1,1483 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build amd64,solaris - -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs -- -m64 _const.go - -package unix - -import "syscall" - -const ( - AF_802 = 0x12 - AF_APPLETALK = 0x10 - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_ECMA = 0x8 - AF_FILE = 0x1 - AF_GOSIP = 0x16 - AF_HYLINK = 0xf - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x1a - AF_INET_OFFLOAD = 0x1e - AF_IPX = 0x17 - AF_KEY = 0x1b - AF_LAT = 0xe - AF_LINK = 0x19 - AF_LOCAL = 0x1 - AF_MAX = 0x20 - AF_NBS = 0x7 - AF_NCA = 0x1c - AF_NIT = 0x11 - AF_NS = 0x6 - AF_OSI = 0x13 - AF_OSINET = 0x15 - AF_PACKET = 0x20 - AF_POLICY = 0x1d - AF_PUP = 0x4 - AF_ROUTE = 0x18 - AF_SNA = 0xb - AF_TRILL = 0x1f - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_X25 = 0x14 - ARPHRD_ARCNET = 0x7 - ARPHRD_ATM = 0x10 - ARPHRD_AX25 = 0x3 - ARPHRD_CHAOS = 0x5 - ARPHRD_EETHER = 0x2 - ARPHRD_ETHER = 0x1 - ARPHRD_FC = 0x12 - ARPHRD_FRAME = 0xf - ARPHRD_HDLC = 0x11 - ARPHRD_IB = 0x20 - ARPHRD_IEEE802 = 0x6 - ARPHRD_IPATM = 0x13 - ARPHRD_METRICOM = 0x17 - ARPHRD_TUNNEL = 0x1f - B0 = 0x0 - B110 = 0x3 - B115200 = 0x12 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B153600 = 0x13 - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B230400 = 0x14 - B2400 = 0xb - B300 = 0x7 - B307200 = 0x15 - B38400 = 0xf - B460800 = 0x16 - B4800 = 0xc - B50 = 0x1 - B57600 = 0x10 - B600 = 0x8 - B75 = 0x2 - B76800 = 0x11 - B921600 = 0x17 - B9600 = 0xd - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = -0x3fefbd89 - BIOCGDLTLIST32 = -0x3ff7bd89 - BIOCGETIF = 0x4020426b - BIOCGETLIF = 0x4078426b - BIOCGHDRCMPLT = 0x40044274 - BIOCGRTIMEOUT = 0x4010427b - BIOCGRTIMEOUT32 = 0x4008427b - BIOCGSEESENT = 0x40044278 - BIOCGSTATS = 0x4080426f - BIOCGSTATSOLD = 0x4008426f - BIOCIMMEDIATE = -0x7ffbbd90 - BIOCPROMISC = 0x20004269 - BIOCSBLEN = -0x3ffbbd9a - BIOCSDLT = -0x7ffbbd8a - BIOCSETF = -0x7fefbd99 - BIOCSETF32 = -0x7ff7bd99 - BIOCSETIF = -0x7fdfbd94 - BIOCSETLIF = -0x7f87bd94 - BIOCSHDRCMPLT = -0x7ffbbd8b - BIOCSRTIMEOUT = -0x7fefbd86 - BIOCSRTIMEOUT32 = -0x7ff7bd86 - BIOCSSEESENT = -0x7ffbbd87 - BIOCSTCPF = -0x7fefbd8e - BIOCSUDPF = -0x7fefbd8d - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DFLTBUFSIZE = 0x100000 - BPF_DIV = 0x30 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXBUFSIZE = 0x1000000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_OR = 0x40 - BPF_RELEASE = 0x30bb6 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x2000 - BSDLY = 0x2000 - CBAUD = 0xf - CFLUSH = 0xf - CIBAUD = 0xf0000 - CLOCAL = 0x800 - CLOCK_HIGHRES = 0x4 - CLOCK_LEVEL = 0xa - CLOCK_MONOTONIC = 0x4 - CLOCK_PROCESS_CPUTIME_ID = 0x5 - CLOCK_PROF = 0x2 - CLOCK_REALTIME = 0x3 - CLOCK_THREAD_CPUTIME_ID = 0x2 - CLOCK_VIRTUAL = 0x1 - CR0 = 0x0 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRDLY = 0x600 - CREAD = 0x80 - CRTSCTS = 0x80000000 - CS5 = 0x0 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIZE = 0x30 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x40 - CSUSP = 0x1a - CSWTCH = 0x1a - DLT_AIRONET_HEADER = 0x78 - DLT_APPLE_IP_OVER_IEEE1394 = 0x8a - DLT_ARCNET = 0x7 - DLT_ARCNET_LINUX = 0x81 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_BACNET_MS_TP = 0xa5 - DLT_CHAOS = 0x5 - DLT_CISCO_IOS = 0x76 - DLT_C_HDLC = 0x68 - DLT_DOCSIS = 0x8f - DLT_ECONET = 0x73 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_ERF_ETH = 0xaf - DLT_ERF_POS = 0xb0 - DLT_FDDI = 0xa - DLT_FRELAY = 0x6b - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_HDLC = 0x10 - DLT_HHDLC = 0x79 - DLT_HIPPI = 0xf - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_IPNET = 0xe2 - DLT_IPOIB = 0xa2 - DLT_IP_OVER_FC = 0x7a - DLT_JUNIPER_ATM1 = 0x89 - DLT_JUNIPER_ATM2 = 0x87 - DLT_JUNIPER_CHDLC = 0xb5 - DLT_JUNIPER_ES = 0x84 - DLT_JUNIPER_ETHER = 0xb2 - DLT_JUNIPER_FRELAY = 0xb4 - DLT_JUNIPER_GGSN = 0x85 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - DLT_JUNIPER_PPPOE = 0xa7 - DLT_JUNIPER_PPPOE_ATM = 0xa8 - DLT_JUNIPER_SERVICES = 0x88 - DLT_LINUX_IRDA = 0x90 - DLT_LINUX_LAPD = 0xb1 - DLT_LINUX_SLL = 0x71 - DLT_LOOP = 0x6c - DLT_LTALK = 0x72 - DLT_MTP2 = 0x8c - DLT_MTP2_WITH_PHDR = 0x8b - DLT_MTP3 = 0x8d - DLT_NULL = 0x0 - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0xe - DLT_PPP_PPPD = 0xa6 - DLT_PRISM_HEADER = 0x77 - DLT_PRONET = 0x4 - DLT_RAW = 0xc - DLT_RAWAF_MASK = 0x2240000 - DLT_RIO = 0x7c - DLT_SCCP = 0x8e - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xd - DLT_SUNATM = 0x7b - DLT_SYMANTEC_FIREWALL = 0x63 - DLT_TZSP = 0x80 - ECHO = 0x8 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EMPTY_SET = 0x0 - EMT_CPCOVF = 0x1 - EQUALITY_CHECK = 0x0 - EXTA = 0xe - EXTB = 0xf - FD_CLOEXEC = 0x1 - FD_NFDBITS = 0x40 - FD_SETSIZE = 0x10000 - FF0 = 0x0 - FF1 = 0x8000 - FFDLY = 0x8000 - FLUSHALL = 0x1 - FLUSHDATA = 0x0 - FLUSHO = 0x2000 - F_ALLOCSP = 0xa - F_ALLOCSP64 = 0xa - F_BADFD = 0x2e - F_BLKSIZE = 0x13 - F_BLOCKS = 0x12 - F_CHKFL = 0x8 - F_COMPAT = 0x8 - F_DUP2FD = 0x9 - F_DUP2FD_CLOEXEC = 0x24 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x25 - F_FLOCK = 0x35 - F_FLOCK64 = 0x35 - F_FLOCKW = 0x36 - F_FLOCKW64 = 0x36 - F_FREESP = 0xb - F_FREESP64 = 0xb - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0xe - F_GETLK64 = 0xe - F_GETOWN = 0x17 - F_GETXFL = 0x2d - F_HASREMOTELOCKS = 0x1a - F_ISSTREAM = 0xd - F_MANDDNY = 0x10 - F_MDACC = 0x20 - F_NODNY = 0x0 - F_NPRIV = 0x10 - F_OFD_GETLK = 0x2f - F_OFD_GETLK64 = 0x2f - F_OFD_SETLK = 0x30 - F_OFD_SETLK64 = 0x30 - F_OFD_SETLKW = 0x31 - F_OFD_SETLKW64 = 0x31 - F_PRIV = 0xf - F_QUOTACTL = 0x11 - F_RDACC = 0x1 - F_RDDNY = 0x1 - F_RDLCK = 0x1 - F_REVOKE = 0x19 - F_RMACC = 0x4 - F_RMDNY = 0x4 - F_RWACC = 0x3 - F_RWDNY = 0x3 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x6 - F_SETLK64 = 0x6 - F_SETLK64_NBMAND = 0x2a - F_SETLKW = 0x7 - F_SETLKW64 = 0x7 - F_SETLK_NBMAND = 0x2a - F_SETOWN = 0x18 - F_SHARE = 0x28 - F_SHARE_NBMAND = 0x2b - F_UNLCK = 0x3 - F_UNLKSYS = 0x4 - F_UNSHARE = 0x29 - F_WRACC = 0x2 - F_WRDNY = 0x2 - F_WRLCK = 0x2 - HUPCL = 0x400 - IBSHIFT = 0x10 - ICANON = 0x2 - ICRNL = 0x100 - IEXTEN = 0x8000 - IFF_ADDRCONF = 0x80000 - IFF_ALLMULTI = 0x200 - IFF_ANYCAST = 0x400000 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x7f203003b5a - IFF_COS_ENABLED = 0x200000000 - IFF_DEBUG = 0x4 - IFF_DEPRECATED = 0x40000 - IFF_DHCPRUNNING = 0x4000 - IFF_DUPLICATE = 0x4000000000 - IFF_FAILED = 0x10000000 - IFF_FIXEDMTU = 0x1000000000 - IFF_INACTIVE = 0x40000000 - IFF_INTELLIGENT = 0x400 - IFF_IPMP = 0x8000000000 - IFF_IPMP_CANTCHANGE = 0x10000000 - IFF_IPMP_INVALID = 0x1ec200080 - IFF_IPV4 = 0x1000000 - IFF_IPV6 = 0x2000000 - IFF_L3PROTECT = 0x40000000000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x800 - IFF_MULTI_BCAST = 0x1000 - IFF_NOACCEPT = 0x4000000 - IFF_NOARP = 0x80 - IFF_NOFAILOVER = 0x8000000 - IFF_NOLINKLOCAL = 0x20000000000 - IFF_NOLOCAL = 0x20000 - IFF_NONUD = 0x200000 - IFF_NORTEXCH = 0x800000 - IFF_NOTRAILERS = 0x20 - IFF_NOXMIT = 0x10000 - IFF_OFFLINE = 0x80000000 - IFF_POINTOPOINT = 0x10 - IFF_PREFERRED = 0x400000000 - IFF_PRIVATE = 0x8000 - IFF_PROMISC = 0x100 - IFF_ROUTER = 0x100000 - IFF_RUNNING = 0x40 - IFF_STANDBY = 0x20000000 - IFF_TEMPORARY = 0x800000000 - IFF_UNNUMBERED = 0x2000 - IFF_UP = 0x1 - IFF_VIRTUAL = 0x2000000000 - IFF_VRRP = 0x10000000000 - IFF_XRESOLV = 0x100000000 - IFNAMSIZ = 0x10 - IFT_1822 = 0x2 - IFT_6TO4 = 0xca - IFT_AAL5 = 0x31 - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ATM = 0x25 - IFT_CEPT = 0x13 - IFT_DS3 = 0x1e - IFT_EON = 0x19 - IFT_ETHER = 0x6 - IFT_FDDI = 0xf - IFT_FRELAY = 0x20 - IFT_FRELAYDCE = 0x2c - IFT_HDH1822 = 0x3 - IFT_HIPPI = 0x2f - IFT_HSSI = 0x2e - IFT_HY = 0xe - IFT_IB = 0xc7 - IFT_IPV4 = 0xc8 - IFT_IPV6 = 0xc9 - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_ISO88022LLC = 0x29 - IFT_ISO88023 = 0x7 - IFT_ISO88024 = 0x8 - IFT_ISO88025 = 0x9 - IFT_ISO88026 = 0xa - IFT_LAPB = 0x10 - IFT_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - IFT_MIOX25 = 0x26 - IFT_MODEM = 0x30 - IFT_NSIP = 0x1b - IFT_OTHER = 0x1 - IFT_P10 = 0xc - IFT_P80 = 0xd - IFT_PARA = 0x22 - IFT_PPP = 0x17 - IFT_PROPMUX = 0x36 - IFT_PROPVIRTUAL = 0x35 - IFT_PTPSERIAL = 0x16 - IFT_RS232 = 0x21 - IFT_SDLC = 0x11 - IFT_SIP = 0x1f - IFT_SLIP = 0x1c - IFT_SMDSDXI = 0x2b - IFT_SMDSICIP = 0x34 - IFT_SONET = 0x27 - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_STARLAN = 0xb - IFT_T1 = 0x12 - IFT_ULTRA = 0x1d - IFT_V35 = 0x2d - IFT_X25 = 0x5 - IFT_X25DDN = 0x4 - IFT_X25PLE = 0x28 - IFT_XETHER = 0x1a - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_AUTOCONF_MASK = 0xffff0000 - IN_AUTOCONF_NET = 0xa9fe0000 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLASSD_HOST = 0xfffffff - IN_CLASSD_NET = 0xf0000000 - IN_CLASSD_NSHIFT = 0x1c - IN_CLASSE_NET = 0xffffffff - IN_LOOPBACKNET = 0x7f - IN_PRIVATE12_MASK = 0xfff00000 - IN_PRIVATE12_NET = 0xac100000 - IN_PRIVATE16_MASK = 0xffff0000 - IN_PRIVATE16_NET = 0xc0a80000 - IN_PRIVATE8_MASK = 0xff000000 - IN_PRIVATE8_NET = 0xa000000 - IPPROTO_AH = 0x33 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x4 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_HELLO = 0x3f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPV6 = 0x29 - IPPROTO_MAX = 0x100 - IPPROTO_ND = 0x4d - IPPROTO_NONE = 0x3b - IPPROTO_OSPF = 0x59 - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_UDP = 0x11 - IPV6_ADD_MEMBERSHIP = 0x9 - IPV6_BOUND_IF = 0x41 - IPV6_CHECKSUM = 0x18 - IPV6_DONTFRAG = 0x21 - IPV6_DROP_MEMBERSHIP = 0xa - IPV6_DSTOPTS = 0xf - IPV6_FLOWINFO_FLOWLABEL = 0xffff0f00 - IPV6_FLOWINFO_TCLASS = 0xf00f - IPV6_HOPLIMIT = 0xc - IPV6_HOPOPTS = 0xe - IPV6_JOIN_GROUP = 0x9 - IPV6_LEAVE_GROUP = 0xa - IPV6_MULTICAST_HOPS = 0x7 - IPV6_MULTICAST_IF = 0x6 - IPV6_MULTICAST_LOOP = 0x8 - IPV6_NEXTHOP = 0xd - IPV6_PAD1_OPT = 0x0 - IPV6_PATHMTU = 0x25 - IPV6_PKTINFO = 0xb - IPV6_PREFER_SRC_CGA = 0x20 - IPV6_PREFER_SRC_CGADEFAULT = 0x10 - IPV6_PREFER_SRC_CGAMASK = 0x30 - IPV6_PREFER_SRC_COA = 0x2 - IPV6_PREFER_SRC_DEFAULT = 0x15 - IPV6_PREFER_SRC_HOME = 0x1 - IPV6_PREFER_SRC_MASK = 0x3f - IPV6_PREFER_SRC_MIPDEFAULT = 0x1 - IPV6_PREFER_SRC_MIPMASK = 0x3 - IPV6_PREFER_SRC_NONCGA = 0x10 - IPV6_PREFER_SRC_PUBLIC = 0x4 - IPV6_PREFER_SRC_TMP = 0x8 - IPV6_PREFER_SRC_TMPDEFAULT = 0x4 - IPV6_PREFER_SRC_TMPMASK = 0xc - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVHOPLIMIT = 0x13 - IPV6_RECVHOPOPTS = 0x14 - IPV6_RECVPATHMTU = 0x24 - IPV6_RECVPKTINFO = 0x12 - IPV6_RECVRTHDR = 0x16 - IPV6_RECVRTHDRDSTOPTS = 0x17 - IPV6_RECVTCLASS = 0x19 - IPV6_RTHDR = 0x10 - IPV6_RTHDRDSTOPTS = 0x11 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_SEC_OPT = 0x22 - IPV6_SRC_PREFERENCES = 0x23 - IPV6_TCLASS = 0x26 - IPV6_UNICAST_HOPS = 0x5 - IPV6_UNSPEC_SRC = 0x42 - IPV6_USE_MIN_MTU = 0x20 - IPV6_V6ONLY = 0x27 - IP_ADD_MEMBERSHIP = 0x13 - IP_ADD_SOURCE_MEMBERSHIP = 0x17 - IP_BLOCK_SOURCE = 0x15 - IP_BOUND_IF = 0x41 - IP_BROADCAST = 0x106 - IP_BROADCAST_TTL = 0x43 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DHCPINIT_IF = 0x45 - IP_DONTFRAG = 0x1b - IP_DONTROUTE = 0x105 - IP_DROP_MEMBERSHIP = 0x14 - IP_DROP_SOURCE_MEMBERSHIP = 0x18 - IP_HDRINCL = 0x2 - IP_MAXPACKET = 0xffff - IP_MF = 0x2000 - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x10 - IP_MULTICAST_LOOP = 0x12 - IP_MULTICAST_TTL = 0x11 - IP_NEXTHOP = 0x19 - IP_OPTIONS = 0x1 - IP_PKTINFO = 0x1a - IP_RECVDSTADDR = 0x7 - IP_RECVIF = 0x9 - IP_RECVOPTS = 0x5 - IP_RECVPKTINFO = 0x1a - IP_RECVRETOPTS = 0x6 - IP_RECVSLLA = 0xa - IP_RECVTTL = 0xb - IP_RETOPTS = 0x8 - IP_REUSEADDR = 0x104 - IP_SEC_OPT = 0x22 - IP_TOS = 0x3 - IP_TTL = 0x4 - IP_UNBLOCK_SOURCE = 0x16 - IP_UNSPEC_SRC = 0x42 - ISIG = 0x1 - ISTRIP = 0x20 - IUCLC = 0x200 - IXANY = 0x800 - IXOFF = 0x1000 - IXON = 0x400 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_ACCESS_DEFAULT = 0x6 - MADV_ACCESS_LWP = 0x7 - MADV_ACCESS_MANY = 0x8 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x5 - MADV_NORMAL = 0x0 - MADV_PURGE = 0x9 - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_WILLNEED = 0x3 - MAP_32BIT = 0x80 - MAP_ALIGN = 0x200 - MAP_ANON = 0x100 - MAP_ANONYMOUS = 0x100 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_INITDATA = 0x800 - MAP_NORESERVE = 0x40 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 - MAP_SHARED = 0x1 - MAP_TEXT = 0x400 - MAP_TYPE = 0xf - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MSG_CTRUNC = 0x10 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_DUPCTRL = 0x800 - MSG_EOR = 0x8 - MSG_MAXIOVLEN = 0x10 - MSG_NOTIFICATION = 0x100 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x20 - MSG_WAITALL = 0x40 - MSG_XPG4_2 = 0x8000 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x2 - MS_OLDSYNC = 0x0 - MS_SYNC = 0x4 - M_FLUSH = 0x86 - NL0 = 0x0 - NL1 = 0x100 - NLDLY = 0x100 - NOFLSH = 0x80 - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x2 - ONLCR = 0x4 - ONLRET = 0x20 - ONOCR = 0x10 - OPENFAIL = -0x1 - OPOST = 0x1 - O_ACCMODE = 0x600003 - O_APPEND = 0x8 - O_CLOEXEC = 0x800000 - O_CREAT = 0x100 - O_DSYNC = 0x40 - O_EXCL = 0x400 - O_EXEC = 0x400000 - O_LARGEFILE = 0x2000 - O_NDELAY = 0x4 - O_NOCTTY = 0x800 - O_NOFOLLOW = 0x20000 - O_NOLINKS = 0x40000 - O_NONBLOCK = 0x80 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x8000 - O_SEARCH = 0x200000 - O_SIOCGIFCONF = -0x3ff796ec - O_SIOCGLIFCONF = -0x3fef9688 - O_SYNC = 0x10 - O_TRUNC = 0x200 - O_WRONLY = 0x1 - O_XATTR = 0x4000 - PARENB = 0x100 - PAREXT = 0x100000 - PARMRK = 0x8 - PARODD = 0x200 - PENDIN = 0x4000 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - RLIMIT_AS = 0x6 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_NOFILE = 0x5 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = -0x3 - RTAX_AUTHOR = 0x6 - RTAX_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x9 - RTAX_NETMASK = 0x2 - RTAX_SRC = 0x8 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTA_NUMBITS = 0x9 - RTA_SRC = 0x100 - RTF_BLACKHOLE = 0x1000 - RTF_CLONING = 0x100 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_INDIRECT = 0x40000 - RTF_KERNEL = 0x80000 - RTF_LLINFO = 0x400 - RTF_MASK = 0x80 - RTF_MODIFIED = 0x20 - RTF_MULTIRT = 0x10000 - RTF_PRIVATE = 0x2000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_REJECT = 0x8 - RTF_SETSRC = 0x20000 - RTF_STATIC = 0x800 - RTF_UP = 0x1 - RTF_XRESOLVE = 0x200 - RTF_ZONE = 0x100000 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_CHGADDR = 0xf - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_FREEADDR = 0x10 - RTM_GET = 0x4 - RTM_IFINFO = 0xe - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_OLDADD = 0x9 - RTM_OLDDEL = 0xa - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_VERSION = 0x3 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RT_AWARE = 0x1 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - SCM_RIGHTS = 0x1010 - SCM_TIMESTAMP = 0x1013 - SCM_UCRED = 0x1012 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIG2STR_MAX = 0x20 - SIOCADDMULTI = -0x7fdf96cf - SIOCADDRT = -0x7fcf8df6 - SIOCATMARK = 0x40047307 - SIOCDARP = -0x7fdb96e0 - SIOCDELMULTI = -0x7fdf96ce - SIOCDELRT = -0x7fcf8df5 - SIOCDXARP = -0x7fff9658 - SIOCGARP = -0x3fdb96e1 - SIOCGDSTINFO = -0x3fff965c - SIOCGENADDR = -0x3fdf96ab - SIOCGENPSTATS = -0x3fdf96c7 - SIOCGETLSGCNT = -0x3fef8deb - SIOCGETNAME = 0x40107334 - SIOCGETPEER = 0x40107335 - SIOCGETPROP = -0x3fff8f44 - SIOCGETSGCNT = -0x3feb8deb - SIOCGETSYNC = -0x3fdf96d3 - SIOCGETVIFCNT = -0x3feb8dec - SIOCGHIWAT = 0x40047301 - SIOCGIFADDR = -0x3fdf96f3 - SIOCGIFBRDADDR = -0x3fdf96e9 - SIOCGIFCONF = -0x3ff796a4 - SIOCGIFDSTADDR = -0x3fdf96f1 - SIOCGIFFLAGS = -0x3fdf96ef - SIOCGIFHWADDR = -0x3fdf9647 - SIOCGIFINDEX = -0x3fdf96a6 - SIOCGIFMEM = -0x3fdf96ed - SIOCGIFMETRIC = -0x3fdf96e5 - SIOCGIFMTU = -0x3fdf96ea - SIOCGIFMUXID = -0x3fdf96a8 - SIOCGIFNETMASK = -0x3fdf96e7 - SIOCGIFNUM = 0x40046957 - SIOCGIP6ADDRPOLICY = -0x3fff965e - SIOCGIPMSFILTER = -0x3ffb964c - SIOCGLIFADDR = -0x3f87968f - SIOCGLIFBINDING = -0x3f879666 - SIOCGLIFBRDADDR = -0x3f879685 - SIOCGLIFCONF = -0x3fef965b - SIOCGLIFDADSTATE = -0x3f879642 - SIOCGLIFDSTADDR = -0x3f87968d - SIOCGLIFFLAGS = -0x3f87968b - SIOCGLIFGROUPINFO = -0x3f4b9663 - SIOCGLIFGROUPNAME = -0x3f879664 - SIOCGLIFHWADDR = -0x3f879640 - SIOCGLIFINDEX = -0x3f87967b - SIOCGLIFLNKINFO = -0x3f879674 - SIOCGLIFMETRIC = -0x3f879681 - SIOCGLIFMTU = -0x3f879686 - SIOCGLIFMUXID = -0x3f87967d - SIOCGLIFNETMASK = -0x3f879683 - SIOCGLIFNUM = -0x3ff3967e - SIOCGLIFSRCOF = -0x3fef964f - SIOCGLIFSUBNET = -0x3f879676 - SIOCGLIFTOKEN = -0x3f879678 - SIOCGLIFUSESRC = -0x3f879651 - SIOCGLIFZONE = -0x3f879656 - SIOCGLOWAT = 0x40047303 - SIOCGMSFILTER = -0x3ffb964e - SIOCGPGRP = 0x40047309 - SIOCGSTAMP = -0x3fef9646 - SIOCGXARP = -0x3fff9659 - SIOCIFDETACH = -0x7fdf96c8 - SIOCILB = -0x3ffb9645 - SIOCLIFADDIF = -0x3f879691 - SIOCLIFDELND = -0x7f879673 - SIOCLIFGETND = -0x3f879672 - SIOCLIFREMOVEIF = -0x7f879692 - SIOCLIFSETND = -0x7f879671 - SIOCLOWER = -0x7fdf96d7 - SIOCSARP = -0x7fdb96e2 - SIOCSCTPGOPT = -0x3fef9653 - SIOCSCTPPEELOFF = -0x3ffb9652 - SIOCSCTPSOPT = -0x7fef9654 - SIOCSENABLESDP = -0x3ffb9649 - SIOCSETPROP = -0x7ffb8f43 - SIOCSETSYNC = -0x7fdf96d4 - SIOCSHIWAT = -0x7ffb8d00 - SIOCSIFADDR = -0x7fdf96f4 - SIOCSIFBRDADDR = -0x7fdf96e8 - SIOCSIFDSTADDR = -0x7fdf96f2 - SIOCSIFFLAGS = -0x7fdf96f0 - SIOCSIFINDEX = -0x7fdf96a5 - SIOCSIFMEM = -0x7fdf96ee - SIOCSIFMETRIC = -0x7fdf96e4 - SIOCSIFMTU = -0x7fdf96eb - SIOCSIFMUXID = -0x7fdf96a7 - SIOCSIFNAME = -0x7fdf96b7 - SIOCSIFNETMASK = -0x7fdf96e6 - SIOCSIP6ADDRPOLICY = -0x7fff965d - SIOCSIPMSFILTER = -0x7ffb964b - SIOCSLGETREQ = -0x3fdf96b9 - SIOCSLIFADDR = -0x7f879690 - SIOCSLIFBRDADDR = -0x7f879684 - SIOCSLIFDSTADDR = -0x7f87968e - SIOCSLIFFLAGS = -0x7f87968c - SIOCSLIFGROUPNAME = -0x7f879665 - SIOCSLIFINDEX = -0x7f87967a - SIOCSLIFLNKINFO = -0x7f879675 - SIOCSLIFMETRIC = -0x7f879680 - SIOCSLIFMTU = -0x7f879687 - SIOCSLIFMUXID = -0x7f87967c - SIOCSLIFNAME = -0x3f87967f - SIOCSLIFNETMASK = -0x7f879682 - SIOCSLIFPREFIX = -0x3f879641 - SIOCSLIFSUBNET = -0x7f879677 - SIOCSLIFTOKEN = -0x7f879679 - SIOCSLIFUSESRC = -0x7f879650 - SIOCSLIFZONE = -0x7f879655 - SIOCSLOWAT = -0x7ffb8cfe - SIOCSLSTAT = -0x7fdf96b8 - SIOCSMSFILTER = -0x7ffb964d - SIOCSPGRP = -0x7ffb8cf8 - SIOCSPROMISC = -0x7ffb96d0 - SIOCSQPTR = -0x3ffb9648 - SIOCSSDSTATS = -0x3fdf96d2 - SIOCSSESTATS = -0x3fdf96d1 - SIOCSXARP = -0x7fff965a - SIOCTMYADDR = -0x3ff79670 - SIOCTMYSITE = -0x3ff7966e - SIOCTONLINK = -0x3ff7966f - SIOCUPPER = -0x7fdf96d8 - SIOCX25RCV = -0x3fdf96c4 - SIOCX25TBL = -0x3fdf96c3 - SIOCX25XMT = -0x3fdf96c5 - SIOCXPROTO = 0x20007337 - SOCK_CLOEXEC = 0x80000 - SOCK_DGRAM = 0x1 - SOCK_NDELAY = 0x200000 - SOCK_NONBLOCK = 0x100000 - SOCK_RAW = 0x4 - SOCK_RDM = 0x5 - SOCK_SEQPACKET = 0x6 - SOCK_STREAM = 0x2 - SOCK_TYPE_MASK = 0xffff - SOL_FILTER = 0xfffc - SOL_PACKET = 0xfffd - SOL_ROUTE = 0xfffe - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_ALL = 0x3f - SO_ALLZONES = 0x1014 - SO_ANON_MLP = 0x100a - SO_ATTACH_FILTER = 0x40000001 - SO_BAND = 0x4000 - SO_BROADCAST = 0x20 - SO_COPYOPT = 0x80000 - SO_DEBUG = 0x1 - SO_DELIM = 0x8000 - SO_DETACH_FILTER = 0x40000002 - SO_DGRAM_ERRIND = 0x200 - SO_DOMAIN = 0x100c - SO_DONTLINGER = -0x81 - SO_DONTROUTE = 0x10 - SO_ERROPT = 0x40000 - SO_ERROR = 0x1007 - SO_EXCLBIND = 0x1015 - SO_HIWAT = 0x10 - SO_ISNTTY = 0x800 - SO_ISTTY = 0x400 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_LOWAT = 0x20 - SO_MAC_EXEMPT = 0x100b - SO_MAC_IMPLICIT = 0x1016 - SO_MAXBLK = 0x100000 - SO_MAXPSZ = 0x8 - SO_MINPSZ = 0x4 - SO_MREADOFF = 0x80 - SO_MREADON = 0x40 - SO_NDELOFF = 0x200 - SO_NDELON = 0x100 - SO_NODELIM = 0x10000 - SO_OOBINLINE = 0x100 - SO_PROTOTYPE = 0x1009 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVPSH = 0x100d - SO_RCVTIMEO = 0x1006 - SO_READOPT = 0x1 - SO_RECVUCRED = 0x400 - SO_REUSEADDR = 0x4 - SO_SECATTR = 0x1011 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_STRHOLD = 0x20000 - SO_TAIL = 0x200000 - SO_TIMESTAMP = 0x1013 - SO_TONSTOP = 0x2000 - SO_TOSTOP = 0x1000 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SO_VRRP = 0x1017 - SO_WROFF = 0x2 - TAB0 = 0x0 - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TCFLSH = 0x5407 - TCGETA = 0x5401 - TCGETS = 0x540d - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_ABORT_THRESHOLD = 0x11 - TCP_ANONPRIVBIND = 0x20 - TCP_CONN_ABORT_THRESHOLD = 0x13 - TCP_CONN_NOTIFY_THRESHOLD = 0x12 - TCP_CORK = 0x18 - TCP_EXCLBIND = 0x21 - TCP_INIT_CWND = 0x15 - TCP_KEEPALIVE = 0x8 - TCP_KEEPALIVE_ABORT_THRESHOLD = 0x17 - TCP_KEEPALIVE_THRESHOLD = 0x16 - TCP_KEEPCNT = 0x23 - TCP_KEEPIDLE = 0x22 - TCP_KEEPINTVL = 0x24 - TCP_LINGER2 = 0x1c - TCP_MAXSEG = 0x2 - TCP_MSS = 0x218 - TCP_NODELAY = 0x1 - TCP_NOTIFY_THRESHOLD = 0x10 - TCP_RECVDSTADDR = 0x14 - TCP_RTO_INITIAL = 0x19 - TCP_RTO_MAX = 0x1b - TCP_RTO_MIN = 0x1a - TCSAFLUSH = 0x5410 - TCSBRK = 0x5405 - TCSETA = 0x5402 - TCSETAF = 0x5404 - TCSETAW = 0x5403 - TCSETS = 0x540e - TCSETSF = 0x5410 - TCSETSW = 0x540f - TCXONC = 0x5406 - TIOC = 0x5400 - TIOCCBRK = 0x747a - TIOCCDTR = 0x7478 - TIOCCILOOP = 0x746c - TIOCEXCL = 0x740d - TIOCFLUSH = 0x7410 - TIOCGETC = 0x7412 - TIOCGETD = 0x7400 - TIOCGETP = 0x7408 - TIOCGLTC = 0x7474 - TIOCGPGRP = 0x7414 - TIOCGPPS = 0x547d - TIOCGPPSEV = 0x547f - TIOCGSID = 0x7416 - TIOCGSOFTCAR = 0x5469 - TIOCGWINSZ = 0x5468 - TIOCHPCL = 0x7402 - TIOCKBOF = 0x5409 - TIOCKBON = 0x5408 - TIOCLBIC = 0x747e - TIOCLBIS = 0x747f - TIOCLGET = 0x747c - TIOCLSET = 0x747d - TIOCMBIC = 0x741c - TIOCMBIS = 0x741b - TIOCMGET = 0x741d - TIOCMSET = 0x741a - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x7471 - TIOCNXCL = 0x740e - TIOCOUTQ = 0x7473 - TIOCREMOTE = 0x741e - TIOCSBRK = 0x747b - TIOCSCTTY = 0x7484 - TIOCSDTR = 0x7479 - TIOCSETC = 0x7411 - TIOCSETD = 0x7401 - TIOCSETN = 0x740a - TIOCSETP = 0x7409 - TIOCSIGNAL = 0x741f - TIOCSILOOP = 0x746d - TIOCSLTC = 0x7475 - TIOCSPGRP = 0x7415 - TIOCSPPS = 0x547e - TIOCSSOFTCAR = 0x546a - TIOCSTART = 0x746e - TIOCSTI = 0x7417 - TIOCSTOP = 0x746f - TIOCSWINSZ = 0x5467 - TOSTOP = 0x100 - VCEOF = 0x8 - VCEOL = 0x9 - VDISCARD = 0xd - VDSUSP = 0xb - VEOF = 0x4 - VEOL = 0x5 - VEOL2 = 0x6 - VERASE = 0x2 - VINTR = 0x0 - VKILL = 0x3 - VLNEXT = 0xf - VMIN = 0x4 - VQUIT = 0x1 - VREPRINT = 0xc - VSTART = 0x8 - VSTATUS = 0x10 - VSTOP = 0x9 - VSUSP = 0xa - VSWTCH = 0x7 - VT0 = 0x0 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WCONTFLG = 0xffff - WCONTINUED = 0x8 - WCOREFLG = 0x80 - WEXITED = 0x1 - WNOHANG = 0x40 - WNOWAIT = 0x80 - WOPTMASK = 0xcf - WRAP = 0x20000 - WSIGMASK = 0x7f - WSTOPFLG = 0x7f - WSTOPPED = 0x4 - WTRAPPED = 0x2 - WUNTRACED = 0x4 - XCASE = 0x4 - XTABS = 0x1800 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x7d) - EADDRNOTAVAIL = syscall.Errno(0x7e) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x7c) - EAGAIN = syscall.Errno(0xb) - EALREADY = syscall.Errno(0x95) - EBADE = syscall.Errno(0x32) - EBADF = syscall.Errno(0x9) - EBADFD = syscall.Errno(0x51) - EBADMSG = syscall.Errno(0x4d) - EBADR = syscall.Errno(0x33) - EBADRQC = syscall.Errno(0x36) - EBADSLT = syscall.Errno(0x37) - EBFONT = syscall.Errno(0x39) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x2f) - ECHILD = syscall.Errno(0xa) - ECHRNG = syscall.Errno(0x25) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x82) - ECONNREFUSED = syscall.Errno(0x92) - ECONNRESET = syscall.Errno(0x83) - EDEADLK = syscall.Errno(0x2d) - EDEADLOCK = syscall.Errno(0x38) - EDESTADDRREQ = syscall.Errno(0x60) - EDOM = syscall.Errno(0x21) - EDQUOT = syscall.Errno(0x31) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EHOSTDOWN = syscall.Errno(0x93) - EHOSTUNREACH = syscall.Errno(0x94) - EIDRM = syscall.Errno(0x24) - EILSEQ = syscall.Errno(0x58) - EINPROGRESS = syscall.Errno(0x96) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x85) - EISDIR = syscall.Errno(0x15) - EL2HLT = syscall.Errno(0x2c) - EL2NSYNC = syscall.Errno(0x26) - EL3HLT = syscall.Errno(0x27) - EL3RST = syscall.Errno(0x28) - ELIBACC = syscall.Errno(0x53) - ELIBBAD = syscall.Errno(0x54) - ELIBEXEC = syscall.Errno(0x57) - ELIBMAX = syscall.Errno(0x56) - ELIBSCN = syscall.Errno(0x55) - ELNRNG = syscall.Errno(0x29) - ELOCKUNMAPPED = syscall.Errno(0x48) - ELOOP = syscall.Errno(0x5a) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x61) - EMULTIHOP = syscall.Errno(0x4a) - ENAMETOOLONG = syscall.Errno(0x4e) - ENETDOWN = syscall.Errno(0x7f) - ENETRESET = syscall.Errno(0x81) - ENETUNREACH = syscall.Errno(0x80) - ENFILE = syscall.Errno(0x17) - ENOANO = syscall.Errno(0x35) - ENOBUFS = syscall.Errno(0x84) - ENOCSI = syscall.Errno(0x2b) - ENODATA = syscall.Errno(0x3d) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x2e) - ENOLINK = syscall.Errno(0x43) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x23) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x63) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x59) - ENOTACTIVE = syscall.Errno(0x49) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x86) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x5d) - ENOTRECOVERABLE = syscall.Errno(0x3b) - ENOTSOCK = syscall.Errno(0x5f) - ENOTSUP = syscall.Errno(0x30) - ENOTTY = syscall.Errno(0x19) - ENOTUNIQ = syscall.Errno(0x50) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x7a) - EOVERFLOW = syscall.Errno(0x4f) - EOWNERDEAD = syscall.Errno(0x3a) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x7b) - EPIPE = syscall.Errno(0x20) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x78) - EPROTOTYPE = syscall.Errno(0x62) - ERANGE = syscall.Errno(0x22) - EREMCHG = syscall.Errno(0x52) - EREMOTE = syscall.Errno(0x42) - ERESTART = syscall.Errno(0x5b) - EROFS = syscall.Errno(0x1e) - ESHUTDOWN = syscall.Errno(0x8f) - ESOCKTNOSUPPORT = syscall.Errno(0x79) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x97) - ESTRPIPE = syscall.Errno(0x5c) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x91) - ETOOMANYREFS = syscall.Errno(0x90) - ETXTBSY = syscall.Errno(0x1a) - EUNATCH = syscall.Errno(0x2a) - EUSERS = syscall.Errno(0x5e) - EWOULDBLOCK = syscall.Errno(0xb) - EXDEV = syscall.Errno(0x12) - EXFULL = syscall.Errno(0x34) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) - SIGBUS = syscall.Signal(0xa) - SIGCANCEL = syscall.Signal(0x24) - SIGCHLD = syscall.Signal(0x12) - SIGCLD = syscall.Signal(0x12) - SIGCONT = syscall.Signal(0x19) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGFREEZE = syscall.Signal(0x22) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINFO = syscall.Signal(0x29) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x16) - SIGIOT = syscall.Signal(0x6) - SIGJVM1 = syscall.Signal(0x27) - SIGJVM2 = syscall.Signal(0x28) - SIGKILL = syscall.Signal(0x9) - SIGLOST = syscall.Signal(0x25) - SIGLWP = syscall.Signal(0x21) - SIGPIPE = syscall.Signal(0xd) - SIGPOLL = syscall.Signal(0x16) - SIGPROF = syscall.Signal(0x1d) - SIGPWR = syscall.Signal(0x13) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) - SIGSTOP = syscall.Signal(0x17) - SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTHAW = syscall.Signal(0x23) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x18) - SIGTTIN = syscall.Signal(0x1a) - SIGTTOU = syscall.Signal(0x1b) - SIGURG = syscall.Signal(0x15) - SIGUSR1 = syscall.Signal(0x10) - SIGUSR2 = syscall.Signal(0x11) - SIGVTALRM = syscall.Signal(0x1c) - SIGWAITING = syscall.Signal(0x20) - SIGWINCH = syscall.Signal(0x14) - SIGXCPU = syscall.Signal(0x1e) - SIGXFSZ = syscall.Signal(0x1f) - SIGXRES = syscall.Signal(0x26) -) - -// Error table -var errors = [...]string{ - 1: "not owner", - 2: "no such file or directory", - 3: "no such process", - 4: "interrupted system call", - 5: "I/O error", - 6: "no such device or address", - 7: "arg list too long", - 8: "exec format error", - 9: "bad file number", - 10: "no child processes", - 11: "resource temporarily unavailable", - 12: "not enough space", - 13: "permission denied", - 14: "bad address", - 15: "block device required", - 16: "device busy", - 17: "file exists", - 18: "cross-device link", - 19: "no such device", - 20: "not a directory", - 21: "is a directory", - 22: "invalid argument", - 23: "file table overflow", - 24: "too many open files", - 25: "inappropriate ioctl for device", - 26: "text file busy", - 27: "file too large", - 28: "no space left on device", - 29: "illegal seek", - 30: "read-only file system", - 31: "too many links", - 32: "broken pipe", - 33: "argument out of domain", - 34: "result too large", - 35: "no message of desired type", - 36: "identifier removed", - 37: "channel number out of range", - 38: "level 2 not synchronized", - 39: "level 3 halted", - 40: "level 3 reset", - 41: "link number out of range", - 42: "protocol driver not attached", - 43: "no CSI structure available", - 44: "level 2 halted", - 45: "deadlock situation detected/avoided", - 46: "no record locks available", - 47: "operation canceled", - 48: "operation not supported", - 49: "disc quota exceeded", - 50: "bad exchange descriptor", - 51: "bad request descriptor", - 52: "message tables full", - 53: "anode table overflow", - 54: "bad request code", - 55: "invalid slot", - 56: "file locking deadlock", - 57: "bad font file format", - 58: "owner of the lock died", - 59: "lock is not recoverable", - 60: "not a stream device", - 61: "no data available", - 62: "timer expired", - 63: "out of stream resources", - 64: "machine is not on the network", - 65: "package not installed", - 66: "object is remote", - 67: "link has been severed", - 68: "advertise error", - 69: "srmount error", - 70: "communication error on send", - 71: "protocol error", - 72: "locked lock was unmapped ", - 73: "facility is not active", - 74: "multihop attempted", - 77: "not a data message", - 78: "file name too long", - 79: "value too large for defined data type", - 80: "name not unique on network", - 81: "file descriptor in bad state", - 82: "remote address changed", - 83: "can not access a needed shared library", - 84: "accessing a corrupted shared library", - 85: ".lib section in a.out corrupted", - 86: "attempting to link in more shared libraries than system limit", - 87: "can not exec a shared library directly", - 88: "illegal byte sequence", - 89: "operation not applicable", - 90: "number of symbolic links encountered during path name traversal exceeds MAXSYMLINKS", - 91: "error 91", - 92: "error 92", - 93: "directory not empty", - 94: "too many users", - 95: "socket operation on non-socket", - 96: "destination address required", - 97: "message too long", - 98: "protocol wrong type for socket", - 99: "option not supported by protocol", - 120: "protocol not supported", - 121: "socket type not supported", - 122: "operation not supported on transport endpoint", - 123: "protocol family not supported", - 124: "address family not supported by protocol family", - 125: "address already in use", - 126: "cannot assign requested address", - 127: "network is down", - 128: "network is unreachable", - 129: "network dropped connection because of reset", - 130: "software caused connection abort", - 131: "connection reset by peer", - 132: "no buffer space available", - 133: "transport endpoint is already connected", - 134: "transport endpoint is not connected", - 143: "cannot send after socket shutdown", - 144: "too many references: cannot splice", - 145: "connection timed out", - 146: "connection refused", - 147: "host is down", - 148: "no route to host", - 149: "operation already in progress", - 150: "operation now in progress", - 151: "stale NFS file handle", -} - -// Signal table -var signals = [...]string{ - 1: "hangup", - 2: "interrupt", - 3: "quit", - 4: "illegal Instruction", - 5: "trace/Breakpoint Trap", - 6: "abort", - 7: "emulation Trap", - 8: "arithmetic Exception", - 9: "killed", - 10: "bus Error", - 11: "segmentation Fault", - 12: "bad System Call", - 13: "broken Pipe", - 14: "alarm Clock", - 15: "terminated", - 16: "user Signal 1", - 17: "user Signal 2", - 18: "child Status Changed", - 19: "power-Fail/Restart", - 20: "window Size Change", - 21: "urgent Socket Condition", - 22: "pollable Event", - 23: "stopped (signal)", - 24: "stopped (user)", - 25: "continued", - 26: "stopped (tty input)", - 27: "stopped (tty output)", - 28: "virtual Timer Expired", - 29: "profiling Timer Expired", - 30: "cpu Limit Exceeded", - 31: "file Size Limit Exceeded", - 32: "no runnable lwp", - 33: "inter-lwp signal", - 34: "checkpoint Freeze", - 35: "checkpoint Thaw", - 36: "thread Cancellation", - 37: "resource Lost", - 38: "resource Control Exceeded", - 39: "reserved for JVM 1", - 40: "reserved for JVM 2", - 41: "information Request", -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go deleted file mode 100644 index 10491e9..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go +++ /dev/null @@ -1,1609 +0,0 @@ -// mksyscall.pl -l32 -tags darwin,386 syscall_bsd.go syscall_darwin.go syscall_darwin_386.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build darwin,386 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, timeval *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, behav int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe() (r int, w int, err error) { - r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) - r = int(r0) - w = int(r1) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kill(pid int, signum int, posix int) (err error) { - _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Access(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chflags(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exchangedata(path1 string, path2 string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path1) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(path2) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - Syscall(SYS_EXIT, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), uintptr(length>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdtablesize() (size int) { - r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) - size = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) - pgrp = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := RawSyscall(SYS_ISSETUGID, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Link(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknod(path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Open(path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rename(from string, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(fromfd int, from string, tofd int, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Revoke(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0) - newoffset = int64(int64(r1)<<32 | int64(r0)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { - _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := Syscall(SYS_SETEGID, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setlogin(name string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setprivexec(flag int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIVEXEC, uintptr(flag), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, stat *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlink(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Undelete(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func gettimeofday(tp *Timeval) (sec int32, usec int32, err error) { - r0, r1, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - sec = int32(r0) - usec = int32(r1) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go deleted file mode 100644 index 5f1f6bf..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go +++ /dev/null @@ -1,1609 +0,0 @@ -// mksyscall.pl -tags darwin,amd64 syscall_bsd.go syscall_darwin.go syscall_darwin_amd64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build darwin,amd64 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, timeval *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, behav int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe() (r int, w int, err error) { - r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) - r = int(r0) - w = int(r1) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kill(pid int, signum int, posix int) (err error) { - _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Access(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chflags(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exchangedata(path1 string, path2 string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path1) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(path2) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - Syscall(SYS_EXIT, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdtablesize() (size int) { - r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) - size = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) - pgrp = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := RawSyscall(SYS_ISSETUGID, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Link(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknod(path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Open(path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rename(from string, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(fromfd int, from string, tofd int, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Revoke(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) - newoffset = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { - _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := Syscall(SYS_SETEGID, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setlogin(name string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setprivexec(flag int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIVEXEC, uintptr(flag), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, stat *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlink(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Undelete(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func gettimeofday(tp *Timeval) (sec int64, usec int32, err error) { - r0, r1, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - sec = int64(r0) - usec = int32(r1) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go deleted file mode 100644 index 7a40974..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go +++ /dev/null @@ -1,1609 +0,0 @@ -// mksyscall.pl -tags darwin,arm syscall_bsd.go syscall_darwin.go syscall_darwin_arm.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build darwin,arm - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, timeval *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, behav int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe() (r int, w int, err error) { - r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) - r = int(r0) - w = int(r1) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kill(pid int, signum int, posix int) (err error) { - _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Access(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chflags(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exchangedata(path1 string, path2 string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path1) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(path2) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - Syscall(SYS_EXIT, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), uintptr(length>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdtablesize() (size int) { - r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) - size = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) - pgrp = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := RawSyscall(SYS_ISSETUGID, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Link(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknod(path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Open(path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rename(from string, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(fromfd int, from string, tofd int, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Revoke(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0) - newoffset = int64(int64(r1)<<32 | int64(r0)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { - _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := Syscall(SYS_SETEGID, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setlogin(name string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setprivexec(flag int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIVEXEC, uintptr(flag), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, stat *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlink(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Undelete(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func gettimeofday(tp *Timeval) (sec int32, usec int32, err error) { - r0, r1, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - sec = int32(r0) - usec = int32(r1) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go deleted file mode 100644 index 07c6ebc..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go +++ /dev/null @@ -1,1609 +0,0 @@ -// mksyscall.pl -tags darwin,arm64 syscall_bsd.go syscall_darwin.go syscall_darwin_arm64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build darwin,arm64 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, timeval *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, behav int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe() (r int, w int, err error) { - r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) - r = int(r0) - w = int(r1) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kill(pid int, signum int, posix int) (err error) { - _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Access(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chflags(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exchangedata(path1 string, path2 string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path1) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(path2) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - Syscall(SYS_EXIT, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdtablesize() (size int) { - r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) - size = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) - pgrp = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := RawSyscall(SYS_ISSETUGID, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Link(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknod(path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Open(path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rename(from string, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(fromfd int, from string, tofd int, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Revoke(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) - newoffset = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { - _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := Syscall(SYS_SETEGID, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setlogin(name string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setprivexec(flag int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIVEXEC, uintptr(flag), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, stat *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlink(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Undelete(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func gettimeofday(tp *Timeval) (sec int64, usec int32, err error) { - r0, r1, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - sec = int64(r0) - usec = int32(r1) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go deleted file mode 100644 index 7fa205c..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go +++ /dev/null @@ -1,1440 +0,0 @@ -// mksyscall.pl -dragonfly -tags dragonfly,amd64 syscall_bsd.go syscall_dragonfly.go syscall_dragonfly_amd64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build dragonfly,amd64 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, timeval *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, behav int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe() (r int, w int, err error) { - r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) - r = int(r0) - w = int(r1) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func extpread(fd int, p []byte, flags int, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EXTPREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(offset), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func extpwrite(fd int, p []byte, flags int, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EXTPWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(offset), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Access(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chflags(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - Syscall(SYS_EXIT, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdtablesize() (size int) { - r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) - size = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) - pgrp = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Link(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknod(path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Open(path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rename(from string, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Revoke(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0) - newoffset = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { - _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setlogin(name string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, stat *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlink(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Undelete(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go deleted file mode 100644 index 1a0bb4c..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go +++ /dev/null @@ -1,1877 +0,0 @@ -// mksyscall.pl -l32 -tags freebsd,386 syscall_bsd.go syscall_freebsd.go syscall_freebsd_386.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build freebsd,386 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, timeval *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, behav int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe() (r int, w int, err error) { - r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) - r = int(r0) - w = int(r1) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Access(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CapEnter() (err error) { - _, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func capRightsGet(version int, fd int, rightsp *CapRights) (err error) { - _, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func capRightsLimit(fd int, rightsp *CapRights) (err error) { - _, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chflags(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - Syscall(SYS_EXIT, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), uintptr(length>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdtablesize() (size int) { - r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) - size = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) - pgrp = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Link(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknod(path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Open(path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(fdat), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rename(from string, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(fromfd int, from string, tofd int, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Revoke(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0) - newoffset = int64(int64(r1)<<32 | int64(r0)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { - _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setlogin(name string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, stat *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlink(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Undelete(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go deleted file mode 100644 index ac1e8e0..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go +++ /dev/null @@ -1,1877 +0,0 @@ -// mksyscall.pl -tags freebsd,amd64 syscall_bsd.go syscall_freebsd.go syscall_freebsd_amd64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build freebsd,amd64 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, timeval *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, behav int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe() (r int, w int, err error) { - r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) - r = int(r0) - w = int(r1) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Access(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CapEnter() (err error) { - _, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func capRightsGet(version int, fd int, rightsp *CapRights) (err error) { - _, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func capRightsLimit(fd int, rightsp *CapRights) (err error) { - _, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chflags(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - Syscall(SYS_EXIT, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdtablesize() (size int) { - r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) - size = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) - pgrp = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Link(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknod(path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Open(path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(fdat), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rename(from string, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(fromfd int, from string, tofd int, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Revoke(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) - newoffset = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { - _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setlogin(name string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, stat *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlink(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Undelete(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go deleted file mode 100644 index 2b4e6ac..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go +++ /dev/null @@ -1,1877 +0,0 @@ -// mksyscall.pl -l32 -arm -tags freebsd,arm syscall_bsd.go syscall_freebsd.go syscall_freebsd_arm.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build freebsd,arm - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, timeval *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, behav int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe() (r int, w int, err error) { - r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) - r = int(r0) - w = int(r1) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Access(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CapEnter() (err error) { - _, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func capRightsGet(version int, fd int, rightsp *CapRights) (err error) { - _, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func capRightsLimit(fd int, rightsp *CapRights) (err error) { - _, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chflags(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - Syscall(SYS_EXIT, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall9(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdtablesize() (size int) { - r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) - size = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) - pgrp = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Link(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknod(path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Open(path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(fdat), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rename(from string, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(fromfd int, from string, tofd int, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Revoke(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0) - newoffset = int64(int64(r1)<<32 | int64(r0)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { - _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setlogin(name string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, stat *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlink(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Undelete(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go deleted file mode 100644 index 38c1bbd..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go +++ /dev/null @@ -1,1953 +0,0 @@ -// mksyscall.pl -l32 -tags linux,386 syscall_linux.go syscall_linux_386.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build linux,386 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fchmodat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlJoin(cmd int, arg2 string) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg2) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg3) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(arg4) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) { - var _p0 unsafe.Pointer - if len(payload) > 0 { - _p0 = unsafe.Pointer(&payload[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(source) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(target) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(fstype) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Acct(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(payload) > 0 { - _p2 = unsafe.Pointer(&payload[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtimex(buf *Timex) (state int, err error) { - r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) - state = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(oldfd int, newfd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate(size int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate1(flag int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Eventfd(initval uint, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - Syscall(SYS_EXIT_GROUP, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fdatasync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrandom(buf []byte, flags int) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettid() (tid int) { - r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0) - tid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) - watchdesc = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit1(flags int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) - success = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Klogctl(typ int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Llistxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lremovexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lsetxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PivotRoot(newroot string, putold string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(newroot) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(putold) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Removexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(callback) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setdomainname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setns(fd int, nstype int) (err error) { - _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - Syscall(SYS_SYNC, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Syncfs(fd int) (err error) { - _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sysinfo(info *Sysinfo_t) (err error) { - _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(int64(r1)<<32 | int64(r0)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) - ticks = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _, _ := RawSyscall(SYS_UMASK, uintptr(mask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(target string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unshare(flags int) (err error) { - _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func exitThread(code int) (err error) { - _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe(p *[2]_C_int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(oldfd int, newfd int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_FADVISE64_64, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN32, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE64, uintptr(fd), uintptr(length), uintptr(length>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID32, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _, _ := RawSyscall(SYS_GETEUID32, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID32, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID32, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit() (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ioperm(from int, num int, on int) (err error) { - _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Iopl(level int) (err error) { - _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN32, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setfsgid(gid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSGID32, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setfsuid(uid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSUID32, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID32, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID32, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID32, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID32, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { - _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(off>>32), uintptr(n), uintptr(n>>32), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset)) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getrlimit(resource int, rlim *rlimit32) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setrlimit(resource int, rlim *rlimit32) (err error) { - _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Time(t *Time_t) (tt Time_t, err error) { - r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) - tt = Time_t(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go deleted file mode 100644 index dc8fe0a..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go +++ /dev/null @@ -1,2146 +0,0 @@ -// mksyscall.pl -tags linux,amd64 syscall_linux.go syscall_linux_amd64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build linux,amd64 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fchmodat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlJoin(cmd int, arg2 string) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg2) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg3) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(arg4) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) { - var _p0 unsafe.Pointer - if len(payload) > 0 { - _p0 = unsafe.Pointer(&payload[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(source) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(target) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(fstype) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Acct(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(payload) > 0 { - _p2 = unsafe.Pointer(&payload[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtimex(buf *Timex) (state int, err error) { - r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) - state = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(oldfd int, newfd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate(size int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate1(flag int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Eventfd(initval uint, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - Syscall(SYS_EXIT_GROUP, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fdatasync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrandom(buf []byte, flags int) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettid() (tid int) { - r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0) - tid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) - watchdesc = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit1(flags int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) - success = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Klogctl(typ int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Llistxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lremovexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lsetxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PivotRoot(newroot string, putold string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(newroot) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(putold) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Removexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(callback) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setdomainname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setns(fd int, nstype int) (err error) { - _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - Syscall(SYS_SYNC, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Syncfs(fd int) (err error) { - _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sysinfo(info *Sysinfo_t) (err error) { - _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) - ticks = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _, _ := RawSyscall(SYS_UMASK, uintptr(mask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(target string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unshare(flags int) (err error) { - _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func exitThread(code int) (err error) { - _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(oldfd int, newfd int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, buf *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit() (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ioperm(from int, num int, on int) (err error) { - _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Iopl(level int) (err error) { - _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, n int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (off int64, err error) { - r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) - off = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setfsgid(gid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setfsuid(uid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrlimit(resource int, rlim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, buf *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { - _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe(p *[2]_C_int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go deleted file mode 100644 index 4d28042..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go +++ /dev/null @@ -1,2055 +0,0 @@ -// mksyscall.pl -l32 -arm -tags linux,arm syscall_linux.go syscall_linux_arm.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build linux,arm - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fchmodat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlJoin(cmd int, arg2 string) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg2) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg3) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(arg4) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) { - var _p0 unsafe.Pointer - if len(payload) > 0 { - _p0 = unsafe.Pointer(&payload[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(source) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(target) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(fstype) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Acct(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(payload) > 0 { - _p2 = unsafe.Pointer(&payload[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtimex(buf *Timex) (state int, err error) { - r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) - state = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(oldfd int, newfd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate(size int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate1(flag int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Eventfd(initval uint, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - Syscall(SYS_EXIT_GROUP, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fdatasync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrandom(buf []byte, flags int) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettid() (tid int) { - r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0) - tid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) - watchdesc = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit1(flags int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) - success = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Klogctl(typ int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Llistxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lremovexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lsetxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PivotRoot(newroot string, putold string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(newroot) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(putold) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Removexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(callback) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setdomainname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setns(fd int, nstype int) (err error) { - _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - Syscall(SYS_SYNC, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Syncfs(fd int) (err error) { - _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sysinfo(info *Sysinfo_t) (err error) { - _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(int64(r1)<<32 | int64(r0)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) - ticks = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _, _ := RawSyscall(SYS_UMASK, uintptr(mask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(target string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unshare(flags int) (err error) { - _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func exitThread(code int) (err error) { - _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, flags int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(flags), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(oldfd int, newfd int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN32, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID32, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _, _ := RawSyscall(SYS_GETEUID32, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID32, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID32, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit() (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN32, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, n int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setfsgid(gid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSGID32, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setfsuid(uid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSUID32, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID32, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID32, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID32, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID32, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall6(SYS_FTRUNCATE64, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset)) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getrlimit(resource int, rlim *rlimit32) (err error) { - _, _, e1 := RawSyscall(SYS_UGETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setrlimit(resource int, rlim *rlimit32) (err error) { - _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go deleted file mode 100644 index 20ad4b6..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go +++ /dev/null @@ -1,2029 +0,0 @@ -// mksyscall.pl -tags linux,arm64 syscall_linux.go syscall_linux_arm64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build linux,arm64 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fchmodat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlJoin(cmd int, arg2 string) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg2) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg3) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(arg4) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) { - var _p0 unsafe.Pointer - if len(payload) > 0 { - _p0 = unsafe.Pointer(&payload[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(source) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(target) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(fstype) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Acct(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(payload) > 0 { - _p2 = unsafe.Pointer(&payload[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtimex(buf *Timex) (state int, err error) { - r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) - state = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(oldfd int, newfd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate(size int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate1(flag int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Eventfd(initval uint, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - Syscall(SYS_EXIT_GROUP, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fdatasync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrandom(buf []byte, flags int) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettid() (tid int) { - r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0) - tid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) - watchdesc = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit1(flags int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) - success = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Klogctl(typ int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Llistxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lremovexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lsetxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PivotRoot(newroot string, putold string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(newroot) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(putold) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Removexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(callback) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setdomainname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setns(fd int, nstype int) (err error) { - _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - Syscall(SYS_SYNC, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Syncfs(fd int) (err error) { - _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sysinfo(info *Sysinfo_t) (err error) { - _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) - ticks = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _, _ := RawSyscall(SYS_UMASK, uintptr(mask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(target string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unshare(flags int) (err error) { - _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func exitThread(code int) (err error) { - _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_PWAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, buf *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, n int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (off int64, err error) { - r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) - off = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setfsgid(gid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setfsuid(uid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrlimit(resource int, rlim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, buf *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { - _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go deleted file mode 100644 index 9f194dc..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go +++ /dev/null @@ -1,2111 +0,0 @@ -// mksyscall.pl -b32 -arm -tags linux,mips syscall_linux.go syscall_linux_mipsx.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build linux,mips - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fchmodat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlJoin(cmd int, arg2 string) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg2) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg3) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(arg4) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) { - var _p0 unsafe.Pointer - if len(payload) > 0 { - _p0 = unsafe.Pointer(&payload[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(source) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(target) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(fstype) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Acct(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(payload) > 0 { - _p2 = unsafe.Pointer(&payload[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtimex(buf *Timex) (state int, err error) { - r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) - state = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(oldfd int, newfd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate(size int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate1(flag int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Eventfd(initval uint, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - Syscall(SYS_EXIT_GROUP, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off>>32), uintptr(off), uintptr(len>>32), uintptr(len)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fdatasync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrandom(buf []byte, flags int) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettid() (tid int) { - r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0) - tid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) - watchdesc = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit1(flags int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) - success = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Klogctl(typ int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Llistxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lremovexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lsetxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PivotRoot(newroot string, putold string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(newroot) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(putold) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Removexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(callback) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setdomainname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setns(fd int, nstype int) (err error) { - _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - Syscall(SYS_SYNC, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Syncfs(fd int) (err error) { - _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sysinfo(info *Sysinfo_t) (err error) { - _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(int64(r0)<<32 | int64(r1)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) - ticks = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _, _ := RawSyscall(SYS_UMASK, uintptr(mask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(target string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unshare(flags int) (err error) { - _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func exitThread(code int) (err error) { - _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(oldfd int, newfd int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall6(SYS_FTRUNCATE64, uintptr(fd), 0, uintptr(length>>32), uintptr(length), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, n int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset>>32), uintptr(offset)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset>>32), uintptr(offset)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setfsgid(gid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setfsuid(uid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, r1, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int64(int64(r0)<<32 | int64(r1)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { - _, _, e1 := Syscall9(SYS_SYNC_FILE_RANGE, uintptr(fd), 0, uintptr(off>>32), uintptr(off), uintptr(n>>32), uintptr(n), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length>>32), uintptr(length), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit() (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ioperm(from int, num int, on int) (err error) { - _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Iopl(level int) (err error) { - _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Time(t *Time_t) (tt Time_t, err error) { - r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) - tt = Time_t(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset)) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getrlimit(resource int, rlim *rlimit32) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setrlimit(resource int, rlim *rlimit32) (err error) { - _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go deleted file mode 100644 index 4fde3ef..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go +++ /dev/null @@ -1,2105 +0,0 @@ -// mksyscall.pl -tags linux,mips64 syscall_linux.go syscall_linux_mips64x.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build linux,mips64 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fchmodat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlJoin(cmd int, arg2 string) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg2) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg3) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(arg4) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) { - var _p0 unsafe.Pointer - if len(payload) > 0 { - _p0 = unsafe.Pointer(&payload[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(source) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(target) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(fstype) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Acct(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(payload) > 0 { - _p2 = unsafe.Pointer(&payload[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtimex(buf *Timex) (state int, err error) { - r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) - state = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(oldfd int, newfd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate(size int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate1(flag int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Eventfd(initval uint, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - Syscall(SYS_EXIT_GROUP, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fdatasync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrandom(buf []byte, flags int) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettid() (tid int) { - r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0) - tid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) - watchdesc = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit1(flags int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) - success = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Klogctl(typ int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Llistxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lremovexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lsetxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PivotRoot(newroot string, putold string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(newroot) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(putold) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Removexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(callback) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setdomainname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setns(fd int, nstype int) (err error) { - _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - Syscall(SYS_SYNC, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Syncfs(fd int) (err error) { - _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sysinfo(info *Sysinfo_t) (err error) { - _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) - ticks = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _, _ := RawSyscall(SYS_UMASK, uintptr(mask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(target string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unshare(flags int) (err error) { - _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func exitThread(code int) (err error) { - _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(oldfd int, newfd int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, buf *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, n int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (off int64, err error) { - r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) - off = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setfsgid(gid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setfsuid(uid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrlimit(resource int, rlim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, buf *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { - _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fstat(fd int, st *stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(st)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func lstat(path string, st *stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func stat(path string, st *stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go deleted file mode 100644 index f646342..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go +++ /dev/null @@ -1,2105 +0,0 @@ -// mksyscall.pl -tags linux,mips64le syscall_linux.go syscall_linux_mips64x.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build linux,mips64le - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fchmodat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlJoin(cmd int, arg2 string) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg2) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg3) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(arg4) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) { - var _p0 unsafe.Pointer - if len(payload) > 0 { - _p0 = unsafe.Pointer(&payload[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(source) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(target) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(fstype) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Acct(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(payload) > 0 { - _p2 = unsafe.Pointer(&payload[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtimex(buf *Timex) (state int, err error) { - r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) - state = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(oldfd int, newfd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate(size int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate1(flag int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Eventfd(initval uint, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - Syscall(SYS_EXIT_GROUP, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fdatasync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrandom(buf []byte, flags int) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettid() (tid int) { - r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0) - tid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) - watchdesc = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit1(flags int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) - success = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Klogctl(typ int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Llistxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lremovexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lsetxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PivotRoot(newroot string, putold string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(newroot) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(putold) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Removexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(callback) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setdomainname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setns(fd int, nstype int) (err error) { - _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - Syscall(SYS_SYNC, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Syncfs(fd int) (err error) { - _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sysinfo(info *Sysinfo_t) (err error) { - _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) - ticks = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _, _ := RawSyscall(SYS_UMASK, uintptr(mask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(target string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unshare(flags int) (err error) { - _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func exitThread(code int) (err error) { - _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(oldfd int, newfd int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, buf *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, n int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (off int64, err error) { - r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) - off = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setfsgid(gid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setfsuid(uid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrlimit(resource int, rlim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, buf *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { - _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fstat(fd int, st *stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(st)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func lstat(path string, st *stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func stat(path string, st *stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go deleted file mode 100644 index 964591e..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go +++ /dev/null @@ -1,2111 +0,0 @@ -// mksyscall.pl -l32 -arm -tags linux,mipsle syscall_linux.go syscall_linux_mipsx.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build linux,mipsle - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fchmodat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlJoin(cmd int, arg2 string) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg2) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg3) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(arg4) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) { - var _p0 unsafe.Pointer - if len(payload) > 0 { - _p0 = unsafe.Pointer(&payload[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(source) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(target) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(fstype) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Acct(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(payload) > 0 { - _p2 = unsafe.Pointer(&payload[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtimex(buf *Timex) (state int, err error) { - r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) - state = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(oldfd int, newfd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate(size int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate1(flag int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Eventfd(initval uint, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - Syscall(SYS_EXIT_GROUP, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fdatasync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrandom(buf []byte, flags int) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettid() (tid int) { - r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0) - tid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) - watchdesc = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit1(flags int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) - success = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Klogctl(typ int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Llistxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lremovexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lsetxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PivotRoot(newroot string, putold string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(newroot) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(putold) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Removexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(callback) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setdomainname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setns(fd int, nstype int) (err error) { - _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - Syscall(SYS_SYNC, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Syncfs(fd int) (err error) { - _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sysinfo(info *Sysinfo_t) (err error) { - _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(int64(r1)<<32 | int64(r0)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) - ticks = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _, _ := RawSyscall(SYS_UMASK, uintptr(mask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(target string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unshare(flags int) (err error) { - _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func exitThread(code int) (err error) { - _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(oldfd int, newfd int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall6(SYS_FTRUNCATE64, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, n int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setfsgid(gid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setfsuid(uid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, r1, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int64(int64(r1)<<32 | int64(r0)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { - _, _, e1 := Syscall9(SYS_SYNC_FILE_RANGE, uintptr(fd), 0, uintptr(off), uintptr(off>>32), uintptr(n), uintptr(n>>32), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit() (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ioperm(from int, num int, on int) (err error) { - _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Iopl(level int) (err error) { - _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Time(t *Time_t) (tt Time_t, err error) { - r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) - tt = Time_t(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset)) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getrlimit(resource int, rlim *rlimit32) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setrlimit(resource int, rlim *rlimit32) (err error) { - _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go deleted file mode 100644 index 204ab1a..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go +++ /dev/null @@ -1,2157 +0,0 @@ -// mksyscall.pl -tags linux,ppc64 syscall_linux.go syscall_linux_ppc64x.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build linux,ppc64 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fchmodat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlJoin(cmd int, arg2 string) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg2) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg3) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(arg4) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) { - var _p0 unsafe.Pointer - if len(payload) > 0 { - _p0 = unsafe.Pointer(&payload[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(source) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(target) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(fstype) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Acct(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(payload) > 0 { - _p2 = unsafe.Pointer(&payload[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtimex(buf *Timex) (state int, err error) { - r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) - state = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(oldfd int, newfd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate(size int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate1(flag int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Eventfd(initval uint, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - Syscall(SYS_EXIT_GROUP, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fdatasync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrandom(buf []byte, flags int) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettid() (tid int) { - r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0) - tid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) - watchdesc = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit1(flags int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) - success = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Klogctl(typ int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Llistxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lremovexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lsetxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PivotRoot(newroot string, putold string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(newroot) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(putold) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Removexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(callback) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setdomainname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setns(fd int, nstype int) (err error) { - _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - Syscall(SYS_SYNC, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Syncfs(fd int) (err error) { - _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sysinfo(info *Sysinfo_t) (err error) { - _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) - ticks = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _, _ := RawSyscall(SYS_UMASK, uintptr(mask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(target string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unshare(flags int) (err error) { - _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func exitThread(code int) (err error) { - _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(oldfd int, newfd int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, buf *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_UGETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit() (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ioperm(from int, num int, on int) (err error) { - _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Iopl(level int) (err error) { - _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, n int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (off int64, err error) { - r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) - off = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setfsgid(gid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setfsuid(uid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrlimit(resource int, rlim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, buf *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { - _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE2, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Time(t *Time_t) (tt Time_t, err error) { - r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) - tt = Time_t(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe(p *[2]_C_int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go deleted file mode 100644 index a8a2b0b..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go +++ /dev/null @@ -1,2157 +0,0 @@ -// mksyscall.pl -tags linux,ppc64le syscall_linux.go syscall_linux_ppc64x.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build linux,ppc64le - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fchmodat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlJoin(cmd int, arg2 string) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg2) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg3) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(arg4) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) { - var _p0 unsafe.Pointer - if len(payload) > 0 { - _p0 = unsafe.Pointer(&payload[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(source) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(target) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(fstype) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Acct(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(payload) > 0 { - _p2 = unsafe.Pointer(&payload[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtimex(buf *Timex) (state int, err error) { - r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) - state = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(oldfd int, newfd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate(size int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate1(flag int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Eventfd(initval uint, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - Syscall(SYS_EXIT_GROUP, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fdatasync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrandom(buf []byte, flags int) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettid() (tid int) { - r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0) - tid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) - watchdesc = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit1(flags int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) - success = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Klogctl(typ int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Llistxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lremovexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lsetxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PivotRoot(newroot string, putold string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(newroot) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(putold) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Removexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(callback) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setdomainname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setns(fd int, nstype int) (err error) { - _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - Syscall(SYS_SYNC, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Syncfs(fd int) (err error) { - _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sysinfo(info *Sysinfo_t) (err error) { - _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) - ticks = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _, _ := RawSyscall(SYS_UMASK, uintptr(mask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(target string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unshare(flags int) (err error) { - _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func exitThread(code int) (err error) { - _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(oldfd int, newfd int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, buf *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_UGETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit() (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ioperm(from int, num int, on int) (err error) { - _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Iopl(level int) (err error) { - _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, n int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (off int64, err error) { - r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) - off = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setfsgid(gid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setfsuid(uid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrlimit(resource int, rlim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, buf *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { - _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE2, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Time(t *Time_t) (tt Time_t, err error) { - r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) - tt = Time_t(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe(p *[2]_C_int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go deleted file mode 100644 index b6ff9e3..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go +++ /dev/null @@ -1,1937 +0,0 @@ -// mksyscall.pl -tags linux,s390x syscall_linux.go syscall_linux_s390x.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build linux,s390x - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fchmodat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlJoin(cmd int, arg2 string) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg2) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg3) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(arg4) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) { - var _p0 unsafe.Pointer - if len(payload) > 0 { - _p0 = unsafe.Pointer(&payload[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(source) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(target) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(fstype) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Acct(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(payload) > 0 { - _p2 = unsafe.Pointer(&payload[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtimex(buf *Timex) (state int, err error) { - r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) - state = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(oldfd int, newfd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate(size int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate1(flag int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Eventfd(initval uint, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - Syscall(SYS_EXIT_GROUP, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fdatasync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrandom(buf []byte, flags int) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettid() (tid int) { - r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0) - tid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) - watchdesc = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit1(flags int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) - success = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Klogctl(typ int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Llistxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lremovexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lsetxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PivotRoot(newroot string, putold string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(newroot) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(putold) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Removexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(callback) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setdomainname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setns(fd int, nstype int) (err error) { - _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - Syscall(SYS_SYNC, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Syncfs(fd int) (err error) { - _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sysinfo(info *Sysinfo_t) (err error) { - _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) - ticks = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _, _ := RawSyscall(SYS_UMASK, uintptr(mask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(target string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unshare(flags int) (err error) { - _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func exitThread(code int) (err error) { - _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(oldfd int, newfd int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, buf *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit() (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (off int64, err error) { - r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) - off = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setfsgid(gid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setfsuid(uid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrlimit(resource int, rlim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, buf *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { - _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go deleted file mode 100644 index 2dd9843..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go +++ /dev/null @@ -1,1833 +0,0 @@ -// mksyscall.pl -tags linux,sparc64 syscall_linux.go syscall_linux_sparc64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build linux,sparc64 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(source) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(target) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(fstype) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Acct(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtimex(buf *Timex) (state int, err error) { - r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) - state = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(oldfd int, newfd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate(size int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate1(flag int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - Syscall(SYS_EXIT_GROUP, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { - _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fdatasync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrandom(buf []byte, flags int) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettid() (tid int) { - r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0) - tid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) - watchdesc = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit1(flags int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) - success = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Klogctl(typ int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PivotRoot(newroot string, putold string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(newroot) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(putold) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Removexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setdomainname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setns(fd int, nstype int) (err error) { - _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - Syscall(SYS_SYNC, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sysinfo(info *Sysinfo_t) (err error) { - _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) - ticks = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _, _ := RawSyscall(SYS_UMASK, uintptr(mask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(target string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unshare(flags int) (err error) { - _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func exitThread(code int) (err error) { - _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(oldfd int, newfd int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, buf *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit() (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, n int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (off int64, err error) { - r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) - off = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setfsgid(gid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setfsuid(uid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrlimit(resource int, rlim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, buf *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { - _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - nn = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe(p *[2]_C_int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go deleted file mode 100644 index db99fd0..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go +++ /dev/null @@ -1,1346 +0,0 @@ -// mksyscall.pl -l32 -netbsd -tags netbsd,386 syscall_bsd.go syscall_netbsd.go syscall_netbsd_386.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build netbsd,386 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, timeval *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, behav int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe() (fd1 int, fd2 int, err error) { - r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) - fd1 = int(r0) - fd2 = int(r1) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Access(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chflags(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - Syscall(SYS_EXIT, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) - pgrp = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Link(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknod(path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Open(path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rename(from string, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Revoke(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0) - newoffset = int64(int64(r1)<<32 | int64(r0)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { - _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlink(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go deleted file mode 100644 index 7b6c2c8..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go +++ /dev/null @@ -1,1346 +0,0 @@ -// mksyscall.pl -netbsd -tags netbsd,amd64 syscall_bsd.go syscall_netbsd.go syscall_netbsd_amd64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build netbsd,amd64 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, timeval *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, behav int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe() (fd1 int, fd2 int, err error) { - r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) - fd1 = int(r0) - fd2 = int(r1) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Access(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chflags(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - Syscall(SYS_EXIT, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) - pgrp = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Link(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknod(path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Open(path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rename(from string, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Revoke(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0) - newoffset = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { - _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlink(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go deleted file mode 100644 index 0f4cc3b..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go +++ /dev/null @@ -1,1346 +0,0 @@ -// mksyscall.pl -l32 -netbsd -arm -tags netbsd,arm syscall_bsd.go syscall_netbsd.go syscall_netbsd_arm.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build netbsd,arm - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, timeval *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, behav int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe() (fd1 int, fd2 int, err error) { - r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) - fd1 = int(r0) - fd2 = int(r1) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Access(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chflags(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - Syscall(SYS_EXIT, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) - pgrp = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Link(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknod(path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Open(path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rename(from string, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Revoke(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0) - newoffset = int64(int64(r1)<<32 | int64(r0)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { - _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlink(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go deleted file mode 100644 index 7baea87..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go +++ /dev/null @@ -1,1404 +0,0 @@ -// mksyscall.pl -l32 -openbsd -tags openbsd,386 syscall_bsd.go syscall_openbsd.go syscall_openbsd_386.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build openbsd,386 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, timeval *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, behav int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe(p *[2]_C_int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Access(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chflags(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - Syscall(SYS_EXIT, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) - pgrp = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Link(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknod(path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Open(path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rename(from string, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Revoke(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0) - newoffset = int64(int64(r1)<<32 | int64(r0)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { - _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setlogin(name string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, stat *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlink(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go deleted file mode 100644 index 0d69ce6..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go +++ /dev/null @@ -1,1404 +0,0 @@ -// mksyscall.pl -openbsd -tags openbsd,amd64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_amd64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build openbsd,amd64 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, timeval *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, behav int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe(p *[2]_C_int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Access(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chflags(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - Syscall(SYS_EXIT, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) - pgrp = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Link(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknod(path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Open(path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rename(from string, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Revoke(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0) - newoffset = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { - _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setlogin(name string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, stat *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlink(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go deleted file mode 100644 index 41572c2..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go +++ /dev/null @@ -1,1404 +0,0 @@ -// mksyscall.pl -l32 -openbsd -arm -tags openbsd,arm syscall_bsd.go syscall_openbsd.go syscall_openbsd_arm.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build openbsd,arm - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, timeval *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, behav int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe(p *[2]_C_int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Access(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chflags(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - Syscall(SYS_EXIT, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) - pgrp = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Link(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknod(path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Open(path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rename(from string, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Revoke(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0) - newoffset = int64(int64(r1)<<32 | int64(r0)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { - _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setlogin(name string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, stat *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlink(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go deleted file mode 100644 index 4287133..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go +++ /dev/null @@ -1,1600 +0,0 @@ -// mksyscall_solaris.pl -tags solaris,amd64 syscall_solaris.go syscall_solaris_amd64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build solaris,amd64 - -package unix - -import ( - "syscall" - "unsafe" -) - -//go:cgo_import_dynamic libc_pipe pipe "libc.so" -//go:cgo_import_dynamic libc_getsockname getsockname "libsocket.so" -//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" -//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" -//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" -//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" -//go:cgo_import_dynamic libc_gethostname gethostname "libc.so" -//go:cgo_import_dynamic libc_utimes utimes "libc.so" -//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" -//go:cgo_import_dynamic libc_fcntl fcntl "libc.so" -//go:cgo_import_dynamic libc_futimesat futimesat "libc.so" -//go:cgo_import_dynamic libc_accept accept "libsocket.so" -//go:cgo_import_dynamic libc___xnet_recvmsg __xnet_recvmsg "libsocket.so" -//go:cgo_import_dynamic libc___xnet_sendmsg __xnet_sendmsg "libsocket.so" -//go:cgo_import_dynamic libc_acct acct "libc.so" -//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" -//go:cgo_import_dynamic libc_access access "libc.so" -//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" -//go:cgo_import_dynamic libc_chdir chdir "libc.so" -//go:cgo_import_dynamic libc_chmod chmod "libc.so" -//go:cgo_import_dynamic libc_chown chown "libc.so" -//go:cgo_import_dynamic libc_chroot chroot "libc.so" -//go:cgo_import_dynamic libc_close close "libc.so" -//go:cgo_import_dynamic libc_creat creat "libc.so" -//go:cgo_import_dynamic libc_dup dup "libc.so" -//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" -//go:cgo_import_dynamic libc_exit exit "libc.so" -//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" -//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" -//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" -//go:cgo_import_dynamic libc_fchown fchown "libc.so" -//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" -//go:cgo_import_dynamic libc_fdatasync fdatasync "libc.so" -//go:cgo_import_dynamic libc_flock flock "libc.so" -//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" -//go:cgo_import_dynamic libc_fstat fstat "libc.so" -//go:cgo_import_dynamic libc_fstatvfs fstatvfs "libc.so" -//go:cgo_import_dynamic libc_getdents getdents "libc.so" -//go:cgo_import_dynamic libc_getgid getgid "libc.so" -//go:cgo_import_dynamic libc_getpid getpid "libc.so" -//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" -//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" -//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" -//go:cgo_import_dynamic libc_getegid getegid "libc.so" -//go:cgo_import_dynamic libc_getppid getppid "libc.so" -//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" -//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" -//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" -//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" -//go:cgo_import_dynamic libc_getuid getuid "libc.so" -//go:cgo_import_dynamic libc_kill kill "libc.so" -//go:cgo_import_dynamic libc_lchown lchown "libc.so" -//go:cgo_import_dynamic libc_link link "libc.so" -//go:cgo_import_dynamic libc___xnet_llisten __xnet_llisten "libsocket.so" -//go:cgo_import_dynamic libc_lstat lstat "libc.so" -//go:cgo_import_dynamic libc_madvise madvise "libc.so" -//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" -//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" -//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" -//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" -//go:cgo_import_dynamic libc_mknod mknod "libc.so" -//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" -//go:cgo_import_dynamic libc_mlock mlock "libc.so" -//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" -//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" -//go:cgo_import_dynamic libc_munlock munlock "libc.so" -//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" -//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" -//go:cgo_import_dynamic libc_open open "libc.so" -//go:cgo_import_dynamic libc_openat openat "libc.so" -//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" -//go:cgo_import_dynamic libc_pause pause "libc.so" -//go:cgo_import_dynamic libc_pread pread "libc.so" -//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" -//go:cgo_import_dynamic libc_read read "libc.so" -//go:cgo_import_dynamic libc_readlink readlink "libc.so" -//go:cgo_import_dynamic libc_rename rename "libc.so" -//go:cgo_import_dynamic libc_renameat renameat "libc.so" -//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" -//go:cgo_import_dynamic libc_lseek lseek "libc.so" -//go:cgo_import_dynamic libc_setegid setegid "libc.so" -//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" -//go:cgo_import_dynamic libc_setgid setgid "libc.so" -//go:cgo_import_dynamic libc_sethostname sethostname "libc.so" -//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" -//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" -//go:cgo_import_dynamic libc_setregid setregid "libc.so" -//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" -//go:cgo_import_dynamic libc_setrlimit setrlimit "libc.so" -//go:cgo_import_dynamic libc_setsid setsid "libc.so" -//go:cgo_import_dynamic libc_setuid setuid "libc.so" -//go:cgo_import_dynamic libc_shutdown shutdown "libsocket.so" -//go:cgo_import_dynamic libc_stat stat "libc.so" -//go:cgo_import_dynamic libc_statvfs statvfs "libc.so" -//go:cgo_import_dynamic libc_symlink symlink "libc.so" -//go:cgo_import_dynamic libc_sync sync "libc.so" -//go:cgo_import_dynamic libc_times times "libc.so" -//go:cgo_import_dynamic libc_truncate truncate "libc.so" -//go:cgo_import_dynamic libc_fsync fsync "libc.so" -//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" -//go:cgo_import_dynamic libc_umask umask "libc.so" -//go:cgo_import_dynamic libc_uname uname "libc.so" -//go:cgo_import_dynamic libc_umount umount "libc.so" -//go:cgo_import_dynamic libc_unlink unlink "libc.so" -//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" -//go:cgo_import_dynamic libc_ustat ustat "libc.so" -//go:cgo_import_dynamic libc_utime utime "libc.so" -//go:cgo_import_dynamic libc___xnet_bind __xnet_bind "libsocket.so" -//go:cgo_import_dynamic libc___xnet_connect __xnet_connect "libsocket.so" -//go:cgo_import_dynamic libc_mmap mmap "libc.so" -//go:cgo_import_dynamic libc_munmap munmap "libc.so" -//go:cgo_import_dynamic libc___xnet_sendto __xnet_sendto "libsocket.so" -//go:cgo_import_dynamic libc___xnet_socket __xnet_socket "libsocket.so" -//go:cgo_import_dynamic libc___xnet_socketpair __xnet_socketpair "libsocket.so" -//go:cgo_import_dynamic libc_write write "libc.so" -//go:cgo_import_dynamic libc___xnet_getsockopt __xnet_getsockopt "libsocket.so" -//go:cgo_import_dynamic libc_getpeername getpeername "libsocket.so" -//go:cgo_import_dynamic libc_setsockopt setsockopt "libsocket.so" -//go:cgo_import_dynamic libc_recvfrom recvfrom "libsocket.so" -//go:cgo_import_dynamic libc_sysconf sysconf "libc.so" - -//go:linkname procpipe libc_pipe -//go:linkname procgetsockname libc_getsockname -//go:linkname procGetcwd libc_getcwd -//go:linkname procgetgroups libc_getgroups -//go:linkname procsetgroups libc_setgroups -//go:linkname procwait4 libc_wait4 -//go:linkname procgethostname libc_gethostname -//go:linkname procutimes libc_utimes -//go:linkname procutimensat libc_utimensat -//go:linkname procfcntl libc_fcntl -//go:linkname procfutimesat libc_futimesat -//go:linkname procaccept libc_accept -//go:linkname proc__xnet_recvmsg libc___xnet_recvmsg -//go:linkname proc__xnet_sendmsg libc___xnet_sendmsg -//go:linkname procacct libc_acct -//go:linkname procioctl libc_ioctl -//go:linkname procAccess libc_access -//go:linkname procAdjtime libc_adjtime -//go:linkname procChdir libc_chdir -//go:linkname procChmod libc_chmod -//go:linkname procChown libc_chown -//go:linkname procChroot libc_chroot -//go:linkname procClose libc_close -//go:linkname procCreat libc_creat -//go:linkname procDup libc_dup -//go:linkname procDup2 libc_dup2 -//go:linkname procExit libc_exit -//go:linkname procFchdir libc_fchdir -//go:linkname procFchmod libc_fchmod -//go:linkname procFchmodat libc_fchmodat -//go:linkname procFchown libc_fchown -//go:linkname procFchownat libc_fchownat -//go:linkname procFdatasync libc_fdatasync -//go:linkname procFlock libc_flock -//go:linkname procFpathconf libc_fpathconf -//go:linkname procFstat libc_fstat -//go:linkname procFstatvfs libc_fstatvfs -//go:linkname procGetdents libc_getdents -//go:linkname procGetgid libc_getgid -//go:linkname procGetpid libc_getpid -//go:linkname procGetpgid libc_getpgid -//go:linkname procGetpgrp libc_getpgrp -//go:linkname procGeteuid libc_geteuid -//go:linkname procGetegid libc_getegid -//go:linkname procGetppid libc_getppid -//go:linkname procGetpriority libc_getpriority -//go:linkname procGetrlimit libc_getrlimit -//go:linkname procGetrusage libc_getrusage -//go:linkname procGettimeofday libc_gettimeofday -//go:linkname procGetuid libc_getuid -//go:linkname procKill libc_kill -//go:linkname procLchown libc_lchown -//go:linkname procLink libc_link -//go:linkname proc__xnet_llisten libc___xnet_llisten -//go:linkname procLstat libc_lstat -//go:linkname procMadvise libc_madvise -//go:linkname procMkdir libc_mkdir -//go:linkname procMkdirat libc_mkdirat -//go:linkname procMkfifo libc_mkfifo -//go:linkname procMkfifoat libc_mkfifoat -//go:linkname procMknod libc_mknod -//go:linkname procMknodat libc_mknodat -//go:linkname procMlock libc_mlock -//go:linkname procMlockall libc_mlockall -//go:linkname procMprotect libc_mprotect -//go:linkname procMunlock libc_munlock -//go:linkname procMunlockall libc_munlockall -//go:linkname procNanosleep libc_nanosleep -//go:linkname procOpen libc_open -//go:linkname procOpenat libc_openat -//go:linkname procPathconf libc_pathconf -//go:linkname procPause libc_pause -//go:linkname procPread libc_pread -//go:linkname procPwrite libc_pwrite -//go:linkname procread libc_read -//go:linkname procReadlink libc_readlink -//go:linkname procRename libc_rename -//go:linkname procRenameat libc_renameat -//go:linkname procRmdir libc_rmdir -//go:linkname proclseek libc_lseek -//go:linkname procSetegid libc_setegid -//go:linkname procSeteuid libc_seteuid -//go:linkname procSetgid libc_setgid -//go:linkname procSethostname libc_sethostname -//go:linkname procSetpgid libc_setpgid -//go:linkname procSetpriority libc_setpriority -//go:linkname procSetregid libc_setregid -//go:linkname procSetreuid libc_setreuid -//go:linkname procSetrlimit libc_setrlimit -//go:linkname procSetsid libc_setsid -//go:linkname procSetuid libc_setuid -//go:linkname procshutdown libc_shutdown -//go:linkname procStat libc_stat -//go:linkname procStatvfs libc_statvfs -//go:linkname procSymlink libc_symlink -//go:linkname procSync libc_sync -//go:linkname procTimes libc_times -//go:linkname procTruncate libc_truncate -//go:linkname procFsync libc_fsync -//go:linkname procFtruncate libc_ftruncate -//go:linkname procUmask libc_umask -//go:linkname procUname libc_uname -//go:linkname procumount libc_umount -//go:linkname procUnlink libc_unlink -//go:linkname procUnlinkat libc_unlinkat -//go:linkname procUstat libc_ustat -//go:linkname procUtime libc_utime -//go:linkname proc__xnet_bind libc___xnet_bind -//go:linkname proc__xnet_connect libc___xnet_connect -//go:linkname procmmap libc_mmap -//go:linkname procmunmap libc_munmap -//go:linkname proc__xnet_sendto libc___xnet_sendto -//go:linkname proc__xnet_socket libc___xnet_socket -//go:linkname proc__xnet_socketpair libc___xnet_socketpair -//go:linkname procwrite libc_write -//go:linkname proc__xnet_getsockopt libc___xnet_getsockopt -//go:linkname procgetpeername libc_getpeername -//go:linkname procsetsockopt libc_setsockopt -//go:linkname procrecvfrom libc_recvfrom -//go:linkname procsysconf libc_sysconf - -var ( - procpipe, - procgetsockname, - procGetcwd, - procgetgroups, - procsetgroups, - procwait4, - procgethostname, - procutimes, - procutimensat, - procfcntl, - procfutimesat, - procaccept, - proc__xnet_recvmsg, - proc__xnet_sendmsg, - procacct, - procioctl, - procAccess, - procAdjtime, - procChdir, - procChmod, - procChown, - procChroot, - procClose, - procCreat, - procDup, - procDup2, - procExit, - procFchdir, - procFchmod, - procFchmodat, - procFchown, - procFchownat, - procFdatasync, - procFlock, - procFpathconf, - procFstat, - procFstatvfs, - procGetdents, - procGetgid, - procGetpid, - procGetpgid, - procGetpgrp, - procGeteuid, - procGetegid, - procGetppid, - procGetpriority, - procGetrlimit, - procGetrusage, - procGettimeofday, - procGetuid, - procKill, - procLchown, - procLink, - proc__xnet_llisten, - procLstat, - procMadvise, - procMkdir, - procMkdirat, - procMkfifo, - procMkfifoat, - procMknod, - procMknodat, - procMlock, - procMlockall, - procMprotect, - procMunlock, - procMunlockall, - procNanosleep, - procOpen, - procOpenat, - procPathconf, - procPause, - procPread, - procPwrite, - procread, - procReadlink, - procRename, - procRenameat, - procRmdir, - proclseek, - procSetegid, - procSeteuid, - procSetgid, - procSethostname, - procSetpgid, - procSetpriority, - procSetregid, - procSetreuid, - procSetrlimit, - procSetsid, - procSetuid, - procshutdown, - procStat, - procStatvfs, - procSymlink, - procSync, - procTimes, - procTruncate, - procFsync, - procFtruncate, - procUmask, - procUname, - procumount, - procUnlink, - procUnlinkat, - procUstat, - procUtime, - proc__xnet_bind, - proc__xnet_connect, - procmmap, - procmunmap, - proc__xnet_sendto, - proc__xnet_socket, - proc__xnet_socketpair, - procwrite, - proc__xnet_getsockopt, - procgetpeername, - procsetsockopt, - procrecvfrom, - procsysconf syscallFunc -) - -func pipe(p *[2]_C_int) (n int, err error) { - r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procpipe)), 1, uintptr(unsafe.Pointer(p)), 0, 0, 0, 0, 0) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgetsockname)), 3, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Getcwd(buf []byte) (n int, err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetcwd)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), 0, 0, 0, 0) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procgetgroups)), 2, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0, 0, 0, 0) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procsetgroups)), 2, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func wait4(pid int32, statusp *_C_int, options int, rusage *Rusage) (wpid int32, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwait4)), 4, uintptr(pid), uintptr(unsafe.Pointer(statusp)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int32(r0) - if e1 != 0 { - err = e1 - } - return -} - -func gethostname(buf []byte) (n int, err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgethostname)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), 0, 0, 0, 0) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -func utimes(path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procutimes)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func utimensat(fd int, path string, times *[2]Timespec, flag int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procutimensat)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flag), 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(arg), 0, 0, 0) - val = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -func futimesat(fildes int, path *byte, times *[2]Timeval) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfutimesat)), 3, uintptr(fildes), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times)), 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procaccept)), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_recvmsg)), 3, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_sendmsg)), 3, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -func acct(path *byte) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procacct)), 1, uintptr(unsafe.Pointer(path)), 0, 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procioctl)), 3, uintptr(fd), uintptr(req), uintptr(arg), 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Access(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procAccess)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procAdjtime)), 2, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChdir)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChmod)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChown)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChroot)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Close(fd int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procClose)), 1, uintptr(fd), 0, 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Creat(path string, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procCreat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -func Dup(fd int) (nfd int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procDup)), 1, uintptr(fd), 0, 0, 0, 0, 0) - nfd = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -func Dup2(oldfd int, newfd int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procDup2)), 2, uintptr(oldfd), uintptr(newfd), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Exit(code int) { - sysvicall6(uintptr(unsafe.Pointer(&procExit)), 1, uintptr(code), 0, 0, 0, 0, 0) - return -} - -func Fchdir(fd int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchdir)), 1, uintptr(fd), 0, 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchmod)), 2, uintptr(fd), uintptr(mode), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchmodat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchown)), 3, uintptr(fd), uintptr(uid), uintptr(gid), 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchownat)), 5, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = e1 - } - return -} - -func Fdatasync(fd int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFdatasync)), 1, uintptr(fd), 0, 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Flock(fd int, how int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFlock)), 2, uintptr(fd), uintptr(how), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFpathconf)), 2, uintptr(fd), uintptr(name), 0, 0, 0, 0) - val = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFstat)), 2, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Fstatvfs(fd int, vfsstat *Statvfs_t) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFstatvfs)), 2, uintptr(fd), uintptr(unsafe.Pointer(vfsstat)), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Getdents(fd int, buf []byte, basep *uintptr) (n int, err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetdents)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -func Getgid() (gid int) { - r0, _, _ := rawSysvicall6(uintptr(unsafe.Pointer(&procGetgid)), 0, 0, 0, 0, 0, 0, 0) - gid = int(r0) - return -} - -func Getpid() (pid int) { - r0, _, _ := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpid)), 0, 0, 0, 0, 0, 0, 0) - pid = int(r0) - return -} - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpgid)), 1, uintptr(pid), 0, 0, 0, 0, 0) - pgid = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -func Getpgrp() (pgid int, err error) { - r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpgrp)), 0, 0, 0, 0, 0, 0, 0) - pgid = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -func Geteuid() (euid int) { - r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGeteuid)), 0, 0, 0, 0, 0, 0, 0) - euid = int(r0) - return -} - -func Getegid() (egid int) { - r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGetegid)), 0, 0, 0, 0, 0, 0, 0) - egid = int(r0) - return -} - -func Getppid() (ppid int) { - r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGetppid)), 0, 0, 0, 0, 0, 0, 0) - ppid = int(r0) - return -} - -func Getpriority(which int, who int) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetpriority)), 2, uintptr(which), uintptr(who), 0, 0, 0, 0) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetrlimit)), 2, uintptr(which), uintptr(unsafe.Pointer(lim)), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetrusage)), 2, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGettimeofday)), 1, uintptr(unsafe.Pointer(tv)), 0, 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Getuid() (uid int) { - r0, _, _ := rawSysvicall6(uintptr(unsafe.Pointer(&procGetuid)), 0, 0, 0, 0, 0, 0, 0) - uid = int(r0) - return -} - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procKill)), 2, uintptr(pid), uintptr(signum), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procLchown)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Link(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procLink)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Listen(s int, backlog int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_llisten)), 2, uintptr(s), uintptr(backlog), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procLstat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Madvise(b []byte, advice int) (err error) { - var _p0 *byte - if len(b) > 0 { - _p0 = &b[0] - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMadvise)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(advice), 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkdir)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkdirat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkfifo)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Mkfifoat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkfifoat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Mknod(path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMknod)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMknodat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Mlock(b []byte) (err error) { - var _p0 *byte - if len(b) > 0 { - _p0 = &b[0] - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMlock)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Mlockall(flags int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMlockall)), 1, uintptr(flags), 0, 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Mprotect(b []byte, prot int) (err error) { - var _p0 *byte - if len(b) > 0 { - _p0 = &b[0] - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMprotect)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(prot), 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Munlock(b []byte) (err error) { - var _p0 *byte - if len(b) > 0 { - _p0 = &b[0] - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMunlock)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Munlockall() (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMunlockall)), 0, 0, 0, 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procNanosleep)), 2, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Open(path string, mode int, perm uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procOpen)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -func Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procOpenat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) - fd = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -func Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procPathconf)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0, 0, 0, 0) - val = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -func Pause() (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procPause)), 0, 0, 0, 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Pread(fd int, p []byte, offset int64) (n int, err error) { - var _p0 *byte - if len(p) > 0 { - _p0 = &p[0] - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procPread)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -func Pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 *byte - if len(p) > 0 { - _p0 = &p[0] - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procPwrite)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -func read(fd int, p []byte) (n int, err error) { - var _p0 *byte - if len(p) > 0 { - _p0 = &p[0] - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procread)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0, 0, 0) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -func Readlink(path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - if len(buf) > 0 { - _p1 = &buf[0] - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procReadlink)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(len(buf)), 0, 0, 0) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -func Rename(from string, to string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(from) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(to) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procRename)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procRenameat)), 4, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procRmdir)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proclseek)), 3, uintptr(fd), uintptr(offset), uintptr(whence), 0, 0, 0) - newoffset = int64(r0) - if e1 != 0 { - err = e1 - } - return -} - -func Setegid(egid int) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetegid)), 1, uintptr(egid), 0, 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Seteuid(euid int) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSeteuid)), 1, uintptr(euid), 0, 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Setgid(gid int) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetgid)), 1, uintptr(gid), 0, 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Sethostname(p []byte) (err error) { - var _p0 *byte - if len(p) > 0 { - _p0 = &p[0] - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSethostname)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetpgid)), 2, uintptr(pid), uintptr(pgid), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSetpriority)), 3, uintptr(which), uintptr(who), uintptr(prio), 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetregid)), 2, uintptr(rgid), uintptr(egid), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetreuid)), 2, uintptr(ruid), uintptr(euid), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Setrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetrlimit)), 2, uintptr(which), uintptr(unsafe.Pointer(lim)), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Setsid() (pid int, err error) { - r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetsid)), 0, 0, 0, 0, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -func Setuid(uid int) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetuid)), 1, uintptr(uid), 0, 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Shutdown(s int, how int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procshutdown)), 2, uintptr(s), uintptr(how), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procStat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Statvfs(path string, vfsstat *Statvfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procStatvfs)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(vfsstat)), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Symlink(path string, link string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(link) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSymlink)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Sync() (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSync)), 0, 0, 0, 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procTimes)), 1, uintptr(unsafe.Pointer(tms)), 0, 0, 0, 0, 0) - ticks = uintptr(r0) - if e1 != 0 { - err = e1 - } - return -} - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procTruncate)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Fsync(fd int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFsync)), 1, uintptr(fd), 0, 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFtruncate)), 2, uintptr(fd), uintptr(length), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Umask(mask int) (oldmask int) { - r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procUmask)), 1, uintptr(mask), 0, 0, 0, 0, 0) - oldmask = int(r0) - return -} - -func Uname(buf *Utsname) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procUname)), 1, uintptr(unsafe.Pointer(buf)), 0, 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Unmount(target string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procumount)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUnlink)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUnlinkat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUstat)), 2, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUtime)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_bind)), 3, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_connect)), 3, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procmmap)), 6, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) - ret = uintptr(r0) - if e1 != 0 { - err = e1 - } - return -} - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procmunmap)), 2, uintptr(addr), uintptr(length), 0, 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_sendto)), 6, uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = e1 - } - return -} - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_socket)), 3, uintptr(domain), uintptr(typ), uintptr(proto), 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&proc__xnet_socketpair)), 4, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func write(fd int, p []byte) (n int, err error) { - var _p0 *byte - if len(p) > 0 { - _p0 = &p[0] - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwrite)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0, 0, 0) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_getsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = e1 - } - return -} - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procgetpeername)), 3, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procsetsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = e1 - } - return -} - -func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 *byte - if len(p) > 0 { - _p0 = &p[0] - } - r0, _, 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 = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -func sysconf(name int) (n int64, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procsysconf)), 1, uintptr(name), 0, 0, 0, 0, 0) - n = int64(r0) - if e1 != 0 { - err = e1 - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd.go deleted file mode 100644 index 83bb935..0000000 --- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd.go +++ /dev/null @@ -1,270 +0,0 @@ -// mksysctl_openbsd.pl -// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT - -package unix - -type mibentry struct { - ctlname string - ctloid []_C_int -} - -var sysctlMib = []mibentry{ - {"ddb.console", []_C_int{9, 6}}, - {"ddb.log", []_C_int{9, 7}}, - {"ddb.max_line", []_C_int{9, 3}}, - {"ddb.max_width", []_C_int{9, 2}}, - {"ddb.panic", []_C_int{9, 5}}, - {"ddb.radix", []_C_int{9, 1}}, - {"ddb.tab_stop_width", []_C_int{9, 4}}, - {"ddb.trigger", []_C_int{9, 8}}, - {"fs.posix.setuid", []_C_int{3, 1, 1}}, - {"hw.allowpowerdown", []_C_int{6, 22}}, - {"hw.byteorder", []_C_int{6, 4}}, - {"hw.cpuspeed", []_C_int{6, 12}}, - {"hw.diskcount", []_C_int{6, 10}}, - {"hw.disknames", []_C_int{6, 8}}, - {"hw.diskstats", []_C_int{6, 9}}, - {"hw.machine", []_C_int{6, 1}}, - {"hw.model", []_C_int{6, 2}}, - {"hw.ncpu", []_C_int{6, 3}}, - {"hw.ncpufound", []_C_int{6, 21}}, - {"hw.pagesize", []_C_int{6, 7}}, - {"hw.physmem", []_C_int{6, 19}}, - {"hw.product", []_C_int{6, 15}}, - {"hw.serialno", []_C_int{6, 17}}, - {"hw.setperf", []_C_int{6, 13}}, - {"hw.usermem", []_C_int{6, 20}}, - {"hw.uuid", []_C_int{6, 18}}, - {"hw.vendor", []_C_int{6, 14}}, - {"hw.version", []_C_int{6, 16}}, - {"kern.arandom", []_C_int{1, 37}}, - {"kern.argmax", []_C_int{1, 8}}, - {"kern.boottime", []_C_int{1, 21}}, - {"kern.bufcachepercent", []_C_int{1, 72}}, - {"kern.ccpu", []_C_int{1, 45}}, - {"kern.clockrate", []_C_int{1, 12}}, - {"kern.consdev", []_C_int{1, 75}}, - {"kern.cp_time", []_C_int{1, 40}}, - {"kern.cp_time2", []_C_int{1, 71}}, - {"kern.cryptodevallowsoft", []_C_int{1, 53}}, - {"kern.domainname", []_C_int{1, 22}}, - {"kern.file", []_C_int{1, 73}}, - {"kern.forkstat", []_C_int{1, 42}}, - {"kern.fscale", []_C_int{1, 46}}, - {"kern.fsync", []_C_int{1, 33}}, - {"kern.hostid", []_C_int{1, 11}}, - {"kern.hostname", []_C_int{1, 10}}, - {"kern.intrcnt.nintrcnt", []_C_int{1, 63, 1}}, - {"kern.job_control", []_C_int{1, 19}}, - {"kern.malloc.buckets", []_C_int{1, 39, 1}}, - {"kern.malloc.kmemnames", []_C_int{1, 39, 3}}, - {"kern.maxclusters", []_C_int{1, 67}}, - {"kern.maxfiles", []_C_int{1, 7}}, - {"kern.maxlocksperuid", []_C_int{1, 70}}, - {"kern.maxpartitions", []_C_int{1, 23}}, - {"kern.maxproc", []_C_int{1, 6}}, - {"kern.maxthread", []_C_int{1, 25}}, - {"kern.maxvnodes", []_C_int{1, 5}}, - {"kern.mbstat", []_C_int{1, 59}}, - {"kern.msgbuf", []_C_int{1, 48}}, - {"kern.msgbufsize", []_C_int{1, 38}}, - {"kern.nchstats", []_C_int{1, 41}}, - {"kern.netlivelocks", []_C_int{1, 76}}, - {"kern.nfiles", []_C_int{1, 56}}, - {"kern.ngroups", []_C_int{1, 18}}, - {"kern.nosuidcoredump", []_C_int{1, 32}}, - {"kern.nprocs", []_C_int{1, 47}}, - {"kern.nselcoll", []_C_int{1, 43}}, - {"kern.nthreads", []_C_int{1, 26}}, - {"kern.numvnodes", []_C_int{1, 58}}, - {"kern.osrelease", []_C_int{1, 2}}, - {"kern.osrevision", []_C_int{1, 3}}, - {"kern.ostype", []_C_int{1, 1}}, - {"kern.osversion", []_C_int{1, 27}}, - {"kern.pool_debug", []_C_int{1, 77}}, - {"kern.posix1version", []_C_int{1, 17}}, - {"kern.proc", []_C_int{1, 66}}, - {"kern.random", []_C_int{1, 31}}, - {"kern.rawpartition", []_C_int{1, 24}}, - {"kern.saved_ids", []_C_int{1, 20}}, - {"kern.securelevel", []_C_int{1, 9}}, - {"kern.seminfo", []_C_int{1, 61}}, - {"kern.shminfo", []_C_int{1, 62}}, - {"kern.somaxconn", []_C_int{1, 28}}, - {"kern.sominconn", []_C_int{1, 29}}, - {"kern.splassert", []_C_int{1, 54}}, - {"kern.stackgap_random", []_C_int{1, 50}}, - {"kern.sysvipc_info", []_C_int{1, 51}}, - {"kern.sysvmsg", []_C_int{1, 34}}, - {"kern.sysvsem", []_C_int{1, 35}}, - {"kern.sysvshm", []_C_int{1, 36}}, - {"kern.timecounter.choice", []_C_int{1, 69, 4}}, - {"kern.timecounter.hardware", []_C_int{1, 69, 3}}, - {"kern.timecounter.tick", []_C_int{1, 69, 1}}, - {"kern.timecounter.timestepwarnings", []_C_int{1, 69, 2}}, - {"kern.tty.maxptys", []_C_int{1, 44, 6}}, - {"kern.tty.nptys", []_C_int{1, 44, 7}}, - {"kern.tty.tk_cancc", []_C_int{1, 44, 4}}, - {"kern.tty.tk_nin", []_C_int{1, 44, 1}}, - {"kern.tty.tk_nout", []_C_int{1, 44, 2}}, - {"kern.tty.tk_rawcc", []_C_int{1, 44, 3}}, - {"kern.tty.ttyinfo", []_C_int{1, 44, 5}}, - {"kern.ttycount", []_C_int{1, 57}}, - {"kern.userasymcrypto", []_C_int{1, 60}}, - {"kern.usercrypto", []_C_int{1, 52}}, - {"kern.usermount", []_C_int{1, 30}}, - {"kern.version", []_C_int{1, 4}}, - {"kern.vnode", []_C_int{1, 13}}, - {"kern.watchdog.auto", []_C_int{1, 64, 2}}, - {"kern.watchdog.period", []_C_int{1, 64, 1}}, - {"net.bpf.bufsize", []_C_int{4, 31, 1}}, - {"net.bpf.maxbufsize", []_C_int{4, 31, 2}}, - {"net.inet.ah.enable", []_C_int{4, 2, 51, 1}}, - {"net.inet.ah.stats", []_C_int{4, 2, 51, 2}}, - {"net.inet.carp.allow", []_C_int{4, 2, 112, 1}}, - {"net.inet.carp.log", []_C_int{4, 2, 112, 3}}, - {"net.inet.carp.preempt", []_C_int{4, 2, 112, 2}}, - {"net.inet.carp.stats", []_C_int{4, 2, 112, 4}}, - {"net.inet.divert.recvspace", []_C_int{4, 2, 258, 1}}, - {"net.inet.divert.sendspace", []_C_int{4, 2, 258, 2}}, - {"net.inet.divert.stats", []_C_int{4, 2, 258, 3}}, - {"net.inet.esp.enable", []_C_int{4, 2, 50, 1}}, - {"net.inet.esp.stats", []_C_int{4, 2, 50, 4}}, - {"net.inet.esp.udpencap", []_C_int{4, 2, 50, 2}}, - {"net.inet.esp.udpencap_port", []_C_int{4, 2, 50, 3}}, - {"net.inet.etherip.allow", []_C_int{4, 2, 97, 1}}, - {"net.inet.etherip.stats", []_C_int{4, 2, 97, 2}}, - {"net.inet.gre.allow", []_C_int{4, 2, 47, 1}}, - {"net.inet.gre.wccp", []_C_int{4, 2, 47, 2}}, - {"net.inet.icmp.bmcastecho", []_C_int{4, 2, 1, 2}}, - {"net.inet.icmp.errppslimit", []_C_int{4, 2, 1, 3}}, - {"net.inet.icmp.maskrepl", []_C_int{4, 2, 1, 1}}, - {"net.inet.icmp.rediraccept", []_C_int{4, 2, 1, 4}}, - {"net.inet.icmp.redirtimeout", []_C_int{4, 2, 1, 5}}, - {"net.inet.icmp.stats", []_C_int{4, 2, 1, 7}}, - {"net.inet.icmp.tstamprepl", []_C_int{4, 2, 1, 6}}, - {"net.inet.igmp.stats", []_C_int{4, 2, 2, 1}}, - {"net.inet.ip.arpqueued", []_C_int{4, 2, 0, 36}}, - {"net.inet.ip.encdebug", []_C_int{4, 2, 0, 12}}, - {"net.inet.ip.forwarding", []_C_int{4, 2, 0, 1}}, - {"net.inet.ip.ifq.congestion", []_C_int{4, 2, 0, 30, 4}}, - {"net.inet.ip.ifq.drops", []_C_int{4, 2, 0, 30, 3}}, - {"net.inet.ip.ifq.len", []_C_int{4, 2, 0, 30, 1}}, - {"net.inet.ip.ifq.maxlen", []_C_int{4, 2, 0, 30, 2}}, - {"net.inet.ip.maxqueue", []_C_int{4, 2, 0, 11}}, - {"net.inet.ip.mforwarding", []_C_int{4, 2, 0, 31}}, - {"net.inet.ip.mrtproto", []_C_int{4, 2, 0, 34}}, - {"net.inet.ip.mrtstats", []_C_int{4, 2, 0, 35}}, - {"net.inet.ip.mtu", []_C_int{4, 2, 0, 4}}, - {"net.inet.ip.mtudisc", []_C_int{4, 2, 0, 27}}, - {"net.inet.ip.mtudisctimeout", []_C_int{4, 2, 0, 28}}, - {"net.inet.ip.multipath", []_C_int{4, 2, 0, 32}}, - {"net.inet.ip.portfirst", []_C_int{4, 2, 0, 7}}, - {"net.inet.ip.porthifirst", []_C_int{4, 2, 0, 9}}, - {"net.inet.ip.porthilast", []_C_int{4, 2, 0, 10}}, - {"net.inet.ip.portlast", []_C_int{4, 2, 0, 8}}, - {"net.inet.ip.redirect", []_C_int{4, 2, 0, 2}}, - {"net.inet.ip.sourceroute", []_C_int{4, 2, 0, 5}}, - {"net.inet.ip.stats", []_C_int{4, 2, 0, 33}}, - {"net.inet.ip.ttl", []_C_int{4, 2, 0, 3}}, - {"net.inet.ipcomp.enable", []_C_int{4, 2, 108, 1}}, - {"net.inet.ipcomp.stats", []_C_int{4, 2, 108, 2}}, - {"net.inet.ipip.allow", []_C_int{4, 2, 4, 1}}, - {"net.inet.ipip.stats", []_C_int{4, 2, 4, 2}}, - {"net.inet.mobileip.allow", []_C_int{4, 2, 55, 1}}, - {"net.inet.pfsync.stats", []_C_int{4, 2, 240, 1}}, - {"net.inet.pim.stats", []_C_int{4, 2, 103, 1}}, - {"net.inet.tcp.ackonpush", []_C_int{4, 2, 6, 13}}, - {"net.inet.tcp.always_keepalive", []_C_int{4, 2, 6, 22}}, - {"net.inet.tcp.baddynamic", []_C_int{4, 2, 6, 6}}, - {"net.inet.tcp.drop", []_C_int{4, 2, 6, 19}}, - {"net.inet.tcp.ecn", []_C_int{4, 2, 6, 14}}, - {"net.inet.tcp.ident", []_C_int{4, 2, 6, 9}}, - {"net.inet.tcp.keepidle", []_C_int{4, 2, 6, 3}}, - {"net.inet.tcp.keepinittime", []_C_int{4, 2, 6, 2}}, - {"net.inet.tcp.keepintvl", []_C_int{4, 2, 6, 4}}, - {"net.inet.tcp.mssdflt", []_C_int{4, 2, 6, 11}}, - {"net.inet.tcp.reasslimit", []_C_int{4, 2, 6, 18}}, - {"net.inet.tcp.rfc1323", []_C_int{4, 2, 6, 1}}, - {"net.inet.tcp.rfc3390", []_C_int{4, 2, 6, 17}}, - {"net.inet.tcp.rstppslimit", []_C_int{4, 2, 6, 12}}, - {"net.inet.tcp.sack", []_C_int{4, 2, 6, 10}}, - {"net.inet.tcp.sackholelimit", []_C_int{4, 2, 6, 20}}, - {"net.inet.tcp.slowhz", []_C_int{4, 2, 6, 5}}, - {"net.inet.tcp.stats", []_C_int{4, 2, 6, 21}}, - {"net.inet.tcp.synbucketlimit", []_C_int{4, 2, 6, 16}}, - {"net.inet.tcp.syncachelimit", []_C_int{4, 2, 6, 15}}, - {"net.inet.udp.baddynamic", []_C_int{4, 2, 17, 2}}, - {"net.inet.udp.checksum", []_C_int{4, 2, 17, 1}}, - {"net.inet.udp.recvspace", []_C_int{4, 2, 17, 3}}, - {"net.inet.udp.sendspace", []_C_int{4, 2, 17, 4}}, - {"net.inet.udp.stats", []_C_int{4, 2, 17, 5}}, - {"net.inet6.divert.recvspace", []_C_int{4, 24, 86, 1}}, - {"net.inet6.divert.sendspace", []_C_int{4, 24, 86, 2}}, - {"net.inet6.divert.stats", []_C_int{4, 24, 86, 3}}, - {"net.inet6.icmp6.errppslimit", []_C_int{4, 24, 30, 14}}, - {"net.inet6.icmp6.mtudisc_hiwat", []_C_int{4, 24, 30, 16}}, - {"net.inet6.icmp6.mtudisc_lowat", []_C_int{4, 24, 30, 17}}, - {"net.inet6.icmp6.nd6_debug", []_C_int{4, 24, 30, 18}}, - {"net.inet6.icmp6.nd6_delay", []_C_int{4, 24, 30, 8}}, - {"net.inet6.icmp6.nd6_maxnudhint", []_C_int{4, 24, 30, 15}}, - {"net.inet6.icmp6.nd6_mmaxtries", []_C_int{4, 24, 30, 10}}, - {"net.inet6.icmp6.nd6_prune", []_C_int{4, 24, 30, 6}}, - {"net.inet6.icmp6.nd6_umaxtries", []_C_int{4, 24, 30, 9}}, - {"net.inet6.icmp6.nd6_useloopback", []_C_int{4, 24, 30, 11}}, - {"net.inet6.icmp6.nodeinfo", []_C_int{4, 24, 30, 13}}, - {"net.inet6.icmp6.rediraccept", []_C_int{4, 24, 30, 2}}, - {"net.inet6.icmp6.redirtimeout", []_C_int{4, 24, 30, 3}}, - {"net.inet6.ip6.accept_rtadv", []_C_int{4, 24, 17, 12}}, - {"net.inet6.ip6.auto_flowlabel", []_C_int{4, 24, 17, 17}}, - {"net.inet6.ip6.dad_count", []_C_int{4, 24, 17, 16}}, - {"net.inet6.ip6.dad_pending", []_C_int{4, 24, 17, 49}}, - {"net.inet6.ip6.defmcasthlim", []_C_int{4, 24, 17, 18}}, - {"net.inet6.ip6.forwarding", []_C_int{4, 24, 17, 1}}, - {"net.inet6.ip6.forwsrcrt", []_C_int{4, 24, 17, 5}}, - {"net.inet6.ip6.hdrnestlimit", []_C_int{4, 24, 17, 15}}, - {"net.inet6.ip6.hlim", []_C_int{4, 24, 17, 3}}, - {"net.inet6.ip6.log_interval", []_C_int{4, 24, 17, 14}}, - {"net.inet6.ip6.maxdynroutes", []_C_int{4, 24, 17, 48}}, - {"net.inet6.ip6.maxfragpackets", []_C_int{4, 24, 17, 9}}, - {"net.inet6.ip6.maxfrags", []_C_int{4, 24, 17, 41}}, - {"net.inet6.ip6.maxifdefrouters", []_C_int{4, 24, 17, 47}}, - {"net.inet6.ip6.maxifprefixes", []_C_int{4, 24, 17, 46}}, - {"net.inet6.ip6.mforwarding", []_C_int{4, 24, 17, 42}}, - {"net.inet6.ip6.mrtproto", []_C_int{4, 24, 17, 8}}, - {"net.inet6.ip6.mtudisctimeout", []_C_int{4, 24, 17, 50}}, - {"net.inet6.ip6.multicast_mtudisc", []_C_int{4, 24, 17, 44}}, - {"net.inet6.ip6.multipath", []_C_int{4, 24, 17, 43}}, - {"net.inet6.ip6.neighborgcthresh", []_C_int{4, 24, 17, 45}}, - {"net.inet6.ip6.redirect", []_C_int{4, 24, 17, 2}}, - {"net.inet6.ip6.rr_prune", []_C_int{4, 24, 17, 22}}, - {"net.inet6.ip6.sourcecheck", []_C_int{4, 24, 17, 10}}, - {"net.inet6.ip6.sourcecheck_logint", []_C_int{4, 24, 17, 11}}, - {"net.inet6.ip6.use_deprecated", []_C_int{4, 24, 17, 21}}, - {"net.inet6.ip6.v6only", []_C_int{4, 24, 17, 24}}, - {"net.key.sadb_dump", []_C_int{4, 30, 1}}, - {"net.key.spd_dump", []_C_int{4, 30, 2}}, - {"net.mpls.ifq.congestion", []_C_int{4, 33, 3, 4}}, - {"net.mpls.ifq.drops", []_C_int{4, 33, 3, 3}}, - {"net.mpls.ifq.len", []_C_int{4, 33, 3, 1}}, - {"net.mpls.ifq.maxlen", []_C_int{4, 33, 3, 2}}, - {"net.mpls.mapttl_ip", []_C_int{4, 33, 5}}, - {"net.mpls.mapttl_ip6", []_C_int{4, 33, 6}}, - {"net.mpls.maxloop_inkernel", []_C_int{4, 33, 4}}, - {"net.mpls.ttl", []_C_int{4, 33, 2}}, - {"net.pflow.stats", []_C_int{4, 34, 1}}, - {"net.pipex.enable", []_C_int{4, 35, 1}}, - {"vm.anonmin", []_C_int{2, 7}}, - {"vm.loadavg", []_C_int{2, 2}}, - {"vm.maxslp", []_C_int{2, 10}}, - {"vm.nkmempages", []_C_int{2, 6}}, - {"vm.psstrings", []_C_int{2, 3}}, - {"vm.swapencrypt.enable", []_C_int{2, 5, 0}}, - {"vm.swapencrypt.keyscreated", []_C_int{2, 5, 1}}, - {"vm.swapencrypt.keysdeleted", []_C_int{2, 5, 2}}, - {"vm.uspace", []_C_int{2, 11}}, - {"vm.uvmexp", []_C_int{2, 4}}, - {"vm.vmmeter", []_C_int{2, 1}}, - {"vm.vnodemin", []_C_int{2, 9}}, - {"vm.vtextmin", []_C_int{2, 8}}, -} diff --git a/vendor/golang.org/x/sys/unix/zsysnum_darwin_386.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_386.go deleted file mode 100644 index 2786773..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_darwin_386.go +++ /dev/null @@ -1,398 +0,0 @@ -// mksysnum_darwin.pl /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/sys/syscall.h -// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT - -// +build 386,darwin - -package unix - -const ( - SYS_SYSCALL = 0 - SYS_EXIT = 1 - SYS_FORK = 2 - SYS_READ = 3 - SYS_WRITE = 4 - SYS_OPEN = 5 - SYS_CLOSE = 6 - SYS_WAIT4 = 7 - SYS_LINK = 9 - SYS_UNLINK = 10 - SYS_CHDIR = 12 - SYS_FCHDIR = 13 - SYS_MKNOD = 14 - SYS_CHMOD = 15 - SYS_CHOWN = 16 - SYS_GETFSSTAT = 18 - SYS_GETPID = 20 - SYS_SETUID = 23 - SYS_GETUID = 24 - SYS_GETEUID = 25 - SYS_PTRACE = 26 - SYS_RECVMSG = 27 - SYS_SENDMSG = 28 - SYS_RECVFROM = 29 - SYS_ACCEPT = 30 - SYS_GETPEERNAME = 31 - SYS_GETSOCKNAME = 32 - SYS_ACCESS = 33 - SYS_CHFLAGS = 34 - SYS_FCHFLAGS = 35 - SYS_SYNC = 36 - SYS_KILL = 37 - SYS_GETPPID = 39 - SYS_DUP = 41 - SYS_PIPE = 42 - SYS_GETEGID = 43 - SYS_SIGACTION = 46 - SYS_GETGID = 47 - SYS_SIGPROCMASK = 48 - SYS_GETLOGIN = 49 - SYS_SETLOGIN = 50 - SYS_ACCT = 51 - SYS_SIGPENDING = 52 - SYS_SIGALTSTACK = 53 - SYS_IOCTL = 54 - SYS_REBOOT = 55 - SYS_REVOKE = 56 - SYS_SYMLINK = 57 - SYS_READLINK = 58 - SYS_EXECVE = 59 - SYS_UMASK = 60 - SYS_CHROOT = 61 - SYS_MSYNC = 65 - SYS_VFORK = 66 - SYS_MUNMAP = 73 - SYS_MPROTECT = 74 - SYS_MADVISE = 75 - SYS_MINCORE = 78 - SYS_GETGROUPS = 79 - SYS_SETGROUPS = 80 - SYS_GETPGRP = 81 - SYS_SETPGID = 82 - SYS_SETITIMER = 83 - SYS_SWAPON = 85 - SYS_GETITIMER = 86 - SYS_GETDTABLESIZE = 89 - SYS_DUP2 = 90 - SYS_FCNTL = 92 - SYS_SELECT = 93 - SYS_FSYNC = 95 - SYS_SETPRIORITY = 96 - SYS_SOCKET = 97 - SYS_CONNECT = 98 - SYS_GETPRIORITY = 100 - SYS_BIND = 104 - SYS_SETSOCKOPT = 105 - SYS_LISTEN = 106 - SYS_SIGSUSPEND = 111 - SYS_GETTIMEOFDAY = 116 - SYS_GETRUSAGE = 117 - SYS_GETSOCKOPT = 118 - SYS_READV = 120 - SYS_WRITEV = 121 - SYS_SETTIMEOFDAY = 122 - SYS_FCHOWN = 123 - SYS_FCHMOD = 124 - SYS_SETREUID = 126 - SYS_SETREGID = 127 - SYS_RENAME = 128 - SYS_FLOCK = 131 - SYS_MKFIFO = 132 - SYS_SENDTO = 133 - SYS_SHUTDOWN = 134 - SYS_SOCKETPAIR = 135 - SYS_MKDIR = 136 - SYS_RMDIR = 137 - SYS_UTIMES = 138 - SYS_FUTIMES = 139 - SYS_ADJTIME = 140 - SYS_GETHOSTUUID = 142 - SYS_SETSID = 147 - SYS_GETPGID = 151 - SYS_SETPRIVEXEC = 152 - SYS_PREAD = 153 - SYS_PWRITE = 154 - SYS_NFSSVC = 155 - SYS_STATFS = 157 - SYS_FSTATFS = 158 - SYS_UNMOUNT = 159 - SYS_GETFH = 161 - SYS_QUOTACTL = 165 - SYS_MOUNT = 167 - SYS_CSOPS = 169 - SYS_CSOPS_AUDITTOKEN = 170 - SYS_WAITID = 173 - SYS_KDEBUG_TRACE64 = 179 - SYS_KDEBUG_TRACE = 180 - SYS_SETGID = 181 - SYS_SETEGID = 182 - SYS_SETEUID = 183 - SYS_SIGRETURN = 184 - SYS_CHUD = 185 - SYS_FDATASYNC = 187 - SYS_STAT = 188 - SYS_FSTAT = 189 - SYS_LSTAT = 190 - SYS_PATHCONF = 191 - SYS_FPATHCONF = 192 - SYS_GETRLIMIT = 194 - SYS_SETRLIMIT = 195 - SYS_GETDIRENTRIES = 196 - SYS_MMAP = 197 - SYS_LSEEK = 199 - SYS_TRUNCATE = 200 - SYS_FTRUNCATE = 201 - SYS_SYSCTL = 202 - SYS_MLOCK = 203 - SYS_MUNLOCK = 204 - SYS_UNDELETE = 205 - SYS_OPEN_DPROTECTED_NP = 216 - SYS_GETATTRLIST = 220 - SYS_SETATTRLIST = 221 - SYS_GETDIRENTRIESATTR = 222 - SYS_EXCHANGEDATA = 223 - SYS_SEARCHFS = 225 - SYS_DELETE = 226 - SYS_COPYFILE = 227 - SYS_FGETATTRLIST = 228 - SYS_FSETATTRLIST = 229 - SYS_POLL = 230 - SYS_WATCHEVENT = 231 - SYS_WAITEVENT = 232 - SYS_MODWATCH = 233 - SYS_GETXATTR = 234 - SYS_FGETXATTR = 235 - SYS_SETXATTR = 236 - SYS_FSETXATTR = 237 - SYS_REMOVEXATTR = 238 - SYS_FREMOVEXATTR = 239 - SYS_LISTXATTR = 240 - SYS_FLISTXATTR = 241 - SYS_FSCTL = 242 - SYS_INITGROUPS = 243 - SYS_POSIX_SPAWN = 244 - SYS_FFSCTL = 245 - SYS_NFSCLNT = 247 - SYS_FHOPEN = 248 - SYS_MINHERIT = 250 - SYS_SEMSYS = 251 - SYS_MSGSYS = 252 - SYS_SHMSYS = 253 - SYS_SEMCTL = 254 - SYS_SEMGET = 255 - SYS_SEMOP = 256 - SYS_MSGCTL = 258 - SYS_MSGGET = 259 - SYS_MSGSND = 260 - SYS_MSGRCV = 261 - SYS_SHMAT = 262 - SYS_SHMCTL = 263 - SYS_SHMDT = 264 - SYS_SHMGET = 265 - SYS_SHM_OPEN = 266 - SYS_SHM_UNLINK = 267 - SYS_SEM_OPEN = 268 - SYS_SEM_CLOSE = 269 - SYS_SEM_UNLINK = 270 - SYS_SEM_WAIT = 271 - SYS_SEM_TRYWAIT = 272 - SYS_SEM_POST = 273 - SYS_SYSCTLBYNAME = 274 - SYS_OPEN_EXTENDED = 277 - SYS_UMASK_EXTENDED = 278 - SYS_STAT_EXTENDED = 279 - SYS_LSTAT_EXTENDED = 280 - SYS_FSTAT_EXTENDED = 281 - SYS_CHMOD_EXTENDED = 282 - SYS_FCHMOD_EXTENDED = 283 - SYS_ACCESS_EXTENDED = 284 - SYS_SETTID = 285 - SYS_GETTID = 286 - SYS_SETSGROUPS = 287 - SYS_GETSGROUPS = 288 - SYS_SETWGROUPS = 289 - SYS_GETWGROUPS = 290 - SYS_MKFIFO_EXTENDED = 291 - SYS_MKDIR_EXTENDED = 292 - SYS_IDENTITYSVC = 293 - SYS_SHARED_REGION_CHECK_NP = 294 - SYS_VM_PRESSURE_MONITOR = 296 - SYS_PSYNCH_RW_LONGRDLOCK = 297 - SYS_PSYNCH_RW_YIELDWRLOCK = 298 - SYS_PSYNCH_RW_DOWNGRADE = 299 - SYS_PSYNCH_RW_UPGRADE = 300 - SYS_PSYNCH_MUTEXWAIT = 301 - SYS_PSYNCH_MUTEXDROP = 302 - SYS_PSYNCH_CVBROAD = 303 - SYS_PSYNCH_CVSIGNAL = 304 - SYS_PSYNCH_CVWAIT = 305 - SYS_PSYNCH_RW_RDLOCK = 306 - SYS_PSYNCH_RW_WRLOCK = 307 - SYS_PSYNCH_RW_UNLOCK = 308 - SYS_PSYNCH_RW_UNLOCK2 = 309 - SYS_GETSID = 310 - SYS_SETTID_WITH_PID = 311 - SYS_PSYNCH_CVCLRPREPOST = 312 - SYS_AIO_FSYNC = 313 - SYS_AIO_RETURN = 314 - SYS_AIO_SUSPEND = 315 - SYS_AIO_CANCEL = 316 - SYS_AIO_ERROR = 317 - SYS_AIO_READ = 318 - SYS_AIO_WRITE = 319 - SYS_LIO_LISTIO = 320 - SYS_IOPOLICYSYS = 322 - SYS_PROCESS_POLICY = 323 - SYS_MLOCKALL = 324 - SYS_MUNLOCKALL = 325 - SYS_ISSETUGID = 327 - SYS___PTHREAD_KILL = 328 - SYS___PTHREAD_SIGMASK = 329 - SYS___SIGWAIT = 330 - SYS___DISABLE_THREADSIGNAL = 331 - SYS___PTHREAD_MARKCANCEL = 332 - SYS___PTHREAD_CANCELED = 333 - SYS___SEMWAIT_SIGNAL = 334 - SYS_PROC_INFO = 336 - SYS_SENDFILE = 337 - SYS_STAT64 = 338 - SYS_FSTAT64 = 339 - SYS_LSTAT64 = 340 - SYS_STAT64_EXTENDED = 341 - SYS_LSTAT64_EXTENDED = 342 - SYS_FSTAT64_EXTENDED = 343 - SYS_GETDIRENTRIES64 = 344 - SYS_STATFS64 = 345 - SYS_FSTATFS64 = 346 - SYS_GETFSSTAT64 = 347 - SYS___PTHREAD_CHDIR = 348 - SYS___PTHREAD_FCHDIR = 349 - SYS_AUDIT = 350 - SYS_AUDITON = 351 - SYS_GETAUID = 353 - SYS_SETAUID = 354 - SYS_GETAUDIT_ADDR = 357 - SYS_SETAUDIT_ADDR = 358 - SYS_AUDITCTL = 359 - SYS_BSDTHREAD_CREATE = 360 - SYS_BSDTHREAD_TERMINATE = 361 - SYS_KQUEUE = 362 - SYS_KEVENT = 363 - SYS_LCHOWN = 364 - SYS_STACK_SNAPSHOT = 365 - SYS_BSDTHREAD_REGISTER = 366 - SYS_WORKQ_OPEN = 367 - SYS_WORKQ_KERNRETURN = 368 - SYS_KEVENT64 = 369 - SYS___OLD_SEMWAIT_SIGNAL = 370 - SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL = 371 - SYS_THREAD_SELFID = 372 - SYS_LEDGER = 373 - SYS___MAC_EXECVE = 380 - SYS___MAC_SYSCALL = 381 - SYS___MAC_GET_FILE = 382 - SYS___MAC_SET_FILE = 383 - SYS___MAC_GET_LINK = 384 - SYS___MAC_SET_LINK = 385 - SYS___MAC_GET_PROC = 386 - SYS___MAC_SET_PROC = 387 - SYS___MAC_GET_FD = 388 - SYS___MAC_SET_FD = 389 - SYS___MAC_GET_PID = 390 - SYS___MAC_GET_LCID = 391 - SYS___MAC_GET_LCTX = 392 - SYS___MAC_SET_LCTX = 393 - SYS_SETLCID = 394 - SYS_GETLCID = 395 - SYS_READ_NOCANCEL = 396 - SYS_WRITE_NOCANCEL = 397 - SYS_OPEN_NOCANCEL = 398 - SYS_CLOSE_NOCANCEL = 399 - SYS_WAIT4_NOCANCEL = 400 - SYS_RECVMSG_NOCANCEL = 401 - SYS_SENDMSG_NOCANCEL = 402 - SYS_RECVFROM_NOCANCEL = 403 - SYS_ACCEPT_NOCANCEL = 404 - SYS_MSYNC_NOCANCEL = 405 - SYS_FCNTL_NOCANCEL = 406 - SYS_SELECT_NOCANCEL = 407 - SYS_FSYNC_NOCANCEL = 408 - SYS_CONNECT_NOCANCEL = 409 - SYS_SIGSUSPEND_NOCANCEL = 410 - SYS_READV_NOCANCEL = 411 - SYS_WRITEV_NOCANCEL = 412 - SYS_SENDTO_NOCANCEL = 413 - SYS_PREAD_NOCANCEL = 414 - SYS_PWRITE_NOCANCEL = 415 - SYS_WAITID_NOCANCEL = 416 - SYS_POLL_NOCANCEL = 417 - SYS_MSGSND_NOCANCEL = 418 - SYS_MSGRCV_NOCANCEL = 419 - SYS_SEM_WAIT_NOCANCEL = 420 - SYS_AIO_SUSPEND_NOCANCEL = 421 - SYS___SIGWAIT_NOCANCEL = 422 - SYS___SEMWAIT_SIGNAL_NOCANCEL = 423 - SYS___MAC_MOUNT = 424 - SYS___MAC_GET_MOUNT = 425 - SYS___MAC_GETFSSTAT = 426 - SYS_FSGETPATH = 427 - SYS_AUDIT_SESSION_SELF = 428 - SYS_AUDIT_SESSION_JOIN = 429 - SYS_FILEPORT_MAKEPORT = 430 - SYS_FILEPORT_MAKEFD = 431 - SYS_AUDIT_SESSION_PORT = 432 - SYS_PID_SUSPEND = 433 - SYS_PID_RESUME = 434 - SYS_PID_HIBERNATE = 435 - SYS_PID_SHUTDOWN_SOCKETS = 436 - SYS_SHARED_REGION_MAP_AND_SLIDE_NP = 438 - SYS_KAS_INFO = 439 - SYS_MEMORYSTATUS_CONTROL = 440 - SYS_GUARDED_OPEN_NP = 441 - SYS_GUARDED_CLOSE_NP = 442 - SYS_GUARDED_KQUEUE_NP = 443 - SYS_CHANGE_FDGUARD_NP = 444 - SYS_PROC_RLIMIT_CONTROL = 446 - SYS_CONNECTX = 447 - SYS_DISCONNECTX = 448 - SYS_PEELOFF = 449 - SYS_SOCKET_DELEGATE = 450 - SYS_TELEMETRY = 451 - SYS_PROC_UUID_POLICY = 452 - SYS_MEMORYSTATUS_GET_LEVEL = 453 - SYS_SYSTEM_OVERRIDE = 454 - SYS_VFS_PURGE = 455 - SYS_SFI_CTL = 456 - SYS_SFI_PIDCTL = 457 - SYS_COALITION = 458 - SYS_COALITION_INFO = 459 - SYS_NECP_MATCH_POLICY = 460 - SYS_GETATTRLISTBULK = 461 - SYS_OPENAT = 463 - SYS_OPENAT_NOCANCEL = 464 - SYS_RENAMEAT = 465 - SYS_FACCESSAT = 466 - SYS_FCHMODAT = 467 - SYS_FCHOWNAT = 468 - SYS_FSTATAT = 469 - SYS_FSTATAT64 = 470 - SYS_LINKAT = 471 - SYS_UNLINKAT = 472 - SYS_READLINKAT = 473 - SYS_SYMLINKAT = 474 - SYS_MKDIRAT = 475 - SYS_GETATTRLISTAT = 476 - SYS_PROC_TRACE_LOG = 477 - SYS_BSDTHREAD_CTL = 478 - SYS_OPENBYID_NP = 479 - SYS_RECVMSG_X = 480 - SYS_SENDMSG_X = 481 - SYS_THREAD_SELFUSAGE = 482 - SYS_CSRCTL = 483 - SYS_GUARDED_OPEN_DPROTECTED_NP = 484 - SYS_GUARDED_WRITE_NP = 485 - SYS_GUARDED_PWRITE_NP = 486 - SYS_GUARDED_WRITEV_NP = 487 - SYS_RENAME_EXT = 488 - SYS_MREMAP_ENCRYPTED = 489 - SYS_MAXSYSCALL = 490 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go deleted file mode 100644 index 09de240..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go +++ /dev/null @@ -1,398 +0,0 @@ -// mksysnum_darwin.pl /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/sys/syscall.h -// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT - -// +build amd64,darwin - -package unix - -const ( - SYS_SYSCALL = 0 - SYS_EXIT = 1 - SYS_FORK = 2 - SYS_READ = 3 - SYS_WRITE = 4 - SYS_OPEN = 5 - SYS_CLOSE = 6 - SYS_WAIT4 = 7 - SYS_LINK = 9 - SYS_UNLINK = 10 - SYS_CHDIR = 12 - SYS_FCHDIR = 13 - SYS_MKNOD = 14 - SYS_CHMOD = 15 - SYS_CHOWN = 16 - SYS_GETFSSTAT = 18 - SYS_GETPID = 20 - SYS_SETUID = 23 - SYS_GETUID = 24 - SYS_GETEUID = 25 - SYS_PTRACE = 26 - SYS_RECVMSG = 27 - SYS_SENDMSG = 28 - SYS_RECVFROM = 29 - SYS_ACCEPT = 30 - SYS_GETPEERNAME = 31 - SYS_GETSOCKNAME = 32 - SYS_ACCESS = 33 - SYS_CHFLAGS = 34 - SYS_FCHFLAGS = 35 - SYS_SYNC = 36 - SYS_KILL = 37 - SYS_GETPPID = 39 - SYS_DUP = 41 - SYS_PIPE = 42 - SYS_GETEGID = 43 - SYS_SIGACTION = 46 - SYS_GETGID = 47 - SYS_SIGPROCMASK = 48 - SYS_GETLOGIN = 49 - SYS_SETLOGIN = 50 - SYS_ACCT = 51 - SYS_SIGPENDING = 52 - SYS_SIGALTSTACK = 53 - SYS_IOCTL = 54 - SYS_REBOOT = 55 - SYS_REVOKE = 56 - SYS_SYMLINK = 57 - SYS_READLINK = 58 - SYS_EXECVE = 59 - SYS_UMASK = 60 - SYS_CHROOT = 61 - SYS_MSYNC = 65 - SYS_VFORK = 66 - SYS_MUNMAP = 73 - SYS_MPROTECT = 74 - SYS_MADVISE = 75 - SYS_MINCORE = 78 - SYS_GETGROUPS = 79 - SYS_SETGROUPS = 80 - SYS_GETPGRP = 81 - SYS_SETPGID = 82 - SYS_SETITIMER = 83 - SYS_SWAPON = 85 - SYS_GETITIMER = 86 - SYS_GETDTABLESIZE = 89 - SYS_DUP2 = 90 - SYS_FCNTL = 92 - SYS_SELECT = 93 - SYS_FSYNC = 95 - SYS_SETPRIORITY = 96 - SYS_SOCKET = 97 - SYS_CONNECT = 98 - SYS_GETPRIORITY = 100 - SYS_BIND = 104 - SYS_SETSOCKOPT = 105 - SYS_LISTEN = 106 - SYS_SIGSUSPEND = 111 - SYS_GETTIMEOFDAY = 116 - SYS_GETRUSAGE = 117 - SYS_GETSOCKOPT = 118 - SYS_READV = 120 - SYS_WRITEV = 121 - SYS_SETTIMEOFDAY = 122 - SYS_FCHOWN = 123 - SYS_FCHMOD = 124 - SYS_SETREUID = 126 - SYS_SETREGID = 127 - SYS_RENAME = 128 - SYS_FLOCK = 131 - SYS_MKFIFO = 132 - SYS_SENDTO = 133 - SYS_SHUTDOWN = 134 - SYS_SOCKETPAIR = 135 - SYS_MKDIR = 136 - SYS_RMDIR = 137 - SYS_UTIMES = 138 - SYS_FUTIMES = 139 - SYS_ADJTIME = 140 - SYS_GETHOSTUUID = 142 - SYS_SETSID = 147 - SYS_GETPGID = 151 - SYS_SETPRIVEXEC = 152 - SYS_PREAD = 153 - SYS_PWRITE = 154 - SYS_NFSSVC = 155 - SYS_STATFS = 157 - SYS_FSTATFS = 158 - SYS_UNMOUNT = 159 - SYS_GETFH = 161 - SYS_QUOTACTL = 165 - SYS_MOUNT = 167 - SYS_CSOPS = 169 - SYS_CSOPS_AUDITTOKEN = 170 - SYS_WAITID = 173 - SYS_KDEBUG_TRACE64 = 179 - SYS_KDEBUG_TRACE = 180 - SYS_SETGID = 181 - SYS_SETEGID = 182 - SYS_SETEUID = 183 - SYS_SIGRETURN = 184 - SYS_CHUD = 185 - SYS_FDATASYNC = 187 - SYS_STAT = 188 - SYS_FSTAT = 189 - SYS_LSTAT = 190 - SYS_PATHCONF = 191 - SYS_FPATHCONF = 192 - SYS_GETRLIMIT = 194 - SYS_SETRLIMIT = 195 - SYS_GETDIRENTRIES = 196 - SYS_MMAP = 197 - SYS_LSEEK = 199 - SYS_TRUNCATE = 200 - SYS_FTRUNCATE = 201 - SYS_SYSCTL = 202 - SYS_MLOCK = 203 - SYS_MUNLOCK = 204 - SYS_UNDELETE = 205 - SYS_OPEN_DPROTECTED_NP = 216 - SYS_GETATTRLIST = 220 - SYS_SETATTRLIST = 221 - SYS_GETDIRENTRIESATTR = 222 - SYS_EXCHANGEDATA = 223 - SYS_SEARCHFS = 225 - SYS_DELETE = 226 - SYS_COPYFILE = 227 - SYS_FGETATTRLIST = 228 - SYS_FSETATTRLIST = 229 - SYS_POLL = 230 - SYS_WATCHEVENT = 231 - SYS_WAITEVENT = 232 - SYS_MODWATCH = 233 - SYS_GETXATTR = 234 - SYS_FGETXATTR = 235 - SYS_SETXATTR = 236 - SYS_FSETXATTR = 237 - SYS_REMOVEXATTR = 238 - SYS_FREMOVEXATTR = 239 - SYS_LISTXATTR = 240 - SYS_FLISTXATTR = 241 - SYS_FSCTL = 242 - SYS_INITGROUPS = 243 - SYS_POSIX_SPAWN = 244 - SYS_FFSCTL = 245 - SYS_NFSCLNT = 247 - SYS_FHOPEN = 248 - SYS_MINHERIT = 250 - SYS_SEMSYS = 251 - SYS_MSGSYS = 252 - SYS_SHMSYS = 253 - SYS_SEMCTL = 254 - SYS_SEMGET = 255 - SYS_SEMOP = 256 - SYS_MSGCTL = 258 - SYS_MSGGET = 259 - SYS_MSGSND = 260 - SYS_MSGRCV = 261 - SYS_SHMAT = 262 - SYS_SHMCTL = 263 - SYS_SHMDT = 264 - SYS_SHMGET = 265 - SYS_SHM_OPEN = 266 - SYS_SHM_UNLINK = 267 - SYS_SEM_OPEN = 268 - SYS_SEM_CLOSE = 269 - SYS_SEM_UNLINK = 270 - SYS_SEM_WAIT = 271 - SYS_SEM_TRYWAIT = 272 - SYS_SEM_POST = 273 - SYS_SYSCTLBYNAME = 274 - SYS_OPEN_EXTENDED = 277 - SYS_UMASK_EXTENDED = 278 - SYS_STAT_EXTENDED = 279 - SYS_LSTAT_EXTENDED = 280 - SYS_FSTAT_EXTENDED = 281 - SYS_CHMOD_EXTENDED = 282 - SYS_FCHMOD_EXTENDED = 283 - SYS_ACCESS_EXTENDED = 284 - SYS_SETTID = 285 - SYS_GETTID = 286 - SYS_SETSGROUPS = 287 - SYS_GETSGROUPS = 288 - SYS_SETWGROUPS = 289 - SYS_GETWGROUPS = 290 - SYS_MKFIFO_EXTENDED = 291 - SYS_MKDIR_EXTENDED = 292 - SYS_IDENTITYSVC = 293 - SYS_SHARED_REGION_CHECK_NP = 294 - SYS_VM_PRESSURE_MONITOR = 296 - SYS_PSYNCH_RW_LONGRDLOCK = 297 - SYS_PSYNCH_RW_YIELDWRLOCK = 298 - SYS_PSYNCH_RW_DOWNGRADE = 299 - SYS_PSYNCH_RW_UPGRADE = 300 - SYS_PSYNCH_MUTEXWAIT = 301 - SYS_PSYNCH_MUTEXDROP = 302 - SYS_PSYNCH_CVBROAD = 303 - SYS_PSYNCH_CVSIGNAL = 304 - SYS_PSYNCH_CVWAIT = 305 - SYS_PSYNCH_RW_RDLOCK = 306 - SYS_PSYNCH_RW_WRLOCK = 307 - SYS_PSYNCH_RW_UNLOCK = 308 - SYS_PSYNCH_RW_UNLOCK2 = 309 - SYS_GETSID = 310 - SYS_SETTID_WITH_PID = 311 - SYS_PSYNCH_CVCLRPREPOST = 312 - SYS_AIO_FSYNC = 313 - SYS_AIO_RETURN = 314 - SYS_AIO_SUSPEND = 315 - SYS_AIO_CANCEL = 316 - SYS_AIO_ERROR = 317 - SYS_AIO_READ = 318 - SYS_AIO_WRITE = 319 - SYS_LIO_LISTIO = 320 - SYS_IOPOLICYSYS = 322 - SYS_PROCESS_POLICY = 323 - SYS_MLOCKALL = 324 - SYS_MUNLOCKALL = 325 - SYS_ISSETUGID = 327 - SYS___PTHREAD_KILL = 328 - SYS___PTHREAD_SIGMASK = 329 - SYS___SIGWAIT = 330 - SYS___DISABLE_THREADSIGNAL = 331 - SYS___PTHREAD_MARKCANCEL = 332 - SYS___PTHREAD_CANCELED = 333 - SYS___SEMWAIT_SIGNAL = 334 - SYS_PROC_INFO = 336 - SYS_SENDFILE = 337 - SYS_STAT64 = 338 - SYS_FSTAT64 = 339 - SYS_LSTAT64 = 340 - SYS_STAT64_EXTENDED = 341 - SYS_LSTAT64_EXTENDED = 342 - SYS_FSTAT64_EXTENDED = 343 - SYS_GETDIRENTRIES64 = 344 - SYS_STATFS64 = 345 - SYS_FSTATFS64 = 346 - SYS_GETFSSTAT64 = 347 - SYS___PTHREAD_CHDIR = 348 - SYS___PTHREAD_FCHDIR = 349 - SYS_AUDIT = 350 - SYS_AUDITON = 351 - SYS_GETAUID = 353 - SYS_SETAUID = 354 - SYS_GETAUDIT_ADDR = 357 - SYS_SETAUDIT_ADDR = 358 - SYS_AUDITCTL = 359 - SYS_BSDTHREAD_CREATE = 360 - SYS_BSDTHREAD_TERMINATE = 361 - SYS_KQUEUE = 362 - SYS_KEVENT = 363 - SYS_LCHOWN = 364 - SYS_STACK_SNAPSHOT = 365 - SYS_BSDTHREAD_REGISTER = 366 - SYS_WORKQ_OPEN = 367 - SYS_WORKQ_KERNRETURN = 368 - SYS_KEVENT64 = 369 - SYS___OLD_SEMWAIT_SIGNAL = 370 - SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL = 371 - SYS_THREAD_SELFID = 372 - SYS_LEDGER = 373 - SYS___MAC_EXECVE = 380 - SYS___MAC_SYSCALL = 381 - SYS___MAC_GET_FILE = 382 - SYS___MAC_SET_FILE = 383 - SYS___MAC_GET_LINK = 384 - SYS___MAC_SET_LINK = 385 - SYS___MAC_GET_PROC = 386 - SYS___MAC_SET_PROC = 387 - SYS___MAC_GET_FD = 388 - SYS___MAC_SET_FD = 389 - SYS___MAC_GET_PID = 390 - SYS___MAC_GET_LCID = 391 - SYS___MAC_GET_LCTX = 392 - SYS___MAC_SET_LCTX = 393 - SYS_SETLCID = 394 - SYS_GETLCID = 395 - SYS_READ_NOCANCEL = 396 - SYS_WRITE_NOCANCEL = 397 - SYS_OPEN_NOCANCEL = 398 - SYS_CLOSE_NOCANCEL = 399 - SYS_WAIT4_NOCANCEL = 400 - SYS_RECVMSG_NOCANCEL = 401 - SYS_SENDMSG_NOCANCEL = 402 - SYS_RECVFROM_NOCANCEL = 403 - SYS_ACCEPT_NOCANCEL = 404 - SYS_MSYNC_NOCANCEL = 405 - SYS_FCNTL_NOCANCEL = 406 - SYS_SELECT_NOCANCEL = 407 - SYS_FSYNC_NOCANCEL = 408 - SYS_CONNECT_NOCANCEL = 409 - SYS_SIGSUSPEND_NOCANCEL = 410 - SYS_READV_NOCANCEL = 411 - SYS_WRITEV_NOCANCEL = 412 - SYS_SENDTO_NOCANCEL = 413 - SYS_PREAD_NOCANCEL = 414 - SYS_PWRITE_NOCANCEL = 415 - SYS_WAITID_NOCANCEL = 416 - SYS_POLL_NOCANCEL = 417 - SYS_MSGSND_NOCANCEL = 418 - SYS_MSGRCV_NOCANCEL = 419 - SYS_SEM_WAIT_NOCANCEL = 420 - SYS_AIO_SUSPEND_NOCANCEL = 421 - SYS___SIGWAIT_NOCANCEL = 422 - SYS___SEMWAIT_SIGNAL_NOCANCEL = 423 - SYS___MAC_MOUNT = 424 - SYS___MAC_GET_MOUNT = 425 - SYS___MAC_GETFSSTAT = 426 - SYS_FSGETPATH = 427 - SYS_AUDIT_SESSION_SELF = 428 - SYS_AUDIT_SESSION_JOIN = 429 - SYS_FILEPORT_MAKEPORT = 430 - SYS_FILEPORT_MAKEFD = 431 - SYS_AUDIT_SESSION_PORT = 432 - SYS_PID_SUSPEND = 433 - SYS_PID_RESUME = 434 - SYS_PID_HIBERNATE = 435 - SYS_PID_SHUTDOWN_SOCKETS = 436 - SYS_SHARED_REGION_MAP_AND_SLIDE_NP = 438 - SYS_KAS_INFO = 439 - SYS_MEMORYSTATUS_CONTROL = 440 - SYS_GUARDED_OPEN_NP = 441 - SYS_GUARDED_CLOSE_NP = 442 - SYS_GUARDED_KQUEUE_NP = 443 - SYS_CHANGE_FDGUARD_NP = 444 - SYS_PROC_RLIMIT_CONTROL = 446 - SYS_CONNECTX = 447 - SYS_DISCONNECTX = 448 - SYS_PEELOFF = 449 - SYS_SOCKET_DELEGATE = 450 - SYS_TELEMETRY = 451 - SYS_PROC_UUID_POLICY = 452 - SYS_MEMORYSTATUS_GET_LEVEL = 453 - SYS_SYSTEM_OVERRIDE = 454 - SYS_VFS_PURGE = 455 - SYS_SFI_CTL = 456 - SYS_SFI_PIDCTL = 457 - SYS_COALITION = 458 - SYS_COALITION_INFO = 459 - SYS_NECP_MATCH_POLICY = 460 - SYS_GETATTRLISTBULK = 461 - SYS_OPENAT = 463 - SYS_OPENAT_NOCANCEL = 464 - SYS_RENAMEAT = 465 - SYS_FACCESSAT = 466 - SYS_FCHMODAT = 467 - SYS_FCHOWNAT = 468 - SYS_FSTATAT = 469 - SYS_FSTATAT64 = 470 - SYS_LINKAT = 471 - SYS_UNLINKAT = 472 - SYS_READLINKAT = 473 - SYS_SYMLINKAT = 474 - SYS_MKDIRAT = 475 - SYS_GETATTRLISTAT = 476 - SYS_PROC_TRACE_LOG = 477 - SYS_BSDTHREAD_CTL = 478 - SYS_OPENBYID_NP = 479 - SYS_RECVMSG_X = 480 - SYS_SENDMSG_X = 481 - SYS_THREAD_SELFUSAGE = 482 - SYS_CSRCTL = 483 - SYS_GUARDED_OPEN_DPROTECTED_NP = 484 - SYS_GUARDED_WRITE_NP = 485 - SYS_GUARDED_PWRITE_NP = 486 - SYS_GUARDED_WRITEV_NP = 487 - SYS_RENAME_EXT = 488 - SYS_MREMAP_ENCRYPTED = 489 - SYS_MAXSYSCALL = 490 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm.go deleted file mode 100644 index 41cb6ed..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm.go +++ /dev/null @@ -1,426 +0,0 @@ -// mksysnum_darwin.pl /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.2.sdk/usr/include/sys/syscall.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build arm,darwin - -package unix - -const ( - SYS_SYSCALL = 0 - SYS_EXIT = 1 - SYS_FORK = 2 - SYS_READ = 3 - SYS_WRITE = 4 - SYS_OPEN = 5 - SYS_CLOSE = 6 - SYS_WAIT4 = 7 - SYS_LINK = 9 - SYS_UNLINK = 10 - SYS_CHDIR = 12 - SYS_FCHDIR = 13 - SYS_MKNOD = 14 - SYS_CHMOD = 15 - SYS_CHOWN = 16 - SYS_GETFSSTAT = 18 - SYS_GETPID = 20 - SYS_SETUID = 23 - SYS_GETUID = 24 - SYS_GETEUID = 25 - SYS_PTRACE = 26 - SYS_RECVMSG = 27 - SYS_SENDMSG = 28 - SYS_RECVFROM = 29 - SYS_ACCEPT = 30 - SYS_GETPEERNAME = 31 - SYS_GETSOCKNAME = 32 - SYS_ACCESS = 33 - SYS_CHFLAGS = 34 - SYS_FCHFLAGS = 35 - SYS_SYNC = 36 - SYS_KILL = 37 - SYS_GETPPID = 39 - SYS_DUP = 41 - SYS_PIPE = 42 - SYS_GETEGID = 43 - SYS_SIGACTION = 46 - SYS_GETGID = 47 - SYS_SIGPROCMASK = 48 - SYS_GETLOGIN = 49 - SYS_SETLOGIN = 50 - SYS_ACCT = 51 - SYS_SIGPENDING = 52 - SYS_SIGALTSTACK = 53 - SYS_IOCTL = 54 - SYS_REBOOT = 55 - SYS_REVOKE = 56 - SYS_SYMLINK = 57 - SYS_READLINK = 58 - SYS_EXECVE = 59 - SYS_UMASK = 60 - SYS_CHROOT = 61 - SYS_MSYNC = 65 - SYS_VFORK = 66 - SYS_MUNMAP = 73 - SYS_MPROTECT = 74 - SYS_MADVISE = 75 - SYS_MINCORE = 78 - SYS_GETGROUPS = 79 - SYS_SETGROUPS = 80 - SYS_GETPGRP = 81 - SYS_SETPGID = 82 - SYS_SETITIMER = 83 - SYS_SWAPON = 85 - SYS_GETITIMER = 86 - SYS_GETDTABLESIZE = 89 - SYS_DUP2 = 90 - SYS_FCNTL = 92 - SYS_SELECT = 93 - SYS_FSYNC = 95 - SYS_SETPRIORITY = 96 - SYS_SOCKET = 97 - SYS_CONNECT = 98 - SYS_GETPRIORITY = 100 - SYS_BIND = 104 - SYS_SETSOCKOPT = 105 - SYS_LISTEN = 106 - SYS_SIGSUSPEND = 111 - SYS_GETTIMEOFDAY = 116 - SYS_GETRUSAGE = 117 - SYS_GETSOCKOPT = 118 - SYS_READV = 120 - SYS_WRITEV = 121 - SYS_SETTIMEOFDAY = 122 - SYS_FCHOWN = 123 - SYS_FCHMOD = 124 - SYS_SETREUID = 126 - SYS_SETREGID = 127 - SYS_RENAME = 128 - SYS_FLOCK = 131 - SYS_MKFIFO = 132 - SYS_SENDTO = 133 - SYS_SHUTDOWN = 134 - SYS_SOCKETPAIR = 135 - SYS_MKDIR = 136 - SYS_RMDIR = 137 - SYS_UTIMES = 138 - SYS_FUTIMES = 139 - SYS_ADJTIME = 140 - SYS_GETHOSTUUID = 142 - SYS_SETSID = 147 - SYS_GETPGID = 151 - SYS_SETPRIVEXEC = 152 - SYS_PREAD = 153 - SYS_PWRITE = 154 - SYS_NFSSVC = 155 - SYS_STATFS = 157 - SYS_FSTATFS = 158 - SYS_UNMOUNT = 159 - SYS_GETFH = 161 - SYS_QUOTACTL = 165 - SYS_MOUNT = 167 - SYS_CSOPS = 169 - SYS_CSOPS_AUDITTOKEN = 170 - SYS_WAITID = 173 - SYS_KDEBUG_TYPEFILTER = 177 - SYS_KDEBUG_TRACE_STRING = 178 - SYS_KDEBUG_TRACE64 = 179 - SYS_KDEBUG_TRACE = 180 - SYS_SETGID = 181 - SYS_SETEGID = 182 - SYS_SETEUID = 183 - SYS_SIGRETURN = 184 - SYS_FDATASYNC = 187 - SYS_STAT = 188 - SYS_FSTAT = 189 - SYS_LSTAT = 190 - SYS_PATHCONF = 191 - SYS_FPATHCONF = 192 - SYS_GETRLIMIT = 194 - SYS_SETRLIMIT = 195 - SYS_GETDIRENTRIES = 196 - SYS_MMAP = 197 - SYS_LSEEK = 199 - SYS_TRUNCATE = 200 - SYS_FTRUNCATE = 201 - SYS_SYSCTL = 202 - SYS_MLOCK = 203 - SYS_MUNLOCK = 204 - SYS_UNDELETE = 205 - SYS_OPEN_DPROTECTED_NP = 216 - SYS_GETATTRLIST = 220 - SYS_SETATTRLIST = 221 - SYS_GETDIRENTRIESATTR = 222 - SYS_EXCHANGEDATA = 223 - SYS_SEARCHFS = 225 - SYS_DELETE = 226 - SYS_COPYFILE = 227 - SYS_FGETATTRLIST = 228 - SYS_FSETATTRLIST = 229 - SYS_POLL = 230 - SYS_WATCHEVENT = 231 - SYS_WAITEVENT = 232 - SYS_MODWATCH = 233 - SYS_GETXATTR = 234 - SYS_FGETXATTR = 235 - SYS_SETXATTR = 236 - SYS_FSETXATTR = 237 - SYS_REMOVEXATTR = 238 - SYS_FREMOVEXATTR = 239 - SYS_LISTXATTR = 240 - SYS_FLISTXATTR = 241 - SYS_FSCTL = 242 - SYS_INITGROUPS = 243 - SYS_POSIX_SPAWN = 244 - SYS_FFSCTL = 245 - SYS_NFSCLNT = 247 - SYS_FHOPEN = 248 - SYS_MINHERIT = 250 - SYS_SEMSYS = 251 - SYS_MSGSYS = 252 - SYS_SHMSYS = 253 - SYS_SEMCTL = 254 - SYS_SEMGET = 255 - SYS_SEMOP = 256 - SYS_MSGCTL = 258 - SYS_MSGGET = 259 - SYS_MSGSND = 260 - SYS_MSGRCV = 261 - SYS_SHMAT = 262 - SYS_SHMCTL = 263 - SYS_SHMDT = 264 - SYS_SHMGET = 265 - SYS_SHM_OPEN = 266 - SYS_SHM_UNLINK = 267 - SYS_SEM_OPEN = 268 - SYS_SEM_CLOSE = 269 - SYS_SEM_UNLINK = 270 - SYS_SEM_WAIT = 271 - SYS_SEM_TRYWAIT = 272 - SYS_SEM_POST = 273 - SYS_SYSCTLBYNAME = 274 - SYS_OPEN_EXTENDED = 277 - SYS_UMASK_EXTENDED = 278 - SYS_STAT_EXTENDED = 279 - SYS_LSTAT_EXTENDED = 280 - SYS_FSTAT_EXTENDED = 281 - SYS_CHMOD_EXTENDED = 282 - SYS_FCHMOD_EXTENDED = 283 - SYS_ACCESS_EXTENDED = 284 - SYS_SETTID = 285 - SYS_GETTID = 286 - SYS_SETSGROUPS = 287 - SYS_GETSGROUPS = 288 - SYS_SETWGROUPS = 289 - SYS_GETWGROUPS = 290 - SYS_MKFIFO_EXTENDED = 291 - SYS_MKDIR_EXTENDED = 292 - SYS_IDENTITYSVC = 293 - SYS_SHARED_REGION_CHECK_NP = 294 - SYS_VM_PRESSURE_MONITOR = 296 - SYS_PSYNCH_RW_LONGRDLOCK = 297 - SYS_PSYNCH_RW_YIELDWRLOCK = 298 - SYS_PSYNCH_RW_DOWNGRADE = 299 - SYS_PSYNCH_RW_UPGRADE = 300 - SYS_PSYNCH_MUTEXWAIT = 301 - SYS_PSYNCH_MUTEXDROP = 302 - SYS_PSYNCH_CVBROAD = 303 - SYS_PSYNCH_CVSIGNAL = 304 - SYS_PSYNCH_CVWAIT = 305 - SYS_PSYNCH_RW_RDLOCK = 306 - SYS_PSYNCH_RW_WRLOCK = 307 - SYS_PSYNCH_RW_UNLOCK = 308 - SYS_PSYNCH_RW_UNLOCK2 = 309 - SYS_GETSID = 310 - SYS_SETTID_WITH_PID = 311 - SYS_PSYNCH_CVCLRPREPOST = 312 - SYS_AIO_FSYNC = 313 - SYS_AIO_RETURN = 314 - SYS_AIO_SUSPEND = 315 - SYS_AIO_CANCEL = 316 - SYS_AIO_ERROR = 317 - SYS_AIO_READ = 318 - SYS_AIO_WRITE = 319 - SYS_LIO_LISTIO = 320 - SYS_IOPOLICYSYS = 322 - SYS_PROCESS_POLICY = 323 - SYS_MLOCKALL = 324 - SYS_MUNLOCKALL = 325 - SYS_ISSETUGID = 327 - SYS___PTHREAD_KILL = 328 - SYS___PTHREAD_SIGMASK = 329 - SYS___SIGWAIT = 330 - SYS___DISABLE_THREADSIGNAL = 331 - SYS___PTHREAD_MARKCANCEL = 332 - SYS___PTHREAD_CANCELED = 333 - SYS___SEMWAIT_SIGNAL = 334 - SYS_PROC_INFO = 336 - SYS_SENDFILE = 337 - SYS_STAT64 = 338 - SYS_FSTAT64 = 339 - SYS_LSTAT64 = 340 - SYS_STAT64_EXTENDED = 341 - SYS_LSTAT64_EXTENDED = 342 - SYS_FSTAT64_EXTENDED = 343 - SYS_GETDIRENTRIES64 = 344 - SYS_STATFS64 = 345 - SYS_FSTATFS64 = 346 - SYS_GETFSSTAT64 = 347 - SYS___PTHREAD_CHDIR = 348 - SYS___PTHREAD_FCHDIR = 349 - SYS_AUDIT = 350 - SYS_AUDITON = 351 - SYS_GETAUID = 353 - SYS_SETAUID = 354 - SYS_GETAUDIT_ADDR = 357 - SYS_SETAUDIT_ADDR = 358 - SYS_AUDITCTL = 359 - SYS_BSDTHREAD_CREATE = 360 - SYS_BSDTHREAD_TERMINATE = 361 - SYS_KQUEUE = 362 - SYS_KEVENT = 363 - SYS_LCHOWN = 364 - SYS_BSDTHREAD_REGISTER = 366 - SYS_WORKQ_OPEN = 367 - SYS_WORKQ_KERNRETURN = 368 - SYS_KEVENT64 = 369 - SYS___OLD_SEMWAIT_SIGNAL = 370 - SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL = 371 - SYS_THREAD_SELFID = 372 - SYS_LEDGER = 373 - SYS_KEVENT_QOS = 374 - SYS___MAC_EXECVE = 380 - SYS___MAC_SYSCALL = 381 - SYS___MAC_GET_FILE = 382 - SYS___MAC_SET_FILE = 383 - SYS___MAC_GET_LINK = 384 - SYS___MAC_SET_LINK = 385 - SYS___MAC_GET_PROC = 386 - SYS___MAC_SET_PROC = 387 - SYS___MAC_GET_FD = 388 - SYS___MAC_SET_FD = 389 - SYS___MAC_GET_PID = 390 - SYS_PSELECT = 394 - SYS_PSELECT_NOCANCEL = 395 - SYS_READ_NOCANCEL = 396 - SYS_WRITE_NOCANCEL = 397 - SYS_OPEN_NOCANCEL = 398 - SYS_CLOSE_NOCANCEL = 399 - SYS_WAIT4_NOCANCEL = 400 - SYS_RECVMSG_NOCANCEL = 401 - SYS_SENDMSG_NOCANCEL = 402 - SYS_RECVFROM_NOCANCEL = 403 - SYS_ACCEPT_NOCANCEL = 404 - SYS_MSYNC_NOCANCEL = 405 - SYS_FCNTL_NOCANCEL = 406 - SYS_SELECT_NOCANCEL = 407 - SYS_FSYNC_NOCANCEL = 408 - SYS_CONNECT_NOCANCEL = 409 - SYS_SIGSUSPEND_NOCANCEL = 410 - SYS_READV_NOCANCEL = 411 - SYS_WRITEV_NOCANCEL = 412 - SYS_SENDTO_NOCANCEL = 413 - SYS_PREAD_NOCANCEL = 414 - SYS_PWRITE_NOCANCEL = 415 - SYS_WAITID_NOCANCEL = 416 - SYS_POLL_NOCANCEL = 417 - SYS_MSGSND_NOCANCEL = 418 - SYS_MSGRCV_NOCANCEL = 419 - SYS_SEM_WAIT_NOCANCEL = 420 - SYS_AIO_SUSPEND_NOCANCEL = 421 - SYS___SIGWAIT_NOCANCEL = 422 - SYS___SEMWAIT_SIGNAL_NOCANCEL = 423 - SYS___MAC_MOUNT = 424 - SYS___MAC_GET_MOUNT = 425 - SYS___MAC_GETFSSTAT = 426 - SYS_FSGETPATH = 427 - SYS_AUDIT_SESSION_SELF = 428 - SYS_AUDIT_SESSION_JOIN = 429 - SYS_FILEPORT_MAKEPORT = 430 - SYS_FILEPORT_MAKEFD = 431 - SYS_AUDIT_SESSION_PORT = 432 - SYS_PID_SUSPEND = 433 - SYS_PID_RESUME = 434 - SYS_PID_HIBERNATE = 435 - SYS_PID_SHUTDOWN_SOCKETS = 436 - SYS_SHARED_REGION_MAP_AND_SLIDE_NP = 438 - SYS_KAS_INFO = 439 - SYS_MEMORYSTATUS_CONTROL = 440 - SYS_GUARDED_OPEN_NP = 441 - SYS_GUARDED_CLOSE_NP = 442 - SYS_GUARDED_KQUEUE_NP = 443 - SYS_CHANGE_FDGUARD_NP = 444 - SYS_USRCTL = 445 - SYS_PROC_RLIMIT_CONTROL = 446 - SYS_CONNECTX = 447 - SYS_DISCONNECTX = 448 - SYS_PEELOFF = 449 - SYS_SOCKET_DELEGATE = 450 - SYS_TELEMETRY = 451 - SYS_PROC_UUID_POLICY = 452 - SYS_MEMORYSTATUS_GET_LEVEL = 453 - SYS_SYSTEM_OVERRIDE = 454 - SYS_VFS_PURGE = 455 - SYS_SFI_CTL = 456 - SYS_SFI_PIDCTL = 457 - SYS_COALITION = 458 - SYS_COALITION_INFO = 459 - SYS_NECP_MATCH_POLICY = 460 - SYS_GETATTRLISTBULK = 461 - SYS_CLONEFILEAT = 462 - SYS_OPENAT = 463 - SYS_OPENAT_NOCANCEL = 464 - SYS_RENAMEAT = 465 - SYS_FACCESSAT = 466 - SYS_FCHMODAT = 467 - SYS_FCHOWNAT = 468 - SYS_FSTATAT = 469 - SYS_FSTATAT64 = 470 - SYS_LINKAT = 471 - SYS_UNLINKAT = 472 - SYS_READLINKAT = 473 - SYS_SYMLINKAT = 474 - SYS_MKDIRAT = 475 - SYS_GETATTRLISTAT = 476 - SYS_PROC_TRACE_LOG = 477 - SYS_BSDTHREAD_CTL = 478 - SYS_OPENBYID_NP = 479 - SYS_RECVMSG_X = 480 - SYS_SENDMSG_X = 481 - SYS_THREAD_SELFUSAGE = 482 - SYS_CSRCTL = 483 - SYS_GUARDED_OPEN_DPROTECTED_NP = 484 - SYS_GUARDED_WRITE_NP = 485 - SYS_GUARDED_PWRITE_NP = 486 - SYS_GUARDED_WRITEV_NP = 487 - SYS_RENAMEATX_NP = 488 - SYS_MREMAP_ENCRYPTED = 489 - SYS_NETAGENT_TRIGGER = 490 - SYS_STACK_SNAPSHOT_WITH_CONFIG = 491 - SYS_MICROSTACKSHOT = 492 - SYS_GRAB_PGO_DATA = 493 - SYS_PERSONA = 494 - SYS_WORK_INTERVAL_CTL = 499 - SYS_GETENTROPY = 500 - SYS_NECP_OPEN = 501 - SYS_NECP_CLIENT_ACTION = 502 - SYS___NEXUS_OPEN = 503 - SYS___NEXUS_REGISTER = 504 - SYS___NEXUS_DEREGISTER = 505 - SYS___NEXUS_CREATE = 506 - SYS___NEXUS_DESTROY = 507 - SYS___NEXUS_GET_OPT = 508 - SYS___NEXUS_SET_OPT = 509 - SYS___CHANNEL_OPEN = 510 - SYS___CHANNEL_GET_INFO = 511 - SYS___CHANNEL_SYNC = 512 - SYS___CHANNEL_GET_OPT = 513 - SYS___CHANNEL_SET_OPT = 514 - SYS_ULOCK_WAIT = 515 - SYS_ULOCK_WAKE = 516 - SYS_FCLONEFILEAT = 517 - SYS_FS_SNAPSHOT = 518 - SYS_TERMINATE_WITH_PAYLOAD = 520 - SYS_ABORT_WITH_PAYLOAD = 521 - SYS_MAXSYSCALL = 522 - SYS_INVALID = 63 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go deleted file mode 100644 index 075816c..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go +++ /dev/null @@ -1,426 +0,0 @@ -// mksysnum_darwin.pl /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.2.sdk/usr/include/sys/syscall.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build arm64,darwin - -package unix - -const ( - SYS_SYSCALL = 0 - SYS_EXIT = 1 - SYS_FORK = 2 - SYS_READ = 3 - SYS_WRITE = 4 - SYS_OPEN = 5 - SYS_CLOSE = 6 - SYS_WAIT4 = 7 - SYS_LINK = 9 - SYS_UNLINK = 10 - SYS_CHDIR = 12 - SYS_FCHDIR = 13 - SYS_MKNOD = 14 - SYS_CHMOD = 15 - SYS_CHOWN = 16 - SYS_GETFSSTAT = 18 - SYS_GETPID = 20 - SYS_SETUID = 23 - SYS_GETUID = 24 - SYS_GETEUID = 25 - SYS_PTRACE = 26 - SYS_RECVMSG = 27 - SYS_SENDMSG = 28 - SYS_RECVFROM = 29 - SYS_ACCEPT = 30 - SYS_GETPEERNAME = 31 - SYS_GETSOCKNAME = 32 - SYS_ACCESS = 33 - SYS_CHFLAGS = 34 - SYS_FCHFLAGS = 35 - SYS_SYNC = 36 - SYS_KILL = 37 - SYS_GETPPID = 39 - SYS_DUP = 41 - SYS_PIPE = 42 - SYS_GETEGID = 43 - SYS_SIGACTION = 46 - SYS_GETGID = 47 - SYS_SIGPROCMASK = 48 - SYS_GETLOGIN = 49 - SYS_SETLOGIN = 50 - SYS_ACCT = 51 - SYS_SIGPENDING = 52 - SYS_SIGALTSTACK = 53 - SYS_IOCTL = 54 - SYS_REBOOT = 55 - SYS_REVOKE = 56 - SYS_SYMLINK = 57 - SYS_READLINK = 58 - SYS_EXECVE = 59 - SYS_UMASK = 60 - SYS_CHROOT = 61 - SYS_MSYNC = 65 - SYS_VFORK = 66 - SYS_MUNMAP = 73 - SYS_MPROTECT = 74 - SYS_MADVISE = 75 - SYS_MINCORE = 78 - SYS_GETGROUPS = 79 - SYS_SETGROUPS = 80 - SYS_GETPGRP = 81 - SYS_SETPGID = 82 - SYS_SETITIMER = 83 - SYS_SWAPON = 85 - SYS_GETITIMER = 86 - SYS_GETDTABLESIZE = 89 - SYS_DUP2 = 90 - SYS_FCNTL = 92 - SYS_SELECT = 93 - SYS_FSYNC = 95 - SYS_SETPRIORITY = 96 - SYS_SOCKET = 97 - SYS_CONNECT = 98 - SYS_GETPRIORITY = 100 - SYS_BIND = 104 - SYS_SETSOCKOPT = 105 - SYS_LISTEN = 106 - SYS_SIGSUSPEND = 111 - SYS_GETTIMEOFDAY = 116 - SYS_GETRUSAGE = 117 - SYS_GETSOCKOPT = 118 - SYS_READV = 120 - SYS_WRITEV = 121 - SYS_SETTIMEOFDAY = 122 - SYS_FCHOWN = 123 - SYS_FCHMOD = 124 - SYS_SETREUID = 126 - SYS_SETREGID = 127 - SYS_RENAME = 128 - SYS_FLOCK = 131 - SYS_MKFIFO = 132 - SYS_SENDTO = 133 - SYS_SHUTDOWN = 134 - SYS_SOCKETPAIR = 135 - SYS_MKDIR = 136 - SYS_RMDIR = 137 - SYS_UTIMES = 138 - SYS_FUTIMES = 139 - SYS_ADJTIME = 140 - SYS_GETHOSTUUID = 142 - SYS_SETSID = 147 - SYS_GETPGID = 151 - SYS_SETPRIVEXEC = 152 - SYS_PREAD = 153 - SYS_PWRITE = 154 - SYS_NFSSVC = 155 - SYS_STATFS = 157 - SYS_FSTATFS = 158 - SYS_UNMOUNT = 159 - SYS_GETFH = 161 - SYS_QUOTACTL = 165 - SYS_MOUNT = 167 - SYS_CSOPS = 169 - SYS_CSOPS_AUDITTOKEN = 170 - SYS_WAITID = 173 - SYS_KDEBUG_TYPEFILTER = 177 - SYS_KDEBUG_TRACE_STRING = 178 - SYS_KDEBUG_TRACE64 = 179 - SYS_KDEBUG_TRACE = 180 - SYS_SETGID = 181 - SYS_SETEGID = 182 - SYS_SETEUID = 183 - SYS_SIGRETURN = 184 - SYS_FDATASYNC = 187 - SYS_STAT = 188 - SYS_FSTAT = 189 - SYS_LSTAT = 190 - SYS_PATHCONF = 191 - SYS_FPATHCONF = 192 - SYS_GETRLIMIT = 194 - SYS_SETRLIMIT = 195 - SYS_GETDIRENTRIES = 196 - SYS_MMAP = 197 - SYS_LSEEK = 199 - SYS_TRUNCATE = 200 - SYS_FTRUNCATE = 201 - SYS_SYSCTL = 202 - SYS_MLOCK = 203 - SYS_MUNLOCK = 204 - SYS_UNDELETE = 205 - SYS_OPEN_DPROTECTED_NP = 216 - SYS_GETATTRLIST = 220 - SYS_SETATTRLIST = 221 - SYS_GETDIRENTRIESATTR = 222 - SYS_EXCHANGEDATA = 223 - SYS_SEARCHFS = 225 - SYS_DELETE = 226 - SYS_COPYFILE = 227 - SYS_FGETATTRLIST = 228 - SYS_FSETATTRLIST = 229 - SYS_POLL = 230 - SYS_WATCHEVENT = 231 - SYS_WAITEVENT = 232 - SYS_MODWATCH = 233 - SYS_GETXATTR = 234 - SYS_FGETXATTR = 235 - SYS_SETXATTR = 236 - SYS_FSETXATTR = 237 - SYS_REMOVEXATTR = 238 - SYS_FREMOVEXATTR = 239 - SYS_LISTXATTR = 240 - SYS_FLISTXATTR = 241 - SYS_FSCTL = 242 - SYS_INITGROUPS = 243 - SYS_POSIX_SPAWN = 244 - SYS_FFSCTL = 245 - SYS_NFSCLNT = 247 - SYS_FHOPEN = 248 - SYS_MINHERIT = 250 - SYS_SEMSYS = 251 - SYS_MSGSYS = 252 - SYS_SHMSYS = 253 - SYS_SEMCTL = 254 - SYS_SEMGET = 255 - SYS_SEMOP = 256 - SYS_MSGCTL = 258 - SYS_MSGGET = 259 - SYS_MSGSND = 260 - SYS_MSGRCV = 261 - SYS_SHMAT = 262 - SYS_SHMCTL = 263 - SYS_SHMDT = 264 - SYS_SHMGET = 265 - SYS_SHM_OPEN = 266 - SYS_SHM_UNLINK = 267 - SYS_SEM_OPEN = 268 - SYS_SEM_CLOSE = 269 - SYS_SEM_UNLINK = 270 - SYS_SEM_WAIT = 271 - SYS_SEM_TRYWAIT = 272 - SYS_SEM_POST = 273 - SYS_SYSCTLBYNAME = 274 - SYS_OPEN_EXTENDED = 277 - SYS_UMASK_EXTENDED = 278 - SYS_STAT_EXTENDED = 279 - SYS_LSTAT_EXTENDED = 280 - SYS_FSTAT_EXTENDED = 281 - SYS_CHMOD_EXTENDED = 282 - SYS_FCHMOD_EXTENDED = 283 - SYS_ACCESS_EXTENDED = 284 - SYS_SETTID = 285 - SYS_GETTID = 286 - SYS_SETSGROUPS = 287 - SYS_GETSGROUPS = 288 - SYS_SETWGROUPS = 289 - SYS_GETWGROUPS = 290 - SYS_MKFIFO_EXTENDED = 291 - SYS_MKDIR_EXTENDED = 292 - SYS_IDENTITYSVC = 293 - SYS_SHARED_REGION_CHECK_NP = 294 - SYS_VM_PRESSURE_MONITOR = 296 - SYS_PSYNCH_RW_LONGRDLOCK = 297 - SYS_PSYNCH_RW_YIELDWRLOCK = 298 - SYS_PSYNCH_RW_DOWNGRADE = 299 - SYS_PSYNCH_RW_UPGRADE = 300 - SYS_PSYNCH_MUTEXWAIT = 301 - SYS_PSYNCH_MUTEXDROP = 302 - SYS_PSYNCH_CVBROAD = 303 - SYS_PSYNCH_CVSIGNAL = 304 - SYS_PSYNCH_CVWAIT = 305 - SYS_PSYNCH_RW_RDLOCK = 306 - SYS_PSYNCH_RW_WRLOCK = 307 - SYS_PSYNCH_RW_UNLOCK = 308 - SYS_PSYNCH_RW_UNLOCK2 = 309 - SYS_GETSID = 310 - SYS_SETTID_WITH_PID = 311 - SYS_PSYNCH_CVCLRPREPOST = 312 - SYS_AIO_FSYNC = 313 - SYS_AIO_RETURN = 314 - SYS_AIO_SUSPEND = 315 - SYS_AIO_CANCEL = 316 - SYS_AIO_ERROR = 317 - SYS_AIO_READ = 318 - SYS_AIO_WRITE = 319 - SYS_LIO_LISTIO = 320 - SYS_IOPOLICYSYS = 322 - SYS_PROCESS_POLICY = 323 - SYS_MLOCKALL = 324 - SYS_MUNLOCKALL = 325 - SYS_ISSETUGID = 327 - SYS___PTHREAD_KILL = 328 - SYS___PTHREAD_SIGMASK = 329 - SYS___SIGWAIT = 330 - SYS___DISABLE_THREADSIGNAL = 331 - SYS___PTHREAD_MARKCANCEL = 332 - SYS___PTHREAD_CANCELED = 333 - SYS___SEMWAIT_SIGNAL = 334 - SYS_PROC_INFO = 336 - SYS_SENDFILE = 337 - SYS_STAT64 = 338 - SYS_FSTAT64 = 339 - SYS_LSTAT64 = 340 - SYS_STAT64_EXTENDED = 341 - SYS_LSTAT64_EXTENDED = 342 - SYS_FSTAT64_EXTENDED = 343 - SYS_GETDIRENTRIES64 = 344 - SYS_STATFS64 = 345 - SYS_FSTATFS64 = 346 - SYS_GETFSSTAT64 = 347 - SYS___PTHREAD_CHDIR = 348 - SYS___PTHREAD_FCHDIR = 349 - SYS_AUDIT = 350 - SYS_AUDITON = 351 - SYS_GETAUID = 353 - SYS_SETAUID = 354 - SYS_GETAUDIT_ADDR = 357 - SYS_SETAUDIT_ADDR = 358 - SYS_AUDITCTL = 359 - SYS_BSDTHREAD_CREATE = 360 - SYS_BSDTHREAD_TERMINATE = 361 - SYS_KQUEUE = 362 - SYS_KEVENT = 363 - SYS_LCHOWN = 364 - SYS_BSDTHREAD_REGISTER = 366 - SYS_WORKQ_OPEN = 367 - SYS_WORKQ_KERNRETURN = 368 - SYS_KEVENT64 = 369 - SYS___OLD_SEMWAIT_SIGNAL = 370 - SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL = 371 - SYS_THREAD_SELFID = 372 - SYS_LEDGER = 373 - SYS_KEVENT_QOS = 374 - SYS___MAC_EXECVE = 380 - SYS___MAC_SYSCALL = 381 - SYS___MAC_GET_FILE = 382 - SYS___MAC_SET_FILE = 383 - SYS___MAC_GET_LINK = 384 - SYS___MAC_SET_LINK = 385 - SYS___MAC_GET_PROC = 386 - SYS___MAC_SET_PROC = 387 - SYS___MAC_GET_FD = 388 - SYS___MAC_SET_FD = 389 - SYS___MAC_GET_PID = 390 - SYS_PSELECT = 394 - SYS_PSELECT_NOCANCEL = 395 - SYS_READ_NOCANCEL = 396 - SYS_WRITE_NOCANCEL = 397 - SYS_OPEN_NOCANCEL = 398 - SYS_CLOSE_NOCANCEL = 399 - SYS_WAIT4_NOCANCEL = 400 - SYS_RECVMSG_NOCANCEL = 401 - SYS_SENDMSG_NOCANCEL = 402 - SYS_RECVFROM_NOCANCEL = 403 - SYS_ACCEPT_NOCANCEL = 404 - SYS_MSYNC_NOCANCEL = 405 - SYS_FCNTL_NOCANCEL = 406 - SYS_SELECT_NOCANCEL = 407 - SYS_FSYNC_NOCANCEL = 408 - SYS_CONNECT_NOCANCEL = 409 - SYS_SIGSUSPEND_NOCANCEL = 410 - SYS_READV_NOCANCEL = 411 - SYS_WRITEV_NOCANCEL = 412 - SYS_SENDTO_NOCANCEL = 413 - SYS_PREAD_NOCANCEL = 414 - SYS_PWRITE_NOCANCEL = 415 - SYS_WAITID_NOCANCEL = 416 - SYS_POLL_NOCANCEL = 417 - SYS_MSGSND_NOCANCEL = 418 - SYS_MSGRCV_NOCANCEL = 419 - SYS_SEM_WAIT_NOCANCEL = 420 - SYS_AIO_SUSPEND_NOCANCEL = 421 - SYS___SIGWAIT_NOCANCEL = 422 - SYS___SEMWAIT_SIGNAL_NOCANCEL = 423 - SYS___MAC_MOUNT = 424 - SYS___MAC_GET_MOUNT = 425 - SYS___MAC_GETFSSTAT = 426 - SYS_FSGETPATH = 427 - SYS_AUDIT_SESSION_SELF = 428 - SYS_AUDIT_SESSION_JOIN = 429 - SYS_FILEPORT_MAKEPORT = 430 - SYS_FILEPORT_MAKEFD = 431 - SYS_AUDIT_SESSION_PORT = 432 - SYS_PID_SUSPEND = 433 - SYS_PID_RESUME = 434 - SYS_PID_HIBERNATE = 435 - SYS_PID_SHUTDOWN_SOCKETS = 436 - SYS_SHARED_REGION_MAP_AND_SLIDE_NP = 438 - SYS_KAS_INFO = 439 - SYS_MEMORYSTATUS_CONTROL = 440 - SYS_GUARDED_OPEN_NP = 441 - SYS_GUARDED_CLOSE_NP = 442 - SYS_GUARDED_KQUEUE_NP = 443 - SYS_CHANGE_FDGUARD_NP = 444 - SYS_USRCTL = 445 - SYS_PROC_RLIMIT_CONTROL = 446 - SYS_CONNECTX = 447 - SYS_DISCONNECTX = 448 - SYS_PEELOFF = 449 - SYS_SOCKET_DELEGATE = 450 - SYS_TELEMETRY = 451 - SYS_PROC_UUID_POLICY = 452 - SYS_MEMORYSTATUS_GET_LEVEL = 453 - SYS_SYSTEM_OVERRIDE = 454 - SYS_VFS_PURGE = 455 - SYS_SFI_CTL = 456 - SYS_SFI_PIDCTL = 457 - SYS_COALITION = 458 - SYS_COALITION_INFO = 459 - SYS_NECP_MATCH_POLICY = 460 - SYS_GETATTRLISTBULK = 461 - SYS_CLONEFILEAT = 462 - SYS_OPENAT = 463 - SYS_OPENAT_NOCANCEL = 464 - SYS_RENAMEAT = 465 - SYS_FACCESSAT = 466 - SYS_FCHMODAT = 467 - SYS_FCHOWNAT = 468 - SYS_FSTATAT = 469 - SYS_FSTATAT64 = 470 - SYS_LINKAT = 471 - SYS_UNLINKAT = 472 - SYS_READLINKAT = 473 - SYS_SYMLINKAT = 474 - SYS_MKDIRAT = 475 - SYS_GETATTRLISTAT = 476 - SYS_PROC_TRACE_LOG = 477 - SYS_BSDTHREAD_CTL = 478 - SYS_OPENBYID_NP = 479 - SYS_RECVMSG_X = 480 - SYS_SENDMSG_X = 481 - SYS_THREAD_SELFUSAGE = 482 - SYS_CSRCTL = 483 - SYS_GUARDED_OPEN_DPROTECTED_NP = 484 - SYS_GUARDED_WRITE_NP = 485 - SYS_GUARDED_PWRITE_NP = 486 - SYS_GUARDED_WRITEV_NP = 487 - SYS_RENAMEATX_NP = 488 - SYS_MREMAP_ENCRYPTED = 489 - SYS_NETAGENT_TRIGGER = 490 - SYS_STACK_SNAPSHOT_WITH_CONFIG = 491 - SYS_MICROSTACKSHOT = 492 - SYS_GRAB_PGO_DATA = 493 - SYS_PERSONA = 494 - SYS_WORK_INTERVAL_CTL = 499 - SYS_GETENTROPY = 500 - SYS_NECP_OPEN = 501 - SYS_NECP_CLIENT_ACTION = 502 - SYS___NEXUS_OPEN = 503 - SYS___NEXUS_REGISTER = 504 - SYS___NEXUS_DEREGISTER = 505 - SYS___NEXUS_CREATE = 506 - SYS___NEXUS_DESTROY = 507 - SYS___NEXUS_GET_OPT = 508 - SYS___NEXUS_SET_OPT = 509 - SYS___CHANNEL_OPEN = 510 - SYS___CHANNEL_GET_INFO = 511 - SYS___CHANNEL_SYNC = 512 - SYS___CHANNEL_GET_OPT = 513 - SYS___CHANNEL_SET_OPT = 514 - SYS_ULOCK_WAIT = 515 - SYS_ULOCK_WAKE = 516 - SYS_FCLONEFILEAT = 517 - SYS_FS_SNAPSHOT = 518 - SYS_TERMINATE_WITH_PAYLOAD = 520 - SYS_ABORT_WITH_PAYLOAD = 521 - SYS_MAXSYSCALL = 522 - SYS_INVALID = 63 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go deleted file mode 100644 index b2c9ef8..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go +++ /dev/null @@ -1,315 +0,0 @@ -// mksysnum_dragonfly.pl -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build amd64,dragonfly - -package unix - -const ( - // SYS_NOSYS = 0; // { int nosys(void); } syscall nosys_args int - SYS_EXIT = 1 // { void exit(int rval); } - SYS_FORK = 2 // { int fork(void); } - SYS_READ = 3 // { ssize_t read(int fd, void *buf, size_t nbyte); } - SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, size_t nbyte); } - SYS_OPEN = 5 // { int open(char *path, int flags, int mode); } - SYS_CLOSE = 6 // { int close(int fd); } - SYS_WAIT4 = 7 // { int wait4(int pid, int *status, int options, \ - SYS_LINK = 9 // { int link(char *path, char *link); } - SYS_UNLINK = 10 // { int unlink(char *path); } - SYS_CHDIR = 12 // { int chdir(char *path); } - SYS_FCHDIR = 13 // { int fchdir(int fd); } - SYS_MKNOD = 14 // { int mknod(char *path, int mode, int dev); } - SYS_CHMOD = 15 // { int chmod(char *path, int mode); } - SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } - SYS_OBREAK = 17 // { int obreak(char *nsize); } break obreak_args int - SYS_GETFSSTAT = 18 // { int getfsstat(struct statfs *buf, long bufsize, \ - SYS_GETPID = 20 // { pid_t getpid(void); } - SYS_MOUNT = 21 // { int mount(char *type, char *path, int flags, \ - SYS_UNMOUNT = 22 // { int unmount(char *path, int flags); } - SYS_SETUID = 23 // { int setuid(uid_t uid); } - SYS_GETUID = 24 // { uid_t getuid(void); } - SYS_GETEUID = 25 // { uid_t geteuid(void); } - SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, caddr_t addr, \ - SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, int flags); } - SYS_SENDMSG = 28 // { int sendmsg(int s, caddr_t msg, int flags); } - SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, size_t len, \ - SYS_ACCEPT = 30 // { int accept(int s, caddr_t name, int *anamelen); } - SYS_GETPEERNAME = 31 // { int getpeername(int fdes, caddr_t asa, int *alen); } - SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, caddr_t asa, int *alen); } - SYS_ACCESS = 33 // { int access(char *path, int flags); } - SYS_CHFLAGS = 34 // { int chflags(char *path, int flags); } - SYS_FCHFLAGS = 35 // { int fchflags(int fd, int flags); } - SYS_SYNC = 36 // { int sync(void); } - SYS_KILL = 37 // { int kill(int pid, int signum); } - SYS_GETPPID = 39 // { pid_t getppid(void); } - SYS_DUP = 41 // { int dup(int fd); } - SYS_PIPE = 42 // { int pipe(void); } - SYS_GETEGID = 43 // { gid_t getegid(void); } - SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, \ - SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, int facs, \ - SYS_GETGID = 47 // { gid_t getgid(void); } - SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int namelen); } - SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); } - SYS_ACCT = 51 // { int acct(char *path); } - SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, stack_t *oss); } - SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, caddr_t data); } - SYS_REBOOT = 55 // { int reboot(int opt); } - SYS_REVOKE = 56 // { int revoke(char *path); } - SYS_SYMLINK = 57 // { int symlink(char *path, char *link); } - SYS_READLINK = 58 // { int readlink(char *path, char *buf, int count); } - SYS_EXECVE = 59 // { int execve(char *fname, char **argv, char **envv); } - SYS_UMASK = 60 // { int umask(int newmask); } umask umask_args int - SYS_CHROOT = 61 // { int chroot(char *path); } - SYS_MSYNC = 65 // { int msync(void *addr, size_t len, int flags); } - SYS_VFORK = 66 // { pid_t vfork(void); } - SYS_SBRK = 69 // { int sbrk(int incr); } - SYS_SSTK = 70 // { int sstk(int incr); } - SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int mprotect(void *addr, size_t len, int prot); } - SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, int behav); } - SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, \ - SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, gid_t *gidset); } - SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, gid_t *gidset); } - SYS_GETPGRP = 81 // { int getpgrp(void); } - SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); } - SYS_SETITIMER = 83 // { int setitimer(u_int which, struct itimerval *itv, \ - SYS_SWAPON = 85 // { int swapon(char *name); } - SYS_GETITIMER = 86 // { int getitimer(u_int which, struct itimerval *itv); } - SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); } - SYS_DUP2 = 90 // { int dup2(int from, int to); } - SYS_FCNTL = 92 // { int fcntl(int fd, int cmd, long arg); } - SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, \ - SYS_FSYNC = 95 // { int fsync(int fd); } - SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, int prio); } - SYS_SOCKET = 97 // { int socket(int domain, int type, int protocol); } - SYS_CONNECT = 98 // { int connect(int s, caddr_t name, int namelen); } - SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); } - SYS_BIND = 104 // { int bind(int s, caddr_t name, int namelen); } - SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, \ - SYS_LISTEN = 106 // { int listen(int s, int backlog); } - SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, \ - SYS_GETRUSAGE = 117 // { int getrusage(int who, struct rusage *rusage); } - SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, \ - SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); } - SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, \ - SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, \ - SYS_FCHOWN = 123 // { int fchown(int fd, int uid, int gid); } - SYS_FCHMOD = 124 // { int fchmod(int fd, int mode); } - SYS_SETREUID = 126 // { int setreuid(int ruid, int euid); } - SYS_SETREGID = 127 // { int setregid(int rgid, int egid); } - SYS_RENAME = 128 // { int rename(char *from, char *to); } - SYS_FLOCK = 131 // { int flock(int fd, int how); } - SYS_MKFIFO = 132 // { int mkfifo(char *path, int mode); } - SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, \ - SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, int protocol, \ - SYS_MKDIR = 136 // { int mkdir(char *path, int mode); } - SYS_RMDIR = 137 // { int rmdir(char *path); } - SYS_UTIMES = 138 // { int utimes(char *path, struct timeval *tptr); } - SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, \ - SYS_SETSID = 147 // { int setsid(void); } - SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, \ - SYS_STATFS = 157 // { int statfs(char *path, struct statfs *buf); } - SYS_FSTATFS = 158 // { int fstatfs(int fd, struct statfs *buf); } - SYS_GETFH = 161 // { int getfh(char *fname, struct fhandle *fhp); } - SYS_GETDOMAINNAME = 162 // { int getdomainname(char *domainname, int len); } - SYS_SETDOMAINNAME = 163 // { int setdomainname(char *domainname, int len); } - SYS_UNAME = 164 // { int uname(struct utsname *name); } - SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); } - SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, \ - SYS_EXTPREAD = 173 // { ssize_t extpread(int fd, void *buf, \ - SYS_EXTPWRITE = 174 // { ssize_t extpwrite(int fd, const void *buf, \ - SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } - SYS_SETGID = 181 // { int setgid(gid_t gid); } - SYS_SETEGID = 182 // { int setegid(gid_t egid); } - SYS_SETEUID = 183 // { int seteuid(uid_t euid); } - SYS_PATHCONF = 191 // { int pathconf(char *path, int name); } - SYS_FPATHCONF = 192 // { int fpathconf(int fd, int name); } - SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, \ - SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, \ - SYS_MMAP = 197 // { caddr_t mmap(caddr_t addr, size_t len, int prot, \ - // SYS_NOSYS = 198; // { int nosys(void); } __syscall __syscall_args int - SYS_LSEEK = 199 // { off_t lseek(int fd, int pad, off_t offset, \ - SYS_TRUNCATE = 200 // { int truncate(char *path, int pad, off_t length); } - SYS_FTRUNCATE = 201 // { int ftruncate(int fd, int pad, off_t length); } - SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, void *old, \ - SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); } - SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); } - SYS_UNDELETE = 205 // { int undelete(char *path); } - SYS_FUTIMES = 206 // { int futimes(int fd, struct timeval *tptr); } - SYS_GETPGID = 207 // { int getpgid(pid_t pid); } - SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, \ - SYS___SEMCTL = 220 // { int __semctl(int semid, int semnum, int cmd, \ - SYS_SEMGET = 221 // { int semget(key_t key, int nsems, int semflg); } - SYS_SEMOP = 222 // { int semop(int semid, struct sembuf *sops, \ - SYS_MSGCTL = 224 // { int msgctl(int msqid, int cmd, \ - SYS_MSGGET = 225 // { int msgget(key_t key, int msgflg); } - SYS_MSGSND = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, \ - SYS_MSGRCV = 227 // { int msgrcv(int msqid, void *msgp, size_t msgsz, \ - SYS_SHMAT = 228 // { caddr_t shmat(int shmid, const void *shmaddr, \ - SYS_SHMCTL = 229 // { int shmctl(int shmid, int cmd, \ - SYS_SHMDT = 230 // { int shmdt(const void *shmaddr); } - SYS_SHMGET = 231 // { int shmget(key_t key, size_t size, int shmflg); } - SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, \ - SYS_CLOCK_SETTIME = 233 // { int clock_settime(clockid_t clock_id, \ - SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, \ - SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, \ - SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, int inherit); } - SYS_RFORK = 251 // { int rfork(int flags); } - SYS_OPENBSD_POLL = 252 // { int openbsd_poll(struct pollfd *fds, u_int nfds, \ - SYS_ISSETUGID = 253 // { int issetugid(void); } - SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); } - SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } - SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); } - SYS_EXTPREADV = 289 // { ssize_t extpreadv(int fd, struct iovec *iovp, \ - SYS_EXTPWRITEV = 290 // { ssize_t extpwritev(int fd, struct iovec *iovp,\ - SYS_FHSTATFS = 297 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } - SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); } - SYS_MODNEXT = 300 // { int modnext(int modid); } - SYS_MODSTAT = 301 // { int modstat(int modid, struct module_stat* stat); } - SYS_MODFNEXT = 302 // { int modfnext(int modid); } - SYS_MODFIND = 303 // { int modfind(const char *name); } - SYS_KLDLOAD = 304 // { int kldload(const char *file); } - SYS_KLDUNLOAD = 305 // { int kldunload(int fileid); } - SYS_KLDFIND = 306 // { int kldfind(const char *file); } - SYS_KLDNEXT = 307 // { int kldnext(int fileid); } - SYS_KLDSTAT = 308 // { int kldstat(int fileid, struct kld_file_stat* stat); } - SYS_KLDFIRSTMOD = 309 // { int kldfirstmod(int fileid); } - SYS_GETSID = 310 // { int getsid(pid_t pid); } - SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); } - SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); } - SYS_AIO_RETURN = 314 // { int aio_return(struct aiocb *aiocbp); } - SYS_AIO_SUSPEND = 315 // { int aio_suspend(struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); } - SYS_AIO_CANCEL = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); } - SYS_AIO_ERROR = 317 // { int aio_error(struct aiocb *aiocbp); } - SYS_AIO_READ = 318 // { int aio_read(struct aiocb *aiocbp); } - SYS_AIO_WRITE = 319 // { int aio_write(struct aiocb *aiocbp); } - SYS_LIO_LISTIO = 320 // { int lio_listio(int mode, struct aiocb * const *acb_list, int nent, struct sigevent *sig); } - SYS_YIELD = 321 // { int yield(void); } - SYS_MLOCKALL = 324 // { int mlockall(int how); } - SYS_MUNLOCKALL = 325 // { int munlockall(void); } - SYS___GETCWD = 326 // { int __getcwd(u_char *buf, u_int buflen); } - SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); } - SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); } - SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); } - SYS_SCHED_GETSCHEDULER = 330 // { int sched_getscheduler (pid_t pid); } - SYS_SCHED_YIELD = 331 // { int sched_yield (void); } - SYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); } - SYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); } - SYS_SCHED_RR_GET_INTERVAL = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); } - SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } - SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, void *data); } - SYS_JAIL = 338 // { int jail(struct jail *jail); } - SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, const sigset_t *set, \ - SYS_SIGSUSPEND = 341 // { int sigsuspend(const sigset_t *sigmask); } - SYS_SIGACTION = 342 // { int sigaction(int sig, const struct sigaction *act, \ - SYS_SIGPENDING = 343 // { int sigpending(sigset_t *set); } - SYS_SIGRETURN = 344 // { int sigreturn(ucontext_t *sigcntxp); } - SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set,\ - SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set,\ - SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, \ - SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, \ - SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, acl_type_t type, \ - SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, acl_type_t type, \ - SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, \ - SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); } - SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, \ - SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, \ - SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, \ - SYS_EXTATTR_SET_FILE = 356 // { int extattr_set_file(const char *path, \ - SYS_EXTATTR_GET_FILE = 357 // { int extattr_get_file(const char *path, \ - SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, \ - SYS_AIO_WAITCOMPLETE = 359 // { int aio_waitcomplete(struct aiocb **aiocbp, struct timespec *timeout); } - SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } - SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } - SYS_KQUEUE = 362 // { int kqueue(void); } - SYS_KEVENT = 363 // { int kevent(int fd, \ - SYS_KENV = 390 // { int kenv(int what, const char *name, char *value, int len); } - SYS_LCHFLAGS = 391 // { int lchflags(char *path, int flags); } - SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, int count); } - SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, \ - SYS_VARSYM_SET = 450 // { int varsym_set(int level, const char *name, const char *data); } - SYS_VARSYM_GET = 451 // { int varsym_get(int mask, const char *wild, char *buf, int bufsize); } - SYS_VARSYM_LIST = 452 // { int varsym_list(int level, char *buf, int maxsize, int *marker); } - SYS_EXEC_SYS_REGISTER = 465 // { int exec_sys_register(void *entry); } - SYS_EXEC_SYS_UNREGISTER = 466 // { int exec_sys_unregister(int id); } - SYS_SYS_CHECKPOINT = 467 // { int sys_checkpoint(int type, int fd, pid_t pid, int retval); } - SYS_MOUNTCTL = 468 // { int mountctl(const char *path, int op, int fd, const void *ctl, int ctllen, void *buf, int buflen); } - SYS_UMTX_SLEEP = 469 // { int umtx_sleep(volatile const int *ptr, int value, int timeout); } - SYS_UMTX_WAKEUP = 470 // { int umtx_wakeup(volatile const int *ptr, int count); } - SYS_JAIL_ATTACH = 471 // { int jail_attach(int jid); } - SYS_SET_TLS_AREA = 472 // { int set_tls_area(int which, struct tls_info *info, size_t infosize); } - SYS_GET_TLS_AREA = 473 // { int get_tls_area(int which, struct tls_info *info, size_t infosize); } - SYS_CLOSEFROM = 474 // { int closefrom(int fd); } - SYS_STAT = 475 // { int stat(const char *path, struct stat *ub); } - SYS_FSTAT = 476 // { int fstat(int fd, struct stat *sb); } - SYS_LSTAT = 477 // { int lstat(const char *path, struct stat *ub); } - SYS_FHSTAT = 478 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); } - SYS_GETDIRENTRIES = 479 // { int getdirentries(int fd, char *buf, u_int count, \ - SYS_GETDENTS = 480 // { int getdents(int fd, char *buf, size_t count); } - SYS_USCHED_SET = 481 // { int usched_set(pid_t pid, int cmd, void *data, \ - SYS_EXTACCEPT = 482 // { int extaccept(int s, int flags, caddr_t name, int *anamelen); } - SYS_EXTCONNECT = 483 // { int extconnect(int s, int flags, caddr_t name, int namelen); } - SYS_MCONTROL = 485 // { int mcontrol(void *addr, size_t len, int behav, off_t value); } - SYS_VMSPACE_CREATE = 486 // { int vmspace_create(void *id, int type, void *data); } - SYS_VMSPACE_DESTROY = 487 // { int vmspace_destroy(void *id); } - SYS_VMSPACE_CTL = 488 // { int vmspace_ctl(void *id, int cmd, \ - SYS_VMSPACE_MMAP = 489 // { int vmspace_mmap(void *id, void *addr, size_t len, \ - SYS_VMSPACE_MUNMAP = 490 // { int vmspace_munmap(void *id, void *addr, \ - SYS_VMSPACE_MCONTROL = 491 // { int vmspace_mcontrol(void *id, void *addr, \ - SYS_VMSPACE_PREAD = 492 // { ssize_t vmspace_pread(void *id, void *buf, \ - SYS_VMSPACE_PWRITE = 493 // { ssize_t vmspace_pwrite(void *id, const void *buf, \ - SYS_EXTEXIT = 494 // { void extexit(int how, int status, void *addr); } - SYS_LWP_CREATE = 495 // { int lwp_create(struct lwp_params *params); } - SYS_LWP_GETTID = 496 // { lwpid_t lwp_gettid(void); } - SYS_LWP_KILL = 497 // { int lwp_kill(pid_t pid, lwpid_t tid, int signum); } - SYS_LWP_RTPRIO = 498 // { int lwp_rtprio(int function, pid_t pid, lwpid_t tid, struct rtprio *rtp); } - SYS_PSELECT = 499 // { int pselect(int nd, fd_set *in, fd_set *ou, \ - SYS_STATVFS = 500 // { int statvfs(const char *path, struct statvfs *buf); } - SYS_FSTATVFS = 501 // { int fstatvfs(int fd, struct statvfs *buf); } - SYS_FHSTATVFS = 502 // { int fhstatvfs(const struct fhandle *u_fhp, struct statvfs *buf); } - SYS_GETVFSSTAT = 503 // { int getvfsstat(struct statfs *buf, \ - SYS_OPENAT = 504 // { int openat(int fd, char *path, int flags, int mode); } - SYS_FSTATAT = 505 // { int fstatat(int fd, char *path, \ - SYS_FCHMODAT = 506 // { int fchmodat(int fd, char *path, int mode, \ - SYS_FCHOWNAT = 507 // { int fchownat(int fd, char *path, int uid, int gid, \ - SYS_UNLINKAT = 508 // { int unlinkat(int fd, char *path, int flags); } - SYS_FACCESSAT = 509 // { int faccessat(int fd, char *path, int amode, \ - SYS_MQ_OPEN = 510 // { mqd_t mq_open(const char * name, int oflag, \ - SYS_MQ_CLOSE = 511 // { int mq_close(mqd_t mqdes); } - SYS_MQ_UNLINK = 512 // { int mq_unlink(const char *name); } - SYS_MQ_GETATTR = 513 // { int mq_getattr(mqd_t mqdes, \ - SYS_MQ_SETATTR = 514 // { int mq_setattr(mqd_t mqdes, \ - SYS_MQ_NOTIFY = 515 // { int mq_notify(mqd_t mqdes, \ - SYS_MQ_SEND = 516 // { int mq_send(mqd_t mqdes, const char *msg_ptr, \ - SYS_MQ_RECEIVE = 517 // { ssize_t mq_receive(mqd_t mqdes, char *msg_ptr, \ - SYS_MQ_TIMEDSEND = 518 // { int mq_timedsend(mqd_t mqdes, \ - SYS_MQ_TIMEDRECEIVE = 519 // { ssize_t mq_timedreceive(mqd_t mqdes, \ - SYS_IOPRIO_SET = 520 // { int ioprio_set(int which, int who, int prio); } - SYS_IOPRIO_GET = 521 // { int ioprio_get(int which, int who); } - SYS_CHROOT_KERNEL = 522 // { int chroot_kernel(char *path); } - SYS_RENAMEAT = 523 // { int renameat(int oldfd, char *old, int newfd, \ - SYS_MKDIRAT = 524 // { int mkdirat(int fd, char *path, mode_t mode); } - SYS_MKFIFOAT = 525 // { int mkfifoat(int fd, char *path, mode_t mode); } - SYS_MKNODAT = 526 // { int mknodat(int fd, char *path, mode_t mode, \ - SYS_READLINKAT = 527 // { int readlinkat(int fd, char *path, char *buf, \ - SYS_SYMLINKAT = 528 // { int symlinkat(char *path1, int fd, char *path2); } - SYS_SWAPOFF = 529 // { int swapoff(char *name); } - SYS_VQUOTACTL = 530 // { int vquotactl(const char *path, \ - SYS_LINKAT = 531 // { int linkat(int fd1, char *path1, int fd2, \ - SYS_EACCESS = 532 // { int eaccess(char *path, int flags); } - SYS_LPATHCONF = 533 // { int lpathconf(char *path, int name); } - SYS_VMM_GUEST_CTL = 534 // { int vmm_guest_ctl(int op, struct vmm_guest_options *options); } - SYS_VMM_GUEST_SYNC_ADDR = 535 // { int vmm_guest_sync_addr(long *dstaddr, long *srcaddr); } - SYS_PROCCTL = 536 // { int procctl(idtype_t idtype, id_t id, int cmd, void *data); } - SYS_CHFLAGSAT = 537 // { int chflagsat(int fd, const char *path, int flags, int atflags);} - SYS_PIPE2 = 538 // { int pipe2(int *fildes, int flags); } - SYS_UTIMENSAT = 539 // { int utimensat(int fd, const char *path, const struct timespec *ts, int flags); } - SYS_FUTIMENS = 540 // { int futimens(int fd, const struct timespec *ts); } - SYS_ACCEPT4 = 541 // { int accept4(int s, caddr_t name, int *anamelen, int flags); } - SYS_LWP_SETNAME = 542 // { int lwp_setname(lwpid_t tid, const char *name); } - SYS_PPOLL = 543 // { int ppoll(struct pollfd *fds, u_int nfds, \ - SYS_LWP_SETAFFINITY = 544 // { int lwp_setaffinity(pid_t pid, lwpid_t tid, const cpumask_t *mask); } - SYS_LWP_GETAFFINITY = 545 // { int lwp_getaffinity(pid_t pid, lwpid_t tid, cpumask_t *mask); } - SYS_LWP_CREATE2 = 546 // { int lwp_create2(struct lwp_params *params, const cpumask_t *mask); } -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go deleted file mode 100644 index b64a812..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go +++ /dev/null @@ -1,353 +0,0 @@ -// mksysnum_freebsd.pl -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build 386,freebsd - -package unix - -const ( - // SYS_NOSYS = 0; // { int nosys(void); } syscall nosys_args int - SYS_EXIT = 1 // { void sys_exit(int rval); } exit \ - SYS_FORK = 2 // { int fork(void); } - SYS_READ = 3 // { ssize_t read(int fd, void *buf, \ - SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, \ - SYS_OPEN = 5 // { int open(char *path, int flags, int mode); } - SYS_CLOSE = 6 // { int close(int fd); } - SYS_WAIT4 = 7 // { int wait4(int pid, int *status, \ - SYS_LINK = 9 // { int link(char *path, char *link); } - SYS_UNLINK = 10 // { int unlink(char *path); } - SYS_CHDIR = 12 // { int chdir(char *path); } - SYS_FCHDIR = 13 // { int fchdir(int fd); } - SYS_MKNOD = 14 // { int mknod(char *path, int mode, int dev); } - SYS_CHMOD = 15 // { int chmod(char *path, int mode); } - SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } - SYS_OBREAK = 17 // { int obreak(char *nsize); } break \ - SYS_GETPID = 20 // { pid_t getpid(void); } - SYS_MOUNT = 21 // { int mount(char *type, char *path, \ - SYS_UNMOUNT = 22 // { int unmount(char *path, int flags); } - SYS_SETUID = 23 // { int setuid(uid_t uid); } - SYS_GETUID = 24 // { uid_t getuid(void); } - SYS_GETEUID = 25 // { uid_t geteuid(void); } - SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, \ - SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, \ - SYS_SENDMSG = 28 // { int sendmsg(int s, struct msghdr *msg, \ - SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, \ - SYS_ACCEPT = 30 // { int accept(int s, \ - SYS_GETPEERNAME = 31 // { int getpeername(int fdes, \ - SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, \ - SYS_ACCESS = 33 // { int access(char *path, int amode); } - SYS_CHFLAGS = 34 // { int chflags(const char *path, u_long flags); } - SYS_FCHFLAGS = 35 // { int fchflags(int fd, u_long flags); } - SYS_SYNC = 36 // { int sync(void); } - SYS_KILL = 37 // { int kill(int pid, int signum); } - SYS_GETPPID = 39 // { pid_t getppid(void); } - SYS_DUP = 41 // { int dup(u_int fd); } - SYS_PIPE = 42 // { int pipe(void); } - SYS_GETEGID = 43 // { gid_t getegid(void); } - SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, \ - SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, \ - SYS_GETGID = 47 // { gid_t getgid(void); } - SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int \ - SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); } - SYS_ACCT = 51 // { int acct(char *path); } - SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, \ - SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, \ - SYS_REBOOT = 55 // { int reboot(int opt); } - SYS_REVOKE = 56 // { int revoke(char *path); } - SYS_SYMLINK = 57 // { int symlink(char *path, char *link); } - SYS_READLINK = 58 // { ssize_t readlink(char *path, char *buf, \ - SYS_EXECVE = 59 // { int execve(char *fname, char **argv, \ - SYS_UMASK = 60 // { int umask(int newmask); } umask umask_args \ - SYS_CHROOT = 61 // { int chroot(char *path); } - SYS_MSYNC = 65 // { int msync(void *addr, size_t len, \ - SYS_VFORK = 66 // { int vfork(void); } - SYS_SBRK = 69 // { int sbrk(int incr); } - SYS_SSTK = 70 // { int sstk(int incr); } - SYS_OVADVISE = 72 // { int ovadvise(int anom); } vadvise \ - SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int mprotect(const void *addr, size_t len, \ - SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, \ - SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, \ - SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, \ - SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, \ - SYS_GETPGRP = 81 // { int getpgrp(void); } - SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); } - SYS_SETITIMER = 83 // { int setitimer(u_int which, struct \ - SYS_SWAPON = 85 // { int swapon(char *name); } - SYS_GETITIMER = 86 // { int getitimer(u_int which, \ - SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); } - SYS_DUP2 = 90 // { int dup2(u_int from, u_int to); } - SYS_FCNTL = 92 // { int fcntl(int fd, int cmd, long arg); } - SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, \ - SYS_FSYNC = 95 // { int fsync(int fd); } - SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, \ - SYS_SOCKET = 97 // { int socket(int domain, int type, \ - SYS_CONNECT = 98 // { int connect(int s, caddr_t name, \ - SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); } - SYS_BIND = 104 // { int bind(int s, caddr_t name, \ - SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, \ - SYS_LISTEN = 106 // { int listen(int s, int backlog); } - SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, \ - SYS_GETRUSAGE = 117 // { int getrusage(int who, \ - SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, \ - SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, \ - SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, \ - SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, \ - SYS_FCHOWN = 123 // { int fchown(int fd, int uid, int gid); } - SYS_FCHMOD = 124 // { int fchmod(int fd, int mode); } - SYS_SETREUID = 126 // { int setreuid(int ruid, int euid); } - SYS_SETREGID = 127 // { int setregid(int rgid, int egid); } - SYS_RENAME = 128 // { int rename(char *from, char *to); } - SYS_FLOCK = 131 // { int flock(int fd, int how); } - SYS_MKFIFO = 132 // { int mkfifo(char *path, int mode); } - SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, \ - SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, \ - SYS_MKDIR = 136 // { int mkdir(char *path, int mode); } - SYS_RMDIR = 137 // { int rmdir(char *path); } - SYS_UTIMES = 138 // { int utimes(char *path, \ - SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, \ - SYS_SETSID = 147 // { int setsid(void); } - SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, \ - SYS_LGETFH = 160 // { int lgetfh(char *fname, \ - SYS_GETFH = 161 // { int getfh(char *fname, \ - SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); } - SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, \ - SYS_FREEBSD6_PREAD = 173 // { ssize_t freebsd6_pread(int fd, void *buf, \ - SYS_FREEBSD6_PWRITE = 174 // { ssize_t freebsd6_pwrite(int fd, \ - SYS_SETFIB = 175 // { int setfib(int fibnum); } - SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } - SYS_SETGID = 181 // { int setgid(gid_t gid); } - SYS_SETEGID = 182 // { int setegid(gid_t egid); } - SYS_SETEUID = 183 // { int seteuid(uid_t euid); } - SYS_STAT = 188 // { int stat(char *path, struct stat *ub); } - SYS_FSTAT = 189 // { int fstat(int fd, struct stat *sb); } - SYS_LSTAT = 190 // { int lstat(char *path, struct stat *ub); } - SYS_PATHCONF = 191 // { int pathconf(char *path, int name); } - SYS_FPATHCONF = 192 // { int fpathconf(int fd, int name); } - SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, \ - SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, \ - SYS_GETDIRENTRIES = 196 // { int getdirentries(int fd, char *buf, \ - SYS_FREEBSD6_MMAP = 197 // { caddr_t freebsd6_mmap(caddr_t addr, \ - SYS_FREEBSD6_LSEEK = 199 // { off_t freebsd6_lseek(int fd, int pad, \ - SYS_FREEBSD6_TRUNCATE = 200 // { int freebsd6_truncate(char *path, int pad, \ - SYS_FREEBSD6_FTRUNCATE = 201 // { int freebsd6_ftruncate(int fd, int pad, \ - SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, \ - SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); } - SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); } - SYS_UNDELETE = 205 // { int undelete(char *path); } - SYS_FUTIMES = 206 // { int futimes(int fd, struct timeval *tptr); } - SYS_GETPGID = 207 // { int getpgid(pid_t pid); } - SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, \ - SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, \ - SYS_CLOCK_SETTIME = 233 // { int clock_settime( \ - SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, \ - SYS_KTIMER_CREATE = 235 // { int ktimer_create(clockid_t clock_id, \ - SYS_KTIMER_DELETE = 236 // { int ktimer_delete(int timerid); } - SYS_KTIMER_SETTIME = 237 // { int ktimer_settime(int timerid, int flags, \ - SYS_KTIMER_GETTIME = 238 // { int ktimer_gettime(int timerid, struct \ - SYS_KTIMER_GETOVERRUN = 239 // { int ktimer_getoverrun(int timerid); } - SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, \ - SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); } - SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate( \ - SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate( \ - SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id,\ - SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); } - SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, \ - SYS_RFORK = 251 // { int rfork(int flags); } - SYS_OPENBSD_POLL = 252 // { int openbsd_poll(struct pollfd *fds, \ - SYS_ISSETUGID = 253 // { int issetugid(void); } - SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); } - SYS_GETDENTS = 272 // { int getdents(int fd, char *buf, \ - SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } - SYS_LUTIMES = 276 // { int lutimes(char *path, \ - SYS_NSTAT = 278 // { int nstat(char *path, struct nstat *ub); } - SYS_NFSTAT = 279 // { int nfstat(int fd, struct nstat *sb); } - SYS_NLSTAT = 280 // { int nlstat(char *path, struct nstat *ub); } - SYS_PREADV = 289 // { ssize_t preadv(int fd, struct iovec *iovp, \ - SYS_PWRITEV = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, \ - SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, \ - SYS_FHSTAT = 299 // { int fhstat(const struct fhandle *u_fhp, \ - SYS_MODNEXT = 300 // { int modnext(int modid); } - SYS_MODSTAT = 301 // { int modstat(int modid, \ - SYS_MODFNEXT = 302 // { int modfnext(int modid); } - SYS_MODFIND = 303 // { int modfind(const char *name); } - SYS_KLDLOAD = 304 // { int kldload(const char *file); } - SYS_KLDUNLOAD = 305 // { int kldunload(int fileid); } - SYS_KLDFIND = 306 // { int kldfind(const char *file); } - SYS_KLDNEXT = 307 // { int kldnext(int fileid); } - SYS_KLDSTAT = 308 // { int kldstat(int fileid, struct \ - SYS_KLDFIRSTMOD = 309 // { int kldfirstmod(int fileid); } - SYS_GETSID = 310 // { int getsid(pid_t pid); } - SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, \ - SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, \ - SYS_YIELD = 321 // { int yield(void); } - SYS_MLOCKALL = 324 // { int mlockall(int how); } - SYS_MUNLOCKALL = 325 // { int munlockall(void); } - SYS___GETCWD = 326 // { int __getcwd(char *buf, u_int buflen); } - SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, \ - SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct \ - SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int \ - SYS_SCHED_GETSCHEDULER = 330 // { int sched_getscheduler (pid_t pid); } - SYS_SCHED_YIELD = 331 // { int sched_yield (void); } - SYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); } - SYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); } - SYS_SCHED_RR_GET_INTERVAL = 334 // { int sched_rr_get_interval (pid_t pid, \ - SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } - SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, \ - SYS_JAIL = 338 // { int jail(struct jail *jail); } - SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, \ - SYS_SIGSUSPEND = 341 // { int sigsuspend(const sigset_t *sigmask); } - SYS_SIGPENDING = 343 // { int sigpending(sigset_t *set); } - SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set, \ - SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set, \ - SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, \ - SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, \ - SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, \ - SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, \ - SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, \ - SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, \ - SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, \ - SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, \ - SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, \ - SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file( \ - SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file( \ - SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, \ - SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, \ - SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, \ - SYS_KQUEUE = 362 // { int kqueue(void); } - SYS_KEVENT = 363 // { int kevent(int fd, \ - SYS_EXTATTR_SET_FD = 371 // { ssize_t extattr_set_fd(int fd, \ - SYS_EXTATTR_GET_FD = 372 // { ssize_t extattr_get_fd(int fd, \ - SYS_EXTATTR_DELETE_FD = 373 // { int extattr_delete_fd(int fd, \ - SYS___SETUGID = 374 // { int __setugid(int flag); } - SYS_EACCESS = 376 // { int eaccess(char *path, int amode); } - SYS_NMOUNT = 378 // { int nmount(struct iovec *iovp, \ - SYS___MAC_GET_PROC = 384 // { int __mac_get_proc(struct mac *mac_p); } - SYS___MAC_SET_PROC = 385 // { int __mac_set_proc(struct mac *mac_p); } - SYS___MAC_GET_FD = 386 // { int __mac_get_fd(int fd, \ - SYS___MAC_GET_FILE = 387 // { int __mac_get_file(const char *path_p, \ - SYS___MAC_SET_FD = 388 // { int __mac_set_fd(int fd, \ - SYS___MAC_SET_FILE = 389 // { int __mac_set_file(const char *path_p, \ - SYS_KENV = 390 // { int kenv(int what, const char *name, \ - SYS_LCHFLAGS = 391 // { int lchflags(const char *path, \ - SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, \ - SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, \ - SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, \ - SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, \ - SYS_STATFS = 396 // { int statfs(char *path, \ - SYS_FSTATFS = 397 // { int fstatfs(int fd, struct statfs *buf); } - SYS_FHSTATFS = 398 // { int fhstatfs(const struct fhandle *u_fhp, \ - SYS___MAC_GET_PID = 409 // { int __mac_get_pid(pid_t pid, \ - SYS___MAC_GET_LINK = 410 // { int __mac_get_link(const char *path_p, \ - SYS___MAC_SET_LINK = 411 // { int __mac_set_link(const char *path_p, \ - SYS_EXTATTR_SET_LINK = 412 // { ssize_t extattr_set_link( \ - SYS_EXTATTR_GET_LINK = 413 // { ssize_t extattr_get_link( \ - SYS_EXTATTR_DELETE_LINK = 414 // { int extattr_delete_link( \ - SYS___MAC_EXECVE = 415 // { int __mac_execve(char *fname, char **argv, \ - SYS_SIGACTION = 416 // { int sigaction(int sig, \ - SYS_SIGRETURN = 417 // { int sigreturn( \ - SYS_GETCONTEXT = 421 // { int getcontext(struct __ucontext *ucp); } - SYS_SETCONTEXT = 422 // { int setcontext( \ - SYS_SWAPCONTEXT = 423 // { int swapcontext(struct __ucontext *oucp, \ - SYS_SWAPOFF = 424 // { int swapoff(const char *name); } - SYS___ACL_GET_LINK = 425 // { int __acl_get_link(const char *path, \ - SYS___ACL_SET_LINK = 426 // { int __acl_set_link(const char *path, \ - SYS___ACL_DELETE_LINK = 427 // { int __acl_delete_link(const char *path, \ - SYS___ACL_ACLCHECK_LINK = 428 // { int __acl_aclcheck_link(const char *path, \ - SYS_SIGWAIT = 429 // { int sigwait(const sigset_t *set, \ - SYS_THR_CREATE = 430 // { int thr_create(ucontext_t *ctx, long *id, \ - SYS_THR_EXIT = 431 // { void thr_exit(long *state); } - SYS_THR_SELF = 432 // { int thr_self(long *id); } - SYS_THR_KILL = 433 // { int thr_kill(long id, int sig); } - SYS__UMTX_LOCK = 434 // { int _umtx_lock(struct umtx *umtx); } - SYS__UMTX_UNLOCK = 435 // { int _umtx_unlock(struct umtx *umtx); } - SYS_JAIL_ATTACH = 436 // { int jail_attach(int jid); } - SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, \ - SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file( \ - SYS_EXTATTR_LIST_LINK = 439 // { ssize_t extattr_list_link( \ - SYS_THR_SUSPEND = 442 // { int thr_suspend( \ - SYS_THR_WAKE = 443 // { int thr_wake(long id); } - SYS_KLDUNLOADF = 444 // { int kldunloadf(int fileid, int flags); } - SYS_AUDIT = 445 // { int audit(const void *record, \ - SYS_AUDITON = 446 // { int auditon(int cmd, void *data, \ - SYS_GETAUID = 447 // { int getauid(uid_t *auid); } - SYS_SETAUID = 448 // { int setauid(uid_t *auid); } - SYS_GETAUDIT = 449 // { int getaudit(struct auditinfo *auditinfo); } - SYS_SETAUDIT = 450 // { int setaudit(struct auditinfo *auditinfo); } - SYS_GETAUDIT_ADDR = 451 // { int getaudit_addr( \ - SYS_SETAUDIT_ADDR = 452 // { int setaudit_addr( \ - SYS_AUDITCTL = 453 // { int auditctl(char *path); } - SYS__UMTX_OP = 454 // { int _umtx_op(void *obj, int op, \ - SYS_THR_NEW = 455 // { int thr_new(struct thr_param *param, \ - SYS_SIGQUEUE = 456 // { int sigqueue(pid_t pid, int signum, void *value); } - SYS_ABORT2 = 463 // { int abort2(const char *why, int nargs, void **args); } - SYS_THR_SET_NAME = 464 // { int thr_set_name(long id, const char *name); } - SYS_RTPRIO_THREAD = 466 // { int rtprio_thread(int function, \ - SYS_PREAD = 475 // { ssize_t pread(int fd, void *buf, \ - SYS_PWRITE = 476 // { ssize_t pwrite(int fd, const void *buf, \ - SYS_MMAP = 477 // { caddr_t mmap(caddr_t addr, size_t len, \ - SYS_LSEEK = 478 // { off_t lseek(int fd, off_t offset, \ - SYS_TRUNCATE = 479 // { int truncate(char *path, off_t length); } - SYS_FTRUNCATE = 480 // { int ftruncate(int fd, off_t length); } - SYS_THR_KILL2 = 481 // { int thr_kill2(pid_t pid, long id, int sig); } - SYS_SHM_OPEN = 482 // { int shm_open(const char *path, int flags, \ - SYS_SHM_UNLINK = 483 // { int shm_unlink(const char *path); } - SYS_CPUSET = 484 // { int cpuset(cpusetid_t *setid); } - SYS_CPUSET_SETID = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, \ - SYS_CPUSET_GETID = 486 // { int cpuset_getid(cpulevel_t level, \ - SYS_CPUSET_GETAFFINITY = 487 // { int cpuset_getaffinity(cpulevel_t level, \ - SYS_CPUSET_SETAFFINITY = 488 // { int cpuset_setaffinity(cpulevel_t level, \ - SYS_FACCESSAT = 489 // { int faccessat(int fd, char *path, int amode, \ - SYS_FCHMODAT = 490 // { int fchmodat(int fd, char *path, mode_t mode, \ - SYS_FCHOWNAT = 491 // { int fchownat(int fd, char *path, uid_t uid, \ - SYS_FEXECVE = 492 // { int fexecve(int fd, char **argv, \ - SYS_FSTATAT = 493 // { int fstatat(int fd, char *path, \ - SYS_FUTIMESAT = 494 // { int futimesat(int fd, char *path, \ - SYS_LINKAT = 495 // { int linkat(int fd1, char *path1, int fd2, \ - SYS_MKDIRAT = 496 // { int mkdirat(int fd, char *path, mode_t mode); } - SYS_MKFIFOAT = 497 // { int mkfifoat(int fd, char *path, mode_t mode); } - SYS_MKNODAT = 498 // { int mknodat(int fd, char *path, mode_t mode, \ - SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, \ - SYS_READLINKAT = 500 // { int readlinkat(int fd, char *path, char *buf, \ - SYS_RENAMEAT = 501 // { int renameat(int oldfd, char *old, int newfd, \ - SYS_SYMLINKAT = 502 // { int symlinkat(char *path1, int fd, \ - SYS_UNLINKAT = 503 // { int unlinkat(int fd, char *path, int flag); } - SYS_POSIX_OPENPT = 504 // { int posix_openpt(int flags); } - SYS_JAIL_GET = 506 // { int jail_get(struct iovec *iovp, \ - SYS_JAIL_SET = 507 // { int jail_set(struct iovec *iovp, \ - SYS_JAIL_REMOVE = 508 // { int jail_remove(int jid); } - SYS_CLOSEFROM = 509 // { int closefrom(int lowfd); } - SYS_LPATHCONF = 513 // { int lpathconf(char *path, int name); } - SYS___CAP_RIGHTS_GET = 515 // { int __cap_rights_get(int version, \ - SYS_CAP_ENTER = 516 // { int cap_enter(void); } - SYS_CAP_GETMODE = 517 // { int cap_getmode(u_int *modep); } - SYS_PDFORK = 518 // { int pdfork(int *fdp, int flags); } - SYS_PDKILL = 519 // { int pdkill(int fd, int signum); } - SYS_PDGETPID = 520 // { int pdgetpid(int fd, pid_t *pidp); } - SYS_PSELECT = 522 // { int pselect(int nd, fd_set *in, \ - SYS_GETLOGINCLASS = 523 // { int getloginclass(char *namebuf, \ - SYS_SETLOGINCLASS = 524 // { int setloginclass(const char *namebuf); } - SYS_RCTL_GET_RACCT = 525 // { int rctl_get_racct(const void *inbufp, \ - SYS_RCTL_GET_RULES = 526 // { int rctl_get_rules(const void *inbufp, \ - SYS_RCTL_GET_LIMITS = 527 // { int rctl_get_limits(const void *inbufp, \ - SYS_RCTL_ADD_RULE = 528 // { int rctl_add_rule(const void *inbufp, \ - SYS_RCTL_REMOVE_RULE = 529 // { int rctl_remove_rule(const void *inbufp, \ - SYS_POSIX_FALLOCATE = 530 // { int posix_fallocate(int fd, \ - SYS_POSIX_FADVISE = 531 // { int posix_fadvise(int fd, off_t offset, \ - SYS_WAIT6 = 532 // { int wait6(idtype_t idtype, id_t id, \ - SYS_CAP_RIGHTS_LIMIT = 533 // { int cap_rights_limit(int fd, \ - SYS_CAP_IOCTLS_LIMIT = 534 // { int cap_ioctls_limit(int fd, \ - SYS_CAP_IOCTLS_GET = 535 // { ssize_t cap_ioctls_get(int fd, \ - SYS_CAP_FCNTLS_LIMIT = 536 // { int cap_fcntls_limit(int fd, \ - SYS_CAP_FCNTLS_GET = 537 // { int cap_fcntls_get(int fd, \ - SYS_BINDAT = 538 // { int bindat(int fd, int s, caddr_t name, \ - SYS_CONNECTAT = 539 // { int connectat(int fd, int s, caddr_t name, \ - SYS_CHFLAGSAT = 540 // { int chflagsat(int fd, const char *path, \ - SYS_ACCEPT4 = 541 // { int accept4(int s, \ - SYS_PIPE2 = 542 // { int pipe2(int *fildes, int flags); } - SYS_PROCCTL = 544 // { int procctl(idtype_t idtype, id_t id, \ - SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, \ - SYS_FUTIMENS = 546 // { int futimens(int fd, \ - SYS_UTIMENSAT = 547 // { int utimensat(int fd, \ -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go deleted file mode 100644 index 81722ac..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go +++ /dev/null @@ -1,353 +0,0 @@ -// mksysnum_freebsd.pl -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build amd64,freebsd - -package unix - -const ( - // SYS_NOSYS = 0; // { int nosys(void); } syscall nosys_args int - SYS_EXIT = 1 // { void sys_exit(int rval); } exit \ - SYS_FORK = 2 // { int fork(void); } - SYS_READ = 3 // { ssize_t read(int fd, void *buf, \ - SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, \ - SYS_OPEN = 5 // { int open(char *path, int flags, int mode); } - SYS_CLOSE = 6 // { int close(int fd); } - SYS_WAIT4 = 7 // { int wait4(int pid, int *status, \ - SYS_LINK = 9 // { int link(char *path, char *link); } - SYS_UNLINK = 10 // { int unlink(char *path); } - SYS_CHDIR = 12 // { int chdir(char *path); } - SYS_FCHDIR = 13 // { int fchdir(int fd); } - SYS_MKNOD = 14 // { int mknod(char *path, int mode, int dev); } - SYS_CHMOD = 15 // { int chmod(char *path, int mode); } - SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } - SYS_OBREAK = 17 // { int obreak(char *nsize); } break \ - SYS_GETPID = 20 // { pid_t getpid(void); } - SYS_MOUNT = 21 // { int mount(char *type, char *path, \ - SYS_UNMOUNT = 22 // { int unmount(char *path, int flags); } - SYS_SETUID = 23 // { int setuid(uid_t uid); } - SYS_GETUID = 24 // { uid_t getuid(void); } - SYS_GETEUID = 25 // { uid_t geteuid(void); } - SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, \ - SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, \ - SYS_SENDMSG = 28 // { int sendmsg(int s, struct msghdr *msg, \ - SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, \ - SYS_ACCEPT = 30 // { int accept(int s, \ - SYS_GETPEERNAME = 31 // { int getpeername(int fdes, \ - SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, \ - SYS_ACCESS = 33 // { int access(char *path, int amode); } - SYS_CHFLAGS = 34 // { int chflags(const char *path, u_long flags); } - SYS_FCHFLAGS = 35 // { int fchflags(int fd, u_long flags); } - SYS_SYNC = 36 // { int sync(void); } - SYS_KILL = 37 // { int kill(int pid, int signum); } - SYS_GETPPID = 39 // { pid_t getppid(void); } - SYS_DUP = 41 // { int dup(u_int fd); } - SYS_PIPE = 42 // { int pipe(void); } - SYS_GETEGID = 43 // { gid_t getegid(void); } - SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, \ - SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, \ - SYS_GETGID = 47 // { gid_t getgid(void); } - SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int \ - SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); } - SYS_ACCT = 51 // { int acct(char *path); } - SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, \ - SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, \ - SYS_REBOOT = 55 // { int reboot(int opt); } - SYS_REVOKE = 56 // { int revoke(char *path); } - SYS_SYMLINK = 57 // { int symlink(char *path, char *link); } - SYS_READLINK = 58 // { ssize_t readlink(char *path, char *buf, \ - SYS_EXECVE = 59 // { int execve(char *fname, char **argv, \ - SYS_UMASK = 60 // { int umask(int newmask); } umask umask_args \ - SYS_CHROOT = 61 // { int chroot(char *path); } - SYS_MSYNC = 65 // { int msync(void *addr, size_t len, \ - SYS_VFORK = 66 // { int vfork(void); } - SYS_SBRK = 69 // { int sbrk(int incr); } - SYS_SSTK = 70 // { int sstk(int incr); } - SYS_OVADVISE = 72 // { int ovadvise(int anom); } vadvise \ - SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int mprotect(const void *addr, size_t len, \ - SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, \ - SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, \ - SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, \ - SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, \ - SYS_GETPGRP = 81 // { int getpgrp(void); } - SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); } - SYS_SETITIMER = 83 // { int setitimer(u_int which, struct \ - SYS_SWAPON = 85 // { int swapon(char *name); } - SYS_GETITIMER = 86 // { int getitimer(u_int which, \ - SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); } - SYS_DUP2 = 90 // { int dup2(u_int from, u_int to); } - SYS_FCNTL = 92 // { int fcntl(int fd, int cmd, long arg); } - SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, \ - SYS_FSYNC = 95 // { int fsync(int fd); } - SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, \ - SYS_SOCKET = 97 // { int socket(int domain, int type, \ - SYS_CONNECT = 98 // { int connect(int s, caddr_t name, \ - SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); } - SYS_BIND = 104 // { int bind(int s, caddr_t name, \ - SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, \ - SYS_LISTEN = 106 // { int listen(int s, int backlog); } - SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, \ - SYS_GETRUSAGE = 117 // { int getrusage(int who, \ - SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, \ - SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, \ - SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, \ - SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, \ - SYS_FCHOWN = 123 // { int fchown(int fd, int uid, int gid); } - SYS_FCHMOD = 124 // { int fchmod(int fd, int mode); } - SYS_SETREUID = 126 // { int setreuid(int ruid, int euid); } - SYS_SETREGID = 127 // { int setregid(int rgid, int egid); } - SYS_RENAME = 128 // { int rename(char *from, char *to); } - SYS_FLOCK = 131 // { int flock(int fd, int how); } - SYS_MKFIFO = 132 // { int mkfifo(char *path, int mode); } - SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, \ - SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, \ - SYS_MKDIR = 136 // { int mkdir(char *path, int mode); } - SYS_RMDIR = 137 // { int rmdir(char *path); } - SYS_UTIMES = 138 // { int utimes(char *path, \ - SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, \ - SYS_SETSID = 147 // { int setsid(void); } - SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, \ - SYS_LGETFH = 160 // { int lgetfh(char *fname, \ - SYS_GETFH = 161 // { int getfh(char *fname, \ - SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); } - SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, \ - SYS_FREEBSD6_PREAD = 173 // { ssize_t freebsd6_pread(int fd, void *buf, \ - SYS_FREEBSD6_PWRITE = 174 // { ssize_t freebsd6_pwrite(int fd, \ - SYS_SETFIB = 175 // { int setfib(int fibnum); } - SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } - SYS_SETGID = 181 // { int setgid(gid_t gid); } - SYS_SETEGID = 182 // { int setegid(gid_t egid); } - SYS_SETEUID = 183 // { int seteuid(uid_t euid); } - SYS_STAT = 188 // { int stat(char *path, struct stat *ub); } - SYS_FSTAT = 189 // { int fstat(int fd, struct stat *sb); } - SYS_LSTAT = 190 // { int lstat(char *path, struct stat *ub); } - SYS_PATHCONF = 191 // { int pathconf(char *path, int name); } - SYS_FPATHCONF = 192 // { int fpathconf(int fd, int name); } - SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, \ - SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, \ - SYS_GETDIRENTRIES = 196 // { int getdirentries(int fd, char *buf, \ - SYS_FREEBSD6_MMAP = 197 // { caddr_t freebsd6_mmap(caddr_t addr, \ - SYS_FREEBSD6_LSEEK = 199 // { off_t freebsd6_lseek(int fd, int pad, \ - SYS_FREEBSD6_TRUNCATE = 200 // { int freebsd6_truncate(char *path, int pad, \ - SYS_FREEBSD6_FTRUNCATE = 201 // { int freebsd6_ftruncate(int fd, int pad, \ - SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, \ - SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); } - SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); } - SYS_UNDELETE = 205 // { int undelete(char *path); } - SYS_FUTIMES = 206 // { int futimes(int fd, struct timeval *tptr); } - SYS_GETPGID = 207 // { int getpgid(pid_t pid); } - SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, \ - SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, \ - SYS_CLOCK_SETTIME = 233 // { int clock_settime( \ - SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, \ - SYS_KTIMER_CREATE = 235 // { int ktimer_create(clockid_t clock_id, \ - SYS_KTIMER_DELETE = 236 // { int ktimer_delete(int timerid); } - SYS_KTIMER_SETTIME = 237 // { int ktimer_settime(int timerid, int flags, \ - SYS_KTIMER_GETTIME = 238 // { int ktimer_gettime(int timerid, struct \ - SYS_KTIMER_GETOVERRUN = 239 // { int ktimer_getoverrun(int timerid); } - SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, \ - SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); } - SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate( \ - SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate( \ - SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id,\ - SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); } - SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, \ - SYS_RFORK = 251 // { int rfork(int flags); } - SYS_OPENBSD_POLL = 252 // { int openbsd_poll(struct pollfd *fds, \ - SYS_ISSETUGID = 253 // { int issetugid(void); } - SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); } - SYS_GETDENTS = 272 // { int getdents(int fd, char *buf, \ - SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } - SYS_LUTIMES = 276 // { int lutimes(char *path, \ - SYS_NSTAT = 278 // { int nstat(char *path, struct nstat *ub); } - SYS_NFSTAT = 279 // { int nfstat(int fd, struct nstat *sb); } - SYS_NLSTAT = 280 // { int nlstat(char *path, struct nstat *ub); } - SYS_PREADV = 289 // { ssize_t preadv(int fd, struct iovec *iovp, \ - SYS_PWRITEV = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, \ - SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, \ - SYS_FHSTAT = 299 // { int fhstat(const struct fhandle *u_fhp, \ - SYS_MODNEXT = 300 // { int modnext(int modid); } - SYS_MODSTAT = 301 // { int modstat(int modid, \ - SYS_MODFNEXT = 302 // { int modfnext(int modid); } - SYS_MODFIND = 303 // { int modfind(const char *name); } - SYS_KLDLOAD = 304 // { int kldload(const char *file); } - SYS_KLDUNLOAD = 305 // { int kldunload(int fileid); } - SYS_KLDFIND = 306 // { int kldfind(const char *file); } - SYS_KLDNEXT = 307 // { int kldnext(int fileid); } - SYS_KLDSTAT = 308 // { int kldstat(int fileid, struct \ - SYS_KLDFIRSTMOD = 309 // { int kldfirstmod(int fileid); } - SYS_GETSID = 310 // { int getsid(pid_t pid); } - SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, \ - SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, \ - SYS_YIELD = 321 // { int yield(void); } - SYS_MLOCKALL = 324 // { int mlockall(int how); } - SYS_MUNLOCKALL = 325 // { int munlockall(void); } - SYS___GETCWD = 326 // { int __getcwd(char *buf, u_int buflen); } - SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, \ - SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct \ - SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int \ - SYS_SCHED_GETSCHEDULER = 330 // { int sched_getscheduler (pid_t pid); } - SYS_SCHED_YIELD = 331 // { int sched_yield (void); } - SYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); } - SYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); } - SYS_SCHED_RR_GET_INTERVAL = 334 // { int sched_rr_get_interval (pid_t pid, \ - SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } - SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, \ - SYS_JAIL = 338 // { int jail(struct jail *jail); } - SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, \ - SYS_SIGSUSPEND = 341 // { int sigsuspend(const sigset_t *sigmask); } - SYS_SIGPENDING = 343 // { int sigpending(sigset_t *set); } - SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set, \ - SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set, \ - SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, \ - SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, \ - SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, \ - SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, \ - SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, \ - SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, \ - SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, \ - SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, \ - SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, \ - SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file( \ - SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file( \ - SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, \ - SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, \ - SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, \ - SYS_KQUEUE = 362 // { int kqueue(void); } - SYS_KEVENT = 363 // { int kevent(int fd, \ - SYS_EXTATTR_SET_FD = 371 // { ssize_t extattr_set_fd(int fd, \ - SYS_EXTATTR_GET_FD = 372 // { ssize_t extattr_get_fd(int fd, \ - SYS_EXTATTR_DELETE_FD = 373 // { int extattr_delete_fd(int fd, \ - SYS___SETUGID = 374 // { int __setugid(int flag); } - SYS_EACCESS = 376 // { int eaccess(char *path, int amode); } - SYS_NMOUNT = 378 // { int nmount(struct iovec *iovp, \ - SYS___MAC_GET_PROC = 384 // { int __mac_get_proc(struct mac *mac_p); } - SYS___MAC_SET_PROC = 385 // { int __mac_set_proc(struct mac *mac_p); } - SYS___MAC_GET_FD = 386 // { int __mac_get_fd(int fd, \ - SYS___MAC_GET_FILE = 387 // { int __mac_get_file(const char *path_p, \ - SYS___MAC_SET_FD = 388 // { int __mac_set_fd(int fd, \ - SYS___MAC_SET_FILE = 389 // { int __mac_set_file(const char *path_p, \ - SYS_KENV = 390 // { int kenv(int what, const char *name, \ - SYS_LCHFLAGS = 391 // { int lchflags(const char *path, \ - SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, \ - SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, \ - SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, \ - SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, \ - SYS_STATFS = 396 // { int statfs(char *path, \ - SYS_FSTATFS = 397 // { int fstatfs(int fd, struct statfs *buf); } - SYS_FHSTATFS = 398 // { int fhstatfs(const struct fhandle *u_fhp, \ - SYS___MAC_GET_PID = 409 // { int __mac_get_pid(pid_t pid, \ - SYS___MAC_GET_LINK = 410 // { int __mac_get_link(const char *path_p, \ - SYS___MAC_SET_LINK = 411 // { int __mac_set_link(const char *path_p, \ - SYS_EXTATTR_SET_LINK = 412 // { ssize_t extattr_set_link( \ - SYS_EXTATTR_GET_LINK = 413 // { ssize_t extattr_get_link( \ - SYS_EXTATTR_DELETE_LINK = 414 // { int extattr_delete_link( \ - SYS___MAC_EXECVE = 415 // { int __mac_execve(char *fname, char **argv, \ - SYS_SIGACTION = 416 // { int sigaction(int sig, \ - SYS_SIGRETURN = 417 // { int sigreturn( \ - SYS_GETCONTEXT = 421 // { int getcontext(struct __ucontext *ucp); } - SYS_SETCONTEXT = 422 // { int setcontext( \ - SYS_SWAPCONTEXT = 423 // { int swapcontext(struct __ucontext *oucp, \ - SYS_SWAPOFF = 424 // { int swapoff(const char *name); } - SYS___ACL_GET_LINK = 425 // { int __acl_get_link(const char *path, \ - SYS___ACL_SET_LINK = 426 // { int __acl_set_link(const char *path, \ - SYS___ACL_DELETE_LINK = 427 // { int __acl_delete_link(const char *path, \ - SYS___ACL_ACLCHECK_LINK = 428 // { int __acl_aclcheck_link(const char *path, \ - SYS_SIGWAIT = 429 // { int sigwait(const sigset_t *set, \ - SYS_THR_CREATE = 430 // { int thr_create(ucontext_t *ctx, long *id, \ - SYS_THR_EXIT = 431 // { void thr_exit(long *state); } - SYS_THR_SELF = 432 // { int thr_self(long *id); } - SYS_THR_KILL = 433 // { int thr_kill(long id, int sig); } - SYS__UMTX_LOCK = 434 // { int _umtx_lock(struct umtx *umtx); } - SYS__UMTX_UNLOCK = 435 // { int _umtx_unlock(struct umtx *umtx); } - SYS_JAIL_ATTACH = 436 // { int jail_attach(int jid); } - SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, \ - SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file( \ - SYS_EXTATTR_LIST_LINK = 439 // { ssize_t extattr_list_link( \ - SYS_THR_SUSPEND = 442 // { int thr_suspend( \ - SYS_THR_WAKE = 443 // { int thr_wake(long id); } - SYS_KLDUNLOADF = 444 // { int kldunloadf(int fileid, int flags); } - SYS_AUDIT = 445 // { int audit(const void *record, \ - SYS_AUDITON = 446 // { int auditon(int cmd, void *data, \ - SYS_GETAUID = 447 // { int getauid(uid_t *auid); } - SYS_SETAUID = 448 // { int setauid(uid_t *auid); } - SYS_GETAUDIT = 449 // { int getaudit(struct auditinfo *auditinfo); } - SYS_SETAUDIT = 450 // { int setaudit(struct auditinfo *auditinfo); } - SYS_GETAUDIT_ADDR = 451 // { int getaudit_addr( \ - SYS_SETAUDIT_ADDR = 452 // { int setaudit_addr( \ - SYS_AUDITCTL = 453 // { int auditctl(char *path); } - SYS__UMTX_OP = 454 // { int _umtx_op(void *obj, int op, \ - SYS_THR_NEW = 455 // { int thr_new(struct thr_param *param, \ - SYS_SIGQUEUE = 456 // { int sigqueue(pid_t pid, int signum, void *value); } - SYS_ABORT2 = 463 // { int abort2(const char *why, int nargs, void **args); } - SYS_THR_SET_NAME = 464 // { int thr_set_name(long id, const char *name); } - SYS_RTPRIO_THREAD = 466 // { int rtprio_thread(int function, \ - SYS_PREAD = 475 // { ssize_t pread(int fd, void *buf, \ - SYS_PWRITE = 476 // { ssize_t pwrite(int fd, const void *buf, \ - SYS_MMAP = 477 // { caddr_t mmap(caddr_t addr, size_t len, \ - SYS_LSEEK = 478 // { off_t lseek(int fd, off_t offset, \ - SYS_TRUNCATE = 479 // { int truncate(char *path, off_t length); } - SYS_FTRUNCATE = 480 // { int ftruncate(int fd, off_t length); } - SYS_THR_KILL2 = 481 // { int thr_kill2(pid_t pid, long id, int sig); } - SYS_SHM_OPEN = 482 // { int shm_open(const char *path, int flags, \ - SYS_SHM_UNLINK = 483 // { int shm_unlink(const char *path); } - SYS_CPUSET = 484 // { int cpuset(cpusetid_t *setid); } - SYS_CPUSET_SETID = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, \ - SYS_CPUSET_GETID = 486 // { int cpuset_getid(cpulevel_t level, \ - SYS_CPUSET_GETAFFINITY = 487 // { int cpuset_getaffinity(cpulevel_t level, \ - SYS_CPUSET_SETAFFINITY = 488 // { int cpuset_setaffinity(cpulevel_t level, \ - SYS_FACCESSAT = 489 // { int faccessat(int fd, char *path, int amode, \ - SYS_FCHMODAT = 490 // { int fchmodat(int fd, char *path, mode_t mode, \ - SYS_FCHOWNAT = 491 // { int fchownat(int fd, char *path, uid_t uid, \ - SYS_FEXECVE = 492 // { int fexecve(int fd, char **argv, \ - SYS_FSTATAT = 493 // { int fstatat(int fd, char *path, \ - SYS_FUTIMESAT = 494 // { int futimesat(int fd, char *path, \ - SYS_LINKAT = 495 // { int linkat(int fd1, char *path1, int fd2, \ - SYS_MKDIRAT = 496 // { int mkdirat(int fd, char *path, mode_t mode); } - SYS_MKFIFOAT = 497 // { int mkfifoat(int fd, char *path, mode_t mode); } - SYS_MKNODAT = 498 // { int mknodat(int fd, char *path, mode_t mode, \ - SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, \ - SYS_READLINKAT = 500 // { int readlinkat(int fd, char *path, char *buf, \ - SYS_RENAMEAT = 501 // { int renameat(int oldfd, char *old, int newfd, \ - SYS_SYMLINKAT = 502 // { int symlinkat(char *path1, int fd, \ - SYS_UNLINKAT = 503 // { int unlinkat(int fd, char *path, int flag); } - SYS_POSIX_OPENPT = 504 // { int posix_openpt(int flags); } - SYS_JAIL_GET = 506 // { int jail_get(struct iovec *iovp, \ - SYS_JAIL_SET = 507 // { int jail_set(struct iovec *iovp, \ - SYS_JAIL_REMOVE = 508 // { int jail_remove(int jid); } - SYS_CLOSEFROM = 509 // { int closefrom(int lowfd); } - SYS_LPATHCONF = 513 // { int lpathconf(char *path, int name); } - SYS___CAP_RIGHTS_GET = 515 // { int __cap_rights_get(int version, \ - SYS_CAP_ENTER = 516 // { int cap_enter(void); } - SYS_CAP_GETMODE = 517 // { int cap_getmode(u_int *modep); } - SYS_PDFORK = 518 // { int pdfork(int *fdp, int flags); } - SYS_PDKILL = 519 // { int pdkill(int fd, int signum); } - SYS_PDGETPID = 520 // { int pdgetpid(int fd, pid_t *pidp); } - SYS_PSELECT = 522 // { int pselect(int nd, fd_set *in, \ - SYS_GETLOGINCLASS = 523 // { int getloginclass(char *namebuf, \ - SYS_SETLOGINCLASS = 524 // { int setloginclass(const char *namebuf); } - SYS_RCTL_GET_RACCT = 525 // { int rctl_get_racct(const void *inbufp, \ - SYS_RCTL_GET_RULES = 526 // { int rctl_get_rules(const void *inbufp, \ - SYS_RCTL_GET_LIMITS = 527 // { int rctl_get_limits(const void *inbufp, \ - SYS_RCTL_ADD_RULE = 528 // { int rctl_add_rule(const void *inbufp, \ - SYS_RCTL_REMOVE_RULE = 529 // { int rctl_remove_rule(const void *inbufp, \ - SYS_POSIX_FALLOCATE = 530 // { int posix_fallocate(int fd, \ - SYS_POSIX_FADVISE = 531 // { int posix_fadvise(int fd, off_t offset, \ - SYS_WAIT6 = 532 // { int wait6(idtype_t idtype, id_t id, \ - SYS_CAP_RIGHTS_LIMIT = 533 // { int cap_rights_limit(int fd, \ - SYS_CAP_IOCTLS_LIMIT = 534 // { int cap_ioctls_limit(int fd, \ - SYS_CAP_IOCTLS_GET = 535 // { ssize_t cap_ioctls_get(int fd, \ - SYS_CAP_FCNTLS_LIMIT = 536 // { int cap_fcntls_limit(int fd, \ - SYS_CAP_FCNTLS_GET = 537 // { int cap_fcntls_get(int fd, \ - SYS_BINDAT = 538 // { int bindat(int fd, int s, caddr_t name, \ - SYS_CONNECTAT = 539 // { int connectat(int fd, int s, caddr_t name, \ - SYS_CHFLAGSAT = 540 // { int chflagsat(int fd, const char *path, \ - SYS_ACCEPT4 = 541 // { int accept4(int s, \ - SYS_PIPE2 = 542 // { int pipe2(int *fildes, int flags); } - SYS_PROCCTL = 544 // { int procctl(idtype_t idtype, id_t id, \ - SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, \ - SYS_FUTIMENS = 546 // { int futimens(int fd, \ - SYS_UTIMENSAT = 547 // { int utimensat(int fd, \ -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go deleted file mode 100644 index 4488314..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go +++ /dev/null @@ -1,353 +0,0 @@ -// mksysnum_freebsd.pl -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build arm,freebsd - -package unix - -const ( - // SYS_NOSYS = 0; // { int nosys(void); } syscall nosys_args int - SYS_EXIT = 1 // { void sys_exit(int rval); } exit \ - SYS_FORK = 2 // { int fork(void); } - SYS_READ = 3 // { ssize_t read(int fd, void *buf, \ - SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, \ - SYS_OPEN = 5 // { int open(char *path, int flags, int mode); } - SYS_CLOSE = 6 // { int close(int fd); } - SYS_WAIT4 = 7 // { int wait4(int pid, int *status, \ - SYS_LINK = 9 // { int link(char *path, char *link); } - SYS_UNLINK = 10 // { int unlink(char *path); } - SYS_CHDIR = 12 // { int chdir(char *path); } - SYS_FCHDIR = 13 // { int fchdir(int fd); } - SYS_MKNOD = 14 // { int mknod(char *path, int mode, int dev); } - SYS_CHMOD = 15 // { int chmod(char *path, int mode); } - SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } - SYS_OBREAK = 17 // { int obreak(char *nsize); } break \ - SYS_GETPID = 20 // { pid_t getpid(void); } - SYS_MOUNT = 21 // { int mount(char *type, char *path, \ - SYS_UNMOUNT = 22 // { int unmount(char *path, int flags); } - SYS_SETUID = 23 // { int setuid(uid_t uid); } - SYS_GETUID = 24 // { uid_t getuid(void); } - SYS_GETEUID = 25 // { uid_t geteuid(void); } - SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, \ - SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, \ - SYS_SENDMSG = 28 // { int sendmsg(int s, struct msghdr *msg, \ - SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, \ - SYS_ACCEPT = 30 // { int accept(int s, \ - SYS_GETPEERNAME = 31 // { int getpeername(int fdes, \ - SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, \ - SYS_ACCESS = 33 // { int access(char *path, int amode); } - SYS_CHFLAGS = 34 // { int chflags(const char *path, u_long flags); } - SYS_FCHFLAGS = 35 // { int fchflags(int fd, u_long flags); } - SYS_SYNC = 36 // { int sync(void); } - SYS_KILL = 37 // { int kill(int pid, int signum); } - SYS_GETPPID = 39 // { pid_t getppid(void); } - SYS_DUP = 41 // { int dup(u_int fd); } - SYS_PIPE = 42 // { int pipe(void); } - SYS_GETEGID = 43 // { gid_t getegid(void); } - SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, \ - SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, \ - SYS_GETGID = 47 // { gid_t getgid(void); } - SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int \ - SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); } - SYS_ACCT = 51 // { int acct(char *path); } - SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, \ - SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, \ - SYS_REBOOT = 55 // { int reboot(int opt); } - SYS_REVOKE = 56 // { int revoke(char *path); } - SYS_SYMLINK = 57 // { int symlink(char *path, char *link); } - SYS_READLINK = 58 // { ssize_t readlink(char *path, char *buf, \ - SYS_EXECVE = 59 // { int execve(char *fname, char **argv, \ - SYS_UMASK = 60 // { int umask(int newmask); } umask umask_args \ - SYS_CHROOT = 61 // { int chroot(char *path); } - SYS_MSYNC = 65 // { int msync(void *addr, size_t len, \ - SYS_VFORK = 66 // { int vfork(void); } - SYS_SBRK = 69 // { int sbrk(int incr); } - SYS_SSTK = 70 // { int sstk(int incr); } - SYS_OVADVISE = 72 // { int ovadvise(int anom); } vadvise \ - SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int mprotect(const void *addr, size_t len, \ - SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, \ - SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, \ - SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, \ - SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, \ - SYS_GETPGRP = 81 // { int getpgrp(void); } - SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); } - SYS_SETITIMER = 83 // { int setitimer(u_int which, struct \ - SYS_SWAPON = 85 // { int swapon(char *name); } - SYS_GETITIMER = 86 // { int getitimer(u_int which, \ - SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); } - SYS_DUP2 = 90 // { int dup2(u_int from, u_int to); } - SYS_FCNTL = 92 // { int fcntl(int fd, int cmd, long arg); } - SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, \ - SYS_FSYNC = 95 // { int fsync(int fd); } - SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, \ - SYS_SOCKET = 97 // { int socket(int domain, int type, \ - SYS_CONNECT = 98 // { int connect(int s, caddr_t name, \ - SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); } - SYS_BIND = 104 // { int bind(int s, caddr_t name, \ - SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, \ - SYS_LISTEN = 106 // { int listen(int s, int backlog); } - SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, \ - SYS_GETRUSAGE = 117 // { int getrusage(int who, \ - SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, \ - SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, \ - SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, \ - SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, \ - SYS_FCHOWN = 123 // { int fchown(int fd, int uid, int gid); } - SYS_FCHMOD = 124 // { int fchmod(int fd, int mode); } - SYS_SETREUID = 126 // { int setreuid(int ruid, int euid); } - SYS_SETREGID = 127 // { int setregid(int rgid, int egid); } - SYS_RENAME = 128 // { int rename(char *from, char *to); } - SYS_FLOCK = 131 // { int flock(int fd, int how); } - SYS_MKFIFO = 132 // { int mkfifo(char *path, int mode); } - SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, \ - SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, \ - SYS_MKDIR = 136 // { int mkdir(char *path, int mode); } - SYS_RMDIR = 137 // { int rmdir(char *path); } - SYS_UTIMES = 138 // { int utimes(char *path, \ - SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, \ - SYS_SETSID = 147 // { int setsid(void); } - SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, \ - SYS_LGETFH = 160 // { int lgetfh(char *fname, \ - SYS_GETFH = 161 // { int getfh(char *fname, \ - SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); } - SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, \ - SYS_FREEBSD6_PREAD = 173 // { ssize_t freebsd6_pread(int fd, void *buf, \ - SYS_FREEBSD6_PWRITE = 174 // { ssize_t freebsd6_pwrite(int fd, \ - SYS_SETFIB = 175 // { int setfib(int fibnum); } - SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } - SYS_SETGID = 181 // { int setgid(gid_t gid); } - SYS_SETEGID = 182 // { int setegid(gid_t egid); } - SYS_SETEUID = 183 // { int seteuid(uid_t euid); } - SYS_STAT = 188 // { int stat(char *path, struct stat *ub); } - SYS_FSTAT = 189 // { int fstat(int fd, struct stat *sb); } - SYS_LSTAT = 190 // { int lstat(char *path, struct stat *ub); } - SYS_PATHCONF = 191 // { int pathconf(char *path, int name); } - SYS_FPATHCONF = 192 // { int fpathconf(int fd, int name); } - SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, \ - SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, \ - SYS_GETDIRENTRIES = 196 // { int getdirentries(int fd, char *buf, \ - SYS_FREEBSD6_MMAP = 197 // { caddr_t freebsd6_mmap(caddr_t addr, \ - SYS_FREEBSD6_LSEEK = 199 // { off_t freebsd6_lseek(int fd, int pad, \ - SYS_FREEBSD6_TRUNCATE = 200 // { int freebsd6_truncate(char *path, int pad, \ - SYS_FREEBSD6_FTRUNCATE = 201 // { int freebsd6_ftruncate(int fd, int pad, \ - SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, \ - SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); } - SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); } - SYS_UNDELETE = 205 // { int undelete(char *path); } - SYS_FUTIMES = 206 // { int futimes(int fd, struct timeval *tptr); } - SYS_GETPGID = 207 // { int getpgid(pid_t pid); } - SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, \ - SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, \ - SYS_CLOCK_SETTIME = 233 // { int clock_settime( \ - SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, \ - SYS_KTIMER_CREATE = 235 // { int ktimer_create(clockid_t clock_id, \ - SYS_KTIMER_DELETE = 236 // { int ktimer_delete(int timerid); } - SYS_KTIMER_SETTIME = 237 // { int ktimer_settime(int timerid, int flags, \ - SYS_KTIMER_GETTIME = 238 // { int ktimer_gettime(int timerid, struct \ - SYS_KTIMER_GETOVERRUN = 239 // { int ktimer_getoverrun(int timerid); } - SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, \ - SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); } - SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate( \ - SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate( \ - SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id,\ - SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); } - SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, \ - SYS_RFORK = 251 // { int rfork(int flags); } - SYS_OPENBSD_POLL = 252 // { int openbsd_poll(struct pollfd *fds, \ - SYS_ISSETUGID = 253 // { int issetugid(void); } - SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); } - SYS_GETDENTS = 272 // { int getdents(int fd, char *buf, \ - SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } - SYS_LUTIMES = 276 // { int lutimes(char *path, \ - SYS_NSTAT = 278 // { int nstat(char *path, struct nstat *ub); } - SYS_NFSTAT = 279 // { int nfstat(int fd, struct nstat *sb); } - SYS_NLSTAT = 280 // { int nlstat(char *path, struct nstat *ub); } - SYS_PREADV = 289 // { ssize_t preadv(int fd, struct iovec *iovp, \ - SYS_PWRITEV = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, \ - SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, \ - SYS_FHSTAT = 299 // { int fhstat(const struct fhandle *u_fhp, \ - SYS_MODNEXT = 300 // { int modnext(int modid); } - SYS_MODSTAT = 301 // { int modstat(int modid, \ - SYS_MODFNEXT = 302 // { int modfnext(int modid); } - SYS_MODFIND = 303 // { int modfind(const char *name); } - SYS_KLDLOAD = 304 // { int kldload(const char *file); } - SYS_KLDUNLOAD = 305 // { int kldunload(int fileid); } - SYS_KLDFIND = 306 // { int kldfind(const char *file); } - SYS_KLDNEXT = 307 // { int kldnext(int fileid); } - SYS_KLDSTAT = 308 // { int kldstat(int fileid, struct \ - SYS_KLDFIRSTMOD = 309 // { int kldfirstmod(int fileid); } - SYS_GETSID = 310 // { int getsid(pid_t pid); } - SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, \ - SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, \ - SYS_YIELD = 321 // { int yield(void); } - SYS_MLOCKALL = 324 // { int mlockall(int how); } - SYS_MUNLOCKALL = 325 // { int munlockall(void); } - SYS___GETCWD = 326 // { int __getcwd(char *buf, u_int buflen); } - SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, \ - SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct \ - SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int \ - SYS_SCHED_GETSCHEDULER = 330 // { int sched_getscheduler (pid_t pid); } - SYS_SCHED_YIELD = 331 // { int sched_yield (void); } - SYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); } - SYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); } - SYS_SCHED_RR_GET_INTERVAL = 334 // { int sched_rr_get_interval (pid_t pid, \ - SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } - SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, \ - SYS_JAIL = 338 // { int jail(struct jail *jail); } - SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, \ - SYS_SIGSUSPEND = 341 // { int sigsuspend(const sigset_t *sigmask); } - SYS_SIGPENDING = 343 // { int sigpending(sigset_t *set); } - SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set, \ - SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set, \ - SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, \ - SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, \ - SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, \ - SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, \ - SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, \ - SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, \ - SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, \ - SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, \ - SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, \ - SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file( \ - SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file( \ - SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, \ - SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, \ - SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, \ - SYS_KQUEUE = 362 // { int kqueue(void); } - SYS_KEVENT = 363 // { int kevent(int fd, \ - SYS_EXTATTR_SET_FD = 371 // { ssize_t extattr_set_fd(int fd, \ - SYS_EXTATTR_GET_FD = 372 // { ssize_t extattr_get_fd(int fd, \ - SYS_EXTATTR_DELETE_FD = 373 // { int extattr_delete_fd(int fd, \ - SYS___SETUGID = 374 // { int __setugid(int flag); } - SYS_EACCESS = 376 // { int eaccess(char *path, int amode); } - SYS_NMOUNT = 378 // { int nmount(struct iovec *iovp, \ - SYS___MAC_GET_PROC = 384 // { int __mac_get_proc(struct mac *mac_p); } - SYS___MAC_SET_PROC = 385 // { int __mac_set_proc(struct mac *mac_p); } - SYS___MAC_GET_FD = 386 // { int __mac_get_fd(int fd, \ - SYS___MAC_GET_FILE = 387 // { int __mac_get_file(const char *path_p, \ - SYS___MAC_SET_FD = 388 // { int __mac_set_fd(int fd, \ - SYS___MAC_SET_FILE = 389 // { int __mac_set_file(const char *path_p, \ - SYS_KENV = 390 // { int kenv(int what, const char *name, \ - SYS_LCHFLAGS = 391 // { int lchflags(const char *path, \ - SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, \ - SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, \ - SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, \ - SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, \ - SYS_STATFS = 396 // { int statfs(char *path, \ - SYS_FSTATFS = 397 // { int fstatfs(int fd, struct statfs *buf); } - SYS_FHSTATFS = 398 // { int fhstatfs(const struct fhandle *u_fhp, \ - SYS___MAC_GET_PID = 409 // { int __mac_get_pid(pid_t pid, \ - SYS___MAC_GET_LINK = 410 // { int __mac_get_link(const char *path_p, \ - SYS___MAC_SET_LINK = 411 // { int __mac_set_link(const char *path_p, \ - SYS_EXTATTR_SET_LINK = 412 // { ssize_t extattr_set_link( \ - SYS_EXTATTR_GET_LINK = 413 // { ssize_t extattr_get_link( \ - SYS_EXTATTR_DELETE_LINK = 414 // { int extattr_delete_link( \ - SYS___MAC_EXECVE = 415 // { int __mac_execve(char *fname, char **argv, \ - SYS_SIGACTION = 416 // { int sigaction(int sig, \ - SYS_SIGRETURN = 417 // { int sigreturn( \ - SYS_GETCONTEXT = 421 // { int getcontext(struct __ucontext *ucp); } - SYS_SETCONTEXT = 422 // { int setcontext( \ - SYS_SWAPCONTEXT = 423 // { int swapcontext(struct __ucontext *oucp, \ - SYS_SWAPOFF = 424 // { int swapoff(const char *name); } - SYS___ACL_GET_LINK = 425 // { int __acl_get_link(const char *path, \ - SYS___ACL_SET_LINK = 426 // { int __acl_set_link(const char *path, \ - SYS___ACL_DELETE_LINK = 427 // { int __acl_delete_link(const char *path, \ - SYS___ACL_ACLCHECK_LINK = 428 // { int __acl_aclcheck_link(const char *path, \ - SYS_SIGWAIT = 429 // { int sigwait(const sigset_t *set, \ - SYS_THR_CREATE = 430 // { int thr_create(ucontext_t *ctx, long *id, \ - SYS_THR_EXIT = 431 // { void thr_exit(long *state); } - SYS_THR_SELF = 432 // { int thr_self(long *id); } - SYS_THR_KILL = 433 // { int thr_kill(long id, int sig); } - SYS__UMTX_LOCK = 434 // { int _umtx_lock(struct umtx *umtx); } - SYS__UMTX_UNLOCK = 435 // { int _umtx_unlock(struct umtx *umtx); } - SYS_JAIL_ATTACH = 436 // { int jail_attach(int jid); } - SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, \ - SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file( \ - SYS_EXTATTR_LIST_LINK = 439 // { ssize_t extattr_list_link( \ - SYS_THR_SUSPEND = 442 // { int thr_suspend( \ - SYS_THR_WAKE = 443 // { int thr_wake(long id); } - SYS_KLDUNLOADF = 444 // { int kldunloadf(int fileid, int flags); } - SYS_AUDIT = 445 // { int audit(const void *record, \ - SYS_AUDITON = 446 // { int auditon(int cmd, void *data, \ - SYS_GETAUID = 447 // { int getauid(uid_t *auid); } - SYS_SETAUID = 448 // { int setauid(uid_t *auid); } - SYS_GETAUDIT = 449 // { int getaudit(struct auditinfo *auditinfo); } - SYS_SETAUDIT = 450 // { int setaudit(struct auditinfo *auditinfo); } - SYS_GETAUDIT_ADDR = 451 // { int getaudit_addr( \ - SYS_SETAUDIT_ADDR = 452 // { int setaudit_addr( \ - SYS_AUDITCTL = 453 // { int auditctl(char *path); } - SYS__UMTX_OP = 454 // { int _umtx_op(void *obj, int op, \ - SYS_THR_NEW = 455 // { int thr_new(struct thr_param *param, \ - SYS_SIGQUEUE = 456 // { int sigqueue(pid_t pid, int signum, void *value); } - SYS_ABORT2 = 463 // { int abort2(const char *why, int nargs, void **args); } - SYS_THR_SET_NAME = 464 // { int thr_set_name(long id, const char *name); } - SYS_RTPRIO_THREAD = 466 // { int rtprio_thread(int function, \ - SYS_PREAD = 475 // { ssize_t pread(int fd, void *buf, \ - SYS_PWRITE = 476 // { ssize_t pwrite(int fd, const void *buf, \ - SYS_MMAP = 477 // { caddr_t mmap(caddr_t addr, size_t len, \ - SYS_LSEEK = 478 // { off_t lseek(int fd, off_t offset, \ - SYS_TRUNCATE = 479 // { int truncate(char *path, off_t length); } - SYS_FTRUNCATE = 480 // { int ftruncate(int fd, off_t length); } - SYS_THR_KILL2 = 481 // { int thr_kill2(pid_t pid, long id, int sig); } - SYS_SHM_OPEN = 482 // { int shm_open(const char *path, int flags, \ - SYS_SHM_UNLINK = 483 // { int shm_unlink(const char *path); } - SYS_CPUSET = 484 // { int cpuset(cpusetid_t *setid); } - SYS_CPUSET_SETID = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, \ - SYS_CPUSET_GETID = 486 // { int cpuset_getid(cpulevel_t level, \ - SYS_CPUSET_GETAFFINITY = 487 // { int cpuset_getaffinity(cpulevel_t level, \ - SYS_CPUSET_SETAFFINITY = 488 // { int cpuset_setaffinity(cpulevel_t level, \ - SYS_FACCESSAT = 489 // { int faccessat(int fd, char *path, int amode, \ - SYS_FCHMODAT = 490 // { int fchmodat(int fd, char *path, mode_t mode, \ - SYS_FCHOWNAT = 491 // { int fchownat(int fd, char *path, uid_t uid, \ - SYS_FEXECVE = 492 // { int fexecve(int fd, char **argv, \ - SYS_FSTATAT = 493 // { int fstatat(int fd, char *path, \ - SYS_FUTIMESAT = 494 // { int futimesat(int fd, char *path, \ - SYS_LINKAT = 495 // { int linkat(int fd1, char *path1, int fd2, \ - SYS_MKDIRAT = 496 // { int mkdirat(int fd, char *path, mode_t mode); } - SYS_MKFIFOAT = 497 // { int mkfifoat(int fd, char *path, mode_t mode); } - SYS_MKNODAT = 498 // { int mknodat(int fd, char *path, mode_t mode, \ - SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, \ - SYS_READLINKAT = 500 // { int readlinkat(int fd, char *path, char *buf, \ - SYS_RENAMEAT = 501 // { int renameat(int oldfd, char *old, int newfd, \ - SYS_SYMLINKAT = 502 // { int symlinkat(char *path1, int fd, \ - SYS_UNLINKAT = 503 // { int unlinkat(int fd, char *path, int flag); } - SYS_POSIX_OPENPT = 504 // { int posix_openpt(int flags); } - SYS_JAIL_GET = 506 // { int jail_get(struct iovec *iovp, \ - SYS_JAIL_SET = 507 // { int jail_set(struct iovec *iovp, \ - SYS_JAIL_REMOVE = 508 // { int jail_remove(int jid); } - SYS_CLOSEFROM = 509 // { int closefrom(int lowfd); } - SYS_LPATHCONF = 513 // { int lpathconf(char *path, int name); } - SYS___CAP_RIGHTS_GET = 515 // { int __cap_rights_get(int version, \ - SYS_CAP_ENTER = 516 // { int cap_enter(void); } - SYS_CAP_GETMODE = 517 // { int cap_getmode(u_int *modep); } - SYS_PDFORK = 518 // { int pdfork(int *fdp, int flags); } - SYS_PDKILL = 519 // { int pdkill(int fd, int signum); } - SYS_PDGETPID = 520 // { int pdgetpid(int fd, pid_t *pidp); } - SYS_PSELECT = 522 // { int pselect(int nd, fd_set *in, \ - SYS_GETLOGINCLASS = 523 // { int getloginclass(char *namebuf, \ - SYS_SETLOGINCLASS = 524 // { int setloginclass(const char *namebuf); } - SYS_RCTL_GET_RACCT = 525 // { int rctl_get_racct(const void *inbufp, \ - SYS_RCTL_GET_RULES = 526 // { int rctl_get_rules(const void *inbufp, \ - SYS_RCTL_GET_LIMITS = 527 // { int rctl_get_limits(const void *inbufp, \ - SYS_RCTL_ADD_RULE = 528 // { int rctl_add_rule(const void *inbufp, \ - SYS_RCTL_REMOVE_RULE = 529 // { int rctl_remove_rule(const void *inbufp, \ - SYS_POSIX_FALLOCATE = 530 // { int posix_fallocate(int fd, \ - SYS_POSIX_FADVISE = 531 // { int posix_fadvise(int fd, off_t offset, \ - SYS_WAIT6 = 532 // { int wait6(idtype_t idtype, id_t id, \ - SYS_CAP_RIGHTS_LIMIT = 533 // { int cap_rights_limit(int fd, \ - SYS_CAP_IOCTLS_LIMIT = 534 // { int cap_ioctls_limit(int fd, \ - SYS_CAP_IOCTLS_GET = 535 // { ssize_t cap_ioctls_get(int fd, \ - SYS_CAP_FCNTLS_LIMIT = 536 // { int cap_fcntls_limit(int fd, \ - SYS_CAP_FCNTLS_GET = 537 // { int cap_fcntls_get(int fd, \ - SYS_BINDAT = 538 // { int bindat(int fd, int s, caddr_t name, \ - SYS_CONNECTAT = 539 // { int connectat(int fd, int s, caddr_t name, \ - SYS_CHFLAGSAT = 540 // { int chflagsat(int fd, const char *path, \ - SYS_ACCEPT4 = 541 // { int accept4(int s, \ - SYS_PIPE2 = 542 // { int pipe2(int *fildes, int flags); } - SYS_PROCCTL = 544 // { int procctl(idtype_t idtype, id_t id, \ - SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, \ - SYS_FUTIMENS = 546 // { int futimens(int fd, \ - SYS_UTIMENSAT = 547 // { int utimensat(int fd, \ -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go deleted file mode 100644 index cef4fed..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go +++ /dev/null @@ -1,388 +0,0 @@ -// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include -m32 /tmp/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build 386,linux - -package unix - -const ( - SYS_RESTART_SYSCALL = 0 - SYS_EXIT = 1 - SYS_FORK = 2 - SYS_READ = 3 - SYS_WRITE = 4 - SYS_OPEN = 5 - SYS_CLOSE = 6 - SYS_WAITPID = 7 - SYS_CREAT = 8 - SYS_LINK = 9 - SYS_UNLINK = 10 - SYS_EXECVE = 11 - SYS_CHDIR = 12 - SYS_TIME = 13 - SYS_MKNOD = 14 - SYS_CHMOD = 15 - SYS_LCHOWN = 16 - SYS_BREAK = 17 - SYS_OLDSTAT = 18 - SYS_LSEEK = 19 - SYS_GETPID = 20 - SYS_MOUNT = 21 - SYS_UMOUNT = 22 - SYS_SETUID = 23 - SYS_GETUID = 24 - SYS_STIME = 25 - SYS_PTRACE = 26 - SYS_ALARM = 27 - SYS_OLDFSTAT = 28 - SYS_PAUSE = 29 - SYS_UTIME = 30 - SYS_STTY = 31 - SYS_GTTY = 32 - SYS_ACCESS = 33 - SYS_NICE = 34 - SYS_FTIME = 35 - SYS_SYNC = 36 - SYS_KILL = 37 - SYS_RENAME = 38 - SYS_MKDIR = 39 - SYS_RMDIR = 40 - SYS_DUP = 41 - SYS_PIPE = 42 - SYS_TIMES = 43 - SYS_PROF = 44 - SYS_BRK = 45 - SYS_SETGID = 46 - SYS_GETGID = 47 - SYS_SIGNAL = 48 - SYS_GETEUID = 49 - SYS_GETEGID = 50 - SYS_ACCT = 51 - SYS_UMOUNT2 = 52 - SYS_LOCK = 53 - SYS_IOCTL = 54 - SYS_FCNTL = 55 - SYS_MPX = 56 - SYS_SETPGID = 57 - SYS_ULIMIT = 58 - SYS_OLDOLDUNAME = 59 - SYS_UMASK = 60 - SYS_CHROOT = 61 - SYS_USTAT = 62 - SYS_DUP2 = 63 - SYS_GETPPID = 64 - SYS_GETPGRP = 65 - SYS_SETSID = 66 - SYS_SIGACTION = 67 - SYS_SGETMASK = 68 - SYS_SSETMASK = 69 - SYS_SETREUID = 70 - SYS_SETREGID = 71 - SYS_SIGSUSPEND = 72 - SYS_SIGPENDING = 73 - SYS_SETHOSTNAME = 74 - SYS_SETRLIMIT = 75 - SYS_GETRLIMIT = 76 - SYS_GETRUSAGE = 77 - SYS_GETTIMEOFDAY = 78 - SYS_SETTIMEOFDAY = 79 - SYS_GETGROUPS = 80 - SYS_SETGROUPS = 81 - SYS_SELECT = 82 - SYS_SYMLINK = 83 - SYS_OLDLSTAT = 84 - SYS_READLINK = 85 - SYS_USELIB = 86 - SYS_SWAPON = 87 - SYS_REBOOT = 88 - SYS_READDIR = 89 - SYS_MMAP = 90 - SYS_MUNMAP = 91 - SYS_TRUNCATE = 92 - SYS_FTRUNCATE = 93 - SYS_FCHMOD = 94 - SYS_FCHOWN = 95 - SYS_GETPRIORITY = 96 - SYS_SETPRIORITY = 97 - SYS_PROFIL = 98 - SYS_STATFS = 99 - SYS_FSTATFS = 100 - SYS_IOPERM = 101 - SYS_SOCKETCALL = 102 - SYS_SYSLOG = 103 - SYS_SETITIMER = 104 - SYS_GETITIMER = 105 - SYS_STAT = 106 - SYS_LSTAT = 107 - SYS_FSTAT = 108 - SYS_OLDUNAME = 109 - SYS_IOPL = 110 - SYS_VHANGUP = 111 - SYS_IDLE = 112 - SYS_VM86OLD = 113 - SYS_WAIT4 = 114 - SYS_SWAPOFF = 115 - SYS_SYSINFO = 116 - SYS_IPC = 117 - SYS_FSYNC = 118 - SYS_SIGRETURN = 119 - SYS_CLONE = 120 - SYS_SETDOMAINNAME = 121 - SYS_UNAME = 122 - SYS_MODIFY_LDT = 123 - SYS_ADJTIMEX = 124 - SYS_MPROTECT = 125 - SYS_SIGPROCMASK = 126 - SYS_CREATE_MODULE = 127 - SYS_INIT_MODULE = 128 - SYS_DELETE_MODULE = 129 - SYS_GET_KERNEL_SYMS = 130 - SYS_QUOTACTL = 131 - SYS_GETPGID = 132 - SYS_FCHDIR = 133 - SYS_BDFLUSH = 134 - SYS_SYSFS = 135 - SYS_PERSONALITY = 136 - SYS_AFS_SYSCALL = 137 - SYS_SETFSUID = 138 - SYS_SETFSGID = 139 - SYS__LLSEEK = 140 - SYS_GETDENTS = 141 - SYS__NEWSELECT = 142 - SYS_FLOCK = 143 - SYS_MSYNC = 144 - SYS_READV = 145 - SYS_WRITEV = 146 - SYS_GETSID = 147 - SYS_FDATASYNC = 148 - SYS__SYSCTL = 149 - SYS_MLOCK = 150 - SYS_MUNLOCK = 151 - SYS_MLOCKALL = 152 - SYS_MUNLOCKALL = 153 - SYS_SCHED_SETPARAM = 154 - SYS_SCHED_GETPARAM = 155 - SYS_SCHED_SETSCHEDULER = 156 - SYS_SCHED_GETSCHEDULER = 157 - SYS_SCHED_YIELD = 158 - SYS_SCHED_GET_PRIORITY_MAX = 159 - SYS_SCHED_GET_PRIORITY_MIN = 160 - SYS_SCHED_RR_GET_INTERVAL = 161 - SYS_NANOSLEEP = 162 - SYS_MREMAP = 163 - SYS_SETRESUID = 164 - SYS_GETRESUID = 165 - SYS_VM86 = 166 - SYS_QUERY_MODULE = 167 - SYS_POLL = 168 - SYS_NFSSERVCTL = 169 - SYS_SETRESGID = 170 - SYS_GETRESGID = 171 - SYS_PRCTL = 172 - SYS_RT_SIGRETURN = 173 - SYS_RT_SIGACTION = 174 - SYS_RT_SIGPROCMASK = 175 - SYS_RT_SIGPENDING = 176 - SYS_RT_SIGTIMEDWAIT = 177 - SYS_RT_SIGQUEUEINFO = 178 - SYS_RT_SIGSUSPEND = 179 - SYS_PREAD64 = 180 - SYS_PWRITE64 = 181 - SYS_CHOWN = 182 - SYS_GETCWD = 183 - SYS_CAPGET = 184 - SYS_CAPSET = 185 - SYS_SIGALTSTACK = 186 - SYS_SENDFILE = 187 - SYS_GETPMSG = 188 - SYS_PUTPMSG = 189 - SYS_VFORK = 190 - SYS_UGETRLIMIT = 191 - SYS_MMAP2 = 192 - SYS_TRUNCATE64 = 193 - SYS_FTRUNCATE64 = 194 - SYS_STAT64 = 195 - SYS_LSTAT64 = 196 - SYS_FSTAT64 = 197 - SYS_LCHOWN32 = 198 - SYS_GETUID32 = 199 - SYS_GETGID32 = 200 - SYS_GETEUID32 = 201 - SYS_GETEGID32 = 202 - SYS_SETREUID32 = 203 - SYS_SETREGID32 = 204 - SYS_GETGROUPS32 = 205 - SYS_SETGROUPS32 = 206 - SYS_FCHOWN32 = 207 - SYS_SETRESUID32 = 208 - SYS_GETRESUID32 = 209 - SYS_SETRESGID32 = 210 - SYS_GETRESGID32 = 211 - SYS_CHOWN32 = 212 - SYS_SETUID32 = 213 - SYS_SETGID32 = 214 - SYS_SETFSUID32 = 215 - SYS_SETFSGID32 = 216 - SYS_PIVOT_ROOT = 217 - SYS_MINCORE = 218 - SYS_MADVISE = 219 - SYS_GETDENTS64 = 220 - SYS_FCNTL64 = 221 - SYS_GETTID = 224 - SYS_READAHEAD = 225 - SYS_SETXATTR = 226 - SYS_LSETXATTR = 227 - SYS_FSETXATTR = 228 - SYS_GETXATTR = 229 - SYS_LGETXATTR = 230 - SYS_FGETXATTR = 231 - SYS_LISTXATTR = 232 - SYS_LLISTXATTR = 233 - SYS_FLISTXATTR = 234 - SYS_REMOVEXATTR = 235 - SYS_LREMOVEXATTR = 236 - SYS_FREMOVEXATTR = 237 - SYS_TKILL = 238 - SYS_SENDFILE64 = 239 - SYS_FUTEX = 240 - SYS_SCHED_SETAFFINITY = 241 - SYS_SCHED_GETAFFINITY = 242 - SYS_SET_THREAD_AREA = 243 - SYS_GET_THREAD_AREA = 244 - SYS_IO_SETUP = 245 - SYS_IO_DESTROY = 246 - SYS_IO_GETEVENTS = 247 - SYS_IO_SUBMIT = 248 - SYS_IO_CANCEL = 249 - SYS_FADVISE64 = 250 - SYS_EXIT_GROUP = 252 - SYS_LOOKUP_DCOOKIE = 253 - SYS_EPOLL_CREATE = 254 - SYS_EPOLL_CTL = 255 - SYS_EPOLL_WAIT = 256 - SYS_REMAP_FILE_PAGES = 257 - SYS_SET_TID_ADDRESS = 258 - SYS_TIMER_CREATE = 259 - SYS_TIMER_SETTIME = 260 - SYS_TIMER_GETTIME = 261 - SYS_TIMER_GETOVERRUN = 262 - SYS_TIMER_DELETE = 263 - SYS_CLOCK_SETTIME = 264 - SYS_CLOCK_GETTIME = 265 - SYS_CLOCK_GETRES = 266 - SYS_CLOCK_NANOSLEEP = 267 - SYS_STATFS64 = 268 - SYS_FSTATFS64 = 269 - SYS_TGKILL = 270 - SYS_UTIMES = 271 - SYS_FADVISE64_64 = 272 - SYS_VSERVER = 273 - SYS_MBIND = 274 - SYS_GET_MEMPOLICY = 275 - SYS_SET_MEMPOLICY = 276 - SYS_MQ_OPEN = 277 - SYS_MQ_UNLINK = 278 - SYS_MQ_TIMEDSEND = 279 - SYS_MQ_TIMEDRECEIVE = 280 - SYS_MQ_NOTIFY = 281 - SYS_MQ_GETSETATTR = 282 - SYS_KEXEC_LOAD = 283 - SYS_WAITID = 284 - SYS_ADD_KEY = 286 - SYS_REQUEST_KEY = 287 - SYS_KEYCTL = 288 - SYS_IOPRIO_SET = 289 - SYS_IOPRIO_GET = 290 - SYS_INOTIFY_INIT = 291 - SYS_INOTIFY_ADD_WATCH = 292 - SYS_INOTIFY_RM_WATCH = 293 - SYS_MIGRATE_PAGES = 294 - SYS_OPENAT = 295 - SYS_MKDIRAT = 296 - SYS_MKNODAT = 297 - SYS_FCHOWNAT = 298 - SYS_FUTIMESAT = 299 - SYS_FSTATAT64 = 300 - SYS_UNLINKAT = 301 - SYS_RENAMEAT = 302 - SYS_LINKAT = 303 - SYS_SYMLINKAT = 304 - SYS_READLINKAT = 305 - SYS_FCHMODAT = 306 - SYS_FACCESSAT = 307 - SYS_PSELECT6 = 308 - SYS_PPOLL = 309 - SYS_UNSHARE = 310 - SYS_SET_ROBUST_LIST = 311 - SYS_GET_ROBUST_LIST = 312 - SYS_SPLICE = 313 - SYS_SYNC_FILE_RANGE = 314 - SYS_TEE = 315 - SYS_VMSPLICE = 316 - SYS_MOVE_PAGES = 317 - SYS_GETCPU = 318 - SYS_EPOLL_PWAIT = 319 - SYS_UTIMENSAT = 320 - SYS_SIGNALFD = 321 - SYS_TIMERFD_CREATE = 322 - SYS_EVENTFD = 323 - SYS_FALLOCATE = 324 - SYS_TIMERFD_SETTIME = 325 - SYS_TIMERFD_GETTIME = 326 - SYS_SIGNALFD4 = 327 - SYS_EVENTFD2 = 328 - SYS_EPOLL_CREATE1 = 329 - SYS_DUP3 = 330 - SYS_PIPE2 = 331 - SYS_INOTIFY_INIT1 = 332 - SYS_PREADV = 333 - SYS_PWRITEV = 334 - SYS_RT_TGSIGQUEUEINFO = 335 - SYS_PERF_EVENT_OPEN = 336 - SYS_RECVMMSG = 337 - SYS_FANOTIFY_INIT = 338 - SYS_FANOTIFY_MARK = 339 - SYS_PRLIMIT64 = 340 - SYS_NAME_TO_HANDLE_AT = 341 - SYS_OPEN_BY_HANDLE_AT = 342 - SYS_CLOCK_ADJTIME = 343 - SYS_SYNCFS = 344 - SYS_SENDMMSG = 345 - SYS_SETNS = 346 - SYS_PROCESS_VM_READV = 347 - SYS_PROCESS_VM_WRITEV = 348 - SYS_KCMP = 349 - SYS_FINIT_MODULE = 350 - SYS_SCHED_SETATTR = 351 - SYS_SCHED_GETATTR = 352 - SYS_RENAMEAT2 = 353 - SYS_SECCOMP = 354 - SYS_GETRANDOM = 355 - SYS_MEMFD_CREATE = 356 - SYS_BPF = 357 - SYS_EXECVEAT = 358 - SYS_SOCKET = 359 - SYS_SOCKETPAIR = 360 - SYS_BIND = 361 - SYS_CONNECT = 362 - SYS_LISTEN = 363 - SYS_ACCEPT4 = 364 - SYS_GETSOCKOPT = 365 - SYS_SETSOCKOPT = 366 - SYS_GETSOCKNAME = 367 - SYS_GETPEERNAME = 368 - SYS_SENDTO = 369 - SYS_SENDMSG = 370 - SYS_RECVFROM = 371 - SYS_RECVMSG = 372 - SYS_SHUTDOWN = 373 - SYS_USERFAULTFD = 374 - SYS_MEMBARRIER = 375 - SYS_MLOCK2 = 376 - SYS_COPY_FILE_RANGE = 377 - SYS_PREADV2 = 378 - SYS_PWRITEV2 = 379 - SYS_PKEY_MPROTECT = 380 - SYS_PKEY_ALLOC = 381 - SYS_PKEY_FREE = 382 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go deleted file mode 100644 index 49bfa12..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go +++ /dev/null @@ -1,341 +0,0 @@ -// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include -m64 /tmp/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build amd64,linux - -package unix - -const ( - SYS_READ = 0 - SYS_WRITE = 1 - SYS_OPEN = 2 - SYS_CLOSE = 3 - SYS_STAT = 4 - SYS_FSTAT = 5 - SYS_LSTAT = 6 - SYS_POLL = 7 - SYS_LSEEK = 8 - SYS_MMAP = 9 - SYS_MPROTECT = 10 - SYS_MUNMAP = 11 - SYS_BRK = 12 - SYS_RT_SIGACTION = 13 - SYS_RT_SIGPROCMASK = 14 - SYS_RT_SIGRETURN = 15 - SYS_IOCTL = 16 - SYS_PREAD64 = 17 - SYS_PWRITE64 = 18 - SYS_READV = 19 - SYS_WRITEV = 20 - SYS_ACCESS = 21 - SYS_PIPE = 22 - SYS_SELECT = 23 - SYS_SCHED_YIELD = 24 - SYS_MREMAP = 25 - SYS_MSYNC = 26 - SYS_MINCORE = 27 - SYS_MADVISE = 28 - SYS_SHMGET = 29 - SYS_SHMAT = 30 - SYS_SHMCTL = 31 - SYS_DUP = 32 - SYS_DUP2 = 33 - SYS_PAUSE = 34 - SYS_NANOSLEEP = 35 - SYS_GETITIMER = 36 - SYS_ALARM = 37 - SYS_SETITIMER = 38 - SYS_GETPID = 39 - SYS_SENDFILE = 40 - SYS_SOCKET = 41 - SYS_CONNECT = 42 - SYS_ACCEPT = 43 - SYS_SENDTO = 44 - SYS_RECVFROM = 45 - SYS_SENDMSG = 46 - SYS_RECVMSG = 47 - SYS_SHUTDOWN = 48 - SYS_BIND = 49 - SYS_LISTEN = 50 - SYS_GETSOCKNAME = 51 - SYS_GETPEERNAME = 52 - SYS_SOCKETPAIR = 53 - SYS_SETSOCKOPT = 54 - SYS_GETSOCKOPT = 55 - SYS_CLONE = 56 - SYS_FORK = 57 - SYS_VFORK = 58 - SYS_EXECVE = 59 - SYS_EXIT = 60 - SYS_WAIT4 = 61 - SYS_KILL = 62 - SYS_UNAME = 63 - SYS_SEMGET = 64 - SYS_SEMOP = 65 - SYS_SEMCTL = 66 - SYS_SHMDT = 67 - SYS_MSGGET = 68 - SYS_MSGSND = 69 - SYS_MSGRCV = 70 - SYS_MSGCTL = 71 - SYS_FCNTL = 72 - SYS_FLOCK = 73 - SYS_FSYNC = 74 - SYS_FDATASYNC = 75 - SYS_TRUNCATE = 76 - SYS_FTRUNCATE = 77 - SYS_GETDENTS = 78 - SYS_GETCWD = 79 - SYS_CHDIR = 80 - SYS_FCHDIR = 81 - SYS_RENAME = 82 - SYS_MKDIR = 83 - SYS_RMDIR = 84 - SYS_CREAT = 85 - SYS_LINK = 86 - SYS_UNLINK = 87 - SYS_SYMLINK = 88 - SYS_READLINK = 89 - SYS_CHMOD = 90 - SYS_FCHMOD = 91 - SYS_CHOWN = 92 - SYS_FCHOWN = 93 - SYS_LCHOWN = 94 - SYS_UMASK = 95 - SYS_GETTIMEOFDAY = 96 - SYS_GETRLIMIT = 97 - SYS_GETRUSAGE = 98 - SYS_SYSINFO = 99 - SYS_TIMES = 100 - SYS_PTRACE = 101 - SYS_GETUID = 102 - SYS_SYSLOG = 103 - SYS_GETGID = 104 - SYS_SETUID = 105 - SYS_SETGID = 106 - SYS_GETEUID = 107 - SYS_GETEGID = 108 - SYS_SETPGID = 109 - SYS_GETPPID = 110 - SYS_GETPGRP = 111 - SYS_SETSID = 112 - SYS_SETREUID = 113 - SYS_SETREGID = 114 - SYS_GETGROUPS = 115 - SYS_SETGROUPS = 116 - SYS_SETRESUID = 117 - SYS_GETRESUID = 118 - SYS_SETRESGID = 119 - SYS_GETRESGID = 120 - SYS_GETPGID = 121 - SYS_SETFSUID = 122 - SYS_SETFSGID = 123 - SYS_GETSID = 124 - SYS_CAPGET = 125 - SYS_CAPSET = 126 - SYS_RT_SIGPENDING = 127 - SYS_RT_SIGTIMEDWAIT = 128 - SYS_RT_SIGQUEUEINFO = 129 - SYS_RT_SIGSUSPEND = 130 - SYS_SIGALTSTACK = 131 - SYS_UTIME = 132 - SYS_MKNOD = 133 - SYS_USELIB = 134 - SYS_PERSONALITY = 135 - SYS_USTAT = 136 - SYS_STATFS = 137 - SYS_FSTATFS = 138 - SYS_SYSFS = 139 - SYS_GETPRIORITY = 140 - SYS_SETPRIORITY = 141 - SYS_SCHED_SETPARAM = 142 - SYS_SCHED_GETPARAM = 143 - SYS_SCHED_SETSCHEDULER = 144 - SYS_SCHED_GETSCHEDULER = 145 - SYS_SCHED_GET_PRIORITY_MAX = 146 - SYS_SCHED_GET_PRIORITY_MIN = 147 - SYS_SCHED_RR_GET_INTERVAL = 148 - SYS_MLOCK = 149 - SYS_MUNLOCK = 150 - SYS_MLOCKALL = 151 - SYS_MUNLOCKALL = 152 - SYS_VHANGUP = 153 - SYS_MODIFY_LDT = 154 - SYS_PIVOT_ROOT = 155 - SYS__SYSCTL = 156 - SYS_PRCTL = 157 - SYS_ARCH_PRCTL = 158 - SYS_ADJTIMEX = 159 - SYS_SETRLIMIT = 160 - SYS_CHROOT = 161 - SYS_SYNC = 162 - SYS_ACCT = 163 - SYS_SETTIMEOFDAY = 164 - SYS_MOUNT = 165 - SYS_UMOUNT2 = 166 - SYS_SWAPON = 167 - SYS_SWAPOFF = 168 - SYS_REBOOT = 169 - SYS_SETHOSTNAME = 170 - SYS_SETDOMAINNAME = 171 - SYS_IOPL = 172 - SYS_IOPERM = 173 - SYS_CREATE_MODULE = 174 - SYS_INIT_MODULE = 175 - SYS_DELETE_MODULE = 176 - SYS_GET_KERNEL_SYMS = 177 - SYS_QUERY_MODULE = 178 - SYS_QUOTACTL = 179 - SYS_NFSSERVCTL = 180 - SYS_GETPMSG = 181 - SYS_PUTPMSG = 182 - SYS_AFS_SYSCALL = 183 - SYS_TUXCALL = 184 - SYS_SECURITY = 185 - SYS_GETTID = 186 - SYS_READAHEAD = 187 - SYS_SETXATTR = 188 - SYS_LSETXATTR = 189 - SYS_FSETXATTR = 190 - SYS_GETXATTR = 191 - SYS_LGETXATTR = 192 - SYS_FGETXATTR = 193 - SYS_LISTXATTR = 194 - SYS_LLISTXATTR = 195 - SYS_FLISTXATTR = 196 - SYS_REMOVEXATTR = 197 - SYS_LREMOVEXATTR = 198 - SYS_FREMOVEXATTR = 199 - SYS_TKILL = 200 - SYS_TIME = 201 - SYS_FUTEX = 202 - SYS_SCHED_SETAFFINITY = 203 - SYS_SCHED_GETAFFINITY = 204 - SYS_SET_THREAD_AREA = 205 - SYS_IO_SETUP = 206 - SYS_IO_DESTROY = 207 - SYS_IO_GETEVENTS = 208 - SYS_IO_SUBMIT = 209 - SYS_IO_CANCEL = 210 - SYS_GET_THREAD_AREA = 211 - SYS_LOOKUP_DCOOKIE = 212 - SYS_EPOLL_CREATE = 213 - SYS_EPOLL_CTL_OLD = 214 - SYS_EPOLL_WAIT_OLD = 215 - SYS_REMAP_FILE_PAGES = 216 - SYS_GETDENTS64 = 217 - SYS_SET_TID_ADDRESS = 218 - SYS_RESTART_SYSCALL = 219 - SYS_SEMTIMEDOP = 220 - SYS_FADVISE64 = 221 - SYS_TIMER_CREATE = 222 - SYS_TIMER_SETTIME = 223 - SYS_TIMER_GETTIME = 224 - SYS_TIMER_GETOVERRUN = 225 - SYS_TIMER_DELETE = 226 - SYS_CLOCK_SETTIME = 227 - SYS_CLOCK_GETTIME = 228 - SYS_CLOCK_GETRES = 229 - SYS_CLOCK_NANOSLEEP = 230 - SYS_EXIT_GROUP = 231 - SYS_EPOLL_WAIT = 232 - SYS_EPOLL_CTL = 233 - SYS_TGKILL = 234 - SYS_UTIMES = 235 - SYS_VSERVER = 236 - SYS_MBIND = 237 - SYS_SET_MEMPOLICY = 238 - SYS_GET_MEMPOLICY = 239 - SYS_MQ_OPEN = 240 - SYS_MQ_UNLINK = 241 - SYS_MQ_TIMEDSEND = 242 - SYS_MQ_TIMEDRECEIVE = 243 - SYS_MQ_NOTIFY = 244 - SYS_MQ_GETSETATTR = 245 - SYS_KEXEC_LOAD = 246 - SYS_WAITID = 247 - SYS_ADD_KEY = 248 - SYS_REQUEST_KEY = 249 - SYS_KEYCTL = 250 - SYS_IOPRIO_SET = 251 - SYS_IOPRIO_GET = 252 - SYS_INOTIFY_INIT = 253 - SYS_INOTIFY_ADD_WATCH = 254 - SYS_INOTIFY_RM_WATCH = 255 - SYS_MIGRATE_PAGES = 256 - SYS_OPENAT = 257 - SYS_MKDIRAT = 258 - SYS_MKNODAT = 259 - SYS_FCHOWNAT = 260 - SYS_FUTIMESAT = 261 - SYS_NEWFSTATAT = 262 - SYS_UNLINKAT = 263 - SYS_RENAMEAT = 264 - SYS_LINKAT = 265 - SYS_SYMLINKAT = 266 - SYS_READLINKAT = 267 - SYS_FCHMODAT = 268 - SYS_FACCESSAT = 269 - SYS_PSELECT6 = 270 - SYS_PPOLL = 271 - SYS_UNSHARE = 272 - SYS_SET_ROBUST_LIST = 273 - SYS_GET_ROBUST_LIST = 274 - SYS_SPLICE = 275 - SYS_TEE = 276 - SYS_SYNC_FILE_RANGE = 277 - SYS_VMSPLICE = 278 - SYS_MOVE_PAGES = 279 - SYS_UTIMENSAT = 280 - SYS_EPOLL_PWAIT = 281 - SYS_SIGNALFD = 282 - SYS_TIMERFD_CREATE = 283 - SYS_EVENTFD = 284 - SYS_FALLOCATE = 285 - SYS_TIMERFD_SETTIME = 286 - SYS_TIMERFD_GETTIME = 287 - SYS_ACCEPT4 = 288 - SYS_SIGNALFD4 = 289 - SYS_EVENTFD2 = 290 - SYS_EPOLL_CREATE1 = 291 - SYS_DUP3 = 292 - SYS_PIPE2 = 293 - SYS_INOTIFY_INIT1 = 294 - SYS_PREADV = 295 - SYS_PWRITEV = 296 - SYS_RT_TGSIGQUEUEINFO = 297 - SYS_PERF_EVENT_OPEN = 298 - SYS_RECVMMSG = 299 - SYS_FANOTIFY_INIT = 300 - SYS_FANOTIFY_MARK = 301 - SYS_PRLIMIT64 = 302 - SYS_NAME_TO_HANDLE_AT = 303 - SYS_OPEN_BY_HANDLE_AT = 304 - SYS_CLOCK_ADJTIME = 305 - SYS_SYNCFS = 306 - SYS_SENDMMSG = 307 - SYS_SETNS = 308 - SYS_GETCPU = 309 - SYS_PROCESS_VM_READV = 310 - SYS_PROCESS_VM_WRITEV = 311 - SYS_KCMP = 312 - SYS_FINIT_MODULE = 313 - SYS_SCHED_SETATTR = 314 - SYS_SCHED_GETATTR = 315 - SYS_RENAMEAT2 = 316 - SYS_SECCOMP = 317 - SYS_GETRANDOM = 318 - SYS_MEMFD_CREATE = 319 - SYS_KEXEC_FILE_LOAD = 320 - SYS_BPF = 321 - SYS_EXECVEAT = 322 - SYS_USERFAULTFD = 323 - SYS_MEMBARRIER = 324 - SYS_MLOCK2 = 325 - SYS_COPY_FILE_RANGE = 326 - SYS_PREADV2 = 327 - SYS_PWRITEV2 = 328 - SYS_PKEY_MPROTECT = 329 - SYS_PKEY_ALLOC = 330 - SYS_PKEY_FREE = 331 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go deleted file mode 100644 index 97b182e..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go +++ /dev/null @@ -1,361 +0,0 @@ -// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build arm,linux - -package unix - -const ( - SYS_RESTART_SYSCALL = 0 - SYS_EXIT = 1 - SYS_FORK = 2 - SYS_READ = 3 - SYS_WRITE = 4 - SYS_OPEN = 5 - SYS_CLOSE = 6 - SYS_CREAT = 8 - SYS_LINK = 9 - SYS_UNLINK = 10 - SYS_EXECVE = 11 - SYS_CHDIR = 12 - SYS_MKNOD = 14 - SYS_CHMOD = 15 - SYS_LCHOWN = 16 - SYS_LSEEK = 19 - SYS_GETPID = 20 - SYS_MOUNT = 21 - SYS_SETUID = 23 - SYS_GETUID = 24 - SYS_PTRACE = 26 - SYS_PAUSE = 29 - SYS_ACCESS = 33 - SYS_NICE = 34 - SYS_SYNC = 36 - SYS_KILL = 37 - SYS_RENAME = 38 - SYS_MKDIR = 39 - SYS_RMDIR = 40 - SYS_DUP = 41 - SYS_PIPE = 42 - SYS_TIMES = 43 - SYS_BRK = 45 - SYS_SETGID = 46 - SYS_GETGID = 47 - SYS_GETEUID = 49 - SYS_GETEGID = 50 - SYS_ACCT = 51 - SYS_UMOUNT2 = 52 - SYS_IOCTL = 54 - SYS_FCNTL = 55 - SYS_SETPGID = 57 - SYS_UMASK = 60 - SYS_CHROOT = 61 - SYS_USTAT = 62 - SYS_DUP2 = 63 - SYS_GETPPID = 64 - SYS_GETPGRP = 65 - SYS_SETSID = 66 - SYS_SIGACTION = 67 - SYS_SETREUID = 70 - SYS_SETREGID = 71 - SYS_SIGSUSPEND = 72 - SYS_SIGPENDING = 73 - SYS_SETHOSTNAME = 74 - SYS_SETRLIMIT = 75 - SYS_GETRUSAGE = 77 - SYS_GETTIMEOFDAY = 78 - SYS_SETTIMEOFDAY = 79 - SYS_GETGROUPS = 80 - SYS_SETGROUPS = 81 - SYS_SYMLINK = 83 - SYS_READLINK = 85 - SYS_USELIB = 86 - SYS_SWAPON = 87 - SYS_REBOOT = 88 - SYS_MUNMAP = 91 - SYS_TRUNCATE = 92 - SYS_FTRUNCATE = 93 - SYS_FCHMOD = 94 - SYS_FCHOWN = 95 - SYS_GETPRIORITY = 96 - SYS_SETPRIORITY = 97 - SYS_STATFS = 99 - SYS_FSTATFS = 100 - SYS_SYSLOG = 103 - SYS_SETITIMER = 104 - SYS_GETITIMER = 105 - SYS_STAT = 106 - SYS_LSTAT = 107 - SYS_FSTAT = 108 - SYS_VHANGUP = 111 - SYS_WAIT4 = 114 - SYS_SWAPOFF = 115 - SYS_SYSINFO = 116 - SYS_FSYNC = 118 - SYS_SIGRETURN = 119 - SYS_CLONE = 120 - SYS_SETDOMAINNAME = 121 - SYS_UNAME = 122 - SYS_ADJTIMEX = 124 - SYS_MPROTECT = 125 - SYS_SIGPROCMASK = 126 - SYS_INIT_MODULE = 128 - SYS_DELETE_MODULE = 129 - SYS_QUOTACTL = 131 - SYS_GETPGID = 132 - SYS_FCHDIR = 133 - SYS_BDFLUSH = 134 - SYS_SYSFS = 135 - SYS_PERSONALITY = 136 - SYS_SETFSUID = 138 - SYS_SETFSGID = 139 - SYS__LLSEEK = 140 - SYS_GETDENTS = 141 - SYS__NEWSELECT = 142 - SYS_FLOCK = 143 - SYS_MSYNC = 144 - SYS_READV = 145 - SYS_WRITEV = 146 - SYS_GETSID = 147 - SYS_FDATASYNC = 148 - SYS__SYSCTL = 149 - SYS_MLOCK = 150 - SYS_MUNLOCK = 151 - SYS_MLOCKALL = 152 - SYS_MUNLOCKALL = 153 - SYS_SCHED_SETPARAM = 154 - SYS_SCHED_GETPARAM = 155 - SYS_SCHED_SETSCHEDULER = 156 - SYS_SCHED_GETSCHEDULER = 157 - SYS_SCHED_YIELD = 158 - SYS_SCHED_GET_PRIORITY_MAX = 159 - SYS_SCHED_GET_PRIORITY_MIN = 160 - SYS_SCHED_RR_GET_INTERVAL = 161 - SYS_NANOSLEEP = 162 - SYS_MREMAP = 163 - SYS_SETRESUID = 164 - SYS_GETRESUID = 165 - SYS_POLL = 168 - SYS_NFSSERVCTL = 169 - SYS_SETRESGID = 170 - SYS_GETRESGID = 171 - SYS_PRCTL = 172 - SYS_RT_SIGRETURN = 173 - SYS_RT_SIGACTION = 174 - SYS_RT_SIGPROCMASK = 175 - SYS_RT_SIGPENDING = 176 - SYS_RT_SIGTIMEDWAIT = 177 - SYS_RT_SIGQUEUEINFO = 178 - SYS_RT_SIGSUSPEND = 179 - SYS_PREAD64 = 180 - SYS_PWRITE64 = 181 - SYS_CHOWN = 182 - SYS_GETCWD = 183 - SYS_CAPGET = 184 - SYS_CAPSET = 185 - SYS_SIGALTSTACK = 186 - SYS_SENDFILE = 187 - SYS_VFORK = 190 - SYS_UGETRLIMIT = 191 - SYS_MMAP2 = 192 - SYS_TRUNCATE64 = 193 - SYS_FTRUNCATE64 = 194 - SYS_STAT64 = 195 - SYS_LSTAT64 = 196 - SYS_FSTAT64 = 197 - SYS_LCHOWN32 = 198 - SYS_GETUID32 = 199 - SYS_GETGID32 = 200 - SYS_GETEUID32 = 201 - SYS_GETEGID32 = 202 - SYS_SETREUID32 = 203 - SYS_SETREGID32 = 204 - SYS_GETGROUPS32 = 205 - SYS_SETGROUPS32 = 206 - SYS_FCHOWN32 = 207 - SYS_SETRESUID32 = 208 - SYS_GETRESUID32 = 209 - SYS_SETRESGID32 = 210 - SYS_GETRESGID32 = 211 - SYS_CHOWN32 = 212 - SYS_SETUID32 = 213 - SYS_SETGID32 = 214 - SYS_SETFSUID32 = 215 - SYS_SETFSGID32 = 216 - SYS_GETDENTS64 = 217 - SYS_PIVOT_ROOT = 218 - SYS_MINCORE = 219 - SYS_MADVISE = 220 - SYS_FCNTL64 = 221 - SYS_GETTID = 224 - SYS_READAHEAD = 225 - SYS_SETXATTR = 226 - SYS_LSETXATTR = 227 - SYS_FSETXATTR = 228 - SYS_GETXATTR = 229 - SYS_LGETXATTR = 230 - SYS_FGETXATTR = 231 - SYS_LISTXATTR = 232 - SYS_LLISTXATTR = 233 - SYS_FLISTXATTR = 234 - SYS_REMOVEXATTR = 235 - SYS_LREMOVEXATTR = 236 - SYS_FREMOVEXATTR = 237 - SYS_TKILL = 238 - SYS_SENDFILE64 = 239 - SYS_FUTEX = 240 - SYS_SCHED_SETAFFINITY = 241 - SYS_SCHED_GETAFFINITY = 242 - SYS_IO_SETUP = 243 - SYS_IO_DESTROY = 244 - SYS_IO_GETEVENTS = 245 - SYS_IO_SUBMIT = 246 - SYS_IO_CANCEL = 247 - SYS_EXIT_GROUP = 248 - SYS_LOOKUP_DCOOKIE = 249 - SYS_EPOLL_CREATE = 250 - SYS_EPOLL_CTL = 251 - SYS_EPOLL_WAIT = 252 - SYS_REMAP_FILE_PAGES = 253 - SYS_SET_TID_ADDRESS = 256 - SYS_TIMER_CREATE = 257 - SYS_TIMER_SETTIME = 258 - SYS_TIMER_GETTIME = 259 - SYS_TIMER_GETOVERRUN = 260 - SYS_TIMER_DELETE = 261 - SYS_CLOCK_SETTIME = 262 - SYS_CLOCK_GETTIME = 263 - SYS_CLOCK_GETRES = 264 - SYS_CLOCK_NANOSLEEP = 265 - SYS_STATFS64 = 266 - SYS_FSTATFS64 = 267 - SYS_TGKILL = 268 - SYS_UTIMES = 269 - SYS_ARM_FADVISE64_64 = 270 - SYS_PCICONFIG_IOBASE = 271 - SYS_PCICONFIG_READ = 272 - SYS_PCICONFIG_WRITE = 273 - SYS_MQ_OPEN = 274 - SYS_MQ_UNLINK = 275 - SYS_MQ_TIMEDSEND = 276 - SYS_MQ_TIMEDRECEIVE = 277 - SYS_MQ_NOTIFY = 278 - SYS_MQ_GETSETATTR = 279 - SYS_WAITID = 280 - SYS_SOCKET = 281 - SYS_BIND = 282 - SYS_CONNECT = 283 - SYS_LISTEN = 284 - SYS_ACCEPT = 285 - SYS_GETSOCKNAME = 286 - SYS_GETPEERNAME = 287 - SYS_SOCKETPAIR = 288 - SYS_SEND = 289 - SYS_SENDTO = 290 - SYS_RECV = 291 - SYS_RECVFROM = 292 - SYS_SHUTDOWN = 293 - SYS_SETSOCKOPT = 294 - SYS_GETSOCKOPT = 295 - SYS_SENDMSG = 296 - SYS_RECVMSG = 297 - SYS_SEMOP = 298 - SYS_SEMGET = 299 - SYS_SEMCTL = 300 - SYS_MSGSND = 301 - SYS_MSGRCV = 302 - SYS_MSGGET = 303 - SYS_MSGCTL = 304 - SYS_SHMAT = 305 - SYS_SHMDT = 306 - SYS_SHMGET = 307 - SYS_SHMCTL = 308 - SYS_ADD_KEY = 309 - SYS_REQUEST_KEY = 310 - SYS_KEYCTL = 311 - SYS_SEMTIMEDOP = 312 - SYS_VSERVER = 313 - SYS_IOPRIO_SET = 314 - SYS_IOPRIO_GET = 315 - SYS_INOTIFY_INIT = 316 - SYS_INOTIFY_ADD_WATCH = 317 - SYS_INOTIFY_RM_WATCH = 318 - SYS_MBIND = 319 - SYS_GET_MEMPOLICY = 320 - SYS_SET_MEMPOLICY = 321 - SYS_OPENAT = 322 - SYS_MKDIRAT = 323 - SYS_MKNODAT = 324 - SYS_FCHOWNAT = 325 - SYS_FUTIMESAT = 326 - SYS_FSTATAT64 = 327 - SYS_UNLINKAT = 328 - SYS_RENAMEAT = 329 - SYS_LINKAT = 330 - SYS_SYMLINKAT = 331 - SYS_READLINKAT = 332 - SYS_FCHMODAT = 333 - SYS_FACCESSAT = 334 - SYS_PSELECT6 = 335 - SYS_PPOLL = 336 - SYS_UNSHARE = 337 - SYS_SET_ROBUST_LIST = 338 - SYS_GET_ROBUST_LIST = 339 - SYS_SPLICE = 340 - SYS_ARM_SYNC_FILE_RANGE = 341 - SYS_TEE = 342 - SYS_VMSPLICE = 343 - SYS_MOVE_PAGES = 344 - SYS_GETCPU = 345 - SYS_EPOLL_PWAIT = 346 - SYS_KEXEC_LOAD = 347 - SYS_UTIMENSAT = 348 - SYS_SIGNALFD = 349 - SYS_TIMERFD_CREATE = 350 - SYS_EVENTFD = 351 - SYS_FALLOCATE = 352 - SYS_TIMERFD_SETTIME = 353 - SYS_TIMERFD_GETTIME = 354 - SYS_SIGNALFD4 = 355 - SYS_EVENTFD2 = 356 - SYS_EPOLL_CREATE1 = 357 - SYS_DUP3 = 358 - SYS_PIPE2 = 359 - SYS_INOTIFY_INIT1 = 360 - SYS_PREADV = 361 - SYS_PWRITEV = 362 - SYS_RT_TGSIGQUEUEINFO = 363 - SYS_PERF_EVENT_OPEN = 364 - SYS_RECVMMSG = 365 - SYS_ACCEPT4 = 366 - SYS_FANOTIFY_INIT = 367 - SYS_FANOTIFY_MARK = 368 - SYS_PRLIMIT64 = 369 - SYS_NAME_TO_HANDLE_AT = 370 - SYS_OPEN_BY_HANDLE_AT = 371 - SYS_CLOCK_ADJTIME = 372 - SYS_SYNCFS = 373 - SYS_SENDMMSG = 374 - SYS_SETNS = 375 - SYS_PROCESS_VM_READV = 376 - SYS_PROCESS_VM_WRITEV = 377 - SYS_KCMP = 378 - SYS_FINIT_MODULE = 379 - SYS_SCHED_SETATTR = 380 - SYS_SCHED_GETATTR = 381 - SYS_RENAMEAT2 = 382 - SYS_SECCOMP = 383 - SYS_GETRANDOM = 384 - SYS_MEMFD_CREATE = 385 - SYS_BPF = 386 - SYS_EXECVEAT = 387 - SYS_USERFAULTFD = 388 - SYS_MEMBARRIER = 389 - SYS_MLOCK2 = 390 - SYS_COPY_FILE_RANGE = 391 - SYS_PREADV2 = 392 - SYS_PWRITEV2 = 393 - SYS_PKEY_MPROTECT = 394 - SYS_PKEY_ALLOC = 395 - SYS_PKEY_FREE = 396 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go deleted file mode 100644 index 6407843..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go +++ /dev/null @@ -1,285 +0,0 @@ -// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include -fsigned-char /tmp/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build arm64,linux - -package unix - -const ( - SYS_IO_SETUP = 0 - SYS_IO_DESTROY = 1 - SYS_IO_SUBMIT = 2 - SYS_IO_CANCEL = 3 - SYS_IO_GETEVENTS = 4 - SYS_SETXATTR = 5 - SYS_LSETXATTR = 6 - SYS_FSETXATTR = 7 - SYS_GETXATTR = 8 - SYS_LGETXATTR = 9 - SYS_FGETXATTR = 10 - SYS_LISTXATTR = 11 - SYS_LLISTXATTR = 12 - SYS_FLISTXATTR = 13 - SYS_REMOVEXATTR = 14 - SYS_LREMOVEXATTR = 15 - SYS_FREMOVEXATTR = 16 - SYS_GETCWD = 17 - SYS_LOOKUP_DCOOKIE = 18 - SYS_EVENTFD2 = 19 - SYS_EPOLL_CREATE1 = 20 - SYS_EPOLL_CTL = 21 - SYS_EPOLL_PWAIT = 22 - SYS_DUP = 23 - SYS_DUP3 = 24 - SYS_FCNTL = 25 - SYS_INOTIFY_INIT1 = 26 - SYS_INOTIFY_ADD_WATCH = 27 - SYS_INOTIFY_RM_WATCH = 28 - SYS_IOCTL = 29 - SYS_IOPRIO_SET = 30 - SYS_IOPRIO_GET = 31 - SYS_FLOCK = 32 - SYS_MKNODAT = 33 - SYS_MKDIRAT = 34 - SYS_UNLINKAT = 35 - SYS_SYMLINKAT = 36 - SYS_LINKAT = 37 - SYS_RENAMEAT = 38 - SYS_UMOUNT2 = 39 - SYS_MOUNT = 40 - SYS_PIVOT_ROOT = 41 - SYS_NFSSERVCTL = 42 - SYS_STATFS = 43 - SYS_FSTATFS = 44 - SYS_TRUNCATE = 45 - SYS_FTRUNCATE = 46 - SYS_FALLOCATE = 47 - SYS_FACCESSAT = 48 - SYS_CHDIR = 49 - SYS_FCHDIR = 50 - SYS_CHROOT = 51 - SYS_FCHMOD = 52 - SYS_FCHMODAT = 53 - SYS_FCHOWNAT = 54 - SYS_FCHOWN = 55 - SYS_OPENAT = 56 - SYS_CLOSE = 57 - SYS_VHANGUP = 58 - SYS_PIPE2 = 59 - SYS_QUOTACTL = 60 - SYS_GETDENTS64 = 61 - SYS_LSEEK = 62 - SYS_READ = 63 - SYS_WRITE = 64 - SYS_READV = 65 - SYS_WRITEV = 66 - SYS_PREAD64 = 67 - SYS_PWRITE64 = 68 - SYS_PREADV = 69 - SYS_PWRITEV = 70 - SYS_SENDFILE = 71 - SYS_PSELECT6 = 72 - SYS_PPOLL = 73 - SYS_SIGNALFD4 = 74 - SYS_VMSPLICE = 75 - SYS_SPLICE = 76 - SYS_TEE = 77 - SYS_READLINKAT = 78 - SYS_FSTATAT = 79 - SYS_FSTAT = 80 - SYS_SYNC = 81 - SYS_FSYNC = 82 - SYS_FDATASYNC = 83 - SYS_SYNC_FILE_RANGE = 84 - SYS_TIMERFD_CREATE = 85 - SYS_TIMERFD_SETTIME = 86 - SYS_TIMERFD_GETTIME = 87 - SYS_UTIMENSAT = 88 - SYS_ACCT = 89 - SYS_CAPGET = 90 - SYS_CAPSET = 91 - SYS_PERSONALITY = 92 - SYS_EXIT = 93 - SYS_EXIT_GROUP = 94 - SYS_WAITID = 95 - SYS_SET_TID_ADDRESS = 96 - SYS_UNSHARE = 97 - SYS_FUTEX = 98 - SYS_SET_ROBUST_LIST = 99 - SYS_GET_ROBUST_LIST = 100 - SYS_NANOSLEEP = 101 - SYS_GETITIMER = 102 - SYS_SETITIMER = 103 - SYS_KEXEC_LOAD = 104 - SYS_INIT_MODULE = 105 - SYS_DELETE_MODULE = 106 - SYS_TIMER_CREATE = 107 - SYS_TIMER_GETTIME = 108 - SYS_TIMER_GETOVERRUN = 109 - SYS_TIMER_SETTIME = 110 - SYS_TIMER_DELETE = 111 - SYS_CLOCK_SETTIME = 112 - SYS_CLOCK_GETTIME = 113 - SYS_CLOCK_GETRES = 114 - SYS_CLOCK_NANOSLEEP = 115 - SYS_SYSLOG = 116 - SYS_PTRACE = 117 - SYS_SCHED_SETPARAM = 118 - SYS_SCHED_SETSCHEDULER = 119 - SYS_SCHED_GETSCHEDULER = 120 - SYS_SCHED_GETPARAM = 121 - SYS_SCHED_SETAFFINITY = 122 - SYS_SCHED_GETAFFINITY = 123 - SYS_SCHED_YIELD = 124 - SYS_SCHED_GET_PRIORITY_MAX = 125 - SYS_SCHED_GET_PRIORITY_MIN = 126 - SYS_SCHED_RR_GET_INTERVAL = 127 - SYS_RESTART_SYSCALL = 128 - SYS_KILL = 129 - SYS_TKILL = 130 - SYS_TGKILL = 131 - SYS_SIGALTSTACK = 132 - SYS_RT_SIGSUSPEND = 133 - SYS_RT_SIGACTION = 134 - SYS_RT_SIGPROCMASK = 135 - SYS_RT_SIGPENDING = 136 - SYS_RT_SIGTIMEDWAIT = 137 - SYS_RT_SIGQUEUEINFO = 138 - SYS_RT_SIGRETURN = 139 - SYS_SETPRIORITY = 140 - SYS_GETPRIORITY = 141 - SYS_REBOOT = 142 - SYS_SETREGID = 143 - SYS_SETGID = 144 - SYS_SETREUID = 145 - SYS_SETUID = 146 - SYS_SETRESUID = 147 - SYS_GETRESUID = 148 - SYS_SETRESGID = 149 - SYS_GETRESGID = 150 - SYS_SETFSUID = 151 - SYS_SETFSGID = 152 - SYS_TIMES = 153 - SYS_SETPGID = 154 - SYS_GETPGID = 155 - SYS_GETSID = 156 - SYS_SETSID = 157 - SYS_GETGROUPS = 158 - SYS_SETGROUPS = 159 - SYS_UNAME = 160 - SYS_SETHOSTNAME = 161 - SYS_SETDOMAINNAME = 162 - SYS_GETRLIMIT = 163 - SYS_SETRLIMIT = 164 - SYS_GETRUSAGE = 165 - SYS_UMASK = 166 - SYS_PRCTL = 167 - SYS_GETCPU = 168 - SYS_GETTIMEOFDAY = 169 - SYS_SETTIMEOFDAY = 170 - SYS_ADJTIMEX = 171 - SYS_GETPID = 172 - SYS_GETPPID = 173 - SYS_GETUID = 174 - SYS_GETEUID = 175 - SYS_GETGID = 176 - SYS_GETEGID = 177 - SYS_GETTID = 178 - SYS_SYSINFO = 179 - SYS_MQ_OPEN = 180 - SYS_MQ_UNLINK = 181 - SYS_MQ_TIMEDSEND = 182 - SYS_MQ_TIMEDRECEIVE = 183 - SYS_MQ_NOTIFY = 184 - SYS_MQ_GETSETATTR = 185 - SYS_MSGGET = 186 - SYS_MSGCTL = 187 - SYS_MSGRCV = 188 - SYS_MSGSND = 189 - SYS_SEMGET = 190 - SYS_SEMCTL = 191 - SYS_SEMTIMEDOP = 192 - SYS_SEMOP = 193 - SYS_SHMGET = 194 - SYS_SHMCTL = 195 - SYS_SHMAT = 196 - SYS_SHMDT = 197 - SYS_SOCKET = 198 - SYS_SOCKETPAIR = 199 - SYS_BIND = 200 - SYS_LISTEN = 201 - SYS_ACCEPT = 202 - SYS_CONNECT = 203 - SYS_GETSOCKNAME = 204 - SYS_GETPEERNAME = 205 - SYS_SENDTO = 206 - SYS_RECVFROM = 207 - SYS_SETSOCKOPT = 208 - SYS_GETSOCKOPT = 209 - SYS_SHUTDOWN = 210 - SYS_SENDMSG = 211 - SYS_RECVMSG = 212 - SYS_READAHEAD = 213 - SYS_BRK = 214 - SYS_MUNMAP = 215 - SYS_MREMAP = 216 - SYS_ADD_KEY = 217 - SYS_REQUEST_KEY = 218 - SYS_KEYCTL = 219 - SYS_CLONE = 220 - SYS_EXECVE = 221 - SYS_MMAP = 222 - SYS_FADVISE64 = 223 - SYS_SWAPON = 224 - SYS_SWAPOFF = 225 - SYS_MPROTECT = 226 - SYS_MSYNC = 227 - SYS_MLOCK = 228 - SYS_MUNLOCK = 229 - SYS_MLOCKALL = 230 - SYS_MUNLOCKALL = 231 - SYS_MINCORE = 232 - SYS_MADVISE = 233 - SYS_REMAP_FILE_PAGES = 234 - SYS_MBIND = 235 - SYS_GET_MEMPOLICY = 236 - SYS_SET_MEMPOLICY = 237 - SYS_MIGRATE_PAGES = 238 - SYS_MOVE_PAGES = 239 - SYS_RT_TGSIGQUEUEINFO = 240 - SYS_PERF_EVENT_OPEN = 241 - SYS_ACCEPT4 = 242 - SYS_RECVMMSG = 243 - SYS_ARCH_SPECIFIC_SYSCALL = 244 - SYS_WAIT4 = 260 - SYS_PRLIMIT64 = 261 - SYS_FANOTIFY_INIT = 262 - SYS_FANOTIFY_MARK = 263 - SYS_NAME_TO_HANDLE_AT = 264 - SYS_OPEN_BY_HANDLE_AT = 265 - SYS_CLOCK_ADJTIME = 266 - SYS_SYNCFS = 267 - SYS_SETNS = 268 - SYS_SENDMMSG = 269 - SYS_PROCESS_VM_READV = 270 - SYS_PROCESS_VM_WRITEV = 271 - SYS_KCMP = 272 - SYS_FINIT_MODULE = 273 - SYS_SCHED_SETATTR = 274 - SYS_SCHED_GETATTR = 275 - SYS_RENAMEAT2 = 276 - SYS_SECCOMP = 277 - SYS_GETRANDOM = 278 - SYS_MEMFD_CREATE = 279 - SYS_BPF = 280 - SYS_EXECVEAT = 281 - SYS_USERFAULTFD = 282 - SYS_MEMBARRIER = 283 - SYS_MLOCK2 = 284 - SYS_COPY_FILE_RANGE = 285 - SYS_PREADV2 = 286 - SYS_PWRITEV2 = 287 - SYS_PKEY_MPROTECT = 288 - SYS_PKEY_ALLOC = 289 - SYS_PKEY_FREE = 290 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go deleted file mode 100644 index 939567c..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go +++ /dev/null @@ -1,374 +0,0 @@ -// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build mips,linux - -package unix - -const ( - SYS_SYSCALL = 4000 - SYS_EXIT = 4001 - SYS_FORK = 4002 - SYS_READ = 4003 - SYS_WRITE = 4004 - SYS_OPEN = 4005 - SYS_CLOSE = 4006 - SYS_WAITPID = 4007 - SYS_CREAT = 4008 - SYS_LINK = 4009 - SYS_UNLINK = 4010 - SYS_EXECVE = 4011 - SYS_CHDIR = 4012 - SYS_TIME = 4013 - SYS_MKNOD = 4014 - SYS_CHMOD = 4015 - SYS_LCHOWN = 4016 - SYS_BREAK = 4017 - SYS_UNUSED18 = 4018 - SYS_LSEEK = 4019 - SYS_GETPID = 4020 - SYS_MOUNT = 4021 - SYS_UMOUNT = 4022 - SYS_SETUID = 4023 - SYS_GETUID = 4024 - SYS_STIME = 4025 - SYS_PTRACE = 4026 - SYS_ALARM = 4027 - SYS_UNUSED28 = 4028 - SYS_PAUSE = 4029 - SYS_UTIME = 4030 - SYS_STTY = 4031 - SYS_GTTY = 4032 - SYS_ACCESS = 4033 - SYS_NICE = 4034 - SYS_FTIME = 4035 - SYS_SYNC = 4036 - SYS_KILL = 4037 - SYS_RENAME = 4038 - SYS_MKDIR = 4039 - SYS_RMDIR = 4040 - SYS_DUP = 4041 - SYS_PIPE = 4042 - SYS_TIMES = 4043 - SYS_PROF = 4044 - SYS_BRK = 4045 - SYS_SETGID = 4046 - SYS_GETGID = 4047 - SYS_SIGNAL = 4048 - SYS_GETEUID = 4049 - SYS_GETEGID = 4050 - SYS_ACCT = 4051 - SYS_UMOUNT2 = 4052 - SYS_LOCK = 4053 - SYS_IOCTL = 4054 - SYS_FCNTL = 4055 - SYS_MPX = 4056 - SYS_SETPGID = 4057 - SYS_ULIMIT = 4058 - SYS_UNUSED59 = 4059 - SYS_UMASK = 4060 - SYS_CHROOT = 4061 - SYS_USTAT = 4062 - SYS_DUP2 = 4063 - SYS_GETPPID = 4064 - SYS_GETPGRP = 4065 - SYS_SETSID = 4066 - SYS_SIGACTION = 4067 - SYS_SGETMASK = 4068 - SYS_SSETMASK = 4069 - SYS_SETREUID = 4070 - SYS_SETREGID = 4071 - SYS_SIGSUSPEND = 4072 - SYS_SIGPENDING = 4073 - SYS_SETHOSTNAME = 4074 - SYS_SETRLIMIT = 4075 - SYS_GETRLIMIT = 4076 - SYS_GETRUSAGE = 4077 - SYS_GETTIMEOFDAY = 4078 - SYS_SETTIMEOFDAY = 4079 - SYS_GETGROUPS = 4080 - SYS_SETGROUPS = 4081 - SYS_RESERVED82 = 4082 - SYS_SYMLINK = 4083 - SYS_UNUSED84 = 4084 - SYS_READLINK = 4085 - SYS_USELIB = 4086 - SYS_SWAPON = 4087 - SYS_REBOOT = 4088 - SYS_READDIR = 4089 - SYS_MMAP = 4090 - SYS_MUNMAP = 4091 - SYS_TRUNCATE = 4092 - SYS_FTRUNCATE = 4093 - SYS_FCHMOD = 4094 - SYS_FCHOWN = 4095 - SYS_GETPRIORITY = 4096 - SYS_SETPRIORITY = 4097 - SYS_PROFIL = 4098 - SYS_STATFS = 4099 - SYS_FSTATFS = 4100 - SYS_IOPERM = 4101 - SYS_SOCKETCALL = 4102 - SYS_SYSLOG = 4103 - SYS_SETITIMER = 4104 - SYS_GETITIMER = 4105 - SYS_STAT = 4106 - SYS_LSTAT = 4107 - SYS_FSTAT = 4108 - SYS_UNUSED109 = 4109 - SYS_IOPL = 4110 - SYS_VHANGUP = 4111 - SYS_IDLE = 4112 - SYS_VM86 = 4113 - SYS_WAIT4 = 4114 - SYS_SWAPOFF = 4115 - SYS_SYSINFO = 4116 - SYS_IPC = 4117 - SYS_FSYNC = 4118 - SYS_SIGRETURN = 4119 - SYS_CLONE = 4120 - SYS_SETDOMAINNAME = 4121 - SYS_UNAME = 4122 - SYS_MODIFY_LDT = 4123 - SYS_ADJTIMEX = 4124 - SYS_MPROTECT = 4125 - SYS_SIGPROCMASK = 4126 - SYS_CREATE_MODULE = 4127 - SYS_INIT_MODULE = 4128 - SYS_DELETE_MODULE = 4129 - SYS_GET_KERNEL_SYMS = 4130 - SYS_QUOTACTL = 4131 - SYS_GETPGID = 4132 - SYS_FCHDIR = 4133 - SYS_BDFLUSH = 4134 - SYS_SYSFS = 4135 - SYS_PERSONALITY = 4136 - SYS_AFS_SYSCALL = 4137 - SYS_SETFSUID = 4138 - SYS_SETFSGID = 4139 - SYS__LLSEEK = 4140 - SYS_GETDENTS = 4141 - SYS__NEWSELECT = 4142 - SYS_FLOCK = 4143 - SYS_MSYNC = 4144 - SYS_READV = 4145 - SYS_WRITEV = 4146 - SYS_CACHEFLUSH = 4147 - SYS_CACHECTL = 4148 - SYS_SYSMIPS = 4149 - SYS_UNUSED150 = 4150 - SYS_GETSID = 4151 - SYS_FDATASYNC = 4152 - SYS__SYSCTL = 4153 - SYS_MLOCK = 4154 - SYS_MUNLOCK = 4155 - SYS_MLOCKALL = 4156 - SYS_MUNLOCKALL = 4157 - SYS_SCHED_SETPARAM = 4158 - SYS_SCHED_GETPARAM = 4159 - SYS_SCHED_SETSCHEDULER = 4160 - SYS_SCHED_GETSCHEDULER = 4161 - SYS_SCHED_YIELD = 4162 - SYS_SCHED_GET_PRIORITY_MAX = 4163 - SYS_SCHED_GET_PRIORITY_MIN = 4164 - SYS_SCHED_RR_GET_INTERVAL = 4165 - SYS_NANOSLEEP = 4166 - SYS_MREMAP = 4167 - SYS_ACCEPT = 4168 - SYS_BIND = 4169 - SYS_CONNECT = 4170 - SYS_GETPEERNAME = 4171 - SYS_GETSOCKNAME = 4172 - SYS_GETSOCKOPT = 4173 - SYS_LISTEN = 4174 - SYS_RECV = 4175 - SYS_RECVFROM = 4176 - SYS_RECVMSG = 4177 - SYS_SEND = 4178 - SYS_SENDMSG = 4179 - SYS_SENDTO = 4180 - SYS_SETSOCKOPT = 4181 - SYS_SHUTDOWN = 4182 - SYS_SOCKET = 4183 - SYS_SOCKETPAIR = 4184 - SYS_SETRESUID = 4185 - SYS_GETRESUID = 4186 - SYS_QUERY_MODULE = 4187 - SYS_POLL = 4188 - SYS_NFSSERVCTL = 4189 - SYS_SETRESGID = 4190 - SYS_GETRESGID = 4191 - SYS_PRCTL = 4192 - SYS_RT_SIGRETURN = 4193 - SYS_RT_SIGACTION = 4194 - SYS_RT_SIGPROCMASK = 4195 - SYS_RT_SIGPENDING = 4196 - SYS_RT_SIGTIMEDWAIT = 4197 - SYS_RT_SIGQUEUEINFO = 4198 - SYS_RT_SIGSUSPEND = 4199 - SYS_PREAD64 = 4200 - SYS_PWRITE64 = 4201 - SYS_CHOWN = 4202 - SYS_GETCWD = 4203 - SYS_CAPGET = 4204 - SYS_CAPSET = 4205 - SYS_SIGALTSTACK = 4206 - SYS_SENDFILE = 4207 - SYS_GETPMSG = 4208 - SYS_PUTPMSG = 4209 - SYS_MMAP2 = 4210 - SYS_TRUNCATE64 = 4211 - SYS_FTRUNCATE64 = 4212 - SYS_STAT64 = 4213 - SYS_LSTAT64 = 4214 - SYS_FSTAT64 = 4215 - SYS_PIVOT_ROOT = 4216 - SYS_MINCORE = 4217 - SYS_MADVISE = 4218 - SYS_GETDENTS64 = 4219 - SYS_FCNTL64 = 4220 - SYS_RESERVED221 = 4221 - SYS_GETTID = 4222 - SYS_READAHEAD = 4223 - SYS_SETXATTR = 4224 - SYS_LSETXATTR = 4225 - SYS_FSETXATTR = 4226 - SYS_GETXATTR = 4227 - SYS_LGETXATTR = 4228 - SYS_FGETXATTR = 4229 - SYS_LISTXATTR = 4230 - SYS_LLISTXATTR = 4231 - SYS_FLISTXATTR = 4232 - SYS_REMOVEXATTR = 4233 - SYS_LREMOVEXATTR = 4234 - SYS_FREMOVEXATTR = 4235 - SYS_TKILL = 4236 - SYS_SENDFILE64 = 4237 - SYS_FUTEX = 4238 - SYS_SCHED_SETAFFINITY = 4239 - SYS_SCHED_GETAFFINITY = 4240 - SYS_IO_SETUP = 4241 - SYS_IO_DESTROY = 4242 - SYS_IO_GETEVENTS = 4243 - SYS_IO_SUBMIT = 4244 - SYS_IO_CANCEL = 4245 - SYS_EXIT_GROUP = 4246 - SYS_LOOKUP_DCOOKIE = 4247 - SYS_EPOLL_CREATE = 4248 - SYS_EPOLL_CTL = 4249 - SYS_EPOLL_WAIT = 4250 - SYS_REMAP_FILE_PAGES = 4251 - SYS_SET_TID_ADDRESS = 4252 - SYS_RESTART_SYSCALL = 4253 - SYS_FADVISE64 = 4254 - SYS_STATFS64 = 4255 - SYS_FSTATFS64 = 4256 - SYS_TIMER_CREATE = 4257 - SYS_TIMER_SETTIME = 4258 - SYS_TIMER_GETTIME = 4259 - SYS_TIMER_GETOVERRUN = 4260 - SYS_TIMER_DELETE = 4261 - SYS_CLOCK_SETTIME = 4262 - SYS_CLOCK_GETTIME = 4263 - SYS_CLOCK_GETRES = 4264 - SYS_CLOCK_NANOSLEEP = 4265 - SYS_TGKILL = 4266 - SYS_UTIMES = 4267 - SYS_MBIND = 4268 - SYS_GET_MEMPOLICY = 4269 - SYS_SET_MEMPOLICY = 4270 - SYS_MQ_OPEN = 4271 - SYS_MQ_UNLINK = 4272 - SYS_MQ_TIMEDSEND = 4273 - SYS_MQ_TIMEDRECEIVE = 4274 - SYS_MQ_NOTIFY = 4275 - SYS_MQ_GETSETATTR = 4276 - SYS_VSERVER = 4277 - SYS_WAITID = 4278 - SYS_ADD_KEY = 4280 - SYS_REQUEST_KEY = 4281 - SYS_KEYCTL = 4282 - SYS_SET_THREAD_AREA = 4283 - SYS_INOTIFY_INIT = 4284 - SYS_INOTIFY_ADD_WATCH = 4285 - SYS_INOTIFY_RM_WATCH = 4286 - SYS_MIGRATE_PAGES = 4287 - SYS_OPENAT = 4288 - SYS_MKDIRAT = 4289 - SYS_MKNODAT = 4290 - SYS_FCHOWNAT = 4291 - SYS_FUTIMESAT = 4292 - SYS_FSTATAT64 = 4293 - SYS_UNLINKAT = 4294 - SYS_RENAMEAT = 4295 - SYS_LINKAT = 4296 - SYS_SYMLINKAT = 4297 - SYS_READLINKAT = 4298 - SYS_FCHMODAT = 4299 - SYS_FACCESSAT = 4300 - SYS_PSELECT6 = 4301 - SYS_PPOLL = 4302 - SYS_UNSHARE = 4303 - SYS_SPLICE = 4304 - SYS_SYNC_FILE_RANGE = 4305 - SYS_TEE = 4306 - SYS_VMSPLICE = 4307 - SYS_MOVE_PAGES = 4308 - SYS_SET_ROBUST_LIST = 4309 - SYS_GET_ROBUST_LIST = 4310 - SYS_KEXEC_LOAD = 4311 - SYS_GETCPU = 4312 - SYS_EPOLL_PWAIT = 4313 - SYS_IOPRIO_SET = 4314 - SYS_IOPRIO_GET = 4315 - SYS_UTIMENSAT = 4316 - SYS_SIGNALFD = 4317 - SYS_TIMERFD = 4318 - SYS_EVENTFD = 4319 - SYS_FALLOCATE = 4320 - SYS_TIMERFD_CREATE = 4321 - SYS_TIMERFD_GETTIME = 4322 - SYS_TIMERFD_SETTIME = 4323 - SYS_SIGNALFD4 = 4324 - SYS_EVENTFD2 = 4325 - SYS_EPOLL_CREATE1 = 4326 - SYS_DUP3 = 4327 - SYS_PIPE2 = 4328 - SYS_INOTIFY_INIT1 = 4329 - SYS_PREADV = 4330 - SYS_PWRITEV = 4331 - SYS_RT_TGSIGQUEUEINFO = 4332 - SYS_PERF_EVENT_OPEN = 4333 - SYS_ACCEPT4 = 4334 - SYS_RECVMMSG = 4335 - SYS_FANOTIFY_INIT = 4336 - SYS_FANOTIFY_MARK = 4337 - SYS_PRLIMIT64 = 4338 - SYS_NAME_TO_HANDLE_AT = 4339 - SYS_OPEN_BY_HANDLE_AT = 4340 - SYS_CLOCK_ADJTIME = 4341 - SYS_SYNCFS = 4342 - SYS_SENDMMSG = 4343 - SYS_SETNS = 4344 - SYS_PROCESS_VM_READV = 4345 - SYS_PROCESS_VM_WRITEV = 4346 - SYS_KCMP = 4347 - SYS_FINIT_MODULE = 4348 - SYS_SCHED_SETATTR = 4349 - SYS_SCHED_GETATTR = 4350 - SYS_RENAMEAT2 = 4351 - SYS_SECCOMP = 4352 - SYS_GETRANDOM = 4353 - SYS_MEMFD_CREATE = 4354 - SYS_BPF = 4355 - SYS_EXECVEAT = 4356 - SYS_USERFAULTFD = 4357 - SYS_MEMBARRIER = 4358 - SYS_MLOCK2 = 4359 - SYS_COPY_FILE_RANGE = 4360 - SYS_PREADV2 = 4361 - SYS_PWRITEV2 = 4362 - SYS_PKEY_MPROTECT = 4363 - SYS_PKEY_ALLOC = 4364 - SYS_PKEY_FREE = 4365 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go deleted file mode 100644 index 09db959..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go +++ /dev/null @@ -1,334 +0,0 @@ -// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build mips64,linux - -package unix - -const ( - SYS_READ = 5000 - SYS_WRITE = 5001 - SYS_OPEN = 5002 - SYS_CLOSE = 5003 - SYS_STAT = 5004 - SYS_FSTAT = 5005 - SYS_LSTAT = 5006 - SYS_POLL = 5007 - SYS_LSEEK = 5008 - SYS_MMAP = 5009 - SYS_MPROTECT = 5010 - SYS_MUNMAP = 5011 - SYS_BRK = 5012 - SYS_RT_SIGACTION = 5013 - SYS_RT_SIGPROCMASK = 5014 - SYS_IOCTL = 5015 - SYS_PREAD64 = 5016 - SYS_PWRITE64 = 5017 - SYS_READV = 5018 - SYS_WRITEV = 5019 - SYS_ACCESS = 5020 - SYS_PIPE = 5021 - SYS__NEWSELECT = 5022 - SYS_SCHED_YIELD = 5023 - SYS_MREMAP = 5024 - SYS_MSYNC = 5025 - SYS_MINCORE = 5026 - SYS_MADVISE = 5027 - SYS_SHMGET = 5028 - SYS_SHMAT = 5029 - SYS_SHMCTL = 5030 - SYS_DUP = 5031 - SYS_DUP2 = 5032 - SYS_PAUSE = 5033 - SYS_NANOSLEEP = 5034 - SYS_GETITIMER = 5035 - SYS_SETITIMER = 5036 - SYS_ALARM = 5037 - SYS_GETPID = 5038 - SYS_SENDFILE = 5039 - SYS_SOCKET = 5040 - SYS_CONNECT = 5041 - SYS_ACCEPT = 5042 - SYS_SENDTO = 5043 - SYS_RECVFROM = 5044 - SYS_SENDMSG = 5045 - SYS_RECVMSG = 5046 - SYS_SHUTDOWN = 5047 - SYS_BIND = 5048 - SYS_LISTEN = 5049 - SYS_GETSOCKNAME = 5050 - SYS_GETPEERNAME = 5051 - SYS_SOCKETPAIR = 5052 - SYS_SETSOCKOPT = 5053 - SYS_GETSOCKOPT = 5054 - SYS_CLONE = 5055 - SYS_FORK = 5056 - SYS_EXECVE = 5057 - SYS_EXIT = 5058 - SYS_WAIT4 = 5059 - SYS_KILL = 5060 - SYS_UNAME = 5061 - SYS_SEMGET = 5062 - SYS_SEMOP = 5063 - SYS_SEMCTL = 5064 - SYS_SHMDT = 5065 - SYS_MSGGET = 5066 - SYS_MSGSND = 5067 - SYS_MSGRCV = 5068 - SYS_MSGCTL = 5069 - SYS_FCNTL = 5070 - SYS_FLOCK = 5071 - SYS_FSYNC = 5072 - SYS_FDATASYNC = 5073 - SYS_TRUNCATE = 5074 - SYS_FTRUNCATE = 5075 - SYS_GETDENTS = 5076 - SYS_GETCWD = 5077 - SYS_CHDIR = 5078 - SYS_FCHDIR = 5079 - SYS_RENAME = 5080 - SYS_MKDIR = 5081 - SYS_RMDIR = 5082 - SYS_CREAT = 5083 - SYS_LINK = 5084 - SYS_UNLINK = 5085 - SYS_SYMLINK = 5086 - SYS_READLINK = 5087 - SYS_CHMOD = 5088 - SYS_FCHMOD = 5089 - SYS_CHOWN = 5090 - SYS_FCHOWN = 5091 - SYS_LCHOWN = 5092 - SYS_UMASK = 5093 - SYS_GETTIMEOFDAY = 5094 - SYS_GETRLIMIT = 5095 - SYS_GETRUSAGE = 5096 - SYS_SYSINFO = 5097 - SYS_TIMES = 5098 - SYS_PTRACE = 5099 - SYS_GETUID = 5100 - SYS_SYSLOG = 5101 - SYS_GETGID = 5102 - SYS_SETUID = 5103 - SYS_SETGID = 5104 - SYS_GETEUID = 5105 - SYS_GETEGID = 5106 - SYS_SETPGID = 5107 - SYS_GETPPID = 5108 - SYS_GETPGRP = 5109 - SYS_SETSID = 5110 - SYS_SETREUID = 5111 - SYS_SETREGID = 5112 - SYS_GETGROUPS = 5113 - SYS_SETGROUPS = 5114 - SYS_SETRESUID = 5115 - SYS_GETRESUID = 5116 - SYS_SETRESGID = 5117 - SYS_GETRESGID = 5118 - SYS_GETPGID = 5119 - SYS_SETFSUID = 5120 - SYS_SETFSGID = 5121 - SYS_GETSID = 5122 - SYS_CAPGET = 5123 - SYS_CAPSET = 5124 - SYS_RT_SIGPENDING = 5125 - SYS_RT_SIGTIMEDWAIT = 5126 - SYS_RT_SIGQUEUEINFO = 5127 - SYS_RT_SIGSUSPEND = 5128 - SYS_SIGALTSTACK = 5129 - SYS_UTIME = 5130 - SYS_MKNOD = 5131 - SYS_PERSONALITY = 5132 - SYS_USTAT = 5133 - SYS_STATFS = 5134 - SYS_FSTATFS = 5135 - SYS_SYSFS = 5136 - SYS_GETPRIORITY = 5137 - SYS_SETPRIORITY = 5138 - SYS_SCHED_SETPARAM = 5139 - SYS_SCHED_GETPARAM = 5140 - SYS_SCHED_SETSCHEDULER = 5141 - SYS_SCHED_GETSCHEDULER = 5142 - SYS_SCHED_GET_PRIORITY_MAX = 5143 - SYS_SCHED_GET_PRIORITY_MIN = 5144 - SYS_SCHED_RR_GET_INTERVAL = 5145 - SYS_MLOCK = 5146 - SYS_MUNLOCK = 5147 - SYS_MLOCKALL = 5148 - SYS_MUNLOCKALL = 5149 - SYS_VHANGUP = 5150 - SYS_PIVOT_ROOT = 5151 - SYS__SYSCTL = 5152 - SYS_PRCTL = 5153 - SYS_ADJTIMEX = 5154 - SYS_SETRLIMIT = 5155 - SYS_CHROOT = 5156 - SYS_SYNC = 5157 - SYS_ACCT = 5158 - SYS_SETTIMEOFDAY = 5159 - SYS_MOUNT = 5160 - SYS_UMOUNT2 = 5161 - SYS_SWAPON = 5162 - SYS_SWAPOFF = 5163 - SYS_REBOOT = 5164 - SYS_SETHOSTNAME = 5165 - SYS_SETDOMAINNAME = 5166 - SYS_CREATE_MODULE = 5167 - SYS_INIT_MODULE = 5168 - SYS_DELETE_MODULE = 5169 - SYS_GET_KERNEL_SYMS = 5170 - SYS_QUERY_MODULE = 5171 - SYS_QUOTACTL = 5172 - SYS_NFSSERVCTL = 5173 - SYS_GETPMSG = 5174 - SYS_PUTPMSG = 5175 - SYS_AFS_SYSCALL = 5176 - SYS_RESERVED177 = 5177 - SYS_GETTID = 5178 - SYS_READAHEAD = 5179 - SYS_SETXATTR = 5180 - SYS_LSETXATTR = 5181 - SYS_FSETXATTR = 5182 - SYS_GETXATTR = 5183 - SYS_LGETXATTR = 5184 - SYS_FGETXATTR = 5185 - SYS_LISTXATTR = 5186 - SYS_LLISTXATTR = 5187 - SYS_FLISTXATTR = 5188 - SYS_REMOVEXATTR = 5189 - SYS_LREMOVEXATTR = 5190 - SYS_FREMOVEXATTR = 5191 - SYS_TKILL = 5192 - SYS_RESERVED193 = 5193 - SYS_FUTEX = 5194 - SYS_SCHED_SETAFFINITY = 5195 - SYS_SCHED_GETAFFINITY = 5196 - SYS_CACHEFLUSH = 5197 - SYS_CACHECTL = 5198 - SYS_SYSMIPS = 5199 - SYS_IO_SETUP = 5200 - SYS_IO_DESTROY = 5201 - SYS_IO_GETEVENTS = 5202 - SYS_IO_SUBMIT = 5203 - SYS_IO_CANCEL = 5204 - SYS_EXIT_GROUP = 5205 - SYS_LOOKUP_DCOOKIE = 5206 - SYS_EPOLL_CREATE = 5207 - SYS_EPOLL_CTL = 5208 - SYS_EPOLL_WAIT = 5209 - SYS_REMAP_FILE_PAGES = 5210 - SYS_RT_SIGRETURN = 5211 - SYS_SET_TID_ADDRESS = 5212 - SYS_RESTART_SYSCALL = 5213 - SYS_SEMTIMEDOP = 5214 - SYS_FADVISE64 = 5215 - SYS_TIMER_CREATE = 5216 - SYS_TIMER_SETTIME = 5217 - SYS_TIMER_GETTIME = 5218 - SYS_TIMER_GETOVERRUN = 5219 - SYS_TIMER_DELETE = 5220 - SYS_CLOCK_SETTIME = 5221 - SYS_CLOCK_GETTIME = 5222 - SYS_CLOCK_GETRES = 5223 - SYS_CLOCK_NANOSLEEP = 5224 - SYS_TGKILL = 5225 - SYS_UTIMES = 5226 - SYS_MBIND = 5227 - SYS_GET_MEMPOLICY = 5228 - SYS_SET_MEMPOLICY = 5229 - SYS_MQ_OPEN = 5230 - SYS_MQ_UNLINK = 5231 - SYS_MQ_TIMEDSEND = 5232 - SYS_MQ_TIMEDRECEIVE = 5233 - SYS_MQ_NOTIFY = 5234 - SYS_MQ_GETSETATTR = 5235 - SYS_VSERVER = 5236 - SYS_WAITID = 5237 - SYS_ADD_KEY = 5239 - SYS_REQUEST_KEY = 5240 - SYS_KEYCTL = 5241 - SYS_SET_THREAD_AREA = 5242 - SYS_INOTIFY_INIT = 5243 - SYS_INOTIFY_ADD_WATCH = 5244 - SYS_INOTIFY_RM_WATCH = 5245 - SYS_MIGRATE_PAGES = 5246 - SYS_OPENAT = 5247 - SYS_MKDIRAT = 5248 - SYS_MKNODAT = 5249 - SYS_FCHOWNAT = 5250 - SYS_FUTIMESAT = 5251 - SYS_NEWFSTATAT = 5252 - SYS_UNLINKAT = 5253 - SYS_RENAMEAT = 5254 - SYS_LINKAT = 5255 - SYS_SYMLINKAT = 5256 - SYS_READLINKAT = 5257 - SYS_FCHMODAT = 5258 - SYS_FACCESSAT = 5259 - SYS_PSELECT6 = 5260 - SYS_PPOLL = 5261 - SYS_UNSHARE = 5262 - SYS_SPLICE = 5263 - SYS_SYNC_FILE_RANGE = 5264 - SYS_TEE = 5265 - SYS_VMSPLICE = 5266 - SYS_MOVE_PAGES = 5267 - SYS_SET_ROBUST_LIST = 5268 - SYS_GET_ROBUST_LIST = 5269 - SYS_KEXEC_LOAD = 5270 - SYS_GETCPU = 5271 - SYS_EPOLL_PWAIT = 5272 - SYS_IOPRIO_SET = 5273 - SYS_IOPRIO_GET = 5274 - SYS_UTIMENSAT = 5275 - SYS_SIGNALFD = 5276 - SYS_TIMERFD = 5277 - SYS_EVENTFD = 5278 - SYS_FALLOCATE = 5279 - SYS_TIMERFD_CREATE = 5280 - SYS_TIMERFD_GETTIME = 5281 - SYS_TIMERFD_SETTIME = 5282 - SYS_SIGNALFD4 = 5283 - SYS_EVENTFD2 = 5284 - SYS_EPOLL_CREATE1 = 5285 - SYS_DUP3 = 5286 - SYS_PIPE2 = 5287 - SYS_INOTIFY_INIT1 = 5288 - SYS_PREADV = 5289 - SYS_PWRITEV = 5290 - SYS_RT_TGSIGQUEUEINFO = 5291 - SYS_PERF_EVENT_OPEN = 5292 - SYS_ACCEPT4 = 5293 - SYS_RECVMMSG = 5294 - SYS_FANOTIFY_INIT = 5295 - SYS_FANOTIFY_MARK = 5296 - SYS_PRLIMIT64 = 5297 - SYS_NAME_TO_HANDLE_AT = 5298 - SYS_OPEN_BY_HANDLE_AT = 5299 - SYS_CLOCK_ADJTIME = 5300 - SYS_SYNCFS = 5301 - SYS_SENDMMSG = 5302 - SYS_SETNS = 5303 - SYS_PROCESS_VM_READV = 5304 - SYS_PROCESS_VM_WRITEV = 5305 - SYS_KCMP = 5306 - SYS_FINIT_MODULE = 5307 - SYS_GETDENTS64 = 5308 - SYS_SCHED_SETATTR = 5309 - SYS_SCHED_GETATTR = 5310 - SYS_RENAMEAT2 = 5311 - SYS_SECCOMP = 5312 - SYS_GETRANDOM = 5313 - SYS_MEMFD_CREATE = 5314 - SYS_BPF = 5315 - SYS_EXECVEAT = 5316 - SYS_USERFAULTFD = 5317 - SYS_MEMBARRIER = 5318 - SYS_MLOCK2 = 5319 - SYS_COPY_FILE_RANGE = 5320 - SYS_PREADV2 = 5321 - SYS_PWRITEV2 = 5322 - SYS_PKEY_MPROTECT = 5323 - SYS_PKEY_ALLOC = 5324 - SYS_PKEY_FREE = 5325 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go deleted file mode 100644 index d1b872a..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go +++ /dev/null @@ -1,334 +0,0 @@ -// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build mips64le,linux - -package unix - -const ( - SYS_READ = 5000 - SYS_WRITE = 5001 - SYS_OPEN = 5002 - SYS_CLOSE = 5003 - SYS_STAT = 5004 - SYS_FSTAT = 5005 - SYS_LSTAT = 5006 - SYS_POLL = 5007 - SYS_LSEEK = 5008 - SYS_MMAP = 5009 - SYS_MPROTECT = 5010 - SYS_MUNMAP = 5011 - SYS_BRK = 5012 - SYS_RT_SIGACTION = 5013 - SYS_RT_SIGPROCMASK = 5014 - SYS_IOCTL = 5015 - SYS_PREAD64 = 5016 - SYS_PWRITE64 = 5017 - SYS_READV = 5018 - SYS_WRITEV = 5019 - SYS_ACCESS = 5020 - SYS_PIPE = 5021 - SYS__NEWSELECT = 5022 - SYS_SCHED_YIELD = 5023 - SYS_MREMAP = 5024 - SYS_MSYNC = 5025 - SYS_MINCORE = 5026 - SYS_MADVISE = 5027 - SYS_SHMGET = 5028 - SYS_SHMAT = 5029 - SYS_SHMCTL = 5030 - SYS_DUP = 5031 - SYS_DUP2 = 5032 - SYS_PAUSE = 5033 - SYS_NANOSLEEP = 5034 - SYS_GETITIMER = 5035 - SYS_SETITIMER = 5036 - SYS_ALARM = 5037 - SYS_GETPID = 5038 - SYS_SENDFILE = 5039 - SYS_SOCKET = 5040 - SYS_CONNECT = 5041 - SYS_ACCEPT = 5042 - SYS_SENDTO = 5043 - SYS_RECVFROM = 5044 - SYS_SENDMSG = 5045 - SYS_RECVMSG = 5046 - SYS_SHUTDOWN = 5047 - SYS_BIND = 5048 - SYS_LISTEN = 5049 - SYS_GETSOCKNAME = 5050 - SYS_GETPEERNAME = 5051 - SYS_SOCKETPAIR = 5052 - SYS_SETSOCKOPT = 5053 - SYS_GETSOCKOPT = 5054 - SYS_CLONE = 5055 - SYS_FORK = 5056 - SYS_EXECVE = 5057 - SYS_EXIT = 5058 - SYS_WAIT4 = 5059 - SYS_KILL = 5060 - SYS_UNAME = 5061 - SYS_SEMGET = 5062 - SYS_SEMOP = 5063 - SYS_SEMCTL = 5064 - SYS_SHMDT = 5065 - SYS_MSGGET = 5066 - SYS_MSGSND = 5067 - SYS_MSGRCV = 5068 - SYS_MSGCTL = 5069 - SYS_FCNTL = 5070 - SYS_FLOCK = 5071 - SYS_FSYNC = 5072 - SYS_FDATASYNC = 5073 - SYS_TRUNCATE = 5074 - SYS_FTRUNCATE = 5075 - SYS_GETDENTS = 5076 - SYS_GETCWD = 5077 - SYS_CHDIR = 5078 - SYS_FCHDIR = 5079 - SYS_RENAME = 5080 - SYS_MKDIR = 5081 - SYS_RMDIR = 5082 - SYS_CREAT = 5083 - SYS_LINK = 5084 - SYS_UNLINK = 5085 - SYS_SYMLINK = 5086 - SYS_READLINK = 5087 - SYS_CHMOD = 5088 - SYS_FCHMOD = 5089 - SYS_CHOWN = 5090 - SYS_FCHOWN = 5091 - SYS_LCHOWN = 5092 - SYS_UMASK = 5093 - SYS_GETTIMEOFDAY = 5094 - SYS_GETRLIMIT = 5095 - SYS_GETRUSAGE = 5096 - SYS_SYSINFO = 5097 - SYS_TIMES = 5098 - SYS_PTRACE = 5099 - SYS_GETUID = 5100 - SYS_SYSLOG = 5101 - SYS_GETGID = 5102 - SYS_SETUID = 5103 - SYS_SETGID = 5104 - SYS_GETEUID = 5105 - SYS_GETEGID = 5106 - SYS_SETPGID = 5107 - SYS_GETPPID = 5108 - SYS_GETPGRP = 5109 - SYS_SETSID = 5110 - SYS_SETREUID = 5111 - SYS_SETREGID = 5112 - SYS_GETGROUPS = 5113 - SYS_SETGROUPS = 5114 - SYS_SETRESUID = 5115 - SYS_GETRESUID = 5116 - SYS_SETRESGID = 5117 - SYS_GETRESGID = 5118 - SYS_GETPGID = 5119 - SYS_SETFSUID = 5120 - SYS_SETFSGID = 5121 - SYS_GETSID = 5122 - SYS_CAPGET = 5123 - SYS_CAPSET = 5124 - SYS_RT_SIGPENDING = 5125 - SYS_RT_SIGTIMEDWAIT = 5126 - SYS_RT_SIGQUEUEINFO = 5127 - SYS_RT_SIGSUSPEND = 5128 - SYS_SIGALTSTACK = 5129 - SYS_UTIME = 5130 - SYS_MKNOD = 5131 - SYS_PERSONALITY = 5132 - SYS_USTAT = 5133 - SYS_STATFS = 5134 - SYS_FSTATFS = 5135 - SYS_SYSFS = 5136 - SYS_GETPRIORITY = 5137 - SYS_SETPRIORITY = 5138 - SYS_SCHED_SETPARAM = 5139 - SYS_SCHED_GETPARAM = 5140 - SYS_SCHED_SETSCHEDULER = 5141 - SYS_SCHED_GETSCHEDULER = 5142 - SYS_SCHED_GET_PRIORITY_MAX = 5143 - SYS_SCHED_GET_PRIORITY_MIN = 5144 - SYS_SCHED_RR_GET_INTERVAL = 5145 - SYS_MLOCK = 5146 - SYS_MUNLOCK = 5147 - SYS_MLOCKALL = 5148 - SYS_MUNLOCKALL = 5149 - SYS_VHANGUP = 5150 - SYS_PIVOT_ROOT = 5151 - SYS__SYSCTL = 5152 - SYS_PRCTL = 5153 - SYS_ADJTIMEX = 5154 - SYS_SETRLIMIT = 5155 - SYS_CHROOT = 5156 - SYS_SYNC = 5157 - SYS_ACCT = 5158 - SYS_SETTIMEOFDAY = 5159 - SYS_MOUNT = 5160 - SYS_UMOUNT2 = 5161 - SYS_SWAPON = 5162 - SYS_SWAPOFF = 5163 - SYS_REBOOT = 5164 - SYS_SETHOSTNAME = 5165 - SYS_SETDOMAINNAME = 5166 - SYS_CREATE_MODULE = 5167 - SYS_INIT_MODULE = 5168 - SYS_DELETE_MODULE = 5169 - SYS_GET_KERNEL_SYMS = 5170 - SYS_QUERY_MODULE = 5171 - SYS_QUOTACTL = 5172 - SYS_NFSSERVCTL = 5173 - SYS_GETPMSG = 5174 - SYS_PUTPMSG = 5175 - SYS_AFS_SYSCALL = 5176 - SYS_RESERVED177 = 5177 - SYS_GETTID = 5178 - SYS_READAHEAD = 5179 - SYS_SETXATTR = 5180 - SYS_LSETXATTR = 5181 - SYS_FSETXATTR = 5182 - SYS_GETXATTR = 5183 - SYS_LGETXATTR = 5184 - SYS_FGETXATTR = 5185 - SYS_LISTXATTR = 5186 - SYS_LLISTXATTR = 5187 - SYS_FLISTXATTR = 5188 - SYS_REMOVEXATTR = 5189 - SYS_LREMOVEXATTR = 5190 - SYS_FREMOVEXATTR = 5191 - SYS_TKILL = 5192 - SYS_RESERVED193 = 5193 - SYS_FUTEX = 5194 - SYS_SCHED_SETAFFINITY = 5195 - SYS_SCHED_GETAFFINITY = 5196 - SYS_CACHEFLUSH = 5197 - SYS_CACHECTL = 5198 - SYS_SYSMIPS = 5199 - SYS_IO_SETUP = 5200 - SYS_IO_DESTROY = 5201 - SYS_IO_GETEVENTS = 5202 - SYS_IO_SUBMIT = 5203 - SYS_IO_CANCEL = 5204 - SYS_EXIT_GROUP = 5205 - SYS_LOOKUP_DCOOKIE = 5206 - SYS_EPOLL_CREATE = 5207 - SYS_EPOLL_CTL = 5208 - SYS_EPOLL_WAIT = 5209 - SYS_REMAP_FILE_PAGES = 5210 - SYS_RT_SIGRETURN = 5211 - SYS_SET_TID_ADDRESS = 5212 - SYS_RESTART_SYSCALL = 5213 - SYS_SEMTIMEDOP = 5214 - SYS_FADVISE64 = 5215 - SYS_TIMER_CREATE = 5216 - SYS_TIMER_SETTIME = 5217 - SYS_TIMER_GETTIME = 5218 - SYS_TIMER_GETOVERRUN = 5219 - SYS_TIMER_DELETE = 5220 - SYS_CLOCK_SETTIME = 5221 - SYS_CLOCK_GETTIME = 5222 - SYS_CLOCK_GETRES = 5223 - SYS_CLOCK_NANOSLEEP = 5224 - SYS_TGKILL = 5225 - SYS_UTIMES = 5226 - SYS_MBIND = 5227 - SYS_GET_MEMPOLICY = 5228 - SYS_SET_MEMPOLICY = 5229 - SYS_MQ_OPEN = 5230 - SYS_MQ_UNLINK = 5231 - SYS_MQ_TIMEDSEND = 5232 - SYS_MQ_TIMEDRECEIVE = 5233 - SYS_MQ_NOTIFY = 5234 - SYS_MQ_GETSETATTR = 5235 - SYS_VSERVER = 5236 - SYS_WAITID = 5237 - SYS_ADD_KEY = 5239 - SYS_REQUEST_KEY = 5240 - SYS_KEYCTL = 5241 - SYS_SET_THREAD_AREA = 5242 - SYS_INOTIFY_INIT = 5243 - SYS_INOTIFY_ADD_WATCH = 5244 - SYS_INOTIFY_RM_WATCH = 5245 - SYS_MIGRATE_PAGES = 5246 - SYS_OPENAT = 5247 - SYS_MKDIRAT = 5248 - SYS_MKNODAT = 5249 - SYS_FCHOWNAT = 5250 - SYS_FUTIMESAT = 5251 - SYS_NEWFSTATAT = 5252 - SYS_UNLINKAT = 5253 - SYS_RENAMEAT = 5254 - SYS_LINKAT = 5255 - SYS_SYMLINKAT = 5256 - SYS_READLINKAT = 5257 - SYS_FCHMODAT = 5258 - SYS_FACCESSAT = 5259 - SYS_PSELECT6 = 5260 - SYS_PPOLL = 5261 - SYS_UNSHARE = 5262 - SYS_SPLICE = 5263 - SYS_SYNC_FILE_RANGE = 5264 - SYS_TEE = 5265 - SYS_VMSPLICE = 5266 - SYS_MOVE_PAGES = 5267 - SYS_SET_ROBUST_LIST = 5268 - SYS_GET_ROBUST_LIST = 5269 - SYS_KEXEC_LOAD = 5270 - SYS_GETCPU = 5271 - SYS_EPOLL_PWAIT = 5272 - SYS_IOPRIO_SET = 5273 - SYS_IOPRIO_GET = 5274 - SYS_UTIMENSAT = 5275 - SYS_SIGNALFD = 5276 - SYS_TIMERFD = 5277 - SYS_EVENTFD = 5278 - SYS_FALLOCATE = 5279 - SYS_TIMERFD_CREATE = 5280 - SYS_TIMERFD_GETTIME = 5281 - SYS_TIMERFD_SETTIME = 5282 - SYS_SIGNALFD4 = 5283 - SYS_EVENTFD2 = 5284 - SYS_EPOLL_CREATE1 = 5285 - SYS_DUP3 = 5286 - SYS_PIPE2 = 5287 - SYS_INOTIFY_INIT1 = 5288 - SYS_PREADV = 5289 - SYS_PWRITEV = 5290 - SYS_RT_TGSIGQUEUEINFO = 5291 - SYS_PERF_EVENT_OPEN = 5292 - SYS_ACCEPT4 = 5293 - SYS_RECVMMSG = 5294 - SYS_FANOTIFY_INIT = 5295 - SYS_FANOTIFY_MARK = 5296 - SYS_PRLIMIT64 = 5297 - SYS_NAME_TO_HANDLE_AT = 5298 - SYS_OPEN_BY_HANDLE_AT = 5299 - SYS_CLOCK_ADJTIME = 5300 - SYS_SYNCFS = 5301 - SYS_SENDMMSG = 5302 - SYS_SETNS = 5303 - SYS_PROCESS_VM_READV = 5304 - SYS_PROCESS_VM_WRITEV = 5305 - SYS_KCMP = 5306 - SYS_FINIT_MODULE = 5307 - SYS_GETDENTS64 = 5308 - SYS_SCHED_SETATTR = 5309 - SYS_SCHED_GETATTR = 5310 - SYS_RENAMEAT2 = 5311 - SYS_SECCOMP = 5312 - SYS_GETRANDOM = 5313 - SYS_MEMFD_CREATE = 5314 - SYS_BPF = 5315 - SYS_EXECVEAT = 5316 - SYS_USERFAULTFD = 5317 - SYS_MEMBARRIER = 5318 - SYS_MLOCK2 = 5319 - SYS_COPY_FILE_RANGE = 5320 - SYS_PREADV2 = 5321 - SYS_PWRITEV2 = 5322 - SYS_PKEY_MPROTECT = 5323 - SYS_PKEY_ALLOC = 5324 - SYS_PKEY_FREE = 5325 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go deleted file mode 100644 index 82ba20f..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go +++ /dev/null @@ -1,374 +0,0 @@ -// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build mipsle,linux - -package unix - -const ( - SYS_SYSCALL = 4000 - SYS_EXIT = 4001 - SYS_FORK = 4002 - SYS_READ = 4003 - SYS_WRITE = 4004 - SYS_OPEN = 4005 - SYS_CLOSE = 4006 - SYS_WAITPID = 4007 - SYS_CREAT = 4008 - SYS_LINK = 4009 - SYS_UNLINK = 4010 - SYS_EXECVE = 4011 - SYS_CHDIR = 4012 - SYS_TIME = 4013 - SYS_MKNOD = 4014 - SYS_CHMOD = 4015 - SYS_LCHOWN = 4016 - SYS_BREAK = 4017 - SYS_UNUSED18 = 4018 - SYS_LSEEK = 4019 - SYS_GETPID = 4020 - SYS_MOUNT = 4021 - SYS_UMOUNT = 4022 - SYS_SETUID = 4023 - SYS_GETUID = 4024 - SYS_STIME = 4025 - SYS_PTRACE = 4026 - SYS_ALARM = 4027 - SYS_UNUSED28 = 4028 - SYS_PAUSE = 4029 - SYS_UTIME = 4030 - SYS_STTY = 4031 - SYS_GTTY = 4032 - SYS_ACCESS = 4033 - SYS_NICE = 4034 - SYS_FTIME = 4035 - SYS_SYNC = 4036 - SYS_KILL = 4037 - SYS_RENAME = 4038 - SYS_MKDIR = 4039 - SYS_RMDIR = 4040 - SYS_DUP = 4041 - SYS_PIPE = 4042 - SYS_TIMES = 4043 - SYS_PROF = 4044 - SYS_BRK = 4045 - SYS_SETGID = 4046 - SYS_GETGID = 4047 - SYS_SIGNAL = 4048 - SYS_GETEUID = 4049 - SYS_GETEGID = 4050 - SYS_ACCT = 4051 - SYS_UMOUNT2 = 4052 - SYS_LOCK = 4053 - SYS_IOCTL = 4054 - SYS_FCNTL = 4055 - SYS_MPX = 4056 - SYS_SETPGID = 4057 - SYS_ULIMIT = 4058 - SYS_UNUSED59 = 4059 - SYS_UMASK = 4060 - SYS_CHROOT = 4061 - SYS_USTAT = 4062 - SYS_DUP2 = 4063 - SYS_GETPPID = 4064 - SYS_GETPGRP = 4065 - SYS_SETSID = 4066 - SYS_SIGACTION = 4067 - SYS_SGETMASK = 4068 - SYS_SSETMASK = 4069 - SYS_SETREUID = 4070 - SYS_SETREGID = 4071 - SYS_SIGSUSPEND = 4072 - SYS_SIGPENDING = 4073 - SYS_SETHOSTNAME = 4074 - SYS_SETRLIMIT = 4075 - SYS_GETRLIMIT = 4076 - SYS_GETRUSAGE = 4077 - SYS_GETTIMEOFDAY = 4078 - SYS_SETTIMEOFDAY = 4079 - SYS_GETGROUPS = 4080 - SYS_SETGROUPS = 4081 - SYS_RESERVED82 = 4082 - SYS_SYMLINK = 4083 - SYS_UNUSED84 = 4084 - SYS_READLINK = 4085 - SYS_USELIB = 4086 - SYS_SWAPON = 4087 - SYS_REBOOT = 4088 - SYS_READDIR = 4089 - SYS_MMAP = 4090 - SYS_MUNMAP = 4091 - SYS_TRUNCATE = 4092 - SYS_FTRUNCATE = 4093 - SYS_FCHMOD = 4094 - SYS_FCHOWN = 4095 - SYS_GETPRIORITY = 4096 - SYS_SETPRIORITY = 4097 - SYS_PROFIL = 4098 - SYS_STATFS = 4099 - SYS_FSTATFS = 4100 - SYS_IOPERM = 4101 - SYS_SOCKETCALL = 4102 - SYS_SYSLOG = 4103 - SYS_SETITIMER = 4104 - SYS_GETITIMER = 4105 - SYS_STAT = 4106 - SYS_LSTAT = 4107 - SYS_FSTAT = 4108 - SYS_UNUSED109 = 4109 - SYS_IOPL = 4110 - SYS_VHANGUP = 4111 - SYS_IDLE = 4112 - SYS_VM86 = 4113 - SYS_WAIT4 = 4114 - SYS_SWAPOFF = 4115 - SYS_SYSINFO = 4116 - SYS_IPC = 4117 - SYS_FSYNC = 4118 - SYS_SIGRETURN = 4119 - SYS_CLONE = 4120 - SYS_SETDOMAINNAME = 4121 - SYS_UNAME = 4122 - SYS_MODIFY_LDT = 4123 - SYS_ADJTIMEX = 4124 - SYS_MPROTECT = 4125 - SYS_SIGPROCMASK = 4126 - SYS_CREATE_MODULE = 4127 - SYS_INIT_MODULE = 4128 - SYS_DELETE_MODULE = 4129 - SYS_GET_KERNEL_SYMS = 4130 - SYS_QUOTACTL = 4131 - SYS_GETPGID = 4132 - SYS_FCHDIR = 4133 - SYS_BDFLUSH = 4134 - SYS_SYSFS = 4135 - SYS_PERSONALITY = 4136 - SYS_AFS_SYSCALL = 4137 - SYS_SETFSUID = 4138 - SYS_SETFSGID = 4139 - SYS__LLSEEK = 4140 - SYS_GETDENTS = 4141 - SYS__NEWSELECT = 4142 - SYS_FLOCK = 4143 - SYS_MSYNC = 4144 - SYS_READV = 4145 - SYS_WRITEV = 4146 - SYS_CACHEFLUSH = 4147 - SYS_CACHECTL = 4148 - SYS_SYSMIPS = 4149 - SYS_UNUSED150 = 4150 - SYS_GETSID = 4151 - SYS_FDATASYNC = 4152 - SYS__SYSCTL = 4153 - SYS_MLOCK = 4154 - SYS_MUNLOCK = 4155 - SYS_MLOCKALL = 4156 - SYS_MUNLOCKALL = 4157 - SYS_SCHED_SETPARAM = 4158 - SYS_SCHED_GETPARAM = 4159 - SYS_SCHED_SETSCHEDULER = 4160 - SYS_SCHED_GETSCHEDULER = 4161 - SYS_SCHED_YIELD = 4162 - SYS_SCHED_GET_PRIORITY_MAX = 4163 - SYS_SCHED_GET_PRIORITY_MIN = 4164 - SYS_SCHED_RR_GET_INTERVAL = 4165 - SYS_NANOSLEEP = 4166 - SYS_MREMAP = 4167 - SYS_ACCEPT = 4168 - SYS_BIND = 4169 - SYS_CONNECT = 4170 - SYS_GETPEERNAME = 4171 - SYS_GETSOCKNAME = 4172 - SYS_GETSOCKOPT = 4173 - SYS_LISTEN = 4174 - SYS_RECV = 4175 - SYS_RECVFROM = 4176 - SYS_RECVMSG = 4177 - SYS_SEND = 4178 - SYS_SENDMSG = 4179 - SYS_SENDTO = 4180 - SYS_SETSOCKOPT = 4181 - SYS_SHUTDOWN = 4182 - SYS_SOCKET = 4183 - SYS_SOCKETPAIR = 4184 - SYS_SETRESUID = 4185 - SYS_GETRESUID = 4186 - SYS_QUERY_MODULE = 4187 - SYS_POLL = 4188 - SYS_NFSSERVCTL = 4189 - SYS_SETRESGID = 4190 - SYS_GETRESGID = 4191 - SYS_PRCTL = 4192 - SYS_RT_SIGRETURN = 4193 - SYS_RT_SIGACTION = 4194 - SYS_RT_SIGPROCMASK = 4195 - SYS_RT_SIGPENDING = 4196 - SYS_RT_SIGTIMEDWAIT = 4197 - SYS_RT_SIGQUEUEINFO = 4198 - SYS_RT_SIGSUSPEND = 4199 - SYS_PREAD64 = 4200 - SYS_PWRITE64 = 4201 - SYS_CHOWN = 4202 - SYS_GETCWD = 4203 - SYS_CAPGET = 4204 - SYS_CAPSET = 4205 - SYS_SIGALTSTACK = 4206 - SYS_SENDFILE = 4207 - SYS_GETPMSG = 4208 - SYS_PUTPMSG = 4209 - SYS_MMAP2 = 4210 - SYS_TRUNCATE64 = 4211 - SYS_FTRUNCATE64 = 4212 - SYS_STAT64 = 4213 - SYS_LSTAT64 = 4214 - SYS_FSTAT64 = 4215 - SYS_PIVOT_ROOT = 4216 - SYS_MINCORE = 4217 - SYS_MADVISE = 4218 - SYS_GETDENTS64 = 4219 - SYS_FCNTL64 = 4220 - SYS_RESERVED221 = 4221 - SYS_GETTID = 4222 - SYS_READAHEAD = 4223 - SYS_SETXATTR = 4224 - SYS_LSETXATTR = 4225 - SYS_FSETXATTR = 4226 - SYS_GETXATTR = 4227 - SYS_LGETXATTR = 4228 - SYS_FGETXATTR = 4229 - SYS_LISTXATTR = 4230 - SYS_LLISTXATTR = 4231 - SYS_FLISTXATTR = 4232 - SYS_REMOVEXATTR = 4233 - SYS_LREMOVEXATTR = 4234 - SYS_FREMOVEXATTR = 4235 - SYS_TKILL = 4236 - SYS_SENDFILE64 = 4237 - SYS_FUTEX = 4238 - SYS_SCHED_SETAFFINITY = 4239 - SYS_SCHED_GETAFFINITY = 4240 - SYS_IO_SETUP = 4241 - SYS_IO_DESTROY = 4242 - SYS_IO_GETEVENTS = 4243 - SYS_IO_SUBMIT = 4244 - SYS_IO_CANCEL = 4245 - SYS_EXIT_GROUP = 4246 - SYS_LOOKUP_DCOOKIE = 4247 - SYS_EPOLL_CREATE = 4248 - SYS_EPOLL_CTL = 4249 - SYS_EPOLL_WAIT = 4250 - SYS_REMAP_FILE_PAGES = 4251 - SYS_SET_TID_ADDRESS = 4252 - SYS_RESTART_SYSCALL = 4253 - SYS_FADVISE64 = 4254 - SYS_STATFS64 = 4255 - SYS_FSTATFS64 = 4256 - SYS_TIMER_CREATE = 4257 - SYS_TIMER_SETTIME = 4258 - SYS_TIMER_GETTIME = 4259 - SYS_TIMER_GETOVERRUN = 4260 - SYS_TIMER_DELETE = 4261 - SYS_CLOCK_SETTIME = 4262 - SYS_CLOCK_GETTIME = 4263 - SYS_CLOCK_GETRES = 4264 - SYS_CLOCK_NANOSLEEP = 4265 - SYS_TGKILL = 4266 - SYS_UTIMES = 4267 - SYS_MBIND = 4268 - SYS_GET_MEMPOLICY = 4269 - SYS_SET_MEMPOLICY = 4270 - SYS_MQ_OPEN = 4271 - SYS_MQ_UNLINK = 4272 - SYS_MQ_TIMEDSEND = 4273 - SYS_MQ_TIMEDRECEIVE = 4274 - SYS_MQ_NOTIFY = 4275 - SYS_MQ_GETSETATTR = 4276 - SYS_VSERVER = 4277 - SYS_WAITID = 4278 - SYS_ADD_KEY = 4280 - SYS_REQUEST_KEY = 4281 - SYS_KEYCTL = 4282 - SYS_SET_THREAD_AREA = 4283 - SYS_INOTIFY_INIT = 4284 - SYS_INOTIFY_ADD_WATCH = 4285 - SYS_INOTIFY_RM_WATCH = 4286 - SYS_MIGRATE_PAGES = 4287 - SYS_OPENAT = 4288 - SYS_MKDIRAT = 4289 - SYS_MKNODAT = 4290 - SYS_FCHOWNAT = 4291 - SYS_FUTIMESAT = 4292 - SYS_FSTATAT64 = 4293 - SYS_UNLINKAT = 4294 - SYS_RENAMEAT = 4295 - SYS_LINKAT = 4296 - SYS_SYMLINKAT = 4297 - SYS_READLINKAT = 4298 - SYS_FCHMODAT = 4299 - SYS_FACCESSAT = 4300 - SYS_PSELECT6 = 4301 - SYS_PPOLL = 4302 - SYS_UNSHARE = 4303 - SYS_SPLICE = 4304 - SYS_SYNC_FILE_RANGE = 4305 - SYS_TEE = 4306 - SYS_VMSPLICE = 4307 - SYS_MOVE_PAGES = 4308 - SYS_SET_ROBUST_LIST = 4309 - SYS_GET_ROBUST_LIST = 4310 - SYS_KEXEC_LOAD = 4311 - SYS_GETCPU = 4312 - SYS_EPOLL_PWAIT = 4313 - SYS_IOPRIO_SET = 4314 - SYS_IOPRIO_GET = 4315 - SYS_UTIMENSAT = 4316 - SYS_SIGNALFD = 4317 - SYS_TIMERFD = 4318 - SYS_EVENTFD = 4319 - SYS_FALLOCATE = 4320 - SYS_TIMERFD_CREATE = 4321 - SYS_TIMERFD_GETTIME = 4322 - SYS_TIMERFD_SETTIME = 4323 - SYS_SIGNALFD4 = 4324 - SYS_EVENTFD2 = 4325 - SYS_EPOLL_CREATE1 = 4326 - SYS_DUP3 = 4327 - SYS_PIPE2 = 4328 - SYS_INOTIFY_INIT1 = 4329 - SYS_PREADV = 4330 - SYS_PWRITEV = 4331 - SYS_RT_TGSIGQUEUEINFO = 4332 - SYS_PERF_EVENT_OPEN = 4333 - SYS_ACCEPT4 = 4334 - SYS_RECVMMSG = 4335 - SYS_FANOTIFY_INIT = 4336 - SYS_FANOTIFY_MARK = 4337 - SYS_PRLIMIT64 = 4338 - SYS_NAME_TO_HANDLE_AT = 4339 - SYS_OPEN_BY_HANDLE_AT = 4340 - SYS_CLOCK_ADJTIME = 4341 - SYS_SYNCFS = 4342 - SYS_SENDMMSG = 4343 - SYS_SETNS = 4344 - SYS_PROCESS_VM_READV = 4345 - SYS_PROCESS_VM_WRITEV = 4346 - SYS_KCMP = 4347 - SYS_FINIT_MODULE = 4348 - SYS_SCHED_SETATTR = 4349 - SYS_SCHED_GETATTR = 4350 - SYS_RENAMEAT2 = 4351 - SYS_SECCOMP = 4352 - SYS_GETRANDOM = 4353 - SYS_MEMFD_CREATE = 4354 - SYS_BPF = 4355 - SYS_EXECVEAT = 4356 - SYS_USERFAULTFD = 4357 - SYS_MEMBARRIER = 4358 - SYS_MLOCK2 = 4359 - SYS_COPY_FILE_RANGE = 4360 - SYS_PREADV2 = 4361 - SYS_PWRITEV2 = 4362 - SYS_PKEY_MPROTECT = 4363 - SYS_PKEY_ALLOC = 4364 - SYS_PKEY_FREE = 4365 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go deleted file mode 100644 index 8944448..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go +++ /dev/null @@ -1,369 +0,0 @@ -// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build ppc64,linux - -package unix - -const ( - SYS_RESTART_SYSCALL = 0 - SYS_EXIT = 1 - SYS_FORK = 2 - SYS_READ = 3 - SYS_WRITE = 4 - SYS_OPEN = 5 - SYS_CLOSE = 6 - SYS_WAITPID = 7 - SYS_CREAT = 8 - SYS_LINK = 9 - SYS_UNLINK = 10 - SYS_EXECVE = 11 - SYS_CHDIR = 12 - SYS_TIME = 13 - SYS_MKNOD = 14 - SYS_CHMOD = 15 - SYS_LCHOWN = 16 - SYS_BREAK = 17 - SYS_OLDSTAT = 18 - SYS_LSEEK = 19 - SYS_GETPID = 20 - SYS_MOUNT = 21 - SYS_UMOUNT = 22 - SYS_SETUID = 23 - SYS_GETUID = 24 - SYS_STIME = 25 - SYS_PTRACE = 26 - SYS_ALARM = 27 - SYS_OLDFSTAT = 28 - SYS_PAUSE = 29 - SYS_UTIME = 30 - SYS_STTY = 31 - SYS_GTTY = 32 - SYS_ACCESS = 33 - SYS_NICE = 34 - SYS_FTIME = 35 - SYS_SYNC = 36 - SYS_KILL = 37 - SYS_RENAME = 38 - SYS_MKDIR = 39 - SYS_RMDIR = 40 - SYS_DUP = 41 - SYS_PIPE = 42 - SYS_TIMES = 43 - SYS_PROF = 44 - SYS_BRK = 45 - SYS_SETGID = 46 - SYS_GETGID = 47 - SYS_SIGNAL = 48 - SYS_GETEUID = 49 - SYS_GETEGID = 50 - SYS_ACCT = 51 - SYS_UMOUNT2 = 52 - SYS_LOCK = 53 - SYS_IOCTL = 54 - SYS_FCNTL = 55 - SYS_MPX = 56 - SYS_SETPGID = 57 - SYS_ULIMIT = 58 - SYS_OLDOLDUNAME = 59 - SYS_UMASK = 60 - SYS_CHROOT = 61 - SYS_USTAT = 62 - SYS_DUP2 = 63 - SYS_GETPPID = 64 - SYS_GETPGRP = 65 - SYS_SETSID = 66 - SYS_SIGACTION = 67 - SYS_SGETMASK = 68 - SYS_SSETMASK = 69 - SYS_SETREUID = 70 - SYS_SETREGID = 71 - SYS_SIGSUSPEND = 72 - SYS_SIGPENDING = 73 - SYS_SETHOSTNAME = 74 - SYS_SETRLIMIT = 75 - SYS_GETRLIMIT = 76 - SYS_GETRUSAGE = 77 - SYS_GETTIMEOFDAY = 78 - SYS_SETTIMEOFDAY = 79 - SYS_GETGROUPS = 80 - SYS_SETGROUPS = 81 - SYS_SELECT = 82 - SYS_SYMLINK = 83 - SYS_OLDLSTAT = 84 - SYS_READLINK = 85 - SYS_USELIB = 86 - SYS_SWAPON = 87 - SYS_REBOOT = 88 - SYS_READDIR = 89 - SYS_MMAP = 90 - SYS_MUNMAP = 91 - SYS_TRUNCATE = 92 - SYS_FTRUNCATE = 93 - SYS_FCHMOD = 94 - SYS_FCHOWN = 95 - SYS_GETPRIORITY = 96 - SYS_SETPRIORITY = 97 - SYS_PROFIL = 98 - SYS_STATFS = 99 - SYS_FSTATFS = 100 - SYS_IOPERM = 101 - SYS_SOCKETCALL = 102 - SYS_SYSLOG = 103 - SYS_SETITIMER = 104 - SYS_GETITIMER = 105 - SYS_STAT = 106 - SYS_LSTAT = 107 - SYS_FSTAT = 108 - SYS_OLDUNAME = 109 - SYS_IOPL = 110 - SYS_VHANGUP = 111 - SYS_IDLE = 112 - SYS_VM86 = 113 - SYS_WAIT4 = 114 - SYS_SWAPOFF = 115 - SYS_SYSINFO = 116 - SYS_IPC = 117 - SYS_FSYNC = 118 - SYS_SIGRETURN = 119 - SYS_CLONE = 120 - SYS_SETDOMAINNAME = 121 - SYS_UNAME = 122 - SYS_MODIFY_LDT = 123 - SYS_ADJTIMEX = 124 - SYS_MPROTECT = 125 - SYS_SIGPROCMASK = 126 - SYS_CREATE_MODULE = 127 - SYS_INIT_MODULE = 128 - SYS_DELETE_MODULE = 129 - SYS_GET_KERNEL_SYMS = 130 - SYS_QUOTACTL = 131 - SYS_GETPGID = 132 - SYS_FCHDIR = 133 - SYS_BDFLUSH = 134 - SYS_SYSFS = 135 - SYS_PERSONALITY = 136 - SYS_AFS_SYSCALL = 137 - SYS_SETFSUID = 138 - SYS_SETFSGID = 139 - SYS__LLSEEK = 140 - SYS_GETDENTS = 141 - SYS__NEWSELECT = 142 - SYS_FLOCK = 143 - SYS_MSYNC = 144 - SYS_READV = 145 - SYS_WRITEV = 146 - SYS_GETSID = 147 - SYS_FDATASYNC = 148 - SYS__SYSCTL = 149 - SYS_MLOCK = 150 - SYS_MUNLOCK = 151 - SYS_MLOCKALL = 152 - SYS_MUNLOCKALL = 153 - SYS_SCHED_SETPARAM = 154 - SYS_SCHED_GETPARAM = 155 - SYS_SCHED_SETSCHEDULER = 156 - SYS_SCHED_GETSCHEDULER = 157 - SYS_SCHED_YIELD = 158 - SYS_SCHED_GET_PRIORITY_MAX = 159 - SYS_SCHED_GET_PRIORITY_MIN = 160 - SYS_SCHED_RR_GET_INTERVAL = 161 - SYS_NANOSLEEP = 162 - SYS_MREMAP = 163 - SYS_SETRESUID = 164 - SYS_GETRESUID = 165 - SYS_QUERY_MODULE = 166 - SYS_POLL = 167 - SYS_NFSSERVCTL = 168 - SYS_SETRESGID = 169 - SYS_GETRESGID = 170 - SYS_PRCTL = 171 - SYS_RT_SIGRETURN = 172 - SYS_RT_SIGACTION = 173 - SYS_RT_SIGPROCMASK = 174 - SYS_RT_SIGPENDING = 175 - SYS_RT_SIGTIMEDWAIT = 176 - SYS_RT_SIGQUEUEINFO = 177 - SYS_RT_SIGSUSPEND = 178 - SYS_PREAD64 = 179 - SYS_PWRITE64 = 180 - SYS_CHOWN = 181 - SYS_GETCWD = 182 - SYS_CAPGET = 183 - SYS_CAPSET = 184 - SYS_SIGALTSTACK = 185 - SYS_SENDFILE = 186 - SYS_GETPMSG = 187 - SYS_PUTPMSG = 188 - SYS_VFORK = 189 - SYS_UGETRLIMIT = 190 - SYS_READAHEAD = 191 - SYS_PCICONFIG_READ = 198 - SYS_PCICONFIG_WRITE = 199 - SYS_PCICONFIG_IOBASE = 200 - SYS_MULTIPLEXER = 201 - SYS_GETDENTS64 = 202 - SYS_PIVOT_ROOT = 203 - SYS_MADVISE = 205 - SYS_MINCORE = 206 - SYS_GETTID = 207 - SYS_TKILL = 208 - SYS_SETXATTR = 209 - SYS_LSETXATTR = 210 - SYS_FSETXATTR = 211 - SYS_GETXATTR = 212 - SYS_LGETXATTR = 213 - SYS_FGETXATTR = 214 - SYS_LISTXATTR = 215 - SYS_LLISTXATTR = 216 - SYS_FLISTXATTR = 217 - SYS_REMOVEXATTR = 218 - SYS_LREMOVEXATTR = 219 - SYS_FREMOVEXATTR = 220 - SYS_FUTEX = 221 - SYS_SCHED_SETAFFINITY = 222 - SYS_SCHED_GETAFFINITY = 223 - SYS_TUXCALL = 225 - SYS_IO_SETUP = 227 - SYS_IO_DESTROY = 228 - SYS_IO_GETEVENTS = 229 - SYS_IO_SUBMIT = 230 - SYS_IO_CANCEL = 231 - SYS_SET_TID_ADDRESS = 232 - SYS_FADVISE64 = 233 - SYS_EXIT_GROUP = 234 - SYS_LOOKUP_DCOOKIE = 235 - SYS_EPOLL_CREATE = 236 - SYS_EPOLL_CTL = 237 - SYS_EPOLL_WAIT = 238 - SYS_REMAP_FILE_PAGES = 239 - SYS_TIMER_CREATE = 240 - SYS_TIMER_SETTIME = 241 - SYS_TIMER_GETTIME = 242 - SYS_TIMER_GETOVERRUN = 243 - SYS_TIMER_DELETE = 244 - SYS_CLOCK_SETTIME = 245 - SYS_CLOCK_GETTIME = 246 - SYS_CLOCK_GETRES = 247 - SYS_CLOCK_NANOSLEEP = 248 - SYS_SWAPCONTEXT = 249 - SYS_TGKILL = 250 - SYS_UTIMES = 251 - SYS_STATFS64 = 252 - SYS_FSTATFS64 = 253 - SYS_RTAS = 255 - SYS_SYS_DEBUG_SETCONTEXT = 256 - SYS_MIGRATE_PAGES = 258 - SYS_MBIND = 259 - SYS_GET_MEMPOLICY = 260 - SYS_SET_MEMPOLICY = 261 - SYS_MQ_OPEN = 262 - SYS_MQ_UNLINK = 263 - SYS_MQ_TIMEDSEND = 264 - SYS_MQ_TIMEDRECEIVE = 265 - SYS_MQ_NOTIFY = 266 - SYS_MQ_GETSETATTR = 267 - SYS_KEXEC_LOAD = 268 - SYS_ADD_KEY = 269 - SYS_REQUEST_KEY = 270 - SYS_KEYCTL = 271 - SYS_WAITID = 272 - SYS_IOPRIO_SET = 273 - SYS_IOPRIO_GET = 274 - SYS_INOTIFY_INIT = 275 - SYS_INOTIFY_ADD_WATCH = 276 - SYS_INOTIFY_RM_WATCH = 277 - SYS_SPU_RUN = 278 - SYS_SPU_CREATE = 279 - SYS_PSELECT6 = 280 - SYS_PPOLL = 281 - SYS_UNSHARE = 282 - SYS_SPLICE = 283 - SYS_TEE = 284 - SYS_VMSPLICE = 285 - SYS_OPENAT = 286 - SYS_MKDIRAT = 287 - SYS_MKNODAT = 288 - SYS_FCHOWNAT = 289 - SYS_FUTIMESAT = 290 - SYS_NEWFSTATAT = 291 - SYS_UNLINKAT = 292 - SYS_RENAMEAT = 293 - SYS_LINKAT = 294 - SYS_SYMLINKAT = 295 - SYS_READLINKAT = 296 - SYS_FCHMODAT = 297 - SYS_FACCESSAT = 298 - SYS_GET_ROBUST_LIST = 299 - SYS_SET_ROBUST_LIST = 300 - SYS_MOVE_PAGES = 301 - SYS_GETCPU = 302 - SYS_EPOLL_PWAIT = 303 - SYS_UTIMENSAT = 304 - SYS_SIGNALFD = 305 - SYS_TIMERFD_CREATE = 306 - SYS_EVENTFD = 307 - SYS_SYNC_FILE_RANGE2 = 308 - SYS_FALLOCATE = 309 - SYS_SUBPAGE_PROT = 310 - SYS_TIMERFD_SETTIME = 311 - SYS_TIMERFD_GETTIME = 312 - SYS_SIGNALFD4 = 313 - SYS_EVENTFD2 = 314 - SYS_EPOLL_CREATE1 = 315 - SYS_DUP3 = 316 - SYS_PIPE2 = 317 - SYS_INOTIFY_INIT1 = 318 - SYS_PERF_EVENT_OPEN = 319 - SYS_PREADV = 320 - SYS_PWRITEV = 321 - SYS_RT_TGSIGQUEUEINFO = 322 - SYS_FANOTIFY_INIT = 323 - SYS_FANOTIFY_MARK = 324 - SYS_PRLIMIT64 = 325 - SYS_SOCKET = 326 - SYS_BIND = 327 - SYS_CONNECT = 328 - SYS_LISTEN = 329 - SYS_ACCEPT = 330 - SYS_GETSOCKNAME = 331 - SYS_GETPEERNAME = 332 - SYS_SOCKETPAIR = 333 - SYS_SEND = 334 - SYS_SENDTO = 335 - SYS_RECV = 336 - SYS_RECVFROM = 337 - SYS_SHUTDOWN = 338 - SYS_SETSOCKOPT = 339 - SYS_GETSOCKOPT = 340 - SYS_SENDMSG = 341 - SYS_RECVMSG = 342 - SYS_RECVMMSG = 343 - SYS_ACCEPT4 = 344 - SYS_NAME_TO_HANDLE_AT = 345 - SYS_OPEN_BY_HANDLE_AT = 346 - SYS_CLOCK_ADJTIME = 347 - SYS_SYNCFS = 348 - SYS_SENDMMSG = 349 - SYS_SETNS = 350 - SYS_PROCESS_VM_READV = 351 - SYS_PROCESS_VM_WRITEV = 352 - SYS_FINIT_MODULE = 353 - SYS_KCMP = 354 - SYS_SCHED_SETATTR = 355 - SYS_SCHED_GETATTR = 356 - SYS_RENAMEAT2 = 357 - SYS_SECCOMP = 358 - SYS_GETRANDOM = 359 - SYS_MEMFD_CREATE = 360 - SYS_BPF = 361 - SYS_EXECVEAT = 362 - SYS_SWITCH_ENDIAN = 363 - SYS_USERFAULTFD = 364 - SYS_MEMBARRIER = 365 - SYS_MLOCK2 = 378 - SYS_COPY_FILE_RANGE = 379 - SYS_PREADV2 = 380 - SYS_PWRITEV2 = 381 - SYS_KEXEC_FILE_LOAD = 382 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go deleted file mode 100644 index 90a039b..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go +++ /dev/null @@ -1,369 +0,0 @@ -// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build ppc64le,linux - -package unix - -const ( - SYS_RESTART_SYSCALL = 0 - SYS_EXIT = 1 - SYS_FORK = 2 - SYS_READ = 3 - SYS_WRITE = 4 - SYS_OPEN = 5 - SYS_CLOSE = 6 - SYS_WAITPID = 7 - SYS_CREAT = 8 - SYS_LINK = 9 - SYS_UNLINK = 10 - SYS_EXECVE = 11 - SYS_CHDIR = 12 - SYS_TIME = 13 - SYS_MKNOD = 14 - SYS_CHMOD = 15 - SYS_LCHOWN = 16 - SYS_BREAK = 17 - SYS_OLDSTAT = 18 - SYS_LSEEK = 19 - SYS_GETPID = 20 - SYS_MOUNT = 21 - SYS_UMOUNT = 22 - SYS_SETUID = 23 - SYS_GETUID = 24 - SYS_STIME = 25 - SYS_PTRACE = 26 - SYS_ALARM = 27 - SYS_OLDFSTAT = 28 - SYS_PAUSE = 29 - SYS_UTIME = 30 - SYS_STTY = 31 - SYS_GTTY = 32 - SYS_ACCESS = 33 - SYS_NICE = 34 - SYS_FTIME = 35 - SYS_SYNC = 36 - SYS_KILL = 37 - SYS_RENAME = 38 - SYS_MKDIR = 39 - SYS_RMDIR = 40 - SYS_DUP = 41 - SYS_PIPE = 42 - SYS_TIMES = 43 - SYS_PROF = 44 - SYS_BRK = 45 - SYS_SETGID = 46 - SYS_GETGID = 47 - SYS_SIGNAL = 48 - SYS_GETEUID = 49 - SYS_GETEGID = 50 - SYS_ACCT = 51 - SYS_UMOUNT2 = 52 - SYS_LOCK = 53 - SYS_IOCTL = 54 - SYS_FCNTL = 55 - SYS_MPX = 56 - SYS_SETPGID = 57 - SYS_ULIMIT = 58 - SYS_OLDOLDUNAME = 59 - SYS_UMASK = 60 - SYS_CHROOT = 61 - SYS_USTAT = 62 - SYS_DUP2 = 63 - SYS_GETPPID = 64 - SYS_GETPGRP = 65 - SYS_SETSID = 66 - SYS_SIGACTION = 67 - SYS_SGETMASK = 68 - SYS_SSETMASK = 69 - SYS_SETREUID = 70 - SYS_SETREGID = 71 - SYS_SIGSUSPEND = 72 - SYS_SIGPENDING = 73 - SYS_SETHOSTNAME = 74 - SYS_SETRLIMIT = 75 - SYS_GETRLIMIT = 76 - SYS_GETRUSAGE = 77 - SYS_GETTIMEOFDAY = 78 - SYS_SETTIMEOFDAY = 79 - SYS_GETGROUPS = 80 - SYS_SETGROUPS = 81 - SYS_SELECT = 82 - SYS_SYMLINK = 83 - SYS_OLDLSTAT = 84 - SYS_READLINK = 85 - SYS_USELIB = 86 - SYS_SWAPON = 87 - SYS_REBOOT = 88 - SYS_READDIR = 89 - SYS_MMAP = 90 - SYS_MUNMAP = 91 - SYS_TRUNCATE = 92 - SYS_FTRUNCATE = 93 - SYS_FCHMOD = 94 - SYS_FCHOWN = 95 - SYS_GETPRIORITY = 96 - SYS_SETPRIORITY = 97 - SYS_PROFIL = 98 - SYS_STATFS = 99 - SYS_FSTATFS = 100 - SYS_IOPERM = 101 - SYS_SOCKETCALL = 102 - SYS_SYSLOG = 103 - SYS_SETITIMER = 104 - SYS_GETITIMER = 105 - SYS_STAT = 106 - SYS_LSTAT = 107 - SYS_FSTAT = 108 - SYS_OLDUNAME = 109 - SYS_IOPL = 110 - SYS_VHANGUP = 111 - SYS_IDLE = 112 - SYS_VM86 = 113 - SYS_WAIT4 = 114 - SYS_SWAPOFF = 115 - SYS_SYSINFO = 116 - SYS_IPC = 117 - SYS_FSYNC = 118 - SYS_SIGRETURN = 119 - SYS_CLONE = 120 - SYS_SETDOMAINNAME = 121 - SYS_UNAME = 122 - SYS_MODIFY_LDT = 123 - SYS_ADJTIMEX = 124 - SYS_MPROTECT = 125 - SYS_SIGPROCMASK = 126 - SYS_CREATE_MODULE = 127 - SYS_INIT_MODULE = 128 - SYS_DELETE_MODULE = 129 - SYS_GET_KERNEL_SYMS = 130 - SYS_QUOTACTL = 131 - SYS_GETPGID = 132 - SYS_FCHDIR = 133 - SYS_BDFLUSH = 134 - SYS_SYSFS = 135 - SYS_PERSONALITY = 136 - SYS_AFS_SYSCALL = 137 - SYS_SETFSUID = 138 - SYS_SETFSGID = 139 - SYS__LLSEEK = 140 - SYS_GETDENTS = 141 - SYS__NEWSELECT = 142 - SYS_FLOCK = 143 - SYS_MSYNC = 144 - SYS_READV = 145 - SYS_WRITEV = 146 - SYS_GETSID = 147 - SYS_FDATASYNC = 148 - SYS__SYSCTL = 149 - SYS_MLOCK = 150 - SYS_MUNLOCK = 151 - SYS_MLOCKALL = 152 - SYS_MUNLOCKALL = 153 - SYS_SCHED_SETPARAM = 154 - SYS_SCHED_GETPARAM = 155 - SYS_SCHED_SETSCHEDULER = 156 - SYS_SCHED_GETSCHEDULER = 157 - SYS_SCHED_YIELD = 158 - SYS_SCHED_GET_PRIORITY_MAX = 159 - SYS_SCHED_GET_PRIORITY_MIN = 160 - SYS_SCHED_RR_GET_INTERVAL = 161 - SYS_NANOSLEEP = 162 - SYS_MREMAP = 163 - SYS_SETRESUID = 164 - SYS_GETRESUID = 165 - SYS_QUERY_MODULE = 166 - SYS_POLL = 167 - SYS_NFSSERVCTL = 168 - SYS_SETRESGID = 169 - SYS_GETRESGID = 170 - SYS_PRCTL = 171 - SYS_RT_SIGRETURN = 172 - SYS_RT_SIGACTION = 173 - SYS_RT_SIGPROCMASK = 174 - SYS_RT_SIGPENDING = 175 - SYS_RT_SIGTIMEDWAIT = 176 - SYS_RT_SIGQUEUEINFO = 177 - SYS_RT_SIGSUSPEND = 178 - SYS_PREAD64 = 179 - SYS_PWRITE64 = 180 - SYS_CHOWN = 181 - SYS_GETCWD = 182 - SYS_CAPGET = 183 - SYS_CAPSET = 184 - SYS_SIGALTSTACK = 185 - SYS_SENDFILE = 186 - SYS_GETPMSG = 187 - SYS_PUTPMSG = 188 - SYS_VFORK = 189 - SYS_UGETRLIMIT = 190 - SYS_READAHEAD = 191 - SYS_PCICONFIG_READ = 198 - SYS_PCICONFIG_WRITE = 199 - SYS_PCICONFIG_IOBASE = 200 - SYS_MULTIPLEXER = 201 - SYS_GETDENTS64 = 202 - SYS_PIVOT_ROOT = 203 - SYS_MADVISE = 205 - SYS_MINCORE = 206 - SYS_GETTID = 207 - SYS_TKILL = 208 - SYS_SETXATTR = 209 - SYS_LSETXATTR = 210 - SYS_FSETXATTR = 211 - SYS_GETXATTR = 212 - SYS_LGETXATTR = 213 - SYS_FGETXATTR = 214 - SYS_LISTXATTR = 215 - SYS_LLISTXATTR = 216 - SYS_FLISTXATTR = 217 - SYS_REMOVEXATTR = 218 - SYS_LREMOVEXATTR = 219 - SYS_FREMOVEXATTR = 220 - SYS_FUTEX = 221 - SYS_SCHED_SETAFFINITY = 222 - SYS_SCHED_GETAFFINITY = 223 - SYS_TUXCALL = 225 - SYS_IO_SETUP = 227 - SYS_IO_DESTROY = 228 - SYS_IO_GETEVENTS = 229 - SYS_IO_SUBMIT = 230 - SYS_IO_CANCEL = 231 - SYS_SET_TID_ADDRESS = 232 - SYS_FADVISE64 = 233 - SYS_EXIT_GROUP = 234 - SYS_LOOKUP_DCOOKIE = 235 - SYS_EPOLL_CREATE = 236 - SYS_EPOLL_CTL = 237 - SYS_EPOLL_WAIT = 238 - SYS_REMAP_FILE_PAGES = 239 - SYS_TIMER_CREATE = 240 - SYS_TIMER_SETTIME = 241 - SYS_TIMER_GETTIME = 242 - SYS_TIMER_GETOVERRUN = 243 - SYS_TIMER_DELETE = 244 - SYS_CLOCK_SETTIME = 245 - SYS_CLOCK_GETTIME = 246 - SYS_CLOCK_GETRES = 247 - SYS_CLOCK_NANOSLEEP = 248 - SYS_SWAPCONTEXT = 249 - SYS_TGKILL = 250 - SYS_UTIMES = 251 - SYS_STATFS64 = 252 - SYS_FSTATFS64 = 253 - SYS_RTAS = 255 - SYS_SYS_DEBUG_SETCONTEXT = 256 - SYS_MIGRATE_PAGES = 258 - SYS_MBIND = 259 - SYS_GET_MEMPOLICY = 260 - SYS_SET_MEMPOLICY = 261 - SYS_MQ_OPEN = 262 - SYS_MQ_UNLINK = 263 - SYS_MQ_TIMEDSEND = 264 - SYS_MQ_TIMEDRECEIVE = 265 - SYS_MQ_NOTIFY = 266 - SYS_MQ_GETSETATTR = 267 - SYS_KEXEC_LOAD = 268 - SYS_ADD_KEY = 269 - SYS_REQUEST_KEY = 270 - SYS_KEYCTL = 271 - SYS_WAITID = 272 - SYS_IOPRIO_SET = 273 - SYS_IOPRIO_GET = 274 - SYS_INOTIFY_INIT = 275 - SYS_INOTIFY_ADD_WATCH = 276 - SYS_INOTIFY_RM_WATCH = 277 - SYS_SPU_RUN = 278 - SYS_SPU_CREATE = 279 - SYS_PSELECT6 = 280 - SYS_PPOLL = 281 - SYS_UNSHARE = 282 - SYS_SPLICE = 283 - SYS_TEE = 284 - SYS_VMSPLICE = 285 - SYS_OPENAT = 286 - SYS_MKDIRAT = 287 - SYS_MKNODAT = 288 - SYS_FCHOWNAT = 289 - SYS_FUTIMESAT = 290 - SYS_NEWFSTATAT = 291 - SYS_UNLINKAT = 292 - SYS_RENAMEAT = 293 - SYS_LINKAT = 294 - SYS_SYMLINKAT = 295 - SYS_READLINKAT = 296 - SYS_FCHMODAT = 297 - SYS_FACCESSAT = 298 - SYS_GET_ROBUST_LIST = 299 - SYS_SET_ROBUST_LIST = 300 - SYS_MOVE_PAGES = 301 - SYS_GETCPU = 302 - SYS_EPOLL_PWAIT = 303 - SYS_UTIMENSAT = 304 - SYS_SIGNALFD = 305 - SYS_TIMERFD_CREATE = 306 - SYS_EVENTFD = 307 - SYS_SYNC_FILE_RANGE2 = 308 - SYS_FALLOCATE = 309 - SYS_SUBPAGE_PROT = 310 - SYS_TIMERFD_SETTIME = 311 - SYS_TIMERFD_GETTIME = 312 - SYS_SIGNALFD4 = 313 - SYS_EVENTFD2 = 314 - SYS_EPOLL_CREATE1 = 315 - SYS_DUP3 = 316 - SYS_PIPE2 = 317 - SYS_INOTIFY_INIT1 = 318 - SYS_PERF_EVENT_OPEN = 319 - SYS_PREADV = 320 - SYS_PWRITEV = 321 - SYS_RT_TGSIGQUEUEINFO = 322 - SYS_FANOTIFY_INIT = 323 - SYS_FANOTIFY_MARK = 324 - SYS_PRLIMIT64 = 325 - SYS_SOCKET = 326 - SYS_BIND = 327 - SYS_CONNECT = 328 - SYS_LISTEN = 329 - SYS_ACCEPT = 330 - SYS_GETSOCKNAME = 331 - SYS_GETPEERNAME = 332 - SYS_SOCKETPAIR = 333 - SYS_SEND = 334 - SYS_SENDTO = 335 - SYS_RECV = 336 - SYS_RECVFROM = 337 - SYS_SHUTDOWN = 338 - SYS_SETSOCKOPT = 339 - SYS_GETSOCKOPT = 340 - SYS_SENDMSG = 341 - SYS_RECVMSG = 342 - SYS_RECVMMSG = 343 - SYS_ACCEPT4 = 344 - SYS_NAME_TO_HANDLE_AT = 345 - SYS_OPEN_BY_HANDLE_AT = 346 - SYS_CLOCK_ADJTIME = 347 - SYS_SYNCFS = 348 - SYS_SENDMMSG = 349 - SYS_SETNS = 350 - SYS_PROCESS_VM_READV = 351 - SYS_PROCESS_VM_WRITEV = 352 - SYS_FINIT_MODULE = 353 - SYS_KCMP = 354 - SYS_SCHED_SETATTR = 355 - SYS_SCHED_GETATTR = 356 - SYS_RENAMEAT2 = 357 - SYS_SECCOMP = 358 - SYS_GETRANDOM = 359 - SYS_MEMFD_CREATE = 360 - SYS_BPF = 361 - SYS_EXECVEAT = 362 - SYS_SWITCH_ENDIAN = 363 - SYS_USERFAULTFD = 364 - SYS_MEMBARRIER = 365 - SYS_MLOCK2 = 378 - SYS_COPY_FILE_RANGE = 379 - SYS_PREADV2 = 380 - SYS_PWRITEV2 = 381 - SYS_KEXEC_FILE_LOAD = 382 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go deleted file mode 100644 index aab0cdb..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go +++ /dev/null @@ -1,331 +0,0 @@ -// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include -fsigned-char /tmp/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build s390x,linux - -package unix - -const ( - SYS_EXIT = 1 - SYS_FORK = 2 - SYS_READ = 3 - SYS_WRITE = 4 - SYS_OPEN = 5 - SYS_CLOSE = 6 - SYS_RESTART_SYSCALL = 7 - SYS_CREAT = 8 - SYS_LINK = 9 - SYS_UNLINK = 10 - SYS_EXECVE = 11 - SYS_CHDIR = 12 - SYS_MKNOD = 14 - SYS_CHMOD = 15 - SYS_LSEEK = 19 - SYS_GETPID = 20 - SYS_MOUNT = 21 - SYS_UMOUNT = 22 - SYS_PTRACE = 26 - SYS_ALARM = 27 - SYS_PAUSE = 29 - SYS_UTIME = 30 - SYS_ACCESS = 33 - SYS_NICE = 34 - SYS_SYNC = 36 - SYS_KILL = 37 - SYS_RENAME = 38 - SYS_MKDIR = 39 - SYS_RMDIR = 40 - SYS_DUP = 41 - SYS_PIPE = 42 - SYS_TIMES = 43 - SYS_BRK = 45 - SYS_SIGNAL = 48 - SYS_ACCT = 51 - SYS_UMOUNT2 = 52 - SYS_IOCTL = 54 - SYS_FCNTL = 55 - SYS_SETPGID = 57 - SYS_UMASK = 60 - SYS_CHROOT = 61 - SYS_USTAT = 62 - SYS_DUP2 = 63 - SYS_GETPPID = 64 - SYS_GETPGRP = 65 - SYS_SETSID = 66 - SYS_SIGACTION = 67 - SYS_SIGSUSPEND = 72 - SYS_SIGPENDING = 73 - SYS_SETHOSTNAME = 74 - SYS_SETRLIMIT = 75 - SYS_GETRUSAGE = 77 - SYS_GETTIMEOFDAY = 78 - SYS_SETTIMEOFDAY = 79 - SYS_SYMLINK = 83 - SYS_READLINK = 85 - SYS_USELIB = 86 - SYS_SWAPON = 87 - SYS_REBOOT = 88 - SYS_READDIR = 89 - SYS_MMAP = 90 - SYS_MUNMAP = 91 - SYS_TRUNCATE = 92 - SYS_FTRUNCATE = 93 - SYS_FCHMOD = 94 - SYS_GETPRIORITY = 96 - SYS_SETPRIORITY = 97 - SYS_STATFS = 99 - SYS_FSTATFS = 100 - SYS_SOCKETCALL = 102 - SYS_SYSLOG = 103 - SYS_SETITIMER = 104 - SYS_GETITIMER = 105 - SYS_STAT = 106 - SYS_LSTAT = 107 - SYS_FSTAT = 108 - SYS_LOOKUP_DCOOKIE = 110 - SYS_VHANGUP = 111 - SYS_IDLE = 112 - SYS_WAIT4 = 114 - SYS_SWAPOFF = 115 - SYS_SYSINFO = 116 - SYS_IPC = 117 - SYS_FSYNC = 118 - SYS_SIGRETURN = 119 - SYS_CLONE = 120 - SYS_SETDOMAINNAME = 121 - SYS_UNAME = 122 - SYS_ADJTIMEX = 124 - SYS_MPROTECT = 125 - SYS_SIGPROCMASK = 126 - SYS_CREATE_MODULE = 127 - SYS_INIT_MODULE = 128 - SYS_DELETE_MODULE = 129 - SYS_GET_KERNEL_SYMS = 130 - SYS_QUOTACTL = 131 - SYS_GETPGID = 132 - SYS_FCHDIR = 133 - SYS_BDFLUSH = 134 - SYS_SYSFS = 135 - SYS_PERSONALITY = 136 - SYS_AFS_SYSCALL = 137 - SYS_GETDENTS = 141 - SYS_FLOCK = 143 - SYS_MSYNC = 144 - SYS_READV = 145 - SYS_WRITEV = 146 - SYS_GETSID = 147 - SYS_FDATASYNC = 148 - SYS__SYSCTL = 149 - SYS_MLOCK = 150 - SYS_MUNLOCK = 151 - SYS_MLOCKALL = 152 - SYS_MUNLOCKALL = 153 - SYS_SCHED_SETPARAM = 154 - SYS_SCHED_GETPARAM = 155 - SYS_SCHED_SETSCHEDULER = 156 - SYS_SCHED_GETSCHEDULER = 157 - SYS_SCHED_YIELD = 158 - SYS_SCHED_GET_PRIORITY_MAX = 159 - SYS_SCHED_GET_PRIORITY_MIN = 160 - SYS_SCHED_RR_GET_INTERVAL = 161 - SYS_NANOSLEEP = 162 - SYS_MREMAP = 163 - SYS_QUERY_MODULE = 167 - SYS_POLL = 168 - SYS_NFSSERVCTL = 169 - SYS_PRCTL = 172 - SYS_RT_SIGRETURN = 173 - SYS_RT_SIGACTION = 174 - SYS_RT_SIGPROCMASK = 175 - SYS_RT_SIGPENDING = 176 - SYS_RT_SIGTIMEDWAIT = 177 - SYS_RT_SIGQUEUEINFO = 178 - SYS_RT_SIGSUSPEND = 179 - SYS_PREAD64 = 180 - SYS_PWRITE64 = 181 - SYS_GETCWD = 183 - SYS_CAPGET = 184 - SYS_CAPSET = 185 - SYS_SIGALTSTACK = 186 - SYS_SENDFILE = 187 - SYS_GETPMSG = 188 - SYS_PUTPMSG = 189 - SYS_VFORK = 190 - SYS_PIVOT_ROOT = 217 - SYS_MINCORE = 218 - SYS_MADVISE = 219 - SYS_GETDENTS64 = 220 - SYS_READAHEAD = 222 - SYS_SETXATTR = 224 - SYS_LSETXATTR = 225 - SYS_FSETXATTR = 226 - SYS_GETXATTR = 227 - SYS_LGETXATTR = 228 - SYS_FGETXATTR = 229 - SYS_LISTXATTR = 230 - SYS_LLISTXATTR = 231 - SYS_FLISTXATTR = 232 - SYS_REMOVEXATTR = 233 - SYS_LREMOVEXATTR = 234 - SYS_FREMOVEXATTR = 235 - SYS_GETTID = 236 - SYS_TKILL = 237 - SYS_FUTEX = 238 - SYS_SCHED_SETAFFINITY = 239 - SYS_SCHED_GETAFFINITY = 240 - SYS_TGKILL = 241 - SYS_IO_SETUP = 243 - SYS_IO_DESTROY = 244 - SYS_IO_GETEVENTS = 245 - SYS_IO_SUBMIT = 246 - SYS_IO_CANCEL = 247 - SYS_EXIT_GROUP = 248 - SYS_EPOLL_CREATE = 249 - SYS_EPOLL_CTL = 250 - SYS_EPOLL_WAIT = 251 - SYS_SET_TID_ADDRESS = 252 - SYS_FADVISE64 = 253 - SYS_TIMER_CREATE = 254 - SYS_TIMER_SETTIME = 255 - SYS_TIMER_GETTIME = 256 - SYS_TIMER_GETOVERRUN = 257 - SYS_TIMER_DELETE = 258 - SYS_CLOCK_SETTIME = 259 - SYS_CLOCK_GETTIME = 260 - SYS_CLOCK_GETRES = 261 - SYS_CLOCK_NANOSLEEP = 262 - SYS_STATFS64 = 265 - SYS_FSTATFS64 = 266 - SYS_REMAP_FILE_PAGES = 267 - SYS_MBIND = 268 - SYS_GET_MEMPOLICY = 269 - SYS_SET_MEMPOLICY = 270 - SYS_MQ_OPEN = 271 - SYS_MQ_UNLINK = 272 - SYS_MQ_TIMEDSEND = 273 - SYS_MQ_TIMEDRECEIVE = 274 - SYS_MQ_NOTIFY = 275 - SYS_MQ_GETSETATTR = 276 - SYS_KEXEC_LOAD = 277 - SYS_ADD_KEY = 278 - SYS_REQUEST_KEY = 279 - SYS_KEYCTL = 280 - SYS_WAITID = 281 - SYS_IOPRIO_SET = 282 - SYS_IOPRIO_GET = 283 - SYS_INOTIFY_INIT = 284 - SYS_INOTIFY_ADD_WATCH = 285 - SYS_INOTIFY_RM_WATCH = 286 - SYS_MIGRATE_PAGES = 287 - SYS_OPENAT = 288 - SYS_MKDIRAT = 289 - SYS_MKNODAT = 290 - SYS_FCHOWNAT = 291 - SYS_FUTIMESAT = 292 - SYS_UNLINKAT = 294 - SYS_RENAMEAT = 295 - SYS_LINKAT = 296 - SYS_SYMLINKAT = 297 - SYS_READLINKAT = 298 - SYS_FCHMODAT = 299 - SYS_FACCESSAT = 300 - SYS_PSELECT6 = 301 - SYS_PPOLL = 302 - SYS_UNSHARE = 303 - SYS_SET_ROBUST_LIST = 304 - SYS_GET_ROBUST_LIST = 305 - SYS_SPLICE = 306 - SYS_SYNC_FILE_RANGE = 307 - SYS_TEE = 308 - SYS_VMSPLICE = 309 - SYS_MOVE_PAGES = 310 - SYS_GETCPU = 311 - SYS_EPOLL_PWAIT = 312 - SYS_UTIMES = 313 - SYS_FALLOCATE = 314 - SYS_UTIMENSAT = 315 - SYS_SIGNALFD = 316 - SYS_TIMERFD = 317 - SYS_EVENTFD = 318 - SYS_TIMERFD_CREATE = 319 - SYS_TIMERFD_SETTIME = 320 - SYS_TIMERFD_GETTIME = 321 - SYS_SIGNALFD4 = 322 - SYS_EVENTFD2 = 323 - SYS_INOTIFY_INIT1 = 324 - SYS_PIPE2 = 325 - SYS_DUP3 = 326 - SYS_EPOLL_CREATE1 = 327 - SYS_PREADV = 328 - SYS_PWRITEV = 329 - SYS_RT_TGSIGQUEUEINFO = 330 - SYS_PERF_EVENT_OPEN = 331 - SYS_FANOTIFY_INIT = 332 - SYS_FANOTIFY_MARK = 333 - SYS_PRLIMIT64 = 334 - SYS_NAME_TO_HANDLE_AT = 335 - SYS_OPEN_BY_HANDLE_AT = 336 - SYS_CLOCK_ADJTIME = 337 - SYS_SYNCFS = 338 - SYS_SETNS = 339 - SYS_PROCESS_VM_READV = 340 - SYS_PROCESS_VM_WRITEV = 341 - SYS_S390_RUNTIME_INSTR = 342 - SYS_KCMP = 343 - SYS_FINIT_MODULE = 344 - SYS_SCHED_SETATTR = 345 - SYS_SCHED_GETATTR = 346 - SYS_RENAMEAT2 = 347 - SYS_SECCOMP = 348 - SYS_GETRANDOM = 349 - SYS_MEMFD_CREATE = 350 - SYS_BPF = 351 - SYS_S390_PCI_MMIO_WRITE = 352 - SYS_S390_PCI_MMIO_READ = 353 - SYS_EXECVEAT = 354 - SYS_USERFAULTFD = 355 - SYS_MEMBARRIER = 356 - SYS_RECVMMSG = 357 - SYS_SENDMMSG = 358 - SYS_SOCKET = 359 - SYS_SOCKETPAIR = 360 - SYS_BIND = 361 - SYS_CONNECT = 362 - SYS_LISTEN = 363 - SYS_ACCEPT4 = 364 - SYS_GETSOCKOPT = 365 - SYS_SETSOCKOPT = 366 - SYS_GETSOCKNAME = 367 - SYS_GETPEERNAME = 368 - SYS_SENDTO = 369 - SYS_SENDMSG = 370 - SYS_RECVFROM = 371 - SYS_RECVMSG = 372 - SYS_SHUTDOWN = 373 - SYS_MLOCK2 = 374 - SYS_COPY_FILE_RANGE = 375 - SYS_PREADV2 = 376 - SYS_PWRITEV2 = 377 - SYS_SELECT = 142 - SYS_GETRLIMIT = 191 - SYS_LCHOWN = 198 - SYS_GETUID = 199 - SYS_GETGID = 200 - SYS_GETEUID = 201 - SYS_GETEGID = 202 - SYS_SETREUID = 203 - SYS_SETREGID = 204 - SYS_GETGROUPS = 205 - SYS_SETGROUPS = 206 - SYS_FCHOWN = 207 - SYS_SETRESUID = 208 - SYS_GETRESUID = 209 - SYS_SETRESGID = 210 - SYS_GETRESGID = 211 - SYS_CHOWN = 212 - SYS_SETUID = 213 - SYS_SETGID = 214 - SYS_SETFSUID = 215 - SYS_SETFSGID = 216 - SYS_NEWFSTATAT = 293 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go deleted file mode 100644 index c9c129d..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go +++ /dev/null @@ -1,348 +0,0 @@ -// mksysnum_linux.pl -Ilinux/usr/include -m64 -D__arch64__ linux/usr/include/asm/unistd.h -// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT - -// +build sparc64,linux - -package unix - -const ( - SYS_RESTART_SYSCALL = 0 - SYS_EXIT = 1 - SYS_FORK = 2 - SYS_READ = 3 - SYS_WRITE = 4 - SYS_OPEN = 5 - SYS_CLOSE = 6 - SYS_WAIT4 = 7 - SYS_CREAT = 8 - SYS_LINK = 9 - SYS_UNLINK = 10 - SYS_EXECV = 11 - SYS_CHDIR = 12 - SYS_CHOWN = 13 - SYS_MKNOD = 14 - SYS_CHMOD = 15 - SYS_LCHOWN = 16 - SYS_BRK = 17 - SYS_PERFCTR = 18 - SYS_LSEEK = 19 - SYS_GETPID = 20 - SYS_CAPGET = 21 - SYS_CAPSET = 22 - SYS_SETUID = 23 - SYS_GETUID = 24 - SYS_VMSPLICE = 25 - SYS_PTRACE = 26 - SYS_ALARM = 27 - SYS_SIGALTSTACK = 28 - SYS_PAUSE = 29 - SYS_UTIME = 30 - SYS_ACCESS = 33 - SYS_NICE = 34 - SYS_SYNC = 36 - SYS_KILL = 37 - SYS_STAT = 38 - SYS_SENDFILE = 39 - SYS_LSTAT = 40 - SYS_DUP = 41 - SYS_PIPE = 42 - SYS_TIMES = 43 - SYS_UMOUNT2 = 45 - SYS_SETGID = 46 - SYS_GETGID = 47 - SYS_SIGNAL = 48 - SYS_GETEUID = 49 - SYS_GETEGID = 50 - SYS_ACCT = 51 - SYS_MEMORY_ORDERING = 52 - SYS_IOCTL = 54 - SYS_REBOOT = 55 - SYS_SYMLINK = 57 - SYS_READLINK = 58 - SYS_EXECVE = 59 - SYS_UMASK = 60 - SYS_CHROOT = 61 - SYS_FSTAT = 62 - SYS_FSTAT64 = 63 - SYS_GETPAGESIZE = 64 - SYS_MSYNC = 65 - SYS_VFORK = 66 - SYS_PREAD64 = 67 - SYS_PWRITE64 = 68 - SYS_MMAP = 71 - SYS_MUNMAP = 73 - SYS_MPROTECT = 74 - SYS_MADVISE = 75 - SYS_VHANGUP = 76 - SYS_MINCORE = 78 - SYS_GETGROUPS = 79 - SYS_SETGROUPS = 80 - SYS_GETPGRP = 81 - SYS_SETITIMER = 83 - SYS_SWAPON = 85 - SYS_GETITIMER = 86 - SYS_SETHOSTNAME = 88 - SYS_DUP2 = 90 - SYS_FCNTL = 92 - SYS_SELECT = 93 - SYS_FSYNC = 95 - SYS_SETPRIORITY = 96 - SYS_SOCKET = 97 - SYS_CONNECT = 98 - SYS_ACCEPT = 99 - SYS_GETPRIORITY = 100 - SYS_RT_SIGRETURN = 101 - SYS_RT_SIGACTION = 102 - SYS_RT_SIGPROCMASK = 103 - SYS_RT_SIGPENDING = 104 - SYS_RT_SIGTIMEDWAIT = 105 - SYS_RT_SIGQUEUEINFO = 106 - SYS_RT_SIGSUSPEND = 107 - SYS_SETRESUID = 108 - SYS_GETRESUID = 109 - SYS_SETRESGID = 110 - SYS_GETRESGID = 111 - SYS_RECVMSG = 113 - SYS_SENDMSG = 114 - SYS_GETTIMEOFDAY = 116 - SYS_GETRUSAGE = 117 - SYS_GETSOCKOPT = 118 - SYS_GETCWD = 119 - SYS_READV = 120 - SYS_WRITEV = 121 - SYS_SETTIMEOFDAY = 122 - SYS_FCHOWN = 123 - SYS_FCHMOD = 124 - SYS_RECVFROM = 125 - SYS_SETREUID = 126 - SYS_SETREGID = 127 - SYS_RENAME = 128 - SYS_TRUNCATE = 129 - SYS_FTRUNCATE = 130 - SYS_FLOCK = 131 - SYS_LSTAT64 = 132 - SYS_SENDTO = 133 - SYS_SHUTDOWN = 134 - SYS_SOCKETPAIR = 135 - SYS_MKDIR = 136 - SYS_RMDIR = 137 - SYS_UTIMES = 138 - SYS_STAT64 = 139 - SYS_SENDFILE64 = 140 - SYS_GETPEERNAME = 141 - SYS_FUTEX = 142 - SYS_GETTID = 143 - SYS_GETRLIMIT = 144 - SYS_SETRLIMIT = 145 - SYS_PIVOT_ROOT = 146 - SYS_PRCTL = 147 - SYS_PCICONFIG_READ = 148 - SYS_PCICONFIG_WRITE = 149 - SYS_GETSOCKNAME = 150 - SYS_INOTIFY_INIT = 151 - SYS_INOTIFY_ADD_WATCH = 152 - SYS_POLL = 153 - SYS_GETDENTS64 = 154 - SYS_INOTIFY_RM_WATCH = 156 - SYS_STATFS = 157 - SYS_FSTATFS = 158 - SYS_UMOUNT = 159 - SYS_SCHED_SET_AFFINITY = 160 - SYS_SCHED_GET_AFFINITY = 161 - SYS_GETDOMAINNAME = 162 - SYS_SETDOMAINNAME = 163 - SYS_UTRAP_INSTALL = 164 - SYS_QUOTACTL = 165 - SYS_SET_TID_ADDRESS = 166 - SYS_MOUNT = 167 - SYS_USTAT = 168 - SYS_SETXATTR = 169 - SYS_LSETXATTR = 170 - SYS_FSETXATTR = 171 - SYS_GETXATTR = 172 - SYS_LGETXATTR = 173 - SYS_GETDENTS = 174 - SYS_SETSID = 175 - SYS_FCHDIR = 176 - SYS_FGETXATTR = 177 - SYS_LISTXATTR = 178 - SYS_LLISTXATTR = 179 - SYS_FLISTXATTR = 180 - SYS_REMOVEXATTR = 181 - SYS_LREMOVEXATTR = 182 - SYS_SIGPENDING = 183 - SYS_QUERY_MODULE = 184 - SYS_SETPGID = 185 - SYS_FREMOVEXATTR = 186 - SYS_TKILL = 187 - SYS_EXIT_GROUP = 188 - SYS_UNAME = 189 - SYS_INIT_MODULE = 190 - SYS_PERSONALITY = 191 - SYS_REMAP_FILE_PAGES = 192 - SYS_EPOLL_CREATE = 193 - SYS_EPOLL_CTL = 194 - SYS_EPOLL_WAIT = 195 - SYS_IOPRIO_SET = 196 - SYS_GETPPID = 197 - SYS_SIGACTION = 198 - SYS_SGETMASK = 199 - SYS_SSETMASK = 200 - SYS_SIGSUSPEND = 201 - SYS_OLDLSTAT = 202 - SYS_USELIB = 203 - SYS_READDIR = 204 - SYS_READAHEAD = 205 - SYS_SOCKETCALL = 206 - SYS_SYSLOG = 207 - SYS_LOOKUP_DCOOKIE = 208 - SYS_FADVISE64 = 209 - SYS_FADVISE64_64 = 210 - SYS_TGKILL = 211 - SYS_WAITPID = 212 - SYS_SWAPOFF = 213 - SYS_SYSINFO = 214 - SYS_IPC = 215 - SYS_SIGRETURN = 216 - SYS_CLONE = 217 - SYS_IOPRIO_GET = 218 - SYS_ADJTIMEX = 219 - SYS_SIGPROCMASK = 220 - SYS_CREATE_MODULE = 221 - SYS_DELETE_MODULE = 222 - SYS_GET_KERNEL_SYMS = 223 - SYS_GETPGID = 224 - SYS_BDFLUSH = 225 - SYS_SYSFS = 226 - SYS_AFS_SYSCALL = 227 - SYS_SETFSUID = 228 - SYS_SETFSGID = 229 - SYS__NEWSELECT = 230 - SYS_SPLICE = 232 - SYS_STIME = 233 - SYS_STATFS64 = 234 - SYS_FSTATFS64 = 235 - SYS__LLSEEK = 236 - SYS_MLOCK = 237 - SYS_MUNLOCK = 238 - SYS_MLOCKALL = 239 - SYS_MUNLOCKALL = 240 - SYS_SCHED_SETPARAM = 241 - SYS_SCHED_GETPARAM = 242 - SYS_SCHED_SETSCHEDULER = 243 - SYS_SCHED_GETSCHEDULER = 244 - SYS_SCHED_YIELD = 245 - SYS_SCHED_GET_PRIORITY_MAX = 246 - SYS_SCHED_GET_PRIORITY_MIN = 247 - SYS_SCHED_RR_GET_INTERVAL = 248 - SYS_NANOSLEEP = 249 - SYS_MREMAP = 250 - SYS__SYSCTL = 251 - SYS_GETSID = 252 - SYS_FDATASYNC = 253 - SYS_NFSSERVCTL = 254 - SYS_SYNC_FILE_RANGE = 255 - SYS_CLOCK_SETTIME = 256 - SYS_CLOCK_GETTIME = 257 - SYS_CLOCK_GETRES = 258 - SYS_CLOCK_NANOSLEEP = 259 - SYS_SCHED_GETAFFINITY = 260 - SYS_SCHED_SETAFFINITY = 261 - SYS_TIMER_SETTIME = 262 - SYS_TIMER_GETTIME = 263 - SYS_TIMER_GETOVERRUN = 264 - SYS_TIMER_DELETE = 265 - SYS_TIMER_CREATE = 266 - SYS_IO_SETUP = 268 - SYS_IO_DESTROY = 269 - SYS_IO_SUBMIT = 270 - SYS_IO_CANCEL = 271 - SYS_IO_GETEVENTS = 272 - SYS_MQ_OPEN = 273 - SYS_MQ_UNLINK = 274 - SYS_MQ_TIMEDSEND = 275 - SYS_MQ_TIMEDRECEIVE = 276 - SYS_MQ_NOTIFY = 277 - SYS_MQ_GETSETATTR = 278 - SYS_WAITID = 279 - SYS_TEE = 280 - SYS_ADD_KEY = 281 - SYS_REQUEST_KEY = 282 - SYS_KEYCTL = 283 - SYS_OPENAT = 284 - SYS_MKDIRAT = 285 - SYS_MKNODAT = 286 - SYS_FCHOWNAT = 287 - SYS_FUTIMESAT = 288 - SYS_FSTATAT64 = 289 - SYS_UNLINKAT = 290 - SYS_RENAMEAT = 291 - SYS_LINKAT = 292 - SYS_SYMLINKAT = 293 - SYS_READLINKAT = 294 - SYS_FCHMODAT = 295 - SYS_FACCESSAT = 296 - SYS_PSELECT6 = 297 - SYS_PPOLL = 298 - SYS_UNSHARE = 299 - SYS_SET_ROBUST_LIST = 300 - SYS_GET_ROBUST_LIST = 301 - SYS_MIGRATE_PAGES = 302 - SYS_MBIND = 303 - SYS_GET_MEMPOLICY = 304 - SYS_SET_MEMPOLICY = 305 - SYS_KEXEC_LOAD = 306 - SYS_MOVE_PAGES = 307 - SYS_GETCPU = 308 - SYS_EPOLL_PWAIT = 309 - SYS_UTIMENSAT = 310 - SYS_SIGNALFD = 311 - SYS_TIMERFD_CREATE = 312 - SYS_EVENTFD = 313 - SYS_FALLOCATE = 314 - SYS_TIMERFD_SETTIME = 315 - SYS_TIMERFD_GETTIME = 316 - SYS_SIGNALFD4 = 317 - SYS_EVENTFD2 = 318 - SYS_EPOLL_CREATE1 = 319 - SYS_DUP3 = 320 - SYS_PIPE2 = 321 - SYS_INOTIFY_INIT1 = 322 - SYS_ACCEPT4 = 323 - SYS_PREADV = 324 - SYS_PWRITEV = 325 - SYS_RT_TGSIGQUEUEINFO = 326 - SYS_PERF_EVENT_OPEN = 327 - SYS_RECVMMSG = 328 - SYS_FANOTIFY_INIT = 329 - SYS_FANOTIFY_MARK = 330 - SYS_PRLIMIT64 = 331 - SYS_NAME_TO_HANDLE_AT = 332 - SYS_OPEN_BY_HANDLE_AT = 333 - SYS_CLOCK_ADJTIME = 334 - SYS_SYNCFS = 335 - SYS_SENDMMSG = 336 - SYS_SETNS = 337 - SYS_PROCESS_VM_READV = 338 - SYS_PROCESS_VM_WRITEV = 339 - SYS_KERN_FEATURES = 340 - SYS_KCMP = 341 - SYS_FINIT_MODULE = 342 - SYS_SCHED_SETATTR = 343 - SYS_SCHED_GETATTR = 344 - SYS_RENAMEAT2 = 345 - SYS_SECCOMP = 346 - SYS_GETRANDOM = 347 - SYS_MEMFD_CREATE = 348 - SYS_BPF = 349 - SYS_EXECVEAT = 350 - SYS_MEMBARRIER = 351 - SYS_USERFAULTFD = 352 - SYS_BIND = 353 - SYS_LISTEN = 354 - SYS_SETSOCKOPT = 355 - SYS_MLOCK2 = 356 - SYS_COPY_FILE_RANGE = 357 - SYS_PREADV2 = 358 - SYS_PWRITEV2 = 359 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go deleted file mode 100644 index 8afda9c..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go +++ /dev/null @@ -1,274 +0,0 @@ -// mksysnum_netbsd.pl -// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT - -// +build 386,netbsd - -package unix - -const ( - SYS_EXIT = 1 // { void|sys||exit(int rval); } - SYS_FORK = 2 // { int|sys||fork(void); } - SYS_READ = 3 // { ssize_t|sys||read(int fd, void *buf, size_t nbyte); } - SYS_WRITE = 4 // { ssize_t|sys||write(int fd, const void *buf, size_t nbyte); } - SYS_OPEN = 5 // { int|sys||open(const char *path, int flags, ... mode_t mode); } - SYS_CLOSE = 6 // { int|sys||close(int fd); } - SYS_LINK = 9 // { int|sys||link(const char *path, const char *link); } - SYS_UNLINK = 10 // { int|sys||unlink(const char *path); } - SYS_CHDIR = 12 // { int|sys||chdir(const char *path); } - SYS_FCHDIR = 13 // { int|sys||fchdir(int fd); } - SYS_CHMOD = 15 // { int|sys||chmod(const char *path, mode_t mode); } - SYS_CHOWN = 16 // { int|sys||chown(const char *path, uid_t uid, gid_t gid); } - SYS_BREAK = 17 // { int|sys||obreak(char *nsize); } - SYS_GETPID = 20 // { pid_t|sys||getpid_with_ppid(void); } - SYS_UNMOUNT = 22 // { int|sys||unmount(const char *path, int flags); } - SYS_SETUID = 23 // { int|sys||setuid(uid_t uid); } - SYS_GETUID = 24 // { uid_t|sys||getuid_with_euid(void); } - SYS_GETEUID = 25 // { uid_t|sys||geteuid(void); } - SYS_PTRACE = 26 // { int|sys||ptrace(int req, pid_t pid, void *addr, int data); } - SYS_RECVMSG = 27 // { ssize_t|sys||recvmsg(int s, struct msghdr *msg, int flags); } - SYS_SENDMSG = 28 // { ssize_t|sys||sendmsg(int s, const struct msghdr *msg, int flags); } - SYS_RECVFROM = 29 // { ssize_t|sys||recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); } - SYS_ACCEPT = 30 // { int|sys||accept(int s, struct sockaddr *name, socklen_t *anamelen); } - SYS_GETPEERNAME = 31 // { int|sys||getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); } - SYS_GETSOCKNAME = 32 // { int|sys||getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); } - SYS_ACCESS = 33 // { int|sys||access(const char *path, int flags); } - SYS_CHFLAGS = 34 // { int|sys||chflags(const char *path, u_long flags); } - SYS_FCHFLAGS = 35 // { int|sys||fchflags(int fd, u_long flags); } - SYS_SYNC = 36 // { void|sys||sync(void); } - SYS_KILL = 37 // { int|sys||kill(pid_t pid, int signum); } - SYS_GETPPID = 39 // { pid_t|sys||getppid(void); } - SYS_DUP = 41 // { int|sys||dup(int fd); } - SYS_PIPE = 42 // { int|sys||pipe(void); } - SYS_GETEGID = 43 // { gid_t|sys||getegid(void); } - SYS_PROFIL = 44 // { int|sys||profil(char *samples, size_t size, u_long offset, u_int scale); } - SYS_KTRACE = 45 // { int|sys||ktrace(const char *fname, int ops, int facs, pid_t pid); } - SYS_GETGID = 47 // { gid_t|sys||getgid_with_egid(void); } - SYS___GETLOGIN = 49 // { int|sys||__getlogin(char *namebuf, size_t namelen); } - SYS___SETLOGIN = 50 // { int|sys||__setlogin(const char *namebuf); } - SYS_ACCT = 51 // { int|sys||acct(const char *path); } - SYS_IOCTL = 54 // { int|sys||ioctl(int fd, u_long com, ... void *data); } - SYS_REVOKE = 56 // { int|sys||revoke(const char *path); } - SYS_SYMLINK = 57 // { int|sys||symlink(const char *path, const char *link); } - SYS_READLINK = 58 // { ssize_t|sys||readlink(const char *path, char *buf, size_t count); } - SYS_EXECVE = 59 // { int|sys||execve(const char *path, char * const *argp, char * const *envp); } - SYS_UMASK = 60 // { mode_t|sys||umask(mode_t newmask); } - SYS_CHROOT = 61 // { int|sys||chroot(const char *path); } - SYS_VFORK = 66 // { int|sys||vfork(void); } - SYS_SBRK = 69 // { int|sys||sbrk(intptr_t incr); } - SYS_SSTK = 70 // { int|sys||sstk(int incr); } - SYS_VADVISE = 72 // { int|sys||ovadvise(int anom); } - SYS_MUNMAP = 73 // { int|sys||munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int|sys||mprotect(void *addr, size_t len, int prot); } - SYS_MADVISE = 75 // { int|sys||madvise(void *addr, size_t len, int behav); } - SYS_MINCORE = 78 // { int|sys||mincore(void *addr, size_t len, char *vec); } - SYS_GETGROUPS = 79 // { int|sys||getgroups(int gidsetsize, gid_t *gidset); } - SYS_SETGROUPS = 80 // { int|sys||setgroups(int gidsetsize, const gid_t *gidset); } - SYS_GETPGRP = 81 // { int|sys||getpgrp(void); } - SYS_SETPGID = 82 // { int|sys||setpgid(pid_t pid, pid_t pgid); } - SYS_DUP2 = 90 // { int|sys||dup2(int from, int to); } - SYS_FCNTL = 92 // { int|sys||fcntl(int fd, int cmd, ... void *arg); } - SYS_FSYNC = 95 // { int|sys||fsync(int fd); } - SYS_SETPRIORITY = 96 // { int|sys||setpriority(int which, id_t who, int prio); } - SYS_CONNECT = 98 // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); } - SYS_GETPRIORITY = 100 // { int|sys||getpriority(int which, id_t who); } - SYS_BIND = 104 // { int|sys||bind(int s, const struct sockaddr *name, socklen_t namelen); } - SYS_SETSOCKOPT = 105 // { int|sys||setsockopt(int s, int level, int name, const void *val, socklen_t valsize); } - SYS_LISTEN = 106 // { int|sys||listen(int s, int backlog); } - SYS_GETSOCKOPT = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } - SYS_READV = 120 // { ssize_t|sys||readv(int fd, const struct iovec *iovp, int iovcnt); } - SYS_WRITEV = 121 // { ssize_t|sys||writev(int fd, const struct iovec *iovp, int iovcnt); } - SYS_FCHOWN = 123 // { int|sys||fchown(int fd, uid_t uid, gid_t gid); } - SYS_FCHMOD = 124 // { int|sys||fchmod(int fd, mode_t mode); } - SYS_SETREUID = 126 // { int|sys||setreuid(uid_t ruid, uid_t euid); } - SYS_SETREGID = 127 // { int|sys||setregid(gid_t rgid, gid_t egid); } - SYS_RENAME = 128 // { int|sys||rename(const char *from, const char *to); } - SYS_FLOCK = 131 // { int|sys||flock(int fd, int how); } - SYS_MKFIFO = 132 // { int|sys||mkfifo(const char *path, mode_t mode); } - SYS_SENDTO = 133 // { ssize_t|sys||sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); } - SYS_SHUTDOWN = 134 // { int|sys||shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int|sys||socketpair(int domain, int type, int protocol, int *rsv); } - SYS_MKDIR = 136 // { int|sys||mkdir(const char *path, mode_t mode); } - SYS_RMDIR = 137 // { int|sys||rmdir(const char *path); } - SYS_SETSID = 147 // { int|sys||setsid(void); } - SYS_SYSARCH = 165 // { int|sys||sysarch(int op, void *parms); } - SYS_PREAD = 173 // { ssize_t|sys||pread(int fd, void *buf, size_t nbyte, int PAD, off_t offset); } - SYS_PWRITE = 174 // { ssize_t|sys||pwrite(int fd, const void *buf, size_t nbyte, int PAD, off_t offset); } - SYS_NTP_ADJTIME = 176 // { int|sys||ntp_adjtime(struct timex *tp); } - SYS_SETGID = 181 // { int|sys||setgid(gid_t gid); } - SYS_SETEGID = 182 // { int|sys||setegid(gid_t egid); } - SYS_SETEUID = 183 // { int|sys||seteuid(uid_t euid); } - SYS_PATHCONF = 191 // { long|sys||pathconf(const char *path, int name); } - SYS_FPATHCONF = 192 // { long|sys||fpathconf(int fd, int name); } - SYS_GETRLIMIT = 194 // { int|sys||getrlimit(int which, struct rlimit *rlp); } - SYS_SETRLIMIT = 195 // { int|sys||setrlimit(int which, const struct rlimit *rlp); } - SYS_MMAP = 197 // { void *|sys||mmap(void *addr, size_t len, int prot, int flags, int fd, long PAD, off_t pos); } - SYS_LSEEK = 199 // { off_t|sys||lseek(int fd, int PAD, off_t offset, int whence); } - SYS_TRUNCATE = 200 // { int|sys||truncate(const char *path, int PAD, off_t length); } - SYS_FTRUNCATE = 201 // { int|sys||ftruncate(int fd, int PAD, off_t length); } - SYS___SYSCTL = 202 // { int|sys||__sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, const void *new, size_t newlen); } - SYS_MLOCK = 203 // { int|sys||mlock(const void *addr, size_t len); } - SYS_MUNLOCK = 204 // { int|sys||munlock(const void *addr, size_t len); } - SYS_UNDELETE = 205 // { int|sys||undelete(const char *path); } - SYS_GETPGID = 207 // { pid_t|sys||getpgid(pid_t pid); } - SYS_REBOOT = 208 // { int|sys||reboot(int opt, char *bootstr); } - SYS_POLL = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); } - SYS_SEMGET = 221 // { int|sys||semget(key_t key, int nsems, int semflg); } - SYS_SEMOP = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); } - SYS_SEMCONFIG = 223 // { int|sys||semconfig(int flag); } - SYS_MSGGET = 225 // { int|sys||msgget(key_t key, int msgflg); } - SYS_MSGSND = 226 // { int|sys||msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } - SYS_MSGRCV = 227 // { ssize_t|sys||msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } - SYS_SHMAT = 228 // { void *|sys||shmat(int shmid, const void *shmaddr, int shmflg); } - SYS_SHMDT = 230 // { int|sys||shmdt(const void *shmaddr); } - SYS_SHMGET = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); } - SYS_TIMER_CREATE = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); } - SYS_TIMER_DELETE = 236 // { int|sys||timer_delete(timer_t timerid); } - SYS_TIMER_GETOVERRUN = 239 // { int|sys||timer_getoverrun(timer_t timerid); } - SYS_FDATASYNC = 241 // { int|sys||fdatasync(int fd); } - SYS_MLOCKALL = 242 // { int|sys||mlockall(int flags); } - SYS_MUNLOCKALL = 243 // { int|sys||munlockall(void); } - SYS_SIGQUEUEINFO = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); } - SYS_MODCTL = 246 // { int|sys||modctl(int cmd, void *arg); } - SYS___POSIX_RENAME = 270 // { int|sys||__posix_rename(const char *from, const char *to); } - SYS_SWAPCTL = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); } - SYS_MINHERIT = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); } - SYS_LCHMOD = 274 // { int|sys||lchmod(const char *path, mode_t mode); } - SYS_LCHOWN = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); } - SYS_MSYNC = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); } - SYS___POSIX_CHOWN = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); } - SYS___POSIX_FCHOWN = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); } - SYS___POSIX_LCHOWN = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); } - SYS_GETSID = 286 // { pid_t|sys||getsid(pid_t pid); } - SYS___CLONE = 287 // { pid_t|sys||__clone(int flags, void *stack); } - SYS_FKTRACE = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); } - SYS_PREADV = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } - SYS_PWRITEV = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } - SYS___GETCWD = 296 // { int|sys||__getcwd(char *bufp, size_t length); } - SYS_FCHROOT = 297 // { int|sys||fchroot(int fd); } - SYS_LCHFLAGS = 304 // { int|sys||lchflags(const char *path, u_long flags); } - SYS_ISSETUGID = 305 // { int|sys||issetugid(void); } - SYS_UTRACE = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); } - SYS_GETCONTEXT = 307 // { int|sys||getcontext(struct __ucontext *ucp); } - SYS_SETCONTEXT = 308 // { int|sys||setcontext(const struct __ucontext *ucp); } - SYS__LWP_CREATE = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); } - SYS__LWP_EXIT = 310 // { int|sys||_lwp_exit(void); } - SYS__LWP_SELF = 311 // { lwpid_t|sys||_lwp_self(void); } - SYS__LWP_WAIT = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); } - SYS__LWP_SUSPEND = 313 // { int|sys||_lwp_suspend(lwpid_t target); } - SYS__LWP_CONTINUE = 314 // { int|sys||_lwp_continue(lwpid_t target); } - SYS__LWP_WAKEUP = 315 // { int|sys||_lwp_wakeup(lwpid_t target); } - SYS__LWP_GETPRIVATE = 316 // { void *|sys||_lwp_getprivate(void); } - SYS__LWP_SETPRIVATE = 317 // { void|sys||_lwp_setprivate(void *ptr); } - SYS__LWP_KILL = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); } - SYS__LWP_DETACH = 319 // { int|sys||_lwp_detach(lwpid_t target); } - SYS__LWP_UNPARK = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); } - SYS__LWP_UNPARK_ALL = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); } - SYS__LWP_SETNAME = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); } - SYS__LWP_GETNAME = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); } - SYS__LWP_CTL = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); } - SYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); } - SYS_PMC_GET_INFO = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); } - SYS_PMC_CONTROL = 342 // { int|sys||pmc_control(int ctr, int op, void *args); } - SYS_RASCTL = 343 // { int|sys||rasctl(void *addr, size_t len, int op); } - SYS_KQUEUE = 344 // { int|sys||kqueue(void); } - SYS__SCHED_SETPARAM = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); } - SYS__SCHED_GETPARAM = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); } - SYS__SCHED_SETAFFINITY = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); } - SYS__SCHED_GETAFFINITY = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); } - SYS_SCHED_YIELD = 350 // { int|sys||sched_yield(void); } - SYS_FSYNC_RANGE = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); } - SYS_UUIDGEN = 355 // { int|sys||uuidgen(struct uuid *store, int count); } - SYS_GETVFSSTAT = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); } - SYS_STATVFS1 = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); } - SYS_FSTATVFS1 = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); } - SYS_EXTATTRCTL = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_FILE = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } - SYS_EXTATTR_GET_FILE = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_FILE = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_FD = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } - SYS_EXTATTR_GET_FD = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_FD = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_LINK = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } - SYS_EXTATTR_GET_LINK = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_LINK = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); } - SYS_EXTATTR_LIST_FD = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } - SYS_EXTATTR_LIST_FILE = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); } - SYS_EXTATTR_LIST_LINK = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); } - SYS_SETXATTR = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); } - SYS_LSETXATTR = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); } - SYS_FSETXATTR = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); } - SYS_GETXATTR = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); } - SYS_LGETXATTR = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); } - SYS_FGETXATTR = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); } - SYS_LISTXATTR = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); } - SYS_LLISTXATTR = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); } - SYS_FLISTXATTR = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); } - SYS_REMOVEXATTR = 384 // { int|sys||removexattr(const char *path, const char *name); } - SYS_LREMOVEXATTR = 385 // { int|sys||lremovexattr(const char *path, const char *name); } - SYS_FREMOVEXATTR = 386 // { int|sys||fremovexattr(int fd, const char *name); } - SYS_GETDENTS = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); } - SYS_SOCKET = 394 // { int|sys|30|socket(int domain, int type, int protocol); } - SYS_GETFH = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); } - SYS_MOUNT = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); } - SYS_MREMAP = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); } - SYS_PSET_CREATE = 412 // { int|sys||pset_create(psetid_t *psid); } - SYS_PSET_DESTROY = 413 // { int|sys||pset_destroy(psetid_t psid); } - SYS_PSET_ASSIGN = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); } - SYS__PSET_BIND = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); } - SYS_POSIX_FADVISE = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); } - SYS_SELECT = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } - SYS_GETTIMEOFDAY = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); } - SYS_SETTIMEOFDAY = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); } - SYS_UTIMES = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); } - SYS_ADJTIME = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); } - SYS_FUTIMES = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); } - SYS_LUTIMES = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); } - SYS_SETITIMER = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } - SYS_GETITIMER = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); } - SYS_CLOCK_GETTIME = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); } - SYS_CLOCK_SETTIME = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); } - SYS_CLOCK_GETRES = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); } - SYS_NANOSLEEP = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } - SYS___SIGTIMEDWAIT = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); } - SYS__LWP_PARK = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); } - SYS_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); } - SYS_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); } - SYS_POLLTS = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } - SYS_STAT = 439 // { int|sys|50|stat(const char *path, struct stat *ub); } - SYS_FSTAT = 440 // { int|sys|50|fstat(int fd, struct stat *sb); } - SYS_LSTAT = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); } - SYS___SEMCTL = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); } - SYS_SHMCTL = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); } - SYS_MSGCTL = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); } - SYS_GETRUSAGE = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); } - SYS_TIMER_SETTIME = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } - SYS_TIMER_GETTIME = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); } - SYS_NTP_GETTIME = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); } - SYS_WAIT4 = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); } - SYS_MKNOD = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); } - SYS_FHSTAT = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); } - SYS_PIPE2 = 453 // { int|sys||pipe2(int *fildes, int flags); } - SYS_DUP3 = 454 // { int|sys||dup3(int from, int to, int flags); } - SYS_KQUEUE1 = 455 // { int|sys||kqueue1(int flags); } - SYS_PACCEPT = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); } - SYS_LINKAT = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); } - SYS_RENAMEAT = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); } - SYS_MKFIFOAT = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); } - SYS_MKNODAT = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); } - SYS_MKDIRAT = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); } - SYS_FACCESSAT = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); } - SYS_FCHMODAT = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); } - SYS_FCHOWNAT = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); } - SYS_FEXECVE = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); } - SYS_FSTATAT = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); } - SYS_UTIMENSAT = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); } - SYS_OPENAT = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); } - SYS_READLINKAT = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); } - SYS_SYMLINKAT = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); } - SYS_UNLINKAT = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); } - SYS_FUTIMENS = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); } - SYS___QUOTACTL = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); } - SYS_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); } - SYS_RECVMMSG = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); } - SYS_SENDMMSG = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); } -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go deleted file mode 100644 index aea8dbe..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go +++ /dev/null @@ -1,274 +0,0 @@ -// mksysnum_netbsd.pl -// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT - -// +build amd64,netbsd - -package unix - -const ( - SYS_EXIT = 1 // { void|sys||exit(int rval); } - SYS_FORK = 2 // { int|sys||fork(void); } - SYS_READ = 3 // { ssize_t|sys||read(int fd, void *buf, size_t nbyte); } - SYS_WRITE = 4 // { ssize_t|sys||write(int fd, const void *buf, size_t nbyte); } - SYS_OPEN = 5 // { int|sys||open(const char *path, int flags, ... mode_t mode); } - SYS_CLOSE = 6 // { int|sys||close(int fd); } - SYS_LINK = 9 // { int|sys||link(const char *path, const char *link); } - SYS_UNLINK = 10 // { int|sys||unlink(const char *path); } - SYS_CHDIR = 12 // { int|sys||chdir(const char *path); } - SYS_FCHDIR = 13 // { int|sys||fchdir(int fd); } - SYS_CHMOD = 15 // { int|sys||chmod(const char *path, mode_t mode); } - SYS_CHOWN = 16 // { int|sys||chown(const char *path, uid_t uid, gid_t gid); } - SYS_BREAK = 17 // { int|sys||obreak(char *nsize); } - SYS_GETPID = 20 // { pid_t|sys||getpid_with_ppid(void); } - SYS_UNMOUNT = 22 // { int|sys||unmount(const char *path, int flags); } - SYS_SETUID = 23 // { int|sys||setuid(uid_t uid); } - SYS_GETUID = 24 // { uid_t|sys||getuid_with_euid(void); } - SYS_GETEUID = 25 // { uid_t|sys||geteuid(void); } - SYS_PTRACE = 26 // { int|sys||ptrace(int req, pid_t pid, void *addr, int data); } - SYS_RECVMSG = 27 // { ssize_t|sys||recvmsg(int s, struct msghdr *msg, int flags); } - SYS_SENDMSG = 28 // { ssize_t|sys||sendmsg(int s, const struct msghdr *msg, int flags); } - SYS_RECVFROM = 29 // { ssize_t|sys||recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); } - SYS_ACCEPT = 30 // { int|sys||accept(int s, struct sockaddr *name, socklen_t *anamelen); } - SYS_GETPEERNAME = 31 // { int|sys||getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); } - SYS_GETSOCKNAME = 32 // { int|sys||getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); } - SYS_ACCESS = 33 // { int|sys||access(const char *path, int flags); } - SYS_CHFLAGS = 34 // { int|sys||chflags(const char *path, u_long flags); } - SYS_FCHFLAGS = 35 // { int|sys||fchflags(int fd, u_long flags); } - SYS_SYNC = 36 // { void|sys||sync(void); } - SYS_KILL = 37 // { int|sys||kill(pid_t pid, int signum); } - SYS_GETPPID = 39 // { pid_t|sys||getppid(void); } - SYS_DUP = 41 // { int|sys||dup(int fd); } - SYS_PIPE = 42 // { int|sys||pipe(void); } - SYS_GETEGID = 43 // { gid_t|sys||getegid(void); } - SYS_PROFIL = 44 // { int|sys||profil(char *samples, size_t size, u_long offset, u_int scale); } - SYS_KTRACE = 45 // { int|sys||ktrace(const char *fname, int ops, int facs, pid_t pid); } - SYS_GETGID = 47 // { gid_t|sys||getgid_with_egid(void); } - SYS___GETLOGIN = 49 // { int|sys||__getlogin(char *namebuf, size_t namelen); } - SYS___SETLOGIN = 50 // { int|sys||__setlogin(const char *namebuf); } - SYS_ACCT = 51 // { int|sys||acct(const char *path); } - SYS_IOCTL = 54 // { int|sys||ioctl(int fd, u_long com, ... void *data); } - SYS_REVOKE = 56 // { int|sys||revoke(const char *path); } - SYS_SYMLINK = 57 // { int|sys||symlink(const char *path, const char *link); } - SYS_READLINK = 58 // { ssize_t|sys||readlink(const char *path, char *buf, size_t count); } - SYS_EXECVE = 59 // { int|sys||execve(const char *path, char * const *argp, char * const *envp); } - SYS_UMASK = 60 // { mode_t|sys||umask(mode_t newmask); } - SYS_CHROOT = 61 // { int|sys||chroot(const char *path); } - SYS_VFORK = 66 // { int|sys||vfork(void); } - SYS_SBRK = 69 // { int|sys||sbrk(intptr_t incr); } - SYS_SSTK = 70 // { int|sys||sstk(int incr); } - SYS_VADVISE = 72 // { int|sys||ovadvise(int anom); } - SYS_MUNMAP = 73 // { int|sys||munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int|sys||mprotect(void *addr, size_t len, int prot); } - SYS_MADVISE = 75 // { int|sys||madvise(void *addr, size_t len, int behav); } - SYS_MINCORE = 78 // { int|sys||mincore(void *addr, size_t len, char *vec); } - SYS_GETGROUPS = 79 // { int|sys||getgroups(int gidsetsize, gid_t *gidset); } - SYS_SETGROUPS = 80 // { int|sys||setgroups(int gidsetsize, const gid_t *gidset); } - SYS_GETPGRP = 81 // { int|sys||getpgrp(void); } - SYS_SETPGID = 82 // { int|sys||setpgid(pid_t pid, pid_t pgid); } - SYS_DUP2 = 90 // { int|sys||dup2(int from, int to); } - SYS_FCNTL = 92 // { int|sys||fcntl(int fd, int cmd, ... void *arg); } - SYS_FSYNC = 95 // { int|sys||fsync(int fd); } - SYS_SETPRIORITY = 96 // { int|sys||setpriority(int which, id_t who, int prio); } - SYS_CONNECT = 98 // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); } - SYS_GETPRIORITY = 100 // { int|sys||getpriority(int which, id_t who); } - SYS_BIND = 104 // { int|sys||bind(int s, const struct sockaddr *name, socklen_t namelen); } - SYS_SETSOCKOPT = 105 // { int|sys||setsockopt(int s, int level, int name, const void *val, socklen_t valsize); } - SYS_LISTEN = 106 // { int|sys||listen(int s, int backlog); } - SYS_GETSOCKOPT = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } - SYS_READV = 120 // { ssize_t|sys||readv(int fd, const struct iovec *iovp, int iovcnt); } - SYS_WRITEV = 121 // { ssize_t|sys||writev(int fd, const struct iovec *iovp, int iovcnt); } - SYS_FCHOWN = 123 // { int|sys||fchown(int fd, uid_t uid, gid_t gid); } - SYS_FCHMOD = 124 // { int|sys||fchmod(int fd, mode_t mode); } - SYS_SETREUID = 126 // { int|sys||setreuid(uid_t ruid, uid_t euid); } - SYS_SETREGID = 127 // { int|sys||setregid(gid_t rgid, gid_t egid); } - SYS_RENAME = 128 // { int|sys||rename(const char *from, const char *to); } - SYS_FLOCK = 131 // { int|sys||flock(int fd, int how); } - SYS_MKFIFO = 132 // { int|sys||mkfifo(const char *path, mode_t mode); } - SYS_SENDTO = 133 // { ssize_t|sys||sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); } - SYS_SHUTDOWN = 134 // { int|sys||shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int|sys||socketpair(int domain, int type, int protocol, int *rsv); } - SYS_MKDIR = 136 // { int|sys||mkdir(const char *path, mode_t mode); } - SYS_RMDIR = 137 // { int|sys||rmdir(const char *path); } - SYS_SETSID = 147 // { int|sys||setsid(void); } - SYS_SYSARCH = 165 // { int|sys||sysarch(int op, void *parms); } - SYS_PREAD = 173 // { ssize_t|sys||pread(int fd, void *buf, size_t nbyte, int PAD, off_t offset); } - SYS_PWRITE = 174 // { ssize_t|sys||pwrite(int fd, const void *buf, size_t nbyte, int PAD, off_t offset); } - SYS_NTP_ADJTIME = 176 // { int|sys||ntp_adjtime(struct timex *tp); } - SYS_SETGID = 181 // { int|sys||setgid(gid_t gid); } - SYS_SETEGID = 182 // { int|sys||setegid(gid_t egid); } - SYS_SETEUID = 183 // { int|sys||seteuid(uid_t euid); } - SYS_PATHCONF = 191 // { long|sys||pathconf(const char *path, int name); } - SYS_FPATHCONF = 192 // { long|sys||fpathconf(int fd, int name); } - SYS_GETRLIMIT = 194 // { int|sys||getrlimit(int which, struct rlimit *rlp); } - SYS_SETRLIMIT = 195 // { int|sys||setrlimit(int which, const struct rlimit *rlp); } - SYS_MMAP = 197 // { void *|sys||mmap(void *addr, size_t len, int prot, int flags, int fd, long PAD, off_t pos); } - SYS_LSEEK = 199 // { off_t|sys||lseek(int fd, int PAD, off_t offset, int whence); } - SYS_TRUNCATE = 200 // { int|sys||truncate(const char *path, int PAD, off_t length); } - SYS_FTRUNCATE = 201 // { int|sys||ftruncate(int fd, int PAD, off_t length); } - SYS___SYSCTL = 202 // { int|sys||__sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, const void *new, size_t newlen); } - SYS_MLOCK = 203 // { int|sys||mlock(const void *addr, size_t len); } - SYS_MUNLOCK = 204 // { int|sys||munlock(const void *addr, size_t len); } - SYS_UNDELETE = 205 // { int|sys||undelete(const char *path); } - SYS_GETPGID = 207 // { pid_t|sys||getpgid(pid_t pid); } - SYS_REBOOT = 208 // { int|sys||reboot(int opt, char *bootstr); } - SYS_POLL = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); } - SYS_SEMGET = 221 // { int|sys||semget(key_t key, int nsems, int semflg); } - SYS_SEMOP = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); } - SYS_SEMCONFIG = 223 // { int|sys||semconfig(int flag); } - SYS_MSGGET = 225 // { int|sys||msgget(key_t key, int msgflg); } - SYS_MSGSND = 226 // { int|sys||msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } - SYS_MSGRCV = 227 // { ssize_t|sys||msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } - SYS_SHMAT = 228 // { void *|sys||shmat(int shmid, const void *shmaddr, int shmflg); } - SYS_SHMDT = 230 // { int|sys||shmdt(const void *shmaddr); } - SYS_SHMGET = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); } - SYS_TIMER_CREATE = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); } - SYS_TIMER_DELETE = 236 // { int|sys||timer_delete(timer_t timerid); } - SYS_TIMER_GETOVERRUN = 239 // { int|sys||timer_getoverrun(timer_t timerid); } - SYS_FDATASYNC = 241 // { int|sys||fdatasync(int fd); } - SYS_MLOCKALL = 242 // { int|sys||mlockall(int flags); } - SYS_MUNLOCKALL = 243 // { int|sys||munlockall(void); } - SYS_SIGQUEUEINFO = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); } - SYS_MODCTL = 246 // { int|sys||modctl(int cmd, void *arg); } - SYS___POSIX_RENAME = 270 // { int|sys||__posix_rename(const char *from, const char *to); } - SYS_SWAPCTL = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); } - SYS_MINHERIT = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); } - SYS_LCHMOD = 274 // { int|sys||lchmod(const char *path, mode_t mode); } - SYS_LCHOWN = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); } - SYS_MSYNC = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); } - SYS___POSIX_CHOWN = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); } - SYS___POSIX_FCHOWN = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); } - SYS___POSIX_LCHOWN = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); } - SYS_GETSID = 286 // { pid_t|sys||getsid(pid_t pid); } - SYS___CLONE = 287 // { pid_t|sys||__clone(int flags, void *stack); } - SYS_FKTRACE = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); } - SYS_PREADV = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } - SYS_PWRITEV = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } - SYS___GETCWD = 296 // { int|sys||__getcwd(char *bufp, size_t length); } - SYS_FCHROOT = 297 // { int|sys||fchroot(int fd); } - SYS_LCHFLAGS = 304 // { int|sys||lchflags(const char *path, u_long flags); } - SYS_ISSETUGID = 305 // { int|sys||issetugid(void); } - SYS_UTRACE = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); } - SYS_GETCONTEXT = 307 // { int|sys||getcontext(struct __ucontext *ucp); } - SYS_SETCONTEXT = 308 // { int|sys||setcontext(const struct __ucontext *ucp); } - SYS__LWP_CREATE = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); } - SYS__LWP_EXIT = 310 // { int|sys||_lwp_exit(void); } - SYS__LWP_SELF = 311 // { lwpid_t|sys||_lwp_self(void); } - SYS__LWP_WAIT = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); } - SYS__LWP_SUSPEND = 313 // { int|sys||_lwp_suspend(lwpid_t target); } - SYS__LWP_CONTINUE = 314 // { int|sys||_lwp_continue(lwpid_t target); } - SYS__LWP_WAKEUP = 315 // { int|sys||_lwp_wakeup(lwpid_t target); } - SYS__LWP_GETPRIVATE = 316 // { void *|sys||_lwp_getprivate(void); } - SYS__LWP_SETPRIVATE = 317 // { void|sys||_lwp_setprivate(void *ptr); } - SYS__LWP_KILL = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); } - SYS__LWP_DETACH = 319 // { int|sys||_lwp_detach(lwpid_t target); } - SYS__LWP_UNPARK = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); } - SYS__LWP_UNPARK_ALL = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); } - SYS__LWP_SETNAME = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); } - SYS__LWP_GETNAME = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); } - SYS__LWP_CTL = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); } - SYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); } - SYS_PMC_GET_INFO = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); } - SYS_PMC_CONTROL = 342 // { int|sys||pmc_control(int ctr, int op, void *args); } - SYS_RASCTL = 343 // { int|sys||rasctl(void *addr, size_t len, int op); } - SYS_KQUEUE = 344 // { int|sys||kqueue(void); } - SYS__SCHED_SETPARAM = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); } - SYS__SCHED_GETPARAM = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); } - SYS__SCHED_SETAFFINITY = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); } - SYS__SCHED_GETAFFINITY = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); } - SYS_SCHED_YIELD = 350 // { int|sys||sched_yield(void); } - SYS_FSYNC_RANGE = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); } - SYS_UUIDGEN = 355 // { int|sys||uuidgen(struct uuid *store, int count); } - SYS_GETVFSSTAT = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); } - SYS_STATVFS1 = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); } - SYS_FSTATVFS1 = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); } - SYS_EXTATTRCTL = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_FILE = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } - SYS_EXTATTR_GET_FILE = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_FILE = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_FD = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } - SYS_EXTATTR_GET_FD = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_FD = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_LINK = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } - SYS_EXTATTR_GET_LINK = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_LINK = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); } - SYS_EXTATTR_LIST_FD = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } - SYS_EXTATTR_LIST_FILE = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); } - SYS_EXTATTR_LIST_LINK = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); } - SYS_SETXATTR = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); } - SYS_LSETXATTR = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); } - SYS_FSETXATTR = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); } - SYS_GETXATTR = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); } - SYS_LGETXATTR = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); } - SYS_FGETXATTR = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); } - SYS_LISTXATTR = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); } - SYS_LLISTXATTR = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); } - SYS_FLISTXATTR = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); } - SYS_REMOVEXATTR = 384 // { int|sys||removexattr(const char *path, const char *name); } - SYS_LREMOVEXATTR = 385 // { int|sys||lremovexattr(const char *path, const char *name); } - SYS_FREMOVEXATTR = 386 // { int|sys||fremovexattr(int fd, const char *name); } - SYS_GETDENTS = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); } - SYS_SOCKET = 394 // { int|sys|30|socket(int domain, int type, int protocol); } - SYS_GETFH = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); } - SYS_MOUNT = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); } - SYS_MREMAP = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); } - SYS_PSET_CREATE = 412 // { int|sys||pset_create(psetid_t *psid); } - SYS_PSET_DESTROY = 413 // { int|sys||pset_destroy(psetid_t psid); } - SYS_PSET_ASSIGN = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); } - SYS__PSET_BIND = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); } - SYS_POSIX_FADVISE = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); } - SYS_SELECT = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } - SYS_GETTIMEOFDAY = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); } - SYS_SETTIMEOFDAY = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); } - SYS_UTIMES = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); } - SYS_ADJTIME = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); } - SYS_FUTIMES = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); } - SYS_LUTIMES = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); } - SYS_SETITIMER = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } - SYS_GETITIMER = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); } - SYS_CLOCK_GETTIME = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); } - SYS_CLOCK_SETTIME = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); } - SYS_CLOCK_GETRES = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); } - SYS_NANOSLEEP = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } - SYS___SIGTIMEDWAIT = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); } - SYS__LWP_PARK = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); } - SYS_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); } - SYS_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); } - SYS_POLLTS = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } - SYS_STAT = 439 // { int|sys|50|stat(const char *path, struct stat *ub); } - SYS_FSTAT = 440 // { int|sys|50|fstat(int fd, struct stat *sb); } - SYS_LSTAT = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); } - SYS___SEMCTL = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); } - SYS_SHMCTL = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); } - SYS_MSGCTL = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); } - SYS_GETRUSAGE = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); } - SYS_TIMER_SETTIME = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } - SYS_TIMER_GETTIME = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); } - SYS_NTP_GETTIME = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); } - SYS_WAIT4 = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); } - SYS_MKNOD = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); } - SYS_FHSTAT = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); } - SYS_PIPE2 = 453 // { int|sys||pipe2(int *fildes, int flags); } - SYS_DUP3 = 454 // { int|sys||dup3(int from, int to, int flags); } - SYS_KQUEUE1 = 455 // { int|sys||kqueue1(int flags); } - SYS_PACCEPT = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); } - SYS_LINKAT = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); } - SYS_RENAMEAT = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); } - SYS_MKFIFOAT = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); } - SYS_MKNODAT = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); } - SYS_MKDIRAT = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); } - SYS_FACCESSAT = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); } - SYS_FCHMODAT = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); } - SYS_FCHOWNAT = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); } - SYS_FEXECVE = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); } - SYS_FSTATAT = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); } - SYS_UTIMENSAT = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); } - SYS_OPENAT = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); } - SYS_READLINKAT = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); } - SYS_SYMLINKAT = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); } - SYS_UNLINKAT = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); } - SYS_FUTIMENS = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); } - SYS___QUOTACTL = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); } - SYS_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); } - SYS_RECVMMSG = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); } - SYS_SENDMMSG = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); } -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go deleted file mode 100644 index c6158a7..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go +++ /dev/null @@ -1,274 +0,0 @@ -// mksysnum_netbsd.pl -// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT - -// +build arm,netbsd - -package unix - -const ( - SYS_EXIT = 1 // { void|sys||exit(int rval); } - SYS_FORK = 2 // { int|sys||fork(void); } - SYS_READ = 3 // { ssize_t|sys||read(int fd, void *buf, size_t nbyte); } - SYS_WRITE = 4 // { ssize_t|sys||write(int fd, const void *buf, size_t nbyte); } - SYS_OPEN = 5 // { int|sys||open(const char *path, int flags, ... mode_t mode); } - SYS_CLOSE = 6 // { int|sys||close(int fd); } - SYS_LINK = 9 // { int|sys||link(const char *path, const char *link); } - SYS_UNLINK = 10 // { int|sys||unlink(const char *path); } - SYS_CHDIR = 12 // { int|sys||chdir(const char *path); } - SYS_FCHDIR = 13 // { int|sys||fchdir(int fd); } - SYS_CHMOD = 15 // { int|sys||chmod(const char *path, mode_t mode); } - SYS_CHOWN = 16 // { int|sys||chown(const char *path, uid_t uid, gid_t gid); } - SYS_BREAK = 17 // { int|sys||obreak(char *nsize); } - SYS_GETPID = 20 // { pid_t|sys||getpid_with_ppid(void); } - SYS_UNMOUNT = 22 // { int|sys||unmount(const char *path, int flags); } - SYS_SETUID = 23 // { int|sys||setuid(uid_t uid); } - SYS_GETUID = 24 // { uid_t|sys||getuid_with_euid(void); } - SYS_GETEUID = 25 // { uid_t|sys||geteuid(void); } - SYS_PTRACE = 26 // { int|sys||ptrace(int req, pid_t pid, void *addr, int data); } - SYS_RECVMSG = 27 // { ssize_t|sys||recvmsg(int s, struct msghdr *msg, int flags); } - SYS_SENDMSG = 28 // { ssize_t|sys||sendmsg(int s, const struct msghdr *msg, int flags); } - SYS_RECVFROM = 29 // { ssize_t|sys||recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); } - SYS_ACCEPT = 30 // { int|sys||accept(int s, struct sockaddr *name, socklen_t *anamelen); } - SYS_GETPEERNAME = 31 // { int|sys||getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); } - SYS_GETSOCKNAME = 32 // { int|sys||getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); } - SYS_ACCESS = 33 // { int|sys||access(const char *path, int flags); } - SYS_CHFLAGS = 34 // { int|sys||chflags(const char *path, u_long flags); } - SYS_FCHFLAGS = 35 // { int|sys||fchflags(int fd, u_long flags); } - SYS_SYNC = 36 // { void|sys||sync(void); } - SYS_KILL = 37 // { int|sys||kill(pid_t pid, int signum); } - SYS_GETPPID = 39 // { pid_t|sys||getppid(void); } - SYS_DUP = 41 // { int|sys||dup(int fd); } - SYS_PIPE = 42 // { int|sys||pipe(void); } - SYS_GETEGID = 43 // { gid_t|sys||getegid(void); } - SYS_PROFIL = 44 // { int|sys||profil(char *samples, size_t size, u_long offset, u_int scale); } - SYS_KTRACE = 45 // { int|sys||ktrace(const char *fname, int ops, int facs, pid_t pid); } - SYS_GETGID = 47 // { gid_t|sys||getgid_with_egid(void); } - SYS___GETLOGIN = 49 // { int|sys||__getlogin(char *namebuf, size_t namelen); } - SYS___SETLOGIN = 50 // { int|sys||__setlogin(const char *namebuf); } - SYS_ACCT = 51 // { int|sys||acct(const char *path); } - SYS_IOCTL = 54 // { int|sys||ioctl(int fd, u_long com, ... void *data); } - SYS_REVOKE = 56 // { int|sys||revoke(const char *path); } - SYS_SYMLINK = 57 // { int|sys||symlink(const char *path, const char *link); } - SYS_READLINK = 58 // { ssize_t|sys||readlink(const char *path, char *buf, size_t count); } - SYS_EXECVE = 59 // { int|sys||execve(const char *path, char * const *argp, char * const *envp); } - SYS_UMASK = 60 // { mode_t|sys||umask(mode_t newmask); } - SYS_CHROOT = 61 // { int|sys||chroot(const char *path); } - SYS_VFORK = 66 // { int|sys||vfork(void); } - SYS_SBRK = 69 // { int|sys||sbrk(intptr_t incr); } - SYS_SSTK = 70 // { int|sys||sstk(int incr); } - SYS_VADVISE = 72 // { int|sys||ovadvise(int anom); } - SYS_MUNMAP = 73 // { int|sys||munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int|sys||mprotect(void *addr, size_t len, int prot); } - SYS_MADVISE = 75 // { int|sys||madvise(void *addr, size_t len, int behav); } - SYS_MINCORE = 78 // { int|sys||mincore(void *addr, size_t len, char *vec); } - SYS_GETGROUPS = 79 // { int|sys||getgroups(int gidsetsize, gid_t *gidset); } - SYS_SETGROUPS = 80 // { int|sys||setgroups(int gidsetsize, const gid_t *gidset); } - SYS_GETPGRP = 81 // { int|sys||getpgrp(void); } - SYS_SETPGID = 82 // { int|sys||setpgid(pid_t pid, pid_t pgid); } - SYS_DUP2 = 90 // { int|sys||dup2(int from, int to); } - SYS_FCNTL = 92 // { int|sys||fcntl(int fd, int cmd, ... void *arg); } - SYS_FSYNC = 95 // { int|sys||fsync(int fd); } - SYS_SETPRIORITY = 96 // { int|sys||setpriority(int which, id_t who, int prio); } - SYS_CONNECT = 98 // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); } - SYS_GETPRIORITY = 100 // { int|sys||getpriority(int which, id_t who); } - SYS_BIND = 104 // { int|sys||bind(int s, const struct sockaddr *name, socklen_t namelen); } - SYS_SETSOCKOPT = 105 // { int|sys||setsockopt(int s, int level, int name, const void *val, socklen_t valsize); } - SYS_LISTEN = 106 // { int|sys||listen(int s, int backlog); } - SYS_GETSOCKOPT = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } - SYS_READV = 120 // { ssize_t|sys||readv(int fd, const struct iovec *iovp, int iovcnt); } - SYS_WRITEV = 121 // { ssize_t|sys||writev(int fd, const struct iovec *iovp, int iovcnt); } - SYS_FCHOWN = 123 // { int|sys||fchown(int fd, uid_t uid, gid_t gid); } - SYS_FCHMOD = 124 // { int|sys||fchmod(int fd, mode_t mode); } - SYS_SETREUID = 126 // { int|sys||setreuid(uid_t ruid, uid_t euid); } - SYS_SETREGID = 127 // { int|sys||setregid(gid_t rgid, gid_t egid); } - SYS_RENAME = 128 // { int|sys||rename(const char *from, const char *to); } - SYS_FLOCK = 131 // { int|sys||flock(int fd, int how); } - SYS_MKFIFO = 132 // { int|sys||mkfifo(const char *path, mode_t mode); } - SYS_SENDTO = 133 // { ssize_t|sys||sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); } - SYS_SHUTDOWN = 134 // { int|sys||shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int|sys||socketpair(int domain, int type, int protocol, int *rsv); } - SYS_MKDIR = 136 // { int|sys||mkdir(const char *path, mode_t mode); } - SYS_RMDIR = 137 // { int|sys||rmdir(const char *path); } - SYS_SETSID = 147 // { int|sys||setsid(void); } - SYS_SYSARCH = 165 // { int|sys||sysarch(int op, void *parms); } - SYS_PREAD = 173 // { ssize_t|sys||pread(int fd, void *buf, size_t nbyte, int PAD, off_t offset); } - SYS_PWRITE = 174 // { ssize_t|sys||pwrite(int fd, const void *buf, size_t nbyte, int PAD, off_t offset); } - SYS_NTP_ADJTIME = 176 // { int|sys||ntp_adjtime(struct timex *tp); } - SYS_SETGID = 181 // { int|sys||setgid(gid_t gid); } - SYS_SETEGID = 182 // { int|sys||setegid(gid_t egid); } - SYS_SETEUID = 183 // { int|sys||seteuid(uid_t euid); } - SYS_PATHCONF = 191 // { long|sys||pathconf(const char *path, int name); } - SYS_FPATHCONF = 192 // { long|sys||fpathconf(int fd, int name); } - SYS_GETRLIMIT = 194 // { int|sys||getrlimit(int which, struct rlimit *rlp); } - SYS_SETRLIMIT = 195 // { int|sys||setrlimit(int which, const struct rlimit *rlp); } - SYS_MMAP = 197 // { void *|sys||mmap(void *addr, size_t len, int prot, int flags, int fd, long PAD, off_t pos); } - SYS_LSEEK = 199 // { off_t|sys||lseek(int fd, int PAD, off_t offset, int whence); } - SYS_TRUNCATE = 200 // { int|sys||truncate(const char *path, int PAD, off_t length); } - SYS_FTRUNCATE = 201 // { int|sys||ftruncate(int fd, int PAD, off_t length); } - SYS___SYSCTL = 202 // { int|sys||__sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, const void *new, size_t newlen); } - SYS_MLOCK = 203 // { int|sys||mlock(const void *addr, size_t len); } - SYS_MUNLOCK = 204 // { int|sys||munlock(const void *addr, size_t len); } - SYS_UNDELETE = 205 // { int|sys||undelete(const char *path); } - SYS_GETPGID = 207 // { pid_t|sys||getpgid(pid_t pid); } - SYS_REBOOT = 208 // { int|sys||reboot(int opt, char *bootstr); } - SYS_POLL = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); } - SYS_SEMGET = 221 // { int|sys||semget(key_t key, int nsems, int semflg); } - SYS_SEMOP = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); } - SYS_SEMCONFIG = 223 // { int|sys||semconfig(int flag); } - SYS_MSGGET = 225 // { int|sys||msgget(key_t key, int msgflg); } - SYS_MSGSND = 226 // { int|sys||msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } - SYS_MSGRCV = 227 // { ssize_t|sys||msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } - SYS_SHMAT = 228 // { void *|sys||shmat(int shmid, const void *shmaddr, int shmflg); } - SYS_SHMDT = 230 // { int|sys||shmdt(const void *shmaddr); } - SYS_SHMGET = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); } - SYS_TIMER_CREATE = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); } - SYS_TIMER_DELETE = 236 // { int|sys||timer_delete(timer_t timerid); } - SYS_TIMER_GETOVERRUN = 239 // { int|sys||timer_getoverrun(timer_t timerid); } - SYS_FDATASYNC = 241 // { int|sys||fdatasync(int fd); } - SYS_MLOCKALL = 242 // { int|sys||mlockall(int flags); } - SYS_MUNLOCKALL = 243 // { int|sys||munlockall(void); } - SYS_SIGQUEUEINFO = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); } - SYS_MODCTL = 246 // { int|sys||modctl(int cmd, void *arg); } - SYS___POSIX_RENAME = 270 // { int|sys||__posix_rename(const char *from, const char *to); } - SYS_SWAPCTL = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); } - SYS_MINHERIT = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); } - SYS_LCHMOD = 274 // { int|sys||lchmod(const char *path, mode_t mode); } - SYS_LCHOWN = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); } - SYS_MSYNC = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); } - SYS___POSIX_CHOWN = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); } - SYS___POSIX_FCHOWN = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); } - SYS___POSIX_LCHOWN = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); } - SYS_GETSID = 286 // { pid_t|sys||getsid(pid_t pid); } - SYS___CLONE = 287 // { pid_t|sys||__clone(int flags, void *stack); } - SYS_FKTRACE = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); } - SYS_PREADV = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } - SYS_PWRITEV = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } - SYS___GETCWD = 296 // { int|sys||__getcwd(char *bufp, size_t length); } - SYS_FCHROOT = 297 // { int|sys||fchroot(int fd); } - SYS_LCHFLAGS = 304 // { int|sys||lchflags(const char *path, u_long flags); } - SYS_ISSETUGID = 305 // { int|sys||issetugid(void); } - SYS_UTRACE = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); } - SYS_GETCONTEXT = 307 // { int|sys||getcontext(struct __ucontext *ucp); } - SYS_SETCONTEXT = 308 // { int|sys||setcontext(const struct __ucontext *ucp); } - SYS__LWP_CREATE = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); } - SYS__LWP_EXIT = 310 // { int|sys||_lwp_exit(void); } - SYS__LWP_SELF = 311 // { lwpid_t|sys||_lwp_self(void); } - SYS__LWP_WAIT = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); } - SYS__LWP_SUSPEND = 313 // { int|sys||_lwp_suspend(lwpid_t target); } - SYS__LWP_CONTINUE = 314 // { int|sys||_lwp_continue(lwpid_t target); } - SYS__LWP_WAKEUP = 315 // { int|sys||_lwp_wakeup(lwpid_t target); } - SYS__LWP_GETPRIVATE = 316 // { void *|sys||_lwp_getprivate(void); } - SYS__LWP_SETPRIVATE = 317 // { void|sys||_lwp_setprivate(void *ptr); } - SYS__LWP_KILL = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); } - SYS__LWP_DETACH = 319 // { int|sys||_lwp_detach(lwpid_t target); } - SYS__LWP_UNPARK = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); } - SYS__LWP_UNPARK_ALL = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); } - SYS__LWP_SETNAME = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); } - SYS__LWP_GETNAME = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); } - SYS__LWP_CTL = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); } - SYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); } - SYS_PMC_GET_INFO = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); } - SYS_PMC_CONTROL = 342 // { int|sys||pmc_control(int ctr, int op, void *args); } - SYS_RASCTL = 343 // { int|sys||rasctl(void *addr, size_t len, int op); } - SYS_KQUEUE = 344 // { int|sys||kqueue(void); } - SYS__SCHED_SETPARAM = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); } - SYS__SCHED_GETPARAM = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); } - SYS__SCHED_SETAFFINITY = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); } - SYS__SCHED_GETAFFINITY = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); } - SYS_SCHED_YIELD = 350 // { int|sys||sched_yield(void); } - SYS_FSYNC_RANGE = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); } - SYS_UUIDGEN = 355 // { int|sys||uuidgen(struct uuid *store, int count); } - SYS_GETVFSSTAT = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); } - SYS_STATVFS1 = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); } - SYS_FSTATVFS1 = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); } - SYS_EXTATTRCTL = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_FILE = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } - SYS_EXTATTR_GET_FILE = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_FILE = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_FD = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } - SYS_EXTATTR_GET_FD = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_FD = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_LINK = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } - SYS_EXTATTR_GET_LINK = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_LINK = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); } - SYS_EXTATTR_LIST_FD = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } - SYS_EXTATTR_LIST_FILE = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); } - SYS_EXTATTR_LIST_LINK = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); } - SYS_SETXATTR = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); } - SYS_LSETXATTR = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); } - SYS_FSETXATTR = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); } - SYS_GETXATTR = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); } - SYS_LGETXATTR = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); } - SYS_FGETXATTR = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); } - SYS_LISTXATTR = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); } - SYS_LLISTXATTR = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); } - SYS_FLISTXATTR = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); } - SYS_REMOVEXATTR = 384 // { int|sys||removexattr(const char *path, const char *name); } - SYS_LREMOVEXATTR = 385 // { int|sys||lremovexattr(const char *path, const char *name); } - SYS_FREMOVEXATTR = 386 // { int|sys||fremovexattr(int fd, const char *name); } - SYS_GETDENTS = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); } - SYS_SOCKET = 394 // { int|sys|30|socket(int domain, int type, int protocol); } - SYS_GETFH = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); } - SYS_MOUNT = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); } - SYS_MREMAP = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); } - SYS_PSET_CREATE = 412 // { int|sys||pset_create(psetid_t *psid); } - SYS_PSET_DESTROY = 413 // { int|sys||pset_destroy(psetid_t psid); } - SYS_PSET_ASSIGN = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); } - SYS__PSET_BIND = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); } - SYS_POSIX_FADVISE = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); } - SYS_SELECT = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } - SYS_GETTIMEOFDAY = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); } - SYS_SETTIMEOFDAY = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); } - SYS_UTIMES = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); } - SYS_ADJTIME = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); } - SYS_FUTIMES = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); } - SYS_LUTIMES = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); } - SYS_SETITIMER = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } - SYS_GETITIMER = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); } - SYS_CLOCK_GETTIME = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); } - SYS_CLOCK_SETTIME = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); } - SYS_CLOCK_GETRES = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); } - SYS_NANOSLEEP = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } - SYS___SIGTIMEDWAIT = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); } - SYS__LWP_PARK = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); } - SYS_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); } - SYS_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); } - SYS_POLLTS = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } - SYS_STAT = 439 // { int|sys|50|stat(const char *path, struct stat *ub); } - SYS_FSTAT = 440 // { int|sys|50|fstat(int fd, struct stat *sb); } - SYS_LSTAT = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); } - SYS___SEMCTL = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); } - SYS_SHMCTL = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); } - SYS_MSGCTL = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); } - SYS_GETRUSAGE = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); } - SYS_TIMER_SETTIME = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } - SYS_TIMER_GETTIME = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); } - SYS_NTP_GETTIME = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); } - SYS_WAIT4 = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); } - SYS_MKNOD = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); } - SYS_FHSTAT = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); } - SYS_PIPE2 = 453 // { int|sys||pipe2(int *fildes, int flags); } - SYS_DUP3 = 454 // { int|sys||dup3(int from, int to, int flags); } - SYS_KQUEUE1 = 455 // { int|sys||kqueue1(int flags); } - SYS_PACCEPT = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); } - SYS_LINKAT = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); } - SYS_RENAMEAT = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); } - SYS_MKFIFOAT = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); } - SYS_MKNODAT = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); } - SYS_MKDIRAT = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); } - SYS_FACCESSAT = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); } - SYS_FCHMODAT = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); } - SYS_FCHOWNAT = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); } - SYS_FEXECVE = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); } - SYS_FSTATAT = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); } - SYS_UTIMENSAT = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); } - SYS_OPENAT = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); } - SYS_READLINKAT = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); } - SYS_SYMLINKAT = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); } - SYS_UNLINKAT = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); } - SYS_FUTIMENS = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); } - SYS___QUOTACTL = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); } - SYS_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); } - SYS_RECVMMSG = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); } - SYS_SENDMMSG = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); } -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go deleted file mode 100644 index 3e8ce2a..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go +++ /dev/null @@ -1,207 +0,0 @@ -// mksysnum_openbsd.pl -// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT - -// +build 386,openbsd - -package unix - -const ( - SYS_EXIT = 1 // { void sys_exit(int rval); } - SYS_FORK = 2 // { int sys_fork(void); } - SYS_READ = 3 // { ssize_t sys_read(int fd, void *buf, size_t nbyte); } - SYS_WRITE = 4 // { ssize_t sys_write(int fd, const void *buf, \ - SYS_OPEN = 5 // { int sys_open(const char *path, \ - SYS_CLOSE = 6 // { int sys_close(int fd); } - SYS___TFORK = 8 // { int sys___tfork(const struct __tfork *param, \ - SYS_LINK = 9 // { int sys_link(const char *path, const char *link); } - SYS_UNLINK = 10 // { int sys_unlink(const char *path); } - SYS_WAIT4 = 11 // { pid_t sys_wait4(pid_t pid, int *status, \ - SYS_CHDIR = 12 // { int sys_chdir(const char *path); } - SYS_FCHDIR = 13 // { int sys_fchdir(int fd); } - SYS_MKNOD = 14 // { int sys_mknod(const char *path, mode_t mode, \ - SYS_CHMOD = 15 // { int sys_chmod(const char *path, mode_t mode); } - SYS_CHOWN = 16 // { int sys_chown(const char *path, uid_t uid, \ - SYS_OBREAK = 17 // { int sys_obreak(char *nsize); } break - SYS_GETDTABLECOUNT = 18 // { int sys_getdtablecount(void); } - SYS_GETRUSAGE = 19 // { int sys_getrusage(int who, \ - SYS_GETPID = 20 // { pid_t sys_getpid(void); } - SYS_MOUNT = 21 // { int sys_mount(const char *type, const char *path, \ - SYS_UNMOUNT = 22 // { int sys_unmount(const char *path, int flags); } - SYS_SETUID = 23 // { int sys_setuid(uid_t uid); } - SYS_GETUID = 24 // { uid_t sys_getuid(void); } - SYS_GETEUID = 25 // { uid_t sys_geteuid(void); } - SYS_PTRACE = 26 // { int sys_ptrace(int req, pid_t pid, caddr_t addr, \ - SYS_RECVMSG = 27 // { ssize_t sys_recvmsg(int s, struct msghdr *msg, \ - SYS_SENDMSG = 28 // { ssize_t sys_sendmsg(int s, \ - SYS_RECVFROM = 29 // { ssize_t sys_recvfrom(int s, void *buf, size_t len, \ - SYS_ACCEPT = 30 // { int sys_accept(int s, struct sockaddr *name, \ - SYS_GETPEERNAME = 31 // { int sys_getpeername(int fdes, struct sockaddr *asa, \ - SYS_GETSOCKNAME = 32 // { int sys_getsockname(int fdes, struct sockaddr *asa, \ - SYS_ACCESS = 33 // { int sys_access(const char *path, int flags); } - SYS_CHFLAGS = 34 // { int sys_chflags(const char *path, u_int flags); } - SYS_FCHFLAGS = 35 // { int sys_fchflags(int fd, u_int flags); } - SYS_SYNC = 36 // { void sys_sync(void); } - SYS_KILL = 37 // { int sys_kill(int pid, int signum); } - SYS_STAT = 38 // { int sys_stat(const char *path, struct stat *ub); } - SYS_GETPPID = 39 // { pid_t sys_getppid(void); } - SYS_LSTAT = 40 // { int sys_lstat(const char *path, struct stat *ub); } - SYS_DUP = 41 // { int sys_dup(int fd); } - SYS_FSTATAT = 42 // { int sys_fstatat(int fd, const char *path, \ - SYS_GETEGID = 43 // { gid_t sys_getegid(void); } - SYS_PROFIL = 44 // { int sys_profil(caddr_t samples, size_t size, \ - SYS_KTRACE = 45 // { int sys_ktrace(const char *fname, int ops, \ - SYS_SIGACTION = 46 // { int sys_sigaction(int signum, \ - SYS_GETGID = 47 // { gid_t sys_getgid(void); } - SYS_SIGPROCMASK = 48 // { int sys_sigprocmask(int how, sigset_t mask); } - SYS_GETLOGIN = 49 // { int sys_getlogin(char *namebuf, u_int namelen); } - SYS_SETLOGIN = 50 // { int sys_setlogin(const char *namebuf); } - SYS_ACCT = 51 // { int sys_acct(const char *path); } - SYS_SIGPENDING = 52 // { int sys_sigpending(void); } - SYS_FSTAT = 53 // { int sys_fstat(int fd, struct stat *sb); } - SYS_IOCTL = 54 // { int sys_ioctl(int fd, \ - SYS_REBOOT = 55 // { int sys_reboot(int opt); } - SYS_REVOKE = 56 // { int sys_revoke(const char *path); } - SYS_SYMLINK = 57 // { int sys_symlink(const char *path, \ - SYS_READLINK = 58 // { int sys_readlink(const char *path, char *buf, \ - SYS_EXECVE = 59 // { int sys_execve(const char *path, \ - SYS_UMASK = 60 // { mode_t sys_umask(mode_t newmask); } - SYS_CHROOT = 61 // { int sys_chroot(const char *path); } - SYS_GETFSSTAT = 62 // { int sys_getfsstat(struct statfs *buf, size_t bufsize, \ - SYS_STATFS = 63 // { int sys_statfs(const char *path, \ - SYS_FSTATFS = 64 // { int sys_fstatfs(int fd, struct statfs *buf); } - SYS_FHSTATFS = 65 // { int sys_fhstatfs(const fhandle_t *fhp, \ - SYS_VFORK = 66 // { int sys_vfork(void); } - SYS_GETTIMEOFDAY = 67 // { int sys_gettimeofday(struct timeval *tp, \ - SYS_SETTIMEOFDAY = 68 // { int sys_settimeofday(const struct timeval *tv, \ - SYS_SETITIMER = 69 // { int sys_setitimer(int which, \ - SYS_GETITIMER = 70 // { int sys_getitimer(int which, \ - SYS_SELECT = 71 // { int sys_select(int nd, fd_set *in, fd_set *ou, \ - SYS_KEVENT = 72 // { int sys_kevent(int fd, \ - SYS_MUNMAP = 73 // { int sys_munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int sys_mprotect(void *addr, size_t len, \ - SYS_MADVISE = 75 // { int sys_madvise(void *addr, size_t len, \ - SYS_UTIMES = 76 // { int sys_utimes(const char *path, \ - SYS_FUTIMES = 77 // { int sys_futimes(int fd, \ - SYS_MINCORE = 78 // { int sys_mincore(void *addr, size_t len, \ - SYS_GETGROUPS = 79 // { int sys_getgroups(int gidsetsize, \ - SYS_SETGROUPS = 80 // { int sys_setgroups(int gidsetsize, \ - SYS_GETPGRP = 81 // { int sys_getpgrp(void); } - SYS_SETPGID = 82 // { int sys_setpgid(pid_t pid, int pgid); } - SYS_UTIMENSAT = 84 // { int sys_utimensat(int fd, const char *path, \ - SYS_FUTIMENS = 85 // { int sys_futimens(int fd, \ - SYS_CLOCK_GETTIME = 87 // { int sys_clock_gettime(clockid_t clock_id, \ - SYS_CLOCK_SETTIME = 88 // { int sys_clock_settime(clockid_t clock_id, \ - SYS_CLOCK_GETRES = 89 // { int sys_clock_getres(clockid_t clock_id, \ - SYS_DUP2 = 90 // { int sys_dup2(int from, int to); } - SYS_NANOSLEEP = 91 // { int sys_nanosleep(const struct timespec *rqtp, \ - SYS_FCNTL = 92 // { int sys_fcntl(int fd, int cmd, ... void *arg); } - SYS___THRSLEEP = 94 // { int sys___thrsleep(const volatile void *ident, \ - SYS_FSYNC = 95 // { int sys_fsync(int fd); } - SYS_SETPRIORITY = 96 // { int sys_setpriority(int which, id_t who, int prio); } - SYS_SOCKET = 97 // { int sys_socket(int domain, int type, int protocol); } - SYS_CONNECT = 98 // { int sys_connect(int s, const struct sockaddr *name, \ - SYS_GETDENTS = 99 // { int sys_getdents(int fd, void *buf, size_t buflen); } - SYS_GETPRIORITY = 100 // { int sys_getpriority(int which, id_t who); } - SYS_SIGRETURN = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); } - SYS_BIND = 104 // { int sys_bind(int s, const struct sockaddr *name, \ - SYS_SETSOCKOPT = 105 // { int sys_setsockopt(int s, int level, int name, \ - SYS_LISTEN = 106 // { int sys_listen(int s, int backlog); } - SYS_PPOLL = 109 // { int sys_ppoll(struct pollfd *fds, \ - SYS_PSELECT = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, \ - SYS_SIGSUSPEND = 111 // { int sys_sigsuspend(int mask); } - SYS_GETSOCKOPT = 118 // { int sys_getsockopt(int s, int level, int name, \ - SYS_READV = 120 // { ssize_t sys_readv(int fd, \ - SYS_WRITEV = 121 // { ssize_t sys_writev(int fd, \ - SYS_FCHOWN = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); } - SYS_FCHMOD = 124 // { int sys_fchmod(int fd, mode_t mode); } - SYS_SETREUID = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); } - SYS_SETREGID = 127 // { int sys_setregid(gid_t rgid, gid_t egid); } - SYS_RENAME = 128 // { int sys_rename(const char *from, const char *to); } - SYS_FLOCK = 131 // { int sys_flock(int fd, int how); } - SYS_MKFIFO = 132 // { int sys_mkfifo(const char *path, mode_t mode); } - SYS_SENDTO = 133 // { ssize_t sys_sendto(int s, const void *buf, \ - SYS_SHUTDOWN = 134 // { int sys_shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int sys_socketpair(int domain, int type, \ - SYS_MKDIR = 136 // { int sys_mkdir(const char *path, mode_t mode); } - SYS_RMDIR = 137 // { int sys_rmdir(const char *path); } - SYS_ADJTIME = 140 // { int sys_adjtime(const struct timeval *delta, \ - SYS_SETSID = 147 // { int sys_setsid(void); } - SYS_QUOTACTL = 148 // { int sys_quotactl(const char *path, int cmd, \ - SYS_NFSSVC = 155 // { int sys_nfssvc(int flag, void *argp); } - SYS_GETFH = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); } - SYS_SYSARCH = 165 // { int sys_sysarch(int op, void *parms); } - SYS_PREAD = 173 // { ssize_t sys_pread(int fd, void *buf, \ - SYS_PWRITE = 174 // { ssize_t sys_pwrite(int fd, const void *buf, \ - SYS_SETGID = 181 // { int sys_setgid(gid_t gid); } - SYS_SETEGID = 182 // { int sys_setegid(gid_t egid); } - SYS_SETEUID = 183 // { int sys_seteuid(uid_t euid); } - SYS_PATHCONF = 191 // { long sys_pathconf(const char *path, int name); } - SYS_FPATHCONF = 192 // { long sys_fpathconf(int fd, int name); } - SYS_SWAPCTL = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); } - SYS_GETRLIMIT = 194 // { int sys_getrlimit(int which, \ - SYS_SETRLIMIT = 195 // { int sys_setrlimit(int which, \ - SYS_MMAP = 197 // { void *sys_mmap(void *addr, size_t len, int prot, \ - SYS_LSEEK = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, \ - SYS_TRUNCATE = 200 // { int sys_truncate(const char *path, int pad, \ - SYS_FTRUNCATE = 201 // { int sys_ftruncate(int fd, int pad, off_t length); } - SYS___SYSCTL = 202 // { int sys___sysctl(const int *name, u_int namelen, \ - SYS_MLOCK = 203 // { int sys_mlock(const void *addr, size_t len); } - SYS_MUNLOCK = 204 // { int sys_munlock(const void *addr, size_t len); } - SYS_GETPGID = 207 // { pid_t sys_getpgid(pid_t pid); } - SYS_UTRACE = 209 // { int sys_utrace(const char *label, const void *addr, \ - SYS_SEMGET = 221 // { int sys_semget(key_t key, int nsems, int semflg); } - SYS_MSGGET = 225 // { int sys_msgget(key_t key, int msgflg); } - SYS_MSGSND = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, \ - SYS_MSGRCV = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, \ - SYS_SHMAT = 228 // { void *sys_shmat(int shmid, const void *shmaddr, \ - SYS_SHMDT = 230 // { int sys_shmdt(const void *shmaddr); } - SYS_MINHERIT = 250 // { int sys_minherit(void *addr, size_t len, \ - SYS_POLL = 252 // { int sys_poll(struct pollfd *fds, \ - SYS_ISSETUGID = 253 // { int sys_issetugid(void); } - SYS_LCHOWN = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); } - SYS_GETSID = 255 // { pid_t sys_getsid(pid_t pid); } - SYS_MSYNC = 256 // { int sys_msync(void *addr, size_t len, int flags); } - SYS_PIPE = 263 // { int sys_pipe(int *fdp); } - SYS_FHOPEN = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); } - SYS_PREADV = 267 // { ssize_t sys_preadv(int fd, \ - SYS_PWRITEV = 268 // { ssize_t sys_pwritev(int fd, \ - SYS_KQUEUE = 269 // { int sys_kqueue(void); } - SYS_MLOCKALL = 271 // { int sys_mlockall(int flags); } - SYS_MUNLOCKALL = 272 // { int sys_munlockall(void); } - SYS_GETRESUID = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, \ - SYS_SETRESUID = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, \ - SYS_GETRESGID = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, \ - SYS_SETRESGID = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, \ - SYS_MQUERY = 286 // { void *sys_mquery(void *addr, size_t len, int prot, \ - SYS_CLOSEFROM = 287 // { int sys_closefrom(int fd); } - SYS_SIGALTSTACK = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, \ - SYS_SHMGET = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); } - SYS_SEMOP = 290 // { int sys_semop(int semid, struct sembuf *sops, \ - SYS_FHSTAT = 294 // { int sys_fhstat(const fhandle_t *fhp, \ - SYS___SEMCTL = 295 // { int sys___semctl(int semid, int semnum, int cmd, \ - SYS_SHMCTL = 296 // { int sys_shmctl(int shmid, int cmd, \ - SYS_MSGCTL = 297 // { int sys_msgctl(int msqid, int cmd, \ - SYS_SCHED_YIELD = 298 // { int sys_sched_yield(void); } - SYS_GETTHRID = 299 // { pid_t sys_getthrid(void); } - SYS___THRWAKEUP = 301 // { int sys___thrwakeup(const volatile void *ident, \ - SYS___THREXIT = 302 // { void sys___threxit(pid_t *notdead); } - SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, \ - SYS___GETCWD = 304 // { int sys___getcwd(char *buf, size_t len); } - SYS_ADJFREQ = 305 // { int sys_adjfreq(const int64_t *freq, \ - SYS_SETRTABLE = 310 // { int sys_setrtable(int rtableid); } - SYS_GETRTABLE = 311 // { int sys_getrtable(void); } - SYS_FACCESSAT = 313 // { int sys_faccessat(int fd, const char *path, \ - SYS_FCHMODAT = 314 // { int sys_fchmodat(int fd, const char *path, \ - SYS_FCHOWNAT = 315 // { int sys_fchownat(int fd, const char *path, \ - SYS_LINKAT = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, \ - SYS_MKDIRAT = 318 // { int sys_mkdirat(int fd, const char *path, \ - SYS_MKFIFOAT = 319 // { int sys_mkfifoat(int fd, const char *path, \ - SYS_MKNODAT = 320 // { int sys_mknodat(int fd, const char *path, \ - SYS_OPENAT = 321 // { int sys_openat(int fd, const char *path, int flags, \ - SYS_READLINKAT = 322 // { ssize_t sys_readlinkat(int fd, const char *path, \ - SYS_RENAMEAT = 323 // { int sys_renameat(int fromfd, const char *from, \ - SYS_SYMLINKAT = 324 // { int sys_symlinkat(const char *path, int fd, \ - SYS_UNLINKAT = 325 // { int sys_unlinkat(int fd, const char *path, \ - SYS___SET_TCB = 329 // { void sys___set_tcb(void *tcb); } - SYS___GET_TCB = 330 // { void *sys___get_tcb(void); } -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go deleted file mode 100644 index bd28146..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go +++ /dev/null @@ -1,207 +0,0 @@ -// mksysnum_openbsd.pl -// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT - -// +build amd64,openbsd - -package unix - -const ( - SYS_EXIT = 1 // { void sys_exit(int rval); } - SYS_FORK = 2 // { int sys_fork(void); } - SYS_READ = 3 // { ssize_t sys_read(int fd, void *buf, size_t nbyte); } - SYS_WRITE = 4 // { ssize_t sys_write(int fd, const void *buf, \ - SYS_OPEN = 5 // { int sys_open(const char *path, \ - SYS_CLOSE = 6 // { int sys_close(int fd); } - SYS___TFORK = 8 // { int sys___tfork(const struct __tfork *param, \ - SYS_LINK = 9 // { int sys_link(const char *path, const char *link); } - SYS_UNLINK = 10 // { int sys_unlink(const char *path); } - SYS_WAIT4 = 11 // { pid_t sys_wait4(pid_t pid, int *status, \ - SYS_CHDIR = 12 // { int sys_chdir(const char *path); } - SYS_FCHDIR = 13 // { int sys_fchdir(int fd); } - SYS_MKNOD = 14 // { int sys_mknod(const char *path, mode_t mode, \ - SYS_CHMOD = 15 // { int sys_chmod(const char *path, mode_t mode); } - SYS_CHOWN = 16 // { int sys_chown(const char *path, uid_t uid, \ - SYS_OBREAK = 17 // { int sys_obreak(char *nsize); } break - SYS_GETDTABLECOUNT = 18 // { int sys_getdtablecount(void); } - SYS_GETRUSAGE = 19 // { int sys_getrusage(int who, \ - SYS_GETPID = 20 // { pid_t sys_getpid(void); } - SYS_MOUNT = 21 // { int sys_mount(const char *type, const char *path, \ - SYS_UNMOUNT = 22 // { int sys_unmount(const char *path, int flags); } - SYS_SETUID = 23 // { int sys_setuid(uid_t uid); } - SYS_GETUID = 24 // { uid_t sys_getuid(void); } - SYS_GETEUID = 25 // { uid_t sys_geteuid(void); } - SYS_PTRACE = 26 // { int sys_ptrace(int req, pid_t pid, caddr_t addr, \ - SYS_RECVMSG = 27 // { ssize_t sys_recvmsg(int s, struct msghdr *msg, \ - SYS_SENDMSG = 28 // { ssize_t sys_sendmsg(int s, \ - SYS_RECVFROM = 29 // { ssize_t sys_recvfrom(int s, void *buf, size_t len, \ - SYS_ACCEPT = 30 // { int sys_accept(int s, struct sockaddr *name, \ - SYS_GETPEERNAME = 31 // { int sys_getpeername(int fdes, struct sockaddr *asa, \ - SYS_GETSOCKNAME = 32 // { int sys_getsockname(int fdes, struct sockaddr *asa, \ - SYS_ACCESS = 33 // { int sys_access(const char *path, int flags); } - SYS_CHFLAGS = 34 // { int sys_chflags(const char *path, u_int flags); } - SYS_FCHFLAGS = 35 // { int sys_fchflags(int fd, u_int flags); } - SYS_SYNC = 36 // { void sys_sync(void); } - SYS_KILL = 37 // { int sys_kill(int pid, int signum); } - SYS_STAT = 38 // { int sys_stat(const char *path, struct stat *ub); } - SYS_GETPPID = 39 // { pid_t sys_getppid(void); } - SYS_LSTAT = 40 // { int sys_lstat(const char *path, struct stat *ub); } - SYS_DUP = 41 // { int sys_dup(int fd); } - SYS_FSTATAT = 42 // { int sys_fstatat(int fd, const char *path, \ - SYS_GETEGID = 43 // { gid_t sys_getegid(void); } - SYS_PROFIL = 44 // { int sys_profil(caddr_t samples, size_t size, \ - SYS_KTRACE = 45 // { int sys_ktrace(const char *fname, int ops, \ - SYS_SIGACTION = 46 // { int sys_sigaction(int signum, \ - SYS_GETGID = 47 // { gid_t sys_getgid(void); } - SYS_SIGPROCMASK = 48 // { int sys_sigprocmask(int how, sigset_t mask); } - SYS_GETLOGIN = 49 // { int sys_getlogin(char *namebuf, u_int namelen); } - SYS_SETLOGIN = 50 // { int sys_setlogin(const char *namebuf); } - SYS_ACCT = 51 // { int sys_acct(const char *path); } - SYS_SIGPENDING = 52 // { int sys_sigpending(void); } - SYS_FSTAT = 53 // { int sys_fstat(int fd, struct stat *sb); } - SYS_IOCTL = 54 // { int sys_ioctl(int fd, \ - SYS_REBOOT = 55 // { int sys_reboot(int opt); } - SYS_REVOKE = 56 // { int sys_revoke(const char *path); } - SYS_SYMLINK = 57 // { int sys_symlink(const char *path, \ - SYS_READLINK = 58 // { int sys_readlink(const char *path, char *buf, \ - SYS_EXECVE = 59 // { int sys_execve(const char *path, \ - SYS_UMASK = 60 // { mode_t sys_umask(mode_t newmask); } - SYS_CHROOT = 61 // { int sys_chroot(const char *path); } - SYS_GETFSSTAT = 62 // { int sys_getfsstat(struct statfs *buf, size_t bufsize, \ - SYS_STATFS = 63 // { int sys_statfs(const char *path, \ - SYS_FSTATFS = 64 // { int sys_fstatfs(int fd, struct statfs *buf); } - SYS_FHSTATFS = 65 // { int sys_fhstatfs(const fhandle_t *fhp, \ - SYS_VFORK = 66 // { int sys_vfork(void); } - SYS_GETTIMEOFDAY = 67 // { int sys_gettimeofday(struct timeval *tp, \ - SYS_SETTIMEOFDAY = 68 // { int sys_settimeofday(const struct timeval *tv, \ - SYS_SETITIMER = 69 // { int sys_setitimer(int which, \ - SYS_GETITIMER = 70 // { int sys_getitimer(int which, \ - SYS_SELECT = 71 // { int sys_select(int nd, fd_set *in, fd_set *ou, \ - SYS_KEVENT = 72 // { int sys_kevent(int fd, \ - SYS_MUNMAP = 73 // { int sys_munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int sys_mprotect(void *addr, size_t len, \ - SYS_MADVISE = 75 // { int sys_madvise(void *addr, size_t len, \ - SYS_UTIMES = 76 // { int sys_utimes(const char *path, \ - SYS_FUTIMES = 77 // { int sys_futimes(int fd, \ - SYS_MINCORE = 78 // { int sys_mincore(void *addr, size_t len, \ - SYS_GETGROUPS = 79 // { int sys_getgroups(int gidsetsize, \ - SYS_SETGROUPS = 80 // { int sys_setgroups(int gidsetsize, \ - SYS_GETPGRP = 81 // { int sys_getpgrp(void); } - SYS_SETPGID = 82 // { int sys_setpgid(pid_t pid, int pgid); } - SYS_UTIMENSAT = 84 // { int sys_utimensat(int fd, const char *path, \ - SYS_FUTIMENS = 85 // { int sys_futimens(int fd, \ - SYS_CLOCK_GETTIME = 87 // { int sys_clock_gettime(clockid_t clock_id, \ - SYS_CLOCK_SETTIME = 88 // { int sys_clock_settime(clockid_t clock_id, \ - SYS_CLOCK_GETRES = 89 // { int sys_clock_getres(clockid_t clock_id, \ - SYS_DUP2 = 90 // { int sys_dup2(int from, int to); } - SYS_NANOSLEEP = 91 // { int sys_nanosleep(const struct timespec *rqtp, \ - SYS_FCNTL = 92 // { int sys_fcntl(int fd, int cmd, ... void *arg); } - SYS___THRSLEEP = 94 // { int sys___thrsleep(const volatile void *ident, \ - SYS_FSYNC = 95 // { int sys_fsync(int fd); } - SYS_SETPRIORITY = 96 // { int sys_setpriority(int which, id_t who, int prio); } - SYS_SOCKET = 97 // { int sys_socket(int domain, int type, int protocol); } - SYS_CONNECT = 98 // { int sys_connect(int s, const struct sockaddr *name, \ - SYS_GETDENTS = 99 // { int sys_getdents(int fd, void *buf, size_t buflen); } - SYS_GETPRIORITY = 100 // { int sys_getpriority(int which, id_t who); } - SYS_SIGRETURN = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); } - SYS_BIND = 104 // { int sys_bind(int s, const struct sockaddr *name, \ - SYS_SETSOCKOPT = 105 // { int sys_setsockopt(int s, int level, int name, \ - SYS_LISTEN = 106 // { int sys_listen(int s, int backlog); } - SYS_PPOLL = 109 // { int sys_ppoll(struct pollfd *fds, \ - SYS_PSELECT = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, \ - SYS_SIGSUSPEND = 111 // { int sys_sigsuspend(int mask); } - SYS_GETSOCKOPT = 118 // { int sys_getsockopt(int s, int level, int name, \ - SYS_READV = 120 // { ssize_t sys_readv(int fd, \ - SYS_WRITEV = 121 // { ssize_t sys_writev(int fd, \ - SYS_FCHOWN = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); } - SYS_FCHMOD = 124 // { int sys_fchmod(int fd, mode_t mode); } - SYS_SETREUID = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); } - SYS_SETREGID = 127 // { int sys_setregid(gid_t rgid, gid_t egid); } - SYS_RENAME = 128 // { int sys_rename(const char *from, const char *to); } - SYS_FLOCK = 131 // { int sys_flock(int fd, int how); } - SYS_MKFIFO = 132 // { int sys_mkfifo(const char *path, mode_t mode); } - SYS_SENDTO = 133 // { ssize_t sys_sendto(int s, const void *buf, \ - SYS_SHUTDOWN = 134 // { int sys_shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int sys_socketpair(int domain, int type, \ - SYS_MKDIR = 136 // { int sys_mkdir(const char *path, mode_t mode); } - SYS_RMDIR = 137 // { int sys_rmdir(const char *path); } - SYS_ADJTIME = 140 // { int sys_adjtime(const struct timeval *delta, \ - SYS_SETSID = 147 // { int sys_setsid(void); } - SYS_QUOTACTL = 148 // { int sys_quotactl(const char *path, int cmd, \ - SYS_NFSSVC = 155 // { int sys_nfssvc(int flag, void *argp); } - SYS_GETFH = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); } - SYS_SYSARCH = 165 // { int sys_sysarch(int op, void *parms); } - SYS_PREAD = 173 // { ssize_t sys_pread(int fd, void *buf, \ - SYS_PWRITE = 174 // { ssize_t sys_pwrite(int fd, const void *buf, \ - SYS_SETGID = 181 // { int sys_setgid(gid_t gid); } - SYS_SETEGID = 182 // { int sys_setegid(gid_t egid); } - SYS_SETEUID = 183 // { int sys_seteuid(uid_t euid); } - SYS_PATHCONF = 191 // { long sys_pathconf(const char *path, int name); } - SYS_FPATHCONF = 192 // { long sys_fpathconf(int fd, int name); } - SYS_SWAPCTL = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); } - SYS_GETRLIMIT = 194 // { int sys_getrlimit(int which, \ - SYS_SETRLIMIT = 195 // { int sys_setrlimit(int which, \ - SYS_MMAP = 197 // { void *sys_mmap(void *addr, size_t len, int prot, \ - SYS_LSEEK = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, \ - SYS_TRUNCATE = 200 // { int sys_truncate(const char *path, int pad, \ - SYS_FTRUNCATE = 201 // { int sys_ftruncate(int fd, int pad, off_t length); } - SYS___SYSCTL = 202 // { int sys___sysctl(const int *name, u_int namelen, \ - SYS_MLOCK = 203 // { int sys_mlock(const void *addr, size_t len); } - SYS_MUNLOCK = 204 // { int sys_munlock(const void *addr, size_t len); } - SYS_GETPGID = 207 // { pid_t sys_getpgid(pid_t pid); } - SYS_UTRACE = 209 // { int sys_utrace(const char *label, const void *addr, \ - SYS_SEMGET = 221 // { int sys_semget(key_t key, int nsems, int semflg); } - SYS_MSGGET = 225 // { int sys_msgget(key_t key, int msgflg); } - SYS_MSGSND = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, \ - SYS_MSGRCV = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, \ - SYS_SHMAT = 228 // { void *sys_shmat(int shmid, const void *shmaddr, \ - SYS_SHMDT = 230 // { int sys_shmdt(const void *shmaddr); } - SYS_MINHERIT = 250 // { int sys_minherit(void *addr, size_t len, \ - SYS_POLL = 252 // { int sys_poll(struct pollfd *fds, \ - SYS_ISSETUGID = 253 // { int sys_issetugid(void); } - SYS_LCHOWN = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); } - SYS_GETSID = 255 // { pid_t sys_getsid(pid_t pid); } - SYS_MSYNC = 256 // { int sys_msync(void *addr, size_t len, int flags); } - SYS_PIPE = 263 // { int sys_pipe(int *fdp); } - SYS_FHOPEN = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); } - SYS_PREADV = 267 // { ssize_t sys_preadv(int fd, \ - SYS_PWRITEV = 268 // { ssize_t sys_pwritev(int fd, \ - SYS_KQUEUE = 269 // { int sys_kqueue(void); } - SYS_MLOCKALL = 271 // { int sys_mlockall(int flags); } - SYS_MUNLOCKALL = 272 // { int sys_munlockall(void); } - SYS_GETRESUID = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, \ - SYS_SETRESUID = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, \ - SYS_GETRESGID = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, \ - SYS_SETRESGID = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, \ - SYS_MQUERY = 286 // { void *sys_mquery(void *addr, size_t len, int prot, \ - SYS_CLOSEFROM = 287 // { int sys_closefrom(int fd); } - SYS_SIGALTSTACK = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, \ - SYS_SHMGET = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); } - SYS_SEMOP = 290 // { int sys_semop(int semid, struct sembuf *sops, \ - SYS_FHSTAT = 294 // { int sys_fhstat(const fhandle_t *fhp, \ - SYS___SEMCTL = 295 // { int sys___semctl(int semid, int semnum, int cmd, \ - SYS_SHMCTL = 296 // { int sys_shmctl(int shmid, int cmd, \ - SYS_MSGCTL = 297 // { int sys_msgctl(int msqid, int cmd, \ - SYS_SCHED_YIELD = 298 // { int sys_sched_yield(void); } - SYS_GETTHRID = 299 // { pid_t sys_getthrid(void); } - SYS___THRWAKEUP = 301 // { int sys___thrwakeup(const volatile void *ident, \ - SYS___THREXIT = 302 // { void sys___threxit(pid_t *notdead); } - SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, \ - SYS___GETCWD = 304 // { int sys___getcwd(char *buf, size_t len); } - SYS_ADJFREQ = 305 // { int sys_adjfreq(const int64_t *freq, \ - SYS_SETRTABLE = 310 // { int sys_setrtable(int rtableid); } - SYS_GETRTABLE = 311 // { int sys_getrtable(void); } - SYS_FACCESSAT = 313 // { int sys_faccessat(int fd, const char *path, \ - SYS_FCHMODAT = 314 // { int sys_fchmodat(int fd, const char *path, \ - SYS_FCHOWNAT = 315 // { int sys_fchownat(int fd, const char *path, \ - SYS_LINKAT = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, \ - SYS_MKDIRAT = 318 // { int sys_mkdirat(int fd, const char *path, \ - SYS_MKFIFOAT = 319 // { int sys_mkfifoat(int fd, const char *path, \ - SYS_MKNODAT = 320 // { int sys_mknodat(int fd, const char *path, \ - SYS_OPENAT = 321 // { int sys_openat(int fd, const char *path, int flags, \ - SYS_READLINKAT = 322 // { ssize_t sys_readlinkat(int fd, const char *path, \ - SYS_RENAMEAT = 323 // { int sys_renameat(int fromfd, const char *from, \ - SYS_SYMLINKAT = 324 // { int sys_symlinkat(const char *path, int fd, \ - SYS_UNLINKAT = 325 // { int sys_unlinkat(int fd, const char *path, \ - SYS___SET_TCB = 329 // { void sys___set_tcb(void *tcb); } - SYS___GET_TCB = 330 // { void *sys___get_tcb(void); } -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go deleted file mode 100644 index 32653e5..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go +++ /dev/null @@ -1,213 +0,0 @@ -// mksysnum_openbsd.pl -// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT - -// +build arm,openbsd - -package unix - -const ( - SYS_EXIT = 1 // { void sys_exit(int rval); } - SYS_FORK = 2 // { int sys_fork(void); } - SYS_READ = 3 // { ssize_t sys_read(int fd, void *buf, size_t nbyte); } - SYS_WRITE = 4 // { ssize_t sys_write(int fd, const void *buf, \ - SYS_OPEN = 5 // { int sys_open(const char *path, \ - SYS_CLOSE = 6 // { int sys_close(int fd); } - SYS_GETENTROPY = 7 // { int sys_getentropy(void *buf, size_t nbyte); } - SYS___TFORK = 8 // { int sys___tfork(const struct __tfork *param, \ - SYS_LINK = 9 // { int sys_link(const char *path, const char *link); } - SYS_UNLINK = 10 // { int sys_unlink(const char *path); } - SYS_WAIT4 = 11 // { pid_t sys_wait4(pid_t pid, int *status, \ - SYS_CHDIR = 12 // { int sys_chdir(const char *path); } - SYS_FCHDIR = 13 // { int sys_fchdir(int fd); } - SYS_MKNOD = 14 // { int sys_mknod(const char *path, mode_t mode, \ - SYS_CHMOD = 15 // { int sys_chmod(const char *path, mode_t mode); } - SYS_CHOWN = 16 // { int sys_chown(const char *path, uid_t uid, \ - SYS_OBREAK = 17 // { int sys_obreak(char *nsize); } break - SYS_GETDTABLECOUNT = 18 // { int sys_getdtablecount(void); } - SYS_GETRUSAGE = 19 // { int sys_getrusage(int who, \ - SYS_GETPID = 20 // { pid_t sys_getpid(void); } - SYS_MOUNT = 21 // { int sys_mount(const char *type, const char *path, \ - SYS_UNMOUNT = 22 // { int sys_unmount(const char *path, int flags); } - SYS_SETUID = 23 // { int sys_setuid(uid_t uid); } - SYS_GETUID = 24 // { uid_t sys_getuid(void); } - SYS_GETEUID = 25 // { uid_t sys_geteuid(void); } - SYS_PTRACE = 26 // { int sys_ptrace(int req, pid_t pid, caddr_t addr, \ - SYS_RECVMSG = 27 // { ssize_t sys_recvmsg(int s, struct msghdr *msg, \ - SYS_SENDMSG = 28 // { ssize_t sys_sendmsg(int s, \ - SYS_RECVFROM = 29 // { ssize_t sys_recvfrom(int s, void *buf, size_t len, \ - SYS_ACCEPT = 30 // { int sys_accept(int s, struct sockaddr *name, \ - SYS_GETPEERNAME = 31 // { int sys_getpeername(int fdes, struct sockaddr *asa, \ - SYS_GETSOCKNAME = 32 // { int sys_getsockname(int fdes, struct sockaddr *asa, \ - SYS_ACCESS = 33 // { int sys_access(const char *path, int amode); } - SYS_CHFLAGS = 34 // { int sys_chflags(const char *path, u_int flags); } - SYS_FCHFLAGS = 35 // { int sys_fchflags(int fd, u_int flags); } - SYS_SYNC = 36 // { void sys_sync(void); } - SYS_STAT = 38 // { int sys_stat(const char *path, struct stat *ub); } - SYS_GETPPID = 39 // { pid_t sys_getppid(void); } - SYS_LSTAT = 40 // { int sys_lstat(const char *path, struct stat *ub); } - SYS_DUP = 41 // { int sys_dup(int fd); } - SYS_FSTATAT = 42 // { int sys_fstatat(int fd, const char *path, \ - SYS_GETEGID = 43 // { gid_t sys_getegid(void); } - SYS_PROFIL = 44 // { int sys_profil(caddr_t samples, size_t size, \ - SYS_KTRACE = 45 // { int sys_ktrace(const char *fname, int ops, \ - SYS_SIGACTION = 46 // { int sys_sigaction(int signum, \ - SYS_GETGID = 47 // { gid_t sys_getgid(void); } - SYS_SIGPROCMASK = 48 // { int sys_sigprocmask(int how, sigset_t mask); } - SYS_GETLOGIN = 49 // { int sys_getlogin(char *namebuf, u_int namelen); } - SYS_SETLOGIN = 50 // { int sys_setlogin(const char *namebuf); } - SYS_ACCT = 51 // { int sys_acct(const char *path); } - SYS_SIGPENDING = 52 // { int sys_sigpending(void); } - SYS_FSTAT = 53 // { int sys_fstat(int fd, struct stat *sb); } - SYS_IOCTL = 54 // { int sys_ioctl(int fd, \ - SYS_REBOOT = 55 // { int sys_reboot(int opt); } - SYS_REVOKE = 56 // { int sys_revoke(const char *path); } - SYS_SYMLINK = 57 // { int sys_symlink(const char *path, \ - SYS_READLINK = 58 // { ssize_t sys_readlink(const char *path, \ - SYS_EXECVE = 59 // { int sys_execve(const char *path, \ - SYS_UMASK = 60 // { mode_t sys_umask(mode_t newmask); } - SYS_CHROOT = 61 // { int sys_chroot(const char *path); } - SYS_GETFSSTAT = 62 // { int sys_getfsstat(struct statfs *buf, size_t bufsize, \ - SYS_STATFS = 63 // { int sys_statfs(const char *path, \ - SYS_FSTATFS = 64 // { int sys_fstatfs(int fd, struct statfs *buf); } - SYS_FHSTATFS = 65 // { int sys_fhstatfs(const fhandle_t *fhp, \ - SYS_VFORK = 66 // { int sys_vfork(void); } - SYS_GETTIMEOFDAY = 67 // { int sys_gettimeofday(struct timeval *tp, \ - SYS_SETTIMEOFDAY = 68 // { int sys_settimeofday(const struct timeval *tv, \ - SYS_SETITIMER = 69 // { int sys_setitimer(int which, \ - SYS_GETITIMER = 70 // { int sys_getitimer(int which, \ - SYS_SELECT = 71 // { int sys_select(int nd, fd_set *in, fd_set *ou, \ - SYS_KEVENT = 72 // { int sys_kevent(int fd, \ - SYS_MUNMAP = 73 // { int sys_munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int sys_mprotect(void *addr, size_t len, \ - SYS_MADVISE = 75 // { int sys_madvise(void *addr, size_t len, \ - SYS_UTIMES = 76 // { int sys_utimes(const char *path, \ - SYS_FUTIMES = 77 // { int sys_futimes(int fd, \ - SYS_MINCORE = 78 // { int sys_mincore(void *addr, size_t len, \ - SYS_GETGROUPS = 79 // { int sys_getgroups(int gidsetsize, \ - SYS_SETGROUPS = 80 // { int sys_setgroups(int gidsetsize, \ - SYS_GETPGRP = 81 // { int sys_getpgrp(void); } - SYS_SETPGID = 82 // { int sys_setpgid(pid_t pid, pid_t pgid); } - SYS_SENDSYSLOG = 83 // { int sys_sendsyslog(const void *buf, size_t nbyte); } - SYS_UTIMENSAT = 84 // { int sys_utimensat(int fd, const char *path, \ - SYS_FUTIMENS = 85 // { int sys_futimens(int fd, \ - SYS_CLOCK_GETTIME = 87 // { int sys_clock_gettime(clockid_t clock_id, \ - SYS_CLOCK_SETTIME = 88 // { int sys_clock_settime(clockid_t clock_id, \ - SYS_CLOCK_GETRES = 89 // { int sys_clock_getres(clockid_t clock_id, \ - SYS_DUP2 = 90 // { int sys_dup2(int from, int to); } - SYS_NANOSLEEP = 91 // { int sys_nanosleep(const struct timespec *rqtp, \ - SYS_FCNTL = 92 // { int sys_fcntl(int fd, int cmd, ... void *arg); } - SYS_ACCEPT4 = 93 // { int sys_accept4(int s, struct sockaddr *name, \ - SYS___THRSLEEP = 94 // { int sys___thrsleep(const volatile void *ident, \ - SYS_FSYNC = 95 // { int sys_fsync(int fd); } - SYS_SETPRIORITY = 96 // { int sys_setpriority(int which, id_t who, int prio); } - SYS_SOCKET = 97 // { int sys_socket(int domain, int type, int protocol); } - SYS_CONNECT = 98 // { int sys_connect(int s, const struct sockaddr *name, \ - SYS_GETDENTS = 99 // { int sys_getdents(int fd, void *buf, size_t buflen); } - SYS_GETPRIORITY = 100 // { int sys_getpriority(int which, id_t who); } - SYS_PIPE2 = 101 // { int sys_pipe2(int *fdp, int flags); } - SYS_DUP3 = 102 // { int sys_dup3(int from, int to, int flags); } - SYS_SIGRETURN = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); } - SYS_BIND = 104 // { int sys_bind(int s, const struct sockaddr *name, \ - SYS_SETSOCKOPT = 105 // { int sys_setsockopt(int s, int level, int name, \ - SYS_LISTEN = 106 // { int sys_listen(int s, int backlog); } - SYS_CHFLAGSAT = 107 // { int sys_chflagsat(int fd, const char *path, \ - SYS_PPOLL = 109 // { int sys_ppoll(struct pollfd *fds, \ - SYS_PSELECT = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, \ - SYS_SIGSUSPEND = 111 // { int sys_sigsuspend(int mask); } - SYS_GETSOCKOPT = 118 // { int sys_getsockopt(int s, int level, int name, \ - SYS_READV = 120 // { ssize_t sys_readv(int fd, \ - SYS_WRITEV = 121 // { ssize_t sys_writev(int fd, \ - SYS_KILL = 122 // { int sys_kill(int pid, int signum); } - SYS_FCHOWN = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); } - SYS_FCHMOD = 124 // { int sys_fchmod(int fd, mode_t mode); } - SYS_SETREUID = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); } - SYS_SETREGID = 127 // { int sys_setregid(gid_t rgid, gid_t egid); } - SYS_RENAME = 128 // { int sys_rename(const char *from, const char *to); } - SYS_FLOCK = 131 // { int sys_flock(int fd, int how); } - SYS_MKFIFO = 132 // { int sys_mkfifo(const char *path, mode_t mode); } - SYS_SENDTO = 133 // { ssize_t sys_sendto(int s, const void *buf, \ - SYS_SHUTDOWN = 134 // { int sys_shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int sys_socketpair(int domain, int type, \ - SYS_MKDIR = 136 // { int sys_mkdir(const char *path, mode_t mode); } - SYS_RMDIR = 137 // { int sys_rmdir(const char *path); } - SYS_ADJTIME = 140 // { int sys_adjtime(const struct timeval *delta, \ - SYS_SETSID = 147 // { int sys_setsid(void); } - SYS_QUOTACTL = 148 // { int sys_quotactl(const char *path, int cmd, \ - SYS_NFSSVC = 155 // { int sys_nfssvc(int flag, void *argp); } - SYS_GETFH = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); } - SYS_SYSARCH = 165 // { int sys_sysarch(int op, void *parms); } - SYS_PREAD = 173 // { ssize_t sys_pread(int fd, void *buf, \ - SYS_PWRITE = 174 // { ssize_t sys_pwrite(int fd, const void *buf, \ - SYS_SETGID = 181 // { int sys_setgid(gid_t gid); } - SYS_SETEGID = 182 // { int sys_setegid(gid_t egid); } - SYS_SETEUID = 183 // { int sys_seteuid(uid_t euid); } - SYS_PATHCONF = 191 // { long sys_pathconf(const char *path, int name); } - SYS_FPATHCONF = 192 // { long sys_fpathconf(int fd, int name); } - SYS_SWAPCTL = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); } - SYS_GETRLIMIT = 194 // { int sys_getrlimit(int which, \ - SYS_SETRLIMIT = 195 // { int sys_setrlimit(int which, \ - SYS_MMAP = 197 // { void *sys_mmap(void *addr, size_t len, int prot, \ - SYS_LSEEK = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, \ - SYS_TRUNCATE = 200 // { int sys_truncate(const char *path, int pad, \ - SYS_FTRUNCATE = 201 // { int sys_ftruncate(int fd, int pad, off_t length); } - SYS___SYSCTL = 202 // { int sys___sysctl(const int *name, u_int namelen, \ - SYS_MLOCK = 203 // { int sys_mlock(const void *addr, size_t len); } - SYS_MUNLOCK = 204 // { int sys_munlock(const void *addr, size_t len); } - SYS_GETPGID = 207 // { pid_t sys_getpgid(pid_t pid); } - SYS_UTRACE = 209 // { int sys_utrace(const char *label, const void *addr, \ - SYS_SEMGET = 221 // { int sys_semget(key_t key, int nsems, int semflg); } - SYS_MSGGET = 225 // { int sys_msgget(key_t key, int msgflg); } - SYS_MSGSND = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, \ - SYS_MSGRCV = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, \ - SYS_SHMAT = 228 // { void *sys_shmat(int shmid, const void *shmaddr, \ - SYS_SHMDT = 230 // { int sys_shmdt(const void *shmaddr); } - SYS_MINHERIT = 250 // { int sys_minherit(void *addr, size_t len, \ - SYS_POLL = 252 // { int sys_poll(struct pollfd *fds, \ - SYS_ISSETUGID = 253 // { int sys_issetugid(void); } - SYS_LCHOWN = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); } - SYS_GETSID = 255 // { pid_t sys_getsid(pid_t pid); } - SYS_MSYNC = 256 // { int sys_msync(void *addr, size_t len, int flags); } - SYS_PIPE = 263 // { int sys_pipe(int *fdp); } - SYS_FHOPEN = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); } - SYS_PREADV = 267 // { ssize_t sys_preadv(int fd, \ - SYS_PWRITEV = 268 // { ssize_t sys_pwritev(int fd, \ - SYS_KQUEUE = 269 // { int sys_kqueue(void); } - SYS_MLOCKALL = 271 // { int sys_mlockall(int flags); } - SYS_MUNLOCKALL = 272 // { int sys_munlockall(void); } - SYS_GETRESUID = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, \ - SYS_SETRESUID = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, \ - SYS_GETRESGID = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, \ - SYS_SETRESGID = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, \ - SYS_MQUERY = 286 // { void *sys_mquery(void *addr, size_t len, int prot, \ - SYS_CLOSEFROM = 287 // { int sys_closefrom(int fd); } - SYS_SIGALTSTACK = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, \ - SYS_SHMGET = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); } - SYS_SEMOP = 290 // { int sys_semop(int semid, struct sembuf *sops, \ - SYS_FHSTAT = 294 // { int sys_fhstat(const fhandle_t *fhp, \ - SYS___SEMCTL = 295 // { int sys___semctl(int semid, int semnum, int cmd, \ - SYS_SHMCTL = 296 // { int sys_shmctl(int shmid, int cmd, \ - SYS_MSGCTL = 297 // { int sys_msgctl(int msqid, int cmd, \ - SYS_SCHED_YIELD = 298 // { int sys_sched_yield(void); } - SYS_GETTHRID = 299 // { pid_t sys_getthrid(void); } - SYS___THRWAKEUP = 301 // { int sys___thrwakeup(const volatile void *ident, \ - SYS___THREXIT = 302 // { void sys___threxit(pid_t *notdead); } - SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, \ - SYS___GETCWD = 304 // { int sys___getcwd(char *buf, size_t len); } - SYS_ADJFREQ = 305 // { int sys_adjfreq(const int64_t *freq, \ - SYS_SETRTABLE = 310 // { int sys_setrtable(int rtableid); } - SYS_GETRTABLE = 311 // { int sys_getrtable(void); } - SYS_FACCESSAT = 313 // { int sys_faccessat(int fd, const char *path, \ - SYS_FCHMODAT = 314 // { int sys_fchmodat(int fd, const char *path, \ - SYS_FCHOWNAT = 315 // { int sys_fchownat(int fd, const char *path, \ - SYS_LINKAT = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, \ - SYS_MKDIRAT = 318 // { int sys_mkdirat(int fd, const char *path, \ - SYS_MKFIFOAT = 319 // { int sys_mkfifoat(int fd, const char *path, \ - SYS_MKNODAT = 320 // { int sys_mknodat(int fd, const char *path, \ - SYS_OPENAT = 321 // { int sys_openat(int fd, const char *path, int flags, \ - SYS_READLINKAT = 322 // { ssize_t sys_readlinkat(int fd, const char *path, \ - SYS_RENAMEAT = 323 // { int sys_renameat(int fromfd, const char *from, \ - SYS_SYMLINKAT = 324 // { int sys_symlinkat(const char *path, int fd, \ - SYS_UNLINKAT = 325 // { int sys_unlinkat(int fd, const char *path, \ - SYS___SET_TCB = 329 // { void sys___set_tcb(void *tcb); } - SYS___GET_TCB = 330 // { void *sys___get_tcb(void); } -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_solaris_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_solaris_amd64.go deleted file mode 100644 index c708659..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_solaris_amd64.go +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build amd64,solaris - -package unix - -// TODO(aram): remove these before Go 1.3. -const ( - SYS_EXECVE = 59 - SYS_FCNTL = 62 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_386.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_386.go deleted file mode 100644 index e61d78a..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_darwin_386.go +++ /dev/null @@ -1,462 +0,0 @@ -// cgo -godefs types_darwin.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build 386,darwin - -package unix - -const ( - sizeofPtr = 0x4 - sizeofShort = 0x2 - sizeofInt = 0x4 - sizeofLong = 0x4 - sizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int32 - _C_long_long int64 -) - -type Timespec struct { - Sec int32 - Nsec int32 -} - -type Timeval struct { - Sec int32 - Usec int32 -} - -type Timeval32 struct{} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type Stat_t struct { - Dev int32 - Mode uint16 - Nlink uint16 - Ino uint64 - Uid uint32 - Gid uint32 - Rdev int32 - Atimespec Timespec - Mtimespec Timespec - Ctimespec Timespec - Birthtimespec Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint32 - Lspare int32 - Qspare [2]int64 -} - -type Statfs_t struct { - Bsize uint32 - Iosize int32 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Owner uint32 - Type uint32 - Flags uint32 - Fssubtype uint32 - Fstypename [16]int8 - Mntonname [1024]int8 - Mntfromname [1024]int8 - Reserved [8]uint32 -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 -} - -type Fstore_t struct { - Flags uint32 - Posmode int32 - Offset int64 - Length int64 - Bytesalloc int64 -} - -type Radvisory_t struct { - Offset int64 - Count int32 -} - -type Fbootstraptransfer_t struct { - Offset int64 - Length uint32 - Buffer *byte -} - -type Log2phys_t struct { - Flags uint32 - Contigbytes int64 - Devoffset int64 -} - -type Fsid struct { - Val [2]int32 -} - -type Dirent struct { - Ino uint64 - Seekoff uint64 - Reclen uint16 - Namlen uint16 - Type uint8 - Name [1024]int8 - Pad_cgo_0 [3]byte -} - -type RawSockaddrInet4 struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type RawSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Len uint8 - Family uint8 - Path [104]int8 -} - -type RawSockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [12]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint32 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen int32 - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type Inet4Pktinfo struct { - Ifindex uint32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x6c - SizeofSockaddrUnix = 0x6a - SizeofSockaddrDatalink = 0x14 - SizeofLinger = 0x8 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type Kevent_t struct { - Ident uint32 - Filter int16 - Flags uint16 - Fflags uint32 - Data int32 - Udata *byte -} - -type FdSet struct { - Bits [32]int32 -} - -const ( - SizeofIfMsghdr = 0x70 - SizeofIfData = 0x60 - SizeofIfaMsghdr = 0x14 - SizeofIfmaMsghdr = 0x10 - SizeofIfmaMsghdr2 = 0x14 - SizeofRtMsghdr = 0x5c - SizeofRtMetrics = 0x38 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte - Data IfData -} - -type IfData struct { - Type uint8 - Typelen uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Recvquota uint8 - Xmitquota uint8 - Unused1 uint8 - Mtu uint32 - Metric uint32 - Baudrate uint32 - Ipackets uint32 - Ierrors uint32 - Opackets uint32 - Oerrors uint32 - Collisions uint32 - Ibytes uint32 - Obytes uint32 - Imcasts uint32 - Omcasts uint32 - Iqdrops uint32 - Noproto uint32 - Recvtiming uint32 - Xmittiming uint32 - Lastchange Timeval - Unused2 uint32 - Hwassist uint32 - Reserved1 uint32 - Reserved2 uint32 -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte - Metric int32 -} - -type IfmaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte -} - -type IfmaMsghdr2 struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte - Refcount int32 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Pad_cgo_0 [2]byte - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Use int32 - Inits uint32 - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint32 - Mtu uint32 - Hopcount uint32 - Expire int32 - Recvpipe uint32 - Sendpipe uint32 - Ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Pksent uint32 - Filler [4]uint32 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfProgram = 0x8 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x14 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint32 - Drop uint32 -} - -type BpfProgram struct { - Len uint32 - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp Timeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - Pad_cgo_0 [2]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -const ( - AT_FDCWD = -0x2 - AT_REMOVEDIR = 0x80 - AT_SYMLINK_FOLLOW = 0x40 - AT_SYMLINK_NOFOLLOW = 0x20 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go deleted file mode 100644 index 2619155..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go +++ /dev/null @@ -1,472 +0,0 @@ -// cgo -godefs types_darwin.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build amd64,darwin - -package unix - -const ( - sizeofPtr = 0x8 - sizeofShort = 0x2 - sizeofInt = 0x4 - sizeofLong = 0x8 - sizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int32 - Pad_cgo_0 [4]byte -} - -type Timeval32 struct { - Sec int32 - Usec int32 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int64 - Ixrss int64 - Idrss int64 - Isrss int64 - Minflt int64 - Majflt int64 - Nswap int64 - Inblock int64 - Oublock int64 - Msgsnd int64 - Msgrcv int64 - Nsignals int64 - Nvcsw int64 - Nivcsw int64 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type Stat_t struct { - Dev int32 - Mode uint16 - Nlink uint16 - Ino uint64 - Uid uint32 - Gid uint32 - Rdev int32 - Pad_cgo_0 [4]byte - Atimespec Timespec - Mtimespec Timespec - Ctimespec Timespec - Birthtimespec Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint32 - Lspare int32 - Qspare [2]int64 -} - -type Statfs_t struct { - Bsize uint32 - Iosize int32 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Owner uint32 - Type uint32 - Flags uint32 - Fssubtype uint32 - Fstypename [16]int8 - Mntonname [1024]int8 - Mntfromname [1024]int8 - Reserved [8]uint32 -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 -} - -type Fstore_t struct { - Flags uint32 - Posmode int32 - Offset int64 - Length int64 - Bytesalloc int64 -} - -type Radvisory_t struct { - Offset int64 - Count int32 - Pad_cgo_0 [4]byte -} - -type Fbootstraptransfer_t struct { - Offset int64 - Length uint64 - Buffer *byte -} - -type Log2phys_t struct { - Flags uint32 - Pad_cgo_0 [8]byte - Pad_cgo_1 [8]byte -} - -type Fsid struct { - Val [2]int32 -} - -type Dirent struct { - Ino uint64 - Seekoff uint64 - Reclen uint16 - Namlen uint16 - Type uint8 - Name [1024]int8 - Pad_cgo_0 [3]byte -} - -type RawSockaddrInet4 struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type RawSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Len uint8 - Family uint8 - Path [104]int8 -} - -type RawSockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [12]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Pad_cgo_0 [4]byte - Iov *Iovec - Iovlen int32 - Pad_cgo_1 [4]byte - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type Inet4Pktinfo struct { - Ifindex uint32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x6c - SizeofSockaddrUnix = 0x6a - SizeofSockaddrDatalink = 0x14 - SizeofLinger = 0x8 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x30 - SizeofCmsghdr = 0xc - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type Kevent_t struct { - Ident uint64 - Filter int16 - Flags uint16 - Fflags uint32 - Data int64 - Udata *byte -} - -type FdSet struct { - Bits [32]int32 -} - -const ( - SizeofIfMsghdr = 0x70 - SizeofIfData = 0x60 - SizeofIfaMsghdr = 0x14 - SizeofIfmaMsghdr = 0x10 - SizeofIfmaMsghdr2 = 0x14 - SizeofRtMsghdr = 0x5c - SizeofRtMetrics = 0x38 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte - Data IfData -} - -type IfData struct { - Type uint8 - Typelen uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Recvquota uint8 - Xmitquota uint8 - Unused1 uint8 - Mtu uint32 - Metric uint32 - Baudrate uint32 - Ipackets uint32 - Ierrors uint32 - Opackets uint32 - Oerrors uint32 - Collisions uint32 - Ibytes uint32 - Obytes uint32 - Imcasts uint32 - Omcasts uint32 - Iqdrops uint32 - Noproto uint32 - Recvtiming uint32 - Xmittiming uint32 - Lastchange Timeval32 - Unused2 uint32 - Hwassist uint32 - Reserved1 uint32 - Reserved2 uint32 -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte - Metric int32 -} - -type IfmaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte -} - -type IfmaMsghdr2 struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte - Refcount int32 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Pad_cgo_0 [2]byte - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Use int32 - Inits uint32 - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint32 - Mtu uint32 - Hopcount uint32 - Expire int32 - Recvpipe uint32 - Sendpipe uint32 - Ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Pksent uint32 - Filler [4]uint32 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfProgram = 0x10 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x14 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint32 - Drop uint32 -} - -type BpfProgram struct { - Len uint32 - Pad_cgo_0 [4]byte - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp Timeval32 - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - Pad_cgo_0 [2]byte -} - -type Termios struct { - Iflag uint64 - Oflag uint64 - Cflag uint64 - Lflag uint64 - Cc [20]uint8 - Pad_cgo_0 [4]byte - Ispeed uint64 - Ospeed uint64 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -const ( - AT_FDCWD = -0x2 - AT_REMOVEDIR = 0x80 - AT_SYMLINK_FOLLOW = 0x40 - AT_SYMLINK_NOFOLLOW = 0x20 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_arm.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_arm.go deleted file mode 100644 index 4dca0d4..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_darwin_arm.go +++ /dev/null @@ -1,463 +0,0 @@ -// NOTE: cgo can't generate struct Stat_t and struct Statfs_t yet -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs types_darwin.go - -// +build arm,darwin - -package unix - -const ( - sizeofPtr = 0x4 - sizeofShort = 0x2 - sizeofInt = 0x4 - sizeofLong = 0x4 - sizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int32 - _C_long_long int64 -) - -type Timespec struct { - Sec int32 - Nsec int32 -} - -type Timeval struct { - Sec int32 - Usec int32 -} - -type Timeval32 [0]byte - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type Stat_t struct { - Dev int32 - Mode uint16 - Nlink uint16 - Ino uint64 - Uid uint32 - Gid uint32 - Rdev int32 - Atimespec Timespec - Mtimespec Timespec - Ctimespec Timespec - Birthtimespec Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint32 - Lspare int32 - Qspare [2]int64 -} - -type Statfs_t struct { - Bsize uint32 - Iosize int32 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Owner uint32 - Type uint32 - Flags uint32 - Fssubtype uint32 - Fstypename [16]int8 - Mntonname [1024]int8 - Mntfromname [1024]int8 - Reserved [8]uint32 -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 -} - -type Fstore_t struct { - Flags uint32 - Posmode int32 - Offset int64 - Length int64 - Bytesalloc int64 -} - -type Radvisory_t struct { - Offset int64 - Count int32 -} - -type Fbootstraptransfer_t struct { - Offset int64 - Length uint32 - Buffer *byte -} - -type Log2phys_t struct { - Flags uint32 - Contigbytes int64 - Devoffset int64 -} - -type Fsid struct { - Val [2]int32 -} - -type Dirent struct { - Ino uint64 - Seekoff uint64 - Reclen uint16 - Namlen uint16 - Type uint8 - Name [1024]int8 - Pad_cgo_0 [3]byte -} - -type RawSockaddrInet4 struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type RawSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Len uint8 - Family uint8 - Path [104]int8 -} - -type RawSockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [12]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint32 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen int32 - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type Inet4Pktinfo struct { - Ifindex uint32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x6c - SizeofSockaddrUnix = 0x6a - SizeofSockaddrDatalink = 0x14 - SizeofLinger = 0x8 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type Kevent_t struct { - Ident uint32 - Filter int16 - Flags uint16 - Fflags uint32 - Data int32 - Udata *byte -} - -type FdSet struct { - Bits [32]int32 -} - -const ( - SizeofIfMsghdr = 0x70 - SizeofIfData = 0x60 - SizeofIfaMsghdr = 0x14 - SizeofIfmaMsghdr = 0x10 - SizeofIfmaMsghdr2 = 0x14 - SizeofRtMsghdr = 0x5c - SizeofRtMetrics = 0x38 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte - Data IfData -} - -type IfData struct { - Type uint8 - Typelen uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Recvquota uint8 - Xmitquota uint8 - Unused1 uint8 - Mtu uint32 - Metric uint32 - Baudrate uint32 - Ipackets uint32 - Ierrors uint32 - Opackets uint32 - Oerrors uint32 - Collisions uint32 - Ibytes uint32 - Obytes uint32 - Imcasts uint32 - Omcasts uint32 - Iqdrops uint32 - Noproto uint32 - Recvtiming uint32 - Xmittiming uint32 - Lastchange Timeval - Unused2 uint32 - Hwassist uint32 - Reserved1 uint32 - Reserved2 uint32 -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte - Metric int32 -} - -type IfmaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte -} - -type IfmaMsghdr2 struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte - Refcount int32 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Pad_cgo_0 [2]byte - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Use int32 - Inits uint32 - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint32 - Mtu uint32 - Hopcount uint32 - Expire int32 - Recvpipe uint32 - Sendpipe uint32 - Ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Pksent uint32 - Filler [4]uint32 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfProgram = 0x8 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x14 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint32 - Drop uint32 -} - -type BpfProgram struct { - Len uint32 - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp Timeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - Pad_cgo_0 [2]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -const ( - AT_FDCWD = -0x2 - AT_REMOVEDIR = 0x80 - AT_SYMLINK_FOLLOW = 0x40 - AT_SYMLINK_NOFOLLOW = 0x20 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go deleted file mode 100644 index f2881fd..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go +++ /dev/null @@ -1,471 +0,0 @@ -// +build arm64,darwin -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs types_darwin.go - -package unix - -const ( - sizeofPtr = 0x8 - sizeofShort = 0x2 - sizeofInt = 0x4 - sizeofLong = 0x8 - sizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int32 - Pad_cgo_0 [4]byte -} - -type Timeval32 struct { - Sec int32 - Usec int32 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int64 - Ixrss int64 - Idrss int64 - Isrss int64 - Minflt int64 - Majflt int64 - Nswap int64 - Inblock int64 - Oublock int64 - Msgsnd int64 - Msgrcv int64 - Nsignals int64 - Nvcsw int64 - Nivcsw int64 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type Stat_t struct { - Dev int32 - Mode uint16 - Nlink uint16 - Ino uint64 - Uid uint32 - Gid uint32 - Rdev int32 - Pad_cgo_0 [4]byte - Atimespec Timespec - Mtimespec Timespec - Ctimespec Timespec - Birthtimespec Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint32 - Lspare int32 - Qspare [2]int64 -} - -type Statfs_t struct { - Bsize uint32 - Iosize int32 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Owner uint32 - Type uint32 - Flags uint32 - Fssubtype uint32 - Fstypename [16]int8 - Mntonname [1024]int8 - Mntfromname [1024]int8 - Reserved [8]uint32 -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 -} - -type Fstore_t struct { - Flags uint32 - Posmode int32 - Offset int64 - Length int64 - Bytesalloc int64 -} - -type Radvisory_t struct { - Offset int64 - Count int32 - Pad_cgo_0 [4]byte -} - -type Fbootstraptransfer_t struct { - Offset int64 - Length uint64 - Buffer *byte -} - -type Log2phys_t struct { - Flags uint32 - Pad_cgo_0 [8]byte - Pad_cgo_1 [8]byte -} - -type Fsid struct { - Val [2]int32 -} - -type Dirent struct { - Ino uint64 - Seekoff uint64 - Reclen uint16 - Namlen uint16 - Type uint8 - Name [1024]int8 - Pad_cgo_0 [3]byte -} - -type RawSockaddrInet4 struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type RawSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Len uint8 - Family uint8 - Path [104]int8 -} - -type RawSockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [12]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Pad_cgo_0 [4]byte - Iov *Iovec - Iovlen int32 - Pad_cgo_1 [4]byte - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type Inet4Pktinfo struct { - Ifindex uint32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x6c - SizeofSockaddrUnix = 0x6a - SizeofSockaddrDatalink = 0x14 - SizeofLinger = 0x8 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x30 - SizeofCmsghdr = 0xc - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type Kevent_t struct { - Ident uint64 - Filter int16 - Flags uint16 - Fflags uint32 - Data int64 - Udata *byte -} - -type FdSet struct { - Bits [32]int32 -} - -const ( - SizeofIfMsghdr = 0x70 - SizeofIfData = 0x60 - SizeofIfaMsghdr = 0x14 - SizeofIfmaMsghdr = 0x10 - SizeofIfmaMsghdr2 = 0x14 - SizeofRtMsghdr = 0x5c - SizeofRtMetrics = 0x38 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte - Data IfData -} - -type IfData struct { - Type uint8 - Typelen uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Recvquota uint8 - Xmitquota uint8 - Unused1 uint8 - Mtu uint32 - Metric uint32 - Baudrate uint32 - Ipackets uint32 - Ierrors uint32 - Opackets uint32 - Oerrors uint32 - Collisions uint32 - Ibytes uint32 - Obytes uint32 - Imcasts uint32 - Omcasts uint32 - Iqdrops uint32 - Noproto uint32 - Recvtiming uint32 - Xmittiming uint32 - Lastchange Timeval32 - Unused2 uint32 - Hwassist uint32 - Reserved1 uint32 - Reserved2 uint32 -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte - Metric int32 -} - -type IfmaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte -} - -type IfmaMsghdr2 struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte - Refcount int32 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Pad_cgo_0 [2]byte - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Use int32 - Inits uint32 - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint32 - Mtu uint32 - Hopcount uint32 - Expire int32 - Recvpipe uint32 - Sendpipe uint32 - Ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Pksent uint32 - Filler [4]uint32 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfProgram = 0x10 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x14 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint32 - Drop uint32 -} - -type BpfProgram struct { - Len uint32 - Pad_cgo_0 [4]byte - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp Timeval32 - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - Pad_cgo_0 [2]byte -} - -type Termios struct { - Iflag uint64 - Oflag uint64 - Cflag uint64 - Lflag uint64 - Cc [20]uint8 - Pad_cgo_0 [4]byte - Ispeed uint64 - Ospeed uint64 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -const ( - AT_FDCWD = -0x2 - AT_REMOVEDIR = 0x80 - AT_SYMLINK_FOLLOW = 0x40 - AT_SYMLINK_NOFOLLOW = 0x20 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go deleted file mode 100644 index 67c6bf8..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go +++ /dev/null @@ -1,448 +0,0 @@ -// cgo -godefs types_dragonfly.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build amd64,dragonfly - -package unix - -const ( - sizeofPtr = 0x8 - sizeofShort = 0x2 - sizeofInt = 0x4 - sizeofLong = 0x8 - sizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int64 - Ixrss int64 - Idrss int64 - Isrss int64 - Minflt int64 - Majflt int64 - Nswap int64 - Inblock int64 - Oublock int64 - Msgsnd int64 - Msgrcv int64 - Nsignals int64 - Nvcsw int64 - Nivcsw int64 -} - -type Rlimit struct { - Cur int64 - Max int64 -} - -type _Gid_t uint32 - -const ( - S_IFMT = 0xf000 - S_IFIFO = 0x1000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFBLK = 0x6000 - S_IFREG = 0x8000 - S_IFLNK = 0xa000 - S_IFSOCK = 0xc000 - S_ISUID = 0x800 - S_ISGID = 0x400 - S_ISVTX = 0x200 - S_IRUSR = 0x100 - S_IWUSR = 0x80 - S_IXUSR = 0x40 -) - -type Stat_t struct { - Ino uint64 - Nlink uint32 - Dev uint32 - Mode uint16 - Padding1 uint16 - Uid uint32 - Gid uint32 - Rdev uint32 - Atim Timespec - Mtim Timespec - Ctim Timespec - Size int64 - Blocks int64 - Blksize uint32 - Flags uint32 - Gen uint32 - Lspare int32 - Qspare1 int64 - Qspare2 int64 -} - -type Statfs_t struct { - Spare2 int64 - Bsize int64 - Iosize int64 - Blocks int64 - Bfree int64 - Bavail int64 - Files int64 - Ffree int64 - Fsid Fsid - Owner uint32 - Type int32 - Flags int32 - Pad_cgo_0 [4]byte - Syncwrites int64 - Asyncwrites int64 - Fstypename [16]int8 - Mntonname [80]int8 - Syncreads int64 - Asyncreads int64 - Spares1 int16 - Mntfromname [80]int8 - Spares2 int16 - Pad_cgo_1 [4]byte - Spare [2]int64 -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 -} - -type Dirent struct { - Fileno uint64 - Namlen uint16 - Type uint8 - Unused1 uint8 - Unused2 uint32 - Name [256]int8 -} - -type Fsid struct { - Val [2]int32 -} - -type RawSockaddrInet4 struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type RawSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Len uint8 - Family uint8 - Path [104]int8 -} - -type RawSockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [12]int8 - Rcf uint16 - Route [16]uint16 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Pad_cgo_0 [4]byte - Iov *Iovec - Iovlen int32 - Pad_cgo_1 [4]byte - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x6c - SizeofSockaddrUnix = 0x6a - SizeofSockaddrDatalink = 0x36 - SizeofLinger = 0x8 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x30 - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type Kevent_t struct { - Ident uint64 - Filter int16 - Flags uint16 - Fflags uint32 - Data int64 - Udata *byte -} - -type FdSet struct { - Bits [16]uint64 -} - -const ( - SizeofIfMsghdr = 0xb0 - SizeofIfData = 0xa0 - SizeofIfaMsghdr = 0x14 - SizeofIfmaMsghdr = 0x10 - SizeofIfAnnounceMsghdr = 0x18 - SizeofRtMsghdr = 0x98 - SizeofRtMetrics = 0x70 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte - Data IfData -} - -type IfData struct { - Type uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Recvquota uint8 - Xmitquota uint8 - Pad_cgo_0 [2]byte - Mtu uint64 - Metric uint64 - Link_state uint64 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Noproto uint64 - Hwassist uint64 - Oqdrops uint64 - Lastchange Timeval -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte - Metric int32 -} - -type IfmaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Name [16]int8 - What uint16 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Pad_cgo_0 [2]byte - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Use int32 - Inits uint64 - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint64 - Mtu uint64 - Pksent uint64 - Expire uint64 - Sendpipe uint64 - Ssthresh uint64 - Rtt uint64 - Rttvar uint64 - Recvpipe uint64 - Hopcount uint64 - Mssopt uint16 - Pad uint16 - Pad_cgo_0 [4]byte - Msl uint64 - Iwmaxsegs uint64 - Iwcapsegs uint64 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfProgram = 0x10 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x20 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint32 - Drop uint32 -} - -type BpfProgram struct { - Len uint32 - Pad_cgo_0 [4]byte - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp Timeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - Pad_cgo_0 [6]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed uint32 - Ospeed uint32 -} - -const ( - AT_FDCWD = 0xfffafdcd - AT_SYMLINK_NOFOLLOW = 0x1 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go deleted file mode 100644 index 5b28bcb..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go +++ /dev/null @@ -1,521 +0,0 @@ -// cgo -godefs types_freebsd.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build 386,freebsd - -package unix - -const ( - sizeofPtr = 0x4 - sizeofShort = 0x2 - sizeofInt = 0x4 - sizeofLong = 0x4 - sizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int32 - _C_long_long int64 -) - -type Timespec struct { - Sec int32 - Nsec int32 -} - -type Timeval struct { - Sec int32 - Usec int32 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Rlimit struct { - Cur int64 - Max int64 -} - -type _Gid_t uint32 - -const ( - S_IFMT = 0xf000 - S_IFIFO = 0x1000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFBLK = 0x6000 - S_IFREG = 0x8000 - S_IFLNK = 0xa000 - S_IFSOCK = 0xc000 - S_ISUID = 0x800 - S_ISGID = 0x400 - S_ISVTX = 0x200 - S_IRUSR = 0x100 - S_IWUSR = 0x80 - S_IXUSR = 0x40 -) - -type Stat_t struct { - Dev uint32 - Ino uint32 - Mode uint16 - Nlink uint16 - Uid uint32 - Gid uint32 - Rdev uint32 - Atimespec Timespec - Mtimespec Timespec - Ctimespec Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint32 - Lspare int32 - Birthtimespec Timespec - Pad_cgo_0 [8]byte -} - -type Statfs_t struct { - Version uint32 - Type uint32 - Flags uint64 - Bsize uint64 - Iosize uint64 - Blocks uint64 - Bfree uint64 - Bavail int64 - Files uint64 - Ffree int64 - Syncwrites uint64 - Asyncwrites uint64 - Syncreads uint64 - Asyncreads uint64 - Spare [10]uint64 - Namemax uint32 - Owner uint32 - Fsid Fsid - Charspare [80]int8 - Fstypename [16]int8 - Mntfromname [88]int8 - Mntonname [88]int8 -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 - Sysid int32 -} - -type Dirent struct { - Fileno uint32 - Reclen uint16 - Type uint8 - Namlen uint8 - Name [256]int8 -} - -type Fsid struct { - Val [2]int32 -} - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrInet4 struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type RawSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Len uint8 - Family uint8 - Path [104]int8 -} - -type RawSockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [46]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint32 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen int32 - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x6c - SizeofSockaddrUnix = 0x6a - SizeofSockaddrDatalink = 0x36 - SizeofLinger = 0x8 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type Kevent_t struct { - Ident uint32 - Filter int16 - Flags uint16 - Fflags uint32 - Data int32 - Udata *byte -} - -type FdSet struct { - X__fds_bits [32]uint32 -} - -const ( - sizeofIfMsghdr = 0xa8 - SizeofIfMsghdr = 0x60 - sizeofIfData = 0x98 - SizeofIfData = 0x50 - SizeofIfaMsghdr = 0x14 - SizeofIfmaMsghdr = 0x10 - SizeofIfAnnounceMsghdr = 0x18 - SizeofRtMsghdr = 0x5c - SizeofRtMetrics = 0x38 -) - -type ifMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte - Data ifData -} - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte - Data IfData -} - -type ifData struct { - Type uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Vhid uint8 - Datalen uint16 - Mtu uint32 - Metric uint32 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Oqdrops uint64 - Noproto uint64 - Hwassist uint64 - X__ifi_epoch [8]byte - X__ifi_lastchange [16]byte -} - -type IfData struct { - Type uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Spare_char1 uint8 - Spare_char2 uint8 - Datalen uint8 - Mtu uint32 - Metric uint32 - Baudrate uint32 - Ipackets uint32 - Ierrors uint32 - Opackets uint32 - Oerrors uint32 - Collisions uint32 - Ibytes uint32 - Obytes uint32 - Imcasts uint32 - Omcasts uint32 - Iqdrops uint32 - Noproto uint32 - Hwassist uint32 - Epoch int32 - Lastchange Timeval -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte - Metric int32 -} - -type IfmaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Name [16]int8 - What uint16 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Pad_cgo_0 [2]byte - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Fmask int32 - Inits uint32 - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint32 - Mtu uint32 - Hopcount uint32 - Expire uint32 - Recvpipe uint32 - Sendpipe uint32 - Ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Pksent uint32 - Weight uint32 - Filler [3]uint32 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfZbuf = 0xc - SizeofBpfProgram = 0x8 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x14 - SizeofBpfZbufHeader = 0x20 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint32 - Drop uint32 -} - -type BpfZbuf struct { - Bufa *byte - Bufb *byte - Buflen uint32 -} - -type BpfProgram struct { - Len uint32 - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp Timeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - Pad_cgo_0 [2]byte -} - -type BpfZbufHeader struct { - Kernel_gen uint32 - Kernel_len uint32 - User_gen uint32 - X_bzh_pad [5]uint32 -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -const ( - AT_FDCWD = -0x64 - AT_REMOVEDIR = 0x800 - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x200 -) - -type CapRights struct { - Rights [2]uint64 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go deleted file mode 100644 index c65d89e..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go +++ /dev/null @@ -1,524 +0,0 @@ -// cgo -godefs types_freebsd.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build amd64,freebsd - -package unix - -const ( - sizeofPtr = 0x8 - sizeofShort = 0x2 - sizeofInt = 0x4 - sizeofLong = 0x8 - sizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int64 - Ixrss int64 - Idrss int64 - Isrss int64 - Minflt int64 - Majflt int64 - Nswap int64 - Inblock int64 - Oublock int64 - Msgsnd int64 - Msgrcv int64 - Nsignals int64 - Nvcsw int64 - Nivcsw int64 -} - -type Rlimit struct { - Cur int64 - Max int64 -} - -type _Gid_t uint32 - -const ( - S_IFMT = 0xf000 - S_IFIFO = 0x1000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFBLK = 0x6000 - S_IFREG = 0x8000 - S_IFLNK = 0xa000 - S_IFSOCK = 0xc000 - S_ISUID = 0x800 - S_ISGID = 0x400 - S_ISVTX = 0x200 - S_IRUSR = 0x100 - S_IWUSR = 0x80 - S_IXUSR = 0x40 -) - -type Stat_t struct { - Dev uint32 - Ino uint32 - Mode uint16 - Nlink uint16 - Uid uint32 - Gid uint32 - Rdev uint32 - Atimespec Timespec - Mtimespec Timespec - Ctimespec Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint32 - Lspare int32 - Birthtimespec Timespec -} - -type Statfs_t struct { - Version uint32 - Type uint32 - Flags uint64 - Bsize uint64 - Iosize uint64 - Blocks uint64 - Bfree uint64 - Bavail int64 - Files uint64 - Ffree int64 - Syncwrites uint64 - Asyncwrites uint64 - Syncreads uint64 - Asyncreads uint64 - Spare [10]uint64 - Namemax uint32 - Owner uint32 - Fsid Fsid - Charspare [80]int8 - Fstypename [16]int8 - Mntfromname [88]int8 - Mntonname [88]int8 -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 - Sysid int32 - Pad_cgo_0 [4]byte -} - -type Dirent struct { - Fileno uint32 - Reclen uint16 - Type uint8 - Namlen uint8 - Name [256]int8 -} - -type Fsid struct { - Val [2]int32 -} - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrInet4 struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type RawSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Len uint8 - Family uint8 - Path [104]int8 -} - -type RawSockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [46]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Pad_cgo_0 [4]byte - Iov *Iovec - Iovlen int32 - Pad_cgo_1 [4]byte - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x6c - SizeofSockaddrUnix = 0x6a - SizeofSockaddrDatalink = 0x36 - SizeofLinger = 0x8 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x30 - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type Kevent_t struct { - Ident uint64 - Filter int16 - Flags uint16 - Fflags uint32 - Data int64 - Udata *byte -} - -type FdSet struct { - X__fds_bits [16]uint64 -} - -const ( - sizeofIfMsghdr = 0xa8 - SizeofIfMsghdr = 0xa8 - sizeofIfData = 0x98 - SizeofIfData = 0x98 - SizeofIfaMsghdr = 0x14 - SizeofIfmaMsghdr = 0x10 - SizeofIfAnnounceMsghdr = 0x18 - SizeofRtMsghdr = 0x98 - SizeofRtMetrics = 0x70 -) - -type ifMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte - Data ifData -} - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte - Data IfData -} - -type ifData struct { - Type uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Vhid uint8 - Datalen uint16 - Mtu uint32 - Metric uint32 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Oqdrops uint64 - Noproto uint64 - Hwassist uint64 - X__ifi_epoch [8]byte - X__ifi_lastchange [16]byte -} - -type IfData struct { - Type uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Spare_char1 uint8 - Spare_char2 uint8 - Datalen uint8 - Mtu uint64 - Metric uint64 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Noproto uint64 - Hwassist uint64 - Epoch int64 - Lastchange Timeval -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte - Metric int32 -} - -type IfmaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Name [16]int8 - What uint16 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Pad_cgo_0 [2]byte - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Fmask int32 - Inits uint64 - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint64 - Mtu uint64 - Hopcount uint64 - Expire uint64 - Recvpipe uint64 - Sendpipe uint64 - Ssthresh uint64 - Rtt uint64 - Rttvar uint64 - Pksent uint64 - Weight uint64 - Filler [3]uint64 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfZbuf = 0x18 - SizeofBpfProgram = 0x10 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x20 - SizeofBpfZbufHeader = 0x20 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint32 - Drop uint32 -} - -type BpfZbuf struct { - Bufa *byte - Bufb *byte - Buflen uint64 -} - -type BpfProgram struct { - Len uint32 - Pad_cgo_0 [4]byte - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp Timeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - Pad_cgo_0 [6]byte -} - -type BpfZbufHeader struct { - Kernel_gen uint32 - Kernel_len uint32 - User_gen uint32 - X_bzh_pad [5]uint32 -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -const ( - AT_FDCWD = -0x64 - AT_REMOVEDIR = 0x800 - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x200 -) - -type CapRights struct { - Rights [2]uint64 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go deleted file mode 100644 index 42c0a50..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go +++ /dev/null @@ -1,524 +0,0 @@ -// cgo -godefs -- -fsigned-char types_freebsd.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build arm,freebsd - -package unix - -const ( - sizeofPtr = 0x4 - sizeofShort = 0x2 - sizeofInt = 0x4 - sizeofLong = 0x4 - sizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int32 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int32 - Pad_cgo_0 [4]byte -} - -type Timeval struct { - Sec int64 - Usec int32 - Pad_cgo_0 [4]byte -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Rlimit struct { - Cur int64 - Max int64 -} - -type _Gid_t uint32 - -const ( - S_IFMT = 0xf000 - S_IFIFO = 0x1000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFBLK = 0x6000 - S_IFREG = 0x8000 - S_IFLNK = 0xa000 - S_IFSOCK = 0xc000 - S_ISUID = 0x800 - S_ISGID = 0x400 - S_ISVTX = 0x200 - S_IRUSR = 0x100 - S_IWUSR = 0x80 - S_IXUSR = 0x40 -) - -type Stat_t struct { - Dev uint32 - Ino uint32 - Mode uint16 - Nlink uint16 - Uid uint32 - Gid uint32 - Rdev uint32 - Atimespec Timespec - Mtimespec Timespec - Ctimespec Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint32 - Lspare int32 - Birthtimespec Timespec -} - -type Statfs_t struct { - Version uint32 - Type uint32 - Flags uint64 - Bsize uint64 - Iosize uint64 - Blocks uint64 - Bfree uint64 - Bavail int64 - Files uint64 - Ffree int64 - Syncwrites uint64 - Asyncwrites uint64 - Syncreads uint64 - Asyncreads uint64 - Spare [10]uint64 - Namemax uint32 - Owner uint32 - Fsid Fsid - Charspare [80]int8 - Fstypename [16]int8 - Mntfromname [88]int8 - Mntonname [88]int8 -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 - Sysid int32 - Pad_cgo_0 [4]byte -} - -type Dirent struct { - Fileno uint32 - Reclen uint16 - Type uint8 - Namlen uint8 - Name [256]int8 -} - -type Fsid struct { - Val [2]int32 -} - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrInet4 struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type RawSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Len uint8 - Family uint8 - Path [104]int8 -} - -type RawSockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [46]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint32 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen int32 - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x6c - SizeofSockaddrUnix = 0x6a - SizeofSockaddrDatalink = 0x36 - SizeofLinger = 0x8 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type Kevent_t struct { - Ident uint32 - Filter int16 - Flags uint16 - Fflags uint32 - Data int32 - Udata *byte -} - -type FdSet struct { - X__fds_bits [32]uint32 -} - -const ( - sizeofIfMsghdr = 0xa8 - SizeofIfMsghdr = 0x70 - sizeofIfData = 0x98 - SizeofIfData = 0x60 - SizeofIfaMsghdr = 0x14 - SizeofIfmaMsghdr = 0x10 - SizeofIfAnnounceMsghdr = 0x18 - SizeofRtMsghdr = 0x5c - SizeofRtMetrics = 0x38 -) - -type ifMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte - Data ifData -} - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte - Data IfData -} - -type ifData struct { - Type uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Vhid uint8 - Datalen uint16 - Mtu uint32 - Metric uint32 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Oqdrops uint64 - Noproto uint64 - Hwassist uint64 - X__ifi_epoch [8]byte - X__ifi_lastchange [16]byte -} - -type IfData struct { - Type uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Spare_char1 uint8 - Spare_char2 uint8 - Datalen uint8 - Mtu uint32 - Metric uint32 - Baudrate uint32 - Ipackets uint32 - Ierrors uint32 - Opackets uint32 - Oerrors uint32 - Collisions uint32 - Ibytes uint32 - Obytes uint32 - Imcasts uint32 - Omcasts uint32 - Iqdrops uint32 - Noproto uint32 - Hwassist uint32 - Pad_cgo_0 [4]byte - Epoch int64 - Lastchange Timeval -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte - Metric int32 -} - -type IfmaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Name [16]int8 - What uint16 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Pad_cgo_0 [2]byte - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Fmask int32 - Inits uint32 - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint32 - Mtu uint32 - Hopcount uint32 - Expire uint32 - Recvpipe uint32 - Sendpipe uint32 - Ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Pksent uint32 - Weight uint32 - Filler [3]uint32 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfZbuf = 0xc - SizeofBpfProgram = 0x8 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x20 - SizeofBpfZbufHeader = 0x20 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint32 - Drop uint32 -} - -type BpfZbuf struct { - Bufa *byte - Bufb *byte - Buflen uint32 -} - -type BpfProgram struct { - Len uint32 - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp Timeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - Pad_cgo_0 [6]byte -} - -type BpfZbufHeader struct { - Kernel_gen uint32 - Kernel_len uint32 - User_gen uint32 - X_bzh_pad [5]uint32 -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -const ( - AT_FDCWD = -0x64 - AT_REMOVEDIR = 0x800 - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x200 -) - -type CapRights struct { - Rights [2]uint64 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go deleted file mode 100644 index 7b36896..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go +++ /dev/null @@ -1,795 +0,0 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m32 linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build 386,linux - -package unix - -const ( - sizeofPtr = 0x4 - sizeofShort = 0x2 - sizeofInt = 0x4 - sizeofLong = 0x4 - sizeofLongLong = 0x8 - PathMax = 0x1000 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int32 - _C_long_long int64 -) - -type Timespec struct { - Sec int32 - Nsec int32 -} - -type Timeval struct { - Sec int32 - Usec int32 -} - -type Timex struct { - Modes uint32 - Offset int32 - Freq int32 - Maxerror int32 - Esterror int32 - Status int32 - Constant int32 - Precision int32 - Tolerance int32 - Time Timeval - Tick int32 - Ppsfreq int32 - Jitter int32 - Shift int32 - Stabil int32 - Jitcnt int32 - Calcnt int32 - Errcnt int32 - Stbcnt int32 - Tai int32 - Pad_cgo_0 [44]byte -} - -type Time_t int32 - -type Tms struct { - Utime int32 - Stime int32 - Cutime int32 - Cstime int32 -} - -type Utimbuf struct { - Actime int32 - Modtime int32 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type Stat_t struct { - Dev uint64 - X__pad1 uint16 - Pad_cgo_0 [2]byte - X__st_ino uint32 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint64 - X__pad2 uint16 - Pad_cgo_1 [2]byte - Size int64 - Blksize int32 - Blocks int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Ino uint64 -} - -type Statfs_t struct { - Type int32 - Bsize int32 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Namelen int32 - Frsize int32 - Flags int32 - Spare [4]int32 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - Pad_cgo_0 [1]byte -} - -type Fsid struct { - X__val [2]int32 -} - -type Flock_t struct { - Type int16 - Whence int16 - Start int64 - Len int64 - Pid int32 -} - -type FscryptPolicy struct { - Version uint8 - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 - Master_key_descriptor [8]uint8 -} - -type FscryptKey struct { - Mode uint32 - Raw [64]uint8 - Size uint32 -} - -type KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 -} - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Family uint16 - Path [108]int8 -} - -type RawSockaddrLinklayer struct { - Family uint16 - Protocol uint16 - Ifindex int32 - Hatype uint16 - Pkttype uint8 - Halen uint8 - Addr [8]uint8 -} - -type RawSockaddrNetlink struct { - Family uint16 - Pad uint16 - Pid uint32 - Groups uint32 -} - -type RawSockaddrHCI struct { - Family uint16 - Dev uint16 - Channel uint16 -} - -type RawSockaddrCAN struct { - Family uint16 - Pad_cgo_0 [2]byte - Ifindex int32 - Addr [8]byte -} - -type RawSockaddrALG struct { - Family uint16 - Type [14]uint8 - Feat uint32 - Mask uint32 - Name [64]uint8 -} - -type RawSockaddrVM struct { - Family uint16 - Reserved1 uint16 - Port uint32 - Cid uint32 - Zero [4]uint8 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]int8 -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint32 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type PacketMreq struct { - Ifindex int32 - Type uint16 - Alen uint16 - Address [8]uint8 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint32 - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type Inet4Pktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Data [8]uint32 -} - -type Ucred struct { - Pid int32 - Uid uint32 - Gid uint32 -} - -type TCPInfo struct { - State uint8 - Ca_state uint8 - Retransmits uint8 - Probes uint8 - Backoff uint8 - Options uint8 - Pad_cgo_0 [2]byte - Rto uint32 - Ato uint32 - Snd_mss uint32 - Rcv_mss uint32 - Unacked uint32 - Sacked uint32 - Lost uint32 - Retrans uint32 - Fackets uint32 - Last_data_sent uint32 - Last_ack_sent uint32 - Last_data_recv uint32 - Last_ack_recv uint32 - Pmtu uint32 - Rcv_ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Advmss uint32 - Reordering uint32 - Rcv_rtt uint32 - Rcv_space uint32 - Total_retrans uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofLinger = 0x8 - SizeofIovec = 0x8 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 -) - -const ( - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_MAX = 0x2b - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 -) - -type NlMsghdr struct { - Len uint32 - Type uint16 - Flags uint16 - Seq uint32 - Pid uint32 -} - -type NlMsgerr struct { - Error int32 - Msg NlMsghdr -} - -type RtGenmsg struct { - Family uint8 -} - -type NlAttr struct { - Len uint16 - Type uint16 -} - -type RtAttr struct { - Len uint16 - Type uint16 -} - -type IfInfomsg struct { - Family uint8 - X__ifi_pad uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index uint32 -} - -type RtMsg struct { - Family uint8 - Dst_len uint8 - Src_len uint8 - Tos uint8 - Table uint8 - Protocol uint8 - Scope uint8 - Type uint8 - Flags uint32 -} - -type RtNexthop struct { - Len uint16 - Flags uint8 - Hops uint8 - Ifindex int32 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x8 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - Pad_cgo_0 [2]byte - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 0x10 - -type PtraceRegs struct { - Ebx int32 - Ecx int32 - Edx int32 - Esi int32 - Edi int32 - Ebp int32 - Eax int32 - Xds int32 - Xes int32 - Xfs int32 - Xgs int32 - Orig_eax int32 - Eip int32 - Xcs int32 - Eflags int32 - Esp int32 - Xss int32 -} - -type FdSet struct { - Bits [32]int32 -} - -type Sysinfo_t struct { - Uptime int32 - Loads [3]uint32 - Totalram uint32 - Freeram uint32 - Sharedram uint32 - Bufferram uint32 - Totalswap uint32 - Freeswap uint32 - Procs uint16 - Pad uint16 - Totalhigh uint32 - Freehigh uint32 - Unit uint32 - X_f [8]int8 -} - -type Utsname struct { - Sysname [65]int8 - Nodename [65]int8 - Release [65]int8 - Version [65]int8 - Machine [65]int8 - Domainname [65]int8 -} - -type Ustat_t struct { - Tfree int32 - Tinode uint32 - Fname [6]int8 - Fpack [6]int8 -} - -type EpollEvent struct { - Events uint32 - Fd int32 - Pad int32 -} - -const ( - AT_FDCWD = -0x64 - AT_REMOVEDIR = 0x200 - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 - POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 -) - -type Sigset_t struct { - X__val [32]uint32 -} - -const RNDGETENTCNT = 0x80045200 - -const PERF_IOC_FLAG_GROUP = 0x1 - -const _SC_PAGESIZE = 0x1e - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [19]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -type Taskstats struct { - Version uint16 - Pad_cgo_0 [2]byte - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - Pad_cgo_1 [6]byte - Cpu_count uint64 - Cpu_delay_total uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]int8 - Ac_sched uint8 - Ac_pad [3]uint8 - Pad_cgo_2 [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - Pad_cgo_3 [4]byte - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 -} - -const ( - TASKSTATS_CMD_UNSPEC = 0x0 - TASKSTATS_CMD_GET = 0x1 - TASKSTATS_CMD_NEW = 0x2 - TASKSTATS_TYPE_UNSPEC = 0x0 - TASKSTATS_TYPE_PID = 0x1 - TASKSTATS_TYPE_TGID = 0x2 - TASKSTATS_TYPE_STATS = 0x3 - TASKSTATS_TYPE_AGGR_PID = 0x4 - TASKSTATS_TYPE_AGGR_TGID = 0x5 - TASKSTATS_TYPE_NULL = 0x6 - TASKSTATS_CMD_ATTR_UNSPEC = 0x0 - TASKSTATS_CMD_ATTR_PID = 0x1 - TASKSTATS_CMD_ATTR_TGID = 0x2 - TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3 - TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4 -) - -type Genlmsghdr struct { - Cmd uint8 - Version uint8 - Reserved uint16 -} - -const ( - CTRL_CMD_UNSPEC = 0x0 - CTRL_CMD_NEWFAMILY = 0x1 - CTRL_CMD_DELFAMILY = 0x2 - CTRL_CMD_GETFAMILY = 0x3 - CTRL_CMD_NEWOPS = 0x4 - CTRL_CMD_DELOPS = 0x5 - CTRL_CMD_GETOPS = 0x6 - CTRL_CMD_NEWMCAST_GRP = 0x7 - CTRL_CMD_DELMCAST_GRP = 0x8 - CTRL_CMD_GETMCAST_GRP = 0x9 - CTRL_ATTR_UNSPEC = 0x0 - CTRL_ATTR_FAMILY_ID = 0x1 - CTRL_ATTR_FAMILY_NAME = 0x2 - CTRL_ATTR_VERSION = 0x3 - CTRL_ATTR_HDRSIZE = 0x4 - CTRL_ATTR_MAXATTR = 0x5 - CTRL_ATTR_OPS = 0x6 - CTRL_ATTR_MCAST_GROUPS = 0x7 - CTRL_ATTR_OP_UNSPEC = 0x0 - CTRL_ATTR_OP_ID = 0x1 - CTRL_ATTR_OP_FLAGS = 0x2 - CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0 - CTRL_ATTR_MCAST_GRP_NAME = 0x1 - CTRL_ATTR_MCAST_GRP_ID = 0x2 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go deleted file mode 100644 index e54fa98..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go +++ /dev/null @@ -1,813 +0,0 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m64 linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build amd64,linux - -package unix - -const ( - sizeofPtr = 0x8 - sizeofShort = 0x2 - sizeofInt = 0x4 - sizeofLong = 0x8 - sizeofLongLong = 0x8 - PathMax = 0x1000 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Timex struct { - Modes uint32 - Pad_cgo_0 [4]byte - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - Pad_cgo_1 [4]byte - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - Pad_cgo_2 [4]byte - Stabil int64 - Jitcnt int64 - Calcnt int64 - Errcnt int64 - Stbcnt int64 - Tai int32 - Pad_cgo_3 [44]byte -} - -type Time_t int64 - -type Tms struct { - Utime int64 - Stime int64 - Cutime int64 - Cstime int64 -} - -type Utimbuf struct { - Actime int64 - Modtime int64 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int64 - Ixrss int64 - Idrss int64 - Isrss int64 - Minflt int64 - Majflt int64 - Nswap int64 - Inblock int64 - Oublock int64 - Msgsnd int64 - Msgrcv int64 - Nsignals int64 - Nvcsw int64 - Nivcsw int64 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type Stat_t struct { - Dev uint64 - Ino uint64 - Nlink uint64 - Mode uint32 - Uid uint32 - Gid uint32 - X__pad0 int32 - Rdev uint64 - Size int64 - Blksize int64 - Blocks int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - _ [3]int64 -} - -type Statfs_t struct { - Type int64 - Bsize int64 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Namelen int64 - Frsize int64 - Flags int64 - Spare [4]int64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - Pad_cgo_0 [5]byte -} - -type Fsid struct { - X__val [2]int32 -} - -type Flock_t struct { - Type int16 - Whence int16 - Pad_cgo_0 [4]byte - Start int64 - Len int64 - Pid int32 - Pad_cgo_1 [4]byte -} - -type FscryptPolicy struct { - Version uint8 - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 - Master_key_descriptor [8]uint8 -} - -type FscryptKey struct { - Mode uint32 - Raw [64]uint8 - Size uint32 -} - -type KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 -} - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Family uint16 - Path [108]int8 -} - -type RawSockaddrLinklayer struct { - Family uint16 - Protocol uint16 - Ifindex int32 - Hatype uint16 - Pkttype uint8 - Halen uint8 - Addr [8]uint8 -} - -type RawSockaddrNetlink struct { - Family uint16 - Pad uint16 - Pid uint32 - Groups uint32 -} - -type RawSockaddrHCI struct { - Family uint16 - Dev uint16 - Channel uint16 -} - -type RawSockaddrCAN struct { - Family uint16 - Pad_cgo_0 [2]byte - Ifindex int32 - Addr [8]byte -} - -type RawSockaddrALG struct { - Family uint16 - Type [14]uint8 - Feat uint32 - Mask uint32 - Name [64]uint8 -} - -type RawSockaddrVM struct { - Family uint16 - Reserved1 uint16 - Port uint32 - Cid uint32 - Zero [4]uint8 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]int8 -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type PacketMreq struct { - Ifindex int32 - Type uint16 - Alen uint16 - Address [8]uint8 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Pad_cgo_0 [4]byte - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - Pad_cgo_1 [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -type Inet4Pktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Data [8]uint32 -} - -type Ucred struct { - Pid int32 - Uid uint32 - Gid uint32 -} - -type TCPInfo struct { - State uint8 - Ca_state uint8 - Retransmits uint8 - Probes uint8 - Backoff uint8 - Options uint8 - Pad_cgo_0 [2]byte - Rto uint32 - Ato uint32 - Snd_mss uint32 - Rcv_mss uint32 - Unacked uint32 - Sacked uint32 - Lost uint32 - Retrans uint32 - Fackets uint32 - Last_data_sent uint32 - Last_ack_sent uint32 - Last_data_recv uint32 - Last_ack_recv uint32 - Pmtu uint32 - Rcv_ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Advmss uint32 - Reordering uint32 - Rcv_rtt uint32 - Rcv_space uint32 - Total_retrans uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 -) - -const ( - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_MAX = 0x2b - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 -) - -type NlMsghdr struct { - Len uint32 - Type uint16 - Flags uint16 - Seq uint32 - Pid uint32 -} - -type NlMsgerr struct { - Error int32 - Msg NlMsghdr -} - -type RtGenmsg struct { - Family uint8 -} - -type NlAttr struct { - Len uint16 - Type uint16 -} - -type RtAttr struct { - Len uint16 - Type uint16 -} - -type IfInfomsg struct { - Family uint8 - X__ifi_pad uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index uint32 -} - -type RtMsg struct { - Family uint8 - Dst_len uint8 - Src_len uint8 - Tos uint8 - Table uint8 - Protocol uint8 - Scope uint8 - Type uint8 - Flags uint32 -} - -type RtNexthop struct { - Len uint16 - Flags uint8 - Hops uint8 - Ifindex int32 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x10 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - Pad_cgo_0 [6]byte - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 0x10 - -type PtraceRegs struct { - R15 uint64 - R14 uint64 - R13 uint64 - R12 uint64 - Rbp uint64 - Rbx uint64 - R11 uint64 - R10 uint64 - R9 uint64 - R8 uint64 - Rax uint64 - Rcx uint64 - Rdx uint64 - Rsi uint64 - Rdi uint64 - Orig_rax uint64 - Rip uint64 - Cs uint64 - Eflags uint64 - Rsp uint64 - Ss uint64 - Fs_base uint64 - Gs_base uint64 - Ds uint64 - Es uint64 - Fs uint64 - Gs uint64 -} - -type FdSet struct { - Bits [16]int64 -} - -type Sysinfo_t struct { - Uptime int64 - Loads [3]uint64 - Totalram uint64 - Freeram uint64 - Sharedram uint64 - Bufferram uint64 - Totalswap uint64 - Freeswap uint64 - Procs uint16 - Pad uint16 - Pad_cgo_0 [4]byte - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - X_f [0]int8 - Pad_cgo_1 [4]byte -} - -type Utsname struct { - Sysname [65]int8 - Nodename [65]int8 - Release [65]int8 - Version [65]int8 - Machine [65]int8 - Domainname [65]int8 -} - -type Ustat_t struct { - Tfree int32 - Pad_cgo_0 [4]byte - Tinode uint64 - Fname [6]int8 - Fpack [6]int8 - Pad_cgo_1 [4]byte -} - -type EpollEvent struct { - Events uint32 - Fd int32 - Pad int32 -} - -const ( - AT_FDCWD = -0x64 - AT_REMOVEDIR = 0x200 - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 - POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 -) - -type Sigset_t struct { - X__val [16]uint64 -} - -const RNDGETENTCNT = 0x80045200 - -const PERF_IOC_FLAG_GROUP = 0x1 - -const _SC_PAGESIZE = 0x1e - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [19]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -type Taskstats struct { - Version uint16 - Pad_cgo_0 [2]byte - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - Pad_cgo_1 [6]byte - Cpu_count uint64 - Cpu_delay_total uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]int8 - Ac_sched uint8 - Ac_pad [3]uint8 - Pad_cgo_2 [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - Pad_cgo_3 [4]byte - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 -} - -const ( - TASKSTATS_CMD_UNSPEC = 0x0 - TASKSTATS_CMD_GET = 0x1 - TASKSTATS_CMD_NEW = 0x2 - TASKSTATS_TYPE_UNSPEC = 0x0 - TASKSTATS_TYPE_PID = 0x1 - TASKSTATS_TYPE_TGID = 0x2 - TASKSTATS_TYPE_STATS = 0x3 - TASKSTATS_TYPE_AGGR_PID = 0x4 - TASKSTATS_TYPE_AGGR_TGID = 0x5 - TASKSTATS_TYPE_NULL = 0x6 - TASKSTATS_CMD_ATTR_UNSPEC = 0x0 - TASKSTATS_CMD_ATTR_PID = 0x1 - TASKSTATS_CMD_ATTR_TGID = 0x2 - TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3 - TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4 -) - -type Genlmsghdr struct { - Cmd uint8 - Version uint8 - Reserved uint16 -} - -const ( - CTRL_CMD_UNSPEC = 0x0 - CTRL_CMD_NEWFAMILY = 0x1 - CTRL_CMD_DELFAMILY = 0x2 - CTRL_CMD_GETFAMILY = 0x3 - CTRL_CMD_NEWOPS = 0x4 - CTRL_CMD_DELOPS = 0x5 - CTRL_CMD_GETOPS = 0x6 - CTRL_CMD_NEWMCAST_GRP = 0x7 - CTRL_CMD_DELMCAST_GRP = 0x8 - CTRL_CMD_GETMCAST_GRP = 0x9 - CTRL_ATTR_UNSPEC = 0x0 - CTRL_ATTR_FAMILY_ID = 0x1 - CTRL_ATTR_FAMILY_NAME = 0x2 - CTRL_ATTR_VERSION = 0x3 - CTRL_ATTR_HDRSIZE = 0x4 - CTRL_ATTR_MAXATTR = 0x5 - CTRL_ATTR_OPS = 0x6 - CTRL_ATTR_MCAST_GROUPS = 0x7 - CTRL_ATTR_OP_UNSPEC = 0x0 - CTRL_ATTR_OP_ID = 0x1 - CTRL_ATTR_OP_FLAGS = 0x2 - CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0 - CTRL_ATTR_MCAST_GRP_NAME = 0x1 - CTRL_ATTR_MCAST_GRP_ID = 0x2 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go deleted file mode 100644 index bff6ce2..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go +++ /dev/null @@ -1,784 +0,0 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build arm,linux - -package unix - -const ( - sizeofPtr = 0x4 - sizeofShort = 0x2 - sizeofInt = 0x4 - sizeofLong = 0x4 - sizeofLongLong = 0x8 - PathMax = 0x1000 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int32 - _C_long_long int64 -) - -type Timespec struct { - Sec int32 - Nsec int32 -} - -type Timeval struct { - Sec int32 - Usec int32 -} - -type Timex struct { - Modes uint32 - Offset int32 - Freq int32 - Maxerror int32 - Esterror int32 - Status int32 - Constant int32 - Precision int32 - Tolerance int32 - Time Timeval - Tick int32 - Ppsfreq int32 - Jitter int32 - Shift int32 - Stabil int32 - Jitcnt int32 - Calcnt int32 - Errcnt int32 - Stbcnt int32 - Tai int32 - Pad_cgo_0 [44]byte -} - -type Time_t int32 - -type Tms struct { - Utime int32 - Stime int32 - Cutime int32 - Cstime int32 -} - -type Utimbuf struct { - Actime int32 - Modtime int32 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type Stat_t struct { - Dev uint64 - X__pad1 uint16 - Pad_cgo_0 [2]byte - X__st_ino uint32 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint64 - X__pad2 uint16 - Pad_cgo_1 [6]byte - Size int64 - Blksize int32 - Pad_cgo_2 [4]byte - Blocks int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Ino uint64 -} - -type Statfs_t struct { - Type int32 - Bsize int32 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Namelen int32 - Frsize int32 - Flags int32 - Spare [4]int32 - Pad_cgo_0 [4]byte -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]uint8 - Pad_cgo_0 [5]byte -} - -type Fsid struct { - X__val [2]int32 -} - -type Flock_t struct { - Type int16 - Whence int16 - Pad_cgo_0 [4]byte - Start int64 - Len int64 - Pid int32 - Pad_cgo_1 [4]byte -} - -type FscryptPolicy struct { - Version uint8 - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 - Master_key_descriptor [8]uint8 -} - -type FscryptKey struct { - Mode uint32 - Raw [64]uint8 - Size uint32 -} - -type KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 -} - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Family uint16 - Path [108]int8 -} - -type RawSockaddrLinklayer struct { - Family uint16 - Protocol uint16 - Ifindex int32 - Hatype uint16 - Pkttype uint8 - Halen uint8 - Addr [8]uint8 -} - -type RawSockaddrNetlink struct { - Family uint16 - Pad uint16 - Pid uint32 - Groups uint32 -} - -type RawSockaddrHCI struct { - Family uint16 - Dev uint16 - Channel uint16 -} - -type RawSockaddrCAN struct { - Family uint16 - Pad_cgo_0 [2]byte - Ifindex int32 - Addr [8]byte -} - -type RawSockaddrALG struct { - Family uint16 - Type [14]uint8 - Feat uint32 - Mask uint32 - Name [64]uint8 -} - -type RawSockaddrVM struct { - Family uint16 - Reserved1 uint16 - Port uint32 - Cid uint32 - Zero [4]uint8 -} - -type RawSockaddr struct { - Family uint16 - Data [14]uint8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]uint8 -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint32 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type PacketMreq struct { - Ifindex int32 - Type uint16 - Alen uint16 - Address [8]uint8 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint32 - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type Inet4Pktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Data [8]uint32 -} - -type Ucred struct { - Pid int32 - Uid uint32 - Gid uint32 -} - -type TCPInfo struct { - State uint8 - Ca_state uint8 - Retransmits uint8 - Probes uint8 - Backoff uint8 - Options uint8 - Pad_cgo_0 [2]byte - Rto uint32 - Ato uint32 - Snd_mss uint32 - Rcv_mss uint32 - Unacked uint32 - Sacked uint32 - Lost uint32 - Retrans uint32 - Fackets uint32 - Last_data_sent uint32 - Last_ack_sent uint32 - Last_data_recv uint32 - Last_ack_recv uint32 - Pmtu uint32 - Rcv_ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Advmss uint32 - Reordering uint32 - Rcv_rtt uint32 - Rcv_space uint32 - Total_retrans uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofLinger = 0x8 - SizeofIovec = 0x8 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 -) - -const ( - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_MAX = 0x2b - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 -) - -type NlMsghdr struct { - Len uint32 - Type uint16 - Flags uint16 - Seq uint32 - Pid uint32 -} - -type NlMsgerr struct { - Error int32 - Msg NlMsghdr -} - -type RtGenmsg struct { - Family uint8 -} - -type NlAttr struct { - Len uint16 - Type uint16 -} - -type RtAttr struct { - Len uint16 - Type uint16 -} - -type IfInfomsg struct { - Family uint8 - X__ifi_pad uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index uint32 -} - -type RtMsg struct { - Family uint8 - Dst_len uint8 - Src_len uint8 - Tos uint8 - Table uint8 - Protocol uint8 - Scope uint8 - Type uint8 - Flags uint32 -} - -type RtNexthop struct { - Len uint16 - Flags uint8 - Hops uint8 - Ifindex int32 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x8 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - Pad_cgo_0 [2]byte - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 0x10 - -type PtraceRegs struct { - Uregs [18]uint32 -} - -type FdSet struct { - Bits [32]int32 -} - -type Sysinfo_t struct { - Uptime int32 - Loads [3]uint32 - Totalram uint32 - Freeram uint32 - Sharedram uint32 - Bufferram uint32 - Totalswap uint32 - Freeswap uint32 - Procs uint16 - Pad uint16 - Totalhigh uint32 - Freehigh uint32 - Unit uint32 - X_f [8]uint8 -} - -type Utsname struct { - Sysname [65]uint8 - Nodename [65]uint8 - Release [65]uint8 - Version [65]uint8 - Machine [65]uint8 - Domainname [65]uint8 -} - -type Ustat_t struct { - Tfree int32 - Tinode uint32 - Fname [6]uint8 - Fpack [6]uint8 -} - -type EpollEvent struct { - Events uint32 - PadFd int32 - Fd int32 - Pad int32 -} - -const ( - AT_FDCWD = -0x64 - AT_REMOVEDIR = 0x200 - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 - POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 -) - -type Sigset_t struct { - X__val [32]uint32 -} - -const RNDGETENTCNT = 0x80045200 - -const PERF_IOC_FLAG_GROUP = 0x1 - -const _SC_PAGESIZE = 0x1e - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [19]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -type Taskstats struct { - Version uint16 - Pad_cgo_0 [2]byte - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - Pad_cgo_1 [6]byte - Cpu_count uint64 - Cpu_delay_total uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]uint8 - Ac_sched uint8 - Ac_pad [3]uint8 - Pad_cgo_2 [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - Pad_cgo_3 [4]byte - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 -} - -const ( - TASKSTATS_CMD_UNSPEC = 0x0 - TASKSTATS_CMD_GET = 0x1 - TASKSTATS_CMD_NEW = 0x2 - TASKSTATS_TYPE_UNSPEC = 0x0 - TASKSTATS_TYPE_PID = 0x1 - TASKSTATS_TYPE_TGID = 0x2 - TASKSTATS_TYPE_STATS = 0x3 - TASKSTATS_TYPE_AGGR_PID = 0x4 - TASKSTATS_TYPE_AGGR_TGID = 0x5 - TASKSTATS_TYPE_NULL = 0x6 - TASKSTATS_CMD_ATTR_UNSPEC = 0x0 - TASKSTATS_CMD_ATTR_PID = 0x1 - TASKSTATS_CMD_ATTR_TGID = 0x2 - TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3 - TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4 -) - -type Genlmsghdr struct { - Cmd uint8 - Version uint8 - Reserved uint16 -} - -const ( - CTRL_CMD_UNSPEC = 0x0 - CTRL_CMD_NEWFAMILY = 0x1 - CTRL_CMD_DELFAMILY = 0x2 - CTRL_CMD_GETFAMILY = 0x3 - CTRL_CMD_NEWOPS = 0x4 - CTRL_CMD_DELOPS = 0x5 - CTRL_CMD_GETOPS = 0x6 - CTRL_CMD_NEWMCAST_GRP = 0x7 - CTRL_CMD_DELMCAST_GRP = 0x8 - CTRL_CMD_GETMCAST_GRP = 0x9 - CTRL_ATTR_UNSPEC = 0x0 - CTRL_ATTR_FAMILY_ID = 0x1 - CTRL_ATTR_FAMILY_NAME = 0x2 - CTRL_ATTR_VERSION = 0x3 - CTRL_ATTR_HDRSIZE = 0x4 - CTRL_ATTR_MAXATTR = 0x5 - CTRL_ATTR_OPS = 0x6 - CTRL_ATTR_MCAST_GROUPS = 0x7 - CTRL_ATTR_OP_UNSPEC = 0x0 - CTRL_ATTR_OP_ID = 0x1 - CTRL_ATTR_OP_FLAGS = 0x2 - CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0 - CTRL_ATTR_MCAST_GRP_NAME = 0x1 - CTRL_ATTR_MCAST_GRP_ID = 0x2 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go deleted file mode 100644 index a3d0cc4..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go +++ /dev/null @@ -1,792 +0,0 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build arm64,linux - -package unix - -const ( - sizeofPtr = 0x8 - sizeofShort = 0x2 - sizeofInt = 0x4 - sizeofLong = 0x8 - sizeofLongLong = 0x8 - PathMax = 0x1000 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Timex struct { - Modes uint32 - Pad_cgo_0 [4]byte - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - Pad_cgo_1 [4]byte - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - Pad_cgo_2 [4]byte - Stabil int64 - Jitcnt int64 - Calcnt int64 - Errcnt int64 - Stbcnt int64 - Tai int32 - Pad_cgo_3 [44]byte -} - -type Time_t int64 - -type Tms struct { - Utime int64 - Stime int64 - Cutime int64 - Cstime int64 -} - -type Utimbuf struct { - Actime int64 - Modtime int64 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int64 - Ixrss int64 - Idrss int64 - Isrss int64 - Minflt int64 - Majflt int64 - Nswap int64 - Inblock int64 - Oublock int64 - Msgsnd int64 - Msgrcv int64 - Nsignals int64 - Nvcsw int64 - Nivcsw int64 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type Stat_t struct { - Dev uint64 - Ino uint64 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint64 - X__pad1 uint64 - Size int64 - Blksize int32 - X__pad2 int32 - Blocks int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - _ [2]int32 -} - -type Statfs_t struct { - Type int64 - Bsize int64 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Namelen int64 - Frsize int64 - Flags int64 - Spare [4]int64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - Pad_cgo_0 [5]byte -} - -type Fsid struct { - X__val [2]int32 -} - -type Flock_t struct { - Type int16 - Whence int16 - Pad_cgo_0 [4]byte - Start int64 - Len int64 - Pid int32 - Pad_cgo_1 [4]byte -} - -type FscryptPolicy struct { - Version uint8 - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 - Master_key_descriptor [8]uint8 -} - -type FscryptKey struct { - Mode uint32 - Raw [64]uint8 - Size uint32 -} - -type KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 -} - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Family uint16 - Path [108]int8 -} - -type RawSockaddrLinklayer struct { - Family uint16 - Protocol uint16 - Ifindex int32 - Hatype uint16 - Pkttype uint8 - Halen uint8 - Addr [8]uint8 -} - -type RawSockaddrNetlink struct { - Family uint16 - Pad uint16 - Pid uint32 - Groups uint32 -} - -type RawSockaddrHCI struct { - Family uint16 - Dev uint16 - Channel uint16 -} - -type RawSockaddrCAN struct { - Family uint16 - Pad_cgo_0 [2]byte - Ifindex int32 - Addr [8]byte -} - -type RawSockaddrALG struct { - Family uint16 - Type [14]uint8 - Feat uint32 - Mask uint32 - Name [64]uint8 -} - -type RawSockaddrVM struct { - Family uint16 - Reserved1 uint16 - Port uint32 - Cid uint32 - Zero [4]uint8 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]int8 -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type PacketMreq struct { - Ifindex int32 - Type uint16 - Alen uint16 - Address [8]uint8 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Pad_cgo_0 [4]byte - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - Pad_cgo_1 [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -type Inet4Pktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Data [8]uint32 -} - -type Ucred struct { - Pid int32 - Uid uint32 - Gid uint32 -} - -type TCPInfo struct { - State uint8 - Ca_state uint8 - Retransmits uint8 - Probes uint8 - Backoff uint8 - Options uint8 - Pad_cgo_0 [2]byte - Rto uint32 - Ato uint32 - Snd_mss uint32 - Rcv_mss uint32 - Unacked uint32 - Sacked uint32 - Lost uint32 - Retrans uint32 - Fackets uint32 - Last_data_sent uint32 - Last_ack_sent uint32 - Last_data_recv uint32 - Last_ack_recv uint32 - Pmtu uint32 - Rcv_ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Advmss uint32 - Reordering uint32 - Rcv_rtt uint32 - Rcv_space uint32 - Total_retrans uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 -) - -const ( - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_MAX = 0x2b - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 -) - -type NlMsghdr struct { - Len uint32 - Type uint16 - Flags uint16 - Seq uint32 - Pid uint32 -} - -type NlMsgerr struct { - Error int32 - Msg NlMsghdr -} - -type RtGenmsg struct { - Family uint8 -} - -type NlAttr struct { - Len uint16 - Type uint16 -} - -type RtAttr struct { - Len uint16 - Type uint16 -} - -type IfInfomsg struct { - Family uint8 - X__ifi_pad uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index uint32 -} - -type RtMsg struct { - Family uint8 - Dst_len uint8 - Src_len uint8 - Tos uint8 - Table uint8 - Protocol uint8 - Scope uint8 - Type uint8 - Flags uint32 -} - -type RtNexthop struct { - Len uint16 - Flags uint8 - Hops uint8 - Ifindex int32 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x10 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - Pad_cgo_0 [6]byte - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 0x10 - -type PtraceRegs struct { - Regs [31]uint64 - Sp uint64 - Pc uint64 - Pstate uint64 -} - -type FdSet struct { - Bits [16]int64 -} - -type Sysinfo_t struct { - Uptime int64 - Loads [3]uint64 - Totalram uint64 - Freeram uint64 - Sharedram uint64 - Bufferram uint64 - Totalswap uint64 - Freeswap uint64 - Procs uint16 - Pad uint16 - Pad_cgo_0 [4]byte - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - X_f [0]int8 - Pad_cgo_1 [4]byte -} - -type Utsname struct { - Sysname [65]int8 - Nodename [65]int8 - Release [65]int8 - Version [65]int8 - Machine [65]int8 - Domainname [65]int8 -} - -type Ustat_t struct { - Tfree int32 - Pad_cgo_0 [4]byte - Tinode uint64 - Fname [6]int8 - Fpack [6]int8 - Pad_cgo_1 [4]byte -} - -type EpollEvent struct { - Events uint32 - PadFd int32 - Fd int32 - Pad int32 -} - -const ( - AT_FDCWD = -0x64 - AT_REMOVEDIR = 0x200 - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 - POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 -) - -type Sigset_t struct { - X__val [16]uint64 -} - -const RNDGETENTCNT = 0x80045200 - -const PERF_IOC_FLAG_GROUP = 0x1 - -const _SC_PAGESIZE = 0x1e - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [19]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -type Taskstats struct { - Version uint16 - Pad_cgo_0 [2]byte - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - Pad_cgo_1 [6]byte - Cpu_count uint64 - Cpu_delay_total uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]int8 - Ac_sched uint8 - Ac_pad [3]uint8 - Pad_cgo_2 [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - Pad_cgo_3 [4]byte - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 -} - -const ( - TASKSTATS_CMD_UNSPEC = 0x0 - TASKSTATS_CMD_GET = 0x1 - TASKSTATS_CMD_NEW = 0x2 - TASKSTATS_TYPE_UNSPEC = 0x0 - TASKSTATS_TYPE_PID = 0x1 - TASKSTATS_TYPE_TGID = 0x2 - TASKSTATS_TYPE_STATS = 0x3 - TASKSTATS_TYPE_AGGR_PID = 0x4 - TASKSTATS_TYPE_AGGR_TGID = 0x5 - TASKSTATS_TYPE_NULL = 0x6 - TASKSTATS_CMD_ATTR_UNSPEC = 0x0 - TASKSTATS_CMD_ATTR_PID = 0x1 - TASKSTATS_CMD_ATTR_TGID = 0x2 - TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3 - TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4 -) - -type Genlmsghdr struct { - Cmd uint8 - Version uint8 - Reserved uint16 -} - -const ( - CTRL_CMD_UNSPEC = 0x0 - CTRL_CMD_NEWFAMILY = 0x1 - CTRL_CMD_DELFAMILY = 0x2 - CTRL_CMD_GETFAMILY = 0x3 - CTRL_CMD_NEWOPS = 0x4 - CTRL_CMD_DELOPS = 0x5 - CTRL_CMD_GETOPS = 0x6 - CTRL_CMD_NEWMCAST_GRP = 0x7 - CTRL_CMD_DELMCAST_GRP = 0x8 - CTRL_CMD_GETMCAST_GRP = 0x9 - CTRL_ATTR_UNSPEC = 0x0 - CTRL_ATTR_FAMILY_ID = 0x1 - CTRL_ATTR_FAMILY_NAME = 0x2 - CTRL_ATTR_VERSION = 0x3 - CTRL_ATTR_HDRSIZE = 0x4 - CTRL_ATTR_MAXATTR = 0x5 - CTRL_ATTR_OPS = 0x6 - CTRL_ATTR_MCAST_GROUPS = 0x7 - CTRL_ATTR_OP_UNSPEC = 0x0 - CTRL_ATTR_OP_ID = 0x1 - CTRL_ATTR_OP_FLAGS = 0x2 - CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0 - CTRL_ATTR_MCAST_GRP_NAME = 0x1 - CTRL_ATTR_MCAST_GRP_ID = 0x2 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go deleted file mode 100644 index 8fa6603..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go +++ /dev/null @@ -1,789 +0,0 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build mips,linux - -package unix - -const ( - sizeofPtr = 0x4 - sizeofShort = 0x2 - sizeofInt = 0x4 - sizeofLong = 0x4 - sizeofLongLong = 0x8 - PathMax = 0x1000 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int32 - _C_long_long int64 -) - -type Timespec struct { - Sec int32 - Nsec int32 -} - -type Timeval struct { - Sec int32 - Usec int32 -} - -type Timex struct { - Modes uint32 - Offset int32 - Freq int32 - Maxerror int32 - Esterror int32 - Status int32 - Constant int32 - Precision int32 - Tolerance int32 - Time Timeval - Tick int32 - Ppsfreq int32 - Jitter int32 - Shift int32 - Stabil int32 - Jitcnt int32 - Calcnt int32 - Errcnt int32 - Stbcnt int32 - Tai int32 - Pad_cgo_0 [44]byte -} - -type Time_t int32 - -type Tms struct { - Utime int32 - Stime int32 - Cutime int32 - Cstime int32 -} - -type Utimbuf struct { - Actime int32 - Modtime int32 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type Stat_t struct { - Dev uint32 - Pad1 [3]int32 - Ino uint64 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint32 - Pad2 [3]int32 - Size int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Blksize int32 - Pad4 int32 - Blocks int64 - Pad5 [14]int32 -} - -type Statfs_t struct { - Type int32 - Bsize int32 - Frsize int32 - Pad_cgo_0 [4]byte - Blocks uint64 - Bfree uint64 - Files uint64 - Ffree uint64 - Bavail uint64 - Fsid Fsid - Namelen int32 - Flags int32 - Spare [5]int32 - Pad_cgo_1 [4]byte -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - Pad_cgo_0 [5]byte -} - -type Fsid struct { - X__val [2]int32 -} - -type Flock_t struct { - Type int16 - Whence int16 - Pad_cgo_0 [4]byte - Start int64 - Len int64 - Pid int32 - Pad_cgo_1 [4]byte -} - -type FscryptPolicy struct { - Version uint8 - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 - Master_key_descriptor [8]uint8 -} - -type FscryptKey struct { - Mode uint32 - Raw [64]uint8 - Size uint32 -} - -type KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 -} - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Family uint16 - Path [108]int8 -} - -type RawSockaddrLinklayer struct { - Family uint16 - Protocol uint16 - Ifindex int32 - Hatype uint16 - Pkttype uint8 - Halen uint8 - Addr [8]uint8 -} - -type RawSockaddrNetlink struct { - Family uint16 - Pad uint16 - Pid uint32 - Groups uint32 -} - -type RawSockaddrHCI struct { - Family uint16 - Dev uint16 - Channel uint16 -} - -type RawSockaddrCAN struct { - Family uint16 - Pad_cgo_0 [2]byte - Ifindex int32 - Addr [8]byte -} - -type RawSockaddrALG struct { - Family uint16 - Type [14]uint8 - Feat uint32 - Mask uint32 - Name [64]uint8 -} - -type RawSockaddrVM struct { - Family uint16 - Reserved1 uint16 - Port uint32 - Cid uint32 - Zero [4]uint8 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]int8 -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint32 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type PacketMreq struct { - Ifindex int32 - Type uint16 - Alen uint16 - Address [8]uint8 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint32 - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type Inet4Pktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Data [8]uint32 -} - -type Ucred struct { - Pid int32 - Uid uint32 - Gid uint32 -} - -type TCPInfo struct { - State uint8 - Ca_state uint8 - Retransmits uint8 - Probes uint8 - Backoff uint8 - Options uint8 - Pad_cgo_0 [2]byte - Rto uint32 - Ato uint32 - Snd_mss uint32 - Rcv_mss uint32 - Unacked uint32 - Sacked uint32 - Lost uint32 - Retrans uint32 - Fackets uint32 - Last_data_sent uint32 - Last_ack_sent uint32 - Last_data_recv uint32 - Last_ack_recv uint32 - Pmtu uint32 - Rcv_ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Advmss uint32 - Reordering uint32 - Rcv_rtt uint32 - Rcv_space uint32 - Total_retrans uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofLinger = 0x8 - SizeofIovec = 0x8 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 -) - -const ( - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_MAX = 0x2b - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 -) - -type NlMsghdr struct { - Len uint32 - Type uint16 - Flags uint16 - Seq uint32 - Pid uint32 -} - -type NlMsgerr struct { - Error int32 - Msg NlMsghdr -} - -type RtGenmsg struct { - Family uint8 -} - -type NlAttr struct { - Len uint16 - Type uint16 -} - -type RtAttr struct { - Len uint16 - Type uint16 -} - -type IfInfomsg struct { - Family uint8 - X__ifi_pad uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index uint32 -} - -type RtMsg struct { - Family uint8 - Dst_len uint8 - Src_len uint8 - Tos uint8 - Table uint8 - Protocol uint8 - Scope uint8 - Type uint8 - Flags uint32 -} - -type RtNexthop struct { - Len uint16 - Flags uint8 - Hops uint8 - Ifindex int32 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x8 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - Pad_cgo_0 [2]byte - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 0x10 - -type PtraceRegs struct { - Regs [32]uint64 - Lo uint64 - Hi uint64 - Epc uint64 - Badvaddr uint64 - Status uint64 - Cause uint64 -} - -type FdSet struct { - Bits [32]int32 -} - -type Sysinfo_t struct { - Uptime int32 - Loads [3]uint32 - Totalram uint32 - Freeram uint32 - Sharedram uint32 - Bufferram uint32 - Totalswap uint32 - Freeswap uint32 - Procs uint16 - Pad uint16 - Totalhigh uint32 - Freehigh uint32 - Unit uint32 - X_f [8]int8 -} - -type Utsname struct { - Sysname [65]int8 - Nodename [65]int8 - Release [65]int8 - Version [65]int8 - Machine [65]int8 - Domainname [65]int8 -} - -type Ustat_t struct { - Tfree int32 - Tinode uint32 - Fname [6]int8 - Fpack [6]int8 -} - -type EpollEvent struct { - Events uint32 - PadFd int32 - Fd int32 - Pad int32 -} - -const ( - AT_FDCWD = -0x64 - AT_REMOVEDIR = 0x200 - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 - POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 -) - -type Sigset_t struct { - X__val [32]uint32 -} - -const RNDGETENTCNT = 0x40045200 - -const PERF_IOC_FLAG_GROUP = 0x1 - -const _SC_PAGESIZE = 0x1e - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [23]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -type Taskstats struct { - Version uint16 - Pad_cgo_0 [2]byte - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - Pad_cgo_1 [6]byte - Cpu_count uint64 - Cpu_delay_total uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]int8 - Ac_sched uint8 - Ac_pad [3]uint8 - Pad_cgo_2 [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - Pad_cgo_3 [4]byte - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 -} - -const ( - TASKSTATS_CMD_UNSPEC = 0x0 - TASKSTATS_CMD_GET = 0x1 - TASKSTATS_CMD_NEW = 0x2 - TASKSTATS_TYPE_UNSPEC = 0x0 - TASKSTATS_TYPE_PID = 0x1 - TASKSTATS_TYPE_TGID = 0x2 - TASKSTATS_TYPE_STATS = 0x3 - TASKSTATS_TYPE_AGGR_PID = 0x4 - TASKSTATS_TYPE_AGGR_TGID = 0x5 - TASKSTATS_TYPE_NULL = 0x6 - TASKSTATS_CMD_ATTR_UNSPEC = 0x0 - TASKSTATS_CMD_ATTR_PID = 0x1 - TASKSTATS_CMD_ATTR_TGID = 0x2 - TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3 - TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4 -) - -type Genlmsghdr struct { - Cmd uint8 - Version uint8 - Reserved uint16 -} - -const ( - CTRL_CMD_UNSPEC = 0x0 - CTRL_CMD_NEWFAMILY = 0x1 - CTRL_CMD_DELFAMILY = 0x2 - CTRL_CMD_GETFAMILY = 0x3 - CTRL_CMD_NEWOPS = 0x4 - CTRL_CMD_DELOPS = 0x5 - CTRL_CMD_GETOPS = 0x6 - CTRL_CMD_NEWMCAST_GRP = 0x7 - CTRL_CMD_DELMCAST_GRP = 0x8 - CTRL_CMD_GETMCAST_GRP = 0x9 - CTRL_ATTR_UNSPEC = 0x0 - CTRL_ATTR_FAMILY_ID = 0x1 - CTRL_ATTR_FAMILY_NAME = 0x2 - CTRL_ATTR_VERSION = 0x3 - CTRL_ATTR_HDRSIZE = 0x4 - CTRL_ATTR_MAXATTR = 0x5 - CTRL_ATTR_OPS = 0x6 - CTRL_ATTR_MCAST_GROUPS = 0x7 - CTRL_ATTR_OP_UNSPEC = 0x0 - CTRL_ATTR_OP_ID = 0x1 - CTRL_ATTR_OP_FLAGS = 0x2 - CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0 - CTRL_ATTR_MCAST_GRP_NAME = 0x1 - CTRL_ATTR_MCAST_GRP_ID = 0x2 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go deleted file mode 100644 index 3e5fc62..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go +++ /dev/null @@ -1,794 +0,0 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build mips64,linux - -package unix - -const ( - sizeofPtr = 0x8 - sizeofShort = 0x2 - sizeofInt = 0x4 - sizeofLong = 0x8 - sizeofLongLong = 0x8 - PathMax = 0x1000 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Timex struct { - Modes uint32 - Pad_cgo_0 [4]byte - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - Pad_cgo_1 [4]byte - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - Pad_cgo_2 [4]byte - Stabil int64 - Jitcnt int64 - Calcnt int64 - Errcnt int64 - Stbcnt int64 - Tai int32 - Pad_cgo_3 [44]byte -} - -type Time_t int64 - -type Tms struct { - Utime int64 - Stime int64 - Cutime int64 - Cstime int64 -} - -type Utimbuf struct { - Actime int64 - Modtime int64 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int64 - Ixrss int64 - Idrss int64 - Isrss int64 - Minflt int64 - Majflt int64 - Nswap int64 - Inblock int64 - Oublock int64 - Msgsnd int64 - Msgrcv int64 - Nsignals int64 - Nvcsw int64 - Nivcsw int64 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type Stat_t struct { - Dev uint32 - Pad1 [3]uint32 - Ino uint64 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint32 - Pad2 [3]uint32 - Size int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Blksize uint32 - Pad4 uint32 - Blocks int64 -} - -type Statfs_t struct { - Type int64 - Bsize int64 - Frsize int64 - Blocks uint64 - Bfree uint64 - Files uint64 - Ffree uint64 - Bavail uint64 - Fsid Fsid - Namelen int64 - Flags int64 - Spare [5]int64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - Pad_cgo_0 [5]byte -} - -type Fsid struct { - X__val [2]int32 -} - -type Flock_t struct { - Type int16 - Whence int16 - Pad_cgo_0 [4]byte - Start int64 - Len int64 - Pid int32 - Pad_cgo_1 [4]byte -} - -type FscryptPolicy struct { - Version uint8 - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 - Master_key_descriptor [8]uint8 -} - -type FscryptKey struct { - Mode uint32 - Raw [64]uint8 - Size uint32 -} - -type KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 -} - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Family uint16 - Path [108]int8 -} - -type RawSockaddrLinklayer struct { - Family uint16 - Protocol uint16 - Ifindex int32 - Hatype uint16 - Pkttype uint8 - Halen uint8 - Addr [8]uint8 -} - -type RawSockaddrNetlink struct { - Family uint16 - Pad uint16 - Pid uint32 - Groups uint32 -} - -type RawSockaddrHCI struct { - Family uint16 - Dev uint16 - Channel uint16 -} - -type RawSockaddrCAN struct { - Family uint16 - Pad_cgo_0 [2]byte - Ifindex int32 - Addr [8]byte -} - -type RawSockaddrALG struct { - Family uint16 - Type [14]uint8 - Feat uint32 - Mask uint32 - Name [64]uint8 -} - -type RawSockaddrVM struct { - Family uint16 - Reserved1 uint16 - Port uint32 - Cid uint32 - Zero [4]uint8 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]int8 -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type PacketMreq struct { - Ifindex int32 - Type uint16 - Alen uint16 - Address [8]uint8 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Pad_cgo_0 [4]byte - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - Pad_cgo_1 [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -type Inet4Pktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Data [8]uint32 -} - -type Ucred struct { - Pid int32 - Uid uint32 - Gid uint32 -} - -type TCPInfo struct { - State uint8 - Ca_state uint8 - Retransmits uint8 - Probes uint8 - Backoff uint8 - Options uint8 - Pad_cgo_0 [2]byte - Rto uint32 - Ato uint32 - Snd_mss uint32 - Rcv_mss uint32 - Unacked uint32 - Sacked uint32 - Lost uint32 - Retrans uint32 - Fackets uint32 - Last_data_sent uint32 - Last_ack_sent uint32 - Last_data_recv uint32 - Last_ack_recv uint32 - Pmtu uint32 - Rcv_ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Advmss uint32 - Reordering uint32 - Rcv_rtt uint32 - Rcv_space uint32 - Total_retrans uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 -) - -const ( - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_MAX = 0x2b - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 -) - -type NlMsghdr struct { - Len uint32 - Type uint16 - Flags uint16 - Seq uint32 - Pid uint32 -} - -type NlMsgerr struct { - Error int32 - Msg NlMsghdr -} - -type RtGenmsg struct { - Family uint8 -} - -type NlAttr struct { - Len uint16 - Type uint16 -} - -type RtAttr struct { - Len uint16 - Type uint16 -} - -type IfInfomsg struct { - Family uint8 - X__ifi_pad uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index uint32 -} - -type RtMsg struct { - Family uint8 - Dst_len uint8 - Src_len uint8 - Tos uint8 - Table uint8 - Protocol uint8 - Scope uint8 - Type uint8 - Flags uint32 -} - -type RtNexthop struct { - Len uint16 - Flags uint8 - Hops uint8 - Ifindex int32 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x10 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - Pad_cgo_0 [6]byte - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 0x10 - -type PtraceRegs struct { - Regs [32]uint64 - Lo uint64 - Hi uint64 - Epc uint64 - Badvaddr uint64 - Status uint64 - Cause uint64 -} - -type FdSet struct { - Bits [16]int64 -} - -type Sysinfo_t struct { - Uptime int64 - Loads [3]uint64 - Totalram uint64 - Freeram uint64 - Sharedram uint64 - Bufferram uint64 - Totalswap uint64 - Freeswap uint64 - Procs uint16 - Pad uint16 - Pad_cgo_0 [4]byte - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - X_f [0]int8 - Pad_cgo_1 [4]byte -} - -type Utsname struct { - Sysname [65]int8 - Nodename [65]int8 - Release [65]int8 - Version [65]int8 - Machine [65]int8 - Domainname [65]int8 -} - -type Ustat_t struct { - Tfree int32 - Pad_cgo_0 [4]byte - Tinode uint64 - Fname [6]int8 - Fpack [6]int8 - Pad_cgo_1 [4]byte -} - -type EpollEvent struct { - Events uint32 - Fd int32 - Pad int32 -} - -const ( - AT_FDCWD = -0x64 - AT_REMOVEDIR = 0x200 - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 - POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 -) - -type Sigset_t struct { - X__val [16]uint64 -} - -const RNDGETENTCNT = 0x40045200 - -const PERF_IOC_FLAG_GROUP = 0x1 - -const _SC_PAGESIZE = 0x1e - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [23]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -type Taskstats struct { - Version uint16 - Pad_cgo_0 [2]byte - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - Pad_cgo_1 [6]byte - Cpu_count uint64 - Cpu_delay_total uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]int8 - Ac_sched uint8 - Ac_pad [3]uint8 - Pad_cgo_2 [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - Pad_cgo_3 [4]byte - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 -} - -const ( - TASKSTATS_CMD_UNSPEC = 0x0 - TASKSTATS_CMD_GET = 0x1 - TASKSTATS_CMD_NEW = 0x2 - TASKSTATS_TYPE_UNSPEC = 0x0 - TASKSTATS_TYPE_PID = 0x1 - TASKSTATS_TYPE_TGID = 0x2 - TASKSTATS_TYPE_STATS = 0x3 - TASKSTATS_TYPE_AGGR_PID = 0x4 - TASKSTATS_TYPE_AGGR_TGID = 0x5 - TASKSTATS_TYPE_NULL = 0x6 - TASKSTATS_CMD_ATTR_UNSPEC = 0x0 - TASKSTATS_CMD_ATTR_PID = 0x1 - TASKSTATS_CMD_ATTR_TGID = 0x2 - TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3 - TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4 -) - -type Genlmsghdr struct { - Cmd uint8 - Version uint8 - Reserved uint16 -} - -const ( - CTRL_CMD_UNSPEC = 0x0 - CTRL_CMD_NEWFAMILY = 0x1 - CTRL_CMD_DELFAMILY = 0x2 - CTRL_CMD_GETFAMILY = 0x3 - CTRL_CMD_NEWOPS = 0x4 - CTRL_CMD_DELOPS = 0x5 - CTRL_CMD_GETOPS = 0x6 - CTRL_CMD_NEWMCAST_GRP = 0x7 - CTRL_CMD_DELMCAST_GRP = 0x8 - CTRL_CMD_GETMCAST_GRP = 0x9 - CTRL_ATTR_UNSPEC = 0x0 - CTRL_ATTR_FAMILY_ID = 0x1 - CTRL_ATTR_FAMILY_NAME = 0x2 - CTRL_ATTR_VERSION = 0x3 - CTRL_ATTR_HDRSIZE = 0x4 - CTRL_ATTR_MAXATTR = 0x5 - CTRL_ATTR_OPS = 0x6 - CTRL_ATTR_MCAST_GROUPS = 0x7 - CTRL_ATTR_OP_UNSPEC = 0x0 - CTRL_ATTR_OP_ID = 0x1 - CTRL_ATTR_OP_FLAGS = 0x2 - CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0 - CTRL_ATTR_MCAST_GRP_NAME = 0x1 - CTRL_ATTR_MCAST_GRP_ID = 0x2 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go deleted file mode 100644 index f9bd1ab..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go +++ /dev/null @@ -1,794 +0,0 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build mips64le,linux - -package unix - -const ( - sizeofPtr = 0x8 - sizeofShort = 0x2 - sizeofInt = 0x4 - sizeofLong = 0x8 - sizeofLongLong = 0x8 - PathMax = 0x1000 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Timex struct { - Modes uint32 - Pad_cgo_0 [4]byte - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - Pad_cgo_1 [4]byte - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - Pad_cgo_2 [4]byte - Stabil int64 - Jitcnt int64 - Calcnt int64 - Errcnt int64 - Stbcnt int64 - Tai int32 - Pad_cgo_3 [44]byte -} - -type Time_t int64 - -type Tms struct { - Utime int64 - Stime int64 - Cutime int64 - Cstime int64 -} - -type Utimbuf struct { - Actime int64 - Modtime int64 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int64 - Ixrss int64 - Idrss int64 - Isrss int64 - Minflt int64 - Majflt int64 - Nswap int64 - Inblock int64 - Oublock int64 - Msgsnd int64 - Msgrcv int64 - Nsignals int64 - Nvcsw int64 - Nivcsw int64 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type Stat_t struct { - Dev uint32 - Pad1 [3]uint32 - Ino uint64 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint32 - Pad2 [3]uint32 - Size int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Blksize uint32 - Pad4 uint32 - Blocks int64 -} - -type Statfs_t struct { - Type int64 - Bsize int64 - Frsize int64 - Blocks uint64 - Bfree uint64 - Files uint64 - Ffree uint64 - Bavail uint64 - Fsid Fsid - Namelen int64 - Flags int64 - Spare [5]int64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - Pad_cgo_0 [5]byte -} - -type Fsid struct { - X__val [2]int32 -} - -type Flock_t struct { - Type int16 - Whence int16 - Pad_cgo_0 [4]byte - Start int64 - Len int64 - Pid int32 - Pad_cgo_1 [4]byte -} - -type FscryptPolicy struct { - Version uint8 - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 - Master_key_descriptor [8]uint8 -} - -type FscryptKey struct { - Mode uint32 - Raw [64]uint8 - Size uint32 -} - -type KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 -} - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Family uint16 - Path [108]int8 -} - -type RawSockaddrLinklayer struct { - Family uint16 - Protocol uint16 - Ifindex int32 - Hatype uint16 - Pkttype uint8 - Halen uint8 - Addr [8]uint8 -} - -type RawSockaddrNetlink struct { - Family uint16 - Pad uint16 - Pid uint32 - Groups uint32 -} - -type RawSockaddrHCI struct { - Family uint16 - Dev uint16 - Channel uint16 -} - -type RawSockaddrCAN struct { - Family uint16 - Pad_cgo_0 [2]byte - Ifindex int32 - Addr [8]byte -} - -type RawSockaddrALG struct { - Family uint16 - Type [14]uint8 - Feat uint32 - Mask uint32 - Name [64]uint8 -} - -type RawSockaddrVM struct { - Family uint16 - Reserved1 uint16 - Port uint32 - Cid uint32 - Zero [4]uint8 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]int8 -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type PacketMreq struct { - Ifindex int32 - Type uint16 - Alen uint16 - Address [8]uint8 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Pad_cgo_0 [4]byte - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - Pad_cgo_1 [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -type Inet4Pktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Data [8]uint32 -} - -type Ucred struct { - Pid int32 - Uid uint32 - Gid uint32 -} - -type TCPInfo struct { - State uint8 - Ca_state uint8 - Retransmits uint8 - Probes uint8 - Backoff uint8 - Options uint8 - Pad_cgo_0 [2]byte - Rto uint32 - Ato uint32 - Snd_mss uint32 - Rcv_mss uint32 - Unacked uint32 - Sacked uint32 - Lost uint32 - Retrans uint32 - Fackets uint32 - Last_data_sent uint32 - Last_ack_sent uint32 - Last_data_recv uint32 - Last_ack_recv uint32 - Pmtu uint32 - Rcv_ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Advmss uint32 - Reordering uint32 - Rcv_rtt uint32 - Rcv_space uint32 - Total_retrans uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 -) - -const ( - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_MAX = 0x2b - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 -) - -type NlMsghdr struct { - Len uint32 - Type uint16 - Flags uint16 - Seq uint32 - Pid uint32 -} - -type NlMsgerr struct { - Error int32 - Msg NlMsghdr -} - -type RtGenmsg struct { - Family uint8 -} - -type NlAttr struct { - Len uint16 - Type uint16 -} - -type RtAttr struct { - Len uint16 - Type uint16 -} - -type IfInfomsg struct { - Family uint8 - X__ifi_pad uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index uint32 -} - -type RtMsg struct { - Family uint8 - Dst_len uint8 - Src_len uint8 - Tos uint8 - Table uint8 - Protocol uint8 - Scope uint8 - Type uint8 - Flags uint32 -} - -type RtNexthop struct { - Len uint16 - Flags uint8 - Hops uint8 - Ifindex int32 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x10 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - Pad_cgo_0 [6]byte - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 0x10 - -type PtraceRegs struct { - Regs [32]uint64 - Lo uint64 - Hi uint64 - Epc uint64 - Badvaddr uint64 - Status uint64 - Cause uint64 -} - -type FdSet struct { - Bits [16]int64 -} - -type Sysinfo_t struct { - Uptime int64 - Loads [3]uint64 - Totalram uint64 - Freeram uint64 - Sharedram uint64 - Bufferram uint64 - Totalswap uint64 - Freeswap uint64 - Procs uint16 - Pad uint16 - Pad_cgo_0 [4]byte - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - X_f [0]int8 - Pad_cgo_1 [4]byte -} - -type Utsname struct { - Sysname [65]int8 - Nodename [65]int8 - Release [65]int8 - Version [65]int8 - Machine [65]int8 - Domainname [65]int8 -} - -type Ustat_t struct { - Tfree int32 - Pad_cgo_0 [4]byte - Tinode uint64 - Fname [6]int8 - Fpack [6]int8 - Pad_cgo_1 [4]byte -} - -type EpollEvent struct { - Events uint32 - Fd int32 - Pad int32 -} - -const ( - AT_FDCWD = -0x64 - AT_REMOVEDIR = 0x200 - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 - POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 -) - -type Sigset_t struct { - X__val [16]uint64 -} - -const RNDGETENTCNT = 0x40045200 - -const PERF_IOC_FLAG_GROUP = 0x1 - -const _SC_PAGESIZE = 0x1e - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [23]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -type Taskstats struct { - Version uint16 - Pad_cgo_0 [2]byte - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - Pad_cgo_1 [6]byte - Cpu_count uint64 - Cpu_delay_total uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]int8 - Ac_sched uint8 - Ac_pad [3]uint8 - Pad_cgo_2 [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - Pad_cgo_3 [4]byte - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 -} - -const ( - TASKSTATS_CMD_UNSPEC = 0x0 - TASKSTATS_CMD_GET = 0x1 - TASKSTATS_CMD_NEW = 0x2 - TASKSTATS_TYPE_UNSPEC = 0x0 - TASKSTATS_TYPE_PID = 0x1 - TASKSTATS_TYPE_TGID = 0x2 - TASKSTATS_TYPE_STATS = 0x3 - TASKSTATS_TYPE_AGGR_PID = 0x4 - TASKSTATS_TYPE_AGGR_TGID = 0x5 - TASKSTATS_TYPE_NULL = 0x6 - TASKSTATS_CMD_ATTR_UNSPEC = 0x0 - TASKSTATS_CMD_ATTR_PID = 0x1 - TASKSTATS_CMD_ATTR_TGID = 0x2 - TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3 - TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4 -) - -type Genlmsghdr struct { - Cmd uint8 - Version uint8 - Reserved uint16 -} - -const ( - CTRL_CMD_UNSPEC = 0x0 - CTRL_CMD_NEWFAMILY = 0x1 - CTRL_CMD_DELFAMILY = 0x2 - CTRL_CMD_GETFAMILY = 0x3 - CTRL_CMD_NEWOPS = 0x4 - CTRL_CMD_DELOPS = 0x5 - CTRL_CMD_GETOPS = 0x6 - CTRL_CMD_NEWMCAST_GRP = 0x7 - CTRL_CMD_DELMCAST_GRP = 0x8 - CTRL_CMD_GETMCAST_GRP = 0x9 - CTRL_ATTR_UNSPEC = 0x0 - CTRL_ATTR_FAMILY_ID = 0x1 - CTRL_ATTR_FAMILY_NAME = 0x2 - CTRL_ATTR_VERSION = 0x3 - CTRL_ATTR_HDRSIZE = 0x4 - CTRL_ATTR_MAXATTR = 0x5 - CTRL_ATTR_OPS = 0x6 - CTRL_ATTR_MCAST_GROUPS = 0x7 - CTRL_ATTR_OP_UNSPEC = 0x0 - CTRL_ATTR_OP_ID = 0x1 - CTRL_ATTR_OP_FLAGS = 0x2 - CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0 - CTRL_ATTR_MCAST_GRP_NAME = 0x1 - CTRL_ATTR_MCAST_GRP_ID = 0x2 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go deleted file mode 100644 index 74c5421..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go +++ /dev/null @@ -1,789 +0,0 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build mipsle,linux - -package unix - -const ( - sizeofPtr = 0x4 - sizeofShort = 0x2 - sizeofInt = 0x4 - sizeofLong = 0x4 - sizeofLongLong = 0x8 - PathMax = 0x1000 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int32 - _C_long_long int64 -) - -type Timespec struct { - Sec int32 - Nsec int32 -} - -type Timeval struct { - Sec int32 - Usec int32 -} - -type Timex struct { - Modes uint32 - Offset int32 - Freq int32 - Maxerror int32 - Esterror int32 - Status int32 - Constant int32 - Precision int32 - Tolerance int32 - Time Timeval - Tick int32 - Ppsfreq int32 - Jitter int32 - Shift int32 - Stabil int32 - Jitcnt int32 - Calcnt int32 - Errcnt int32 - Stbcnt int32 - Tai int32 - Pad_cgo_0 [44]byte -} - -type Time_t int32 - -type Tms struct { - Utime int32 - Stime int32 - Cutime int32 - Cstime int32 -} - -type Utimbuf struct { - Actime int32 - Modtime int32 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type Stat_t struct { - Dev uint32 - Pad1 [3]int32 - Ino uint64 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint32 - Pad2 [3]int32 - Size int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Blksize int32 - Pad4 int32 - Blocks int64 - Pad5 [14]int32 -} - -type Statfs_t struct { - Type int32 - Bsize int32 - Frsize int32 - Pad_cgo_0 [4]byte - Blocks uint64 - Bfree uint64 - Files uint64 - Ffree uint64 - Bavail uint64 - Fsid Fsid - Namelen int32 - Flags int32 - Spare [5]int32 - Pad_cgo_1 [4]byte -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - Pad_cgo_0 [5]byte -} - -type Fsid struct { - X__val [2]int32 -} - -type Flock_t struct { - Type int16 - Whence int16 - Pad_cgo_0 [4]byte - Start int64 - Len int64 - Pid int32 - Pad_cgo_1 [4]byte -} - -type FscryptPolicy struct { - Version uint8 - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 - Master_key_descriptor [8]uint8 -} - -type FscryptKey struct { - Mode uint32 - Raw [64]uint8 - Size uint32 -} - -type KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 -} - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Family uint16 - Path [108]int8 -} - -type RawSockaddrLinklayer struct { - Family uint16 - Protocol uint16 - Ifindex int32 - Hatype uint16 - Pkttype uint8 - Halen uint8 - Addr [8]uint8 -} - -type RawSockaddrNetlink struct { - Family uint16 - Pad uint16 - Pid uint32 - Groups uint32 -} - -type RawSockaddrHCI struct { - Family uint16 - Dev uint16 - Channel uint16 -} - -type RawSockaddrCAN struct { - Family uint16 - Pad_cgo_0 [2]byte - Ifindex int32 - Addr [8]byte -} - -type RawSockaddrALG struct { - Family uint16 - Type [14]uint8 - Feat uint32 - Mask uint32 - Name [64]uint8 -} - -type RawSockaddrVM struct { - Family uint16 - Reserved1 uint16 - Port uint32 - Cid uint32 - Zero [4]uint8 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]int8 -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint32 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type PacketMreq struct { - Ifindex int32 - Type uint16 - Alen uint16 - Address [8]uint8 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint32 - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type Inet4Pktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Data [8]uint32 -} - -type Ucred struct { - Pid int32 - Uid uint32 - Gid uint32 -} - -type TCPInfo struct { - State uint8 - Ca_state uint8 - Retransmits uint8 - Probes uint8 - Backoff uint8 - Options uint8 - Pad_cgo_0 [2]byte - Rto uint32 - Ato uint32 - Snd_mss uint32 - Rcv_mss uint32 - Unacked uint32 - Sacked uint32 - Lost uint32 - Retrans uint32 - Fackets uint32 - Last_data_sent uint32 - Last_ack_sent uint32 - Last_data_recv uint32 - Last_ack_recv uint32 - Pmtu uint32 - Rcv_ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Advmss uint32 - Reordering uint32 - Rcv_rtt uint32 - Rcv_space uint32 - Total_retrans uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofLinger = 0x8 - SizeofIovec = 0x8 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 -) - -const ( - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_MAX = 0x2b - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 -) - -type NlMsghdr struct { - Len uint32 - Type uint16 - Flags uint16 - Seq uint32 - Pid uint32 -} - -type NlMsgerr struct { - Error int32 - Msg NlMsghdr -} - -type RtGenmsg struct { - Family uint8 -} - -type NlAttr struct { - Len uint16 - Type uint16 -} - -type RtAttr struct { - Len uint16 - Type uint16 -} - -type IfInfomsg struct { - Family uint8 - X__ifi_pad uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index uint32 -} - -type RtMsg struct { - Family uint8 - Dst_len uint8 - Src_len uint8 - Tos uint8 - Table uint8 - Protocol uint8 - Scope uint8 - Type uint8 - Flags uint32 -} - -type RtNexthop struct { - Len uint16 - Flags uint8 - Hops uint8 - Ifindex int32 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x8 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - Pad_cgo_0 [2]byte - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 0x10 - -type PtraceRegs struct { - Regs [32]uint64 - Lo uint64 - Hi uint64 - Epc uint64 - Badvaddr uint64 - Status uint64 - Cause uint64 -} - -type FdSet struct { - Bits [32]int32 -} - -type Sysinfo_t struct { - Uptime int32 - Loads [3]uint32 - Totalram uint32 - Freeram uint32 - Sharedram uint32 - Bufferram uint32 - Totalswap uint32 - Freeswap uint32 - Procs uint16 - Pad uint16 - Totalhigh uint32 - Freehigh uint32 - Unit uint32 - X_f [8]int8 -} - -type Utsname struct { - Sysname [65]int8 - Nodename [65]int8 - Release [65]int8 - Version [65]int8 - Machine [65]int8 - Domainname [65]int8 -} - -type Ustat_t struct { - Tfree int32 - Tinode uint32 - Fname [6]int8 - Fpack [6]int8 -} - -type EpollEvent struct { - Events uint32 - PadFd int32 - Fd int32 - Pad int32 -} - -const ( - AT_FDCWD = -0x64 - AT_REMOVEDIR = 0x200 - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 - POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 -) - -type Sigset_t struct { - X__val [32]uint32 -} - -const RNDGETENTCNT = 0x40045200 - -const PERF_IOC_FLAG_GROUP = 0x1 - -const _SC_PAGESIZE = 0x1e - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [23]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -type Taskstats struct { - Version uint16 - Pad_cgo_0 [2]byte - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - Pad_cgo_1 [6]byte - Cpu_count uint64 - Cpu_delay_total uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]int8 - Ac_sched uint8 - Ac_pad [3]uint8 - Pad_cgo_2 [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - Pad_cgo_3 [4]byte - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 -} - -const ( - TASKSTATS_CMD_UNSPEC = 0x0 - TASKSTATS_CMD_GET = 0x1 - TASKSTATS_CMD_NEW = 0x2 - TASKSTATS_TYPE_UNSPEC = 0x0 - TASKSTATS_TYPE_PID = 0x1 - TASKSTATS_TYPE_TGID = 0x2 - TASKSTATS_TYPE_STATS = 0x3 - TASKSTATS_TYPE_AGGR_PID = 0x4 - TASKSTATS_TYPE_AGGR_TGID = 0x5 - TASKSTATS_TYPE_NULL = 0x6 - TASKSTATS_CMD_ATTR_UNSPEC = 0x0 - TASKSTATS_CMD_ATTR_PID = 0x1 - TASKSTATS_CMD_ATTR_TGID = 0x2 - TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3 - TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4 -) - -type Genlmsghdr struct { - Cmd uint8 - Version uint8 - Reserved uint16 -} - -const ( - CTRL_CMD_UNSPEC = 0x0 - CTRL_CMD_NEWFAMILY = 0x1 - CTRL_CMD_DELFAMILY = 0x2 - CTRL_CMD_GETFAMILY = 0x3 - CTRL_CMD_NEWOPS = 0x4 - CTRL_CMD_DELOPS = 0x5 - CTRL_CMD_GETOPS = 0x6 - CTRL_CMD_NEWMCAST_GRP = 0x7 - CTRL_CMD_DELMCAST_GRP = 0x8 - CTRL_CMD_GETMCAST_GRP = 0x9 - CTRL_ATTR_UNSPEC = 0x0 - CTRL_ATTR_FAMILY_ID = 0x1 - CTRL_ATTR_FAMILY_NAME = 0x2 - CTRL_ATTR_VERSION = 0x3 - CTRL_ATTR_HDRSIZE = 0x4 - CTRL_ATTR_MAXATTR = 0x5 - CTRL_ATTR_OPS = 0x6 - CTRL_ATTR_MCAST_GROUPS = 0x7 - CTRL_ATTR_OP_UNSPEC = 0x0 - CTRL_ATTR_OP_ID = 0x1 - CTRL_ATTR_OP_FLAGS = 0x2 - CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0 - CTRL_ATTR_MCAST_GRP_NAME = 0x1 - CTRL_ATTR_MCAST_GRP_ID = 0x2 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go deleted file mode 100644 index 2b0b18e..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go +++ /dev/null @@ -1,802 +0,0 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build ppc64,linux - -package unix - -const ( - sizeofPtr = 0x8 - sizeofShort = 0x2 - sizeofInt = 0x4 - sizeofLong = 0x8 - sizeofLongLong = 0x8 - PathMax = 0x1000 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Timex struct { - Modes uint32 - Pad_cgo_0 [4]byte - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - Pad_cgo_1 [4]byte - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - Pad_cgo_2 [4]byte - Stabil int64 - Jitcnt int64 - Calcnt int64 - Errcnt int64 - Stbcnt int64 - Tai int32 - Pad_cgo_3 [44]byte -} - -type Time_t int64 - -type Tms struct { - Utime int64 - Stime int64 - Cutime int64 - Cstime int64 -} - -type Utimbuf struct { - Actime int64 - Modtime int64 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int64 - Ixrss int64 - Idrss int64 - Isrss int64 - Minflt int64 - Majflt int64 - Nswap int64 - Inblock int64 - Oublock int64 - Msgsnd int64 - Msgrcv int64 - Nsignals int64 - Nvcsw int64 - Nivcsw int64 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type Stat_t struct { - Dev uint64 - Ino uint64 - Nlink uint64 - Mode uint32 - Uid uint32 - Gid uint32 - X__pad2 int32 - Rdev uint64 - Size int64 - Blksize int64 - Blocks int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - _ uint64 - _ uint64 - _ uint64 -} - -type Statfs_t struct { - Type int64 - Bsize int64 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Namelen int64 - Frsize int64 - Flags int64 - Spare [4]int64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]uint8 - Pad_cgo_0 [5]byte -} - -type Fsid struct { - X__val [2]int32 -} - -type Flock_t struct { - Type int16 - Whence int16 - Pad_cgo_0 [4]byte - Start int64 - Len int64 - Pid int32 - Pad_cgo_1 [4]byte -} - -type FscryptPolicy struct { - Version uint8 - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 - Master_key_descriptor [8]uint8 -} - -type FscryptKey struct { - Mode uint32 - Raw [64]uint8 - Size uint32 -} - -type KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 -} - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Family uint16 - Path [108]int8 -} - -type RawSockaddrLinklayer struct { - Family uint16 - Protocol uint16 - Ifindex int32 - Hatype uint16 - Pkttype uint8 - Halen uint8 - Addr [8]uint8 -} - -type RawSockaddrNetlink struct { - Family uint16 - Pad uint16 - Pid uint32 - Groups uint32 -} - -type RawSockaddrHCI struct { - Family uint16 - Dev uint16 - Channel uint16 -} - -type RawSockaddrCAN struct { - Family uint16 - Pad_cgo_0 [2]byte - Ifindex int32 - Addr [8]byte -} - -type RawSockaddrALG struct { - Family uint16 - Type [14]uint8 - Feat uint32 - Mask uint32 - Name [64]uint8 -} - -type RawSockaddrVM struct { - Family uint16 - Reserved1 uint16 - Port uint32 - Cid uint32 - Zero [4]uint8 -} - -type RawSockaddr struct { - Family uint16 - Data [14]uint8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]uint8 -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type PacketMreq struct { - Ifindex int32 - Type uint16 - Alen uint16 - Address [8]uint8 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Pad_cgo_0 [4]byte - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - Pad_cgo_1 [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -type Inet4Pktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Data [8]uint32 -} - -type Ucred struct { - Pid int32 - Uid uint32 - Gid uint32 -} - -type TCPInfo struct { - State uint8 - Ca_state uint8 - Retransmits uint8 - Probes uint8 - Backoff uint8 - Options uint8 - Pad_cgo_0 [2]byte - Rto uint32 - Ato uint32 - Snd_mss uint32 - Rcv_mss uint32 - Unacked uint32 - Sacked uint32 - Lost uint32 - Retrans uint32 - Fackets uint32 - Last_data_sent uint32 - Last_ack_sent uint32 - Last_data_recv uint32 - Last_ack_recv uint32 - Pmtu uint32 - Rcv_ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Advmss uint32 - Reordering uint32 - Rcv_rtt uint32 - Rcv_space uint32 - Total_retrans uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 -) - -const ( - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_MAX = 0x2b - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 -) - -type NlMsghdr struct { - Len uint32 - Type uint16 - Flags uint16 - Seq uint32 - Pid uint32 -} - -type NlMsgerr struct { - Error int32 - Msg NlMsghdr -} - -type RtGenmsg struct { - Family uint8 -} - -type NlAttr struct { - Len uint16 - Type uint16 -} - -type RtAttr struct { - Len uint16 - Type uint16 -} - -type IfInfomsg struct { - Family uint8 - X__ifi_pad uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index uint32 -} - -type RtMsg struct { - Family uint8 - Dst_len uint8 - Src_len uint8 - Tos uint8 - Table uint8 - Protocol uint8 - Scope uint8 - Type uint8 - Flags uint32 -} - -type RtNexthop struct { - Len uint16 - Flags uint8 - Hops uint8 - Ifindex int32 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x10 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - Pad_cgo_0 [6]byte - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 0x10 - -type PtraceRegs struct { - Gpr [32]uint64 - Nip uint64 - Msr uint64 - Orig_gpr3 uint64 - Ctr uint64 - Link uint64 - Xer uint64 - Ccr uint64 - Softe uint64 - Trap uint64 - Dar uint64 - Dsisr uint64 - Result uint64 -} - -type FdSet struct { - Bits [16]int64 -} - -type Sysinfo_t struct { - Uptime int64 - Loads [3]uint64 - Totalram uint64 - Freeram uint64 - Sharedram uint64 - Bufferram uint64 - Totalswap uint64 - Freeswap uint64 - Procs uint16 - Pad uint16 - Pad_cgo_0 [4]byte - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - X_f [0]uint8 - Pad_cgo_1 [4]byte -} - -type Utsname struct { - Sysname [65]uint8 - Nodename [65]uint8 - Release [65]uint8 - Version [65]uint8 - Machine [65]uint8 - Domainname [65]uint8 -} - -type Ustat_t struct { - Tfree int32 - Pad_cgo_0 [4]byte - Tinode uint64 - Fname [6]uint8 - Fpack [6]uint8 - Pad_cgo_1 [4]byte -} - -type EpollEvent struct { - Events uint32 - X_padFd int32 - Fd int32 - Pad int32 -} - -const ( - AT_FDCWD = -0x64 - AT_REMOVEDIR = 0x200 - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 - POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 -) - -type Sigset_t struct { - X__val [16]uint64 -} - -const RNDGETENTCNT = 0x40045200 - -const PERF_IOC_FLAG_GROUP = 0x1 - -const _SC_PAGESIZE = 0x1e - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [19]uint8 - Line uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -type Taskstats struct { - Version uint16 - Pad_cgo_0 [2]byte - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - Pad_cgo_1 [6]byte - Cpu_count uint64 - Cpu_delay_total uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]uint8 - Ac_sched uint8 - Ac_pad [3]uint8 - Pad_cgo_2 [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - Pad_cgo_3 [4]byte - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 -} - -const ( - TASKSTATS_CMD_UNSPEC = 0x0 - TASKSTATS_CMD_GET = 0x1 - TASKSTATS_CMD_NEW = 0x2 - TASKSTATS_TYPE_UNSPEC = 0x0 - TASKSTATS_TYPE_PID = 0x1 - TASKSTATS_TYPE_TGID = 0x2 - TASKSTATS_TYPE_STATS = 0x3 - TASKSTATS_TYPE_AGGR_PID = 0x4 - TASKSTATS_TYPE_AGGR_TGID = 0x5 - TASKSTATS_TYPE_NULL = 0x6 - TASKSTATS_CMD_ATTR_UNSPEC = 0x0 - TASKSTATS_CMD_ATTR_PID = 0x1 - TASKSTATS_CMD_ATTR_TGID = 0x2 - TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3 - TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4 -) - -type Genlmsghdr struct { - Cmd uint8 - Version uint8 - Reserved uint16 -} - -const ( - CTRL_CMD_UNSPEC = 0x0 - CTRL_CMD_NEWFAMILY = 0x1 - CTRL_CMD_DELFAMILY = 0x2 - CTRL_CMD_GETFAMILY = 0x3 - CTRL_CMD_NEWOPS = 0x4 - CTRL_CMD_DELOPS = 0x5 - CTRL_CMD_GETOPS = 0x6 - CTRL_CMD_NEWMCAST_GRP = 0x7 - CTRL_CMD_DELMCAST_GRP = 0x8 - CTRL_CMD_GETMCAST_GRP = 0x9 - CTRL_ATTR_UNSPEC = 0x0 - CTRL_ATTR_FAMILY_ID = 0x1 - CTRL_ATTR_FAMILY_NAME = 0x2 - CTRL_ATTR_VERSION = 0x3 - CTRL_ATTR_HDRSIZE = 0x4 - CTRL_ATTR_MAXATTR = 0x5 - CTRL_ATTR_OPS = 0x6 - CTRL_ATTR_MCAST_GROUPS = 0x7 - CTRL_ATTR_OP_UNSPEC = 0x0 - CTRL_ATTR_OP_ID = 0x1 - CTRL_ATTR_OP_FLAGS = 0x2 - CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0 - CTRL_ATTR_MCAST_GRP_NAME = 0x1 - CTRL_ATTR_MCAST_GRP_ID = 0x2 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go deleted file mode 100644 index b2b5999..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go +++ /dev/null @@ -1,802 +0,0 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build ppc64le,linux - -package unix - -const ( - sizeofPtr = 0x8 - sizeofShort = 0x2 - sizeofInt = 0x4 - sizeofLong = 0x8 - sizeofLongLong = 0x8 - PathMax = 0x1000 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Timex struct { - Modes uint32 - Pad_cgo_0 [4]byte - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - Pad_cgo_1 [4]byte - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - Pad_cgo_2 [4]byte - Stabil int64 - Jitcnt int64 - Calcnt int64 - Errcnt int64 - Stbcnt int64 - Tai int32 - Pad_cgo_3 [44]byte -} - -type Time_t int64 - -type Tms struct { - Utime int64 - Stime int64 - Cutime int64 - Cstime int64 -} - -type Utimbuf struct { - Actime int64 - Modtime int64 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int64 - Ixrss int64 - Idrss int64 - Isrss int64 - Minflt int64 - Majflt int64 - Nswap int64 - Inblock int64 - Oublock int64 - Msgsnd int64 - Msgrcv int64 - Nsignals int64 - Nvcsw int64 - Nivcsw int64 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type Stat_t struct { - Dev uint64 - Ino uint64 - Nlink uint64 - Mode uint32 - Uid uint32 - Gid uint32 - X__pad2 int32 - Rdev uint64 - Size int64 - Blksize int64 - Blocks int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - _ uint64 - _ uint64 - _ uint64 -} - -type Statfs_t struct { - Type int64 - Bsize int64 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Namelen int64 - Frsize int64 - Flags int64 - Spare [4]int64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]uint8 - Pad_cgo_0 [5]byte -} - -type Fsid struct { - X__val [2]int32 -} - -type Flock_t struct { - Type int16 - Whence int16 - Pad_cgo_0 [4]byte - Start int64 - Len int64 - Pid int32 - Pad_cgo_1 [4]byte -} - -type FscryptPolicy struct { - Version uint8 - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 - Master_key_descriptor [8]uint8 -} - -type FscryptKey struct { - Mode uint32 - Raw [64]uint8 - Size uint32 -} - -type KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 -} - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Family uint16 - Path [108]int8 -} - -type RawSockaddrLinklayer struct { - Family uint16 - Protocol uint16 - Ifindex int32 - Hatype uint16 - Pkttype uint8 - Halen uint8 - Addr [8]uint8 -} - -type RawSockaddrNetlink struct { - Family uint16 - Pad uint16 - Pid uint32 - Groups uint32 -} - -type RawSockaddrHCI struct { - Family uint16 - Dev uint16 - Channel uint16 -} - -type RawSockaddrCAN struct { - Family uint16 - Pad_cgo_0 [2]byte - Ifindex int32 - Addr [8]byte -} - -type RawSockaddrALG struct { - Family uint16 - Type [14]uint8 - Feat uint32 - Mask uint32 - Name [64]uint8 -} - -type RawSockaddrVM struct { - Family uint16 - Reserved1 uint16 - Port uint32 - Cid uint32 - Zero [4]uint8 -} - -type RawSockaddr struct { - Family uint16 - Data [14]uint8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]uint8 -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type PacketMreq struct { - Ifindex int32 - Type uint16 - Alen uint16 - Address [8]uint8 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Pad_cgo_0 [4]byte - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - Pad_cgo_1 [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -type Inet4Pktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Data [8]uint32 -} - -type Ucred struct { - Pid int32 - Uid uint32 - Gid uint32 -} - -type TCPInfo struct { - State uint8 - Ca_state uint8 - Retransmits uint8 - Probes uint8 - Backoff uint8 - Options uint8 - Pad_cgo_0 [2]byte - Rto uint32 - Ato uint32 - Snd_mss uint32 - Rcv_mss uint32 - Unacked uint32 - Sacked uint32 - Lost uint32 - Retrans uint32 - Fackets uint32 - Last_data_sent uint32 - Last_ack_sent uint32 - Last_data_recv uint32 - Last_ack_recv uint32 - Pmtu uint32 - Rcv_ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Advmss uint32 - Reordering uint32 - Rcv_rtt uint32 - Rcv_space uint32 - Total_retrans uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 -) - -const ( - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_MAX = 0x2b - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 -) - -type NlMsghdr struct { - Len uint32 - Type uint16 - Flags uint16 - Seq uint32 - Pid uint32 -} - -type NlMsgerr struct { - Error int32 - Msg NlMsghdr -} - -type RtGenmsg struct { - Family uint8 -} - -type NlAttr struct { - Len uint16 - Type uint16 -} - -type RtAttr struct { - Len uint16 - Type uint16 -} - -type IfInfomsg struct { - Family uint8 - X__ifi_pad uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index uint32 -} - -type RtMsg struct { - Family uint8 - Dst_len uint8 - Src_len uint8 - Tos uint8 - Table uint8 - Protocol uint8 - Scope uint8 - Type uint8 - Flags uint32 -} - -type RtNexthop struct { - Len uint16 - Flags uint8 - Hops uint8 - Ifindex int32 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x10 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - Pad_cgo_0 [6]byte - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 0x10 - -type PtraceRegs struct { - Gpr [32]uint64 - Nip uint64 - Msr uint64 - Orig_gpr3 uint64 - Ctr uint64 - Link uint64 - Xer uint64 - Ccr uint64 - Softe uint64 - Trap uint64 - Dar uint64 - Dsisr uint64 - Result uint64 -} - -type FdSet struct { - Bits [16]int64 -} - -type Sysinfo_t struct { - Uptime int64 - Loads [3]uint64 - Totalram uint64 - Freeram uint64 - Sharedram uint64 - Bufferram uint64 - Totalswap uint64 - Freeswap uint64 - Procs uint16 - Pad uint16 - Pad_cgo_0 [4]byte - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - X_f [0]uint8 - Pad_cgo_1 [4]byte -} - -type Utsname struct { - Sysname [65]uint8 - Nodename [65]uint8 - Release [65]uint8 - Version [65]uint8 - Machine [65]uint8 - Domainname [65]uint8 -} - -type Ustat_t struct { - Tfree int32 - Pad_cgo_0 [4]byte - Tinode uint64 - Fname [6]uint8 - Fpack [6]uint8 - Pad_cgo_1 [4]byte -} - -type EpollEvent struct { - Events uint32 - X_padFd int32 - Fd int32 - Pad int32 -} - -const ( - AT_FDCWD = -0x64 - AT_REMOVEDIR = 0x200 - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 - POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 -) - -type Sigset_t struct { - X__val [16]uint64 -} - -const RNDGETENTCNT = 0x40045200 - -const PERF_IOC_FLAG_GROUP = 0x1 - -const _SC_PAGESIZE = 0x1e - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [19]uint8 - Line uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -type Taskstats struct { - Version uint16 - Pad_cgo_0 [2]byte - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - Pad_cgo_1 [6]byte - Cpu_count uint64 - Cpu_delay_total uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]uint8 - Ac_sched uint8 - Ac_pad [3]uint8 - Pad_cgo_2 [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - Pad_cgo_3 [4]byte - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 -} - -const ( - TASKSTATS_CMD_UNSPEC = 0x0 - TASKSTATS_CMD_GET = 0x1 - TASKSTATS_CMD_NEW = 0x2 - TASKSTATS_TYPE_UNSPEC = 0x0 - TASKSTATS_TYPE_PID = 0x1 - TASKSTATS_TYPE_TGID = 0x2 - TASKSTATS_TYPE_STATS = 0x3 - TASKSTATS_TYPE_AGGR_PID = 0x4 - TASKSTATS_TYPE_AGGR_TGID = 0x5 - TASKSTATS_TYPE_NULL = 0x6 - TASKSTATS_CMD_ATTR_UNSPEC = 0x0 - TASKSTATS_CMD_ATTR_PID = 0x1 - TASKSTATS_CMD_ATTR_TGID = 0x2 - TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3 - TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4 -) - -type Genlmsghdr struct { - Cmd uint8 - Version uint8 - Reserved uint16 -} - -const ( - CTRL_CMD_UNSPEC = 0x0 - CTRL_CMD_NEWFAMILY = 0x1 - CTRL_CMD_DELFAMILY = 0x2 - CTRL_CMD_GETFAMILY = 0x3 - CTRL_CMD_NEWOPS = 0x4 - CTRL_CMD_DELOPS = 0x5 - CTRL_CMD_GETOPS = 0x6 - CTRL_CMD_NEWMCAST_GRP = 0x7 - CTRL_CMD_DELMCAST_GRP = 0x8 - CTRL_CMD_GETMCAST_GRP = 0x9 - CTRL_ATTR_UNSPEC = 0x0 - CTRL_ATTR_FAMILY_ID = 0x1 - CTRL_ATTR_FAMILY_NAME = 0x2 - CTRL_ATTR_VERSION = 0x3 - CTRL_ATTR_HDRSIZE = 0x4 - CTRL_ATTR_MAXATTR = 0x5 - CTRL_ATTR_OPS = 0x6 - CTRL_ATTR_MCAST_GROUPS = 0x7 - CTRL_ATTR_OP_UNSPEC = 0x0 - CTRL_ATTR_OP_ID = 0x1 - CTRL_ATTR_OP_FLAGS = 0x2 - CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0 - CTRL_ATTR_MCAST_GRP_NAME = 0x1 - CTRL_ATTR_MCAST_GRP_ID = 0x2 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go deleted file mode 100644 index 5e0aa66..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go +++ /dev/null @@ -1,819 +0,0 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build s390x,linux - -package unix - -const ( - sizeofPtr = 0x8 - sizeofShort = 0x2 - sizeofInt = 0x4 - sizeofLong = 0x8 - sizeofLongLong = 0x8 - PathMax = 0x1000 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Timex struct { - Modes uint32 - _ [4]byte - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - _ [4]byte - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - _ [4]byte - Stabil int64 - Jitcnt int64 - Calcnt int64 - Errcnt int64 - Stbcnt int64 - Tai int32 - _ [44]byte -} - -type Time_t int64 - -type Tms struct { - Utime int64 - Stime int64 - Cutime int64 - Cstime int64 -} - -type Utimbuf struct { - Actime int64 - Modtime int64 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int64 - Ixrss int64 - Idrss int64 - Isrss int64 - Minflt int64 - Majflt int64 - Nswap int64 - Inblock int64 - Oublock int64 - Msgsnd int64 - Msgrcv int64 - Nsignals int64 - Nvcsw int64 - Nivcsw int64 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type Stat_t struct { - Dev uint64 - Ino uint64 - Nlink uint64 - Mode uint32 - Uid uint32 - Gid uint32 - _ int32 - Rdev uint64 - Size int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Blksize int64 - Blocks int64 - _ [3]int64 -} - -type Statfs_t struct { - Type uint32 - Bsize uint32 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Namelen uint32 - Frsize uint32 - Flags uint32 - Spare [4]uint32 - _ [4]byte -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - _ [5]byte -} - -type Fsid struct { - _ [2]int32 -} - -type Flock_t struct { - Type int16 - Whence int16 - _ [4]byte - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -type FscryptPolicy struct { - Version uint8 - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 - Master_key_descriptor [8]uint8 -} - -type FscryptKey struct { - Mode uint32 - Raw [64]uint8 - Size uint32 -} - -type KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 -} - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x6 - FADV_NOREUSE = 0x7 -) - -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Family uint16 - Path [108]int8 -} - -type RawSockaddrLinklayer struct { - Family uint16 - Protocol uint16 - Ifindex int32 - Hatype uint16 - Pkttype uint8 - Halen uint8 - Addr [8]uint8 -} - -type RawSockaddrNetlink struct { - Family uint16 - Pad uint16 - Pid uint32 - Groups uint32 -} - -type RawSockaddrHCI struct { - Family uint16 - Dev uint16 - Channel uint16 -} - -type RawSockaddrCAN struct { - Family uint16 - _ [2]byte - Ifindex int32 - Addr [8]byte -} - -type RawSockaddrALG struct { - Family uint16 - Type [14]uint8 - Feat uint32 - Mask uint32 - Name [64]uint8 -} - -type RawSockaddrVM struct { - Family uint16 - Reserved1 uint16 - Port uint32 - Cid uint32 - Zero [4]uint8 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]int8 -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type PacketMreq struct { - Ifindex int32 - Type uint16 - Alen uint16 - Address [8]uint8 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - _ [4]byte - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - _ [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -type Inet4Pktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Data [8]uint32 -} - -type Ucred struct { - Pid int32 - Uid uint32 - Gid uint32 -} - -type TCPInfo struct { - State uint8 - Ca_state uint8 - Retransmits uint8 - Probes uint8 - Backoff uint8 - Options uint8 - _ [2]byte - Rto uint32 - Ato uint32 - Snd_mss uint32 - Rcv_mss uint32 - Unacked uint32 - Sacked uint32 - Lost uint32 - Retrans uint32 - Fackets uint32 - Last_data_sent uint32 - Last_ack_sent uint32 - Last_data_recv uint32 - Last_ack_recv uint32 - Pmtu uint32 - Rcv_ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Advmss uint32 - Reordering uint32 - Rcv_rtt uint32 - Rcv_space uint32 - Total_retrans uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 -) - -const ( - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_MAX = 0x2b - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 -) - -type NlMsghdr struct { - Len uint32 - Type uint16 - Flags uint16 - Seq uint32 - Pid uint32 -} - -type NlMsgerr struct { - Error int32 - Msg NlMsghdr -} - -type RtGenmsg struct { - Family uint8 -} - -type NlAttr struct { - Len uint16 - Type uint16 -} - -type RtAttr struct { - Len uint16 - Type uint16 -} - -type IfInfomsg struct { - Family uint8 - _ uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index uint32 -} - -type RtMsg struct { - Family uint8 - Dst_len uint8 - Src_len uint8 - Tos uint8 - Table uint8 - Protocol uint8 - Scope uint8 - Type uint8 - Flags uint32 -} - -type RtNexthop struct { - Len uint16 - Flags uint8 - Hops uint8 - Ifindex int32 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x10 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - _ [6]byte - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 0x10 - -type PtraceRegs struct { - Psw PtracePsw - Gprs [16]uint64 - Acrs [16]uint32 - Orig_gpr2 uint64 - Fp_regs PtraceFpregs - Per_info PtracePer - Ieee_instruction_pointer uint64 -} - -type PtracePsw struct { - Mask uint64 - Addr uint64 -} - -type PtraceFpregs struct { - Fpc uint32 - _ [4]byte - Fprs [16]float64 -} - -type PtracePer struct { - _ [0]uint64 - _ [24]byte - _ [8]byte - Starting_addr uint64 - Ending_addr uint64 - Perc_atmid uint16 - _ [6]byte - Address uint64 - Access_id uint8 - _ [7]byte -} - -type FdSet struct { - Bits [16]int64 -} - -type Sysinfo_t struct { - Uptime int64 - Loads [3]uint64 - Totalram uint64 - Freeram uint64 - Sharedram uint64 - Bufferram uint64 - Totalswap uint64 - Freeswap uint64 - Procs uint16 - Pad uint16 - _ [4]byte - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - _ [0]int8 - _ [4]byte -} - -type Utsname struct { - Sysname [65]int8 - Nodename [65]int8 - Release [65]int8 - Version [65]int8 - Machine [65]int8 - Domainname [65]int8 -} - -type Ustat_t struct { - Tfree int32 - _ [4]byte - Tinode uint64 - Fname [6]int8 - Fpack [6]int8 - _ [4]byte -} - -type EpollEvent struct { - Events uint32 - _ int32 - Fd int32 - Pad int32 -} - -const ( - AT_FDCWD = -0x64 - AT_REMOVEDIR = 0x200 - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 - POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 -) - -type Sigset_t struct { - _ [16]uint64 -} - -const RNDGETENTCNT = 0x80045200 - -const PERF_IOC_FLAG_GROUP = 0x1 - -const _SC_PAGESIZE = 0x1e - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [19]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -type Taskstats struct { - Version uint16 - _ [2]byte - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - _ [6]byte - Cpu_count uint64 - Cpu_delay_total uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]int8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - _ [4]byte - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 -} - -const ( - TASKSTATS_CMD_UNSPEC = 0x0 - TASKSTATS_CMD_GET = 0x1 - TASKSTATS_CMD_NEW = 0x2 - TASKSTATS_TYPE_UNSPEC = 0x0 - TASKSTATS_TYPE_PID = 0x1 - TASKSTATS_TYPE_TGID = 0x2 - TASKSTATS_TYPE_STATS = 0x3 - TASKSTATS_TYPE_AGGR_PID = 0x4 - TASKSTATS_TYPE_AGGR_TGID = 0x5 - TASKSTATS_TYPE_NULL = 0x6 - TASKSTATS_CMD_ATTR_UNSPEC = 0x0 - TASKSTATS_CMD_ATTR_PID = 0x1 - TASKSTATS_CMD_ATTR_TGID = 0x2 - TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3 - TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4 -) - -type Genlmsghdr struct { - Cmd uint8 - Version uint8 - Reserved uint16 -} - -const ( - CTRL_CMD_UNSPEC = 0x0 - CTRL_CMD_NEWFAMILY = 0x1 - CTRL_CMD_DELFAMILY = 0x2 - CTRL_CMD_GETFAMILY = 0x3 - CTRL_CMD_NEWOPS = 0x4 - CTRL_CMD_DELOPS = 0x5 - CTRL_CMD_GETOPS = 0x6 - CTRL_CMD_NEWMCAST_GRP = 0x7 - CTRL_CMD_DELMCAST_GRP = 0x8 - CTRL_CMD_GETMCAST_GRP = 0x9 - CTRL_ATTR_UNSPEC = 0x0 - CTRL_ATTR_FAMILY_ID = 0x1 - CTRL_ATTR_FAMILY_NAME = 0x2 - CTRL_ATTR_VERSION = 0x3 - CTRL_ATTR_HDRSIZE = 0x4 - CTRL_ATTR_MAXATTR = 0x5 - CTRL_ATTR_OPS = 0x6 - CTRL_ATTR_MCAST_GROUPS = 0x7 - CTRL_ATTR_OP_UNSPEC = 0x0 - CTRL_ATTR_OP_ID = 0x1 - CTRL_ATTR_OP_FLAGS = 0x2 - CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0 - CTRL_ATTR_MCAST_GRP_NAME = 0x1 - CTRL_ATTR_MCAST_GRP_ID = 0x2 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go deleted file mode 100644 index 22bdab9..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go +++ /dev/null @@ -1,666 +0,0 @@ -// +build sparc64,linux -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs types_linux.go | go run mkpost.go - -package unix - -const ( - sizeofPtr = 0x8 - sizeofShort = 0x2 - sizeofInt = 0x4 - sizeofLong = 0x8 - sizeofLongLong = 0x8 - PathMax = 0x1000 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int32 - Pad_cgo_0 [4]byte -} - -type Timex struct { - Modes uint32 - Pad_cgo_0 [4]byte - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - Pad_cgo_1 [4]byte - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - Pad_cgo_2 [4]byte - Stabil int64 - Jitcnt int64 - Calcnt int64 - Errcnt int64 - Stbcnt int64 - Tai int32 - Pad_cgo_3 [44]byte -} - -type Time_t int64 - -type Tms struct { - Utime int64 - Stime int64 - Cutime int64 - Cstime int64 -} - -type Utimbuf struct { - Actime int64 - Modtime int64 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int64 - Ixrss int64 - Idrss int64 - Isrss int64 - Minflt int64 - Majflt int64 - Nswap int64 - Inblock int64 - Oublock int64 - Msgsnd int64 - Msgrcv int64 - Nsignals int64 - Nvcsw int64 - Nivcsw int64 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type Stat_t struct { - Dev uint64 - X__pad1 uint16 - Pad_cgo_0 [6]byte - Ino uint64 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint64 - X__pad2 uint16 - Pad_cgo_1 [6]byte - Size int64 - Blksize int64 - Blocks int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - X__glibc_reserved4 uint64 - X__glibc_reserved5 uint64 -} - -type Statfs_t struct { - Type int64 - Bsize int64 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Namelen int64 - Frsize int64 - Flags int64 - Spare [4]int64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - Pad_cgo_0 [5]byte -} - -type Fsid struct { - X__val [2]int32 -} - -type Flock_t struct { - Type int16 - Whence int16 - Pad_cgo_0 [4]byte - Start int64 - Len int64 - Pid int32 - X__glibc_reserved int16 - Pad_cgo_1 [2]byte -} - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Family uint16 - Path [108]int8 -} - -type RawSockaddrLinklayer struct { - Family uint16 - Protocol uint16 - Ifindex int32 - Hatype uint16 - Pkttype uint8 - Halen uint8 - Addr [8]uint8 -} - -type RawSockaddrNetlink struct { - Family uint16 - Pad uint16 - Pid uint32 - Groups uint32 -} - -type RawSockaddrHCI struct { - Family uint16 - Dev uint16 - Channel uint16 -} - -type RawSockaddrCAN struct { - Family uint16 - Pad_cgo_0 [2]byte - Ifindex int32 - Addr [8]byte -} - -type RawSockaddrALG struct { - Family uint16 - Type [14]uint8 - Feat uint32 - Mask uint32 - Name [64]uint8 -} - -type RawSockaddrVM struct { - Family uint16 - Reserved1 uint16 - Port uint32 - Cid uint32 - Zero [4]uint8 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]int8 -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Pad_cgo_0 [4]byte - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - Pad_cgo_1 [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -type Inet4Pktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Data [8]uint32 -} - -type Ucred struct { - Pid int32 - Uid uint32 - Gid uint32 -} - -type TCPInfo struct { - State uint8 - Ca_state uint8 - Retransmits uint8 - Probes uint8 - Backoff uint8 - Options uint8 - Pad_cgo_0 [2]byte - Rto uint32 - Ato uint32 - Snd_mss uint32 - Rcv_mss uint32 - Unacked uint32 - Sacked uint32 - Lost uint32 - Retrans uint32 - Fackets uint32 - Last_data_sent uint32 - Last_ack_sent uint32 - Last_data_recv uint32 - Last_ack_recv uint32 - Pmtu uint32 - Rcv_ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Advmss uint32 - Reordering uint32 - Rcv_rtt uint32 - Rcv_space uint32 - Total_retrans uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofLinger = 0x8 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 -) - -const ( - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_MAX = 0x2a - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 -) - -type NlMsghdr struct { - Len uint32 - Type uint16 - Flags uint16 - Seq uint32 - Pid uint32 -} - -type NlMsgerr struct { - Error int32 - Msg NlMsghdr -} - -type RtGenmsg struct { - Family uint8 -} - -type NlAttr struct { - Len uint16 - Type uint16 -} - -type RtAttr struct { - Len uint16 - Type uint16 -} - -type IfInfomsg struct { - Family uint8 - X__ifi_pad uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index uint32 -} - -type RtMsg struct { - Family uint8 - Dst_len uint8 - Src_len uint8 - Tos uint8 - Table uint8 - Protocol uint8 - Scope uint8 - Type uint8 - Flags uint32 -} - -type RtNexthop struct { - Len uint16 - Flags uint8 - Hops uint8 - Ifindex int32 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x10 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - Pad_cgo_0 [6]byte - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 0x10 - -type PtraceRegs struct { - Regs [16]uint64 - Tstate uint64 - Tpc uint64 - Tnpc uint64 - Y uint32 - Magic uint32 -} - -type ptracePsw struct { -} - -type ptraceFpregs struct { -} - -type ptracePer struct { -} - -type FdSet struct { - Bits [16]int64 -} - -type Sysinfo_t struct { - Uptime int64 - Loads [3]uint64 - Totalram uint64 - Freeram uint64 - Sharedram uint64 - Bufferram uint64 - Totalswap uint64 - Freeswap uint64 - Procs uint16 - Pad uint16 - Pad_cgo_0 [4]byte - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - X_f [0]int8 - Pad_cgo_1 [4]byte -} - -type Utsname struct { - Sysname [65]int8 - Nodename [65]int8 - Release [65]int8 - Version [65]int8 - Machine [65]int8 - Domainname [65]int8 -} - -type Ustat_t struct { - Tfree int32 - Pad_cgo_0 [4]byte - Tinode uint64 - Fname [6]int8 - Fpack [6]int8 - Pad_cgo_1 [4]byte -} - -type EpollEvent struct { - Events uint32 - X_padFd int32 - Fd int32 - Pad int32 -} - -const ( - AT_FDCWD = -0x64 - AT_REMOVEDIR = 0x200 - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 - POLLRDHUP = 0x800 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 -) - -type Sigset_t struct { - X__val [16]uint64 -} - -const _SC_PAGESIZE = 0x1e - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [19]uint8 - Ispeed uint32 - Ospeed uint32 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go deleted file mode 100644 index 42f99c0..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go +++ /dev/null @@ -1,401 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs types_netbsd.go - -// +build 386,netbsd - -package unix - -const ( - sizeofPtr = 0x4 - sizeofShort = 0x2 - sizeofInt = 0x4 - sizeofLong = 0x4 - sizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int32 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int32 -} - -type Timeval struct { - Sec int64 - Usec int32 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type Stat_t struct { - Dev uint64 - Mode uint32 - Ino uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint64 - Atimespec Timespec - Mtimespec Timespec - Ctimespec Timespec - Birthtimespec Timespec - Size int64 - Blocks int64 - Blksize uint32 - Flags uint32 - Gen uint32 - Spare [2]uint32 -} - -type Statfs_t [0]byte - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 -} - -type Dirent struct { - Fileno uint64 - Reclen uint16 - Namlen uint16 - Type uint8 - Name [512]int8 - Pad_cgo_0 [3]byte -} - -type Fsid struct { - X__fsid_val [2]int32 -} - -type RawSockaddrInet4 struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type RawSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Len uint8 - Family uint8 - Path [104]int8 -} - -type RawSockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [12]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint32 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen int32 - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x6c - SizeofSockaddrUnix = 0x6a - SizeofSockaddrDatalink = 0x14 - SizeofLinger = 0x8 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type Kevent_t struct { - Ident uint32 - Filter uint32 - Flags uint32 - Fflags uint32 - Data int64 - Udata int32 -} - -type FdSet struct { - Bits [8]uint32 -} - -const ( - SizeofIfMsghdr = 0x98 - SizeofIfData = 0x84 - SizeofIfaMsghdr = 0x18 - SizeofIfAnnounceMsghdr = 0x18 - SizeofRtMsghdr = 0x78 - SizeofRtMetrics = 0x50 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte - Data IfData - Pad_cgo_1 [4]byte -} - -type IfData struct { - Type uint8 - Addrlen uint8 - Hdrlen uint8 - Pad_cgo_0 [1]byte - Link_state int32 - Mtu uint64 - Metric uint64 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Noproto uint64 - Lastchange Timespec -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Metric int32 - Index uint16 - Pad_cgo_0 [6]byte -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Name [16]int8 - What uint16 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Pad_cgo_0 [2]byte - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Use int32 - Inits int32 - Pad_cgo_1 [4]byte - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint64 - Mtu uint64 - Hopcount uint64 - Recvpipe uint64 - Sendpipe uint64 - Ssthresh uint64 - Rtt uint64 - Rttvar uint64 - Expire int64 - Pksent int64 -} - -type Mclpool [0]byte - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x80 - SizeofBpfProgram = 0x8 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x14 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint64 - Drop uint64 - Capt uint64 - Padding [13]uint64 -} - -type BpfProgram struct { - Len uint32 - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp BpfTimeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - Pad_cgo_0 [2]byte -} - -type BpfTimeval struct { - Sec int32 - Usec int32 -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed int32 - Ospeed int32 -} - -const ( - AT_FDCWD = -0x64 - AT_SYMLINK_NOFOLLOW = 0x200 -) - -type Sysctlnode struct { - Flags uint32 - Num int32 - Name [32]int8 - Ver uint32 - X__rsvd uint32 - Un [16]byte - X_sysctl_size [8]byte - X_sysctl_func [8]byte - X_sysctl_parent [8]byte - X_sysctl_desc [8]byte -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go deleted file mode 100644 index ff290ba..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go +++ /dev/null @@ -1,408 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs types_netbsd.go - -// +build amd64,netbsd - -package unix - -const ( - sizeofPtr = 0x8 - sizeofShort = 0x2 - sizeofInt = 0x4 - sizeofLong = 0x8 - sizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int32 - Pad_cgo_0 [4]byte -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int64 - Ixrss int64 - Idrss int64 - Isrss int64 - Minflt int64 - Majflt int64 - Nswap int64 - Inblock int64 - Oublock int64 - Msgsnd int64 - Msgrcv int64 - Nsignals int64 - Nvcsw int64 - Nivcsw int64 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type Stat_t struct { - Dev uint64 - Mode uint32 - Pad_cgo_0 [4]byte - Ino uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Pad_cgo_1 [4]byte - Rdev uint64 - Atimespec Timespec - Mtimespec Timespec - Ctimespec Timespec - Birthtimespec Timespec - Size int64 - Blocks int64 - Blksize uint32 - Flags uint32 - Gen uint32 - Spare [2]uint32 - Pad_cgo_2 [4]byte -} - -type Statfs_t [0]byte - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 -} - -type Dirent struct { - Fileno uint64 - Reclen uint16 - Namlen uint16 - Type uint8 - Name [512]int8 - Pad_cgo_0 [3]byte -} - -type Fsid struct { - X__fsid_val [2]int32 -} - -type RawSockaddrInet4 struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type RawSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Len uint8 - Family uint8 - Path [104]int8 -} - -type RawSockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [12]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Pad_cgo_0 [4]byte - Iov *Iovec - Iovlen int32 - Pad_cgo_1 [4]byte - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x6c - SizeofSockaddrUnix = 0x6a - SizeofSockaddrDatalink = 0x14 - SizeofLinger = 0x8 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x30 - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type Kevent_t struct { - Ident uint64 - Filter uint32 - Flags uint32 - Fflags uint32 - Pad_cgo_0 [4]byte - Data int64 - Udata int64 -} - -type FdSet struct { - Bits [8]uint32 -} - -const ( - SizeofIfMsghdr = 0x98 - SizeofIfData = 0x88 - SizeofIfaMsghdr = 0x18 - SizeofIfAnnounceMsghdr = 0x18 - SizeofRtMsghdr = 0x78 - SizeofRtMetrics = 0x50 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte - Data IfData -} - -type IfData struct { - Type uint8 - Addrlen uint8 - Hdrlen uint8 - Pad_cgo_0 [1]byte - Link_state int32 - Mtu uint64 - Metric uint64 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Noproto uint64 - Lastchange Timespec -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Metric int32 - Index uint16 - Pad_cgo_0 [6]byte -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Name [16]int8 - What uint16 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Pad_cgo_0 [2]byte - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Use int32 - Inits int32 - Pad_cgo_1 [4]byte - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint64 - Mtu uint64 - Hopcount uint64 - Recvpipe uint64 - Sendpipe uint64 - Ssthresh uint64 - Rtt uint64 - Rttvar uint64 - Expire int64 - Pksent int64 -} - -type Mclpool [0]byte - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x80 - SizeofBpfProgram = 0x10 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x20 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint64 - Drop uint64 - Capt uint64 - Padding [13]uint64 -} - -type BpfProgram struct { - Len uint32 - Pad_cgo_0 [4]byte - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp BpfTimeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - Pad_cgo_0 [6]byte -} - -type BpfTimeval struct { - Sec int64 - Usec int64 -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed int32 - Ospeed int32 -} - -const ( - AT_FDCWD = -0x64 - AT_SYMLINK_NOFOLLOW = 0x200 -) - -type Sysctlnode struct { - Flags uint32 - Num int32 - Name [32]int8 - Ver uint32 - X__rsvd uint32 - Un [16]byte - X_sysctl_size [8]byte - X_sysctl_func [8]byte - X_sysctl_parent [8]byte - X_sysctl_desc [8]byte -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go deleted file mode 100644 index 66dbd7c..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go +++ /dev/null @@ -1,406 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs types_netbsd.go - -// +build arm,netbsd - -package unix - -const ( - sizeofPtr = 0x4 - sizeofShort = 0x2 - sizeofInt = 0x4 - sizeofLong = 0x4 - sizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int32 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int32 - Pad_cgo_0 [4]byte -} - -type Timeval struct { - Sec int64 - Usec int32 - Pad_cgo_0 [4]byte -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type Stat_t struct { - Dev uint64 - Mode uint32 - Pad_cgo_0 [4]byte - Ino uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Pad_cgo_1 [4]byte - Rdev uint64 - Atimespec Timespec - Mtimespec Timespec - Ctimespec Timespec - Birthtimespec Timespec - Size int64 - Blocks int64 - Blksize uint32 - Flags uint32 - Gen uint32 - Spare [2]uint32 - Pad_cgo_2 [4]byte -} - -type Statfs_t [0]byte - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 -} - -type Dirent struct { - Fileno uint64 - Reclen uint16 - Namlen uint16 - Type uint8 - Name [512]int8 - Pad_cgo_0 [3]byte -} - -type Fsid struct { - X__fsid_val [2]int32 -} - -type RawSockaddrInet4 struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type RawSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Len uint8 - Family uint8 - Path [104]int8 -} - -type RawSockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [12]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint32 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen int32 - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x6c - SizeofSockaddrUnix = 0x6a - SizeofSockaddrDatalink = 0x14 - SizeofLinger = 0x8 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type Kevent_t struct { - Ident uint32 - Filter uint32 - Flags uint32 - Fflags uint32 - Data int64 - Udata int32 - Pad_cgo_0 [4]byte -} - -type FdSet struct { - Bits [8]uint32 -} - -const ( - SizeofIfMsghdr = 0x98 - SizeofIfData = 0x88 - SizeofIfaMsghdr = 0x18 - SizeofIfAnnounceMsghdr = 0x18 - SizeofRtMsghdr = 0x78 - SizeofRtMetrics = 0x50 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte - Data IfData -} - -type IfData struct { - Type uint8 - Addrlen uint8 - Hdrlen uint8 - Pad_cgo_0 [1]byte - Link_state int32 - Mtu uint64 - Metric uint64 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Noproto uint64 - Lastchange Timespec -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Metric int32 - Index uint16 - Pad_cgo_0 [6]byte -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Name [16]int8 - What uint16 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Pad_cgo_0 [2]byte - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Use int32 - Inits int32 - Pad_cgo_1 [4]byte - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint64 - Mtu uint64 - Hopcount uint64 - Recvpipe uint64 - Sendpipe uint64 - Ssthresh uint64 - Rtt uint64 - Rttvar uint64 - Expire int64 - Pksent int64 -} - -type Mclpool [0]byte - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x80 - SizeofBpfProgram = 0x8 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x14 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint64 - Drop uint64 - Capt uint64 - Padding [13]uint64 -} - -type BpfProgram struct { - Len uint32 - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp BpfTimeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - Pad_cgo_0 [2]byte -} - -type BpfTimeval struct { - Sec int32 - Usec int32 -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed int32 - Ospeed int32 -} - -const ( - AT_FDCWD = -0x64 - AT_SYMLINK_NOFOLLOW = 0x200 -) - -type Sysctlnode struct { - Flags uint32 - Num int32 - Name [32]int8 - Ver uint32 - X__rsvd uint32 - Un [16]byte - X_sysctl_size [8]byte - X_sysctl_func [8]byte - X_sysctl_parent [8]byte - X_sysctl_desc [8]byte -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go deleted file mode 100644 index 20fc9f4..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go +++ /dev/null @@ -1,446 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs types_openbsd.go - -// +build 386,openbsd - -package unix - -const ( - sizeofPtr = 0x4 - sizeofShort = 0x2 - sizeofInt = 0x4 - sizeofLong = 0x4 - sizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int32 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int32 -} - -type Timeval struct { - Sec int64 - Usec int32 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -const ( - S_IFMT = 0xf000 - S_IFIFO = 0x1000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFBLK = 0x6000 - S_IFREG = 0x8000 - S_IFLNK = 0xa000 - S_IFSOCK = 0xc000 - S_ISUID = 0x800 - S_ISGID = 0x400 - S_ISVTX = 0x200 - S_IRUSR = 0x100 - S_IWUSR = 0x80 - S_IXUSR = 0x40 -) - -type Stat_t struct { - Mode uint32 - Dev int32 - Ino uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev int32 - Atim Timespec - Mtim Timespec - Ctim Timespec - Size int64 - Blocks int64 - Blksize uint32 - Flags uint32 - Gen uint32 - X__st_birthtim Timespec -} - -type Statfs_t struct { - F_flags uint32 - F_bsize uint32 - F_iosize uint32 - F_blocks uint64 - F_bfree uint64 - F_bavail int64 - F_files uint64 - F_ffree uint64 - F_favail int64 - F_syncwrites uint64 - F_syncreads uint64 - F_asyncwrites uint64 - F_asyncreads uint64 - F_fsid Fsid - F_namemax uint32 - F_owner uint32 - F_ctime uint64 - F_fstypename [16]int8 - F_mntonname [90]int8 - F_mntfromname [90]int8 - F_mntfromspec [90]int8 - Pad_cgo_0 [2]byte - Mount_info [160]byte -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 -} - -type Dirent struct { - Fileno uint64 - Off int64 - Reclen uint16 - Type uint8 - Namlen uint8 - X__d_padding [4]uint8 - Name [256]int8 -} - -type Fsid struct { - Val [2]int32 -} - -type RawSockaddrInet4 struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type RawSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Len uint8 - Family uint8 - Path [104]int8 -} - -type RawSockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [24]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint32 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint32 - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x6c - SizeofSockaddrUnix = 0x6a - SizeofSockaddrDatalink = 0x20 - SizeofLinger = 0x8 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type Kevent_t struct { - Ident uint32 - Filter int16 - Flags uint16 - Fflags uint32 - Data int64 - Udata *byte -} - -type FdSet struct { - Bits [32]uint32 -} - -const ( - SizeofIfMsghdr = 0xec - SizeofIfData = 0xd4 - SizeofIfaMsghdr = 0x18 - SizeofIfAnnounceMsghdr = 0x1a - SizeofRtMsghdr = 0x60 - SizeofRtMetrics = 0x38 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Hdrlen uint16 - Index uint16 - Tableid uint16 - Pad1 uint8 - Pad2 uint8 - Addrs int32 - Flags int32 - Xflags int32 - Data IfData -} - -type IfData struct { - Type uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Mtu uint32 - Metric uint32 - Pad uint32 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Noproto uint64 - Capabilities uint32 - Lastchange Timeval - Mclpool [7]Mclpool -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Hdrlen uint16 - Index uint16 - Tableid uint16 - Pad1 uint8 - Pad2 uint8 - Addrs int32 - Flags int32 - Metric int32 -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Hdrlen uint16 - Index uint16 - What uint16 - Name [16]int8 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Hdrlen uint16 - Index uint16 - Tableid uint16 - Priority uint8 - Mpls uint8 - Addrs int32 - Flags int32 - Fmask int32 - Pid int32 - Seq int32 - Errno int32 - Inits uint32 - Rmx RtMetrics -} - -type RtMetrics struct { - Pksent uint64 - Expire int64 - Locks uint32 - Mtu uint32 - Refcnt uint32 - Hopcount uint32 - Recvpipe uint32 - Sendpipe uint32 - Ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Pad uint32 -} - -type Mclpool struct { - Grown int32 - Alive uint16 - Hwm uint16 - Cwm uint16 - Lwm uint16 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfProgram = 0x8 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x14 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint32 - Drop uint32 -} - -type BpfProgram struct { - Len uint32 - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp BpfTimeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - Pad_cgo_0 [2]byte -} - -type BpfTimeval struct { - Sec uint32 - Usec uint32 -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed int32 - Ospeed int32 -} - -const ( - AT_FDCWD = -0x64 - AT_SYMLINK_NOFOLLOW = 0x2 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go deleted file mode 100644 index 46fe949..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go +++ /dev/null @@ -1,453 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs types_openbsd.go - -// +build amd64,openbsd - -package unix - -const ( - sizeofPtr = 0x8 - sizeofShort = 0x2 - sizeofInt = 0x4 - sizeofLong = 0x8 - sizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int64 - Ixrss int64 - Idrss int64 - Isrss int64 - Minflt int64 - Majflt int64 - Nswap int64 - Inblock int64 - Oublock int64 - Msgsnd int64 - Msgrcv int64 - Nsignals int64 - Nvcsw int64 - Nivcsw int64 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -const ( - S_IFMT = 0xf000 - S_IFIFO = 0x1000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFBLK = 0x6000 - S_IFREG = 0x8000 - S_IFLNK = 0xa000 - S_IFSOCK = 0xc000 - S_ISUID = 0x800 - S_ISGID = 0x400 - S_ISVTX = 0x200 - S_IRUSR = 0x100 - S_IWUSR = 0x80 - S_IXUSR = 0x40 -) - -type Stat_t struct { - Mode uint32 - Dev int32 - Ino uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev int32 - Atim Timespec - Mtim Timespec - Ctim Timespec - Size int64 - Blocks int64 - Blksize uint32 - Flags uint32 - Gen uint32 - Pad_cgo_0 [4]byte - X__st_birthtim Timespec -} - -type Statfs_t struct { - F_flags uint32 - F_bsize uint32 - F_iosize uint32 - Pad_cgo_0 [4]byte - F_blocks uint64 - F_bfree uint64 - F_bavail int64 - F_files uint64 - F_ffree uint64 - F_favail int64 - F_syncwrites uint64 - F_syncreads uint64 - F_asyncwrites uint64 - F_asyncreads uint64 - F_fsid Fsid - F_namemax uint32 - F_owner uint32 - F_ctime uint64 - F_fstypename [16]int8 - F_mntonname [90]int8 - F_mntfromname [90]int8 - F_mntfromspec [90]int8 - Pad_cgo_1 [2]byte - Mount_info [160]byte -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 -} - -type Dirent struct { - Fileno uint64 - Off int64 - Reclen uint16 - Type uint8 - Namlen uint8 - X__d_padding [4]uint8 - Name [256]int8 -} - -type Fsid struct { - Val [2]int32 -} - -type RawSockaddrInet4 struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type RawSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Len uint8 - Family uint8 - Path [104]int8 -} - -type RawSockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [24]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Pad_cgo_0 [4]byte - Iov *Iovec - Iovlen uint32 - Pad_cgo_1 [4]byte - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x6c - SizeofSockaddrUnix = 0x6a - SizeofSockaddrDatalink = 0x20 - SizeofLinger = 0x8 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x30 - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type Kevent_t struct { - Ident uint64 - Filter int16 - Flags uint16 - Fflags uint32 - Data int64 - Udata *byte -} - -type FdSet struct { - Bits [32]uint32 -} - -const ( - SizeofIfMsghdr = 0xf8 - SizeofIfData = 0xe0 - SizeofIfaMsghdr = 0x18 - SizeofIfAnnounceMsghdr = 0x1a - SizeofRtMsghdr = 0x60 - SizeofRtMetrics = 0x38 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Hdrlen uint16 - Index uint16 - Tableid uint16 - Pad1 uint8 - Pad2 uint8 - Addrs int32 - Flags int32 - Xflags int32 - Data IfData -} - -type IfData struct { - Type uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Mtu uint32 - Metric uint32 - Pad uint32 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Noproto uint64 - Capabilities uint32 - Pad_cgo_0 [4]byte - Lastchange Timeval - Mclpool [7]Mclpool - Pad_cgo_1 [4]byte -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Hdrlen uint16 - Index uint16 - Tableid uint16 - Pad1 uint8 - Pad2 uint8 - Addrs int32 - Flags int32 - Metric int32 -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Hdrlen uint16 - Index uint16 - What uint16 - Name [16]int8 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Hdrlen uint16 - Index uint16 - Tableid uint16 - Priority uint8 - Mpls uint8 - Addrs int32 - Flags int32 - Fmask int32 - Pid int32 - Seq int32 - Errno int32 - Inits uint32 - Rmx RtMetrics -} - -type RtMetrics struct { - Pksent uint64 - Expire int64 - Locks uint32 - Mtu uint32 - Refcnt uint32 - Hopcount uint32 - Recvpipe uint32 - Sendpipe uint32 - Ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Pad uint32 -} - -type Mclpool struct { - Grown int32 - Alive uint16 - Hwm uint16 - Cwm uint16 - Lwm uint16 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfProgram = 0x10 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x14 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint32 - Drop uint32 -} - -type BpfProgram struct { - Len uint32 - Pad_cgo_0 [4]byte - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp BpfTimeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - Pad_cgo_0 [2]byte -} - -type BpfTimeval struct { - Sec uint32 - Usec uint32 -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed int32 - Ospeed int32 -} - -const ( - AT_FDCWD = -0x64 - AT_SYMLINK_NOFOLLOW = 0x2 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go deleted file mode 100644 index 62e1f7c..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go +++ /dev/null @@ -1,439 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs types_openbsd.go - -// +build arm,openbsd - -package unix - -const ( - sizeofPtr = 0x4 - sizeofShort = 0x2 - sizeofInt = 0x4 - sizeofLong = 0x4 - sizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int32 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int32 -} - -type Timeval struct { - Sec int64 - Usec int32 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -const ( - S_IFMT = 0xf000 - S_IFIFO = 0x1000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFBLK = 0x6000 - S_IFREG = 0x8000 - S_IFLNK = 0xa000 - S_IFSOCK = 0xc000 - S_ISUID = 0x800 - S_ISGID = 0x400 - S_ISVTX = 0x200 - S_IRUSR = 0x100 - S_IWUSR = 0x80 - S_IXUSR = 0x40 -) - -type Stat_t struct { - Mode uint32 - Dev int32 - Ino uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev int32 - Atim Timespec - Mtim Timespec - Ctim Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint32 - X__st_birthtim Timespec -} - -type Statfs_t struct { - F_flags uint32 - F_bsize uint32 - F_iosize uint32 - F_blocks uint64 - F_bfree uint64 - F_bavail int64 - F_files uint64 - F_ffree uint64 - F_favail int64 - F_syncwrites uint64 - F_syncreads uint64 - F_asyncwrites uint64 - F_asyncreads uint64 - F_fsid Fsid - F_namemax uint32 - F_owner uint32 - F_ctime uint64 - F_fstypename [16]uint8 - F_mntonname [90]uint8 - F_mntfromname [90]uint8 - F_mntfromspec [90]uint8 - Pad_cgo_0 [2]byte - Mount_info [160]byte -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 -} - -type Dirent struct { - Fileno uint64 - Off int64 - Reclen uint16 - Type uint8 - Namlen uint8 - X__d_padding [4]uint8 - Name [256]uint8 -} - -type Fsid struct { - Val [2]int32 -} - -type RawSockaddrInet4 struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type RawSockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Len uint8 - Family uint8 - Path [104]int8 -} - -type RawSockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [24]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *byte - Len uint32 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint32 - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x6c - SizeofSockaddrUnix = 0x6a - SizeofSockaddrDatalink = 0x20 - SizeofLinger = 0x8 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type Kevent_t struct { - Ident uint32 - Filter int16 - Flags uint16 - Fflags uint32 - Data int64 - Udata *byte -} - -type FdSet struct { - Bits [32]uint32 -} - -const ( - SizeofIfMsghdr = 0x98 - SizeofIfData = 0x80 - SizeofIfaMsghdr = 0x18 - SizeofIfAnnounceMsghdr = 0x1a - SizeofRtMsghdr = 0x60 - SizeofRtMetrics = 0x38 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Hdrlen uint16 - Index uint16 - Tableid uint16 - Pad1 uint8 - Pad2 uint8 - Addrs int32 - Flags int32 - Xflags int32 - Data IfData -} - -type IfData struct { - Type uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Mtu uint32 - Metric uint32 - Pad uint32 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Noproto uint64 - Capabilities uint32 - Lastchange Timeval -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Hdrlen uint16 - Index uint16 - Tableid uint16 - Pad1 uint8 - Pad2 uint8 - Addrs int32 - Flags int32 - Metric int32 -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Hdrlen uint16 - Index uint16 - What uint16 - Name [16]uint8 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Hdrlen uint16 - Index uint16 - Tableid uint16 - Priority uint8 - Mpls uint8 - Addrs int32 - Flags int32 - Fmask int32 - Pid int32 - Seq int32 - Errno int32 - Inits uint32 - Rmx RtMetrics -} - -type RtMetrics struct { - Pksent uint64 - Expire int64 - Locks uint32 - Mtu uint32 - Refcnt uint32 - Hopcount uint32 - Recvpipe uint32 - Sendpipe uint32 - Ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Pad uint32 -} - -type Mclpool struct{} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfProgram = 0x8 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x14 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint32 - Drop uint32 -} - -type BpfProgram struct { - Len uint32 - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp BpfTimeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - Pad_cgo_0 [2]byte -} - -type BpfTimeval struct { - Sec uint32 - Usec uint32 -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed int32 - Ospeed int32 -} - -const ( - AT_FDCWD = -0x64 - AT_SYMLINK_NOFOLLOW = 0x2 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go deleted file mode 100644 index 92336f9..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go +++ /dev/null @@ -1,442 +0,0 @@ -// cgo -godefs types_solaris.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build amd64,solaris - -package unix - -const ( - sizeofPtr = 0x8 - sizeofShort = 0x2 - sizeofInt = 0x4 - sizeofLong = 0x8 - sizeofLongLong = 0x8 - PathMax = 0x400 - MaxHostNameLen = 0x100 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Timeval32 struct { - Sec int32 - Usec int32 -} - -type Tms struct { - Utime int64 - Stime int64 - Cutime int64 - Cstime int64 -} - -type Utimbuf struct { - Actime int64 - Modtime int64 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int64 - Ixrss int64 - Idrss int64 - Isrss int64 - Minflt int64 - Majflt int64 - Nswap int64 - Inblock int64 - Oublock int64 - Msgsnd int64 - Msgrcv int64 - Nsignals int64 - Nvcsw int64 - Nivcsw int64 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -const ( - S_IFMT = 0xf000 - S_IFIFO = 0x1000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFBLK = 0x6000 - S_IFREG = 0x8000 - S_IFLNK = 0xa000 - S_IFSOCK = 0xc000 - S_ISUID = 0x800 - S_ISGID = 0x400 - S_ISVTX = 0x200 - S_IRUSR = 0x100 - S_IWUSR = 0x80 - S_IXUSR = 0x40 -) - -type Stat_t struct { - Dev uint64 - Ino uint64 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint64 - Size int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Blksize int32 - Pad_cgo_0 [4]byte - Blocks int64 - Fstype [16]int8 -} - -type Flock_t struct { - Type int16 - Whence int16 - Pad_cgo_0 [4]byte - Start int64 - Len int64 - Sysid int32 - Pid int32 - Pad [4]int64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Name [1]int8 - Pad_cgo_0 [5]byte -} - -type _Fsblkcnt_t uint64 - -type Statvfs_t struct { - Bsize uint64 - Frsize uint64 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Favail uint64 - Fsid uint64 - Basetype [16]int8 - Flag uint64 - Namemax uint64 - Fstr [32]int8 -} - -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 - X__sin6_src_id uint32 -} - -type RawSockaddrUnix struct { - Family uint16 - Path [108]int8 -} - -type RawSockaddrDatalink struct { - Family uint16 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [244]int8 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [236]int8 -} - -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Iovec struct { - Base *int8 - Len uint64 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Pad_cgo_0 [4]byte - Iov *Iovec - Iovlen int32 - Pad_cgo_1 [4]byte - Accrights *int8 - Accrightslen int32 - Pad_cgo_2 [4]byte -} - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - X__icmp6_filt [8]uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x20 - SizeofSockaddrAny = 0xfc - SizeofSockaddrUnix = 0x6e - SizeofSockaddrDatalink = 0xfc - SizeofLinger = 0x8 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x30 - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x24 - SizeofICMPv6Filter = 0x20 -) - -type FdSet struct { - Bits [1024]int64 -} - -type Utsname struct { - Sysname [257]int8 - Nodename [257]int8 - Release [257]int8 - Version [257]int8 - Machine [257]int8 -} - -type Ustat_t struct { - Tfree int64 - Tinode uint64 - Fname [6]int8 - Fpack [6]int8 - Pad_cgo_0 [4]byte -} - -const ( - AT_FDCWD = 0xffd19553 - AT_SYMLINK_NOFOLLOW = 0x1000 - AT_SYMLINK_FOLLOW = 0x2000 - AT_REMOVEDIR = 0x1 - AT_EACCESS = 0x4 -) - -const ( - SizeofIfMsghdr = 0x54 - SizeofIfData = 0x44 - SizeofIfaMsghdr = 0x14 - SizeofRtMsghdr = 0x4c - SizeofRtMetrics = 0x28 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte - Data IfData -} - -type IfData struct { - Type uint8 - Addrlen uint8 - Hdrlen uint8 - Pad_cgo_0 [1]byte - Mtu uint32 - Metric uint32 - Baudrate uint32 - Ipackets uint32 - Ierrors uint32 - Opackets uint32 - Oerrors uint32 - Collisions uint32 - Ibytes uint32 - Obytes uint32 - Imcasts uint32 - Omcasts uint32 - Iqdrops uint32 - Noproto uint32 - Lastchange Timeval32 -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte - Metric int32 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Pad_cgo_0 [2]byte - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Use int32 - Inits uint32 - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint32 - Mtu uint32 - Hopcount uint32 - Expire uint32 - Recvpipe uint32 - Sendpipe uint32 - Ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Pksent uint32 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x80 - SizeofBpfProgram = 0x10 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x14 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint64 - Drop uint64 - Capt uint64 - Padding [13]uint64 -} - -type BpfProgram struct { - Len uint32 - Pad_cgo_0 [4]byte - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfTimeval struct { - Sec int32 - Usec int32 -} - -type BpfHdr struct { - Tstamp BpfTimeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - Pad_cgo_0 [2]byte -} - -const _SC_PAGESIZE = 0xb - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [19]uint8 - Pad_cgo_0 [1]byte -} - -type Termio struct { - Iflag uint16 - Oflag uint16 - Cflag uint16 - Lflag uint16 - Line int8 - Cc [8]uint8 - Pad_cgo_0 [1]byte -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} diff --git a/vendor/golang.org/x/text/LICENSE b/vendor/golang.org/x/text/LICENSE deleted file mode 100644 index 6a66aea..0000000 --- a/vendor/golang.org/x/text/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2009 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/golang.org/x/text/PATENTS b/vendor/golang.org/x/text/PATENTS deleted file mode 100644 index 7330990..0000000 --- a/vendor/golang.org/x/text/PATENTS +++ /dev/null @@ -1,22 +0,0 @@ -Additional IP Rights Grant (Patents) - -"This implementation" means the copyrightable works distributed by -Google as part of the Go project. - -Google hereby grants to You a perpetual, worldwide, non-exclusive, -no-charge, royalty-free, irrevocable (except as stated in this section) -patent license to make, have made, use, offer to sell, sell, import, -transfer and otherwise run, modify and propagate the contents of this -implementation of Go, where such license applies only to those patent -claims, both currently owned or controlled by Google and acquired in -the future, licensable by Google that are necessarily infringed by this -implementation of Go. This grant does not include claims that would be -infringed only as a consequence of further modification of this -implementation. If you or your agent or exclusive licensee institute or -order or agree to the institution of patent litigation against any -entity (including a cross-claim or counterclaim in a lawsuit) alleging -that this implementation of Go or any code incorporated within this -implementation of Go constitutes direct or contributory patent -infringement, or inducement of patent infringement, then any patent -rights granted to you under this License for this implementation of Go -shall terminate as of the date such litigation is filed. diff --git a/vendor/golang.org/x/text/transform/transform.go b/vendor/golang.org/x/text/transform/transform.go deleted file mode 100644 index fe47b9b..0000000 --- a/vendor/golang.org/x/text/transform/transform.go +++ /dev/null @@ -1,705 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package transform provides reader and writer wrappers that transform the -// bytes passing through as well as various transformations. Example -// transformations provided by other packages include normalization and -// conversion between character sets. -package transform // import "golang.org/x/text/transform" - -import ( - "bytes" - "errors" - "io" - "unicode/utf8" -) - -var ( - // ErrShortDst means that the destination buffer was too short to - // receive all of the transformed bytes. - ErrShortDst = errors.New("transform: short destination buffer") - - // ErrShortSrc means that the source buffer has insufficient data to - // complete the transformation. - ErrShortSrc = errors.New("transform: short source buffer") - - // ErrEndOfSpan means that the input and output (the transformed input) - // are not identical. - ErrEndOfSpan = errors.New("transform: input and output are not identical") - - // errInconsistentByteCount means that Transform returned success (nil - // error) but also returned nSrc inconsistent with the src argument. - errInconsistentByteCount = errors.New("transform: inconsistent byte count returned") - - // errShortInternal means that an internal buffer is not large enough - // to make progress and the Transform operation must be aborted. - errShortInternal = errors.New("transform: short internal buffer") -) - -// Transformer transforms bytes. -type Transformer interface { - // Transform writes to dst the transformed bytes read from src, and - // returns the number of dst bytes written and src bytes read. The - // atEOF argument tells whether src represents the last bytes of the - // input. - // - // Callers should always process the nDst bytes produced and account - // for the nSrc bytes consumed before considering the error err. - // - // A nil error means that all of the transformed bytes (whether freshly - // transformed from src or left over from previous Transform calls) - // were written to dst. A nil error can be returned regardless of - // whether atEOF is true. If err is nil then nSrc must equal len(src); - // the converse is not necessarily true. - // - // ErrShortDst means that dst was too short to receive all of the - // transformed bytes. ErrShortSrc means that src had insufficient data - // to complete the transformation. If both conditions apply, then - // either error may be returned. Other than the error conditions listed - // here, implementations are free to report other errors that arise. - Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) - - // Reset resets the state and allows a Transformer to be reused. - Reset() -} - -// SpanningTransformer extends the Transformer interface with a Span method -// that determines how much of the input already conforms to the Transformer. -type SpanningTransformer interface { - Transformer - - // Span returns a position in src such that transforming src[:n] results in - // identical output src[:n] for these bytes. It does not necessarily return - // the largest such n. The atEOF argument tells whether src represents the - // last bytes of the input. - // - // Callers should always account for the n bytes consumed before - // considering the error err. - // - // A nil error means that all input bytes are known to be identical to the - // output produced by the Transformer. A nil error can be be returned - // regardless of whether atEOF is true. If err is nil, then then n must - // equal len(src); the converse is not necessarily true. - // - // ErrEndOfSpan means that the Transformer output may differ from the - // input after n bytes. Note that n may be len(src), meaning that the output - // would contain additional bytes after otherwise identical output. - // ErrShortSrc means that src had insufficient data to determine whether the - // remaining bytes would change. Other than the error conditions listed - // here, implementations are free to report other errors that arise. - // - // Calling Span can modify the Transformer state as a side effect. In - // effect, it does the transformation just as calling Transform would, only - // without copying to a destination buffer and only up to a point it can - // determine the input and output bytes are the same. This is obviously more - // limited than calling Transform, but can be more efficient in terms of - // copying and allocating buffers. Calls to Span and Transform may be - // interleaved. - Span(src []byte, atEOF bool) (n int, err error) -} - -// NopResetter can be embedded by implementations of Transformer to add a nop -// Reset method. -type NopResetter struct{} - -// Reset implements the Reset method of the Transformer interface. -func (NopResetter) Reset() {} - -// Reader wraps another io.Reader by transforming the bytes read. -type Reader struct { - r io.Reader - t Transformer - err error - - // dst[dst0:dst1] contains bytes that have been transformed by t but - // not yet copied out via Read. - dst []byte - dst0, dst1 int - - // src[src0:src1] contains bytes that have been read from r but not - // yet transformed through t. - src []byte - src0, src1 int - - // transformComplete is whether the transformation is complete, - // regardless of whether or not it was successful. - transformComplete bool -} - -const defaultBufSize = 4096 - -// NewReader returns a new Reader that wraps r by transforming the bytes read -// via t. It calls Reset on t. -func NewReader(r io.Reader, t Transformer) *Reader { - t.Reset() - return &Reader{ - r: r, - t: t, - dst: make([]byte, defaultBufSize), - src: make([]byte, defaultBufSize), - } -} - -// Read implements the io.Reader interface. -func (r *Reader) Read(p []byte) (int, error) { - n, err := 0, error(nil) - for { - // Copy out any transformed bytes and return the final error if we are done. - if r.dst0 != r.dst1 { - n = copy(p, r.dst[r.dst0:r.dst1]) - r.dst0 += n - if r.dst0 == r.dst1 && r.transformComplete { - return n, r.err - } - return n, nil - } else if r.transformComplete { - return 0, r.err - } - - // Try to transform some source bytes, or to flush the transformer if we - // are out of source bytes. We do this even if r.r.Read returned an error. - // As the io.Reader documentation says, "process the n > 0 bytes returned - // before considering the error". - if r.src0 != r.src1 || r.err != nil { - r.dst0 = 0 - r.dst1, n, err = r.t.Transform(r.dst, r.src[r.src0:r.src1], r.err == io.EOF) - r.src0 += n - - switch { - case err == nil: - if r.src0 != r.src1 { - r.err = errInconsistentByteCount - } - // The Transform call was successful; we are complete if we - // cannot read more bytes into src. - r.transformComplete = r.err != nil - continue - case err == ErrShortDst && (r.dst1 != 0 || n != 0): - // Make room in dst by copying out, and try again. - continue - case err == ErrShortSrc && r.src1-r.src0 != len(r.src) && r.err == nil: - // Read more bytes into src via the code below, and try again. - default: - r.transformComplete = true - // The reader error (r.err) takes precedence over the - // transformer error (err) unless r.err is nil or io.EOF. - if r.err == nil || r.err == io.EOF { - r.err = err - } - continue - } - } - - // Move any untransformed source bytes to the start of the buffer - // and read more bytes. - if r.src0 != 0 { - r.src0, r.src1 = 0, copy(r.src, r.src[r.src0:r.src1]) - } - n, r.err = r.r.Read(r.src[r.src1:]) - r.src1 += n - } -} - -// TODO: implement ReadByte (and ReadRune??). - -// Writer wraps another io.Writer by transforming the bytes read. -// The user needs to call Close to flush unwritten bytes that may -// be buffered. -type Writer struct { - w io.Writer - t Transformer - dst []byte - - // src[:n] contains bytes that have not yet passed through t. - src []byte - n int -} - -// NewWriter returns a new Writer that wraps w by transforming the bytes written -// via t. It calls Reset on t. -func NewWriter(w io.Writer, t Transformer) *Writer { - t.Reset() - return &Writer{ - w: w, - t: t, - dst: make([]byte, defaultBufSize), - src: make([]byte, defaultBufSize), - } -} - -// Write implements the io.Writer interface. If there are not enough -// bytes available to complete a Transform, the bytes will be buffered -// for the next write. Call Close to convert the remaining bytes. -func (w *Writer) Write(data []byte) (n int, err error) { - src := data - if w.n > 0 { - // Append bytes from data to the last remainder. - // TODO: limit the amount copied on first try. - n = copy(w.src[w.n:], data) - w.n += n - src = w.src[:w.n] - } - for { - nDst, nSrc, err := w.t.Transform(w.dst, src, false) - if _, werr := w.w.Write(w.dst[:nDst]); werr != nil { - return n, werr - } - src = src[nSrc:] - if w.n == 0 { - n += nSrc - } else if len(src) <= n { - // Enough bytes from w.src have been consumed. We make src point - // to data instead to reduce the copying. - w.n = 0 - n -= len(src) - src = data[n:] - if n < len(data) && (err == nil || err == ErrShortSrc) { - continue - } - } - switch err { - case ErrShortDst: - // This error is okay as long as we are making progress. - if nDst > 0 || nSrc > 0 { - continue - } - case ErrShortSrc: - if len(src) < len(w.src) { - m := copy(w.src, src) - // If w.n > 0, bytes from data were already copied to w.src and n - // was already set to the number of bytes consumed. - if w.n == 0 { - n += m - } - w.n = m - err = nil - } else if nDst > 0 || nSrc > 0 { - // Not enough buffer to store the remainder. Keep processing as - // long as there is progress. Without this case, transforms that - // require a lookahead larger than the buffer may result in an - // error. This is not something one may expect to be common in - // practice, but it may occur when buffers are set to small - // sizes during testing. - continue - } - case nil: - if w.n > 0 { - err = errInconsistentByteCount - } - } - return n, err - } -} - -// Close implements the io.Closer interface. -func (w *Writer) Close() error { - src := w.src[:w.n] - for { - nDst, nSrc, err := w.t.Transform(w.dst, src, true) - if _, werr := w.w.Write(w.dst[:nDst]); werr != nil { - return werr - } - if err != ErrShortDst { - return err - } - src = src[nSrc:] - } -} - -type nop struct{ NopResetter } - -func (nop) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - n := copy(dst, src) - if n < len(src) { - err = ErrShortDst - } - return n, n, err -} - -func (nop) Span(src []byte, atEOF bool) (n int, err error) { - return len(src), nil -} - -type discard struct{ NopResetter } - -func (discard) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - return 0, len(src), nil -} - -var ( - // Discard is a Transformer for which all Transform calls succeed - // by consuming all bytes and writing nothing. - Discard Transformer = discard{} - - // Nop is a SpanningTransformer that copies src to dst. - Nop SpanningTransformer = nop{} -) - -// chain is a sequence of links. A chain with N Transformers has N+1 links and -// N+1 buffers. Of those N+1 buffers, the first and last are the src and dst -// buffers given to chain.Transform and the middle N-1 buffers are intermediate -// buffers owned by the chain. The i'th link transforms bytes from the i'th -// buffer chain.link[i].b at read offset chain.link[i].p to the i+1'th buffer -// chain.link[i+1].b at write offset chain.link[i+1].n, for i in [0, N). -type chain struct { - link []link - err error - // errStart is the index at which the error occurred plus 1. Processing - // errStart at this level at the next call to Transform. As long as - // errStart > 0, chain will not consume any more source bytes. - errStart int -} - -func (c *chain) fatalError(errIndex int, err error) { - if i := errIndex + 1; i > c.errStart { - c.errStart = i - c.err = err - } -} - -type link struct { - t Transformer - // b[p:n] holds the bytes to be transformed by t. - b []byte - p int - n int -} - -func (l *link) src() []byte { - return l.b[l.p:l.n] -} - -func (l *link) dst() []byte { - return l.b[l.n:] -} - -// Chain returns a Transformer that applies t in sequence. -func Chain(t ...Transformer) Transformer { - if len(t) == 0 { - return nop{} - } - c := &chain{link: make([]link, len(t)+1)} - for i, tt := range t { - c.link[i].t = tt - } - // Allocate intermediate buffers. - b := make([][defaultBufSize]byte, len(t)-1) - for i := range b { - c.link[i+1].b = b[i][:] - } - return c -} - -// Reset resets the state of Chain. It calls Reset on all the Transformers. -func (c *chain) Reset() { - for i, l := range c.link { - if l.t != nil { - l.t.Reset() - } - c.link[i].p, c.link[i].n = 0, 0 - } -} - -// TODO: make chain use Span (is going to be fun to implement!) - -// Transform applies the transformers of c in sequence. -func (c *chain) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - // Set up src and dst in the chain. - srcL := &c.link[0] - dstL := &c.link[len(c.link)-1] - srcL.b, srcL.p, srcL.n = src, 0, len(src) - dstL.b, dstL.n = dst, 0 - var lastFull, needProgress bool // for detecting progress - - // i is the index of the next Transformer to apply, for i in [low, high]. - // low is the lowest index for which c.link[low] may still produce bytes. - // high is the highest index for which c.link[high] has a Transformer. - // The error returned by Transform determines whether to increase or - // decrease i. We try to completely fill a buffer before converting it. - for low, i, high := c.errStart, c.errStart, len(c.link)-2; low <= i && i <= high; { - in, out := &c.link[i], &c.link[i+1] - nDst, nSrc, err0 := in.t.Transform(out.dst(), in.src(), atEOF && low == i) - out.n += nDst - in.p += nSrc - if i > 0 && in.p == in.n { - in.p, in.n = 0, 0 - } - needProgress, lastFull = lastFull, false - switch err0 { - case ErrShortDst: - // Process the destination buffer next. Return if we are already - // at the high index. - if i == high { - return dstL.n, srcL.p, ErrShortDst - } - if out.n != 0 { - i++ - // If the Transformer at the next index is not able to process any - // source bytes there is nothing that can be done to make progress - // and the bytes will remain unprocessed. lastFull is used to - // detect this and break out of the loop with a fatal error. - lastFull = true - continue - } - // The destination buffer was too small, but is completely empty. - // Return a fatal error as this transformation can never complete. - c.fatalError(i, errShortInternal) - case ErrShortSrc: - if i == 0 { - // Save ErrShortSrc in err. All other errors take precedence. - err = ErrShortSrc - break - } - // Source bytes were depleted before filling up the destination buffer. - // Verify we made some progress, move the remaining bytes to the errStart - // and try to get more source bytes. - if needProgress && nSrc == 0 || in.n-in.p == len(in.b) { - // There were not enough source bytes to proceed while the source - // buffer cannot hold any more bytes. Return a fatal error as this - // transformation can never complete. - c.fatalError(i, errShortInternal) - break - } - // in.b is an internal buffer and we can make progress. - in.p, in.n = 0, copy(in.b, in.src()) - fallthrough - case nil: - // if i == low, we have depleted the bytes at index i or any lower levels. - // In that case we increase low and i. In all other cases we decrease i to - // fetch more bytes before proceeding to the next index. - if i > low { - i-- - continue - } - default: - c.fatalError(i, err0) - } - // Exhausted level low or fatal error: increase low and continue - // to process the bytes accepted so far. - i++ - low = i - } - - // If c.errStart > 0, this means we found a fatal error. We will clear - // all upstream buffers. At this point, no more progress can be made - // downstream, as Transform would have bailed while handling ErrShortDst. - if c.errStart > 0 { - for i := 1; i < c.errStart; i++ { - c.link[i].p, c.link[i].n = 0, 0 - } - err, c.errStart, c.err = c.err, 0, nil - } - return dstL.n, srcL.p, err -} - -// Deprecated: use runes.Remove instead. -func RemoveFunc(f func(r rune) bool) Transformer { - return removeF(f) -} - -type removeF func(r rune) bool - -func (removeF) Reset() {} - -// Transform implements the Transformer interface. -func (t removeF) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - for r, sz := rune(0), 0; len(src) > 0; src = src[sz:] { - - if r = rune(src[0]); r < utf8.RuneSelf { - sz = 1 - } else { - r, sz = utf8.DecodeRune(src) - - if sz == 1 { - // Invalid rune. - if !atEOF && !utf8.FullRune(src) { - err = ErrShortSrc - break - } - // We replace illegal bytes with RuneError. Not doing so might - // otherwise turn a sequence of invalid UTF-8 into valid UTF-8. - // The resulting byte sequence may subsequently contain runes - // for which t(r) is true that were passed unnoticed. - if !t(r) { - if nDst+3 > len(dst) { - err = ErrShortDst - break - } - nDst += copy(dst[nDst:], "\uFFFD") - } - nSrc++ - continue - } - } - - if !t(r) { - if nDst+sz > len(dst) { - err = ErrShortDst - break - } - nDst += copy(dst[nDst:], src[:sz]) - } - nSrc += sz - } - return -} - -// grow returns a new []byte that is longer than b, and copies the first n bytes -// of b to the start of the new slice. -func grow(b []byte, n int) []byte { - m := len(b) - if m <= 32 { - m = 64 - } else if m <= 256 { - m *= 2 - } else { - m += m >> 1 - } - buf := make([]byte, m) - copy(buf, b[:n]) - return buf -} - -const initialBufSize = 128 - -// String returns a string with the result of converting s[:n] using t, where -// n <= len(s). If err == nil, n will be len(s). It calls Reset on t. -func String(t Transformer, s string) (result string, n int, err error) { - t.Reset() - if s == "" { - // Fast path for the common case for empty input. Results in about a - // 86% reduction of running time for BenchmarkStringLowerEmpty. - if _, _, err := t.Transform(nil, nil, true); err == nil { - return "", 0, nil - } - } - - // Allocate only once. Note that both dst and src escape when passed to - // Transform. - buf := [2 * initialBufSize]byte{} - dst := buf[:initialBufSize:initialBufSize] - src := buf[initialBufSize : 2*initialBufSize] - - // The input string s is transformed in multiple chunks (starting with a - // chunk size of initialBufSize). nDst and nSrc are per-chunk (or - // per-Transform-call) indexes, pDst and pSrc are overall indexes. - nDst, nSrc := 0, 0 - pDst, pSrc := 0, 0 - - // pPrefix is the length of a common prefix: the first pPrefix bytes of the - // result will equal the first pPrefix bytes of s. It is not guaranteed to - // be the largest such value, but if pPrefix, len(result) and len(s) are - // all equal after the final transform (i.e. calling Transform with atEOF - // being true returned nil error) then we don't need to allocate a new - // result string. - pPrefix := 0 - for { - // Invariant: pDst == pPrefix && pSrc == pPrefix. - - n := copy(src, s[pSrc:]) - nDst, nSrc, err = t.Transform(dst, src[:n], pSrc+n == len(s)) - pDst += nDst - pSrc += nSrc - - // TODO: let transformers implement an optional Spanner interface, akin - // to norm's QuickSpan. This would even allow us to avoid any allocation. - if !bytes.Equal(dst[:nDst], src[:nSrc]) { - break - } - pPrefix = pSrc - if err == ErrShortDst { - // A buffer can only be short if a transformer modifies its input. - break - } else if err == ErrShortSrc { - if nSrc == 0 { - // No progress was made. - break - } - // Equal so far and !atEOF, so continue checking. - } else if err != nil || pPrefix == len(s) { - return string(s[:pPrefix]), pPrefix, err - } - } - // Post-condition: pDst == pPrefix + nDst && pSrc == pPrefix + nSrc. - - // We have transformed the first pSrc bytes of the input s to become pDst - // transformed bytes. Those transformed bytes are discontiguous: the first - // pPrefix of them equal s[:pPrefix] and the last nDst of them equal - // dst[:nDst]. We copy them around, into a new dst buffer if necessary, so - // that they become one contiguous slice: dst[:pDst]. - if pPrefix != 0 { - newDst := dst - if pDst > len(newDst) { - newDst = make([]byte, len(s)+nDst-nSrc) - } - copy(newDst[pPrefix:pDst], dst[:nDst]) - copy(newDst[:pPrefix], s[:pPrefix]) - dst = newDst - } - - // Prevent duplicate Transform calls with atEOF being true at the end of - // the input. Also return if we have an unrecoverable error. - if (err == nil && pSrc == len(s)) || - (err != nil && err != ErrShortDst && err != ErrShortSrc) { - return string(dst[:pDst]), pSrc, err - } - - // Transform the remaining input, growing dst and src buffers as necessary. - for { - n := copy(src, s[pSrc:]) - nDst, nSrc, err := t.Transform(dst[pDst:], src[:n], pSrc+n == len(s)) - pDst += nDst - pSrc += nSrc - - // If we got ErrShortDst or ErrShortSrc, do not grow as long as we can - // make progress. This may avoid excessive allocations. - if err == ErrShortDst { - if nDst == 0 { - dst = grow(dst, pDst) - } - } else if err == ErrShortSrc { - if nSrc == 0 { - src = grow(src, 0) - } - } else if err != nil || pSrc == len(s) { - return string(dst[:pDst]), pSrc, err - } - } -} - -// Bytes returns a new byte slice with the result of converting b[:n] using t, -// where n <= len(b). If err == nil, n will be len(b). It calls Reset on t. -func Bytes(t Transformer, b []byte) (result []byte, n int, err error) { - return doAppend(t, 0, make([]byte, len(b)), b) -} - -// Append appends the result of converting src[:n] using t to dst, where -// n <= len(src), If err == nil, n will be len(src). It calls Reset on t. -func Append(t Transformer, dst, src []byte) (result []byte, n int, err error) { - if len(dst) == cap(dst) { - n := len(src) + len(dst) // It is okay for this to be 0. - b := make([]byte, n) - dst = b[:copy(b, dst)] - } - return doAppend(t, len(dst), dst[:cap(dst)], src) -} - -func doAppend(t Transformer, pDst int, dst, src []byte) (result []byte, n int, err error) { - t.Reset() - pSrc := 0 - for { - nDst, nSrc, err := t.Transform(dst[pDst:], src[pSrc:], true) - pDst += nDst - pSrc += nSrc - if err != ErrShortDst { - return dst[:pDst], pSrc, err - } - - // Grow the destination buffer, but do not grow as long as we can make - // progress. This may avoid excessive allocations. - if nDst == 0 { - dst = grow(dst, pDst) - } - } -} diff --git a/vendor/golang.org/x/text/unicode/norm/composition.go b/vendor/golang.org/x/text/unicode/norm/composition.go deleted file mode 100644 index bab4c5d..0000000 --- a/vendor/golang.org/x/text/unicode/norm/composition.go +++ /dev/null @@ -1,508 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package norm - -import "unicode/utf8" - -const ( - maxNonStarters = 30 - // The maximum number of characters needed for a buffer is - // maxNonStarters + 1 for the starter + 1 for the GCJ - maxBufferSize = maxNonStarters + 2 - maxNFCExpansion = 3 // NFC(0x1D160) - maxNFKCExpansion = 18 // NFKC(0xFDFA) - - maxByteBufferSize = utf8.UTFMax * maxBufferSize // 128 -) - -// ssState is used for reporting the segment state after inserting a rune. -// It is returned by streamSafe.next. -type ssState int - -const ( - // Indicates a rune was successfully added to the segment. - ssSuccess ssState = iota - // Indicates a rune starts a new segment and should not be added. - ssStarter - // Indicates a rune caused a segment overflow and a CGJ should be inserted. - ssOverflow -) - -// streamSafe implements the policy of when a CGJ should be inserted. -type streamSafe uint8 - -// first inserts the first rune of a segment. It is a faster version of next if -// it is known p represents the first rune in a segment. -func (ss *streamSafe) first(p Properties) { - *ss = streamSafe(p.nTrailingNonStarters()) -} - -// insert returns a ssState value to indicate whether a rune represented by p -// can be inserted. -func (ss *streamSafe) next(p Properties) ssState { - if *ss > maxNonStarters { - panic("streamSafe was not reset") - } - n := p.nLeadingNonStarters() - if *ss += streamSafe(n); *ss > maxNonStarters { - *ss = 0 - return ssOverflow - } - // The Stream-Safe Text Processing prescribes that the counting can stop - // as soon as a starter is encountered. However, there are some starters, - // like Jamo V and T, that can combine with other runes, leaving their - // successive non-starters appended to the previous, possibly causing an - // overflow. We will therefore consider any rune with a non-zero nLead to - // be a non-starter. Note that it always hold that if nLead > 0 then - // nLead == nTrail. - if n == 0 { - *ss = streamSafe(p.nTrailingNonStarters()) - return ssStarter - } - return ssSuccess -} - -// backwards is used for checking for overflow and segment starts -// when traversing a string backwards. Users do not need to call first -// for the first rune. The state of the streamSafe retains the count of -// the non-starters loaded. -func (ss *streamSafe) backwards(p Properties) ssState { - if *ss > maxNonStarters { - panic("streamSafe was not reset") - } - c := *ss + streamSafe(p.nTrailingNonStarters()) - if c > maxNonStarters { - return ssOverflow - } - *ss = c - if p.nLeadingNonStarters() == 0 { - return ssStarter - } - return ssSuccess -} - -func (ss streamSafe) isMax() bool { - return ss == maxNonStarters -} - -// GraphemeJoiner is inserted after maxNonStarters non-starter runes. -const GraphemeJoiner = "\u034F" - -// reorderBuffer is used to normalize a single segment. Characters inserted with -// insert are decomposed and reordered based on CCC. The compose method can -// be used to recombine characters. Note that the byte buffer does not hold -// the UTF-8 characters in order. Only the rune array is maintained in sorted -// order. flush writes the resulting segment to a byte array. -type reorderBuffer struct { - rune [maxBufferSize]Properties // Per character info. - byte [maxByteBufferSize]byte // UTF-8 buffer. Referenced by runeInfo.pos. - nbyte uint8 // Number or bytes. - ss streamSafe // For limiting length of non-starter sequence. - nrune int // Number of runeInfos. - f formInfo - - src input - nsrc int - tmpBytes input - - out []byte - flushF func(*reorderBuffer) bool -} - -func (rb *reorderBuffer) init(f Form, src []byte) { - rb.f = *formTable[f] - rb.src.setBytes(src) - rb.nsrc = len(src) - rb.ss = 0 -} - -func (rb *reorderBuffer) initString(f Form, src string) { - rb.f = *formTable[f] - rb.src.setString(src) - rb.nsrc = len(src) - rb.ss = 0 -} - -func (rb *reorderBuffer) setFlusher(out []byte, f func(*reorderBuffer) bool) { - rb.out = out - rb.flushF = f -} - -// reset discards all characters from the buffer. -func (rb *reorderBuffer) reset() { - rb.nrune = 0 - rb.nbyte = 0 -} - -func (rb *reorderBuffer) doFlush() bool { - if rb.f.composing { - rb.compose() - } - res := rb.flushF(rb) - rb.reset() - return res -} - -// appendFlush appends the normalized segment to rb.out. -func appendFlush(rb *reorderBuffer) bool { - for i := 0; i < rb.nrune; i++ { - start := rb.rune[i].pos - end := start + rb.rune[i].size - rb.out = append(rb.out, rb.byte[start:end]...) - } - return true -} - -// flush appends the normalized segment to out and resets rb. -func (rb *reorderBuffer) flush(out []byte) []byte { - for i := 0; i < rb.nrune; i++ { - start := rb.rune[i].pos - end := start + rb.rune[i].size - out = append(out, rb.byte[start:end]...) - } - rb.reset() - return out -} - -// flushCopy copies the normalized segment to buf and resets rb. -// It returns the number of bytes written to buf. -func (rb *reorderBuffer) flushCopy(buf []byte) int { - p := 0 - for i := 0; i < rb.nrune; i++ { - runep := rb.rune[i] - p += copy(buf[p:], rb.byte[runep.pos:runep.pos+runep.size]) - } - rb.reset() - return p -} - -// insertOrdered inserts a rune in the buffer, ordered by Canonical Combining Class. -// It returns false if the buffer is not large enough to hold the rune. -// It is used internally by insert and insertString only. -func (rb *reorderBuffer) insertOrdered(info Properties) { - n := rb.nrune - b := rb.rune[:] - cc := info.ccc - if cc > 0 { - // Find insertion position + move elements to make room. - for ; n > 0; n-- { - if b[n-1].ccc <= cc { - break - } - b[n] = b[n-1] - } - } - rb.nrune += 1 - pos := uint8(rb.nbyte) - rb.nbyte += utf8.UTFMax - info.pos = pos - b[n] = info -} - -// insertErr is an error code returned by insert. Using this type instead -// of error improves performance up to 20% for many of the benchmarks. -type insertErr int - -const ( - iSuccess insertErr = -iota - iShortDst - iShortSrc -) - -// insertFlush inserts the given rune in the buffer ordered by CCC. -// If a decomposition with multiple segments are encountered, they leading -// ones are flushed. -// It returns a non-zero error code if the rune was not inserted. -func (rb *reorderBuffer) insertFlush(src input, i int, info Properties) insertErr { - if rune := src.hangul(i); rune != 0 { - rb.decomposeHangul(rune) - return iSuccess - } - if info.hasDecomposition() { - return rb.insertDecomposed(info.Decomposition()) - } - rb.insertSingle(src, i, info) - return iSuccess -} - -// insertUnsafe inserts the given rune in the buffer ordered by CCC. -// It is assumed there is sufficient space to hold the runes. It is the -// responsibility of the caller to ensure this. This can be done by checking -// the state returned by the streamSafe type. -func (rb *reorderBuffer) insertUnsafe(src input, i int, info Properties) { - if rune := src.hangul(i); rune != 0 { - rb.decomposeHangul(rune) - } - if info.hasDecomposition() { - // TODO: inline. - rb.insertDecomposed(info.Decomposition()) - } else { - rb.insertSingle(src, i, info) - } -} - -// insertDecomposed inserts an entry in to the reorderBuffer for each rune -// in dcomp. dcomp must be a sequence of decomposed UTF-8-encoded runes. -// It flushes the buffer on each new segment start. -func (rb *reorderBuffer) insertDecomposed(dcomp []byte) insertErr { - rb.tmpBytes.setBytes(dcomp) - // As the streamSafe accounting already handles the counting for modifiers, - // we don't have to call next. However, we do need to keep the accounting - // intact when flushing the buffer. - for i := 0; i < len(dcomp); { - info := rb.f.info(rb.tmpBytes, i) - if info.BoundaryBefore() && rb.nrune > 0 && !rb.doFlush() { - return iShortDst - } - i += copy(rb.byte[rb.nbyte:], dcomp[i:i+int(info.size)]) - rb.insertOrdered(info) - } - return iSuccess -} - -// insertSingle inserts an entry in the reorderBuffer for the rune at -// position i. info is the runeInfo for the rune at position i. -func (rb *reorderBuffer) insertSingle(src input, i int, info Properties) { - src.copySlice(rb.byte[rb.nbyte:], i, i+int(info.size)) - rb.insertOrdered(info) -} - -// insertCGJ inserts a Combining Grapheme Joiner (0x034f) into rb. -func (rb *reorderBuffer) insertCGJ() { - rb.insertSingle(input{str: GraphemeJoiner}, 0, Properties{size: uint8(len(GraphemeJoiner))}) -} - -// appendRune inserts a rune at the end of the buffer. It is used for Hangul. -func (rb *reorderBuffer) appendRune(r rune) { - bn := rb.nbyte - sz := utf8.EncodeRune(rb.byte[bn:], rune(r)) - rb.nbyte += utf8.UTFMax - rb.rune[rb.nrune] = Properties{pos: bn, size: uint8(sz)} - rb.nrune++ -} - -// assignRune sets a rune at position pos. It is used for Hangul and recomposition. -func (rb *reorderBuffer) assignRune(pos int, r rune) { - bn := rb.rune[pos].pos - sz := utf8.EncodeRune(rb.byte[bn:], rune(r)) - rb.rune[pos] = Properties{pos: bn, size: uint8(sz)} -} - -// runeAt returns the rune at position n. It is used for Hangul and recomposition. -func (rb *reorderBuffer) runeAt(n int) rune { - inf := rb.rune[n] - r, _ := utf8.DecodeRune(rb.byte[inf.pos : inf.pos+inf.size]) - return r -} - -// bytesAt returns the UTF-8 encoding of the rune at position n. -// It is used for Hangul and recomposition. -func (rb *reorderBuffer) bytesAt(n int) []byte { - inf := rb.rune[n] - return rb.byte[inf.pos : int(inf.pos)+int(inf.size)] -} - -// For Hangul we combine algorithmically, instead of using tables. -const ( - hangulBase = 0xAC00 // UTF-8(hangulBase) -> EA B0 80 - hangulBase0 = 0xEA - hangulBase1 = 0xB0 - hangulBase2 = 0x80 - - hangulEnd = hangulBase + jamoLVTCount // UTF-8(0xD7A4) -> ED 9E A4 - hangulEnd0 = 0xED - hangulEnd1 = 0x9E - hangulEnd2 = 0xA4 - - jamoLBase = 0x1100 // UTF-8(jamoLBase) -> E1 84 00 - jamoLBase0 = 0xE1 - jamoLBase1 = 0x84 - jamoLEnd = 0x1113 - jamoVBase = 0x1161 - jamoVEnd = 0x1176 - jamoTBase = 0x11A7 - jamoTEnd = 0x11C3 - - jamoTCount = 28 - jamoVCount = 21 - jamoVTCount = 21 * 28 - jamoLVTCount = 19 * 21 * 28 -) - -const hangulUTF8Size = 3 - -func isHangul(b []byte) bool { - if len(b) < hangulUTF8Size { - return false - } - b0 := b[0] - if b0 < hangulBase0 { - return false - } - b1 := b[1] - switch { - case b0 == hangulBase0: - return b1 >= hangulBase1 - case b0 < hangulEnd0: - return true - case b0 > hangulEnd0: - return false - case b1 < hangulEnd1: - return true - } - return b1 == hangulEnd1 && b[2] < hangulEnd2 -} - -func isHangulString(b string) bool { - if len(b) < hangulUTF8Size { - return false - } - b0 := b[0] - if b0 < hangulBase0 { - return false - } - b1 := b[1] - switch { - case b0 == hangulBase0: - return b1 >= hangulBase1 - case b0 < hangulEnd0: - return true - case b0 > hangulEnd0: - return false - case b1 < hangulEnd1: - return true - } - return b1 == hangulEnd1 && b[2] < hangulEnd2 -} - -// Caller must ensure len(b) >= 2. -func isJamoVT(b []byte) bool { - // True if (rune & 0xff00) == jamoLBase - return b[0] == jamoLBase0 && (b[1]&0xFC) == jamoLBase1 -} - -func isHangulWithoutJamoT(b []byte) bool { - c, _ := utf8.DecodeRune(b) - c -= hangulBase - return c < jamoLVTCount && c%jamoTCount == 0 -} - -// decomposeHangul writes the decomposed Hangul to buf and returns the number -// of bytes written. len(buf) should be at least 9. -func decomposeHangul(buf []byte, r rune) int { - const JamoUTF8Len = 3 - r -= hangulBase - x := r % jamoTCount - r /= jamoTCount - utf8.EncodeRune(buf, jamoLBase+r/jamoVCount) - utf8.EncodeRune(buf[JamoUTF8Len:], jamoVBase+r%jamoVCount) - if x != 0 { - utf8.EncodeRune(buf[2*JamoUTF8Len:], jamoTBase+x) - return 3 * JamoUTF8Len - } - return 2 * JamoUTF8Len -} - -// decomposeHangul algorithmically decomposes a Hangul rune into -// its Jamo components. -// See http://unicode.org/reports/tr15/#Hangul for details on decomposing Hangul. -func (rb *reorderBuffer) decomposeHangul(r rune) { - r -= hangulBase - x := r % jamoTCount - r /= jamoTCount - rb.appendRune(jamoLBase + r/jamoVCount) - rb.appendRune(jamoVBase + r%jamoVCount) - if x != 0 { - rb.appendRune(jamoTBase + x) - } -} - -// combineHangul algorithmically combines Jamo character components into Hangul. -// See http://unicode.org/reports/tr15/#Hangul for details on combining Hangul. -func (rb *reorderBuffer) combineHangul(s, i, k int) { - b := rb.rune[:] - bn := rb.nrune - for ; i < bn; i++ { - cccB := b[k-1].ccc - cccC := b[i].ccc - if cccB == 0 { - s = k - 1 - } - if s != k-1 && cccB >= cccC { - // b[i] is blocked by greater-equal cccX below it - b[k] = b[i] - k++ - } else { - l := rb.runeAt(s) // also used to compare to hangulBase - v := rb.runeAt(i) // also used to compare to jamoT - switch { - case jamoLBase <= l && l < jamoLEnd && - jamoVBase <= v && v < jamoVEnd: - // 11xx plus 116x to LV - rb.assignRune(s, hangulBase+ - (l-jamoLBase)*jamoVTCount+(v-jamoVBase)*jamoTCount) - case hangulBase <= l && l < hangulEnd && - jamoTBase < v && v < jamoTEnd && - ((l-hangulBase)%jamoTCount) == 0: - // ACxx plus 11Ax to LVT - rb.assignRune(s, l+v-jamoTBase) - default: - b[k] = b[i] - k++ - } - } - } - rb.nrune = k -} - -// compose recombines the runes in the buffer. -// It should only be used to recompose a single segment, as it will not -// handle alternations between Hangul and non-Hangul characters correctly. -func (rb *reorderBuffer) compose() { - // UAX #15, section X5 , including Corrigendum #5 - // "In any character sequence beginning with starter S, a character C is - // blocked from S if and only if there is some character B between S - // and C, and either B is a starter or it has the same or higher - // combining class as C." - bn := rb.nrune - if bn == 0 { - return - } - k := 1 - b := rb.rune[:] - for s, i := 0, 1; i < bn; i++ { - if isJamoVT(rb.bytesAt(i)) { - // Redo from start in Hangul mode. Necessary to support - // U+320E..U+321E in NFKC mode. - rb.combineHangul(s, i, k) - return - } - ii := b[i] - // We can only use combineForward as a filter if we later - // get the info for the combined character. This is more - // expensive than using the filter. Using combinesBackward() - // is safe. - if ii.combinesBackward() { - cccB := b[k-1].ccc - cccC := ii.ccc - blocked := false // b[i] blocked by starter or greater or equal CCC? - if cccB == 0 { - s = k - 1 - } else { - blocked = s != k-1 && cccB >= cccC - } - if !blocked { - combined := combine(rb.runeAt(s), rb.runeAt(i)) - if combined != 0 { - rb.assignRune(s, combined) - continue - } - } - } - b[k] = b[i] - k++ - } - rb.nrune = k -} diff --git a/vendor/golang.org/x/text/unicode/norm/forminfo.go b/vendor/golang.org/x/text/unicode/norm/forminfo.go deleted file mode 100644 index e67e765..0000000 --- a/vendor/golang.org/x/text/unicode/norm/forminfo.go +++ /dev/null @@ -1,259 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package norm - -// This file contains Form-specific logic and wrappers for data in tables.go. - -// Rune info is stored in a separate trie per composing form. A composing form -// and its corresponding decomposing form share the same trie. Each trie maps -// a rune to a uint16. The values take two forms. For v >= 0x8000: -// bits -// 15: 1 (inverse of NFD_QC bit of qcInfo) -// 13..7: qcInfo (see below). isYesD is always true (no decompostion). -// 6..0: ccc (compressed CCC value). -// For v < 0x8000, the respective rune has a decomposition and v is an index -// into a byte array of UTF-8 decomposition sequences and additional info and -// has the form: -//
* [ []] -// The header contains the number of bytes in the decomposition (excluding this -// length byte). The two most significant bits of this length byte correspond -// to bit 5 and 4 of qcInfo (see below). The byte sequence itself starts at v+1. -// The byte sequence is followed by a trailing and leading CCC if the values -// for these are not zero. The value of v determines which ccc are appended -// to the sequences. For v < firstCCC, there are none, for v >= firstCCC, -// the sequence is followed by a trailing ccc, and for v >= firstLeadingCC -// there is an additional leading ccc. The value of tccc itself is the -// trailing CCC shifted left 2 bits. The two least-significant bits of tccc -// are the number of trailing non-starters. - -const ( - qcInfoMask = 0x3F // to clear all but the relevant bits in a qcInfo - headerLenMask = 0x3F // extract the length value from the header byte - headerFlagsMask = 0xC0 // extract the qcInfo bits from the header byte -) - -// Properties provides access to normalization properties of a rune. -type Properties struct { - pos uint8 // start position in reorderBuffer; used in composition.go - size uint8 // length of UTF-8 encoding of this rune - ccc uint8 // leading canonical combining class (ccc if not decomposition) - tccc uint8 // trailing canonical combining class (ccc if not decomposition) - nLead uint8 // number of leading non-starters. - flags qcInfo // quick check flags - index uint16 -} - -// functions dispatchable per form -type lookupFunc func(b input, i int) Properties - -// formInfo holds Form-specific functions and tables. -type formInfo struct { - form Form - composing, compatibility bool // form type - info lookupFunc - nextMain iterFunc -} - -var formTable = []*formInfo{{ - form: NFC, - composing: true, - compatibility: false, - info: lookupInfoNFC, - nextMain: nextComposed, -}, { - form: NFD, - composing: false, - compatibility: false, - info: lookupInfoNFC, - nextMain: nextDecomposed, -}, { - form: NFKC, - composing: true, - compatibility: true, - info: lookupInfoNFKC, - nextMain: nextComposed, -}, { - form: NFKD, - composing: false, - compatibility: true, - info: lookupInfoNFKC, - nextMain: nextDecomposed, -}} - -// We do not distinguish between boundaries for NFC, NFD, etc. to avoid -// unexpected behavior for the user. For example, in NFD, there is a boundary -// after 'a'. However, 'a' might combine with modifiers, so from the application's -// perspective it is not a good boundary. We will therefore always use the -// boundaries for the combining variants. - -// BoundaryBefore returns true if this rune starts a new segment and -// cannot combine with any rune on the left. -func (p Properties) BoundaryBefore() bool { - if p.ccc == 0 && !p.combinesBackward() { - return true - } - // We assume that the CCC of the first character in a decomposition - // is always non-zero if different from info.ccc and that we can return - // false at this point. This is verified by maketables. - return false -} - -// BoundaryAfter returns true if runes cannot combine with or otherwise -// interact with this or previous runes. -func (p Properties) BoundaryAfter() bool { - // TODO: loosen these conditions. - return p.isInert() -} - -// We pack quick check data in 4 bits: -// 5: Combines forward (0 == false, 1 == true) -// 4..3: NFC_QC Yes(00), No (10), or Maybe (11) -// 2: NFD_QC Yes (0) or No (1). No also means there is a decomposition. -// 1..0: Number of trailing non-starters. -// -// When all 4 bits are zero, the character is inert, meaning it is never -// influenced by normalization. -type qcInfo uint8 - -func (p Properties) isYesC() bool { return p.flags&0x10 == 0 } -func (p Properties) isYesD() bool { return p.flags&0x4 == 0 } - -func (p Properties) combinesForward() bool { return p.flags&0x20 != 0 } -func (p Properties) combinesBackward() bool { return p.flags&0x8 != 0 } // == isMaybe -func (p Properties) hasDecomposition() bool { return p.flags&0x4 != 0 } // == isNoD - -func (p Properties) isInert() bool { - return p.flags&qcInfoMask == 0 && p.ccc == 0 -} - -func (p Properties) multiSegment() bool { - return p.index >= firstMulti && p.index < endMulti -} - -func (p Properties) nLeadingNonStarters() uint8 { - return p.nLead -} - -func (p Properties) nTrailingNonStarters() uint8 { - return uint8(p.flags & 0x03) -} - -// Decomposition returns the decomposition for the underlying rune -// or nil if there is none. -func (p Properties) Decomposition() []byte { - // TODO: create the decomposition for Hangul? - if p.index == 0 { - return nil - } - i := p.index - n := decomps[i] & headerLenMask - i++ - return decomps[i : i+uint16(n)] -} - -// Size returns the length of UTF-8 encoding of the rune. -func (p Properties) Size() int { - return int(p.size) -} - -// CCC returns the canonical combining class of the underlying rune. -func (p Properties) CCC() uint8 { - if p.index >= firstCCCZeroExcept { - return 0 - } - return ccc[p.ccc] -} - -// LeadCCC returns the CCC of the first rune in the decomposition. -// If there is no decomposition, LeadCCC equals CCC. -func (p Properties) LeadCCC() uint8 { - return ccc[p.ccc] -} - -// TrailCCC returns the CCC of the last rune in the decomposition. -// If there is no decomposition, TrailCCC equals CCC. -func (p Properties) TrailCCC() uint8 { - return ccc[p.tccc] -} - -// Recomposition -// We use 32-bit keys instead of 64-bit for the two codepoint keys. -// This clips off the bits of three entries, but we know this will not -// result in a collision. In the unlikely event that changes to -// UnicodeData.txt introduce collisions, the compiler will catch it. -// Note that the recomposition map for NFC and NFKC are identical. - -// combine returns the combined rune or 0 if it doesn't exist. -func combine(a, b rune) rune { - key := uint32(uint16(a))<<16 + uint32(uint16(b)) - return recompMap[key] -} - -func lookupInfoNFC(b input, i int) Properties { - v, sz := b.charinfoNFC(i) - return compInfo(v, sz) -} - -func lookupInfoNFKC(b input, i int) Properties { - v, sz := b.charinfoNFKC(i) - return compInfo(v, sz) -} - -// Properties returns properties for the first rune in s. -func (f Form) Properties(s []byte) Properties { - if f == NFC || f == NFD { - return compInfo(nfcData.lookup(s)) - } - return compInfo(nfkcData.lookup(s)) -} - -// PropertiesString returns properties for the first rune in s. -func (f Form) PropertiesString(s string) Properties { - if f == NFC || f == NFD { - return compInfo(nfcData.lookupString(s)) - } - return compInfo(nfkcData.lookupString(s)) -} - -// compInfo converts the information contained in v and sz -// to a Properties. See the comment at the top of the file -// for more information on the format. -func compInfo(v uint16, sz int) Properties { - if v == 0 { - return Properties{size: uint8(sz)} - } else if v >= 0x8000 { - p := Properties{ - size: uint8(sz), - ccc: uint8(v), - tccc: uint8(v), - flags: qcInfo(v >> 8), - } - if p.ccc > 0 || p.combinesBackward() { - p.nLead = uint8(p.flags & 0x3) - } - return p - } - // has decomposition - h := decomps[v] - f := (qcInfo(h&headerFlagsMask) >> 2) | 0x4 - p := Properties{size: uint8(sz), flags: f, index: v} - if v >= firstCCC { - v += uint16(h&headerLenMask) + 1 - c := decomps[v] - p.tccc = c >> 2 - p.flags |= qcInfo(c & 0x3) - if v >= firstLeadingCCC { - p.nLead = c & 0x3 - if v >= firstStarterWithNLead { - // We were tricked. Remove the decomposition. - p.flags &= 0x03 - p.index = 0 - return p - } - p.ccc = decomps[v+1] - } - } - return p -} diff --git a/vendor/golang.org/x/text/unicode/norm/input.go b/vendor/golang.org/x/text/unicode/norm/input.go deleted file mode 100644 index 479e35b..0000000 --- a/vendor/golang.org/x/text/unicode/norm/input.go +++ /dev/null @@ -1,109 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package norm - -import "unicode/utf8" - -type input struct { - str string - bytes []byte -} - -func inputBytes(str []byte) input { - return input{bytes: str} -} - -func inputString(str string) input { - return input{str: str} -} - -func (in *input) setBytes(str []byte) { - in.str = "" - in.bytes = str -} - -func (in *input) setString(str string) { - in.str = str - in.bytes = nil -} - -func (in *input) _byte(p int) byte { - if in.bytes == nil { - return in.str[p] - } - return in.bytes[p] -} - -func (in *input) skipASCII(p, max int) int { - if in.bytes == nil { - for ; p < max && in.str[p] < utf8.RuneSelf; p++ { - } - } else { - for ; p < max && in.bytes[p] < utf8.RuneSelf; p++ { - } - } - return p -} - -func (in *input) skipContinuationBytes(p int) int { - if in.bytes == nil { - for ; p < len(in.str) && !utf8.RuneStart(in.str[p]); p++ { - } - } else { - for ; p < len(in.bytes) && !utf8.RuneStart(in.bytes[p]); p++ { - } - } - return p -} - -func (in *input) appendSlice(buf []byte, b, e int) []byte { - if in.bytes != nil { - return append(buf, in.bytes[b:e]...) - } - for i := b; i < e; i++ { - buf = append(buf, in.str[i]) - } - return buf -} - -func (in *input) copySlice(buf []byte, b, e int) int { - if in.bytes == nil { - return copy(buf, in.str[b:e]) - } - return copy(buf, in.bytes[b:e]) -} - -func (in *input) charinfoNFC(p int) (uint16, int) { - if in.bytes == nil { - return nfcData.lookupString(in.str[p:]) - } - return nfcData.lookup(in.bytes[p:]) -} - -func (in *input) charinfoNFKC(p int) (uint16, int) { - if in.bytes == nil { - return nfkcData.lookupString(in.str[p:]) - } - return nfkcData.lookup(in.bytes[p:]) -} - -func (in *input) hangul(p int) (r rune) { - var size int - if in.bytes == nil { - if !isHangulString(in.str[p:]) { - return 0 - } - r, size = utf8.DecodeRuneInString(in.str[p:]) - } else { - if !isHangul(in.bytes[p:]) { - return 0 - } - r, size = utf8.DecodeRune(in.bytes[p:]) - } - if size != hangulUTF8Size { - return 0 - } - return r -} diff --git a/vendor/golang.org/x/text/unicode/norm/iter.go b/vendor/golang.org/x/text/unicode/norm/iter.go deleted file mode 100644 index ce17f96..0000000 --- a/vendor/golang.org/x/text/unicode/norm/iter.go +++ /dev/null @@ -1,457 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package norm - -import ( - "fmt" - "unicode/utf8" -) - -// MaxSegmentSize is the maximum size of a byte buffer needed to consider any -// sequence of starter and non-starter runes for the purpose of normalization. -const MaxSegmentSize = maxByteBufferSize - -// An Iter iterates over a string or byte slice, while normalizing it -// to a given Form. -type Iter struct { - rb reorderBuffer - buf [maxByteBufferSize]byte - info Properties // first character saved from previous iteration - next iterFunc // implementation of next depends on form - asciiF iterFunc - - p int // current position in input source - multiSeg []byte // remainder of multi-segment decomposition -} - -type iterFunc func(*Iter) []byte - -// Init initializes i to iterate over src after normalizing it to Form f. -func (i *Iter) Init(f Form, src []byte) { - i.p = 0 - if len(src) == 0 { - i.setDone() - i.rb.nsrc = 0 - return - } - i.multiSeg = nil - i.rb.init(f, src) - i.next = i.rb.f.nextMain - i.asciiF = nextASCIIBytes - i.info = i.rb.f.info(i.rb.src, i.p) - i.rb.ss.first(i.info) -} - -// InitString initializes i to iterate over src after normalizing it to Form f. -func (i *Iter) InitString(f Form, src string) { - i.p = 0 - if len(src) == 0 { - i.setDone() - i.rb.nsrc = 0 - return - } - i.multiSeg = nil - i.rb.initString(f, src) - i.next = i.rb.f.nextMain - i.asciiF = nextASCIIString - i.info = i.rb.f.info(i.rb.src, i.p) - i.rb.ss.first(i.info) -} - -// Seek sets the segment to be returned by the next call to Next to start -// at position p. It is the responsibility of the caller to set p to the -// start of a segment. -func (i *Iter) Seek(offset int64, whence int) (int64, error) { - var abs int64 - switch whence { - case 0: - abs = offset - case 1: - abs = int64(i.p) + offset - case 2: - abs = int64(i.rb.nsrc) + offset - default: - return 0, fmt.Errorf("norm: invalid whence") - } - if abs < 0 { - return 0, fmt.Errorf("norm: negative position") - } - if int(abs) >= i.rb.nsrc { - i.setDone() - return int64(i.p), nil - } - i.p = int(abs) - i.multiSeg = nil - i.next = i.rb.f.nextMain - i.info = i.rb.f.info(i.rb.src, i.p) - i.rb.ss.first(i.info) - return abs, nil -} - -// returnSlice returns a slice of the underlying input type as a byte slice. -// If the underlying is of type []byte, it will simply return a slice. -// If the underlying is of type string, it will copy the slice to the buffer -// and return that. -func (i *Iter) returnSlice(a, b int) []byte { - if i.rb.src.bytes == nil { - return i.buf[:copy(i.buf[:], i.rb.src.str[a:b])] - } - return i.rb.src.bytes[a:b] -} - -// Pos returns the byte position at which the next call to Next will commence processing. -func (i *Iter) Pos() int { - return i.p -} - -func (i *Iter) setDone() { - i.next = nextDone - i.p = i.rb.nsrc -} - -// Done returns true if there is no more input to process. -func (i *Iter) Done() bool { - return i.p >= i.rb.nsrc -} - -// Next returns f(i.input[i.Pos():n]), where n is a boundary of i.input. -// For any input a and b for which f(a) == f(b), subsequent calls -// to Next will return the same segments. -// Modifying runes are grouped together with the preceding starter, if such a starter exists. -// Although not guaranteed, n will typically be the smallest possible n. -func (i *Iter) Next() []byte { - return i.next(i) -} - -func nextASCIIBytes(i *Iter) []byte { - p := i.p + 1 - if p >= i.rb.nsrc { - i.setDone() - return i.rb.src.bytes[i.p:p] - } - if i.rb.src.bytes[p] < utf8.RuneSelf { - p0 := i.p - i.p = p - return i.rb.src.bytes[p0:p] - } - i.info = i.rb.f.info(i.rb.src, i.p) - i.next = i.rb.f.nextMain - return i.next(i) -} - -func nextASCIIString(i *Iter) []byte { - p := i.p + 1 - if p >= i.rb.nsrc { - i.buf[0] = i.rb.src.str[i.p] - i.setDone() - return i.buf[:1] - } - if i.rb.src.str[p] < utf8.RuneSelf { - i.buf[0] = i.rb.src.str[i.p] - i.p = p - return i.buf[:1] - } - i.info = i.rb.f.info(i.rb.src, i.p) - i.next = i.rb.f.nextMain - return i.next(i) -} - -func nextHangul(i *Iter) []byte { - p := i.p - next := p + hangulUTF8Size - if next >= i.rb.nsrc { - i.setDone() - } else if i.rb.src.hangul(next) == 0 { - i.rb.ss.next(i.info) - i.info = i.rb.f.info(i.rb.src, i.p) - i.next = i.rb.f.nextMain - return i.next(i) - } - i.p = next - return i.buf[:decomposeHangul(i.buf[:], i.rb.src.hangul(p))] -} - -func nextDone(i *Iter) []byte { - return nil -} - -// nextMulti is used for iterating over multi-segment decompositions -// for decomposing normal forms. -func nextMulti(i *Iter) []byte { - j := 0 - d := i.multiSeg - // skip first rune - for j = 1; j < len(d) && !utf8.RuneStart(d[j]); j++ { - } - for j < len(d) { - info := i.rb.f.info(input{bytes: d}, j) - if info.BoundaryBefore() { - i.multiSeg = d[j:] - return d[:j] - } - j += int(info.size) - } - // treat last segment as normal decomposition - i.next = i.rb.f.nextMain - return i.next(i) -} - -// nextMultiNorm is used for iterating over multi-segment decompositions -// for composing normal forms. -func nextMultiNorm(i *Iter) []byte { - j := 0 - d := i.multiSeg - for j < len(d) { - info := i.rb.f.info(input{bytes: d}, j) - if info.BoundaryBefore() { - i.rb.compose() - seg := i.buf[:i.rb.flushCopy(i.buf[:])] - i.rb.insertUnsafe(input{bytes: d}, j, info) - i.multiSeg = d[j+int(info.size):] - return seg - } - i.rb.insertUnsafe(input{bytes: d}, j, info) - j += int(info.size) - } - i.multiSeg = nil - i.next = nextComposed - return doNormComposed(i) -} - -// nextDecomposed is the implementation of Next for forms NFD and NFKD. -func nextDecomposed(i *Iter) (next []byte) { - outp := 0 - inCopyStart, outCopyStart := i.p, 0 - for { - if sz := int(i.info.size); sz <= 1 { - i.rb.ss = 0 - p := i.p - i.p++ // ASCII or illegal byte. Either way, advance by 1. - if i.p >= i.rb.nsrc { - i.setDone() - return i.returnSlice(p, i.p) - } else if i.rb.src._byte(i.p) < utf8.RuneSelf { - i.next = i.asciiF - return i.returnSlice(p, i.p) - } - outp++ - } else if d := i.info.Decomposition(); d != nil { - // Note: If leading CCC != 0, then len(d) == 2 and last is also non-zero. - // Case 1: there is a leftover to copy. In this case the decomposition - // must begin with a modifier and should always be appended. - // Case 2: no leftover. Simply return d if followed by a ccc == 0 value. - p := outp + len(d) - if outp > 0 { - i.rb.src.copySlice(i.buf[outCopyStart:], inCopyStart, i.p) - // TODO: this condition should not be possible, but we leave it - // in for defensive purposes. - if p > len(i.buf) { - return i.buf[:outp] - } - } else if i.info.multiSegment() { - // outp must be 0 as multi-segment decompositions always - // start a new segment. - if i.multiSeg == nil { - i.multiSeg = d - i.next = nextMulti - return nextMulti(i) - } - // We are in the last segment. Treat as normal decomposition. - d = i.multiSeg - i.multiSeg = nil - p = len(d) - } - prevCC := i.info.tccc - if i.p += sz; i.p >= i.rb.nsrc { - i.setDone() - i.info = Properties{} // Force BoundaryBefore to succeed. - } else { - i.info = i.rb.f.info(i.rb.src, i.p) - } - switch i.rb.ss.next(i.info) { - case ssOverflow: - i.next = nextCGJDecompose - fallthrough - case ssStarter: - if outp > 0 { - copy(i.buf[outp:], d) - return i.buf[:p] - } - return d - } - copy(i.buf[outp:], d) - outp = p - inCopyStart, outCopyStart = i.p, outp - if i.info.ccc < prevCC { - goto doNorm - } - continue - } else if r := i.rb.src.hangul(i.p); r != 0 { - outp = decomposeHangul(i.buf[:], r) - i.p += hangulUTF8Size - inCopyStart, outCopyStart = i.p, outp - if i.p >= i.rb.nsrc { - i.setDone() - break - } else if i.rb.src.hangul(i.p) != 0 { - i.next = nextHangul - return i.buf[:outp] - } - } else { - p := outp + sz - if p > len(i.buf) { - break - } - outp = p - i.p += sz - } - if i.p >= i.rb.nsrc { - i.setDone() - break - } - prevCC := i.info.tccc - i.info = i.rb.f.info(i.rb.src, i.p) - if v := i.rb.ss.next(i.info); v == ssStarter { - break - } else if v == ssOverflow { - i.next = nextCGJDecompose - break - } - if i.info.ccc < prevCC { - goto doNorm - } - } - if outCopyStart == 0 { - return i.returnSlice(inCopyStart, i.p) - } else if inCopyStart < i.p { - i.rb.src.copySlice(i.buf[outCopyStart:], inCopyStart, i.p) - } - return i.buf[:outp] -doNorm: - // Insert what we have decomposed so far in the reorderBuffer. - // As we will only reorder, there will always be enough room. - i.rb.src.copySlice(i.buf[outCopyStart:], inCopyStart, i.p) - i.rb.insertDecomposed(i.buf[0:outp]) - return doNormDecomposed(i) -} - -func doNormDecomposed(i *Iter) []byte { - for { - i.rb.insertUnsafe(i.rb.src, i.p, i.info) - if i.p += int(i.info.size); i.p >= i.rb.nsrc { - i.setDone() - break - } - i.info = i.rb.f.info(i.rb.src, i.p) - if i.info.ccc == 0 { - break - } - if s := i.rb.ss.next(i.info); s == ssOverflow { - i.next = nextCGJDecompose - break - } - } - // new segment or too many combining characters: exit normalization - return i.buf[:i.rb.flushCopy(i.buf[:])] -} - -func nextCGJDecompose(i *Iter) []byte { - i.rb.ss = 0 - i.rb.insertCGJ() - i.next = nextDecomposed - i.rb.ss.first(i.info) - buf := doNormDecomposed(i) - return buf -} - -// nextComposed is the implementation of Next for forms NFC and NFKC. -func nextComposed(i *Iter) []byte { - outp, startp := 0, i.p - var prevCC uint8 - for { - if !i.info.isYesC() { - goto doNorm - } - prevCC = i.info.tccc - sz := int(i.info.size) - if sz == 0 { - sz = 1 // illegal rune: copy byte-by-byte - } - p := outp + sz - if p > len(i.buf) { - break - } - outp = p - i.p += sz - if i.p >= i.rb.nsrc { - i.setDone() - break - } else if i.rb.src._byte(i.p) < utf8.RuneSelf { - i.rb.ss = 0 - i.next = i.asciiF - break - } - i.info = i.rb.f.info(i.rb.src, i.p) - if v := i.rb.ss.next(i.info); v == ssStarter { - break - } else if v == ssOverflow { - i.next = nextCGJCompose - break - } - if i.info.ccc < prevCC { - goto doNorm - } - } - return i.returnSlice(startp, i.p) -doNorm: - // reset to start position - i.p = startp - i.info = i.rb.f.info(i.rb.src, i.p) - i.rb.ss.first(i.info) - if i.info.multiSegment() { - d := i.info.Decomposition() - info := i.rb.f.info(input{bytes: d}, 0) - i.rb.insertUnsafe(input{bytes: d}, 0, info) - i.multiSeg = d[int(info.size):] - i.next = nextMultiNorm - return nextMultiNorm(i) - } - i.rb.ss.first(i.info) - i.rb.insertUnsafe(i.rb.src, i.p, i.info) - return doNormComposed(i) -} - -func doNormComposed(i *Iter) []byte { - // First rune should already be inserted. - for { - if i.p += int(i.info.size); i.p >= i.rb.nsrc { - i.setDone() - break - } - i.info = i.rb.f.info(i.rb.src, i.p) - if s := i.rb.ss.next(i.info); s == ssStarter { - break - } else if s == ssOverflow { - i.next = nextCGJCompose - break - } - i.rb.insertUnsafe(i.rb.src, i.p, i.info) - } - i.rb.compose() - seg := i.buf[:i.rb.flushCopy(i.buf[:])] - return seg -} - -func nextCGJCompose(i *Iter) []byte { - i.rb.ss = 0 // instead of first - i.rb.insertCGJ() - i.next = nextComposed - // Note that we treat any rune with nLeadingNonStarters > 0 as a non-starter, - // even if they are not. This is particularly dubious for U+FF9E and UFF9A. - // If we ever change that, insert a check here. - i.rb.ss.first(i.info) - i.rb.insertUnsafe(i.rb.src, i.p, i.info) - return doNormComposed(i) -} diff --git a/vendor/golang.org/x/text/unicode/norm/maketables.go b/vendor/golang.org/x/text/unicode/norm/maketables.go deleted file mode 100644 index 8d41816..0000000 --- a/vendor/golang.org/x/text/unicode/norm/maketables.go +++ /dev/null @@ -1,976 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -// Normalization table generator. -// Data read from the web. -// See forminfo.go for a description of the trie values associated with each rune. - -package main - -import ( - "bytes" - "flag" - "fmt" - "io" - "log" - "sort" - "strconv" - "strings" - - "golang.org/x/text/internal/gen" - "golang.org/x/text/internal/triegen" - "golang.org/x/text/internal/ucd" -) - -func main() { - gen.Init() - loadUnicodeData() - compactCCC() - loadCompositionExclusions() - completeCharFields(FCanonical) - completeCharFields(FCompatibility) - computeNonStarterCounts() - verifyComputed() - printChars() - testDerived() - printTestdata() - makeTables() -} - -var ( - tablelist = flag.String("tables", - "all", - "comma-separated list of which tables to generate; "+ - "can be 'decomp', 'recomp', 'info' and 'all'") - test = flag.Bool("test", - false, - "test existing tables against DerivedNormalizationProps and generate test data for regression testing") - verbose = flag.Bool("verbose", - false, - "write data to stdout as it is parsed") -) - -const MaxChar = 0x10FFFF // anything above this shouldn't exist - -// Quick Check properties of runes allow us to quickly -// determine whether a rune may occur in a normal form. -// For a given normal form, a rune may be guaranteed to occur -// verbatim (QC=Yes), may or may not combine with another -// rune (QC=Maybe), or may not occur (QC=No). -type QCResult int - -const ( - QCUnknown QCResult = iota - QCYes - QCNo - QCMaybe -) - -func (r QCResult) String() string { - switch r { - case QCYes: - return "Yes" - case QCNo: - return "No" - case QCMaybe: - return "Maybe" - } - return "***UNKNOWN***" -} - -const ( - FCanonical = iota // NFC or NFD - FCompatibility // NFKC or NFKD - FNumberOfFormTypes -) - -const ( - MComposed = iota // NFC or NFKC - MDecomposed // NFD or NFKD - MNumberOfModes -) - -// This contains only the properties we're interested in. -type Char struct { - name string - codePoint rune // if zero, this index is not a valid code point. - ccc uint8 // canonical combining class - origCCC uint8 - excludeInComp bool // from CompositionExclusions.txt - compatDecomp bool // it has a compatibility expansion - - nTrailingNonStarters uint8 - nLeadingNonStarters uint8 // must be equal to trailing if non-zero - - forms [FNumberOfFormTypes]FormInfo // For FCanonical and FCompatibility - - state State -} - -var chars = make([]Char, MaxChar+1) -var cccMap = make(map[uint8]uint8) - -func (c Char) String() string { - buf := new(bytes.Buffer) - - fmt.Fprintf(buf, "%U [%s]:\n", c.codePoint, c.name) - fmt.Fprintf(buf, " ccc: %v\n", c.ccc) - fmt.Fprintf(buf, " excludeInComp: %v\n", c.excludeInComp) - fmt.Fprintf(buf, " compatDecomp: %v\n", c.compatDecomp) - fmt.Fprintf(buf, " state: %v\n", c.state) - fmt.Fprintf(buf, " NFC:\n") - fmt.Fprint(buf, c.forms[FCanonical]) - fmt.Fprintf(buf, " NFKC:\n") - fmt.Fprint(buf, c.forms[FCompatibility]) - - return buf.String() -} - -// In UnicodeData.txt, some ranges are marked like this: -// 3400;;Lo;0;L;;;;;N;;;;; -// 4DB5;;Lo;0;L;;;;;N;;;;; -// parseCharacter keeps a state variable indicating the weirdness. -type State int - -const ( - SNormal State = iota // known to be zero for the type - SFirst - SLast - SMissing -) - -var lastChar = rune('\u0000') - -func (c Char) isValid() bool { - return c.codePoint != 0 && c.state != SMissing -} - -type FormInfo struct { - quickCheck [MNumberOfModes]QCResult // index: MComposed or MDecomposed - verified [MNumberOfModes]bool // index: MComposed or MDecomposed - - combinesForward bool // May combine with rune on the right - combinesBackward bool // May combine with rune on the left - isOneWay bool // Never appears in result - inDecomp bool // Some decompositions result in this char. - decomp Decomposition - expandedDecomp Decomposition -} - -func (f FormInfo) String() string { - buf := bytes.NewBuffer(make([]byte, 0)) - - fmt.Fprintf(buf, " quickCheck[C]: %v\n", f.quickCheck[MComposed]) - fmt.Fprintf(buf, " quickCheck[D]: %v\n", f.quickCheck[MDecomposed]) - fmt.Fprintf(buf, " cmbForward: %v\n", f.combinesForward) - fmt.Fprintf(buf, " cmbBackward: %v\n", f.combinesBackward) - fmt.Fprintf(buf, " isOneWay: %v\n", f.isOneWay) - fmt.Fprintf(buf, " inDecomp: %v\n", f.inDecomp) - fmt.Fprintf(buf, " decomposition: %X\n", f.decomp) - fmt.Fprintf(buf, " expandedDecomp: %X\n", f.expandedDecomp) - - return buf.String() -} - -type Decomposition []rune - -func parseDecomposition(s string, skipfirst bool) (a []rune, err error) { - decomp := strings.Split(s, " ") - if len(decomp) > 0 && skipfirst { - decomp = decomp[1:] - } - for _, d := range decomp { - point, err := strconv.ParseUint(d, 16, 64) - if err != nil { - return a, err - } - a = append(a, rune(point)) - } - return a, nil -} - -func loadUnicodeData() { - f := gen.OpenUCDFile("UnicodeData.txt") - defer f.Close() - p := ucd.New(f) - for p.Next() { - r := p.Rune(ucd.CodePoint) - char := &chars[r] - - char.ccc = uint8(p.Uint(ucd.CanonicalCombiningClass)) - decmap := p.String(ucd.DecompMapping) - - exp, err := parseDecomposition(decmap, false) - isCompat := false - if err != nil { - if len(decmap) > 0 { - exp, err = parseDecomposition(decmap, true) - if err != nil { - log.Fatalf(`%U: bad decomp |%v|: "%s"`, r, decmap, err) - } - isCompat = true - } - } - - char.name = p.String(ucd.Name) - char.codePoint = r - char.forms[FCompatibility].decomp = exp - if !isCompat { - char.forms[FCanonical].decomp = exp - } else { - char.compatDecomp = true - } - if len(decmap) > 0 { - char.forms[FCompatibility].decomp = exp - } - } - if err := p.Err(); err != nil { - log.Fatal(err) - } -} - -// compactCCC converts the sparse set of CCC values to a continguous one, -// reducing the number of bits needed from 8 to 6. -func compactCCC() { - m := make(map[uint8]uint8) - for i := range chars { - c := &chars[i] - m[c.ccc] = 0 - } - cccs := []int{} - for v, _ := range m { - cccs = append(cccs, int(v)) - } - sort.Ints(cccs) - for i, c := range cccs { - cccMap[uint8(i)] = uint8(c) - m[uint8(c)] = uint8(i) - } - for i := range chars { - c := &chars[i] - c.origCCC = c.ccc - c.ccc = m[c.ccc] - } - if len(m) >= 1<<6 { - log.Fatalf("too many difference CCC values: %d >= 64", len(m)) - } -} - -// CompositionExclusions.txt has form: -// 0958 # ... -// See http://unicode.org/reports/tr44/ for full explanation -func loadCompositionExclusions() { - f := gen.OpenUCDFile("CompositionExclusions.txt") - defer f.Close() - p := ucd.New(f) - for p.Next() { - c := &chars[p.Rune(0)] - if c.excludeInComp { - log.Fatalf("%U: Duplicate entry in exclusions.", c.codePoint) - } - c.excludeInComp = true - } - if e := p.Err(); e != nil { - log.Fatal(e) - } -} - -// hasCompatDecomp returns true if any of the recursive -// decompositions contains a compatibility expansion. -// In this case, the character may not occur in NFK*. -func hasCompatDecomp(r rune) bool { - c := &chars[r] - if c.compatDecomp { - return true - } - for _, d := range c.forms[FCompatibility].decomp { - if hasCompatDecomp(d) { - return true - } - } - return false -} - -// Hangul related constants. -const ( - HangulBase = 0xAC00 - HangulEnd = 0xD7A4 // hangulBase + Jamo combinations (19 * 21 * 28) - - JamoLBase = 0x1100 - JamoLEnd = 0x1113 - JamoVBase = 0x1161 - JamoVEnd = 0x1176 - JamoTBase = 0x11A8 - JamoTEnd = 0x11C3 - - JamoLVTCount = 19 * 21 * 28 - JamoTCount = 28 -) - -func isHangul(r rune) bool { - return HangulBase <= r && r < HangulEnd -} - -func isHangulWithoutJamoT(r rune) bool { - if !isHangul(r) { - return false - } - r -= HangulBase - return r < JamoLVTCount && r%JamoTCount == 0 -} - -func ccc(r rune) uint8 { - return chars[r].ccc -} - -// Insert a rune in a buffer, ordered by Canonical Combining Class. -func insertOrdered(b Decomposition, r rune) Decomposition { - n := len(b) - b = append(b, 0) - cc := ccc(r) - if cc > 0 { - // Use bubble sort. - for ; n > 0; n-- { - if ccc(b[n-1]) <= cc { - break - } - b[n] = b[n-1] - } - } - b[n] = r - return b -} - -// Recursively decompose. -func decomposeRecursive(form int, r rune, d Decomposition) Decomposition { - dcomp := chars[r].forms[form].decomp - if len(dcomp) == 0 { - return insertOrdered(d, r) - } - for _, c := range dcomp { - d = decomposeRecursive(form, c, d) - } - return d -} - -func completeCharFields(form int) { - // Phase 0: pre-expand decomposition. - for i := range chars { - f := &chars[i].forms[form] - if len(f.decomp) == 0 { - continue - } - exp := make(Decomposition, 0) - for _, c := range f.decomp { - exp = decomposeRecursive(form, c, exp) - } - f.expandedDecomp = exp - } - - // Phase 1: composition exclusion, mark decomposition. - for i := range chars { - c := &chars[i] - f := &c.forms[form] - - // Marks script-specific exclusions and version restricted. - f.isOneWay = c.excludeInComp - - // Singletons - f.isOneWay = f.isOneWay || len(f.decomp) == 1 - - // Non-starter decompositions - if len(f.decomp) > 1 { - chk := c.ccc != 0 || chars[f.decomp[0]].ccc != 0 - f.isOneWay = f.isOneWay || chk - } - - // Runes that decompose into more than two runes. - f.isOneWay = f.isOneWay || len(f.decomp) > 2 - - if form == FCompatibility { - f.isOneWay = f.isOneWay || hasCompatDecomp(c.codePoint) - } - - for _, r := range f.decomp { - chars[r].forms[form].inDecomp = true - } - } - - // Phase 2: forward and backward combining. - for i := range chars { - c := &chars[i] - f := &c.forms[form] - - if !f.isOneWay && len(f.decomp) == 2 { - f0 := &chars[f.decomp[0]].forms[form] - f1 := &chars[f.decomp[1]].forms[form] - if !f0.isOneWay { - f0.combinesForward = true - } - if !f1.isOneWay { - f1.combinesBackward = true - } - } - if isHangulWithoutJamoT(rune(i)) { - f.combinesForward = true - } - } - - // Phase 3: quick check values. - for i := range chars { - c := &chars[i] - f := &c.forms[form] - - switch { - case len(f.decomp) > 0: - f.quickCheck[MDecomposed] = QCNo - case isHangul(rune(i)): - f.quickCheck[MDecomposed] = QCNo - default: - f.quickCheck[MDecomposed] = QCYes - } - switch { - case f.isOneWay: - f.quickCheck[MComposed] = QCNo - case (i & 0xffff00) == JamoLBase: - f.quickCheck[MComposed] = QCYes - if JamoLBase <= i && i < JamoLEnd { - f.combinesForward = true - } - if JamoVBase <= i && i < JamoVEnd { - f.quickCheck[MComposed] = QCMaybe - f.combinesBackward = true - f.combinesForward = true - } - if JamoTBase <= i && i < JamoTEnd { - f.quickCheck[MComposed] = QCMaybe - f.combinesBackward = true - } - case !f.combinesBackward: - f.quickCheck[MComposed] = QCYes - default: - f.quickCheck[MComposed] = QCMaybe - } - } -} - -func computeNonStarterCounts() { - // Phase 4: leading and trailing non-starter count - for i := range chars { - c := &chars[i] - - runes := []rune{rune(i)} - // We always use FCompatibility so that the CGJ insertion points do not - // change for repeated normalizations with different forms. - if exp := c.forms[FCompatibility].expandedDecomp; len(exp) > 0 { - runes = exp - } - // We consider runes that combine backwards to be non-starters for the - // purpose of Stream-Safe Text Processing. - for _, r := range runes { - if cr := &chars[r]; cr.ccc == 0 && !cr.forms[FCompatibility].combinesBackward { - break - } - c.nLeadingNonStarters++ - } - for i := len(runes) - 1; i >= 0; i-- { - if cr := &chars[runes[i]]; cr.ccc == 0 && !cr.forms[FCompatibility].combinesBackward { - break - } - c.nTrailingNonStarters++ - } - if c.nTrailingNonStarters > 3 { - log.Fatalf("%U: Decomposition with more than 3 (%d) trailing modifiers (%U)", i, c.nTrailingNonStarters, runes) - } - - if isHangul(rune(i)) { - c.nTrailingNonStarters = 2 - if isHangulWithoutJamoT(rune(i)) { - c.nTrailingNonStarters = 1 - } - } - - if l, t := c.nLeadingNonStarters, c.nTrailingNonStarters; l > 0 && l != t { - log.Fatalf("%U: number of leading and trailing non-starters should be equal (%d vs %d)", i, l, t) - } - if t := c.nTrailingNonStarters; t > 3 { - log.Fatalf("%U: number of trailing non-starters is %d > 3", t) - } - } -} - -func printBytes(w io.Writer, b []byte, name string) { - fmt.Fprintf(w, "// %s: %d bytes\n", name, len(b)) - fmt.Fprintf(w, "var %s = [...]byte {", name) - for i, c := range b { - switch { - case i%64 == 0: - fmt.Fprintf(w, "\n// Bytes %x - %x\n", i, i+63) - case i%8 == 0: - fmt.Fprintf(w, "\n") - } - fmt.Fprintf(w, "0x%.2X, ", c) - } - fmt.Fprint(w, "\n}\n\n") -} - -// See forminfo.go for format. -func makeEntry(f *FormInfo, c *Char) uint16 { - e := uint16(0) - if r := c.codePoint; HangulBase <= r && r < HangulEnd { - e |= 0x40 - } - if f.combinesForward { - e |= 0x20 - } - if f.quickCheck[MDecomposed] == QCNo { - e |= 0x4 - } - switch f.quickCheck[MComposed] { - case QCYes: - case QCNo: - e |= 0x10 - case QCMaybe: - e |= 0x18 - default: - log.Fatalf("Illegal quickcheck value %v.", f.quickCheck[MComposed]) - } - e |= uint16(c.nTrailingNonStarters) - return e -} - -// decompSet keeps track of unique decompositions, grouped by whether -// the decomposition is followed by a trailing and/or leading CCC. -type decompSet [7]map[string]bool - -const ( - normalDecomp = iota - firstMulti - firstCCC - endMulti - firstLeadingCCC - firstCCCZeroExcept - firstStarterWithNLead - lastDecomp -) - -var cname = []string{"firstMulti", "firstCCC", "endMulti", "firstLeadingCCC", "firstCCCZeroExcept", "firstStarterWithNLead", "lastDecomp"} - -func makeDecompSet() decompSet { - m := decompSet{} - for i := range m { - m[i] = make(map[string]bool) - } - return m -} -func (m *decompSet) insert(key int, s string) { - m[key][s] = true -} - -func printCharInfoTables(w io.Writer) int { - mkstr := func(r rune, f *FormInfo) (int, string) { - d := f.expandedDecomp - s := string([]rune(d)) - if max := 1 << 6; len(s) >= max { - const msg = "%U: too many bytes in decomposition: %d >= %d" - log.Fatalf(msg, r, len(s), max) - } - head := uint8(len(s)) - if f.quickCheck[MComposed] != QCYes { - head |= 0x40 - } - if f.combinesForward { - head |= 0x80 - } - s = string([]byte{head}) + s - - lccc := ccc(d[0]) - tccc := ccc(d[len(d)-1]) - cc := ccc(r) - if cc != 0 && lccc == 0 && tccc == 0 { - log.Fatalf("%U: trailing and leading ccc are 0 for non-zero ccc %d", r, cc) - } - if tccc < lccc && lccc != 0 { - const msg = "%U: lccc (%d) must be <= tcc (%d)" - log.Fatalf(msg, r, lccc, tccc) - } - index := normalDecomp - nTrail := chars[r].nTrailingNonStarters - nLead := chars[r].nLeadingNonStarters - if tccc > 0 || lccc > 0 || nTrail > 0 { - tccc <<= 2 - tccc |= nTrail - s += string([]byte{tccc}) - index = endMulti - for _, r := range d[1:] { - if ccc(r) == 0 { - index = firstCCC - } - } - if lccc > 0 || nLead > 0 { - s += string([]byte{lccc}) - if index == firstCCC { - log.Fatalf("%U: multi-segment decomposition not supported for decompositions with leading CCC != 0", r) - } - index = firstLeadingCCC - } - if cc != lccc { - if cc != 0 { - log.Fatalf("%U: for lccc != ccc, expected ccc to be 0; was %d", r, cc) - } - index = firstCCCZeroExcept - } - } else if len(d) > 1 { - index = firstMulti - } - return index, s - } - - decompSet := makeDecompSet() - const nLeadStr = "\x00\x01" // 0-byte length and tccc with nTrail. - decompSet.insert(firstStarterWithNLead, nLeadStr) - - // Store the uniqued decompositions in a byte buffer, - // preceded by their byte length. - for _, c := range chars { - for _, f := range c.forms { - if len(f.expandedDecomp) == 0 { - continue - } - if f.combinesBackward { - log.Fatalf("%U: combinesBackward and decompose", c.codePoint) - } - index, s := mkstr(c.codePoint, &f) - decompSet.insert(index, s) - } - } - - decompositions := bytes.NewBuffer(make([]byte, 0, 10000)) - size := 0 - positionMap := make(map[string]uint16) - decompositions.WriteString("\000") - fmt.Fprintln(w, "const (") - for i, m := range decompSet { - sa := []string{} - for s := range m { - sa = append(sa, s) - } - sort.Strings(sa) - for _, s := range sa { - p := decompositions.Len() - decompositions.WriteString(s) - positionMap[s] = uint16(p) - } - if cname[i] != "" { - fmt.Fprintf(w, "%s = 0x%X\n", cname[i], decompositions.Len()) - } - } - fmt.Fprintln(w, "maxDecomp = 0x8000") - fmt.Fprintln(w, ")") - b := decompositions.Bytes() - printBytes(w, b, "decomps") - size += len(b) - - varnames := []string{"nfc", "nfkc"} - for i := 0; i < FNumberOfFormTypes; i++ { - trie := triegen.NewTrie(varnames[i]) - - for r, c := range chars { - f := c.forms[i] - d := f.expandedDecomp - if len(d) != 0 { - _, key := mkstr(c.codePoint, &f) - trie.Insert(rune(r), uint64(positionMap[key])) - if c.ccc != ccc(d[0]) { - // We assume the lead ccc of a decomposition !=0 in this case. - if ccc(d[0]) == 0 { - log.Fatalf("Expected leading CCC to be non-zero; ccc is %d", c.ccc) - } - } - } else if c.nLeadingNonStarters > 0 && len(f.expandedDecomp) == 0 && c.ccc == 0 && !f.combinesBackward { - // Handle cases where it can't be detected that the nLead should be equal - // to nTrail. - trie.Insert(c.codePoint, uint64(positionMap[nLeadStr])) - } else if v := makeEntry(&f, &c)<<8 | uint16(c.ccc); v != 0 { - trie.Insert(c.codePoint, uint64(0x8000|v)) - } - } - sz, err := trie.Gen(w, triegen.Compact(&normCompacter{name: varnames[i]})) - if err != nil { - log.Fatal(err) - } - size += sz - } - return size -} - -func contains(sa []string, s string) bool { - for _, a := range sa { - if a == s { - return true - } - } - return false -} - -func makeTables() { - w := &bytes.Buffer{} - - size := 0 - if *tablelist == "" { - return - } - list := strings.Split(*tablelist, ",") - if *tablelist == "all" { - list = []string{"recomp", "info"} - } - - // Compute maximum decomposition size. - max := 0 - for _, c := range chars { - if n := len(string(c.forms[FCompatibility].expandedDecomp)); n > max { - max = n - } - } - - fmt.Fprintln(w, "const (") - fmt.Fprintln(w, "\t// Version is the Unicode edition from which the tables are derived.") - fmt.Fprintf(w, "\tVersion = %q\n", gen.UnicodeVersion()) - fmt.Fprintln(w) - fmt.Fprintln(w, "\t// MaxTransformChunkSize indicates the maximum number of bytes that Transform") - fmt.Fprintln(w, "\t// may need to write atomically for any Form. Making a destination buffer at") - fmt.Fprintln(w, "\t// least this size ensures that Transform can always make progress and that") - fmt.Fprintln(w, "\t// the user does not need to grow the buffer on an ErrShortDst.") - fmt.Fprintf(w, "\tMaxTransformChunkSize = %d+maxNonStarters*4\n", len(string(0x034F))+max) - fmt.Fprintln(w, ")\n") - - // Print the CCC remap table. - size += len(cccMap) - fmt.Fprintf(w, "var ccc = [%d]uint8{", len(cccMap)) - for i := 0; i < len(cccMap); i++ { - if i%8 == 0 { - fmt.Fprintln(w) - } - fmt.Fprintf(w, "%3d, ", cccMap[uint8(i)]) - } - fmt.Fprintln(w, "\n}\n") - - if contains(list, "info") { - size += printCharInfoTables(w) - } - - if contains(list, "recomp") { - // Note that we use 32 bit keys, instead of 64 bit. - // This clips the bits of three entries, but we know - // this won't cause a collision. The compiler will catch - // any changes made to UnicodeData.txt that introduces - // a collision. - // Note that the recomposition map for NFC and NFKC - // are identical. - - // Recomposition map - nrentries := 0 - for _, c := range chars { - f := c.forms[FCanonical] - if !f.isOneWay && len(f.decomp) > 0 { - nrentries++ - } - } - sz := nrentries * 8 - size += sz - fmt.Fprintf(w, "// recompMap: %d bytes (entries only)\n", sz) - fmt.Fprintln(w, "var recompMap = map[uint32]rune{") - for i, c := range chars { - f := c.forms[FCanonical] - d := f.decomp - if !f.isOneWay && len(d) > 0 { - key := uint32(uint16(d[0]))<<16 + uint32(uint16(d[1])) - fmt.Fprintf(w, "0x%.8X: 0x%.4X,\n", key, i) - } - } - fmt.Fprintf(w, "}\n\n") - } - - fmt.Fprintf(w, "// Total size of tables: %dKB (%d bytes)\n", (size+512)/1024, size) - gen.WriteGoFile("tables.go", "norm", w.Bytes()) -} - -func printChars() { - if *verbose { - for _, c := range chars { - if !c.isValid() || c.state == SMissing { - continue - } - fmt.Println(c) - } - } -} - -// verifyComputed does various consistency tests. -func verifyComputed() { - for i, c := range chars { - for _, f := range c.forms { - isNo := (f.quickCheck[MDecomposed] == QCNo) - if (len(f.decomp) > 0) != isNo && !isHangul(rune(i)) { - log.Fatalf("%U: NF*D QC must be No if rune decomposes", i) - } - - isMaybe := f.quickCheck[MComposed] == QCMaybe - if f.combinesBackward != isMaybe { - log.Fatalf("%U: NF*C QC must be Maybe if combinesBackward", i) - } - if len(f.decomp) > 0 && f.combinesForward && isMaybe { - log.Fatalf("%U: NF*C QC must be Yes or No if combinesForward and decomposes", i) - } - - if len(f.expandedDecomp) != 0 { - continue - } - if a, b := c.nLeadingNonStarters > 0, (c.ccc > 0 || f.combinesBackward); a != b { - // We accept these runes to be treated differently (it only affects - // segment breaking in iteration, most likely on improper use), but - // reconsider if more characters are added. - // U+FF9E HALFWIDTH KATAKANA VOICED SOUND MARK;Lm;0;L; 3099;;;;N;;;;; - // U+FF9F HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK;Lm;0;L; 309A;;;;N;;;;; - // U+3133 HANGUL LETTER KIYEOK-SIOS;Lo;0;L; 11AA;;;;N;HANGUL LETTER GIYEOG SIOS;;;; - // U+318E HANGUL LETTER ARAEAE;Lo;0;L; 11A1;;;;N;HANGUL LETTER ALAE AE;;;; - // U+FFA3 HALFWIDTH HANGUL LETTER KIYEOK-SIOS;Lo;0;L; 3133;;;;N;HALFWIDTH HANGUL LETTER GIYEOG SIOS;;;; - // U+FFDC HALFWIDTH HANGUL LETTER I;Lo;0;L; 3163;;;;N;;;;; - if i != 0xFF9E && i != 0xFF9F && !(0x3133 <= i && i <= 0x318E) && !(0xFFA3 <= i && i <= 0xFFDC) { - log.Fatalf("%U: nLead was %v; want %v", i, a, b) - } - } - } - nfc := c.forms[FCanonical] - nfkc := c.forms[FCompatibility] - if nfc.combinesBackward != nfkc.combinesBackward { - log.Fatalf("%U: Cannot combine combinesBackward\n", c.codePoint) - } - } -} - -// Use values in DerivedNormalizationProps.txt to compare against the -// values we computed. -// DerivedNormalizationProps.txt has form: -// 00C0..00C5 ; NFD_QC; N # ... -// 0374 ; NFD_QC; N # ... -// See http://unicode.org/reports/tr44/ for full explanation -func testDerived() { - f := gen.OpenUCDFile("DerivedNormalizationProps.txt") - defer f.Close() - p := ucd.New(f) - for p.Next() { - r := p.Rune(0) - c := &chars[r] - - var ftype, mode int - qt := p.String(1) - switch qt { - case "NFC_QC": - ftype, mode = FCanonical, MComposed - case "NFD_QC": - ftype, mode = FCanonical, MDecomposed - case "NFKC_QC": - ftype, mode = FCompatibility, MComposed - case "NFKD_QC": - ftype, mode = FCompatibility, MDecomposed - default: - continue - } - var qr QCResult - switch p.String(2) { - case "Y": - qr = QCYes - case "N": - qr = QCNo - case "M": - qr = QCMaybe - default: - log.Fatalf(`Unexpected quick check value "%s"`, p.String(2)) - } - if got := c.forms[ftype].quickCheck[mode]; got != qr { - log.Printf("%U: FAILED %s (was %v need %v)\n", r, qt, got, qr) - } - c.forms[ftype].verified[mode] = true - } - if err := p.Err(); err != nil { - log.Fatal(err) - } - // Any unspecified value must be QCYes. Verify this. - for i, c := range chars { - for j, fd := range c.forms { - for k, qr := range fd.quickCheck { - if !fd.verified[k] && qr != QCYes { - m := "%U: FAIL F:%d M:%d (was %v need Yes) %s\n" - log.Printf(m, i, j, k, qr, c.name) - } - } - } - } -} - -var testHeader = `const ( - Yes = iota - No - Maybe -) - -type formData struct { - qc uint8 - combinesForward bool - decomposition string -} - -type runeData struct { - r rune - ccc uint8 - nLead uint8 - nTrail uint8 - f [2]formData // 0: canonical; 1: compatibility -} - -func f(qc uint8, cf bool, dec string) [2]formData { - return [2]formData{{qc, cf, dec}, {qc, cf, dec}} -} - -func g(qc, qck uint8, cf, cfk bool, d, dk string) [2]formData { - return [2]formData{{qc, cf, d}, {qck, cfk, dk}} -} - -var testData = []runeData{ -` - -func printTestdata() { - type lastInfo struct { - ccc uint8 - nLead uint8 - nTrail uint8 - f string - } - - last := lastInfo{} - w := &bytes.Buffer{} - fmt.Fprintf(w, testHeader) - for r, c := range chars { - f := c.forms[FCanonical] - qc, cf, d := f.quickCheck[MComposed], f.combinesForward, string(f.expandedDecomp) - f = c.forms[FCompatibility] - qck, cfk, dk := f.quickCheck[MComposed], f.combinesForward, string(f.expandedDecomp) - s := "" - if d == dk && qc == qck && cf == cfk { - s = fmt.Sprintf("f(%s, %v, %q)", qc, cf, d) - } else { - s = fmt.Sprintf("g(%s, %s, %v, %v, %q, %q)", qc, qck, cf, cfk, d, dk) - } - current := lastInfo{c.ccc, c.nLeadingNonStarters, c.nTrailingNonStarters, s} - if last != current { - fmt.Fprintf(w, "\t{0x%x, %d, %d, %d, %s},\n", r, c.origCCC, c.nLeadingNonStarters, c.nTrailingNonStarters, s) - last = current - } - } - fmt.Fprintln(w, "}") - gen.WriteGoFile("data_test.go", "norm", w.Bytes()) -} diff --git a/vendor/golang.org/x/text/unicode/norm/normalize.go b/vendor/golang.org/x/text/unicode/norm/normalize.go deleted file mode 100644 index e28ac64..0000000 --- a/vendor/golang.org/x/text/unicode/norm/normalize.go +++ /dev/null @@ -1,609 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Note: the file data_test.go that is generated should not be checked in. -//go:generate go run maketables.go triegen.go -//go:generate go test -tags test - -// Package norm contains types and functions for normalizing Unicode strings. -package norm // import "golang.org/x/text/unicode/norm" - -import ( - "unicode/utf8" - - "golang.org/x/text/transform" -) - -// A Form denotes a canonical representation of Unicode code points. -// The Unicode-defined normalization and equivalence forms are: -// -// NFC Unicode Normalization Form C -// NFD Unicode Normalization Form D -// NFKC Unicode Normalization Form KC -// NFKD Unicode Normalization Form KD -// -// For a Form f, this documentation uses the notation f(x) to mean -// the bytes or string x converted to the given form. -// A position n in x is called a boundary if conversion to the form can -// proceed independently on both sides: -// f(x) == append(f(x[0:n]), f(x[n:])...) -// -// References: http://unicode.org/reports/tr15/ and -// http://unicode.org/notes/tn5/. -type Form int - -const ( - NFC Form = iota - NFD - NFKC - NFKD -) - -// Bytes returns f(b). May return b if f(b) = b. -func (f Form) Bytes(b []byte) []byte { - src := inputBytes(b) - ft := formTable[f] - n, ok := ft.quickSpan(src, 0, len(b), true) - if ok { - return b - } - out := make([]byte, n, len(b)) - copy(out, b[0:n]) - rb := reorderBuffer{f: *ft, src: src, nsrc: len(b), out: out, flushF: appendFlush} - return doAppendInner(&rb, n) -} - -// String returns f(s). -func (f Form) String(s string) string { - src := inputString(s) - ft := formTable[f] - n, ok := ft.quickSpan(src, 0, len(s), true) - if ok { - return s - } - out := make([]byte, n, len(s)) - copy(out, s[0:n]) - rb := reorderBuffer{f: *ft, src: src, nsrc: len(s), out: out, flushF: appendFlush} - return string(doAppendInner(&rb, n)) -} - -// IsNormal returns true if b == f(b). -func (f Form) IsNormal(b []byte) bool { - src := inputBytes(b) - ft := formTable[f] - bp, ok := ft.quickSpan(src, 0, len(b), true) - if ok { - return true - } - rb := reorderBuffer{f: *ft, src: src, nsrc: len(b)} - rb.setFlusher(nil, cmpNormalBytes) - for bp < len(b) { - rb.out = b[bp:] - if bp = decomposeSegment(&rb, bp, true); bp < 0 { - return false - } - bp, _ = rb.f.quickSpan(rb.src, bp, len(b), true) - } - return true -} - -func cmpNormalBytes(rb *reorderBuffer) bool { - b := rb.out - for i := 0; i < rb.nrune; i++ { - info := rb.rune[i] - if int(info.size) > len(b) { - return false - } - p := info.pos - pe := p + info.size - for ; p < pe; p++ { - if b[0] != rb.byte[p] { - return false - } - b = b[1:] - } - } - return true -} - -// IsNormalString returns true if s == f(s). -func (f Form) IsNormalString(s string) bool { - src := inputString(s) - ft := formTable[f] - bp, ok := ft.quickSpan(src, 0, len(s), true) - if ok { - return true - } - rb := reorderBuffer{f: *ft, src: src, nsrc: len(s)} - rb.setFlusher(nil, func(rb *reorderBuffer) bool { - for i := 0; i < rb.nrune; i++ { - info := rb.rune[i] - if bp+int(info.size) > len(s) { - return false - } - p := info.pos - pe := p + info.size - for ; p < pe; p++ { - if s[bp] != rb.byte[p] { - return false - } - bp++ - } - } - return true - }) - for bp < len(s) { - if bp = decomposeSegment(&rb, bp, true); bp < 0 { - return false - } - bp, _ = rb.f.quickSpan(rb.src, bp, len(s), true) - } - return true -} - -// patchTail fixes a case where a rune may be incorrectly normalized -// if it is followed by illegal continuation bytes. It returns the -// patched buffer and whether the decomposition is still in progress. -func patchTail(rb *reorderBuffer) bool { - info, p := lastRuneStart(&rb.f, rb.out) - if p == -1 || info.size == 0 { - return true - } - end := p + int(info.size) - extra := len(rb.out) - end - if extra > 0 { - // Potentially allocating memory. However, this only - // happens with ill-formed UTF-8. - x := make([]byte, 0) - x = append(x, rb.out[len(rb.out)-extra:]...) - rb.out = rb.out[:end] - decomposeToLastBoundary(rb) - rb.doFlush() - rb.out = append(rb.out, x...) - return false - } - buf := rb.out[p:] - rb.out = rb.out[:p] - decomposeToLastBoundary(rb) - if s := rb.ss.next(info); s == ssStarter { - rb.doFlush() - rb.ss.first(info) - } else if s == ssOverflow { - rb.doFlush() - rb.insertCGJ() - rb.ss = 0 - } - rb.insertUnsafe(inputBytes(buf), 0, info) - return true -} - -func appendQuick(rb *reorderBuffer, i int) int { - if rb.nsrc == i { - return i - } - end, _ := rb.f.quickSpan(rb.src, i, rb.nsrc, true) - rb.out = rb.src.appendSlice(rb.out, i, end) - return end -} - -// Append returns f(append(out, b...)). -// The buffer out must be nil, empty, or equal to f(out). -func (f Form) Append(out []byte, src ...byte) []byte { - return f.doAppend(out, inputBytes(src), len(src)) -} - -func (f Form) doAppend(out []byte, src input, n int) []byte { - if n == 0 { - return out - } - ft := formTable[f] - // Attempt to do a quickSpan first so we can avoid initializing the reorderBuffer. - if len(out) == 0 { - p, _ := ft.quickSpan(src, 0, n, true) - out = src.appendSlice(out, 0, p) - if p == n { - return out - } - rb := reorderBuffer{f: *ft, src: src, nsrc: n, out: out, flushF: appendFlush} - return doAppendInner(&rb, p) - } - rb := reorderBuffer{f: *ft, src: src, nsrc: n} - return doAppend(&rb, out, 0) -} - -func doAppend(rb *reorderBuffer, out []byte, p int) []byte { - rb.setFlusher(out, appendFlush) - src, n := rb.src, rb.nsrc - doMerge := len(out) > 0 - if q := src.skipContinuationBytes(p); q > p { - // Move leading non-starters to destination. - rb.out = src.appendSlice(rb.out, p, q) - p = q - doMerge = patchTail(rb) - } - fd := &rb.f - if doMerge { - var info Properties - if p < n { - info = fd.info(src, p) - if !info.BoundaryBefore() || info.nLeadingNonStarters() > 0 { - if p == 0 { - decomposeToLastBoundary(rb) - } - p = decomposeSegment(rb, p, true) - } - } - if info.size == 0 { - rb.doFlush() - // Append incomplete UTF-8 encoding. - return src.appendSlice(rb.out, p, n) - } - if rb.nrune > 0 { - return doAppendInner(rb, p) - } - } - p = appendQuick(rb, p) - return doAppendInner(rb, p) -} - -func doAppendInner(rb *reorderBuffer, p int) []byte { - for n := rb.nsrc; p < n; { - p = decomposeSegment(rb, p, true) - p = appendQuick(rb, p) - } - return rb.out -} - -// AppendString returns f(append(out, []byte(s))). -// The buffer out must be nil, empty, or equal to f(out). -func (f Form) AppendString(out []byte, src string) []byte { - return f.doAppend(out, inputString(src), len(src)) -} - -// QuickSpan returns a boundary n such that b[0:n] == f(b[0:n]). -// It is not guaranteed to return the largest such n. -func (f Form) QuickSpan(b []byte) int { - n, _ := formTable[f].quickSpan(inputBytes(b), 0, len(b), true) - return n -} - -// Span implements transform.SpanningTransformer. It returns a boundary n such -// that b[0:n] == f(b[0:n]). It is not guaranteed to return the largest such n. -func (f Form) Span(b []byte, atEOF bool) (n int, err error) { - n, ok := formTable[f].quickSpan(inputBytes(b), 0, len(b), atEOF) - if n < len(b) { - if !ok { - err = transform.ErrEndOfSpan - } else { - err = transform.ErrShortSrc - } - } - return n, err -} - -// SpanString returns a boundary n such that s[0:n] == f(s[0:n]). -// It is not guaranteed to return the largest such n. -func (f Form) SpanString(s string, atEOF bool) (n int, err error) { - n, ok := formTable[f].quickSpan(inputString(s), 0, len(s), atEOF) - if n < len(s) { - if !ok { - err = transform.ErrEndOfSpan - } else { - err = transform.ErrShortSrc - } - } - return n, err -} - -// quickSpan returns a boundary n such that src[0:n] == f(src[0:n]) and -// whether any non-normalized parts were found. If atEOF is false, n will -// not point past the last segment if this segment might be become -// non-normalized by appending other runes. -func (f *formInfo) quickSpan(src input, i, end int, atEOF bool) (n int, ok bool) { - var lastCC uint8 - ss := streamSafe(0) - lastSegStart := i - for n = end; i < n; { - if j := src.skipASCII(i, n); i != j { - i = j - lastSegStart = i - 1 - lastCC = 0 - ss = 0 - continue - } - info := f.info(src, i) - if info.size == 0 { - if atEOF { - // include incomplete runes - return n, true - } - return lastSegStart, true - } - // This block needs to be before the next, because it is possible to - // have an overflow for runes that are starters (e.g. with U+FF9E). - switch ss.next(info) { - case ssStarter: - lastSegStart = i - case ssOverflow: - return lastSegStart, false - case ssSuccess: - if lastCC > info.ccc { - return lastSegStart, false - } - } - if f.composing { - if !info.isYesC() { - break - } - } else { - if !info.isYesD() { - break - } - } - lastCC = info.ccc - i += int(info.size) - } - if i == n { - if !atEOF { - n = lastSegStart - } - return n, true - } - return lastSegStart, false -} - -// QuickSpanString returns a boundary n such that s[0:n] == f(s[0:n]). -// It is not guaranteed to return the largest such n. -func (f Form) QuickSpanString(s string) int { - n, _ := formTable[f].quickSpan(inputString(s), 0, len(s), true) - return n -} - -// FirstBoundary returns the position i of the first boundary in b -// or -1 if b contains no boundary. -func (f Form) FirstBoundary(b []byte) int { - return f.firstBoundary(inputBytes(b), len(b)) -} - -func (f Form) firstBoundary(src input, nsrc int) int { - i := src.skipContinuationBytes(0) - if i >= nsrc { - return -1 - } - fd := formTable[f] - ss := streamSafe(0) - // We should call ss.first here, but we can't as the first rune is - // skipped already. This means FirstBoundary can't really determine - // CGJ insertion points correctly. Luckily it doesn't have to. - for { - info := fd.info(src, i) - if info.size == 0 { - return -1 - } - if s := ss.next(info); s != ssSuccess { - return i - } - i += int(info.size) - if i >= nsrc { - if !info.BoundaryAfter() && !ss.isMax() { - return -1 - } - return nsrc - } - } -} - -// FirstBoundaryInString returns the position i of the first boundary in s -// or -1 if s contains no boundary. -func (f Form) FirstBoundaryInString(s string) int { - return f.firstBoundary(inputString(s), len(s)) -} - -// NextBoundary reports the index of the boundary between the first and next -// segment in b or -1 if atEOF is false and there are not enough bytes to -// determine this boundary. -func (f Form) NextBoundary(b []byte, atEOF bool) int { - return f.nextBoundary(inputBytes(b), len(b), atEOF) -} - -// NextBoundaryInString reports the index of the boundary between the first and -// next segment in b or -1 if atEOF is false and there are not enough bytes to -// determine this boundary. -func (f Form) NextBoundaryInString(s string, atEOF bool) int { - return f.nextBoundary(inputString(s), len(s), atEOF) -} - -func (f Form) nextBoundary(src input, nsrc int, atEOF bool) int { - if nsrc == 0 { - if atEOF { - return 0 - } - return -1 - } - fd := formTable[f] - info := fd.info(src, 0) - if info.size == 0 { - if atEOF { - return 1 - } - return -1 - } - ss := streamSafe(0) - ss.first(info) - - for i := int(info.size); i < nsrc; i += int(info.size) { - info = fd.info(src, i) - if info.size == 0 { - if atEOF { - return i - } - return -1 - } - // TODO: Using streamSafe to determine the boundary isn't the same as - // using BoundaryBefore. Determine which should be used. - if s := ss.next(info); s != ssSuccess { - return i - } - } - if !atEOF && !info.BoundaryAfter() && !ss.isMax() { - return -1 - } - return nsrc -} - -// LastBoundary returns the position i of the last boundary in b -// or -1 if b contains no boundary. -func (f Form) LastBoundary(b []byte) int { - return lastBoundary(formTable[f], b) -} - -func lastBoundary(fd *formInfo, b []byte) int { - i := len(b) - info, p := lastRuneStart(fd, b) - if p == -1 { - return -1 - } - if info.size == 0 { // ends with incomplete rune - if p == 0 { // starts with incomplete rune - return -1 - } - i = p - info, p = lastRuneStart(fd, b[:i]) - if p == -1 { // incomplete UTF-8 encoding or non-starter bytes without a starter - return i - } - } - if p+int(info.size) != i { // trailing non-starter bytes: illegal UTF-8 - return i - } - if info.BoundaryAfter() { - return i - } - ss := streamSafe(0) - v := ss.backwards(info) - for i = p; i >= 0 && v != ssStarter; i = p { - info, p = lastRuneStart(fd, b[:i]) - if v = ss.backwards(info); v == ssOverflow { - break - } - if p+int(info.size) != i { - if p == -1 { // no boundary found - return -1 - } - return i // boundary after an illegal UTF-8 encoding - } - } - return i -} - -// decomposeSegment scans the first segment in src into rb. It inserts 0x034f -// (Grapheme Joiner) when it encounters a sequence of more than 30 non-starters -// and returns the number of bytes consumed from src or iShortDst or iShortSrc. -func decomposeSegment(rb *reorderBuffer, sp int, atEOF bool) int { - // Force one character to be consumed. - info := rb.f.info(rb.src, sp) - if info.size == 0 { - return 0 - } - if s := rb.ss.next(info); s == ssStarter { - // TODO: this could be removed if we don't support merging. - if rb.nrune > 0 { - goto end - } - } else if s == ssOverflow { - rb.insertCGJ() - goto end - } - if err := rb.insertFlush(rb.src, sp, info); err != iSuccess { - return int(err) - } - for { - sp += int(info.size) - if sp >= rb.nsrc { - if !atEOF && !info.BoundaryAfter() { - return int(iShortSrc) - } - break - } - info = rb.f.info(rb.src, sp) - if info.size == 0 { - if !atEOF { - return int(iShortSrc) - } - break - } - if s := rb.ss.next(info); s == ssStarter { - break - } else if s == ssOverflow { - rb.insertCGJ() - break - } - if err := rb.insertFlush(rb.src, sp, info); err != iSuccess { - return int(err) - } - } -end: - if !rb.doFlush() { - return int(iShortDst) - } - return sp -} - -// lastRuneStart returns the runeInfo and position of the last -// rune in buf or the zero runeInfo and -1 if no rune was found. -func lastRuneStart(fd *formInfo, buf []byte) (Properties, int) { - p := len(buf) - 1 - for ; p >= 0 && !utf8.RuneStart(buf[p]); p-- { - } - if p < 0 { - return Properties{}, -1 - } - return fd.info(inputBytes(buf), p), p -} - -// decomposeToLastBoundary finds an open segment at the end of the buffer -// and scans it into rb. Returns the buffer minus the last segment. -func decomposeToLastBoundary(rb *reorderBuffer) { - fd := &rb.f - info, i := lastRuneStart(fd, rb.out) - if int(info.size) != len(rb.out)-i { - // illegal trailing continuation bytes - return - } - if info.BoundaryAfter() { - return - } - var add [maxNonStarters + 1]Properties // stores runeInfo in reverse order - padd := 0 - ss := streamSafe(0) - p := len(rb.out) - for { - add[padd] = info - v := ss.backwards(info) - if v == ssOverflow { - // Note that if we have an overflow, it the string we are appending to - // is not correctly normalized. In this case the behavior is undefined. - break - } - padd++ - p -= int(info.size) - if v == ssStarter || p < 0 { - break - } - info, i = lastRuneStart(fd, rb.out[:p]) - if int(info.size) != p-i { - break - } - } - rb.ss = ss - // Copy bytes for insertion as we may need to overwrite rb.out. - var buf [maxBufferSize * utf8.UTFMax]byte - cp := buf[:copy(buf[:], rb.out[p:])] - rb.out = rb.out[:p] - for padd--; padd >= 0; padd-- { - info = add[padd] - rb.insertUnsafe(inputBytes(cp), 0, info) - cp = cp[info.size:] - } -} diff --git a/vendor/golang.org/x/text/unicode/norm/readwriter.go b/vendor/golang.org/x/text/unicode/norm/readwriter.go deleted file mode 100644 index d926ee9..0000000 --- a/vendor/golang.org/x/text/unicode/norm/readwriter.go +++ /dev/null @@ -1,125 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package norm - -import "io" - -type normWriter struct { - rb reorderBuffer - w io.Writer - buf []byte -} - -// Write implements the standard write interface. If the last characters are -// not at a normalization boundary, the bytes will be buffered for the next -// write. The remaining bytes will be written on close. -func (w *normWriter) Write(data []byte) (n int, err error) { - // Process data in pieces to keep w.buf size bounded. - const chunk = 4000 - - for len(data) > 0 { - // Normalize into w.buf. - m := len(data) - if m > chunk { - m = chunk - } - w.rb.src = inputBytes(data[:m]) - w.rb.nsrc = m - w.buf = doAppend(&w.rb, w.buf, 0) - data = data[m:] - n += m - - // Write out complete prefix, save remainder. - // Note that lastBoundary looks back at most 31 runes. - i := lastBoundary(&w.rb.f, w.buf) - if i == -1 { - i = 0 - } - if i > 0 { - if _, err = w.w.Write(w.buf[:i]); err != nil { - break - } - bn := copy(w.buf, w.buf[i:]) - w.buf = w.buf[:bn] - } - } - return n, err -} - -// Close forces data that remains in the buffer to be written. -func (w *normWriter) Close() error { - if len(w.buf) > 0 { - _, err := w.w.Write(w.buf) - if err != nil { - return err - } - } - return nil -} - -// Writer returns a new writer that implements Write(b) -// by writing f(b) to w. The returned writer may use an -// an internal buffer to maintain state across Write calls. -// Calling its Close method writes any buffered data to w. -func (f Form) Writer(w io.Writer) io.WriteCloser { - wr := &normWriter{rb: reorderBuffer{}, w: w} - wr.rb.init(f, nil) - return wr -} - -type normReader struct { - rb reorderBuffer - r io.Reader - inbuf []byte - outbuf []byte - bufStart int - lastBoundary int - err error -} - -// Read implements the standard read interface. -func (r *normReader) Read(p []byte) (int, error) { - for { - if r.lastBoundary-r.bufStart > 0 { - n := copy(p, r.outbuf[r.bufStart:r.lastBoundary]) - r.bufStart += n - if r.lastBoundary-r.bufStart > 0 { - return n, nil - } - return n, r.err - } - if r.err != nil { - return 0, r.err - } - outn := copy(r.outbuf, r.outbuf[r.lastBoundary:]) - r.outbuf = r.outbuf[0:outn] - r.bufStart = 0 - - n, err := r.r.Read(r.inbuf) - r.rb.src = inputBytes(r.inbuf[0:n]) - r.rb.nsrc, r.err = n, err - if n > 0 { - r.outbuf = doAppend(&r.rb, r.outbuf, 0) - } - if err == io.EOF { - r.lastBoundary = len(r.outbuf) - } else { - r.lastBoundary = lastBoundary(&r.rb.f, r.outbuf) - if r.lastBoundary == -1 { - r.lastBoundary = 0 - } - } - } -} - -// Reader returns a new reader that implements Read -// by reading data from r and returning f(data). -func (f Form) Reader(r io.Reader) io.Reader { - const chunk = 4000 - buf := make([]byte, chunk) - rr := &normReader{rb: reorderBuffer{}, r: r, inbuf: buf} - rr.rb.init(f, buf) - return rr -} diff --git a/vendor/golang.org/x/text/unicode/norm/tables.go b/vendor/golang.org/x/text/unicode/norm/tables.go deleted file mode 100644 index bf9ff80..0000000 --- a/vendor/golang.org/x/text/unicode/norm/tables.go +++ /dev/null @@ -1,7631 +0,0 @@ -// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. - -package norm - -const ( - // Version is the Unicode edition from which the tables are derived. - Version = "9.0.0" - - // MaxTransformChunkSize indicates the maximum number of bytes that Transform - // may need to write atomically for any Form. Making a destination buffer at - // least this size ensures that Transform can always make progress and that - // the user does not need to grow the buffer on an ErrShortDst. - MaxTransformChunkSize = 35 + maxNonStarters*4 -) - -var ccc = [55]uint8{ - 0, 1, 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, 32, 33, 34, 35, 36, - 84, 91, 103, 107, 118, 122, 129, 130, - 132, 202, 214, 216, 218, 220, 222, 224, - 226, 228, 230, 232, 233, 234, 240, -} - -const ( - firstMulti = 0x186D - firstCCC = 0x2C9E - endMulti = 0x2F60 - firstLeadingCCC = 0x49AE - firstCCCZeroExcept = 0x4A78 - firstStarterWithNLead = 0x4A9F - lastDecomp = 0x4AA1 - maxDecomp = 0x8000 -) - -// decomps: 19105 bytes -var decomps = [...]byte{ - // Bytes 0 - 3f - 0x00, 0x41, 0x20, 0x41, 0x21, 0x41, 0x22, 0x41, - 0x23, 0x41, 0x24, 0x41, 0x25, 0x41, 0x26, 0x41, - 0x27, 0x41, 0x28, 0x41, 0x29, 0x41, 0x2A, 0x41, - 0x2B, 0x41, 0x2C, 0x41, 0x2D, 0x41, 0x2E, 0x41, - 0x2F, 0x41, 0x30, 0x41, 0x31, 0x41, 0x32, 0x41, - 0x33, 0x41, 0x34, 0x41, 0x35, 0x41, 0x36, 0x41, - 0x37, 0x41, 0x38, 0x41, 0x39, 0x41, 0x3A, 0x41, - 0x3B, 0x41, 0x3C, 0x41, 0x3D, 0x41, 0x3E, 0x41, - // Bytes 40 - 7f - 0x3F, 0x41, 0x40, 0x41, 0x41, 0x41, 0x42, 0x41, - 0x43, 0x41, 0x44, 0x41, 0x45, 0x41, 0x46, 0x41, - 0x47, 0x41, 0x48, 0x41, 0x49, 0x41, 0x4A, 0x41, - 0x4B, 0x41, 0x4C, 0x41, 0x4D, 0x41, 0x4E, 0x41, - 0x4F, 0x41, 0x50, 0x41, 0x51, 0x41, 0x52, 0x41, - 0x53, 0x41, 0x54, 0x41, 0x55, 0x41, 0x56, 0x41, - 0x57, 0x41, 0x58, 0x41, 0x59, 0x41, 0x5A, 0x41, - 0x5B, 0x41, 0x5C, 0x41, 0x5D, 0x41, 0x5E, 0x41, - // Bytes 80 - bf - 0x5F, 0x41, 0x60, 0x41, 0x61, 0x41, 0x62, 0x41, - 0x63, 0x41, 0x64, 0x41, 0x65, 0x41, 0x66, 0x41, - 0x67, 0x41, 0x68, 0x41, 0x69, 0x41, 0x6A, 0x41, - 0x6B, 0x41, 0x6C, 0x41, 0x6D, 0x41, 0x6E, 0x41, - 0x6F, 0x41, 0x70, 0x41, 0x71, 0x41, 0x72, 0x41, - 0x73, 0x41, 0x74, 0x41, 0x75, 0x41, 0x76, 0x41, - 0x77, 0x41, 0x78, 0x41, 0x79, 0x41, 0x7A, 0x41, - 0x7B, 0x41, 0x7C, 0x41, 0x7D, 0x41, 0x7E, 0x42, - // Bytes c0 - ff - 0xC2, 0xA2, 0x42, 0xC2, 0xA3, 0x42, 0xC2, 0xA5, - 0x42, 0xC2, 0xA6, 0x42, 0xC2, 0xAC, 0x42, 0xC2, - 0xB7, 0x42, 0xC3, 0x86, 0x42, 0xC3, 0xB0, 0x42, - 0xC4, 0xA6, 0x42, 0xC4, 0xA7, 0x42, 0xC4, 0xB1, - 0x42, 0xC5, 0x8B, 0x42, 0xC5, 0x93, 0x42, 0xC6, - 0x8E, 0x42, 0xC6, 0x90, 0x42, 0xC6, 0xAB, 0x42, - 0xC8, 0xA2, 0x42, 0xC8, 0xB7, 0x42, 0xC9, 0x90, - 0x42, 0xC9, 0x91, 0x42, 0xC9, 0x92, 0x42, 0xC9, - // Bytes 100 - 13f - 0x94, 0x42, 0xC9, 0x95, 0x42, 0xC9, 0x99, 0x42, - 0xC9, 0x9B, 0x42, 0xC9, 0x9C, 0x42, 0xC9, 0x9F, - 0x42, 0xC9, 0xA1, 0x42, 0xC9, 0xA3, 0x42, 0xC9, - 0xA5, 0x42, 0xC9, 0xA6, 0x42, 0xC9, 0xA8, 0x42, - 0xC9, 0xA9, 0x42, 0xC9, 0xAA, 0x42, 0xC9, 0xAB, - 0x42, 0xC9, 0xAD, 0x42, 0xC9, 0xAF, 0x42, 0xC9, - 0xB0, 0x42, 0xC9, 0xB1, 0x42, 0xC9, 0xB2, 0x42, - 0xC9, 0xB3, 0x42, 0xC9, 0xB4, 0x42, 0xC9, 0xB5, - // Bytes 140 - 17f - 0x42, 0xC9, 0xB8, 0x42, 0xC9, 0xB9, 0x42, 0xC9, - 0xBB, 0x42, 0xCA, 0x81, 0x42, 0xCA, 0x82, 0x42, - 0xCA, 0x83, 0x42, 0xCA, 0x89, 0x42, 0xCA, 0x8A, - 0x42, 0xCA, 0x8B, 0x42, 0xCA, 0x8C, 0x42, 0xCA, - 0x90, 0x42, 0xCA, 0x91, 0x42, 0xCA, 0x92, 0x42, - 0xCA, 0x95, 0x42, 0xCA, 0x9D, 0x42, 0xCA, 0x9F, - 0x42, 0xCA, 0xB9, 0x42, 0xCE, 0x91, 0x42, 0xCE, - 0x92, 0x42, 0xCE, 0x93, 0x42, 0xCE, 0x94, 0x42, - // Bytes 180 - 1bf - 0xCE, 0x95, 0x42, 0xCE, 0x96, 0x42, 0xCE, 0x97, - 0x42, 0xCE, 0x98, 0x42, 0xCE, 0x99, 0x42, 0xCE, - 0x9A, 0x42, 0xCE, 0x9B, 0x42, 0xCE, 0x9C, 0x42, - 0xCE, 0x9D, 0x42, 0xCE, 0x9E, 0x42, 0xCE, 0x9F, - 0x42, 0xCE, 0xA0, 0x42, 0xCE, 0xA1, 0x42, 0xCE, - 0xA3, 0x42, 0xCE, 0xA4, 0x42, 0xCE, 0xA5, 0x42, - 0xCE, 0xA6, 0x42, 0xCE, 0xA7, 0x42, 0xCE, 0xA8, - 0x42, 0xCE, 0xA9, 0x42, 0xCE, 0xB1, 0x42, 0xCE, - // Bytes 1c0 - 1ff - 0xB2, 0x42, 0xCE, 0xB3, 0x42, 0xCE, 0xB4, 0x42, - 0xCE, 0xB5, 0x42, 0xCE, 0xB6, 0x42, 0xCE, 0xB7, - 0x42, 0xCE, 0xB8, 0x42, 0xCE, 0xB9, 0x42, 0xCE, - 0xBA, 0x42, 0xCE, 0xBB, 0x42, 0xCE, 0xBC, 0x42, - 0xCE, 0xBD, 0x42, 0xCE, 0xBE, 0x42, 0xCE, 0xBF, - 0x42, 0xCF, 0x80, 0x42, 0xCF, 0x81, 0x42, 0xCF, - 0x82, 0x42, 0xCF, 0x83, 0x42, 0xCF, 0x84, 0x42, - 0xCF, 0x85, 0x42, 0xCF, 0x86, 0x42, 0xCF, 0x87, - // Bytes 200 - 23f - 0x42, 0xCF, 0x88, 0x42, 0xCF, 0x89, 0x42, 0xCF, - 0x9C, 0x42, 0xCF, 0x9D, 0x42, 0xD0, 0xBD, 0x42, - 0xD1, 0x8A, 0x42, 0xD1, 0x8C, 0x42, 0xD7, 0x90, - 0x42, 0xD7, 0x91, 0x42, 0xD7, 0x92, 0x42, 0xD7, - 0x93, 0x42, 0xD7, 0x94, 0x42, 0xD7, 0x9B, 0x42, - 0xD7, 0x9C, 0x42, 0xD7, 0x9D, 0x42, 0xD7, 0xA2, - 0x42, 0xD7, 0xA8, 0x42, 0xD7, 0xAA, 0x42, 0xD8, - 0xA1, 0x42, 0xD8, 0xA7, 0x42, 0xD8, 0xA8, 0x42, - // Bytes 240 - 27f - 0xD8, 0xA9, 0x42, 0xD8, 0xAA, 0x42, 0xD8, 0xAB, - 0x42, 0xD8, 0xAC, 0x42, 0xD8, 0xAD, 0x42, 0xD8, - 0xAE, 0x42, 0xD8, 0xAF, 0x42, 0xD8, 0xB0, 0x42, - 0xD8, 0xB1, 0x42, 0xD8, 0xB2, 0x42, 0xD8, 0xB3, - 0x42, 0xD8, 0xB4, 0x42, 0xD8, 0xB5, 0x42, 0xD8, - 0xB6, 0x42, 0xD8, 0xB7, 0x42, 0xD8, 0xB8, 0x42, - 0xD8, 0xB9, 0x42, 0xD8, 0xBA, 0x42, 0xD9, 0x81, - 0x42, 0xD9, 0x82, 0x42, 0xD9, 0x83, 0x42, 0xD9, - // Bytes 280 - 2bf - 0x84, 0x42, 0xD9, 0x85, 0x42, 0xD9, 0x86, 0x42, - 0xD9, 0x87, 0x42, 0xD9, 0x88, 0x42, 0xD9, 0x89, - 0x42, 0xD9, 0x8A, 0x42, 0xD9, 0xAE, 0x42, 0xD9, - 0xAF, 0x42, 0xD9, 0xB1, 0x42, 0xD9, 0xB9, 0x42, - 0xD9, 0xBA, 0x42, 0xD9, 0xBB, 0x42, 0xD9, 0xBE, - 0x42, 0xD9, 0xBF, 0x42, 0xDA, 0x80, 0x42, 0xDA, - 0x83, 0x42, 0xDA, 0x84, 0x42, 0xDA, 0x86, 0x42, - 0xDA, 0x87, 0x42, 0xDA, 0x88, 0x42, 0xDA, 0x8C, - // Bytes 2c0 - 2ff - 0x42, 0xDA, 0x8D, 0x42, 0xDA, 0x8E, 0x42, 0xDA, - 0x91, 0x42, 0xDA, 0x98, 0x42, 0xDA, 0xA1, 0x42, - 0xDA, 0xA4, 0x42, 0xDA, 0xA6, 0x42, 0xDA, 0xA9, - 0x42, 0xDA, 0xAD, 0x42, 0xDA, 0xAF, 0x42, 0xDA, - 0xB1, 0x42, 0xDA, 0xB3, 0x42, 0xDA, 0xBA, 0x42, - 0xDA, 0xBB, 0x42, 0xDA, 0xBE, 0x42, 0xDB, 0x81, - 0x42, 0xDB, 0x85, 0x42, 0xDB, 0x86, 0x42, 0xDB, - 0x87, 0x42, 0xDB, 0x88, 0x42, 0xDB, 0x89, 0x42, - // Bytes 300 - 33f - 0xDB, 0x8B, 0x42, 0xDB, 0x8C, 0x42, 0xDB, 0x90, - 0x42, 0xDB, 0x92, 0x43, 0xE0, 0xBC, 0x8B, 0x43, - 0xE1, 0x83, 0x9C, 0x43, 0xE1, 0x84, 0x80, 0x43, - 0xE1, 0x84, 0x81, 0x43, 0xE1, 0x84, 0x82, 0x43, - 0xE1, 0x84, 0x83, 0x43, 0xE1, 0x84, 0x84, 0x43, - 0xE1, 0x84, 0x85, 0x43, 0xE1, 0x84, 0x86, 0x43, - 0xE1, 0x84, 0x87, 0x43, 0xE1, 0x84, 0x88, 0x43, - 0xE1, 0x84, 0x89, 0x43, 0xE1, 0x84, 0x8A, 0x43, - // Bytes 340 - 37f - 0xE1, 0x84, 0x8B, 0x43, 0xE1, 0x84, 0x8C, 0x43, - 0xE1, 0x84, 0x8D, 0x43, 0xE1, 0x84, 0x8E, 0x43, - 0xE1, 0x84, 0x8F, 0x43, 0xE1, 0x84, 0x90, 0x43, - 0xE1, 0x84, 0x91, 0x43, 0xE1, 0x84, 0x92, 0x43, - 0xE1, 0x84, 0x94, 0x43, 0xE1, 0x84, 0x95, 0x43, - 0xE1, 0x84, 0x9A, 0x43, 0xE1, 0x84, 0x9C, 0x43, - 0xE1, 0x84, 0x9D, 0x43, 0xE1, 0x84, 0x9E, 0x43, - 0xE1, 0x84, 0xA0, 0x43, 0xE1, 0x84, 0xA1, 0x43, - // Bytes 380 - 3bf - 0xE1, 0x84, 0xA2, 0x43, 0xE1, 0x84, 0xA3, 0x43, - 0xE1, 0x84, 0xA7, 0x43, 0xE1, 0x84, 0xA9, 0x43, - 0xE1, 0x84, 0xAB, 0x43, 0xE1, 0x84, 0xAC, 0x43, - 0xE1, 0x84, 0xAD, 0x43, 0xE1, 0x84, 0xAE, 0x43, - 0xE1, 0x84, 0xAF, 0x43, 0xE1, 0x84, 0xB2, 0x43, - 0xE1, 0x84, 0xB6, 0x43, 0xE1, 0x85, 0x80, 0x43, - 0xE1, 0x85, 0x87, 0x43, 0xE1, 0x85, 0x8C, 0x43, - 0xE1, 0x85, 0x97, 0x43, 0xE1, 0x85, 0x98, 0x43, - // Bytes 3c0 - 3ff - 0xE1, 0x85, 0x99, 0x43, 0xE1, 0x85, 0xA0, 0x43, - 0xE1, 0x86, 0x84, 0x43, 0xE1, 0x86, 0x85, 0x43, - 0xE1, 0x86, 0x88, 0x43, 0xE1, 0x86, 0x91, 0x43, - 0xE1, 0x86, 0x92, 0x43, 0xE1, 0x86, 0x94, 0x43, - 0xE1, 0x86, 0x9E, 0x43, 0xE1, 0x86, 0xA1, 0x43, - 0xE1, 0x87, 0x87, 0x43, 0xE1, 0x87, 0x88, 0x43, - 0xE1, 0x87, 0x8C, 0x43, 0xE1, 0x87, 0x8E, 0x43, - 0xE1, 0x87, 0x93, 0x43, 0xE1, 0x87, 0x97, 0x43, - // Bytes 400 - 43f - 0xE1, 0x87, 0x99, 0x43, 0xE1, 0x87, 0x9D, 0x43, - 0xE1, 0x87, 0x9F, 0x43, 0xE1, 0x87, 0xB1, 0x43, - 0xE1, 0x87, 0xB2, 0x43, 0xE1, 0xB4, 0x82, 0x43, - 0xE1, 0xB4, 0x96, 0x43, 0xE1, 0xB4, 0x97, 0x43, - 0xE1, 0xB4, 0x9C, 0x43, 0xE1, 0xB4, 0x9D, 0x43, - 0xE1, 0xB4, 0xA5, 0x43, 0xE1, 0xB5, 0xBB, 0x43, - 0xE1, 0xB6, 0x85, 0x43, 0xE2, 0x80, 0x82, 0x43, - 0xE2, 0x80, 0x83, 0x43, 0xE2, 0x80, 0x90, 0x43, - // Bytes 440 - 47f - 0xE2, 0x80, 0x93, 0x43, 0xE2, 0x80, 0x94, 0x43, - 0xE2, 0x82, 0xA9, 0x43, 0xE2, 0x86, 0x90, 0x43, - 0xE2, 0x86, 0x91, 0x43, 0xE2, 0x86, 0x92, 0x43, - 0xE2, 0x86, 0x93, 0x43, 0xE2, 0x88, 0x82, 0x43, - 0xE2, 0x88, 0x87, 0x43, 0xE2, 0x88, 0x91, 0x43, - 0xE2, 0x88, 0x92, 0x43, 0xE2, 0x94, 0x82, 0x43, - 0xE2, 0x96, 0xA0, 0x43, 0xE2, 0x97, 0x8B, 0x43, - 0xE2, 0xA6, 0x85, 0x43, 0xE2, 0xA6, 0x86, 0x43, - // Bytes 480 - 4bf - 0xE2, 0xB5, 0xA1, 0x43, 0xE3, 0x80, 0x81, 0x43, - 0xE3, 0x80, 0x82, 0x43, 0xE3, 0x80, 0x88, 0x43, - 0xE3, 0x80, 0x89, 0x43, 0xE3, 0x80, 0x8A, 0x43, - 0xE3, 0x80, 0x8B, 0x43, 0xE3, 0x80, 0x8C, 0x43, - 0xE3, 0x80, 0x8D, 0x43, 0xE3, 0x80, 0x8E, 0x43, - 0xE3, 0x80, 0x8F, 0x43, 0xE3, 0x80, 0x90, 0x43, - 0xE3, 0x80, 0x91, 0x43, 0xE3, 0x80, 0x92, 0x43, - 0xE3, 0x80, 0x94, 0x43, 0xE3, 0x80, 0x95, 0x43, - // Bytes 4c0 - 4ff - 0xE3, 0x80, 0x96, 0x43, 0xE3, 0x80, 0x97, 0x43, - 0xE3, 0x82, 0xA1, 0x43, 0xE3, 0x82, 0xA2, 0x43, - 0xE3, 0x82, 0xA3, 0x43, 0xE3, 0x82, 0xA4, 0x43, - 0xE3, 0x82, 0xA5, 0x43, 0xE3, 0x82, 0xA6, 0x43, - 0xE3, 0x82, 0xA7, 0x43, 0xE3, 0x82, 0xA8, 0x43, - 0xE3, 0x82, 0xA9, 0x43, 0xE3, 0x82, 0xAA, 0x43, - 0xE3, 0x82, 0xAB, 0x43, 0xE3, 0x82, 0xAD, 0x43, - 0xE3, 0x82, 0xAF, 0x43, 0xE3, 0x82, 0xB1, 0x43, - // Bytes 500 - 53f - 0xE3, 0x82, 0xB3, 0x43, 0xE3, 0x82, 0xB5, 0x43, - 0xE3, 0x82, 0xB7, 0x43, 0xE3, 0x82, 0xB9, 0x43, - 0xE3, 0x82, 0xBB, 0x43, 0xE3, 0x82, 0xBD, 0x43, - 0xE3, 0x82, 0xBF, 0x43, 0xE3, 0x83, 0x81, 0x43, - 0xE3, 0x83, 0x83, 0x43, 0xE3, 0x83, 0x84, 0x43, - 0xE3, 0x83, 0x86, 0x43, 0xE3, 0x83, 0x88, 0x43, - 0xE3, 0x83, 0x8A, 0x43, 0xE3, 0x83, 0x8B, 0x43, - 0xE3, 0x83, 0x8C, 0x43, 0xE3, 0x83, 0x8D, 0x43, - // Bytes 540 - 57f - 0xE3, 0x83, 0x8E, 0x43, 0xE3, 0x83, 0x8F, 0x43, - 0xE3, 0x83, 0x92, 0x43, 0xE3, 0x83, 0x95, 0x43, - 0xE3, 0x83, 0x98, 0x43, 0xE3, 0x83, 0x9B, 0x43, - 0xE3, 0x83, 0x9E, 0x43, 0xE3, 0x83, 0x9F, 0x43, - 0xE3, 0x83, 0xA0, 0x43, 0xE3, 0x83, 0xA1, 0x43, - 0xE3, 0x83, 0xA2, 0x43, 0xE3, 0x83, 0xA3, 0x43, - 0xE3, 0x83, 0xA4, 0x43, 0xE3, 0x83, 0xA5, 0x43, - 0xE3, 0x83, 0xA6, 0x43, 0xE3, 0x83, 0xA7, 0x43, - // Bytes 580 - 5bf - 0xE3, 0x83, 0xA8, 0x43, 0xE3, 0x83, 0xA9, 0x43, - 0xE3, 0x83, 0xAA, 0x43, 0xE3, 0x83, 0xAB, 0x43, - 0xE3, 0x83, 0xAC, 0x43, 0xE3, 0x83, 0xAD, 0x43, - 0xE3, 0x83, 0xAF, 0x43, 0xE3, 0x83, 0xB0, 0x43, - 0xE3, 0x83, 0xB1, 0x43, 0xE3, 0x83, 0xB2, 0x43, - 0xE3, 0x83, 0xB3, 0x43, 0xE3, 0x83, 0xBB, 0x43, - 0xE3, 0x83, 0xBC, 0x43, 0xE3, 0x92, 0x9E, 0x43, - 0xE3, 0x92, 0xB9, 0x43, 0xE3, 0x92, 0xBB, 0x43, - // Bytes 5c0 - 5ff - 0xE3, 0x93, 0x9F, 0x43, 0xE3, 0x94, 0x95, 0x43, - 0xE3, 0x9B, 0xAE, 0x43, 0xE3, 0x9B, 0xBC, 0x43, - 0xE3, 0x9E, 0x81, 0x43, 0xE3, 0xA0, 0xAF, 0x43, - 0xE3, 0xA1, 0xA2, 0x43, 0xE3, 0xA1, 0xBC, 0x43, - 0xE3, 0xA3, 0x87, 0x43, 0xE3, 0xA3, 0xA3, 0x43, - 0xE3, 0xA4, 0x9C, 0x43, 0xE3, 0xA4, 0xBA, 0x43, - 0xE3, 0xA8, 0xAE, 0x43, 0xE3, 0xA9, 0xAC, 0x43, - 0xE3, 0xAB, 0xA4, 0x43, 0xE3, 0xAC, 0x88, 0x43, - // Bytes 600 - 63f - 0xE3, 0xAC, 0x99, 0x43, 0xE3, 0xAD, 0x89, 0x43, - 0xE3, 0xAE, 0x9D, 0x43, 0xE3, 0xB0, 0x98, 0x43, - 0xE3, 0xB1, 0x8E, 0x43, 0xE3, 0xB4, 0xB3, 0x43, - 0xE3, 0xB6, 0x96, 0x43, 0xE3, 0xBA, 0xAC, 0x43, - 0xE3, 0xBA, 0xB8, 0x43, 0xE3, 0xBC, 0x9B, 0x43, - 0xE3, 0xBF, 0xBC, 0x43, 0xE4, 0x80, 0x88, 0x43, - 0xE4, 0x80, 0x98, 0x43, 0xE4, 0x80, 0xB9, 0x43, - 0xE4, 0x81, 0x86, 0x43, 0xE4, 0x82, 0x96, 0x43, - // Bytes 640 - 67f - 0xE4, 0x83, 0xA3, 0x43, 0xE4, 0x84, 0xAF, 0x43, - 0xE4, 0x88, 0x82, 0x43, 0xE4, 0x88, 0xA7, 0x43, - 0xE4, 0x8A, 0xA0, 0x43, 0xE4, 0x8C, 0x81, 0x43, - 0xE4, 0x8C, 0xB4, 0x43, 0xE4, 0x8D, 0x99, 0x43, - 0xE4, 0x8F, 0x95, 0x43, 0xE4, 0x8F, 0x99, 0x43, - 0xE4, 0x90, 0x8B, 0x43, 0xE4, 0x91, 0xAB, 0x43, - 0xE4, 0x94, 0xAB, 0x43, 0xE4, 0x95, 0x9D, 0x43, - 0xE4, 0x95, 0xA1, 0x43, 0xE4, 0x95, 0xAB, 0x43, - // Bytes 680 - 6bf - 0xE4, 0x97, 0x97, 0x43, 0xE4, 0x97, 0xB9, 0x43, - 0xE4, 0x98, 0xB5, 0x43, 0xE4, 0x9A, 0xBE, 0x43, - 0xE4, 0x9B, 0x87, 0x43, 0xE4, 0xA6, 0x95, 0x43, - 0xE4, 0xA7, 0xA6, 0x43, 0xE4, 0xA9, 0xAE, 0x43, - 0xE4, 0xA9, 0xB6, 0x43, 0xE4, 0xAA, 0xB2, 0x43, - 0xE4, 0xAC, 0xB3, 0x43, 0xE4, 0xAF, 0x8E, 0x43, - 0xE4, 0xB3, 0x8E, 0x43, 0xE4, 0xB3, 0xAD, 0x43, - 0xE4, 0xB3, 0xB8, 0x43, 0xE4, 0xB5, 0x96, 0x43, - // Bytes 6c0 - 6ff - 0xE4, 0xB8, 0x80, 0x43, 0xE4, 0xB8, 0x81, 0x43, - 0xE4, 0xB8, 0x83, 0x43, 0xE4, 0xB8, 0x89, 0x43, - 0xE4, 0xB8, 0x8A, 0x43, 0xE4, 0xB8, 0x8B, 0x43, - 0xE4, 0xB8, 0x8D, 0x43, 0xE4, 0xB8, 0x99, 0x43, - 0xE4, 0xB8, 0xA6, 0x43, 0xE4, 0xB8, 0xA8, 0x43, - 0xE4, 0xB8, 0xAD, 0x43, 0xE4, 0xB8, 0xB2, 0x43, - 0xE4, 0xB8, 0xB6, 0x43, 0xE4, 0xB8, 0xB8, 0x43, - 0xE4, 0xB8, 0xB9, 0x43, 0xE4, 0xB8, 0xBD, 0x43, - // Bytes 700 - 73f - 0xE4, 0xB8, 0xBF, 0x43, 0xE4, 0xB9, 0x81, 0x43, - 0xE4, 0xB9, 0x99, 0x43, 0xE4, 0xB9, 0x9D, 0x43, - 0xE4, 0xBA, 0x82, 0x43, 0xE4, 0xBA, 0x85, 0x43, - 0xE4, 0xBA, 0x86, 0x43, 0xE4, 0xBA, 0x8C, 0x43, - 0xE4, 0xBA, 0x94, 0x43, 0xE4, 0xBA, 0xA0, 0x43, - 0xE4, 0xBA, 0xA4, 0x43, 0xE4, 0xBA, 0xAE, 0x43, - 0xE4, 0xBA, 0xBA, 0x43, 0xE4, 0xBB, 0x80, 0x43, - 0xE4, 0xBB, 0x8C, 0x43, 0xE4, 0xBB, 0xA4, 0x43, - // Bytes 740 - 77f - 0xE4, 0xBC, 0x81, 0x43, 0xE4, 0xBC, 0x91, 0x43, - 0xE4, 0xBD, 0xA0, 0x43, 0xE4, 0xBE, 0x80, 0x43, - 0xE4, 0xBE, 0x86, 0x43, 0xE4, 0xBE, 0x8B, 0x43, - 0xE4, 0xBE, 0xAE, 0x43, 0xE4, 0xBE, 0xBB, 0x43, - 0xE4, 0xBE, 0xBF, 0x43, 0xE5, 0x80, 0x82, 0x43, - 0xE5, 0x80, 0xAB, 0x43, 0xE5, 0x81, 0xBA, 0x43, - 0xE5, 0x82, 0x99, 0x43, 0xE5, 0x83, 0x8F, 0x43, - 0xE5, 0x83, 0x9A, 0x43, 0xE5, 0x83, 0xA7, 0x43, - // Bytes 780 - 7bf - 0xE5, 0x84, 0xAA, 0x43, 0xE5, 0x84, 0xBF, 0x43, - 0xE5, 0x85, 0x80, 0x43, 0xE5, 0x85, 0x85, 0x43, - 0xE5, 0x85, 0x8D, 0x43, 0xE5, 0x85, 0x94, 0x43, - 0xE5, 0x85, 0xA4, 0x43, 0xE5, 0x85, 0xA5, 0x43, - 0xE5, 0x85, 0xA7, 0x43, 0xE5, 0x85, 0xA8, 0x43, - 0xE5, 0x85, 0xA9, 0x43, 0xE5, 0x85, 0xAB, 0x43, - 0xE5, 0x85, 0xAD, 0x43, 0xE5, 0x85, 0xB7, 0x43, - 0xE5, 0x86, 0x80, 0x43, 0xE5, 0x86, 0x82, 0x43, - // Bytes 7c0 - 7ff - 0xE5, 0x86, 0x8D, 0x43, 0xE5, 0x86, 0x92, 0x43, - 0xE5, 0x86, 0x95, 0x43, 0xE5, 0x86, 0x96, 0x43, - 0xE5, 0x86, 0x97, 0x43, 0xE5, 0x86, 0x99, 0x43, - 0xE5, 0x86, 0xA4, 0x43, 0xE5, 0x86, 0xAB, 0x43, - 0xE5, 0x86, 0xAC, 0x43, 0xE5, 0x86, 0xB5, 0x43, - 0xE5, 0x86, 0xB7, 0x43, 0xE5, 0x87, 0x89, 0x43, - 0xE5, 0x87, 0x8C, 0x43, 0xE5, 0x87, 0x9C, 0x43, - 0xE5, 0x87, 0x9E, 0x43, 0xE5, 0x87, 0xA0, 0x43, - // Bytes 800 - 83f - 0xE5, 0x87, 0xB5, 0x43, 0xE5, 0x88, 0x80, 0x43, - 0xE5, 0x88, 0x83, 0x43, 0xE5, 0x88, 0x87, 0x43, - 0xE5, 0x88, 0x97, 0x43, 0xE5, 0x88, 0x9D, 0x43, - 0xE5, 0x88, 0xA9, 0x43, 0xE5, 0x88, 0xBA, 0x43, - 0xE5, 0x88, 0xBB, 0x43, 0xE5, 0x89, 0x86, 0x43, - 0xE5, 0x89, 0x8D, 0x43, 0xE5, 0x89, 0xB2, 0x43, - 0xE5, 0x89, 0xB7, 0x43, 0xE5, 0x8A, 0x89, 0x43, - 0xE5, 0x8A, 0x9B, 0x43, 0xE5, 0x8A, 0xA3, 0x43, - // Bytes 840 - 87f - 0xE5, 0x8A, 0xB3, 0x43, 0xE5, 0x8A, 0xB4, 0x43, - 0xE5, 0x8B, 0x87, 0x43, 0xE5, 0x8B, 0x89, 0x43, - 0xE5, 0x8B, 0x92, 0x43, 0xE5, 0x8B, 0x9E, 0x43, - 0xE5, 0x8B, 0xA4, 0x43, 0xE5, 0x8B, 0xB5, 0x43, - 0xE5, 0x8B, 0xB9, 0x43, 0xE5, 0x8B, 0xBA, 0x43, - 0xE5, 0x8C, 0x85, 0x43, 0xE5, 0x8C, 0x86, 0x43, - 0xE5, 0x8C, 0x95, 0x43, 0xE5, 0x8C, 0x97, 0x43, - 0xE5, 0x8C, 0x9A, 0x43, 0xE5, 0x8C, 0xB8, 0x43, - // Bytes 880 - 8bf - 0xE5, 0x8C, 0xBB, 0x43, 0xE5, 0x8C, 0xBF, 0x43, - 0xE5, 0x8D, 0x81, 0x43, 0xE5, 0x8D, 0x84, 0x43, - 0xE5, 0x8D, 0x85, 0x43, 0xE5, 0x8D, 0x89, 0x43, - 0xE5, 0x8D, 0x91, 0x43, 0xE5, 0x8D, 0x94, 0x43, - 0xE5, 0x8D, 0x9A, 0x43, 0xE5, 0x8D, 0x9C, 0x43, - 0xE5, 0x8D, 0xA9, 0x43, 0xE5, 0x8D, 0xB0, 0x43, - 0xE5, 0x8D, 0xB3, 0x43, 0xE5, 0x8D, 0xB5, 0x43, - 0xE5, 0x8D, 0xBD, 0x43, 0xE5, 0x8D, 0xBF, 0x43, - // Bytes 8c0 - 8ff - 0xE5, 0x8E, 0x82, 0x43, 0xE5, 0x8E, 0xB6, 0x43, - 0xE5, 0x8F, 0x83, 0x43, 0xE5, 0x8F, 0x88, 0x43, - 0xE5, 0x8F, 0x8A, 0x43, 0xE5, 0x8F, 0x8C, 0x43, - 0xE5, 0x8F, 0x9F, 0x43, 0xE5, 0x8F, 0xA3, 0x43, - 0xE5, 0x8F, 0xA5, 0x43, 0xE5, 0x8F, 0xAB, 0x43, - 0xE5, 0x8F, 0xAF, 0x43, 0xE5, 0x8F, 0xB1, 0x43, - 0xE5, 0x8F, 0xB3, 0x43, 0xE5, 0x90, 0x86, 0x43, - 0xE5, 0x90, 0x88, 0x43, 0xE5, 0x90, 0x8D, 0x43, - // Bytes 900 - 93f - 0xE5, 0x90, 0x8F, 0x43, 0xE5, 0x90, 0x9D, 0x43, - 0xE5, 0x90, 0xB8, 0x43, 0xE5, 0x90, 0xB9, 0x43, - 0xE5, 0x91, 0x82, 0x43, 0xE5, 0x91, 0x88, 0x43, - 0xE5, 0x91, 0xA8, 0x43, 0xE5, 0x92, 0x9E, 0x43, - 0xE5, 0x92, 0xA2, 0x43, 0xE5, 0x92, 0xBD, 0x43, - 0xE5, 0x93, 0xB6, 0x43, 0xE5, 0x94, 0x90, 0x43, - 0xE5, 0x95, 0x8F, 0x43, 0xE5, 0x95, 0x93, 0x43, - 0xE5, 0x95, 0x95, 0x43, 0xE5, 0x95, 0xA3, 0x43, - // Bytes 940 - 97f - 0xE5, 0x96, 0x84, 0x43, 0xE5, 0x96, 0x87, 0x43, - 0xE5, 0x96, 0x99, 0x43, 0xE5, 0x96, 0x9D, 0x43, - 0xE5, 0x96, 0xAB, 0x43, 0xE5, 0x96, 0xB3, 0x43, - 0xE5, 0x96, 0xB6, 0x43, 0xE5, 0x97, 0x80, 0x43, - 0xE5, 0x97, 0x82, 0x43, 0xE5, 0x97, 0xA2, 0x43, - 0xE5, 0x98, 0x86, 0x43, 0xE5, 0x99, 0x91, 0x43, - 0xE5, 0x99, 0xA8, 0x43, 0xE5, 0x99, 0xB4, 0x43, - 0xE5, 0x9B, 0x97, 0x43, 0xE5, 0x9B, 0x9B, 0x43, - // Bytes 980 - 9bf - 0xE5, 0x9B, 0xB9, 0x43, 0xE5, 0x9C, 0x96, 0x43, - 0xE5, 0x9C, 0x97, 0x43, 0xE5, 0x9C, 0x9F, 0x43, - 0xE5, 0x9C, 0xB0, 0x43, 0xE5, 0x9E, 0x8B, 0x43, - 0xE5, 0x9F, 0x8E, 0x43, 0xE5, 0x9F, 0xB4, 0x43, - 0xE5, 0xA0, 0x8D, 0x43, 0xE5, 0xA0, 0xB1, 0x43, - 0xE5, 0xA0, 0xB2, 0x43, 0xE5, 0xA1, 0x80, 0x43, - 0xE5, 0xA1, 0x9A, 0x43, 0xE5, 0xA1, 0x9E, 0x43, - 0xE5, 0xA2, 0xA8, 0x43, 0xE5, 0xA2, 0xAC, 0x43, - // Bytes 9c0 - 9ff - 0xE5, 0xA2, 0xB3, 0x43, 0xE5, 0xA3, 0x98, 0x43, - 0xE5, 0xA3, 0x9F, 0x43, 0xE5, 0xA3, 0xAB, 0x43, - 0xE5, 0xA3, 0xAE, 0x43, 0xE5, 0xA3, 0xB0, 0x43, - 0xE5, 0xA3, 0xB2, 0x43, 0xE5, 0xA3, 0xB7, 0x43, - 0xE5, 0xA4, 0x82, 0x43, 0xE5, 0xA4, 0x86, 0x43, - 0xE5, 0xA4, 0x8A, 0x43, 0xE5, 0xA4, 0x95, 0x43, - 0xE5, 0xA4, 0x9A, 0x43, 0xE5, 0xA4, 0x9C, 0x43, - 0xE5, 0xA4, 0xA2, 0x43, 0xE5, 0xA4, 0xA7, 0x43, - // Bytes a00 - a3f - 0xE5, 0xA4, 0xA9, 0x43, 0xE5, 0xA5, 0x84, 0x43, - 0xE5, 0xA5, 0x88, 0x43, 0xE5, 0xA5, 0x91, 0x43, - 0xE5, 0xA5, 0x94, 0x43, 0xE5, 0xA5, 0xA2, 0x43, - 0xE5, 0xA5, 0xB3, 0x43, 0xE5, 0xA7, 0x98, 0x43, - 0xE5, 0xA7, 0xAC, 0x43, 0xE5, 0xA8, 0x9B, 0x43, - 0xE5, 0xA8, 0xA7, 0x43, 0xE5, 0xA9, 0xA2, 0x43, - 0xE5, 0xA9, 0xA6, 0x43, 0xE5, 0xAA, 0xB5, 0x43, - 0xE5, 0xAC, 0x88, 0x43, 0xE5, 0xAC, 0xA8, 0x43, - // Bytes a40 - a7f - 0xE5, 0xAC, 0xBE, 0x43, 0xE5, 0xAD, 0x90, 0x43, - 0xE5, 0xAD, 0x97, 0x43, 0xE5, 0xAD, 0xA6, 0x43, - 0xE5, 0xAE, 0x80, 0x43, 0xE5, 0xAE, 0x85, 0x43, - 0xE5, 0xAE, 0x97, 0x43, 0xE5, 0xAF, 0x83, 0x43, - 0xE5, 0xAF, 0x98, 0x43, 0xE5, 0xAF, 0xA7, 0x43, - 0xE5, 0xAF, 0xAE, 0x43, 0xE5, 0xAF, 0xB3, 0x43, - 0xE5, 0xAF, 0xB8, 0x43, 0xE5, 0xAF, 0xBF, 0x43, - 0xE5, 0xB0, 0x86, 0x43, 0xE5, 0xB0, 0x8F, 0x43, - // Bytes a80 - abf - 0xE5, 0xB0, 0xA2, 0x43, 0xE5, 0xB0, 0xB8, 0x43, - 0xE5, 0xB0, 0xBF, 0x43, 0xE5, 0xB1, 0xA0, 0x43, - 0xE5, 0xB1, 0xA2, 0x43, 0xE5, 0xB1, 0xA4, 0x43, - 0xE5, 0xB1, 0xA5, 0x43, 0xE5, 0xB1, 0xAE, 0x43, - 0xE5, 0xB1, 0xB1, 0x43, 0xE5, 0xB2, 0x8D, 0x43, - 0xE5, 0xB3, 0x80, 0x43, 0xE5, 0xB4, 0x99, 0x43, - 0xE5, 0xB5, 0x83, 0x43, 0xE5, 0xB5, 0x90, 0x43, - 0xE5, 0xB5, 0xAB, 0x43, 0xE5, 0xB5, 0xAE, 0x43, - // Bytes ac0 - aff - 0xE5, 0xB5, 0xBC, 0x43, 0xE5, 0xB6, 0xB2, 0x43, - 0xE5, 0xB6, 0xBA, 0x43, 0xE5, 0xB7, 0x9B, 0x43, - 0xE5, 0xB7, 0xA1, 0x43, 0xE5, 0xB7, 0xA2, 0x43, - 0xE5, 0xB7, 0xA5, 0x43, 0xE5, 0xB7, 0xA6, 0x43, - 0xE5, 0xB7, 0xB1, 0x43, 0xE5, 0xB7, 0xBD, 0x43, - 0xE5, 0xB7, 0xBE, 0x43, 0xE5, 0xB8, 0xA8, 0x43, - 0xE5, 0xB8, 0xBD, 0x43, 0xE5, 0xB9, 0xA9, 0x43, - 0xE5, 0xB9, 0xB2, 0x43, 0xE5, 0xB9, 0xB4, 0x43, - // Bytes b00 - b3f - 0xE5, 0xB9, 0xBA, 0x43, 0xE5, 0xB9, 0xBC, 0x43, - 0xE5, 0xB9, 0xBF, 0x43, 0xE5, 0xBA, 0xA6, 0x43, - 0xE5, 0xBA, 0xB0, 0x43, 0xE5, 0xBA, 0xB3, 0x43, - 0xE5, 0xBA, 0xB6, 0x43, 0xE5, 0xBB, 0x89, 0x43, - 0xE5, 0xBB, 0x8A, 0x43, 0xE5, 0xBB, 0x92, 0x43, - 0xE5, 0xBB, 0x93, 0x43, 0xE5, 0xBB, 0x99, 0x43, - 0xE5, 0xBB, 0xAC, 0x43, 0xE5, 0xBB, 0xB4, 0x43, - 0xE5, 0xBB, 0xBE, 0x43, 0xE5, 0xBC, 0x84, 0x43, - // Bytes b40 - b7f - 0xE5, 0xBC, 0x8B, 0x43, 0xE5, 0xBC, 0x93, 0x43, - 0xE5, 0xBC, 0xA2, 0x43, 0xE5, 0xBD, 0x90, 0x43, - 0xE5, 0xBD, 0x93, 0x43, 0xE5, 0xBD, 0xA1, 0x43, - 0xE5, 0xBD, 0xA2, 0x43, 0xE5, 0xBD, 0xA9, 0x43, - 0xE5, 0xBD, 0xAB, 0x43, 0xE5, 0xBD, 0xB3, 0x43, - 0xE5, 0xBE, 0x8B, 0x43, 0xE5, 0xBE, 0x8C, 0x43, - 0xE5, 0xBE, 0x97, 0x43, 0xE5, 0xBE, 0x9A, 0x43, - 0xE5, 0xBE, 0xA9, 0x43, 0xE5, 0xBE, 0xAD, 0x43, - // Bytes b80 - bbf - 0xE5, 0xBF, 0x83, 0x43, 0xE5, 0xBF, 0x8D, 0x43, - 0xE5, 0xBF, 0x97, 0x43, 0xE5, 0xBF, 0xB5, 0x43, - 0xE5, 0xBF, 0xB9, 0x43, 0xE6, 0x80, 0x92, 0x43, - 0xE6, 0x80, 0x9C, 0x43, 0xE6, 0x81, 0xB5, 0x43, - 0xE6, 0x82, 0x81, 0x43, 0xE6, 0x82, 0x94, 0x43, - 0xE6, 0x83, 0x87, 0x43, 0xE6, 0x83, 0x98, 0x43, - 0xE6, 0x83, 0xA1, 0x43, 0xE6, 0x84, 0x88, 0x43, - 0xE6, 0x85, 0x84, 0x43, 0xE6, 0x85, 0x88, 0x43, - // Bytes bc0 - bff - 0xE6, 0x85, 0x8C, 0x43, 0xE6, 0x85, 0x8E, 0x43, - 0xE6, 0x85, 0xA0, 0x43, 0xE6, 0x85, 0xA8, 0x43, - 0xE6, 0x85, 0xBA, 0x43, 0xE6, 0x86, 0x8E, 0x43, - 0xE6, 0x86, 0x90, 0x43, 0xE6, 0x86, 0xA4, 0x43, - 0xE6, 0x86, 0xAF, 0x43, 0xE6, 0x86, 0xB2, 0x43, - 0xE6, 0x87, 0x9E, 0x43, 0xE6, 0x87, 0xB2, 0x43, - 0xE6, 0x87, 0xB6, 0x43, 0xE6, 0x88, 0x80, 0x43, - 0xE6, 0x88, 0x88, 0x43, 0xE6, 0x88, 0x90, 0x43, - // Bytes c00 - c3f - 0xE6, 0x88, 0x9B, 0x43, 0xE6, 0x88, 0xAE, 0x43, - 0xE6, 0x88, 0xB4, 0x43, 0xE6, 0x88, 0xB6, 0x43, - 0xE6, 0x89, 0x8B, 0x43, 0xE6, 0x89, 0x93, 0x43, - 0xE6, 0x89, 0x9D, 0x43, 0xE6, 0x8A, 0x95, 0x43, - 0xE6, 0x8A, 0xB1, 0x43, 0xE6, 0x8B, 0x89, 0x43, - 0xE6, 0x8B, 0x8F, 0x43, 0xE6, 0x8B, 0x93, 0x43, - 0xE6, 0x8B, 0x94, 0x43, 0xE6, 0x8B, 0xBC, 0x43, - 0xE6, 0x8B, 0xBE, 0x43, 0xE6, 0x8C, 0x87, 0x43, - // Bytes c40 - c7f - 0xE6, 0x8C, 0xBD, 0x43, 0xE6, 0x8D, 0x90, 0x43, - 0xE6, 0x8D, 0x95, 0x43, 0xE6, 0x8D, 0xA8, 0x43, - 0xE6, 0x8D, 0xBB, 0x43, 0xE6, 0x8E, 0x83, 0x43, - 0xE6, 0x8E, 0xA0, 0x43, 0xE6, 0x8E, 0xA9, 0x43, - 0xE6, 0x8F, 0x84, 0x43, 0xE6, 0x8F, 0x85, 0x43, - 0xE6, 0x8F, 0xA4, 0x43, 0xE6, 0x90, 0x9C, 0x43, - 0xE6, 0x90, 0xA2, 0x43, 0xE6, 0x91, 0x92, 0x43, - 0xE6, 0x91, 0xA9, 0x43, 0xE6, 0x91, 0xB7, 0x43, - // Bytes c80 - cbf - 0xE6, 0x91, 0xBE, 0x43, 0xE6, 0x92, 0x9A, 0x43, - 0xE6, 0x92, 0x9D, 0x43, 0xE6, 0x93, 0x84, 0x43, - 0xE6, 0x94, 0xAF, 0x43, 0xE6, 0x94, 0xB4, 0x43, - 0xE6, 0x95, 0x8F, 0x43, 0xE6, 0x95, 0x96, 0x43, - 0xE6, 0x95, 0xAC, 0x43, 0xE6, 0x95, 0xB8, 0x43, - 0xE6, 0x96, 0x87, 0x43, 0xE6, 0x96, 0x97, 0x43, - 0xE6, 0x96, 0x99, 0x43, 0xE6, 0x96, 0xA4, 0x43, - 0xE6, 0x96, 0xB0, 0x43, 0xE6, 0x96, 0xB9, 0x43, - // Bytes cc0 - cff - 0xE6, 0x97, 0x85, 0x43, 0xE6, 0x97, 0xA0, 0x43, - 0xE6, 0x97, 0xA2, 0x43, 0xE6, 0x97, 0xA3, 0x43, - 0xE6, 0x97, 0xA5, 0x43, 0xE6, 0x98, 0x93, 0x43, - 0xE6, 0x98, 0xA0, 0x43, 0xE6, 0x99, 0x89, 0x43, - 0xE6, 0x99, 0xB4, 0x43, 0xE6, 0x9A, 0x88, 0x43, - 0xE6, 0x9A, 0x91, 0x43, 0xE6, 0x9A, 0x9C, 0x43, - 0xE6, 0x9A, 0xB4, 0x43, 0xE6, 0x9B, 0x86, 0x43, - 0xE6, 0x9B, 0xB0, 0x43, 0xE6, 0x9B, 0xB4, 0x43, - // Bytes d00 - d3f - 0xE6, 0x9B, 0xB8, 0x43, 0xE6, 0x9C, 0x80, 0x43, - 0xE6, 0x9C, 0x88, 0x43, 0xE6, 0x9C, 0x89, 0x43, - 0xE6, 0x9C, 0x97, 0x43, 0xE6, 0x9C, 0x9B, 0x43, - 0xE6, 0x9C, 0xA1, 0x43, 0xE6, 0x9C, 0xA8, 0x43, - 0xE6, 0x9D, 0x8E, 0x43, 0xE6, 0x9D, 0x93, 0x43, - 0xE6, 0x9D, 0x96, 0x43, 0xE6, 0x9D, 0x9E, 0x43, - 0xE6, 0x9D, 0xBB, 0x43, 0xE6, 0x9E, 0x85, 0x43, - 0xE6, 0x9E, 0x97, 0x43, 0xE6, 0x9F, 0xB3, 0x43, - // Bytes d40 - d7f - 0xE6, 0x9F, 0xBA, 0x43, 0xE6, 0xA0, 0x97, 0x43, - 0xE6, 0xA0, 0x9F, 0x43, 0xE6, 0xA0, 0xAA, 0x43, - 0xE6, 0xA1, 0x92, 0x43, 0xE6, 0xA2, 0x81, 0x43, - 0xE6, 0xA2, 0x85, 0x43, 0xE6, 0xA2, 0x8E, 0x43, - 0xE6, 0xA2, 0xA8, 0x43, 0xE6, 0xA4, 0x94, 0x43, - 0xE6, 0xA5, 0x82, 0x43, 0xE6, 0xA6, 0xA3, 0x43, - 0xE6, 0xA7, 0xAA, 0x43, 0xE6, 0xA8, 0x82, 0x43, - 0xE6, 0xA8, 0x93, 0x43, 0xE6, 0xAA, 0xA8, 0x43, - // Bytes d80 - dbf - 0xE6, 0xAB, 0x93, 0x43, 0xE6, 0xAB, 0x9B, 0x43, - 0xE6, 0xAC, 0x84, 0x43, 0xE6, 0xAC, 0xA0, 0x43, - 0xE6, 0xAC, 0xA1, 0x43, 0xE6, 0xAD, 0x94, 0x43, - 0xE6, 0xAD, 0xA2, 0x43, 0xE6, 0xAD, 0xA3, 0x43, - 0xE6, 0xAD, 0xB2, 0x43, 0xE6, 0xAD, 0xB7, 0x43, - 0xE6, 0xAD, 0xB9, 0x43, 0xE6, 0xAE, 0x9F, 0x43, - 0xE6, 0xAE, 0xAE, 0x43, 0xE6, 0xAE, 0xB3, 0x43, - 0xE6, 0xAE, 0xBA, 0x43, 0xE6, 0xAE, 0xBB, 0x43, - // Bytes dc0 - dff - 0xE6, 0xAF, 0x8B, 0x43, 0xE6, 0xAF, 0x8D, 0x43, - 0xE6, 0xAF, 0x94, 0x43, 0xE6, 0xAF, 0x9B, 0x43, - 0xE6, 0xB0, 0x8F, 0x43, 0xE6, 0xB0, 0x94, 0x43, - 0xE6, 0xB0, 0xB4, 0x43, 0xE6, 0xB1, 0x8E, 0x43, - 0xE6, 0xB1, 0xA7, 0x43, 0xE6, 0xB2, 0x88, 0x43, - 0xE6, 0xB2, 0xBF, 0x43, 0xE6, 0xB3, 0x8C, 0x43, - 0xE6, 0xB3, 0x8D, 0x43, 0xE6, 0xB3, 0xA5, 0x43, - 0xE6, 0xB3, 0xA8, 0x43, 0xE6, 0xB4, 0x96, 0x43, - // Bytes e00 - e3f - 0xE6, 0xB4, 0x9B, 0x43, 0xE6, 0xB4, 0x9E, 0x43, - 0xE6, 0xB4, 0xB4, 0x43, 0xE6, 0xB4, 0xBE, 0x43, - 0xE6, 0xB5, 0x81, 0x43, 0xE6, 0xB5, 0xA9, 0x43, - 0xE6, 0xB5, 0xAA, 0x43, 0xE6, 0xB5, 0xB7, 0x43, - 0xE6, 0xB5, 0xB8, 0x43, 0xE6, 0xB6, 0x85, 0x43, - 0xE6, 0xB7, 0x8B, 0x43, 0xE6, 0xB7, 0x9A, 0x43, - 0xE6, 0xB7, 0xAA, 0x43, 0xE6, 0xB7, 0xB9, 0x43, - 0xE6, 0xB8, 0x9A, 0x43, 0xE6, 0xB8, 0xAF, 0x43, - // Bytes e40 - e7f - 0xE6, 0xB9, 0xAE, 0x43, 0xE6, 0xBA, 0x80, 0x43, - 0xE6, 0xBA, 0x9C, 0x43, 0xE6, 0xBA, 0xBA, 0x43, - 0xE6, 0xBB, 0x87, 0x43, 0xE6, 0xBB, 0x8B, 0x43, - 0xE6, 0xBB, 0x91, 0x43, 0xE6, 0xBB, 0x9B, 0x43, - 0xE6, 0xBC, 0x8F, 0x43, 0xE6, 0xBC, 0x94, 0x43, - 0xE6, 0xBC, 0xA2, 0x43, 0xE6, 0xBC, 0xA3, 0x43, - 0xE6, 0xBD, 0xAE, 0x43, 0xE6, 0xBF, 0x86, 0x43, - 0xE6, 0xBF, 0xAB, 0x43, 0xE6, 0xBF, 0xBE, 0x43, - // Bytes e80 - ebf - 0xE7, 0x80, 0x9B, 0x43, 0xE7, 0x80, 0x9E, 0x43, - 0xE7, 0x80, 0xB9, 0x43, 0xE7, 0x81, 0x8A, 0x43, - 0xE7, 0x81, 0xAB, 0x43, 0xE7, 0x81, 0xB0, 0x43, - 0xE7, 0x81, 0xB7, 0x43, 0xE7, 0x81, 0xBD, 0x43, - 0xE7, 0x82, 0x99, 0x43, 0xE7, 0x82, 0xAD, 0x43, - 0xE7, 0x83, 0x88, 0x43, 0xE7, 0x83, 0x99, 0x43, - 0xE7, 0x84, 0xA1, 0x43, 0xE7, 0x85, 0x85, 0x43, - 0xE7, 0x85, 0x89, 0x43, 0xE7, 0x85, 0xAE, 0x43, - // Bytes ec0 - eff - 0xE7, 0x86, 0x9C, 0x43, 0xE7, 0x87, 0x8E, 0x43, - 0xE7, 0x87, 0x90, 0x43, 0xE7, 0x88, 0x90, 0x43, - 0xE7, 0x88, 0x9B, 0x43, 0xE7, 0x88, 0xA8, 0x43, - 0xE7, 0x88, 0xAA, 0x43, 0xE7, 0x88, 0xAB, 0x43, - 0xE7, 0x88, 0xB5, 0x43, 0xE7, 0x88, 0xB6, 0x43, - 0xE7, 0x88, 0xBB, 0x43, 0xE7, 0x88, 0xBF, 0x43, - 0xE7, 0x89, 0x87, 0x43, 0xE7, 0x89, 0x90, 0x43, - 0xE7, 0x89, 0x99, 0x43, 0xE7, 0x89, 0x9B, 0x43, - // Bytes f00 - f3f - 0xE7, 0x89, 0xA2, 0x43, 0xE7, 0x89, 0xB9, 0x43, - 0xE7, 0x8A, 0x80, 0x43, 0xE7, 0x8A, 0x95, 0x43, - 0xE7, 0x8A, 0xAC, 0x43, 0xE7, 0x8A, 0xAF, 0x43, - 0xE7, 0x8B, 0x80, 0x43, 0xE7, 0x8B, 0xBC, 0x43, - 0xE7, 0x8C, 0xAA, 0x43, 0xE7, 0x8D, 0xB5, 0x43, - 0xE7, 0x8D, 0xBA, 0x43, 0xE7, 0x8E, 0x84, 0x43, - 0xE7, 0x8E, 0x87, 0x43, 0xE7, 0x8E, 0x89, 0x43, - 0xE7, 0x8E, 0x8B, 0x43, 0xE7, 0x8E, 0xA5, 0x43, - // Bytes f40 - f7f - 0xE7, 0x8E, 0xB2, 0x43, 0xE7, 0x8F, 0x9E, 0x43, - 0xE7, 0x90, 0x86, 0x43, 0xE7, 0x90, 0x89, 0x43, - 0xE7, 0x90, 0xA2, 0x43, 0xE7, 0x91, 0x87, 0x43, - 0xE7, 0x91, 0x9C, 0x43, 0xE7, 0x91, 0xA9, 0x43, - 0xE7, 0x91, 0xB1, 0x43, 0xE7, 0x92, 0x85, 0x43, - 0xE7, 0x92, 0x89, 0x43, 0xE7, 0x92, 0x98, 0x43, - 0xE7, 0x93, 0x8A, 0x43, 0xE7, 0x93, 0x9C, 0x43, - 0xE7, 0x93, 0xA6, 0x43, 0xE7, 0x94, 0x86, 0x43, - // Bytes f80 - fbf - 0xE7, 0x94, 0x98, 0x43, 0xE7, 0x94, 0x9F, 0x43, - 0xE7, 0x94, 0xA4, 0x43, 0xE7, 0x94, 0xA8, 0x43, - 0xE7, 0x94, 0xB0, 0x43, 0xE7, 0x94, 0xB2, 0x43, - 0xE7, 0x94, 0xB3, 0x43, 0xE7, 0x94, 0xB7, 0x43, - 0xE7, 0x94, 0xBB, 0x43, 0xE7, 0x94, 0xBE, 0x43, - 0xE7, 0x95, 0x99, 0x43, 0xE7, 0x95, 0xA5, 0x43, - 0xE7, 0x95, 0xB0, 0x43, 0xE7, 0x96, 0x8B, 0x43, - 0xE7, 0x96, 0x92, 0x43, 0xE7, 0x97, 0xA2, 0x43, - // Bytes fc0 - fff - 0xE7, 0x98, 0x90, 0x43, 0xE7, 0x98, 0x9D, 0x43, - 0xE7, 0x98, 0x9F, 0x43, 0xE7, 0x99, 0x82, 0x43, - 0xE7, 0x99, 0xA9, 0x43, 0xE7, 0x99, 0xB6, 0x43, - 0xE7, 0x99, 0xBD, 0x43, 0xE7, 0x9A, 0xAE, 0x43, - 0xE7, 0x9A, 0xBF, 0x43, 0xE7, 0x9B, 0x8A, 0x43, - 0xE7, 0x9B, 0x9B, 0x43, 0xE7, 0x9B, 0xA3, 0x43, - 0xE7, 0x9B, 0xA7, 0x43, 0xE7, 0x9B, 0xAE, 0x43, - 0xE7, 0x9B, 0xB4, 0x43, 0xE7, 0x9C, 0x81, 0x43, - // Bytes 1000 - 103f - 0xE7, 0x9C, 0x9E, 0x43, 0xE7, 0x9C, 0x9F, 0x43, - 0xE7, 0x9D, 0x80, 0x43, 0xE7, 0x9D, 0x8A, 0x43, - 0xE7, 0x9E, 0x8B, 0x43, 0xE7, 0x9E, 0xA7, 0x43, - 0xE7, 0x9F, 0x9B, 0x43, 0xE7, 0x9F, 0xA2, 0x43, - 0xE7, 0x9F, 0xB3, 0x43, 0xE7, 0xA1, 0x8E, 0x43, - 0xE7, 0xA1, 0xAB, 0x43, 0xE7, 0xA2, 0x8C, 0x43, - 0xE7, 0xA2, 0x91, 0x43, 0xE7, 0xA3, 0x8A, 0x43, - 0xE7, 0xA3, 0x8C, 0x43, 0xE7, 0xA3, 0xBB, 0x43, - // Bytes 1040 - 107f - 0xE7, 0xA4, 0xAA, 0x43, 0xE7, 0xA4, 0xBA, 0x43, - 0xE7, 0xA4, 0xBC, 0x43, 0xE7, 0xA4, 0xBE, 0x43, - 0xE7, 0xA5, 0x88, 0x43, 0xE7, 0xA5, 0x89, 0x43, - 0xE7, 0xA5, 0x90, 0x43, 0xE7, 0xA5, 0x96, 0x43, - 0xE7, 0xA5, 0x9D, 0x43, 0xE7, 0xA5, 0x9E, 0x43, - 0xE7, 0xA5, 0xA5, 0x43, 0xE7, 0xA5, 0xBF, 0x43, - 0xE7, 0xA6, 0x81, 0x43, 0xE7, 0xA6, 0x8D, 0x43, - 0xE7, 0xA6, 0x8E, 0x43, 0xE7, 0xA6, 0x8F, 0x43, - // Bytes 1080 - 10bf - 0xE7, 0xA6, 0xAE, 0x43, 0xE7, 0xA6, 0xB8, 0x43, - 0xE7, 0xA6, 0xBE, 0x43, 0xE7, 0xA7, 0x8A, 0x43, - 0xE7, 0xA7, 0x98, 0x43, 0xE7, 0xA7, 0xAB, 0x43, - 0xE7, 0xA8, 0x9C, 0x43, 0xE7, 0xA9, 0x80, 0x43, - 0xE7, 0xA9, 0x8A, 0x43, 0xE7, 0xA9, 0x8F, 0x43, - 0xE7, 0xA9, 0xB4, 0x43, 0xE7, 0xA9, 0xBA, 0x43, - 0xE7, 0xAA, 0x81, 0x43, 0xE7, 0xAA, 0xB1, 0x43, - 0xE7, 0xAB, 0x8B, 0x43, 0xE7, 0xAB, 0xAE, 0x43, - // Bytes 10c0 - 10ff - 0xE7, 0xAB, 0xB9, 0x43, 0xE7, 0xAC, 0xA0, 0x43, - 0xE7, 0xAE, 0x8F, 0x43, 0xE7, 0xAF, 0x80, 0x43, - 0xE7, 0xAF, 0x86, 0x43, 0xE7, 0xAF, 0x89, 0x43, - 0xE7, 0xB0, 0xBE, 0x43, 0xE7, 0xB1, 0xA0, 0x43, - 0xE7, 0xB1, 0xB3, 0x43, 0xE7, 0xB1, 0xBB, 0x43, - 0xE7, 0xB2, 0x92, 0x43, 0xE7, 0xB2, 0xBE, 0x43, - 0xE7, 0xB3, 0x92, 0x43, 0xE7, 0xB3, 0x96, 0x43, - 0xE7, 0xB3, 0xA3, 0x43, 0xE7, 0xB3, 0xA7, 0x43, - // Bytes 1100 - 113f - 0xE7, 0xB3, 0xA8, 0x43, 0xE7, 0xB3, 0xB8, 0x43, - 0xE7, 0xB4, 0x80, 0x43, 0xE7, 0xB4, 0x90, 0x43, - 0xE7, 0xB4, 0xA2, 0x43, 0xE7, 0xB4, 0xAF, 0x43, - 0xE7, 0xB5, 0x82, 0x43, 0xE7, 0xB5, 0x9B, 0x43, - 0xE7, 0xB5, 0xA3, 0x43, 0xE7, 0xB6, 0xA0, 0x43, - 0xE7, 0xB6, 0xBE, 0x43, 0xE7, 0xB7, 0x87, 0x43, - 0xE7, 0xB7, 0xB4, 0x43, 0xE7, 0xB8, 0x82, 0x43, - 0xE7, 0xB8, 0x89, 0x43, 0xE7, 0xB8, 0xB7, 0x43, - // Bytes 1140 - 117f - 0xE7, 0xB9, 0x81, 0x43, 0xE7, 0xB9, 0x85, 0x43, - 0xE7, 0xBC, 0xB6, 0x43, 0xE7, 0xBC, 0xBE, 0x43, - 0xE7, 0xBD, 0x91, 0x43, 0xE7, 0xBD, 0xB2, 0x43, - 0xE7, 0xBD, 0xB9, 0x43, 0xE7, 0xBD, 0xBA, 0x43, - 0xE7, 0xBE, 0x85, 0x43, 0xE7, 0xBE, 0x8A, 0x43, - 0xE7, 0xBE, 0x95, 0x43, 0xE7, 0xBE, 0x9A, 0x43, - 0xE7, 0xBE, 0xBD, 0x43, 0xE7, 0xBF, 0xBA, 0x43, - 0xE8, 0x80, 0x81, 0x43, 0xE8, 0x80, 0x85, 0x43, - // Bytes 1180 - 11bf - 0xE8, 0x80, 0x8C, 0x43, 0xE8, 0x80, 0x92, 0x43, - 0xE8, 0x80, 0xB3, 0x43, 0xE8, 0x81, 0x86, 0x43, - 0xE8, 0x81, 0xA0, 0x43, 0xE8, 0x81, 0xAF, 0x43, - 0xE8, 0x81, 0xB0, 0x43, 0xE8, 0x81, 0xBE, 0x43, - 0xE8, 0x81, 0xBF, 0x43, 0xE8, 0x82, 0x89, 0x43, - 0xE8, 0x82, 0x8B, 0x43, 0xE8, 0x82, 0xAD, 0x43, - 0xE8, 0x82, 0xB2, 0x43, 0xE8, 0x84, 0x83, 0x43, - 0xE8, 0x84, 0xBE, 0x43, 0xE8, 0x87, 0x98, 0x43, - // Bytes 11c0 - 11ff - 0xE8, 0x87, 0xA3, 0x43, 0xE8, 0x87, 0xA8, 0x43, - 0xE8, 0x87, 0xAA, 0x43, 0xE8, 0x87, 0xAD, 0x43, - 0xE8, 0x87, 0xB3, 0x43, 0xE8, 0x87, 0xBC, 0x43, - 0xE8, 0x88, 0x81, 0x43, 0xE8, 0x88, 0x84, 0x43, - 0xE8, 0x88, 0x8C, 0x43, 0xE8, 0x88, 0x98, 0x43, - 0xE8, 0x88, 0x9B, 0x43, 0xE8, 0x88, 0x9F, 0x43, - 0xE8, 0x89, 0xAE, 0x43, 0xE8, 0x89, 0xAF, 0x43, - 0xE8, 0x89, 0xB2, 0x43, 0xE8, 0x89, 0xB8, 0x43, - // Bytes 1200 - 123f - 0xE8, 0x89, 0xB9, 0x43, 0xE8, 0x8A, 0x8B, 0x43, - 0xE8, 0x8A, 0x91, 0x43, 0xE8, 0x8A, 0x9D, 0x43, - 0xE8, 0x8A, 0xB1, 0x43, 0xE8, 0x8A, 0xB3, 0x43, - 0xE8, 0x8A, 0xBD, 0x43, 0xE8, 0x8B, 0xA5, 0x43, - 0xE8, 0x8B, 0xA6, 0x43, 0xE8, 0x8C, 0x9D, 0x43, - 0xE8, 0x8C, 0xA3, 0x43, 0xE8, 0x8C, 0xB6, 0x43, - 0xE8, 0x8D, 0x92, 0x43, 0xE8, 0x8D, 0x93, 0x43, - 0xE8, 0x8D, 0xA3, 0x43, 0xE8, 0x8E, 0xAD, 0x43, - // Bytes 1240 - 127f - 0xE8, 0x8E, 0xBD, 0x43, 0xE8, 0x8F, 0x89, 0x43, - 0xE8, 0x8F, 0x8A, 0x43, 0xE8, 0x8F, 0x8C, 0x43, - 0xE8, 0x8F, 0x9C, 0x43, 0xE8, 0x8F, 0xA7, 0x43, - 0xE8, 0x8F, 0xAF, 0x43, 0xE8, 0x8F, 0xB1, 0x43, - 0xE8, 0x90, 0xBD, 0x43, 0xE8, 0x91, 0x89, 0x43, - 0xE8, 0x91, 0x97, 0x43, 0xE8, 0x93, 0xAE, 0x43, - 0xE8, 0x93, 0xB1, 0x43, 0xE8, 0x93, 0xB3, 0x43, - 0xE8, 0x93, 0xBC, 0x43, 0xE8, 0x94, 0x96, 0x43, - // Bytes 1280 - 12bf - 0xE8, 0x95, 0xA4, 0x43, 0xE8, 0x97, 0x8D, 0x43, - 0xE8, 0x97, 0xBA, 0x43, 0xE8, 0x98, 0x86, 0x43, - 0xE8, 0x98, 0x92, 0x43, 0xE8, 0x98, 0xAD, 0x43, - 0xE8, 0x98, 0xBF, 0x43, 0xE8, 0x99, 0x8D, 0x43, - 0xE8, 0x99, 0x90, 0x43, 0xE8, 0x99, 0x9C, 0x43, - 0xE8, 0x99, 0xA7, 0x43, 0xE8, 0x99, 0xA9, 0x43, - 0xE8, 0x99, 0xAB, 0x43, 0xE8, 0x9A, 0x88, 0x43, - 0xE8, 0x9A, 0xA9, 0x43, 0xE8, 0x9B, 0xA2, 0x43, - // Bytes 12c0 - 12ff - 0xE8, 0x9C, 0x8E, 0x43, 0xE8, 0x9C, 0xA8, 0x43, - 0xE8, 0x9D, 0xAB, 0x43, 0xE8, 0x9D, 0xB9, 0x43, - 0xE8, 0x9E, 0x86, 0x43, 0xE8, 0x9E, 0xBA, 0x43, - 0xE8, 0x9F, 0xA1, 0x43, 0xE8, 0xA0, 0x81, 0x43, - 0xE8, 0xA0, 0x9F, 0x43, 0xE8, 0xA1, 0x80, 0x43, - 0xE8, 0xA1, 0x8C, 0x43, 0xE8, 0xA1, 0xA0, 0x43, - 0xE8, 0xA1, 0xA3, 0x43, 0xE8, 0xA3, 0x82, 0x43, - 0xE8, 0xA3, 0x8F, 0x43, 0xE8, 0xA3, 0x97, 0x43, - // Bytes 1300 - 133f - 0xE8, 0xA3, 0x9E, 0x43, 0xE8, 0xA3, 0xA1, 0x43, - 0xE8, 0xA3, 0xB8, 0x43, 0xE8, 0xA3, 0xBA, 0x43, - 0xE8, 0xA4, 0x90, 0x43, 0xE8, 0xA5, 0x81, 0x43, - 0xE8, 0xA5, 0xA4, 0x43, 0xE8, 0xA5, 0xBE, 0x43, - 0xE8, 0xA6, 0x86, 0x43, 0xE8, 0xA6, 0x8B, 0x43, - 0xE8, 0xA6, 0x96, 0x43, 0xE8, 0xA7, 0x92, 0x43, - 0xE8, 0xA7, 0xA3, 0x43, 0xE8, 0xA8, 0x80, 0x43, - 0xE8, 0xAA, 0xA0, 0x43, 0xE8, 0xAA, 0xAA, 0x43, - // Bytes 1340 - 137f - 0xE8, 0xAA, 0xBF, 0x43, 0xE8, 0xAB, 0x8B, 0x43, - 0xE8, 0xAB, 0x92, 0x43, 0xE8, 0xAB, 0x96, 0x43, - 0xE8, 0xAB, 0xAD, 0x43, 0xE8, 0xAB, 0xB8, 0x43, - 0xE8, 0xAB, 0xBE, 0x43, 0xE8, 0xAC, 0x81, 0x43, - 0xE8, 0xAC, 0xB9, 0x43, 0xE8, 0xAD, 0x98, 0x43, - 0xE8, 0xAE, 0x80, 0x43, 0xE8, 0xAE, 0x8A, 0x43, - 0xE8, 0xB0, 0xB7, 0x43, 0xE8, 0xB1, 0x86, 0x43, - 0xE8, 0xB1, 0x88, 0x43, 0xE8, 0xB1, 0x95, 0x43, - // Bytes 1380 - 13bf - 0xE8, 0xB1, 0xB8, 0x43, 0xE8, 0xB2, 0x9D, 0x43, - 0xE8, 0xB2, 0xA1, 0x43, 0xE8, 0xB2, 0xA9, 0x43, - 0xE8, 0xB2, 0xAB, 0x43, 0xE8, 0xB3, 0x81, 0x43, - 0xE8, 0xB3, 0x82, 0x43, 0xE8, 0xB3, 0x87, 0x43, - 0xE8, 0xB3, 0x88, 0x43, 0xE8, 0xB3, 0x93, 0x43, - 0xE8, 0xB4, 0x88, 0x43, 0xE8, 0xB4, 0x9B, 0x43, - 0xE8, 0xB5, 0xA4, 0x43, 0xE8, 0xB5, 0xB0, 0x43, - 0xE8, 0xB5, 0xB7, 0x43, 0xE8, 0xB6, 0xB3, 0x43, - // Bytes 13c0 - 13ff - 0xE8, 0xB6, 0xBC, 0x43, 0xE8, 0xB7, 0x8B, 0x43, - 0xE8, 0xB7, 0xAF, 0x43, 0xE8, 0xB7, 0xB0, 0x43, - 0xE8, 0xBA, 0xAB, 0x43, 0xE8, 0xBB, 0x8A, 0x43, - 0xE8, 0xBB, 0x94, 0x43, 0xE8, 0xBC, 0xA6, 0x43, - 0xE8, 0xBC, 0xAA, 0x43, 0xE8, 0xBC, 0xB8, 0x43, - 0xE8, 0xBC, 0xBB, 0x43, 0xE8, 0xBD, 0xA2, 0x43, - 0xE8, 0xBE, 0x9B, 0x43, 0xE8, 0xBE, 0x9E, 0x43, - 0xE8, 0xBE, 0xB0, 0x43, 0xE8, 0xBE, 0xB5, 0x43, - // Bytes 1400 - 143f - 0xE8, 0xBE, 0xB6, 0x43, 0xE9, 0x80, 0xA3, 0x43, - 0xE9, 0x80, 0xB8, 0x43, 0xE9, 0x81, 0x8A, 0x43, - 0xE9, 0x81, 0xA9, 0x43, 0xE9, 0x81, 0xB2, 0x43, - 0xE9, 0x81, 0xBC, 0x43, 0xE9, 0x82, 0x8F, 0x43, - 0xE9, 0x82, 0x91, 0x43, 0xE9, 0x82, 0x94, 0x43, - 0xE9, 0x83, 0x8E, 0x43, 0xE9, 0x83, 0x9E, 0x43, - 0xE9, 0x83, 0xB1, 0x43, 0xE9, 0x83, 0xBD, 0x43, - 0xE9, 0x84, 0x91, 0x43, 0xE9, 0x84, 0x9B, 0x43, - // Bytes 1440 - 147f - 0xE9, 0x85, 0x89, 0x43, 0xE9, 0x85, 0x8D, 0x43, - 0xE9, 0x85, 0xAA, 0x43, 0xE9, 0x86, 0x99, 0x43, - 0xE9, 0x86, 0xB4, 0x43, 0xE9, 0x87, 0x86, 0x43, - 0xE9, 0x87, 0x8C, 0x43, 0xE9, 0x87, 0x8F, 0x43, - 0xE9, 0x87, 0x91, 0x43, 0xE9, 0x88, 0xB4, 0x43, - 0xE9, 0x88, 0xB8, 0x43, 0xE9, 0x89, 0xB6, 0x43, - 0xE9, 0x89, 0xBC, 0x43, 0xE9, 0x8B, 0x97, 0x43, - 0xE9, 0x8B, 0x98, 0x43, 0xE9, 0x8C, 0x84, 0x43, - // Bytes 1480 - 14bf - 0xE9, 0x8D, 0x8A, 0x43, 0xE9, 0x8F, 0xB9, 0x43, - 0xE9, 0x90, 0x95, 0x43, 0xE9, 0x95, 0xB7, 0x43, - 0xE9, 0x96, 0x80, 0x43, 0xE9, 0x96, 0x8B, 0x43, - 0xE9, 0x96, 0xAD, 0x43, 0xE9, 0x96, 0xB7, 0x43, - 0xE9, 0x98, 0x9C, 0x43, 0xE9, 0x98, 0xAE, 0x43, - 0xE9, 0x99, 0x8B, 0x43, 0xE9, 0x99, 0x8D, 0x43, - 0xE9, 0x99, 0xB5, 0x43, 0xE9, 0x99, 0xB8, 0x43, - 0xE9, 0x99, 0xBC, 0x43, 0xE9, 0x9A, 0x86, 0x43, - // Bytes 14c0 - 14ff - 0xE9, 0x9A, 0xA3, 0x43, 0xE9, 0x9A, 0xB6, 0x43, - 0xE9, 0x9A, 0xB7, 0x43, 0xE9, 0x9A, 0xB8, 0x43, - 0xE9, 0x9A, 0xB9, 0x43, 0xE9, 0x9B, 0x83, 0x43, - 0xE9, 0x9B, 0xA2, 0x43, 0xE9, 0x9B, 0xA3, 0x43, - 0xE9, 0x9B, 0xA8, 0x43, 0xE9, 0x9B, 0xB6, 0x43, - 0xE9, 0x9B, 0xB7, 0x43, 0xE9, 0x9C, 0xA3, 0x43, - 0xE9, 0x9C, 0xB2, 0x43, 0xE9, 0x9D, 0x88, 0x43, - 0xE9, 0x9D, 0x91, 0x43, 0xE9, 0x9D, 0x96, 0x43, - // Bytes 1500 - 153f - 0xE9, 0x9D, 0x9E, 0x43, 0xE9, 0x9D, 0xA2, 0x43, - 0xE9, 0x9D, 0xA9, 0x43, 0xE9, 0x9F, 0x8B, 0x43, - 0xE9, 0x9F, 0x9B, 0x43, 0xE9, 0x9F, 0xA0, 0x43, - 0xE9, 0x9F, 0xAD, 0x43, 0xE9, 0x9F, 0xB3, 0x43, - 0xE9, 0x9F, 0xBF, 0x43, 0xE9, 0xA0, 0x81, 0x43, - 0xE9, 0xA0, 0x85, 0x43, 0xE9, 0xA0, 0x8B, 0x43, - 0xE9, 0xA0, 0x98, 0x43, 0xE9, 0xA0, 0xA9, 0x43, - 0xE9, 0xA0, 0xBB, 0x43, 0xE9, 0xA1, 0x9E, 0x43, - // Bytes 1540 - 157f - 0xE9, 0xA2, 0xA8, 0x43, 0xE9, 0xA3, 0x9B, 0x43, - 0xE9, 0xA3, 0x9F, 0x43, 0xE9, 0xA3, 0xA2, 0x43, - 0xE9, 0xA3, 0xAF, 0x43, 0xE9, 0xA3, 0xBC, 0x43, - 0xE9, 0xA4, 0xA8, 0x43, 0xE9, 0xA4, 0xA9, 0x43, - 0xE9, 0xA6, 0x96, 0x43, 0xE9, 0xA6, 0x99, 0x43, - 0xE9, 0xA6, 0xA7, 0x43, 0xE9, 0xA6, 0xAC, 0x43, - 0xE9, 0xA7, 0x82, 0x43, 0xE9, 0xA7, 0xB1, 0x43, - 0xE9, 0xA7, 0xBE, 0x43, 0xE9, 0xA9, 0xAA, 0x43, - // Bytes 1580 - 15bf - 0xE9, 0xAA, 0xA8, 0x43, 0xE9, 0xAB, 0x98, 0x43, - 0xE9, 0xAB, 0x9F, 0x43, 0xE9, 0xAC, 0x92, 0x43, - 0xE9, 0xAC, 0xA5, 0x43, 0xE9, 0xAC, 0xAF, 0x43, - 0xE9, 0xAC, 0xB2, 0x43, 0xE9, 0xAC, 0xBC, 0x43, - 0xE9, 0xAD, 0x9A, 0x43, 0xE9, 0xAD, 0xAF, 0x43, - 0xE9, 0xB1, 0x80, 0x43, 0xE9, 0xB1, 0x97, 0x43, - 0xE9, 0xB3, 0xA5, 0x43, 0xE9, 0xB3, 0xBD, 0x43, - 0xE9, 0xB5, 0xA7, 0x43, 0xE9, 0xB6, 0xB4, 0x43, - // Bytes 15c0 - 15ff - 0xE9, 0xB7, 0xBA, 0x43, 0xE9, 0xB8, 0x9E, 0x43, - 0xE9, 0xB9, 0xB5, 0x43, 0xE9, 0xB9, 0xBF, 0x43, - 0xE9, 0xBA, 0x97, 0x43, 0xE9, 0xBA, 0x9F, 0x43, - 0xE9, 0xBA, 0xA5, 0x43, 0xE9, 0xBA, 0xBB, 0x43, - 0xE9, 0xBB, 0x83, 0x43, 0xE9, 0xBB, 0x8D, 0x43, - 0xE9, 0xBB, 0x8E, 0x43, 0xE9, 0xBB, 0x91, 0x43, - 0xE9, 0xBB, 0xB9, 0x43, 0xE9, 0xBB, 0xBD, 0x43, - 0xE9, 0xBB, 0xBE, 0x43, 0xE9, 0xBC, 0x85, 0x43, - // Bytes 1600 - 163f - 0xE9, 0xBC, 0x8E, 0x43, 0xE9, 0xBC, 0x8F, 0x43, - 0xE9, 0xBC, 0x93, 0x43, 0xE9, 0xBC, 0x96, 0x43, - 0xE9, 0xBC, 0xA0, 0x43, 0xE9, 0xBC, 0xBB, 0x43, - 0xE9, 0xBD, 0x83, 0x43, 0xE9, 0xBD, 0x8A, 0x43, - 0xE9, 0xBD, 0x92, 0x43, 0xE9, 0xBE, 0x8D, 0x43, - 0xE9, 0xBE, 0x8E, 0x43, 0xE9, 0xBE, 0x9C, 0x43, - 0xE9, 0xBE, 0x9F, 0x43, 0xE9, 0xBE, 0xA0, 0x43, - 0xEA, 0x9C, 0xA7, 0x43, 0xEA, 0x9D, 0xAF, 0x43, - // Bytes 1640 - 167f - 0xEA, 0xAC, 0xB7, 0x43, 0xEA, 0xAD, 0x92, 0x44, - 0xF0, 0xA0, 0x84, 0xA2, 0x44, 0xF0, 0xA0, 0x94, - 0x9C, 0x44, 0xF0, 0xA0, 0x94, 0xA5, 0x44, 0xF0, - 0xA0, 0x95, 0x8B, 0x44, 0xF0, 0xA0, 0x98, 0xBA, - 0x44, 0xF0, 0xA0, 0xA0, 0x84, 0x44, 0xF0, 0xA0, - 0xA3, 0x9E, 0x44, 0xF0, 0xA0, 0xA8, 0xAC, 0x44, - 0xF0, 0xA0, 0xAD, 0xA3, 0x44, 0xF0, 0xA1, 0x93, - 0xA4, 0x44, 0xF0, 0xA1, 0x9A, 0xA8, 0x44, 0xF0, - // Bytes 1680 - 16bf - 0xA1, 0x9B, 0xAA, 0x44, 0xF0, 0xA1, 0xA7, 0x88, - 0x44, 0xF0, 0xA1, 0xAC, 0x98, 0x44, 0xF0, 0xA1, - 0xB4, 0x8B, 0x44, 0xF0, 0xA1, 0xB7, 0xA4, 0x44, - 0xF0, 0xA1, 0xB7, 0xA6, 0x44, 0xF0, 0xA2, 0x86, - 0x83, 0x44, 0xF0, 0xA2, 0x86, 0x9F, 0x44, 0xF0, - 0xA2, 0x8C, 0xB1, 0x44, 0xF0, 0xA2, 0x9B, 0x94, - 0x44, 0xF0, 0xA2, 0xA1, 0x84, 0x44, 0xF0, 0xA2, - 0xA1, 0x8A, 0x44, 0xF0, 0xA2, 0xAC, 0x8C, 0x44, - // Bytes 16c0 - 16ff - 0xF0, 0xA2, 0xAF, 0xB1, 0x44, 0xF0, 0xA3, 0x80, - 0x8A, 0x44, 0xF0, 0xA3, 0x8A, 0xB8, 0x44, 0xF0, - 0xA3, 0x8D, 0x9F, 0x44, 0xF0, 0xA3, 0x8E, 0x93, - 0x44, 0xF0, 0xA3, 0x8E, 0x9C, 0x44, 0xF0, 0xA3, - 0x8F, 0x83, 0x44, 0xF0, 0xA3, 0x8F, 0x95, 0x44, - 0xF0, 0xA3, 0x91, 0xAD, 0x44, 0xF0, 0xA3, 0x9A, - 0xA3, 0x44, 0xF0, 0xA3, 0xA2, 0xA7, 0x44, 0xF0, - 0xA3, 0xAA, 0x8D, 0x44, 0xF0, 0xA3, 0xAB, 0xBA, - // Bytes 1700 - 173f - 0x44, 0xF0, 0xA3, 0xB2, 0xBC, 0x44, 0xF0, 0xA3, - 0xB4, 0x9E, 0x44, 0xF0, 0xA3, 0xBB, 0x91, 0x44, - 0xF0, 0xA3, 0xBD, 0x9E, 0x44, 0xF0, 0xA3, 0xBE, - 0x8E, 0x44, 0xF0, 0xA4, 0x89, 0xA3, 0x44, 0xF0, - 0xA4, 0x8B, 0xAE, 0x44, 0xF0, 0xA4, 0x8E, 0xAB, - 0x44, 0xF0, 0xA4, 0x98, 0x88, 0x44, 0xF0, 0xA4, - 0x9C, 0xB5, 0x44, 0xF0, 0xA4, 0xA0, 0x94, 0x44, - 0xF0, 0xA4, 0xB0, 0xB6, 0x44, 0xF0, 0xA4, 0xB2, - // Bytes 1740 - 177f - 0x92, 0x44, 0xF0, 0xA4, 0xBE, 0xA1, 0x44, 0xF0, - 0xA4, 0xBE, 0xB8, 0x44, 0xF0, 0xA5, 0x81, 0x84, - 0x44, 0xF0, 0xA5, 0x83, 0xB2, 0x44, 0xF0, 0xA5, - 0x83, 0xB3, 0x44, 0xF0, 0xA5, 0x84, 0x99, 0x44, - 0xF0, 0xA5, 0x84, 0xB3, 0x44, 0xF0, 0xA5, 0x89, - 0x89, 0x44, 0xF0, 0xA5, 0x90, 0x9D, 0x44, 0xF0, - 0xA5, 0x98, 0xA6, 0x44, 0xF0, 0xA5, 0x9A, 0x9A, - 0x44, 0xF0, 0xA5, 0x9B, 0x85, 0x44, 0xF0, 0xA5, - // Bytes 1780 - 17bf - 0xA5, 0xBC, 0x44, 0xF0, 0xA5, 0xAA, 0xA7, 0x44, - 0xF0, 0xA5, 0xAE, 0xAB, 0x44, 0xF0, 0xA5, 0xB2, - 0x80, 0x44, 0xF0, 0xA5, 0xB3, 0x90, 0x44, 0xF0, - 0xA5, 0xBE, 0x86, 0x44, 0xF0, 0xA6, 0x87, 0x9A, - 0x44, 0xF0, 0xA6, 0x88, 0xA8, 0x44, 0xF0, 0xA6, - 0x89, 0x87, 0x44, 0xF0, 0xA6, 0x8B, 0x99, 0x44, - 0xF0, 0xA6, 0x8C, 0xBE, 0x44, 0xF0, 0xA6, 0x93, - 0x9A, 0x44, 0xF0, 0xA6, 0x94, 0xA3, 0x44, 0xF0, - // Bytes 17c0 - 17ff - 0xA6, 0x96, 0xA8, 0x44, 0xF0, 0xA6, 0x9E, 0xA7, - 0x44, 0xF0, 0xA6, 0x9E, 0xB5, 0x44, 0xF0, 0xA6, - 0xAC, 0xBC, 0x44, 0xF0, 0xA6, 0xB0, 0xB6, 0x44, - 0xF0, 0xA6, 0xB3, 0x95, 0x44, 0xF0, 0xA6, 0xB5, - 0xAB, 0x44, 0xF0, 0xA6, 0xBC, 0xAC, 0x44, 0xF0, - 0xA6, 0xBE, 0xB1, 0x44, 0xF0, 0xA7, 0x83, 0x92, - 0x44, 0xF0, 0xA7, 0x8F, 0x8A, 0x44, 0xF0, 0xA7, - 0x99, 0xA7, 0x44, 0xF0, 0xA7, 0xA2, 0xAE, 0x44, - // Bytes 1800 - 183f - 0xF0, 0xA7, 0xA5, 0xA6, 0x44, 0xF0, 0xA7, 0xB2, - 0xA8, 0x44, 0xF0, 0xA7, 0xBB, 0x93, 0x44, 0xF0, - 0xA7, 0xBC, 0xAF, 0x44, 0xF0, 0xA8, 0x97, 0x92, - 0x44, 0xF0, 0xA8, 0x97, 0xAD, 0x44, 0xF0, 0xA8, - 0x9C, 0xAE, 0x44, 0xF0, 0xA8, 0xAF, 0xBA, 0x44, - 0xF0, 0xA8, 0xB5, 0xB7, 0x44, 0xF0, 0xA9, 0x85, - 0x85, 0x44, 0xF0, 0xA9, 0x87, 0x9F, 0x44, 0xF0, - 0xA9, 0x88, 0x9A, 0x44, 0xF0, 0xA9, 0x90, 0x8A, - // Bytes 1840 - 187f - 0x44, 0xF0, 0xA9, 0x92, 0x96, 0x44, 0xF0, 0xA9, - 0x96, 0xB6, 0x44, 0xF0, 0xA9, 0xAC, 0xB0, 0x44, - 0xF0, 0xAA, 0x83, 0x8E, 0x44, 0xF0, 0xAA, 0x84, - 0x85, 0x44, 0xF0, 0xAA, 0x88, 0x8E, 0x44, 0xF0, - 0xAA, 0x8A, 0x91, 0x44, 0xF0, 0xAA, 0x8E, 0x92, - 0x44, 0xF0, 0xAA, 0x98, 0x80, 0x42, 0x21, 0x21, - 0x42, 0x21, 0x3F, 0x42, 0x2E, 0x2E, 0x42, 0x30, - 0x2C, 0x42, 0x30, 0x2E, 0x42, 0x31, 0x2C, 0x42, - // Bytes 1880 - 18bf - 0x31, 0x2E, 0x42, 0x31, 0x30, 0x42, 0x31, 0x31, - 0x42, 0x31, 0x32, 0x42, 0x31, 0x33, 0x42, 0x31, - 0x34, 0x42, 0x31, 0x35, 0x42, 0x31, 0x36, 0x42, - 0x31, 0x37, 0x42, 0x31, 0x38, 0x42, 0x31, 0x39, - 0x42, 0x32, 0x2C, 0x42, 0x32, 0x2E, 0x42, 0x32, - 0x30, 0x42, 0x32, 0x31, 0x42, 0x32, 0x32, 0x42, - 0x32, 0x33, 0x42, 0x32, 0x34, 0x42, 0x32, 0x35, - 0x42, 0x32, 0x36, 0x42, 0x32, 0x37, 0x42, 0x32, - // Bytes 18c0 - 18ff - 0x38, 0x42, 0x32, 0x39, 0x42, 0x33, 0x2C, 0x42, - 0x33, 0x2E, 0x42, 0x33, 0x30, 0x42, 0x33, 0x31, - 0x42, 0x33, 0x32, 0x42, 0x33, 0x33, 0x42, 0x33, - 0x34, 0x42, 0x33, 0x35, 0x42, 0x33, 0x36, 0x42, - 0x33, 0x37, 0x42, 0x33, 0x38, 0x42, 0x33, 0x39, - 0x42, 0x34, 0x2C, 0x42, 0x34, 0x2E, 0x42, 0x34, - 0x30, 0x42, 0x34, 0x31, 0x42, 0x34, 0x32, 0x42, - 0x34, 0x33, 0x42, 0x34, 0x34, 0x42, 0x34, 0x35, - // Bytes 1900 - 193f - 0x42, 0x34, 0x36, 0x42, 0x34, 0x37, 0x42, 0x34, - 0x38, 0x42, 0x34, 0x39, 0x42, 0x35, 0x2C, 0x42, - 0x35, 0x2E, 0x42, 0x35, 0x30, 0x42, 0x36, 0x2C, - 0x42, 0x36, 0x2E, 0x42, 0x37, 0x2C, 0x42, 0x37, - 0x2E, 0x42, 0x38, 0x2C, 0x42, 0x38, 0x2E, 0x42, - 0x39, 0x2C, 0x42, 0x39, 0x2E, 0x42, 0x3D, 0x3D, - 0x42, 0x3F, 0x21, 0x42, 0x3F, 0x3F, 0x42, 0x41, - 0x55, 0x42, 0x42, 0x71, 0x42, 0x43, 0x44, 0x42, - // Bytes 1940 - 197f - 0x44, 0x4A, 0x42, 0x44, 0x5A, 0x42, 0x44, 0x7A, - 0x42, 0x47, 0x42, 0x42, 0x47, 0x79, 0x42, 0x48, - 0x50, 0x42, 0x48, 0x56, 0x42, 0x48, 0x67, 0x42, - 0x48, 0x7A, 0x42, 0x49, 0x49, 0x42, 0x49, 0x4A, - 0x42, 0x49, 0x55, 0x42, 0x49, 0x56, 0x42, 0x49, - 0x58, 0x42, 0x4B, 0x42, 0x42, 0x4B, 0x4B, 0x42, - 0x4B, 0x4D, 0x42, 0x4C, 0x4A, 0x42, 0x4C, 0x6A, - 0x42, 0x4D, 0x42, 0x42, 0x4D, 0x43, 0x42, 0x4D, - // Bytes 1980 - 19bf - 0x44, 0x42, 0x4D, 0x56, 0x42, 0x4D, 0x57, 0x42, - 0x4E, 0x4A, 0x42, 0x4E, 0x6A, 0x42, 0x4E, 0x6F, - 0x42, 0x50, 0x48, 0x42, 0x50, 0x52, 0x42, 0x50, - 0x61, 0x42, 0x52, 0x73, 0x42, 0x53, 0x44, 0x42, - 0x53, 0x4D, 0x42, 0x53, 0x53, 0x42, 0x53, 0x76, - 0x42, 0x54, 0x4D, 0x42, 0x56, 0x49, 0x42, 0x57, - 0x43, 0x42, 0x57, 0x5A, 0x42, 0x57, 0x62, 0x42, - 0x58, 0x49, 0x42, 0x63, 0x63, 0x42, 0x63, 0x64, - // Bytes 19c0 - 19ff - 0x42, 0x63, 0x6D, 0x42, 0x64, 0x42, 0x42, 0x64, - 0x61, 0x42, 0x64, 0x6C, 0x42, 0x64, 0x6D, 0x42, - 0x64, 0x7A, 0x42, 0x65, 0x56, 0x42, 0x66, 0x66, - 0x42, 0x66, 0x69, 0x42, 0x66, 0x6C, 0x42, 0x66, - 0x6D, 0x42, 0x68, 0x61, 0x42, 0x69, 0x69, 0x42, - 0x69, 0x6A, 0x42, 0x69, 0x6E, 0x42, 0x69, 0x76, - 0x42, 0x69, 0x78, 0x42, 0x6B, 0x41, 0x42, 0x6B, - 0x56, 0x42, 0x6B, 0x57, 0x42, 0x6B, 0x67, 0x42, - // Bytes 1a00 - 1a3f - 0x6B, 0x6C, 0x42, 0x6B, 0x6D, 0x42, 0x6B, 0x74, - 0x42, 0x6C, 0x6A, 0x42, 0x6C, 0x6D, 0x42, 0x6C, - 0x6E, 0x42, 0x6C, 0x78, 0x42, 0x6D, 0x32, 0x42, - 0x6D, 0x33, 0x42, 0x6D, 0x41, 0x42, 0x6D, 0x56, - 0x42, 0x6D, 0x57, 0x42, 0x6D, 0x62, 0x42, 0x6D, - 0x67, 0x42, 0x6D, 0x6C, 0x42, 0x6D, 0x6D, 0x42, - 0x6D, 0x73, 0x42, 0x6E, 0x41, 0x42, 0x6E, 0x46, - 0x42, 0x6E, 0x56, 0x42, 0x6E, 0x57, 0x42, 0x6E, - // Bytes 1a40 - 1a7f - 0x6A, 0x42, 0x6E, 0x6D, 0x42, 0x6E, 0x73, 0x42, - 0x6F, 0x56, 0x42, 0x70, 0x41, 0x42, 0x70, 0x46, - 0x42, 0x70, 0x56, 0x42, 0x70, 0x57, 0x42, 0x70, - 0x63, 0x42, 0x70, 0x73, 0x42, 0x73, 0x72, 0x42, - 0x73, 0x74, 0x42, 0x76, 0x69, 0x42, 0x78, 0x69, - 0x43, 0x28, 0x31, 0x29, 0x43, 0x28, 0x32, 0x29, - 0x43, 0x28, 0x33, 0x29, 0x43, 0x28, 0x34, 0x29, - 0x43, 0x28, 0x35, 0x29, 0x43, 0x28, 0x36, 0x29, - // Bytes 1a80 - 1abf - 0x43, 0x28, 0x37, 0x29, 0x43, 0x28, 0x38, 0x29, - 0x43, 0x28, 0x39, 0x29, 0x43, 0x28, 0x41, 0x29, - 0x43, 0x28, 0x42, 0x29, 0x43, 0x28, 0x43, 0x29, - 0x43, 0x28, 0x44, 0x29, 0x43, 0x28, 0x45, 0x29, - 0x43, 0x28, 0x46, 0x29, 0x43, 0x28, 0x47, 0x29, - 0x43, 0x28, 0x48, 0x29, 0x43, 0x28, 0x49, 0x29, - 0x43, 0x28, 0x4A, 0x29, 0x43, 0x28, 0x4B, 0x29, - 0x43, 0x28, 0x4C, 0x29, 0x43, 0x28, 0x4D, 0x29, - // Bytes 1ac0 - 1aff - 0x43, 0x28, 0x4E, 0x29, 0x43, 0x28, 0x4F, 0x29, - 0x43, 0x28, 0x50, 0x29, 0x43, 0x28, 0x51, 0x29, - 0x43, 0x28, 0x52, 0x29, 0x43, 0x28, 0x53, 0x29, - 0x43, 0x28, 0x54, 0x29, 0x43, 0x28, 0x55, 0x29, - 0x43, 0x28, 0x56, 0x29, 0x43, 0x28, 0x57, 0x29, - 0x43, 0x28, 0x58, 0x29, 0x43, 0x28, 0x59, 0x29, - 0x43, 0x28, 0x5A, 0x29, 0x43, 0x28, 0x61, 0x29, - 0x43, 0x28, 0x62, 0x29, 0x43, 0x28, 0x63, 0x29, - // Bytes 1b00 - 1b3f - 0x43, 0x28, 0x64, 0x29, 0x43, 0x28, 0x65, 0x29, - 0x43, 0x28, 0x66, 0x29, 0x43, 0x28, 0x67, 0x29, - 0x43, 0x28, 0x68, 0x29, 0x43, 0x28, 0x69, 0x29, - 0x43, 0x28, 0x6A, 0x29, 0x43, 0x28, 0x6B, 0x29, - 0x43, 0x28, 0x6C, 0x29, 0x43, 0x28, 0x6D, 0x29, - 0x43, 0x28, 0x6E, 0x29, 0x43, 0x28, 0x6F, 0x29, - 0x43, 0x28, 0x70, 0x29, 0x43, 0x28, 0x71, 0x29, - 0x43, 0x28, 0x72, 0x29, 0x43, 0x28, 0x73, 0x29, - // Bytes 1b40 - 1b7f - 0x43, 0x28, 0x74, 0x29, 0x43, 0x28, 0x75, 0x29, - 0x43, 0x28, 0x76, 0x29, 0x43, 0x28, 0x77, 0x29, - 0x43, 0x28, 0x78, 0x29, 0x43, 0x28, 0x79, 0x29, - 0x43, 0x28, 0x7A, 0x29, 0x43, 0x2E, 0x2E, 0x2E, - 0x43, 0x31, 0x30, 0x2E, 0x43, 0x31, 0x31, 0x2E, - 0x43, 0x31, 0x32, 0x2E, 0x43, 0x31, 0x33, 0x2E, - 0x43, 0x31, 0x34, 0x2E, 0x43, 0x31, 0x35, 0x2E, - 0x43, 0x31, 0x36, 0x2E, 0x43, 0x31, 0x37, 0x2E, - // Bytes 1b80 - 1bbf - 0x43, 0x31, 0x38, 0x2E, 0x43, 0x31, 0x39, 0x2E, - 0x43, 0x32, 0x30, 0x2E, 0x43, 0x3A, 0x3A, 0x3D, - 0x43, 0x3D, 0x3D, 0x3D, 0x43, 0x43, 0x6F, 0x2E, - 0x43, 0x46, 0x41, 0x58, 0x43, 0x47, 0x48, 0x7A, - 0x43, 0x47, 0x50, 0x61, 0x43, 0x49, 0x49, 0x49, - 0x43, 0x4C, 0x54, 0x44, 0x43, 0x4C, 0xC2, 0xB7, - 0x43, 0x4D, 0x48, 0x7A, 0x43, 0x4D, 0x50, 0x61, - 0x43, 0x4D, 0xCE, 0xA9, 0x43, 0x50, 0x50, 0x4D, - // Bytes 1bc0 - 1bff - 0x43, 0x50, 0x50, 0x56, 0x43, 0x50, 0x54, 0x45, - 0x43, 0x54, 0x45, 0x4C, 0x43, 0x54, 0x48, 0x7A, - 0x43, 0x56, 0x49, 0x49, 0x43, 0x58, 0x49, 0x49, - 0x43, 0x61, 0x2F, 0x63, 0x43, 0x61, 0x2F, 0x73, - 0x43, 0x61, 0xCA, 0xBE, 0x43, 0x62, 0x61, 0x72, - 0x43, 0x63, 0x2F, 0x6F, 0x43, 0x63, 0x2F, 0x75, - 0x43, 0x63, 0x61, 0x6C, 0x43, 0x63, 0x6D, 0x32, - 0x43, 0x63, 0x6D, 0x33, 0x43, 0x64, 0x6D, 0x32, - // Bytes 1c00 - 1c3f - 0x43, 0x64, 0x6D, 0x33, 0x43, 0x65, 0x72, 0x67, - 0x43, 0x66, 0x66, 0x69, 0x43, 0x66, 0x66, 0x6C, - 0x43, 0x67, 0x61, 0x6C, 0x43, 0x68, 0x50, 0x61, - 0x43, 0x69, 0x69, 0x69, 0x43, 0x6B, 0x48, 0x7A, - 0x43, 0x6B, 0x50, 0x61, 0x43, 0x6B, 0x6D, 0x32, - 0x43, 0x6B, 0x6D, 0x33, 0x43, 0x6B, 0xCE, 0xA9, - 0x43, 0x6C, 0x6F, 0x67, 0x43, 0x6C, 0xC2, 0xB7, - 0x43, 0x6D, 0x69, 0x6C, 0x43, 0x6D, 0x6D, 0x32, - // Bytes 1c40 - 1c7f - 0x43, 0x6D, 0x6D, 0x33, 0x43, 0x6D, 0x6F, 0x6C, - 0x43, 0x72, 0x61, 0x64, 0x43, 0x76, 0x69, 0x69, - 0x43, 0x78, 0x69, 0x69, 0x43, 0xC2, 0xB0, 0x43, - 0x43, 0xC2, 0xB0, 0x46, 0x43, 0xCA, 0xBC, 0x6E, - 0x43, 0xCE, 0xBC, 0x41, 0x43, 0xCE, 0xBC, 0x46, - 0x43, 0xCE, 0xBC, 0x56, 0x43, 0xCE, 0xBC, 0x57, - 0x43, 0xCE, 0xBC, 0x67, 0x43, 0xCE, 0xBC, 0x6C, - 0x43, 0xCE, 0xBC, 0x6D, 0x43, 0xCE, 0xBC, 0x73, - // Bytes 1c80 - 1cbf - 0x44, 0x28, 0x31, 0x30, 0x29, 0x44, 0x28, 0x31, - 0x31, 0x29, 0x44, 0x28, 0x31, 0x32, 0x29, 0x44, - 0x28, 0x31, 0x33, 0x29, 0x44, 0x28, 0x31, 0x34, - 0x29, 0x44, 0x28, 0x31, 0x35, 0x29, 0x44, 0x28, - 0x31, 0x36, 0x29, 0x44, 0x28, 0x31, 0x37, 0x29, - 0x44, 0x28, 0x31, 0x38, 0x29, 0x44, 0x28, 0x31, - 0x39, 0x29, 0x44, 0x28, 0x32, 0x30, 0x29, 0x44, - 0x30, 0xE7, 0x82, 0xB9, 0x44, 0x31, 0xE2, 0x81, - // Bytes 1cc0 - 1cff - 0x84, 0x44, 0x31, 0xE6, 0x97, 0xA5, 0x44, 0x31, - 0xE6, 0x9C, 0x88, 0x44, 0x31, 0xE7, 0x82, 0xB9, - 0x44, 0x32, 0xE6, 0x97, 0xA5, 0x44, 0x32, 0xE6, - 0x9C, 0x88, 0x44, 0x32, 0xE7, 0x82, 0xB9, 0x44, - 0x33, 0xE6, 0x97, 0xA5, 0x44, 0x33, 0xE6, 0x9C, - 0x88, 0x44, 0x33, 0xE7, 0x82, 0xB9, 0x44, 0x34, - 0xE6, 0x97, 0xA5, 0x44, 0x34, 0xE6, 0x9C, 0x88, - 0x44, 0x34, 0xE7, 0x82, 0xB9, 0x44, 0x35, 0xE6, - // Bytes 1d00 - 1d3f - 0x97, 0xA5, 0x44, 0x35, 0xE6, 0x9C, 0x88, 0x44, - 0x35, 0xE7, 0x82, 0xB9, 0x44, 0x36, 0xE6, 0x97, - 0xA5, 0x44, 0x36, 0xE6, 0x9C, 0x88, 0x44, 0x36, - 0xE7, 0x82, 0xB9, 0x44, 0x37, 0xE6, 0x97, 0xA5, - 0x44, 0x37, 0xE6, 0x9C, 0x88, 0x44, 0x37, 0xE7, - 0x82, 0xB9, 0x44, 0x38, 0xE6, 0x97, 0xA5, 0x44, - 0x38, 0xE6, 0x9C, 0x88, 0x44, 0x38, 0xE7, 0x82, - 0xB9, 0x44, 0x39, 0xE6, 0x97, 0xA5, 0x44, 0x39, - // Bytes 1d40 - 1d7f - 0xE6, 0x9C, 0x88, 0x44, 0x39, 0xE7, 0x82, 0xB9, - 0x44, 0x56, 0x49, 0x49, 0x49, 0x44, 0x61, 0x2E, - 0x6D, 0x2E, 0x44, 0x6B, 0x63, 0x61, 0x6C, 0x44, - 0x70, 0x2E, 0x6D, 0x2E, 0x44, 0x76, 0x69, 0x69, - 0x69, 0x44, 0xD5, 0xA5, 0xD6, 0x82, 0x44, 0xD5, - 0xB4, 0xD5, 0xA5, 0x44, 0xD5, 0xB4, 0xD5, 0xAB, - 0x44, 0xD5, 0xB4, 0xD5, 0xAD, 0x44, 0xD5, 0xB4, - 0xD5, 0xB6, 0x44, 0xD5, 0xBE, 0xD5, 0xB6, 0x44, - // Bytes 1d80 - 1dbf - 0xD7, 0x90, 0xD7, 0x9C, 0x44, 0xD8, 0xA7, 0xD9, - 0xB4, 0x44, 0xD8, 0xA8, 0xD8, 0xAC, 0x44, 0xD8, - 0xA8, 0xD8, 0xAD, 0x44, 0xD8, 0xA8, 0xD8, 0xAE, - 0x44, 0xD8, 0xA8, 0xD8, 0xB1, 0x44, 0xD8, 0xA8, - 0xD8, 0xB2, 0x44, 0xD8, 0xA8, 0xD9, 0x85, 0x44, - 0xD8, 0xA8, 0xD9, 0x86, 0x44, 0xD8, 0xA8, 0xD9, - 0x87, 0x44, 0xD8, 0xA8, 0xD9, 0x89, 0x44, 0xD8, - 0xA8, 0xD9, 0x8A, 0x44, 0xD8, 0xAA, 0xD8, 0xAC, - // Bytes 1dc0 - 1dff - 0x44, 0xD8, 0xAA, 0xD8, 0xAD, 0x44, 0xD8, 0xAA, - 0xD8, 0xAE, 0x44, 0xD8, 0xAA, 0xD8, 0xB1, 0x44, - 0xD8, 0xAA, 0xD8, 0xB2, 0x44, 0xD8, 0xAA, 0xD9, - 0x85, 0x44, 0xD8, 0xAA, 0xD9, 0x86, 0x44, 0xD8, - 0xAA, 0xD9, 0x87, 0x44, 0xD8, 0xAA, 0xD9, 0x89, - 0x44, 0xD8, 0xAA, 0xD9, 0x8A, 0x44, 0xD8, 0xAB, - 0xD8, 0xAC, 0x44, 0xD8, 0xAB, 0xD8, 0xB1, 0x44, - 0xD8, 0xAB, 0xD8, 0xB2, 0x44, 0xD8, 0xAB, 0xD9, - // Bytes 1e00 - 1e3f - 0x85, 0x44, 0xD8, 0xAB, 0xD9, 0x86, 0x44, 0xD8, - 0xAB, 0xD9, 0x87, 0x44, 0xD8, 0xAB, 0xD9, 0x89, - 0x44, 0xD8, 0xAB, 0xD9, 0x8A, 0x44, 0xD8, 0xAC, - 0xD8, 0xAD, 0x44, 0xD8, 0xAC, 0xD9, 0x85, 0x44, - 0xD8, 0xAC, 0xD9, 0x89, 0x44, 0xD8, 0xAC, 0xD9, - 0x8A, 0x44, 0xD8, 0xAD, 0xD8, 0xAC, 0x44, 0xD8, - 0xAD, 0xD9, 0x85, 0x44, 0xD8, 0xAD, 0xD9, 0x89, - 0x44, 0xD8, 0xAD, 0xD9, 0x8A, 0x44, 0xD8, 0xAE, - // Bytes 1e40 - 1e7f - 0xD8, 0xAC, 0x44, 0xD8, 0xAE, 0xD8, 0xAD, 0x44, - 0xD8, 0xAE, 0xD9, 0x85, 0x44, 0xD8, 0xAE, 0xD9, - 0x89, 0x44, 0xD8, 0xAE, 0xD9, 0x8A, 0x44, 0xD8, - 0xB3, 0xD8, 0xAC, 0x44, 0xD8, 0xB3, 0xD8, 0xAD, - 0x44, 0xD8, 0xB3, 0xD8, 0xAE, 0x44, 0xD8, 0xB3, - 0xD8, 0xB1, 0x44, 0xD8, 0xB3, 0xD9, 0x85, 0x44, - 0xD8, 0xB3, 0xD9, 0x87, 0x44, 0xD8, 0xB3, 0xD9, - 0x89, 0x44, 0xD8, 0xB3, 0xD9, 0x8A, 0x44, 0xD8, - // Bytes 1e80 - 1ebf - 0xB4, 0xD8, 0xAC, 0x44, 0xD8, 0xB4, 0xD8, 0xAD, - 0x44, 0xD8, 0xB4, 0xD8, 0xAE, 0x44, 0xD8, 0xB4, - 0xD8, 0xB1, 0x44, 0xD8, 0xB4, 0xD9, 0x85, 0x44, - 0xD8, 0xB4, 0xD9, 0x87, 0x44, 0xD8, 0xB4, 0xD9, - 0x89, 0x44, 0xD8, 0xB4, 0xD9, 0x8A, 0x44, 0xD8, - 0xB5, 0xD8, 0xAD, 0x44, 0xD8, 0xB5, 0xD8, 0xAE, - 0x44, 0xD8, 0xB5, 0xD8, 0xB1, 0x44, 0xD8, 0xB5, - 0xD9, 0x85, 0x44, 0xD8, 0xB5, 0xD9, 0x89, 0x44, - // Bytes 1ec0 - 1eff - 0xD8, 0xB5, 0xD9, 0x8A, 0x44, 0xD8, 0xB6, 0xD8, - 0xAC, 0x44, 0xD8, 0xB6, 0xD8, 0xAD, 0x44, 0xD8, - 0xB6, 0xD8, 0xAE, 0x44, 0xD8, 0xB6, 0xD8, 0xB1, - 0x44, 0xD8, 0xB6, 0xD9, 0x85, 0x44, 0xD8, 0xB6, - 0xD9, 0x89, 0x44, 0xD8, 0xB6, 0xD9, 0x8A, 0x44, - 0xD8, 0xB7, 0xD8, 0xAD, 0x44, 0xD8, 0xB7, 0xD9, - 0x85, 0x44, 0xD8, 0xB7, 0xD9, 0x89, 0x44, 0xD8, - 0xB7, 0xD9, 0x8A, 0x44, 0xD8, 0xB8, 0xD9, 0x85, - // Bytes 1f00 - 1f3f - 0x44, 0xD8, 0xB9, 0xD8, 0xAC, 0x44, 0xD8, 0xB9, - 0xD9, 0x85, 0x44, 0xD8, 0xB9, 0xD9, 0x89, 0x44, - 0xD8, 0xB9, 0xD9, 0x8A, 0x44, 0xD8, 0xBA, 0xD8, - 0xAC, 0x44, 0xD8, 0xBA, 0xD9, 0x85, 0x44, 0xD8, - 0xBA, 0xD9, 0x89, 0x44, 0xD8, 0xBA, 0xD9, 0x8A, - 0x44, 0xD9, 0x81, 0xD8, 0xAC, 0x44, 0xD9, 0x81, - 0xD8, 0xAD, 0x44, 0xD9, 0x81, 0xD8, 0xAE, 0x44, - 0xD9, 0x81, 0xD9, 0x85, 0x44, 0xD9, 0x81, 0xD9, - // Bytes 1f40 - 1f7f - 0x89, 0x44, 0xD9, 0x81, 0xD9, 0x8A, 0x44, 0xD9, - 0x82, 0xD8, 0xAD, 0x44, 0xD9, 0x82, 0xD9, 0x85, - 0x44, 0xD9, 0x82, 0xD9, 0x89, 0x44, 0xD9, 0x82, - 0xD9, 0x8A, 0x44, 0xD9, 0x83, 0xD8, 0xA7, 0x44, - 0xD9, 0x83, 0xD8, 0xAC, 0x44, 0xD9, 0x83, 0xD8, - 0xAD, 0x44, 0xD9, 0x83, 0xD8, 0xAE, 0x44, 0xD9, - 0x83, 0xD9, 0x84, 0x44, 0xD9, 0x83, 0xD9, 0x85, - 0x44, 0xD9, 0x83, 0xD9, 0x89, 0x44, 0xD9, 0x83, - // Bytes 1f80 - 1fbf - 0xD9, 0x8A, 0x44, 0xD9, 0x84, 0xD8, 0xA7, 0x44, - 0xD9, 0x84, 0xD8, 0xAC, 0x44, 0xD9, 0x84, 0xD8, - 0xAD, 0x44, 0xD9, 0x84, 0xD8, 0xAE, 0x44, 0xD9, - 0x84, 0xD9, 0x85, 0x44, 0xD9, 0x84, 0xD9, 0x87, - 0x44, 0xD9, 0x84, 0xD9, 0x89, 0x44, 0xD9, 0x84, - 0xD9, 0x8A, 0x44, 0xD9, 0x85, 0xD8, 0xA7, 0x44, - 0xD9, 0x85, 0xD8, 0xAC, 0x44, 0xD9, 0x85, 0xD8, - 0xAD, 0x44, 0xD9, 0x85, 0xD8, 0xAE, 0x44, 0xD9, - // Bytes 1fc0 - 1fff - 0x85, 0xD9, 0x85, 0x44, 0xD9, 0x85, 0xD9, 0x89, - 0x44, 0xD9, 0x85, 0xD9, 0x8A, 0x44, 0xD9, 0x86, - 0xD8, 0xAC, 0x44, 0xD9, 0x86, 0xD8, 0xAD, 0x44, - 0xD9, 0x86, 0xD8, 0xAE, 0x44, 0xD9, 0x86, 0xD8, - 0xB1, 0x44, 0xD9, 0x86, 0xD8, 0xB2, 0x44, 0xD9, - 0x86, 0xD9, 0x85, 0x44, 0xD9, 0x86, 0xD9, 0x86, - 0x44, 0xD9, 0x86, 0xD9, 0x87, 0x44, 0xD9, 0x86, - 0xD9, 0x89, 0x44, 0xD9, 0x86, 0xD9, 0x8A, 0x44, - // Bytes 2000 - 203f - 0xD9, 0x87, 0xD8, 0xAC, 0x44, 0xD9, 0x87, 0xD9, - 0x85, 0x44, 0xD9, 0x87, 0xD9, 0x89, 0x44, 0xD9, - 0x87, 0xD9, 0x8A, 0x44, 0xD9, 0x88, 0xD9, 0xB4, - 0x44, 0xD9, 0x8A, 0xD8, 0xAC, 0x44, 0xD9, 0x8A, - 0xD8, 0xAD, 0x44, 0xD9, 0x8A, 0xD8, 0xAE, 0x44, - 0xD9, 0x8A, 0xD8, 0xB1, 0x44, 0xD9, 0x8A, 0xD8, - 0xB2, 0x44, 0xD9, 0x8A, 0xD9, 0x85, 0x44, 0xD9, - 0x8A, 0xD9, 0x86, 0x44, 0xD9, 0x8A, 0xD9, 0x87, - // Bytes 2040 - 207f - 0x44, 0xD9, 0x8A, 0xD9, 0x89, 0x44, 0xD9, 0x8A, - 0xD9, 0x8A, 0x44, 0xD9, 0x8A, 0xD9, 0xB4, 0x44, - 0xDB, 0x87, 0xD9, 0xB4, 0x45, 0x28, 0xE1, 0x84, - 0x80, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x82, 0x29, - 0x45, 0x28, 0xE1, 0x84, 0x83, 0x29, 0x45, 0x28, - 0xE1, 0x84, 0x85, 0x29, 0x45, 0x28, 0xE1, 0x84, - 0x86, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x87, 0x29, - 0x45, 0x28, 0xE1, 0x84, 0x89, 0x29, 0x45, 0x28, - // Bytes 2080 - 20bf - 0xE1, 0x84, 0x8B, 0x29, 0x45, 0x28, 0xE1, 0x84, - 0x8C, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8E, 0x29, - 0x45, 0x28, 0xE1, 0x84, 0x8F, 0x29, 0x45, 0x28, - 0xE1, 0x84, 0x90, 0x29, 0x45, 0x28, 0xE1, 0x84, - 0x91, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x92, 0x29, - 0x45, 0x28, 0xE4, 0xB8, 0x80, 0x29, 0x45, 0x28, - 0xE4, 0xB8, 0x83, 0x29, 0x45, 0x28, 0xE4, 0xB8, - 0x89, 0x29, 0x45, 0x28, 0xE4, 0xB9, 0x9D, 0x29, - // Bytes 20c0 - 20ff - 0x45, 0x28, 0xE4, 0xBA, 0x8C, 0x29, 0x45, 0x28, - 0xE4, 0xBA, 0x94, 0x29, 0x45, 0x28, 0xE4, 0xBB, - 0xA3, 0x29, 0x45, 0x28, 0xE4, 0xBC, 0x81, 0x29, - 0x45, 0x28, 0xE4, 0xBC, 0x91, 0x29, 0x45, 0x28, - 0xE5, 0x85, 0xAB, 0x29, 0x45, 0x28, 0xE5, 0x85, - 0xAD, 0x29, 0x45, 0x28, 0xE5, 0x8A, 0xB4, 0x29, - 0x45, 0x28, 0xE5, 0x8D, 0x81, 0x29, 0x45, 0x28, - 0xE5, 0x8D, 0x94, 0x29, 0x45, 0x28, 0xE5, 0x90, - // Bytes 2100 - 213f - 0x8D, 0x29, 0x45, 0x28, 0xE5, 0x91, 0xBC, 0x29, - 0x45, 0x28, 0xE5, 0x9B, 0x9B, 0x29, 0x45, 0x28, - 0xE5, 0x9C, 0x9F, 0x29, 0x45, 0x28, 0xE5, 0xAD, - 0xA6, 0x29, 0x45, 0x28, 0xE6, 0x97, 0xA5, 0x29, - 0x45, 0x28, 0xE6, 0x9C, 0x88, 0x29, 0x45, 0x28, - 0xE6, 0x9C, 0x89, 0x29, 0x45, 0x28, 0xE6, 0x9C, - 0xA8, 0x29, 0x45, 0x28, 0xE6, 0xA0, 0xAA, 0x29, - 0x45, 0x28, 0xE6, 0xB0, 0xB4, 0x29, 0x45, 0x28, - // Bytes 2140 - 217f - 0xE7, 0x81, 0xAB, 0x29, 0x45, 0x28, 0xE7, 0x89, - 0xB9, 0x29, 0x45, 0x28, 0xE7, 0x9B, 0xA3, 0x29, - 0x45, 0x28, 0xE7, 0xA4, 0xBE, 0x29, 0x45, 0x28, - 0xE7, 0xA5, 0x9D, 0x29, 0x45, 0x28, 0xE7, 0xA5, - 0xAD, 0x29, 0x45, 0x28, 0xE8, 0x87, 0xAA, 0x29, - 0x45, 0x28, 0xE8, 0x87, 0xB3, 0x29, 0x45, 0x28, - 0xE8, 0xB2, 0xA1, 0x29, 0x45, 0x28, 0xE8, 0xB3, - 0x87, 0x29, 0x45, 0x28, 0xE9, 0x87, 0x91, 0x29, - // Bytes 2180 - 21bf - 0x45, 0x30, 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, - 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x30, 0xE6, - 0x9C, 0x88, 0x45, 0x31, 0x30, 0xE7, 0x82, 0xB9, - 0x45, 0x31, 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x31, - 0x31, 0xE6, 0x9C, 0x88, 0x45, 0x31, 0x31, 0xE7, - 0x82, 0xB9, 0x45, 0x31, 0x32, 0xE6, 0x97, 0xA5, - 0x45, 0x31, 0x32, 0xE6, 0x9C, 0x88, 0x45, 0x31, - 0x32, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x33, 0xE6, - // Bytes 21c0 - 21ff - 0x97, 0xA5, 0x45, 0x31, 0x33, 0xE7, 0x82, 0xB9, - 0x45, 0x31, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x31, - 0x34, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x35, 0xE6, - 0x97, 0xA5, 0x45, 0x31, 0x35, 0xE7, 0x82, 0xB9, - 0x45, 0x31, 0x36, 0xE6, 0x97, 0xA5, 0x45, 0x31, - 0x36, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x37, 0xE6, - 0x97, 0xA5, 0x45, 0x31, 0x37, 0xE7, 0x82, 0xB9, - 0x45, 0x31, 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x31, - // Bytes 2200 - 223f - 0x38, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x39, 0xE6, - 0x97, 0xA5, 0x45, 0x31, 0x39, 0xE7, 0x82, 0xB9, - 0x45, 0x31, 0xE2, 0x81, 0x84, 0x32, 0x45, 0x31, - 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, 0xE2, 0x81, - 0x84, 0x34, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x35, - 0x45, 0x31, 0xE2, 0x81, 0x84, 0x36, 0x45, 0x31, - 0xE2, 0x81, 0x84, 0x37, 0x45, 0x31, 0xE2, 0x81, - 0x84, 0x38, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x39, - // Bytes 2240 - 227f - 0x45, 0x32, 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x32, - 0x30, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x31, 0xE6, - 0x97, 0xA5, 0x45, 0x32, 0x31, 0xE7, 0x82, 0xB9, - 0x45, 0x32, 0x32, 0xE6, 0x97, 0xA5, 0x45, 0x32, - 0x32, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x33, 0xE6, - 0x97, 0xA5, 0x45, 0x32, 0x33, 0xE7, 0x82, 0xB9, - 0x45, 0x32, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x32, - 0x34, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x35, 0xE6, - // Bytes 2280 - 22bf - 0x97, 0xA5, 0x45, 0x32, 0x36, 0xE6, 0x97, 0xA5, - 0x45, 0x32, 0x37, 0xE6, 0x97, 0xA5, 0x45, 0x32, - 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x39, 0xE6, - 0x97, 0xA5, 0x45, 0x32, 0xE2, 0x81, 0x84, 0x33, - 0x45, 0x32, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33, - 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x33, 0x31, 0xE6, - 0x97, 0xA5, 0x45, 0x33, 0xE2, 0x81, 0x84, 0x34, - 0x45, 0x33, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33, - // Bytes 22c0 - 22ff - 0xE2, 0x81, 0x84, 0x38, 0x45, 0x34, 0xE2, 0x81, - 0x84, 0x35, 0x45, 0x35, 0xE2, 0x81, 0x84, 0x36, - 0x45, 0x35, 0xE2, 0x81, 0x84, 0x38, 0x45, 0x37, - 0xE2, 0x81, 0x84, 0x38, 0x45, 0x41, 0xE2, 0x88, - 0x95, 0x6D, 0x45, 0x56, 0xE2, 0x88, 0x95, 0x6D, - 0x45, 0x6D, 0xE2, 0x88, 0x95, 0x73, 0x46, 0x31, - 0xE2, 0x81, 0x84, 0x31, 0x30, 0x46, 0x43, 0xE2, - 0x88, 0x95, 0x6B, 0x67, 0x46, 0x6D, 0xE2, 0x88, - // Bytes 2300 - 233f - 0x95, 0x73, 0x32, 0x46, 0xD8, 0xA8, 0xD8, 0xAD, - 0xD9, 0x8A, 0x46, 0xD8, 0xA8, 0xD8, 0xAE, 0xD9, - 0x8A, 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x85, - 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x89, 0x46, - 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8, - 0xAA, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, 0xD8, 0xAA, - 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, - 0xAE, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, - // Bytes 2340 - 237f - 0xD9, 0x89, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, 0xD9, - 0x8A, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAC, - 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAD, 0x46, - 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAE, 0x46, 0xD8, - 0xAA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAA, - 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD8, - 0xAD, 0xD9, 0x89, 0x46, 0xD8, 0xAC, 0xD8, 0xAD, - 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD8, - // Bytes 2380 - 23bf - 0xAD, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x89, - 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x8A, 0x46, - 0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8, - 0xAD, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAD, - 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB3, 0xD8, - 0xAC, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, 0xD8, 0xAC, - 0xD9, 0x89, 0x46, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8, - 0xAC, 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x89, - // Bytes 23c0 - 23ff - 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x8A, 0x46, - 0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xAC, 0x46, 0xD8, - 0xB3, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, - 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, - 0xAC, 0xD9, 0x8A, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, - 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, 0xD9, - 0x8A, 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD8, 0xAE, - 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD9, 0x85, 0x46, - // Bytes 2400 - 243f - 0xD8, 0xB5, 0xD8, 0xAD, 0xD8, 0xAD, 0x46, 0xD8, - 0xB5, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB5, - 0xD9, 0x84, 0xD9, 0x89, 0x46, 0xD8, 0xB5, 0xD9, - 0x84, 0xDB, 0x92, 0x46, 0xD8, 0xB5, 0xD9, 0x85, - 0xD9, 0x85, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, - 0x89, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x8A, - 0x46, 0xD8, 0xB6, 0xD8, 0xAE, 0xD9, 0x85, 0x46, - 0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, - // Bytes 2440 - 247f - 0xB7, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB7, - 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB9, 0xD8, - 0xAC, 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, - 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, - 0x89, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x8A, - 0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x85, 0x46, - 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, - 0xBA, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x81, - // Bytes 2480 - 24bf - 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x81, 0xD9, - 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x82, 0xD9, 0x84, - 0xDB, 0x92, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD8, - 0xAD, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x85, - 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x8A, 0x46, - 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, - 0x83, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x84, - 0xD8, 0xAC, 0xD8, 0xAC, 0x46, 0xD9, 0x84, 0xD8, - // Bytes 24c0 - 24ff - 0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAC, - 0xD9, 0x8A, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, - 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x89, - 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, - 0xD9, 0x84, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, - 0x84, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD9, 0x84, - 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8, - 0xAC, 0xD8, 0xAD, 0x46, 0xD9, 0x85, 0xD8, 0xAC, - // Bytes 2500 - 253f - 0xD8, 0xAE, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, - 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x8A, - 0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, - 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, - 0x85, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x85, - 0xD8, 0xAE, 0xD8, 0xAC, 0x46, 0xD9, 0x85, 0xD8, - 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAE, - 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD9, 0x85, 0xD9, - // Bytes 2540 - 257f - 0x8A, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD8, 0xAD, - 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x85, 0x46, - 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD9, - 0x86, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x86, - 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, 0x86, 0xD8, - 0xAD, 0xD9, 0x89, 0x46, 0xD9, 0x86, 0xD8, 0xAD, - 0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, - 0x89, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x8A, - // Bytes 2580 - 25bf - 0x46, 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xAC, 0x46, - 0xD9, 0x87, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, - 0x8A, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, - 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, - 0x85, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x85, - 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, - 0xA7, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAC, - 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAD, 0x46, - // Bytes 25c0 - 25ff - 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAE, 0x46, 0xD9, - 0x8A, 0xD9, 0x94, 0xD8, 0xB1, 0x46, 0xD9, 0x8A, - 0xD9, 0x94, 0xD8, 0xB2, 0x46, 0xD9, 0x8A, 0xD9, - 0x94, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x94, - 0xD9, 0x86, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, - 0x87, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x88, - 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x89, 0x46, - 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x8A, 0x46, 0xD9, - // Bytes 2600 - 263f - 0x8A, 0xD9, 0x94, 0xDB, 0x86, 0x46, 0xD9, 0x8A, - 0xD9, 0x94, 0xDB, 0x87, 0x46, 0xD9, 0x8A, 0xD9, - 0x94, 0xDB, 0x88, 0x46, 0xD9, 0x8A, 0xD9, 0x94, - 0xDB, 0x90, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, - 0x95, 0x46, 0xE0, 0xB9, 0x8D, 0xE0, 0xB8, 0xB2, - 0x46, 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0x99, 0x46, - 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0xA1, 0x46, 0xE0, - 0xBB, 0x8D, 0xE0, 0xBA, 0xB2, 0x46, 0xE0, 0xBD, - // Bytes 2640 - 267f - 0x80, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, 0xBD, 0x82, - 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x8C, 0xE0, - 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x91, 0xE0, 0xBE, - 0xB7, 0x46, 0xE0, 0xBD, 0x96, 0xE0, 0xBE, 0xB7, - 0x46, 0xE0, 0xBD, 0x9B, 0xE0, 0xBE, 0xB7, 0x46, - 0xE0, 0xBE, 0x90, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, - 0xBE, 0x92, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, - 0x9C, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA1, - // Bytes 2680 - 26bf - 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA6, 0xE0, - 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xAB, 0xE0, 0xBE, - 0xB7, 0x46, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, - 0x46, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x46, - 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x46, 0xE2, - 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x46, 0xE3, 0x81, - 0xBB, 0xE3, 0x81, 0x8B, 0x46, 0xE3, 0x82, 0x88, - 0xE3, 0x82, 0x8A, 0x46, 0xE3, 0x82, 0xAD, 0xE3, - // Bytes 26c0 - 26ff - 0x83, 0xAD, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x82, - 0xB3, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0x88, - 0x46, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x46, - 0xE3, 0x83, 0x8A, 0xE3, 0x83, 0x8E, 0x46, 0xE3, - 0x83, 0x9B, 0xE3, 0x83, 0xB3, 0x46, 0xE3, 0x83, - 0x9F, 0xE3, 0x83, 0xAA, 0x46, 0xE3, 0x83, 0xAA, - 0xE3, 0x83, 0xA9, 0x46, 0xE3, 0x83, 0xAC, 0xE3, - 0x83, 0xA0, 0x46, 0xE5, 0xA4, 0xA7, 0xE6, 0xAD, - // Bytes 2700 - 273f - 0xA3, 0x46, 0xE5, 0xB9, 0xB3, 0xE6, 0x88, 0x90, - 0x46, 0xE6, 0x98, 0x8E, 0xE6, 0xB2, 0xBB, 0x46, - 0xE6, 0x98, 0xAD, 0xE5, 0x92, 0x8C, 0x47, 0x72, - 0x61, 0x64, 0xE2, 0x88, 0x95, 0x73, 0x47, 0xE3, - 0x80, 0x94, 0x53, 0xE3, 0x80, 0x95, 0x48, 0x28, - 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x29, 0x48, - 0x28, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x29, - 0x48, 0x28, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, - // Bytes 2740 - 277f - 0x29, 0x48, 0x28, 0xE1, 0x84, 0x85, 0xE1, 0x85, - 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x86, 0xE1, - 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x87, - 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, - 0x89, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, - 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, - 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x29, 0x48, - 0x28, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xAE, 0x29, - // Bytes 2780 - 27bf - 0x48, 0x28, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, - 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8F, 0xE1, 0x85, - 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x90, 0xE1, - 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x91, - 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, - 0x92, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x72, 0x61, - 0x64, 0xE2, 0x88, 0x95, 0x73, 0x32, 0x48, 0xD8, - 0xA7, 0xD9, 0x83, 0xD8, 0xA8, 0xD8, 0xB1, 0x48, - // Bytes 27c0 - 27ff - 0xD8, 0xA7, 0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x87, - 0x48, 0xD8, 0xB1, 0xD8, 0xB3, 0xD9, 0x88, 0xD9, - 0x84, 0x48, 0xD8, 0xB1, 0xDB, 0x8C, 0xD8, 0xA7, - 0xD9, 0x84, 0x48, 0xD8, 0xB5, 0xD9, 0x84, 0xD8, - 0xB9, 0xD9, 0x85, 0x48, 0xD8, 0xB9, 0xD9, 0x84, - 0xD9, 0x8A, 0xD9, 0x87, 0x48, 0xD9, 0x85, 0xD8, - 0xAD, 0xD9, 0x85, 0xD8, 0xAF, 0x48, 0xD9, 0x88, - 0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x49, 0xE2, - // Bytes 2800 - 283f - 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, - 0x49, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0xE2, - 0x80, 0xB5, 0x49, 0xE2, 0x88, 0xAB, 0xE2, 0x88, - 0xAB, 0xE2, 0x88, 0xAB, 0x49, 0xE2, 0x88, 0xAE, - 0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x49, 0xE3, - 0x80, 0x94, 0xE4, 0xB8, 0x89, 0xE3, 0x80, 0x95, - 0x49, 0xE3, 0x80, 0x94, 0xE4, 0xBA, 0x8C, 0xE3, - 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE5, 0x8B, - // Bytes 2840 - 287f - 0x9D, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, - 0xE5, 0xAE, 0x89, 0xE3, 0x80, 0x95, 0x49, 0xE3, - 0x80, 0x94, 0xE6, 0x89, 0x93, 0xE3, 0x80, 0x95, - 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x95, 0x97, 0xE3, - 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x9C, - 0xAC, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, - 0xE7, 0x82, 0xB9, 0xE3, 0x80, 0x95, 0x49, 0xE3, - 0x80, 0x94, 0xE7, 0x9B, 0x97, 0xE3, 0x80, 0x95, - // Bytes 2880 - 28bf - 0x49, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xBC, 0xE3, - 0x83, 0xAB, 0x49, 0xE3, 0x82, 0xA4, 0xE3, 0x83, - 0xB3, 0xE3, 0x83, 0x81, 0x49, 0xE3, 0x82, 0xA6, - 0xE3, 0x82, 0xA9, 0xE3, 0x83, 0xB3, 0x49, 0xE3, - 0x82, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB9, - 0x49, 0xE3, 0x82, 0xAA, 0xE3, 0x83, 0xBC, 0xE3, - 0x83, 0xA0, 0x49, 0xE3, 0x82, 0xAB, 0xE3, 0x82, - 0xA4, 0xE3, 0x83, 0xAA, 0x49, 0xE3, 0x82, 0xB1, - // Bytes 28c0 - 28ff - 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB9, 0x49, 0xE3, - 0x82, 0xB3, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x8A, - 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, - 0x83, 0x81, 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83, - 0xB3, 0xE3, 0x83, 0x88, 0x49, 0xE3, 0x83, 0x86, - 0xE3, 0x82, 0x99, 0xE3, 0x82, 0xB7, 0x49, 0xE3, - 0x83, 0x88, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, - 0x49, 0xE3, 0x83, 0x8E, 0xE3, 0x83, 0x83, 0xE3, - // Bytes 2900 - 293f - 0x83, 0x88, 0x49, 0xE3, 0x83, 0x8F, 0xE3, 0x82, - 0xA4, 0xE3, 0x83, 0x84, 0x49, 0xE3, 0x83, 0x92, - 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0x49, 0xE3, - 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xB3, - 0x49, 0xE3, 0x83, 0x95, 0xE3, 0x83, 0xA9, 0xE3, - 0x83, 0xB3, 0x49, 0xE3, 0x83, 0x98, 0xE3, 0x82, - 0x9A, 0xE3, 0x82, 0xBD, 0x49, 0xE3, 0x83, 0x98, - 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x84, 0x49, 0xE3, - // Bytes 2940 - 297f - 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, - 0x49, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, - 0x83, 0xB3, 0x49, 0xE3, 0x83, 0x9E, 0xE3, 0x82, - 0xA4, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x9E, - 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x8F, 0x49, 0xE3, - 0x83, 0x9E, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xAF, - 0x49, 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xBC, 0xE3, - 0x83, 0xAB, 0x49, 0xE3, 0x83, 0xA6, 0xE3, 0x82, - // Bytes 2980 - 29bf - 0xA2, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83, 0xAF, - 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x4C, 0xE2, - 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, - 0xE2, 0x80, 0xB2, 0x4C, 0xE2, 0x88, 0xAB, 0xE2, - 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, - 0x4C, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xAB, 0xE3, - 0x83, 0x95, 0xE3, 0x82, 0xA1, 0x4C, 0xE3, 0x82, - 0xA8, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAB, 0xE3, - // Bytes 29c0 - 29ff - 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x82, - 0x99, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3, 0x4C, - 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, - 0xB3, 0xE3, 0x83, 0x9E, 0x4C, 0xE3, 0x82, 0xAB, - 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0x83, 0xE3, 0x83, - 0x88, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xAD, - 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, 0x4C, 0xE3, - 0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x8B, - // Bytes 2a00 - 2a3f - 0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, - 0x83, 0xA5, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, - 0x4C, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, - 0x83, 0xA9, 0xE3, 0x83, 0xA0, 0x4C, 0xE3, 0x82, - 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xBC, 0xE3, - 0x83, 0x8D, 0x4C, 0xE3, 0x82, 0xB5, 0xE3, 0x82, - 0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, - 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83, - // Bytes 2a40 - 2a7f - 0xBC, 0xE3, 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x8F, - 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83, - 0x84, 0x4C, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, - 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, 0xE3, - 0x83, 0x95, 0xE3, 0x82, 0xA3, 0xE3, 0x83, 0xBC, - 0xE3, 0x83, 0x88, 0x4C, 0xE3, 0x83, 0x98, 0xE3, - 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xBF, - 0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, - // Bytes 2a80 - 2abf - 0x83, 0x8B, 0xE3, 0x83, 0x92, 0x4C, 0xE3, 0x83, - 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xB3, 0xE3, - 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x9B, 0xE3, 0x82, - 0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x88, 0x4C, - 0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x82, - 0xAF, 0xE3, 0x83, 0xAD, 0x4C, 0xE3, 0x83, 0x9F, - 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, - 0xB3, 0x4C, 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xBC, - // Bytes 2ac0 - 2aff - 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x4C, 0xE3, - 0x83, 0xAA, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, - 0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83, 0xAB, 0xE3, - 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, - 0x4C, 0xE6, 0xA0, 0xAA, 0xE5, 0xBC, 0x8F, 0xE4, - 0xBC, 0x9A, 0xE7, 0xA4, 0xBE, 0x4E, 0x28, 0xE1, - 0x84, 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x92, - 0xE1, 0x85, 0xAE, 0x29, 0x4F, 0xD8, 0xAC, 0xD9, - // Bytes 2b00 - 2b3f - 0x84, 0x20, 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xA7, - 0xD9, 0x84, 0xD9, 0x87, 0x4F, 0xE3, 0x82, 0xA2, - 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, - 0xBC, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xA2, - 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x98, 0xE3, 0x82, - 0x9A, 0xE3, 0x82, 0xA2, 0x4F, 0xE3, 0x82, 0xAD, - 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAF, 0xE3, 0x83, - 0x83, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xB5, - // Bytes 2b40 - 2b7f - 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0xE3, 0x83, - 0xBC, 0xE3, 0x83, 0xA0, 0x4F, 0xE3, 0x83, 0x8F, - 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83, - 0xAC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x98, - 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0xBF, 0xE3, 0x83, - 0xBC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x9B, - 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA4, 0xE3, 0x83, - 0xB3, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x83, 0x9E, - // Bytes 2b80 - 2bbf - 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB7, 0xE3, 0x83, - 0xA7, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xA1, - 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, - 0x88, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xAB, - 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x95, 0xE3, 0x82, - 0x99, 0xE3, 0x83, 0xAB, 0x51, 0x28, 0xE1, 0x84, - 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x8C, 0xE1, - 0x85, 0xA5, 0xE1, 0x86, 0xAB, 0x29, 0x52, 0xE3, - // Bytes 2bc0 - 2bff - 0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, - 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83, - 0xBC, 0x52, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD, - 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, - 0xA9, 0xE3, 0x83, 0xA0, 0x52, 0xE3, 0x82, 0xAD, - 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xA1, 0xE3, 0x83, - 0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x52, - 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, - // Bytes 2c00 - 2c3f - 0xA9, 0xE3, 0x83, 0xA0, 0xE3, 0x83, 0x88, 0xE3, - 0x83, 0xB3, 0x52, 0xE3, 0x82, 0xAF, 0xE3, 0x83, - 0xAB, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0xE3, - 0x82, 0xA4, 0xE3, 0x83, 0xAD, 0x52, 0xE3, 0x83, - 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, - 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, - 0x52, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, - 0x82, 0xA2, 0xE3, 0x82, 0xB9, 0xE3, 0x83, 0x88, - // Bytes 2c40 - 2c7f - 0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x83, 0x95, 0xE3, - 0x82, 0x99, 0xE3, 0x83, 0x83, 0xE3, 0x82, 0xB7, - 0xE3, 0x82, 0xA7, 0xE3, 0x83, 0xAB, 0x52, 0xE3, - 0x83, 0x9F, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0x8F, - 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83, - 0xAB, 0x52, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xB3, - 0xE3, 0x83, 0x88, 0xE3, 0x82, 0xB1, 0xE3, 0x82, - 0x99, 0xE3, 0x83, 0xB3, 0x61, 0xD8, 0xB5, 0xD9, - // Bytes 2c80 - 2cbf - 0x84, 0xD9, 0x89, 0x20, 0xD8, 0xA7, 0xD9, 0x84, - 0xD9, 0x84, 0xD9, 0x87, 0x20, 0xD8, 0xB9, 0xD9, - 0x84, 0xD9, 0x8A, 0xD9, 0x87, 0x20, 0xD9, 0x88, - 0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x06, 0xE0, - 0xA7, 0x87, 0xE0, 0xA6, 0xBE, 0x01, 0x06, 0xE0, - 0xA7, 0x87, 0xE0, 0xA7, 0x97, 0x01, 0x06, 0xE0, - 0xAD, 0x87, 0xE0, 0xAC, 0xBE, 0x01, 0x06, 0xE0, - 0xAD, 0x87, 0xE0, 0xAD, 0x96, 0x01, 0x06, 0xE0, - // Bytes 2cc0 - 2cff - 0xAD, 0x87, 0xE0, 0xAD, 0x97, 0x01, 0x06, 0xE0, - 0xAE, 0x92, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0, - 0xAF, 0x86, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0, - 0xAF, 0x86, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0, - 0xAF, 0x87, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0, - 0xB2, 0xBF, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0, - 0xB3, 0x86, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0, - 0xB3, 0x86, 0xE0, 0xB3, 0x96, 0x01, 0x06, 0xE0, - // Bytes 2d00 - 2d3f - 0xB5, 0x86, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0, - 0xB5, 0x86, 0xE0, 0xB5, 0x97, 0x01, 0x06, 0xE0, - 0xB5, 0x87, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0, - 0xB7, 0x99, 0xE0, 0xB7, 0x9F, 0x01, 0x06, 0xE1, - 0x80, 0xA5, 0xE1, 0x80, 0xAE, 0x01, 0x06, 0xE1, - 0xAC, 0x85, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - 0xAC, 0x87, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - 0xAC, 0x89, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - // Bytes 2d40 - 2d7f - 0xAC, 0x8B, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - 0xAC, 0x8D, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - 0xAC, 0x91, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - 0xAC, 0xBA, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - 0xAC, 0xBC, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - 0xAC, 0xBE, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - 0xAC, 0xBF, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, - 0xAD, 0x82, 0xE1, 0xAC, 0xB5, 0x01, 0x08, 0xF0, - // Bytes 2d80 - 2dbf - 0x91, 0x84, 0xB1, 0xF0, 0x91, 0x84, 0xA7, 0x01, - 0x08, 0xF0, 0x91, 0x84, 0xB2, 0xF0, 0x91, 0x84, - 0xA7, 0x01, 0x08, 0xF0, 0x91, 0x8D, 0x87, 0xF0, - 0x91, 0x8C, 0xBE, 0x01, 0x08, 0xF0, 0x91, 0x8D, - 0x87, 0xF0, 0x91, 0x8D, 0x97, 0x01, 0x08, 0xF0, - 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xB0, 0x01, - 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, - 0xBA, 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, - // Bytes 2dc0 - 2dff - 0x91, 0x92, 0xBD, 0x01, 0x08, 0xF0, 0x91, 0x96, - 0xB8, 0xF0, 0x91, 0x96, 0xAF, 0x01, 0x08, 0xF0, - 0x91, 0x96, 0xB9, 0xF0, 0x91, 0x96, 0xAF, 0x01, - 0x09, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0xE0, - 0xB3, 0x95, 0x02, 0x09, 0xE0, 0xB7, 0x99, 0xE0, - 0xB7, 0x8F, 0xE0, 0xB7, 0x8A, 0x12, 0x44, 0x44, - 0x5A, 0xCC, 0x8C, 0xC9, 0x44, 0x44, 0x7A, 0xCC, - 0x8C, 0xC9, 0x44, 0x64, 0x7A, 0xCC, 0x8C, 0xC9, - // Bytes 2e00 - 2e3f - 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, - 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94, 0xC9, - 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x95, 0xB5, - 0x46, 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1, 0x01, - // Bytes 2e40 - 2e7f - 0x46, 0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x89, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xAE, 0x01, - 0x46, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x90, 0xE1, 0x85, 0xA1, 0x01, - // Bytes 2e80 - 2ebf - 0x46, 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, 0x01, - 0x46, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0x01, - 0x49, 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB, 0xE3, - 0x82, 0x99, 0x0D, 0x4C, 0xE1, 0x84, 0x8C, 0xE1, - 0x85, 0xAE, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xB4, - 0x01, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, - 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, 0x4C, - 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0xBC, 0xE3, 0x83, - // Bytes 2ec0 - 2eff - 0x9B, 0xE3, 0x82, 0x9A, 0x0D, 0x4C, 0xE3, 0x83, - 0xA4, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3, - 0x82, 0x99, 0x0D, 0x4F, 0xE1, 0x84, 0x8E, 0xE1, - 0x85, 0xA1, 0xE1, 0x86, 0xB7, 0xE1, 0x84, 0x80, - 0xE1, 0x85, 0xA9, 0x01, 0x4F, 0xE3, 0x82, 0xA4, - 0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xB3, 0xE3, 0x82, - 0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3, 0x82, - 0xB7, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, - // Bytes 2f00 - 2f3f - 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3, - 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, - 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D, 0x4F, - 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x83, - 0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, - 0x52, 0xE3, 0x82, 0xA8, 0xE3, 0x82, 0xB9, 0xE3, - 0x82, 0xAF, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, - 0xE3, 0x82, 0x99, 0x0D, 0x52, 0xE3, 0x83, 0x95, - // Bytes 2f40 - 2f7f - 0xE3, 0x82, 0xA1, 0xE3, 0x83, 0xA9, 0xE3, 0x83, - 0x83, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, - 0x86, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0x01, - 0x86, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8F, 0x01, - 0x03, 0x3C, 0xCC, 0xB8, 0x05, 0x03, 0x3D, 0xCC, - 0xB8, 0x05, 0x03, 0x3E, 0xCC, 0xB8, 0x05, 0x03, - 0x41, 0xCC, 0x80, 0xC9, 0x03, 0x41, 0xCC, 0x81, - 0xC9, 0x03, 0x41, 0xCC, 0x83, 0xC9, 0x03, 0x41, - // Bytes 2f80 - 2fbf - 0xCC, 0x84, 0xC9, 0x03, 0x41, 0xCC, 0x89, 0xC9, - 0x03, 0x41, 0xCC, 0x8C, 0xC9, 0x03, 0x41, 0xCC, - 0x8F, 0xC9, 0x03, 0x41, 0xCC, 0x91, 0xC9, 0x03, - 0x41, 0xCC, 0xA5, 0xB5, 0x03, 0x41, 0xCC, 0xA8, - 0xA5, 0x03, 0x42, 0xCC, 0x87, 0xC9, 0x03, 0x42, - 0xCC, 0xA3, 0xB5, 0x03, 0x42, 0xCC, 0xB1, 0xB5, - 0x03, 0x43, 0xCC, 0x81, 0xC9, 0x03, 0x43, 0xCC, - 0x82, 0xC9, 0x03, 0x43, 0xCC, 0x87, 0xC9, 0x03, - // Bytes 2fc0 - 2fff - 0x43, 0xCC, 0x8C, 0xC9, 0x03, 0x44, 0xCC, 0x87, - 0xC9, 0x03, 0x44, 0xCC, 0x8C, 0xC9, 0x03, 0x44, - 0xCC, 0xA3, 0xB5, 0x03, 0x44, 0xCC, 0xA7, 0xA5, - 0x03, 0x44, 0xCC, 0xAD, 0xB5, 0x03, 0x44, 0xCC, - 0xB1, 0xB5, 0x03, 0x45, 0xCC, 0x80, 0xC9, 0x03, - 0x45, 0xCC, 0x81, 0xC9, 0x03, 0x45, 0xCC, 0x83, - 0xC9, 0x03, 0x45, 0xCC, 0x86, 0xC9, 0x03, 0x45, - 0xCC, 0x87, 0xC9, 0x03, 0x45, 0xCC, 0x88, 0xC9, - // Bytes 3000 - 303f - 0x03, 0x45, 0xCC, 0x89, 0xC9, 0x03, 0x45, 0xCC, - 0x8C, 0xC9, 0x03, 0x45, 0xCC, 0x8F, 0xC9, 0x03, - 0x45, 0xCC, 0x91, 0xC9, 0x03, 0x45, 0xCC, 0xA8, - 0xA5, 0x03, 0x45, 0xCC, 0xAD, 0xB5, 0x03, 0x45, - 0xCC, 0xB0, 0xB5, 0x03, 0x46, 0xCC, 0x87, 0xC9, - 0x03, 0x47, 0xCC, 0x81, 0xC9, 0x03, 0x47, 0xCC, - 0x82, 0xC9, 0x03, 0x47, 0xCC, 0x84, 0xC9, 0x03, - 0x47, 0xCC, 0x86, 0xC9, 0x03, 0x47, 0xCC, 0x87, - // Bytes 3040 - 307f - 0xC9, 0x03, 0x47, 0xCC, 0x8C, 0xC9, 0x03, 0x47, - 0xCC, 0xA7, 0xA5, 0x03, 0x48, 0xCC, 0x82, 0xC9, - 0x03, 0x48, 0xCC, 0x87, 0xC9, 0x03, 0x48, 0xCC, - 0x88, 0xC9, 0x03, 0x48, 0xCC, 0x8C, 0xC9, 0x03, - 0x48, 0xCC, 0xA3, 0xB5, 0x03, 0x48, 0xCC, 0xA7, - 0xA5, 0x03, 0x48, 0xCC, 0xAE, 0xB5, 0x03, 0x49, - 0xCC, 0x80, 0xC9, 0x03, 0x49, 0xCC, 0x81, 0xC9, - 0x03, 0x49, 0xCC, 0x82, 0xC9, 0x03, 0x49, 0xCC, - // Bytes 3080 - 30bf - 0x83, 0xC9, 0x03, 0x49, 0xCC, 0x84, 0xC9, 0x03, - 0x49, 0xCC, 0x86, 0xC9, 0x03, 0x49, 0xCC, 0x87, - 0xC9, 0x03, 0x49, 0xCC, 0x89, 0xC9, 0x03, 0x49, - 0xCC, 0x8C, 0xC9, 0x03, 0x49, 0xCC, 0x8F, 0xC9, - 0x03, 0x49, 0xCC, 0x91, 0xC9, 0x03, 0x49, 0xCC, - 0xA3, 0xB5, 0x03, 0x49, 0xCC, 0xA8, 0xA5, 0x03, - 0x49, 0xCC, 0xB0, 0xB5, 0x03, 0x4A, 0xCC, 0x82, - 0xC9, 0x03, 0x4B, 0xCC, 0x81, 0xC9, 0x03, 0x4B, - // Bytes 30c0 - 30ff - 0xCC, 0x8C, 0xC9, 0x03, 0x4B, 0xCC, 0xA3, 0xB5, - 0x03, 0x4B, 0xCC, 0xA7, 0xA5, 0x03, 0x4B, 0xCC, - 0xB1, 0xB5, 0x03, 0x4C, 0xCC, 0x81, 0xC9, 0x03, - 0x4C, 0xCC, 0x8C, 0xC9, 0x03, 0x4C, 0xCC, 0xA7, - 0xA5, 0x03, 0x4C, 0xCC, 0xAD, 0xB5, 0x03, 0x4C, - 0xCC, 0xB1, 0xB5, 0x03, 0x4D, 0xCC, 0x81, 0xC9, - 0x03, 0x4D, 0xCC, 0x87, 0xC9, 0x03, 0x4D, 0xCC, - 0xA3, 0xB5, 0x03, 0x4E, 0xCC, 0x80, 0xC9, 0x03, - // Bytes 3100 - 313f - 0x4E, 0xCC, 0x81, 0xC9, 0x03, 0x4E, 0xCC, 0x83, - 0xC9, 0x03, 0x4E, 0xCC, 0x87, 0xC9, 0x03, 0x4E, - 0xCC, 0x8C, 0xC9, 0x03, 0x4E, 0xCC, 0xA3, 0xB5, - 0x03, 0x4E, 0xCC, 0xA7, 0xA5, 0x03, 0x4E, 0xCC, - 0xAD, 0xB5, 0x03, 0x4E, 0xCC, 0xB1, 0xB5, 0x03, - 0x4F, 0xCC, 0x80, 0xC9, 0x03, 0x4F, 0xCC, 0x81, - 0xC9, 0x03, 0x4F, 0xCC, 0x86, 0xC9, 0x03, 0x4F, - 0xCC, 0x89, 0xC9, 0x03, 0x4F, 0xCC, 0x8B, 0xC9, - // Bytes 3140 - 317f - 0x03, 0x4F, 0xCC, 0x8C, 0xC9, 0x03, 0x4F, 0xCC, - 0x8F, 0xC9, 0x03, 0x4F, 0xCC, 0x91, 0xC9, 0x03, - 0x50, 0xCC, 0x81, 0xC9, 0x03, 0x50, 0xCC, 0x87, - 0xC9, 0x03, 0x52, 0xCC, 0x81, 0xC9, 0x03, 0x52, - 0xCC, 0x87, 0xC9, 0x03, 0x52, 0xCC, 0x8C, 0xC9, - 0x03, 0x52, 0xCC, 0x8F, 0xC9, 0x03, 0x52, 0xCC, - 0x91, 0xC9, 0x03, 0x52, 0xCC, 0xA7, 0xA5, 0x03, - 0x52, 0xCC, 0xB1, 0xB5, 0x03, 0x53, 0xCC, 0x82, - // Bytes 3180 - 31bf - 0xC9, 0x03, 0x53, 0xCC, 0x87, 0xC9, 0x03, 0x53, - 0xCC, 0xA6, 0xB5, 0x03, 0x53, 0xCC, 0xA7, 0xA5, - 0x03, 0x54, 0xCC, 0x87, 0xC9, 0x03, 0x54, 0xCC, - 0x8C, 0xC9, 0x03, 0x54, 0xCC, 0xA3, 0xB5, 0x03, - 0x54, 0xCC, 0xA6, 0xB5, 0x03, 0x54, 0xCC, 0xA7, - 0xA5, 0x03, 0x54, 0xCC, 0xAD, 0xB5, 0x03, 0x54, - 0xCC, 0xB1, 0xB5, 0x03, 0x55, 0xCC, 0x80, 0xC9, - 0x03, 0x55, 0xCC, 0x81, 0xC9, 0x03, 0x55, 0xCC, - // Bytes 31c0 - 31ff - 0x82, 0xC9, 0x03, 0x55, 0xCC, 0x86, 0xC9, 0x03, - 0x55, 0xCC, 0x89, 0xC9, 0x03, 0x55, 0xCC, 0x8A, - 0xC9, 0x03, 0x55, 0xCC, 0x8B, 0xC9, 0x03, 0x55, - 0xCC, 0x8C, 0xC9, 0x03, 0x55, 0xCC, 0x8F, 0xC9, - 0x03, 0x55, 0xCC, 0x91, 0xC9, 0x03, 0x55, 0xCC, - 0xA3, 0xB5, 0x03, 0x55, 0xCC, 0xA4, 0xB5, 0x03, - 0x55, 0xCC, 0xA8, 0xA5, 0x03, 0x55, 0xCC, 0xAD, - 0xB5, 0x03, 0x55, 0xCC, 0xB0, 0xB5, 0x03, 0x56, - // Bytes 3200 - 323f - 0xCC, 0x83, 0xC9, 0x03, 0x56, 0xCC, 0xA3, 0xB5, - 0x03, 0x57, 0xCC, 0x80, 0xC9, 0x03, 0x57, 0xCC, - 0x81, 0xC9, 0x03, 0x57, 0xCC, 0x82, 0xC9, 0x03, - 0x57, 0xCC, 0x87, 0xC9, 0x03, 0x57, 0xCC, 0x88, - 0xC9, 0x03, 0x57, 0xCC, 0xA3, 0xB5, 0x03, 0x58, - 0xCC, 0x87, 0xC9, 0x03, 0x58, 0xCC, 0x88, 0xC9, - 0x03, 0x59, 0xCC, 0x80, 0xC9, 0x03, 0x59, 0xCC, - 0x81, 0xC9, 0x03, 0x59, 0xCC, 0x82, 0xC9, 0x03, - // Bytes 3240 - 327f - 0x59, 0xCC, 0x83, 0xC9, 0x03, 0x59, 0xCC, 0x84, - 0xC9, 0x03, 0x59, 0xCC, 0x87, 0xC9, 0x03, 0x59, - 0xCC, 0x88, 0xC9, 0x03, 0x59, 0xCC, 0x89, 0xC9, - 0x03, 0x59, 0xCC, 0xA3, 0xB5, 0x03, 0x5A, 0xCC, - 0x81, 0xC9, 0x03, 0x5A, 0xCC, 0x82, 0xC9, 0x03, - 0x5A, 0xCC, 0x87, 0xC9, 0x03, 0x5A, 0xCC, 0x8C, - 0xC9, 0x03, 0x5A, 0xCC, 0xA3, 0xB5, 0x03, 0x5A, - 0xCC, 0xB1, 0xB5, 0x03, 0x61, 0xCC, 0x80, 0xC9, - // Bytes 3280 - 32bf - 0x03, 0x61, 0xCC, 0x81, 0xC9, 0x03, 0x61, 0xCC, - 0x83, 0xC9, 0x03, 0x61, 0xCC, 0x84, 0xC9, 0x03, - 0x61, 0xCC, 0x89, 0xC9, 0x03, 0x61, 0xCC, 0x8C, - 0xC9, 0x03, 0x61, 0xCC, 0x8F, 0xC9, 0x03, 0x61, - 0xCC, 0x91, 0xC9, 0x03, 0x61, 0xCC, 0xA5, 0xB5, - 0x03, 0x61, 0xCC, 0xA8, 0xA5, 0x03, 0x62, 0xCC, - 0x87, 0xC9, 0x03, 0x62, 0xCC, 0xA3, 0xB5, 0x03, - 0x62, 0xCC, 0xB1, 0xB5, 0x03, 0x63, 0xCC, 0x81, - // Bytes 32c0 - 32ff - 0xC9, 0x03, 0x63, 0xCC, 0x82, 0xC9, 0x03, 0x63, - 0xCC, 0x87, 0xC9, 0x03, 0x63, 0xCC, 0x8C, 0xC9, - 0x03, 0x64, 0xCC, 0x87, 0xC9, 0x03, 0x64, 0xCC, - 0x8C, 0xC9, 0x03, 0x64, 0xCC, 0xA3, 0xB5, 0x03, - 0x64, 0xCC, 0xA7, 0xA5, 0x03, 0x64, 0xCC, 0xAD, - 0xB5, 0x03, 0x64, 0xCC, 0xB1, 0xB5, 0x03, 0x65, - 0xCC, 0x80, 0xC9, 0x03, 0x65, 0xCC, 0x81, 0xC9, - 0x03, 0x65, 0xCC, 0x83, 0xC9, 0x03, 0x65, 0xCC, - // Bytes 3300 - 333f - 0x86, 0xC9, 0x03, 0x65, 0xCC, 0x87, 0xC9, 0x03, - 0x65, 0xCC, 0x88, 0xC9, 0x03, 0x65, 0xCC, 0x89, - 0xC9, 0x03, 0x65, 0xCC, 0x8C, 0xC9, 0x03, 0x65, - 0xCC, 0x8F, 0xC9, 0x03, 0x65, 0xCC, 0x91, 0xC9, - 0x03, 0x65, 0xCC, 0xA8, 0xA5, 0x03, 0x65, 0xCC, - 0xAD, 0xB5, 0x03, 0x65, 0xCC, 0xB0, 0xB5, 0x03, - 0x66, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC, 0x81, - 0xC9, 0x03, 0x67, 0xCC, 0x82, 0xC9, 0x03, 0x67, - // Bytes 3340 - 337f - 0xCC, 0x84, 0xC9, 0x03, 0x67, 0xCC, 0x86, 0xC9, - 0x03, 0x67, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC, - 0x8C, 0xC9, 0x03, 0x67, 0xCC, 0xA7, 0xA5, 0x03, - 0x68, 0xCC, 0x82, 0xC9, 0x03, 0x68, 0xCC, 0x87, - 0xC9, 0x03, 0x68, 0xCC, 0x88, 0xC9, 0x03, 0x68, - 0xCC, 0x8C, 0xC9, 0x03, 0x68, 0xCC, 0xA3, 0xB5, - 0x03, 0x68, 0xCC, 0xA7, 0xA5, 0x03, 0x68, 0xCC, - 0xAE, 0xB5, 0x03, 0x68, 0xCC, 0xB1, 0xB5, 0x03, - // Bytes 3380 - 33bf - 0x69, 0xCC, 0x80, 0xC9, 0x03, 0x69, 0xCC, 0x81, - 0xC9, 0x03, 0x69, 0xCC, 0x82, 0xC9, 0x03, 0x69, - 0xCC, 0x83, 0xC9, 0x03, 0x69, 0xCC, 0x84, 0xC9, - 0x03, 0x69, 0xCC, 0x86, 0xC9, 0x03, 0x69, 0xCC, - 0x89, 0xC9, 0x03, 0x69, 0xCC, 0x8C, 0xC9, 0x03, - 0x69, 0xCC, 0x8F, 0xC9, 0x03, 0x69, 0xCC, 0x91, - 0xC9, 0x03, 0x69, 0xCC, 0xA3, 0xB5, 0x03, 0x69, - 0xCC, 0xA8, 0xA5, 0x03, 0x69, 0xCC, 0xB0, 0xB5, - // Bytes 33c0 - 33ff - 0x03, 0x6A, 0xCC, 0x82, 0xC9, 0x03, 0x6A, 0xCC, - 0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0x81, 0xC9, 0x03, - 0x6B, 0xCC, 0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0xA3, - 0xB5, 0x03, 0x6B, 0xCC, 0xA7, 0xA5, 0x03, 0x6B, - 0xCC, 0xB1, 0xB5, 0x03, 0x6C, 0xCC, 0x81, 0xC9, - 0x03, 0x6C, 0xCC, 0x8C, 0xC9, 0x03, 0x6C, 0xCC, - 0xA7, 0xA5, 0x03, 0x6C, 0xCC, 0xAD, 0xB5, 0x03, - 0x6C, 0xCC, 0xB1, 0xB5, 0x03, 0x6D, 0xCC, 0x81, - // Bytes 3400 - 343f - 0xC9, 0x03, 0x6D, 0xCC, 0x87, 0xC9, 0x03, 0x6D, - 0xCC, 0xA3, 0xB5, 0x03, 0x6E, 0xCC, 0x80, 0xC9, - 0x03, 0x6E, 0xCC, 0x81, 0xC9, 0x03, 0x6E, 0xCC, - 0x83, 0xC9, 0x03, 0x6E, 0xCC, 0x87, 0xC9, 0x03, - 0x6E, 0xCC, 0x8C, 0xC9, 0x03, 0x6E, 0xCC, 0xA3, - 0xB5, 0x03, 0x6E, 0xCC, 0xA7, 0xA5, 0x03, 0x6E, - 0xCC, 0xAD, 0xB5, 0x03, 0x6E, 0xCC, 0xB1, 0xB5, - 0x03, 0x6F, 0xCC, 0x80, 0xC9, 0x03, 0x6F, 0xCC, - // Bytes 3440 - 347f - 0x81, 0xC9, 0x03, 0x6F, 0xCC, 0x86, 0xC9, 0x03, - 0x6F, 0xCC, 0x89, 0xC9, 0x03, 0x6F, 0xCC, 0x8B, - 0xC9, 0x03, 0x6F, 0xCC, 0x8C, 0xC9, 0x03, 0x6F, - 0xCC, 0x8F, 0xC9, 0x03, 0x6F, 0xCC, 0x91, 0xC9, - 0x03, 0x70, 0xCC, 0x81, 0xC9, 0x03, 0x70, 0xCC, - 0x87, 0xC9, 0x03, 0x72, 0xCC, 0x81, 0xC9, 0x03, - 0x72, 0xCC, 0x87, 0xC9, 0x03, 0x72, 0xCC, 0x8C, - 0xC9, 0x03, 0x72, 0xCC, 0x8F, 0xC9, 0x03, 0x72, - // Bytes 3480 - 34bf - 0xCC, 0x91, 0xC9, 0x03, 0x72, 0xCC, 0xA7, 0xA5, - 0x03, 0x72, 0xCC, 0xB1, 0xB5, 0x03, 0x73, 0xCC, - 0x82, 0xC9, 0x03, 0x73, 0xCC, 0x87, 0xC9, 0x03, - 0x73, 0xCC, 0xA6, 0xB5, 0x03, 0x73, 0xCC, 0xA7, - 0xA5, 0x03, 0x74, 0xCC, 0x87, 0xC9, 0x03, 0x74, - 0xCC, 0x88, 0xC9, 0x03, 0x74, 0xCC, 0x8C, 0xC9, - 0x03, 0x74, 0xCC, 0xA3, 0xB5, 0x03, 0x74, 0xCC, - 0xA6, 0xB5, 0x03, 0x74, 0xCC, 0xA7, 0xA5, 0x03, - // Bytes 34c0 - 34ff - 0x74, 0xCC, 0xAD, 0xB5, 0x03, 0x74, 0xCC, 0xB1, - 0xB5, 0x03, 0x75, 0xCC, 0x80, 0xC9, 0x03, 0x75, - 0xCC, 0x81, 0xC9, 0x03, 0x75, 0xCC, 0x82, 0xC9, - 0x03, 0x75, 0xCC, 0x86, 0xC9, 0x03, 0x75, 0xCC, - 0x89, 0xC9, 0x03, 0x75, 0xCC, 0x8A, 0xC9, 0x03, - 0x75, 0xCC, 0x8B, 0xC9, 0x03, 0x75, 0xCC, 0x8C, - 0xC9, 0x03, 0x75, 0xCC, 0x8F, 0xC9, 0x03, 0x75, - 0xCC, 0x91, 0xC9, 0x03, 0x75, 0xCC, 0xA3, 0xB5, - // Bytes 3500 - 353f - 0x03, 0x75, 0xCC, 0xA4, 0xB5, 0x03, 0x75, 0xCC, - 0xA8, 0xA5, 0x03, 0x75, 0xCC, 0xAD, 0xB5, 0x03, - 0x75, 0xCC, 0xB0, 0xB5, 0x03, 0x76, 0xCC, 0x83, - 0xC9, 0x03, 0x76, 0xCC, 0xA3, 0xB5, 0x03, 0x77, - 0xCC, 0x80, 0xC9, 0x03, 0x77, 0xCC, 0x81, 0xC9, - 0x03, 0x77, 0xCC, 0x82, 0xC9, 0x03, 0x77, 0xCC, - 0x87, 0xC9, 0x03, 0x77, 0xCC, 0x88, 0xC9, 0x03, - 0x77, 0xCC, 0x8A, 0xC9, 0x03, 0x77, 0xCC, 0xA3, - // Bytes 3540 - 357f - 0xB5, 0x03, 0x78, 0xCC, 0x87, 0xC9, 0x03, 0x78, - 0xCC, 0x88, 0xC9, 0x03, 0x79, 0xCC, 0x80, 0xC9, - 0x03, 0x79, 0xCC, 0x81, 0xC9, 0x03, 0x79, 0xCC, - 0x82, 0xC9, 0x03, 0x79, 0xCC, 0x83, 0xC9, 0x03, - 0x79, 0xCC, 0x84, 0xC9, 0x03, 0x79, 0xCC, 0x87, - 0xC9, 0x03, 0x79, 0xCC, 0x88, 0xC9, 0x03, 0x79, - 0xCC, 0x89, 0xC9, 0x03, 0x79, 0xCC, 0x8A, 0xC9, - 0x03, 0x79, 0xCC, 0xA3, 0xB5, 0x03, 0x7A, 0xCC, - // Bytes 3580 - 35bf - 0x81, 0xC9, 0x03, 0x7A, 0xCC, 0x82, 0xC9, 0x03, - 0x7A, 0xCC, 0x87, 0xC9, 0x03, 0x7A, 0xCC, 0x8C, - 0xC9, 0x03, 0x7A, 0xCC, 0xA3, 0xB5, 0x03, 0x7A, - 0xCC, 0xB1, 0xB5, 0x04, 0xC2, 0xA8, 0xCC, 0x80, - 0xCA, 0x04, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x04, - 0xC2, 0xA8, 0xCD, 0x82, 0xCA, 0x04, 0xC3, 0x86, - 0xCC, 0x81, 0xC9, 0x04, 0xC3, 0x86, 0xCC, 0x84, - 0xC9, 0x04, 0xC3, 0x98, 0xCC, 0x81, 0xC9, 0x04, - // Bytes 35c0 - 35ff - 0xC3, 0xA6, 0xCC, 0x81, 0xC9, 0x04, 0xC3, 0xA6, - 0xCC, 0x84, 0xC9, 0x04, 0xC3, 0xB8, 0xCC, 0x81, - 0xC9, 0x04, 0xC5, 0xBF, 0xCC, 0x87, 0xC9, 0x04, - 0xC6, 0xB7, 0xCC, 0x8C, 0xC9, 0x04, 0xCA, 0x92, - 0xCC, 0x8C, 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x80, - 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x81, 0xC9, 0x04, - 0xCE, 0x91, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0x91, - 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0x91, 0xCD, 0x85, - // Bytes 3600 - 363f - 0xD9, 0x04, 0xCE, 0x95, 0xCC, 0x80, 0xC9, 0x04, - 0xCE, 0x95, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x97, - 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x97, 0xCC, 0x81, - 0xC9, 0x04, 0xCE, 0x97, 0xCD, 0x85, 0xD9, 0x04, - 0xCE, 0x99, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x99, - 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x84, - 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x86, 0xC9, 0x04, - 0xCE, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0x9F, - // Bytes 3640 - 367f - 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x9F, 0xCC, 0x81, - 0xC9, 0x04, 0xCE, 0xA1, 0xCC, 0x94, 0xC9, 0x04, - 0xCE, 0xA5, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA5, - 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x84, - 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x86, 0xC9, 0x04, - 0xCE, 0xA5, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0xA9, - 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA9, 0xCC, 0x81, - 0xC9, 0x04, 0xCE, 0xA9, 0xCD, 0x85, 0xD9, 0x04, - // Bytes 3680 - 36bf - 0xCE, 0xB1, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB1, - 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB1, 0xCD, 0x85, - 0xD9, 0x04, 0xCE, 0xB5, 0xCC, 0x80, 0xC9, 0x04, - 0xCE, 0xB5, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xB7, - 0xCD, 0x85, 0xD9, 0x04, 0xCE, 0xB9, 0xCC, 0x80, - 0xC9, 0x04, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x04, - 0xCE, 0xB9, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB9, - 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB9, 0xCD, 0x82, - // Bytes 36c0 - 36ff - 0xC9, 0x04, 0xCE, 0xBF, 0xCC, 0x80, 0xC9, 0x04, - 0xCE, 0xBF, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x81, - 0xCC, 0x93, 0xC9, 0x04, 0xCF, 0x81, 0xCC, 0x94, - 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x80, 0xC9, 0x04, - 0xCF, 0x85, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x85, - 0xCC, 0x84, 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x86, - 0xC9, 0x04, 0xCF, 0x85, 0xCD, 0x82, 0xC9, 0x04, - 0xCF, 0x89, 0xCD, 0x85, 0xD9, 0x04, 0xCF, 0x92, - // Bytes 3700 - 373f - 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x92, 0xCC, 0x88, - 0xC9, 0x04, 0xD0, 0x86, 0xCC, 0x88, 0xC9, 0x04, - 0xD0, 0x90, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x90, - 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x93, 0xCC, 0x81, - 0xC9, 0x04, 0xD0, 0x95, 0xCC, 0x80, 0xC9, 0x04, - 0xD0, 0x95, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x95, - 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x86, - 0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x88, 0xC9, 0x04, - // Bytes 3740 - 377f - 0xD0, 0x97, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x98, - 0xCC, 0x80, 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x84, - 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x86, 0xC9, 0x04, - 0xD0, 0x98, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x9A, - 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0x9E, 0xCC, 0x88, - 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x84, 0xC9, 0x04, - 0xD0, 0xA3, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xA3, - 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x8B, - // Bytes 3780 - 37bf - 0xC9, 0x04, 0xD0, 0xA7, 0xCC, 0x88, 0xC9, 0x04, - 0xD0, 0xAB, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xAD, - 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x86, - 0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x88, 0xC9, 0x04, - 0xD0, 0xB3, 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0xB5, - 0xCC, 0x80, 0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x86, - 0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x88, 0xC9, 0x04, - 0xD0, 0xB6, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB6, - // Bytes 37c0 - 37ff - 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB7, 0xCC, 0x88, - 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x80, 0xC9, 0x04, - 0xD0, 0xB8, 0xCC, 0x84, 0xC9, 0x04, 0xD0, 0xB8, - 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x88, - 0xC9, 0x04, 0xD0, 0xBA, 0xCC, 0x81, 0xC9, 0x04, - 0xD0, 0xBE, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x83, - 0xCC, 0x84, 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x86, - 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x88, 0xC9, 0x04, - // Bytes 3800 - 383f - 0xD1, 0x83, 0xCC, 0x8B, 0xC9, 0x04, 0xD1, 0x87, - 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x8B, 0xCC, 0x88, - 0xC9, 0x04, 0xD1, 0x8D, 0xCC, 0x88, 0xC9, 0x04, - 0xD1, 0x96, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0xB4, - 0xCC, 0x8F, 0xC9, 0x04, 0xD1, 0xB5, 0xCC, 0x8F, - 0xC9, 0x04, 0xD3, 0x98, 0xCC, 0x88, 0xC9, 0x04, - 0xD3, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA8, - 0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA9, 0xCC, 0x88, - // Bytes 3840 - 387f - 0xC9, 0x04, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, 0x04, - 0xD8, 0xA7, 0xD9, 0x94, 0xC9, 0x04, 0xD8, 0xA7, - 0xD9, 0x95, 0xB5, 0x04, 0xD9, 0x88, 0xD9, 0x94, - 0xC9, 0x04, 0xD9, 0x8A, 0xD9, 0x94, 0xC9, 0x04, - 0xDB, 0x81, 0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x92, - 0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x95, 0xD9, 0x94, - 0xC9, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x80, 0xCA, - 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, - // Bytes 3880 - 38bf - 0x41, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x41, - 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x41, 0xCC, - 0x86, 0xCC, 0x80, 0xCA, 0x05, 0x41, 0xCC, 0x86, - 0xCC, 0x81, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC, - 0x83, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC, 0x89, - 0xCA, 0x05, 0x41, 0xCC, 0x87, 0xCC, 0x84, 0xCA, - 0x05, 0x41, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, - 0x41, 0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x41, - // Bytes 38c0 - 38ff - 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x41, 0xCC, - 0xA3, 0xCC, 0x86, 0xCA, 0x05, 0x43, 0xCC, 0xA7, - 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, - 0x80, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x81, - 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x83, 0xCA, - 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, - 0x45, 0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x45, - 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, - // Bytes 3900 - 393f - 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x45, 0xCC, 0xA7, - 0xCC, 0x86, 0xCA, 0x05, 0x49, 0xCC, 0x88, 0xCC, - 0x81, 0xCA, 0x05, 0x4C, 0xCC, 0xA3, 0xCC, 0x84, - 0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x80, 0xCA, - 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, - 0x4F, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x4F, - 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x4F, 0xCC, - 0x83, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x83, - // Bytes 3940 - 397f - 0xCC, 0x84, 0xCA, 0x05, 0x4F, 0xCC, 0x83, 0xCC, - 0x88, 0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x80, - 0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x81, 0xCA, - 0x05, 0x4F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, - 0x4F, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x4F, - 0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x4F, 0xCC, - 0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, - 0xCC, 0x83, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, - // Bytes 3980 - 39bf - 0x89, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0xA3, - 0xB6, 0x05, 0x4F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, - 0x05, 0x4F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05, - 0x52, 0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x53, - 0xCC, 0x81, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC, - 0x8C, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC, 0xA3, - 0xCC, 0x87, 0xCA, 0x05, 0x55, 0xCC, 0x83, 0xCC, - 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x84, 0xCC, 0x88, - // Bytes 39c0 - 39ff - 0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x80, 0xCA, - 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, - 0x55, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x55, - 0xCC, 0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x55, 0xCC, - 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x55, 0xCC, 0x9B, - 0xCC, 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, - 0x83, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0x89, - 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, - // Bytes 3a00 - 3a3f - 0x05, 0x61, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05, - 0x61, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x61, - 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x61, 0xCC, - 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x61, 0xCC, 0x86, - 0xCC, 0x80, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, - 0x81, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x83, - 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x89, 0xCA, - 0x05, 0x61, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, - // Bytes 3a40 - 3a7f - 0x61, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x61, - 0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x61, 0xCC, - 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x61, 0xCC, 0xA3, - 0xCC, 0x86, 0xCA, 0x05, 0x63, 0xCC, 0xA7, 0xCC, - 0x81, 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x80, - 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x81, 0xCA, - 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, - 0x65, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x65, - // Bytes 3a80 - 3abf - 0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x65, 0xCC, - 0x84, 0xCC, 0x81, 0xCA, 0x05, 0x65, 0xCC, 0xA3, - 0xCC, 0x82, 0xCA, 0x05, 0x65, 0xCC, 0xA7, 0xCC, - 0x86, 0xCA, 0x05, 0x69, 0xCC, 0x88, 0xCC, 0x81, - 0xCA, 0x05, 0x6C, 0xCC, 0xA3, 0xCC, 0x84, 0xCA, - 0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05, - 0x6F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x6F, - 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x6F, 0xCC, - // Bytes 3ac0 - 3aff - 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x6F, 0xCC, 0x83, - 0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC, - 0x84, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC, 0x88, - 0xCA, 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x80, 0xCA, - 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05, - 0x6F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, 0x6F, - 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x6F, 0xCC, - 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, - // Bytes 3b00 - 3b3f - 0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, - 0x83, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0x89, - 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, - 0x05, 0x6F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, - 0x6F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05, 0x72, - 0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x73, 0xCC, - 0x81, 0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0x8C, - 0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0xA3, 0xCC, - // Bytes 3b40 - 3b7f - 0x87, 0xCA, 0x05, 0x75, 0xCC, 0x83, 0xCC, 0x81, - 0xCA, 0x05, 0x75, 0xCC, 0x84, 0xCC, 0x88, 0xCA, - 0x05, 0x75, 0xCC, 0x88, 0xCC, 0x80, 0xCA, 0x05, - 0x75, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, 0x75, - 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x75, 0xCC, - 0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x75, 0xCC, 0x9B, - 0xCC, 0x80, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, - 0x81, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x83, - // Bytes 3b80 - 3bbf - 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x89, 0xCA, - 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, 0x05, - 0xE1, 0xBE, 0xBF, 0xCC, 0x80, 0xCA, 0x05, 0xE1, - 0xBE, 0xBF, 0xCC, 0x81, 0xCA, 0x05, 0xE1, 0xBE, - 0xBF, 0xCD, 0x82, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, - 0xCC, 0x80, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCC, - 0x81, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCD, 0x82, - 0xCA, 0x05, 0xE2, 0x86, 0x90, 0xCC, 0xB8, 0x05, - // Bytes 3bc0 - 3bff - 0x05, 0xE2, 0x86, 0x92, 0xCC, 0xB8, 0x05, 0x05, - 0xE2, 0x86, 0x94, 0xCC, 0xB8, 0x05, 0x05, 0xE2, - 0x87, 0x90, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, - 0x92, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, 0x94, - 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x83, 0xCC, - 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x88, 0xCC, 0xB8, - 0x05, 0x05, 0xE2, 0x88, 0x8B, 0xCC, 0xB8, 0x05, - 0x05, 0xE2, 0x88, 0xA3, 0xCC, 0xB8, 0x05, 0x05, - // Bytes 3c00 - 3c3f - 0xE2, 0x88, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2, - 0x88, 0xBC, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, - 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x85, - 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x88, 0xCC, - 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x8D, 0xCC, 0xB8, - 0x05, 0x05, 0xE2, 0x89, 0xA1, 0xCC, 0xB8, 0x05, - 0x05, 0xE2, 0x89, 0xA4, 0xCC, 0xB8, 0x05, 0x05, - 0xE2, 0x89, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2, - // Bytes 3c40 - 3c7f - 0x89, 0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, - 0xB3, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB6, - 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB7, 0xCC, - 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBA, 0xCC, 0xB8, - 0x05, 0x05, 0xE2, 0x89, 0xBB, 0xCC, 0xB8, 0x05, - 0x05, 0xE2, 0x89, 0xBC, 0xCC, 0xB8, 0x05, 0x05, - 0xE2, 0x89, 0xBD, 0xCC, 0xB8, 0x05, 0x05, 0xE2, - 0x8A, 0x82, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, - // Bytes 3c80 - 3cbf - 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x86, - 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x87, 0xCC, - 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x91, 0xCC, 0xB8, - 0x05, 0x05, 0xE2, 0x8A, 0x92, 0xCC, 0xB8, 0x05, - 0x05, 0xE2, 0x8A, 0xA2, 0xCC, 0xB8, 0x05, 0x05, - 0xE2, 0x8A, 0xA8, 0xCC, 0xB8, 0x05, 0x05, 0xE2, - 0x8A, 0xA9, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, - 0xAB, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB2, - // Bytes 3cc0 - 3cff - 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB3, 0xCC, - 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB4, 0xCC, 0xB8, - 0x05, 0x05, 0xE2, 0x8A, 0xB5, 0xCC, 0xB8, 0x05, - 0x06, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - // Bytes 3d00 - 3d3f - 0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x82, 0xCA, - 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - // Bytes 3d40 - 3d7f - 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCD, 0x82, 0xCA, - 0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x82, 0xCA, - // Bytes 3d80 - 3dbf - 0x06, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB1, 0xCC, 0x81, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - // Bytes 3dc0 - 3dff - 0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0xB7, 0xCC, 0x80, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x85, 0xDA, - 0x06, 0xCE, 0xB7, 0xCD, 0x82, 0xCD, 0x85, 0xDA, - // Bytes 3e00 - 3e3f - 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x82, 0xCA, - 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCD, 0x82, 0xCA, - 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - // Bytes 3e40 - 3e7f - 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCD, 0x82, 0xCA, - 0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x81, 0xCA, - 0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - 0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x80, 0xCA, - 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xCA, - 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCD, 0x82, 0xCA, - // Bytes 3e80 - 3ebf - 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x81, 0xCA, - 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCD, 0x82, 0xCA, - 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x80, 0xCA, - 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x81, 0xCA, - 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCD, 0x82, 0xCA, - 0x06, 0xCF, 0x89, 0xCC, 0x80, 0xCD, 0x85, 0xDA, - 0x06, 0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x85, 0xDA, - // Bytes 3ec0 - 3eff - 0x06, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x85, 0xDA, - 0x06, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x85, 0xDA, - 0x06, 0xCF, 0x89, 0xCD, 0x82, 0xCD, 0x85, 0xDA, - 0x06, 0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBC, 0x09, - 0x06, 0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xBC, 0x09, - 0x06, 0xE0, 0xA4, 0xB3, 0xE0, 0xA4, 0xBC, 0x09, - 0x06, 0xE0, 0xB1, 0x86, 0xE0, 0xB1, 0x96, 0x85, - 0x06, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8A, 0x11, - // Bytes 3f00 - 3f3f - 0x06, 0xE3, 0x81, 0x86, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x8B, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x8D, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x8F, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x91, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x93, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x95, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x97, 0xE3, 0x82, 0x99, 0x0D, - // Bytes 3f40 - 3f7f - 0x06, 0xE3, 0x81, 0x99, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x9B, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x9D, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0x9F, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0xA1, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0xA4, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0xA6, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0xA8, 0xE3, 0x82, 0x99, 0x0D, - // Bytes 3f80 - 3fbf - 0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x9A, 0x0D, - 0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x9A, 0x0D, - 0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x9A, 0x0D, - 0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x9A, 0x0D, - // Bytes 3fc0 - 3fff - 0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x9A, 0x0D, - 0x06, 0xE3, 0x82, 0x9D, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, 0x0D, - // Bytes 4000 - 403f - 0x06, 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xB5, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xBD, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0x81, 0xE3, 0x82, 0x99, 0x0D, - // Bytes 4040 - 407f - 0x06, 0xE3, 0x83, 0x84, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0x0D, - 0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0x0D, - 0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0x0D, - // Bytes 4080 - 40bf - 0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x9A, 0x0D, - 0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0x0D, - 0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0x0D, - 0x06, 0xE3, 0x83, 0xAF, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0xB0, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0xB1, 0xE3, 0x82, 0x99, 0x0D, - // Bytes 40c0 - 40ff - 0x06, 0xE3, 0x83, 0xB2, 0xE3, 0x82, 0x99, 0x0D, - 0x06, 0xE3, 0x83, 0xBD, 0xE3, 0x82, 0x99, 0x0D, - 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCD, - 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, - 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, - 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, - 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, - 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCD, - // Bytes 4100 - 413f - 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCD, - 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, - 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, - 0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, - 0x08, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCD, - 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x94, 0xCC, - 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, - 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, - // Bytes 4140 - 417f - 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, - 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCD, - 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, - 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, - 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, - 0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, - 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCD, - 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, - // Bytes 4180 - 41bf - 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, - 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, - 0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, - 0x08, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCD, - 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x94, 0xCC, - 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, - 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, - 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, - // Bytes 41c0 - 41ff - 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCD, - 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, - 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, - 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, - 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, - 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCD, - 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, - 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, - // Bytes 4200 - 423f - 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF, - 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, - 0x08, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCD, - 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x94, 0xCC, - 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, - 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCF, - 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, - 0x08, 0xF0, 0x91, 0x82, 0x99, 0xF0, 0x91, 0x82, - // Bytes 4240 - 427f - 0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82, 0x9B, 0xF0, - 0x91, 0x82, 0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82, - 0xA5, 0xF0, 0x91, 0x82, 0xBA, 0x09, 0x42, 0xC2, - 0xB4, 0x01, 0x43, 0x20, 0xCC, 0x81, 0xC9, 0x43, - 0x20, 0xCC, 0x83, 0xC9, 0x43, 0x20, 0xCC, 0x84, - 0xC9, 0x43, 0x20, 0xCC, 0x85, 0xC9, 0x43, 0x20, - 0xCC, 0x86, 0xC9, 0x43, 0x20, 0xCC, 0x87, 0xC9, - 0x43, 0x20, 0xCC, 0x88, 0xC9, 0x43, 0x20, 0xCC, - // Bytes 4280 - 42bf - 0x8A, 0xC9, 0x43, 0x20, 0xCC, 0x8B, 0xC9, 0x43, - 0x20, 0xCC, 0x93, 0xC9, 0x43, 0x20, 0xCC, 0x94, - 0xC9, 0x43, 0x20, 0xCC, 0xA7, 0xA5, 0x43, 0x20, - 0xCC, 0xA8, 0xA5, 0x43, 0x20, 0xCC, 0xB3, 0xB5, - 0x43, 0x20, 0xCD, 0x82, 0xC9, 0x43, 0x20, 0xCD, - 0x85, 0xD9, 0x43, 0x20, 0xD9, 0x8B, 0x59, 0x43, - 0x20, 0xD9, 0x8C, 0x5D, 0x43, 0x20, 0xD9, 0x8D, - 0x61, 0x43, 0x20, 0xD9, 0x8E, 0x65, 0x43, 0x20, - // Bytes 42c0 - 42ff - 0xD9, 0x8F, 0x69, 0x43, 0x20, 0xD9, 0x90, 0x6D, - 0x43, 0x20, 0xD9, 0x91, 0x71, 0x43, 0x20, 0xD9, - 0x92, 0x75, 0x43, 0x41, 0xCC, 0x8A, 0xC9, 0x43, - 0x73, 0xCC, 0x87, 0xC9, 0x44, 0x20, 0xE3, 0x82, - 0x99, 0x0D, 0x44, 0x20, 0xE3, 0x82, 0x9A, 0x0D, - 0x44, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x44, 0xCE, - 0x91, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0x95, 0xCC, - 0x81, 0xC9, 0x44, 0xCE, 0x97, 0xCC, 0x81, 0xC9, - // Bytes 4300 - 433f - 0x44, 0xCE, 0x99, 0xCC, 0x81, 0xC9, 0x44, 0xCE, - 0x9F, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC, - 0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC, 0x88, 0xC9, - 0x44, 0xCE, 0xA9, 0xCC, 0x81, 0xC9, 0x44, 0xCE, - 0xB1, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xB5, 0xCC, - 0x81, 0xC9, 0x44, 0xCE, 0xB7, 0xCC, 0x81, 0xC9, - 0x44, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x44, 0xCE, - 0xBF, 0xCC, 0x81, 0xC9, 0x44, 0xCF, 0x85, 0xCC, - // Bytes 4340 - 437f - 0x81, 0xC9, 0x44, 0xCF, 0x89, 0xCC, 0x81, 0xC9, - 0x44, 0xD7, 0x90, 0xD6, 0xB7, 0x31, 0x44, 0xD7, - 0x90, 0xD6, 0xB8, 0x35, 0x44, 0xD7, 0x90, 0xD6, - 0xBC, 0x41, 0x44, 0xD7, 0x91, 0xD6, 0xBC, 0x41, - 0x44, 0xD7, 0x91, 0xD6, 0xBF, 0x49, 0x44, 0xD7, - 0x92, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x93, 0xD6, - 0xBC, 0x41, 0x44, 0xD7, 0x94, 0xD6, 0xBC, 0x41, - 0x44, 0xD7, 0x95, 0xD6, 0xB9, 0x39, 0x44, 0xD7, - // Bytes 4380 - 43bf - 0x95, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x96, 0xD6, - 0xBC, 0x41, 0x44, 0xD7, 0x98, 0xD6, 0xBC, 0x41, - 0x44, 0xD7, 0x99, 0xD6, 0xB4, 0x25, 0x44, 0xD7, - 0x99, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9A, 0xD6, - 0xBC, 0x41, 0x44, 0xD7, 0x9B, 0xD6, 0xBC, 0x41, - 0x44, 0xD7, 0x9B, 0xD6, 0xBF, 0x49, 0x44, 0xD7, - 0x9C, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9E, 0xD6, - 0xBC, 0x41, 0x44, 0xD7, 0xA0, 0xD6, 0xBC, 0x41, - // Bytes 43c0 - 43ff - 0x44, 0xD7, 0xA1, 0xD6, 0xBC, 0x41, 0x44, 0xD7, - 0xA3, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6, - 0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6, 0xBF, 0x49, - 0x44, 0xD7, 0xA6, 0xD6, 0xBC, 0x41, 0x44, 0xD7, - 0xA7, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA8, 0xD6, - 0xBC, 0x41, 0x44, 0xD7, 0xA9, 0xD6, 0xBC, 0x41, - 0x44, 0xD7, 0xA9, 0xD7, 0x81, 0x4D, 0x44, 0xD7, - 0xA9, 0xD7, 0x82, 0x51, 0x44, 0xD7, 0xAA, 0xD6, - // Bytes 4400 - 443f - 0xBC, 0x41, 0x44, 0xD7, 0xB2, 0xD6, 0xB7, 0x31, - 0x44, 0xD8, 0xA7, 0xD9, 0x8B, 0x59, 0x44, 0xD8, - 0xA7, 0xD9, 0x93, 0xC9, 0x44, 0xD8, 0xA7, 0xD9, - 0x94, 0xC9, 0x44, 0xD8, 0xA7, 0xD9, 0x95, 0xB5, - 0x44, 0xD8, 0xB0, 0xD9, 0xB0, 0x79, 0x44, 0xD8, - 0xB1, 0xD9, 0xB0, 0x79, 0x44, 0xD9, 0x80, 0xD9, - 0x8B, 0x59, 0x44, 0xD9, 0x80, 0xD9, 0x8E, 0x65, - 0x44, 0xD9, 0x80, 0xD9, 0x8F, 0x69, 0x44, 0xD9, - // Bytes 4440 - 447f - 0x80, 0xD9, 0x90, 0x6D, 0x44, 0xD9, 0x80, 0xD9, - 0x91, 0x71, 0x44, 0xD9, 0x80, 0xD9, 0x92, 0x75, - 0x44, 0xD9, 0x87, 0xD9, 0xB0, 0x79, 0x44, 0xD9, - 0x88, 0xD9, 0x94, 0xC9, 0x44, 0xD9, 0x89, 0xD9, - 0xB0, 0x79, 0x44, 0xD9, 0x8A, 0xD9, 0x94, 0xC9, - 0x44, 0xDB, 0x92, 0xD9, 0x94, 0xC9, 0x44, 0xDB, - 0x95, 0xD9, 0x94, 0xC9, 0x45, 0x20, 0xCC, 0x88, - 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCC, - // Bytes 4480 - 44bf - 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCD, 0x82, - 0xCA, 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x80, 0xCA, - 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x45, - 0x20, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x45, 0x20, - 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, - 0x94, 0xCC, 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x94, - 0xCD, 0x82, 0xCA, 0x45, 0x20, 0xD9, 0x8C, 0xD9, - 0x91, 0x72, 0x45, 0x20, 0xD9, 0x8D, 0xD9, 0x91, - // Bytes 44c0 - 44ff - 0x72, 0x45, 0x20, 0xD9, 0x8E, 0xD9, 0x91, 0x72, - 0x45, 0x20, 0xD9, 0x8F, 0xD9, 0x91, 0x72, 0x45, - 0x20, 0xD9, 0x90, 0xD9, 0x91, 0x72, 0x45, 0x20, - 0xD9, 0x91, 0xD9, 0xB0, 0x7A, 0x45, 0xE2, 0xAB, - 0x9D, 0xCC, 0xB8, 0x05, 0x46, 0xCE, 0xB9, 0xCC, - 0x88, 0xCC, 0x81, 0xCA, 0x46, 0xCF, 0x85, 0xCC, - 0x88, 0xCC, 0x81, 0xCA, 0x46, 0xD7, 0xA9, 0xD6, - 0xBC, 0xD7, 0x81, 0x4E, 0x46, 0xD7, 0xA9, 0xD6, - // Bytes 4500 - 453f - 0xBC, 0xD7, 0x82, 0x52, 0x46, 0xD9, 0x80, 0xD9, - 0x8E, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9, - 0x8F, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9, - 0x90, 0xD9, 0x91, 0x72, 0x46, 0xE0, 0xA4, 0x95, - 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x96, - 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x97, - 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x9C, - 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA1, - // Bytes 4540 - 457f - 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA2, - 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAB, - 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAF, - 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA1, - 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA2, - 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xAF, - 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x96, - 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x97, - // Bytes 4580 - 45bf - 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x9C, - 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xAB, - 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB2, - 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB8, - 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA1, - 0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA2, - 0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xBE, 0xB2, - 0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE0, 0xBE, 0xB3, - // Bytes 45c0 - 45ff - 0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE3, 0x83, 0x86, - 0xE3, 0x82, 0x99, 0x0D, 0x48, 0xF0, 0x9D, 0x85, - 0x97, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, 0x48, 0xF0, - 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, - 0x48, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, - 0xA5, 0xAD, 0x48, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, - 0x9D, 0x85, 0xA5, 0xAD, 0x49, 0xE0, 0xBE, 0xB2, - 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x49, - // Bytes 4600 - 463f - 0xE0, 0xBE, 0xB3, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, - 0x80, 0x9E, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, - 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE, - 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, - 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0, - 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, - 0x9D, 0x85, 0xB0, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, - 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, - // Bytes 4640 - 467f - 0xB1, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, - 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB2, 0xAE, - 0x4C, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, - 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE, 0x4C, 0xF0, - 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, - 0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, - 0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, - 0xAE, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, - // Bytes 4680 - 46bf - 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, - 0x83, 0x41, 0xCC, 0x82, 0xC9, 0x83, 0x41, 0xCC, - 0x86, 0xC9, 0x83, 0x41, 0xCC, 0x87, 0xC9, 0x83, - 0x41, 0xCC, 0x88, 0xC9, 0x83, 0x41, 0xCC, 0x8A, - 0xC9, 0x83, 0x41, 0xCC, 0xA3, 0xB5, 0x83, 0x43, - 0xCC, 0xA7, 0xA5, 0x83, 0x45, 0xCC, 0x82, 0xC9, - 0x83, 0x45, 0xCC, 0x84, 0xC9, 0x83, 0x45, 0xCC, - 0xA3, 0xB5, 0x83, 0x45, 0xCC, 0xA7, 0xA5, 0x83, - // Bytes 46c0 - 46ff - 0x49, 0xCC, 0x88, 0xC9, 0x83, 0x4C, 0xCC, 0xA3, - 0xB5, 0x83, 0x4F, 0xCC, 0x82, 0xC9, 0x83, 0x4F, - 0xCC, 0x83, 0xC9, 0x83, 0x4F, 0xCC, 0x84, 0xC9, - 0x83, 0x4F, 0xCC, 0x87, 0xC9, 0x83, 0x4F, 0xCC, - 0x88, 0xC9, 0x83, 0x4F, 0xCC, 0x9B, 0xAD, 0x83, - 0x4F, 0xCC, 0xA3, 0xB5, 0x83, 0x4F, 0xCC, 0xA8, - 0xA5, 0x83, 0x52, 0xCC, 0xA3, 0xB5, 0x83, 0x53, - 0xCC, 0x81, 0xC9, 0x83, 0x53, 0xCC, 0x8C, 0xC9, - // Bytes 4700 - 473f - 0x83, 0x53, 0xCC, 0xA3, 0xB5, 0x83, 0x55, 0xCC, - 0x83, 0xC9, 0x83, 0x55, 0xCC, 0x84, 0xC9, 0x83, - 0x55, 0xCC, 0x88, 0xC9, 0x83, 0x55, 0xCC, 0x9B, - 0xAD, 0x83, 0x61, 0xCC, 0x82, 0xC9, 0x83, 0x61, - 0xCC, 0x86, 0xC9, 0x83, 0x61, 0xCC, 0x87, 0xC9, - 0x83, 0x61, 0xCC, 0x88, 0xC9, 0x83, 0x61, 0xCC, - 0x8A, 0xC9, 0x83, 0x61, 0xCC, 0xA3, 0xB5, 0x83, - 0x63, 0xCC, 0xA7, 0xA5, 0x83, 0x65, 0xCC, 0x82, - // Bytes 4740 - 477f - 0xC9, 0x83, 0x65, 0xCC, 0x84, 0xC9, 0x83, 0x65, - 0xCC, 0xA3, 0xB5, 0x83, 0x65, 0xCC, 0xA7, 0xA5, - 0x83, 0x69, 0xCC, 0x88, 0xC9, 0x83, 0x6C, 0xCC, - 0xA3, 0xB5, 0x83, 0x6F, 0xCC, 0x82, 0xC9, 0x83, - 0x6F, 0xCC, 0x83, 0xC9, 0x83, 0x6F, 0xCC, 0x84, - 0xC9, 0x83, 0x6F, 0xCC, 0x87, 0xC9, 0x83, 0x6F, - 0xCC, 0x88, 0xC9, 0x83, 0x6F, 0xCC, 0x9B, 0xAD, - 0x83, 0x6F, 0xCC, 0xA3, 0xB5, 0x83, 0x6F, 0xCC, - // Bytes 4780 - 47bf - 0xA8, 0xA5, 0x83, 0x72, 0xCC, 0xA3, 0xB5, 0x83, - 0x73, 0xCC, 0x81, 0xC9, 0x83, 0x73, 0xCC, 0x8C, - 0xC9, 0x83, 0x73, 0xCC, 0xA3, 0xB5, 0x83, 0x75, - 0xCC, 0x83, 0xC9, 0x83, 0x75, 0xCC, 0x84, 0xC9, - 0x83, 0x75, 0xCC, 0x88, 0xC9, 0x83, 0x75, 0xCC, - 0x9B, 0xAD, 0x84, 0xCE, 0x91, 0xCC, 0x93, 0xC9, - 0x84, 0xCE, 0x91, 0xCC, 0x94, 0xC9, 0x84, 0xCE, - 0x95, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x95, 0xCC, - // Bytes 47c0 - 47ff - 0x94, 0xC9, 0x84, 0xCE, 0x97, 0xCC, 0x93, 0xC9, - 0x84, 0xCE, 0x97, 0xCC, 0x94, 0xC9, 0x84, 0xCE, - 0x99, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x99, 0xCC, - 0x94, 0xC9, 0x84, 0xCE, 0x9F, 0xCC, 0x93, 0xC9, - 0x84, 0xCE, 0x9F, 0xCC, 0x94, 0xC9, 0x84, 0xCE, - 0xA5, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xA9, 0xCC, - 0x93, 0xC9, 0x84, 0xCE, 0xA9, 0xCC, 0x94, 0xC9, - 0x84, 0xCE, 0xB1, 0xCC, 0x80, 0xC9, 0x84, 0xCE, - // Bytes 4800 - 483f - 0xB1, 0xCC, 0x81, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, - 0x93, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, 0x94, 0xC9, - 0x84, 0xCE, 0xB1, 0xCD, 0x82, 0xC9, 0x84, 0xCE, - 0xB5, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB5, 0xCC, - 0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, 0x80, 0xC9, - 0x84, 0xCE, 0xB7, 0xCC, 0x81, 0xC9, 0x84, 0xCE, - 0xB7, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, - 0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCD, 0x82, 0xC9, - // Bytes 4840 - 487f - 0x84, 0xCE, 0xB9, 0xCC, 0x88, 0xC9, 0x84, 0xCE, - 0xB9, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB9, 0xCC, - 0x94, 0xC9, 0x84, 0xCE, 0xBF, 0xCC, 0x93, 0xC9, - 0x84, 0xCE, 0xBF, 0xCC, 0x94, 0xC9, 0x84, 0xCF, - 0x85, 0xCC, 0x88, 0xC9, 0x84, 0xCF, 0x85, 0xCC, - 0x93, 0xC9, 0x84, 0xCF, 0x85, 0xCC, 0x94, 0xC9, - 0x84, 0xCF, 0x89, 0xCC, 0x80, 0xC9, 0x84, 0xCF, - 0x89, 0xCC, 0x81, 0xC9, 0x84, 0xCF, 0x89, 0xCC, - // Bytes 4880 - 48bf - 0x93, 0xC9, 0x84, 0xCF, 0x89, 0xCC, 0x94, 0xC9, - 0x84, 0xCF, 0x89, 0xCD, 0x82, 0xC9, 0x86, 0xCE, - 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - 0x91, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - 0x91, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, - 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - 0x91, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, - // Bytes 48c0 - 48ff - 0x97, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - 0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, - 0x97, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - 0x97, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, - 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - 0xA9, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - // Bytes 4900 - 493f - 0xA9, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, - 0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - 0xA9, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, - 0xB1, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - 0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, - 0xB1, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - // Bytes 4940 - 497f - 0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, - 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - 0xB7, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - 0xB7, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, - 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, - 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, - 0xB7, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCF, - // Bytes 4980 - 49bf - 0x89, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCF, - 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCF, - 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCF, - 0x89, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCF, - 0x89, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCF, - 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x42, 0xCC, - 0x80, 0xC9, 0x32, 0x42, 0xCC, 0x81, 0xC9, 0x32, - 0x42, 0xCC, 0x93, 0xC9, 0x32, 0x43, 0xE1, 0x85, - // Bytes 49c0 - 49ff - 0xA1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA2, 0x01, - 0x00, 0x43, 0xE1, 0x85, 0xA3, 0x01, 0x00, 0x43, - 0xE1, 0x85, 0xA4, 0x01, 0x00, 0x43, 0xE1, 0x85, - 0xA5, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA6, 0x01, - 0x00, 0x43, 0xE1, 0x85, 0xA7, 0x01, 0x00, 0x43, - 0xE1, 0x85, 0xA8, 0x01, 0x00, 0x43, 0xE1, 0x85, - 0xA9, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAA, 0x01, - 0x00, 0x43, 0xE1, 0x85, 0xAB, 0x01, 0x00, 0x43, - // Bytes 4a00 - 4a3f - 0xE1, 0x85, 0xAC, 0x01, 0x00, 0x43, 0xE1, 0x85, - 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAE, 0x01, - 0x00, 0x43, 0xE1, 0x85, 0xAF, 0x01, 0x00, 0x43, - 0xE1, 0x85, 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x85, - 0xB1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB2, 0x01, - 0x00, 0x43, 0xE1, 0x85, 0xB3, 0x01, 0x00, 0x43, - 0xE1, 0x85, 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x85, - 0xB5, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAA, 0x01, - // Bytes 4a40 - 4a7f - 0x00, 0x43, 0xE1, 0x86, 0xAC, 0x01, 0x00, 0x43, - 0xE1, 0x86, 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x86, - 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB1, 0x01, - 0x00, 0x43, 0xE1, 0x86, 0xB2, 0x01, 0x00, 0x43, - 0xE1, 0x86, 0xB3, 0x01, 0x00, 0x43, 0xE1, 0x86, - 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB5, 0x01, - 0x00, 0x44, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x32, - 0x43, 0xE3, 0x82, 0x99, 0x0D, 0x03, 0x43, 0xE3, - // Bytes 4a80 - 4abf - 0x82, 0x9A, 0x0D, 0x03, 0x46, 0xE0, 0xBD, 0xB1, - 0xE0, 0xBD, 0xB2, 0x9E, 0x26, 0x46, 0xE0, 0xBD, - 0xB1, 0xE0, 0xBD, 0xB4, 0xA2, 0x26, 0x46, 0xE0, - 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x26, 0x00, - 0x01, -} - -// lookup returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *nfcTrie) lookup(s []byte) (v uint16, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return nfcValues[c0], 1 - case c0 < 0xC2: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := nfcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := nfcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := nfcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = nfcIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 3 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *nfcTrie) lookupUnsafe(s []byte) uint16 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return nfcValues[c0] - } - i := nfcIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = nfcIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = nfcIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// lookupString returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *nfcTrie) lookupString(s string) (v uint16, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return nfcValues[c0], 1 - case c0 < 0xC2: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := nfcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := nfcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := nfcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = nfcIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 3 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *nfcTrie) lookupStringUnsafe(s string) uint16 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return nfcValues[c0] - } - i := nfcIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = nfcIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = nfcIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// nfcTrie. Total size: 10332 bytes (10.09 KiB). Checksum: 51cc525b297fc970. -type nfcTrie struct{} - -func newNfcTrie(i int) *nfcTrie { - return &nfcTrie{} -} - -// lookupValue determines the type of block n and looks up the value for b. -func (t *nfcTrie) lookupValue(n uint32, b byte) uint16 { - switch { - case n < 44: - return uint16(nfcValues[n<<6+uint32(b)]) - default: - n -= 44 - return uint16(nfcSparse.lookup(n, b)) - } -} - -// nfcValues: 46 blocks, 2944 entries, 5888 bytes -// The third block is the zero block. -var nfcValues = [2944]uint16{ - // Block 0x0, offset 0x0 - 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000, - // Block 0x1, offset 0x40 - 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000, - 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000, - 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000, - 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000, - 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000, - 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000, - 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000, - 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000, - 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000, - 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000, - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c, - 0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb, - 0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104, - 0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd, - 0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235, - 0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285, - 0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3, - 0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750, - 0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f, - 0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3, - 0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569, - // Block 0x4, offset 0x100 - 0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8, - 0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6, - 0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5, - 0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302, - 0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339, - 0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352, - 0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e, - 0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6, - 0x130: 0x308c, 0x134: 0x30b4, 0x135: 0x33c0, - 0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc, - 0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8, - // Block 0x5, offset 0x140 - 0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118, - 0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f, - 0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c, - 0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483, - 0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d, - 0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba, - 0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796, - 0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2, - 0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528, - 0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267, - 0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0xa000, - // Block 0x6, offset 0x180 - 0x184: 0x8100, 0x185: 0x8100, - 0x186: 0x8100, - 0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140, - 0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8, - 0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50, - 0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5, - 0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf, - 0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd, - 0x1b0: 0x33c5, 0x1b4: 0x3028, 0x1b5: 0x3334, - 0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46, - 0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb, - // Block 0x7, offset 0x1c0 - 0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316, - 0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac, - 0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479, - 0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6, - 0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5, - 0x1de: 0x305a, 0x1df: 0x3366, - 0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b, - 0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769, - 0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f, - // Block 0x8, offset 0x200 - 0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132, - 0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932, - 0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932, - 0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d, - 0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d, - 0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d, - 0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d, - 0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d, - 0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101, - 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d, - 0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132, - // Block 0x9, offset 0x240 - 0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936, - 0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132, - 0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132, - 0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132, - 0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135, - 0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132, - 0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132, - 0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132, - 0x274: 0x0170, - 0x27a: 0x8100, - 0x27e: 0x0037, - // Block 0xa, offset 0x280 - 0x284: 0x8100, 0x285: 0x35a1, - 0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625, - 0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000, - 0x295: 0xa000, 0x297: 0xa000, - 0x299: 0xa000, - 0x29f: 0xa000, 0x2a1: 0xa000, - 0x2a5: 0xa000, 0x2a9: 0xa000, - 0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9, - 0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000, - 0x2b7: 0xa000, 0x2b9: 0xa000, - 0x2bf: 0xa000, - // Block 0xb, offset 0x2c0 - 0x2c0: 0x3721, 0x2c1: 0x372d, 0x2c3: 0x371b, - 0x2c6: 0xa000, 0x2c7: 0x3709, - 0x2cc: 0x375d, 0x2cd: 0x3745, 0x2ce: 0x376f, 0x2d0: 0xa000, - 0x2d3: 0xa000, 0x2d5: 0xa000, 0x2d6: 0xa000, 0x2d7: 0xa000, - 0x2d8: 0xa000, 0x2d9: 0x3751, 0x2da: 0xa000, - 0x2de: 0xa000, 0x2e3: 0xa000, - 0x2e7: 0xa000, - 0x2eb: 0xa000, 0x2ed: 0xa000, - 0x2f0: 0xa000, 0x2f3: 0xa000, 0x2f5: 0xa000, - 0x2f6: 0xa000, 0x2f7: 0xa000, 0x2f8: 0xa000, 0x2f9: 0x37d5, 0x2fa: 0xa000, - 0x2fe: 0xa000, - // Block 0xc, offset 0x300 - 0x301: 0x3733, 0x302: 0x37b7, - 0x310: 0x370f, 0x311: 0x3793, - 0x312: 0x3715, 0x313: 0x3799, 0x316: 0x3727, 0x317: 0x37ab, - 0x318: 0xa000, 0x319: 0xa000, 0x31a: 0x3829, 0x31b: 0x382f, 0x31c: 0x3739, 0x31d: 0x37bd, - 0x31e: 0x373f, 0x31f: 0x37c3, 0x322: 0x374b, 0x323: 0x37cf, - 0x324: 0x3757, 0x325: 0x37db, 0x326: 0x3763, 0x327: 0x37e7, 0x328: 0xa000, 0x329: 0xa000, - 0x32a: 0x3835, 0x32b: 0x383b, 0x32c: 0x378d, 0x32d: 0x3811, 0x32e: 0x3769, 0x32f: 0x37ed, - 0x330: 0x3775, 0x331: 0x37f9, 0x332: 0x377b, 0x333: 0x37ff, 0x334: 0x3781, 0x335: 0x3805, - 0x338: 0x3787, 0x339: 0x380b, - // Block 0xd, offset 0x340 - 0x351: 0x812d, - 0x352: 0x8132, 0x353: 0x8132, 0x354: 0x8132, 0x355: 0x8132, 0x356: 0x812d, 0x357: 0x8132, - 0x358: 0x8132, 0x359: 0x8132, 0x35a: 0x812e, 0x35b: 0x812d, 0x35c: 0x8132, 0x35d: 0x8132, - 0x35e: 0x8132, 0x35f: 0x8132, 0x360: 0x8132, 0x361: 0x8132, 0x362: 0x812d, 0x363: 0x812d, - 0x364: 0x812d, 0x365: 0x812d, 0x366: 0x812d, 0x367: 0x812d, 0x368: 0x8132, 0x369: 0x8132, - 0x36a: 0x812d, 0x36b: 0x8132, 0x36c: 0x8132, 0x36d: 0x812e, 0x36e: 0x8131, 0x36f: 0x8132, - 0x370: 0x8105, 0x371: 0x8106, 0x372: 0x8107, 0x373: 0x8108, 0x374: 0x8109, 0x375: 0x810a, - 0x376: 0x810b, 0x377: 0x810c, 0x378: 0x810d, 0x379: 0x810e, 0x37a: 0x810e, 0x37b: 0x810f, - 0x37c: 0x8110, 0x37d: 0x8111, 0x37f: 0x8112, - // Block 0xe, offset 0x380 - 0x388: 0xa000, 0x38a: 0xa000, 0x38b: 0x8116, - 0x38c: 0x8117, 0x38d: 0x8118, 0x38e: 0x8119, 0x38f: 0x811a, 0x390: 0x811b, 0x391: 0x811c, - 0x392: 0x811d, 0x393: 0x9932, 0x394: 0x9932, 0x395: 0x992d, 0x396: 0x812d, 0x397: 0x8132, - 0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x8132, 0x39b: 0x8132, 0x39c: 0x812d, 0x39d: 0x8132, - 0x39e: 0x8132, 0x39f: 0x812d, - 0x3b0: 0x811e, - // Block 0xf, offset 0x3c0 - 0x3c5: 0xa000, - 0x3c6: 0x2d26, 0x3c7: 0xa000, 0x3c8: 0x2d2e, 0x3c9: 0xa000, 0x3ca: 0x2d36, 0x3cb: 0xa000, - 0x3cc: 0x2d3e, 0x3cd: 0xa000, 0x3ce: 0x2d46, 0x3d1: 0xa000, - 0x3d2: 0x2d4e, - 0x3f4: 0x8102, 0x3f5: 0x9900, - 0x3fa: 0xa000, 0x3fb: 0x2d56, - 0x3fc: 0xa000, 0x3fd: 0x2d5e, 0x3fe: 0xa000, 0x3ff: 0xa000, - // Block 0x10, offset 0x400 - 0x400: 0x2f97, 0x401: 0x32a3, 0x402: 0x2fa1, 0x403: 0x32ad, 0x404: 0x2fa6, 0x405: 0x32b2, - 0x406: 0x2fab, 0x407: 0x32b7, 0x408: 0x38cc, 0x409: 0x3a5b, 0x40a: 0x2fc4, 0x40b: 0x32d0, - 0x40c: 0x2fce, 0x40d: 0x32da, 0x40e: 0x2fdd, 0x40f: 0x32e9, 0x410: 0x2fd3, 0x411: 0x32df, - 0x412: 0x2fd8, 0x413: 0x32e4, 0x414: 0x38ef, 0x415: 0x3a7e, 0x416: 0x38f6, 0x417: 0x3a85, - 0x418: 0x3019, 0x419: 0x3325, 0x41a: 0x301e, 0x41b: 0x332a, 0x41c: 0x3904, 0x41d: 0x3a93, - 0x41e: 0x3023, 0x41f: 0x332f, 0x420: 0x3032, 0x421: 0x333e, 0x422: 0x3050, 0x423: 0x335c, - 0x424: 0x305f, 0x425: 0x336b, 0x426: 0x3055, 0x427: 0x3361, 0x428: 0x3064, 0x429: 0x3370, - 0x42a: 0x3069, 0x42b: 0x3375, 0x42c: 0x30af, 0x42d: 0x33bb, 0x42e: 0x390b, 0x42f: 0x3a9a, - 0x430: 0x30b9, 0x431: 0x33ca, 0x432: 0x30c3, 0x433: 0x33d4, 0x434: 0x30cd, 0x435: 0x33de, - 0x436: 0x46c4, 0x437: 0x4755, 0x438: 0x3912, 0x439: 0x3aa1, 0x43a: 0x30e6, 0x43b: 0x33f7, - 0x43c: 0x30e1, 0x43d: 0x33f2, 0x43e: 0x30eb, 0x43f: 0x33fc, - // Block 0x11, offset 0x440 - 0x440: 0x30f0, 0x441: 0x3401, 0x442: 0x30f5, 0x443: 0x3406, 0x444: 0x3109, 0x445: 0x341a, - 0x446: 0x3113, 0x447: 0x3424, 0x448: 0x3122, 0x449: 0x3433, 0x44a: 0x311d, 0x44b: 0x342e, - 0x44c: 0x3935, 0x44d: 0x3ac4, 0x44e: 0x3943, 0x44f: 0x3ad2, 0x450: 0x394a, 0x451: 0x3ad9, - 0x452: 0x3951, 0x453: 0x3ae0, 0x454: 0x314f, 0x455: 0x3460, 0x456: 0x3154, 0x457: 0x3465, - 0x458: 0x315e, 0x459: 0x346f, 0x45a: 0x46f1, 0x45b: 0x4782, 0x45c: 0x3997, 0x45d: 0x3b26, - 0x45e: 0x3177, 0x45f: 0x3488, 0x460: 0x3181, 0x461: 0x3492, 0x462: 0x4700, 0x463: 0x4791, - 0x464: 0x399e, 0x465: 0x3b2d, 0x466: 0x39a5, 0x467: 0x3b34, 0x468: 0x39ac, 0x469: 0x3b3b, - 0x46a: 0x3190, 0x46b: 0x34a1, 0x46c: 0x319a, 0x46d: 0x34b0, 0x46e: 0x31ae, 0x46f: 0x34c4, - 0x470: 0x31a9, 0x471: 0x34bf, 0x472: 0x31ea, 0x473: 0x3500, 0x474: 0x31f9, 0x475: 0x350f, - 0x476: 0x31f4, 0x477: 0x350a, 0x478: 0x39b3, 0x479: 0x3b42, 0x47a: 0x39ba, 0x47b: 0x3b49, - 0x47c: 0x31fe, 0x47d: 0x3514, 0x47e: 0x3203, 0x47f: 0x3519, - // Block 0x12, offset 0x480 - 0x480: 0x3208, 0x481: 0x351e, 0x482: 0x320d, 0x483: 0x3523, 0x484: 0x321c, 0x485: 0x3532, - 0x486: 0x3217, 0x487: 0x352d, 0x488: 0x3221, 0x489: 0x353c, 0x48a: 0x3226, 0x48b: 0x3541, - 0x48c: 0x322b, 0x48d: 0x3546, 0x48e: 0x3249, 0x48f: 0x3564, 0x490: 0x3262, 0x491: 0x3582, - 0x492: 0x3271, 0x493: 0x3591, 0x494: 0x3276, 0x495: 0x3596, 0x496: 0x337a, 0x497: 0x34a6, - 0x498: 0x3537, 0x499: 0x3573, 0x49b: 0x35d1, - 0x4a0: 0x46a1, 0x4a1: 0x4732, 0x4a2: 0x2f83, 0x4a3: 0x328f, - 0x4a4: 0x3878, 0x4a5: 0x3a07, 0x4a6: 0x3871, 0x4a7: 0x3a00, 0x4a8: 0x3886, 0x4a9: 0x3a15, - 0x4aa: 0x387f, 0x4ab: 0x3a0e, 0x4ac: 0x38be, 0x4ad: 0x3a4d, 0x4ae: 0x3894, 0x4af: 0x3a23, - 0x4b0: 0x388d, 0x4b1: 0x3a1c, 0x4b2: 0x38a2, 0x4b3: 0x3a31, 0x4b4: 0x389b, 0x4b5: 0x3a2a, - 0x4b6: 0x38c5, 0x4b7: 0x3a54, 0x4b8: 0x46b5, 0x4b9: 0x4746, 0x4ba: 0x3000, 0x4bb: 0x330c, - 0x4bc: 0x2fec, 0x4bd: 0x32f8, 0x4be: 0x38da, 0x4bf: 0x3a69, - // Block 0x13, offset 0x4c0 - 0x4c0: 0x38d3, 0x4c1: 0x3a62, 0x4c2: 0x38e8, 0x4c3: 0x3a77, 0x4c4: 0x38e1, 0x4c5: 0x3a70, - 0x4c6: 0x38fd, 0x4c7: 0x3a8c, 0x4c8: 0x3091, 0x4c9: 0x339d, 0x4ca: 0x30a5, 0x4cb: 0x33b1, - 0x4cc: 0x46e7, 0x4cd: 0x4778, 0x4ce: 0x3136, 0x4cf: 0x3447, 0x4d0: 0x3920, 0x4d1: 0x3aaf, - 0x4d2: 0x3919, 0x4d3: 0x3aa8, 0x4d4: 0x392e, 0x4d5: 0x3abd, 0x4d6: 0x3927, 0x4d7: 0x3ab6, - 0x4d8: 0x3989, 0x4d9: 0x3b18, 0x4da: 0x396d, 0x4db: 0x3afc, 0x4dc: 0x3966, 0x4dd: 0x3af5, - 0x4de: 0x397b, 0x4df: 0x3b0a, 0x4e0: 0x3974, 0x4e1: 0x3b03, 0x4e2: 0x3982, 0x4e3: 0x3b11, - 0x4e4: 0x31e5, 0x4e5: 0x34fb, 0x4e6: 0x31c7, 0x4e7: 0x34dd, 0x4e8: 0x39e4, 0x4e9: 0x3b73, - 0x4ea: 0x39dd, 0x4eb: 0x3b6c, 0x4ec: 0x39f2, 0x4ed: 0x3b81, 0x4ee: 0x39eb, 0x4ef: 0x3b7a, - 0x4f0: 0x39f9, 0x4f1: 0x3b88, 0x4f2: 0x3230, 0x4f3: 0x354b, 0x4f4: 0x3258, 0x4f5: 0x3578, - 0x4f6: 0x3253, 0x4f7: 0x356e, 0x4f8: 0x323f, 0x4f9: 0x355a, - // Block 0x14, offset 0x500 - 0x500: 0x4804, 0x501: 0x480a, 0x502: 0x491e, 0x503: 0x4936, 0x504: 0x4926, 0x505: 0x493e, - 0x506: 0x492e, 0x507: 0x4946, 0x508: 0x47aa, 0x509: 0x47b0, 0x50a: 0x488e, 0x50b: 0x48a6, - 0x50c: 0x4896, 0x50d: 0x48ae, 0x50e: 0x489e, 0x50f: 0x48b6, 0x510: 0x4816, 0x511: 0x481c, - 0x512: 0x3db8, 0x513: 0x3dc8, 0x514: 0x3dc0, 0x515: 0x3dd0, - 0x518: 0x47b6, 0x519: 0x47bc, 0x51a: 0x3ce8, 0x51b: 0x3cf8, 0x51c: 0x3cf0, 0x51d: 0x3d00, - 0x520: 0x482e, 0x521: 0x4834, 0x522: 0x494e, 0x523: 0x4966, - 0x524: 0x4956, 0x525: 0x496e, 0x526: 0x495e, 0x527: 0x4976, 0x528: 0x47c2, 0x529: 0x47c8, - 0x52a: 0x48be, 0x52b: 0x48d6, 0x52c: 0x48c6, 0x52d: 0x48de, 0x52e: 0x48ce, 0x52f: 0x48e6, - 0x530: 0x4846, 0x531: 0x484c, 0x532: 0x3e18, 0x533: 0x3e30, 0x534: 0x3e20, 0x535: 0x3e38, - 0x536: 0x3e28, 0x537: 0x3e40, 0x538: 0x47ce, 0x539: 0x47d4, 0x53a: 0x3d18, 0x53b: 0x3d30, - 0x53c: 0x3d20, 0x53d: 0x3d38, 0x53e: 0x3d28, 0x53f: 0x3d40, - // Block 0x15, offset 0x540 - 0x540: 0x4852, 0x541: 0x4858, 0x542: 0x3e48, 0x543: 0x3e58, 0x544: 0x3e50, 0x545: 0x3e60, - 0x548: 0x47da, 0x549: 0x47e0, 0x54a: 0x3d48, 0x54b: 0x3d58, - 0x54c: 0x3d50, 0x54d: 0x3d60, 0x550: 0x4864, 0x551: 0x486a, - 0x552: 0x3e80, 0x553: 0x3e98, 0x554: 0x3e88, 0x555: 0x3ea0, 0x556: 0x3e90, 0x557: 0x3ea8, - 0x559: 0x47e6, 0x55b: 0x3d68, 0x55d: 0x3d70, - 0x55f: 0x3d78, 0x560: 0x487c, 0x561: 0x4882, 0x562: 0x497e, 0x563: 0x4996, - 0x564: 0x4986, 0x565: 0x499e, 0x566: 0x498e, 0x567: 0x49a6, 0x568: 0x47ec, 0x569: 0x47f2, - 0x56a: 0x48ee, 0x56b: 0x4906, 0x56c: 0x48f6, 0x56d: 0x490e, 0x56e: 0x48fe, 0x56f: 0x4916, - 0x570: 0x47f8, 0x571: 0x431e, 0x572: 0x3691, 0x573: 0x4324, 0x574: 0x4822, 0x575: 0x432a, - 0x576: 0x36a3, 0x577: 0x4330, 0x578: 0x36c1, 0x579: 0x4336, 0x57a: 0x36d9, 0x57b: 0x433c, - 0x57c: 0x4870, 0x57d: 0x4342, - // Block 0x16, offset 0x580 - 0x580: 0x3da0, 0x581: 0x3da8, 0x582: 0x4184, 0x583: 0x41a2, 0x584: 0x418e, 0x585: 0x41ac, - 0x586: 0x4198, 0x587: 0x41b6, 0x588: 0x3cd8, 0x589: 0x3ce0, 0x58a: 0x40d0, 0x58b: 0x40ee, - 0x58c: 0x40da, 0x58d: 0x40f8, 0x58e: 0x40e4, 0x58f: 0x4102, 0x590: 0x3de8, 0x591: 0x3df0, - 0x592: 0x41c0, 0x593: 0x41de, 0x594: 0x41ca, 0x595: 0x41e8, 0x596: 0x41d4, 0x597: 0x41f2, - 0x598: 0x3d08, 0x599: 0x3d10, 0x59a: 0x410c, 0x59b: 0x412a, 0x59c: 0x4116, 0x59d: 0x4134, - 0x59e: 0x4120, 0x59f: 0x413e, 0x5a0: 0x3ec0, 0x5a1: 0x3ec8, 0x5a2: 0x41fc, 0x5a3: 0x421a, - 0x5a4: 0x4206, 0x5a5: 0x4224, 0x5a6: 0x4210, 0x5a7: 0x422e, 0x5a8: 0x3d80, 0x5a9: 0x3d88, - 0x5aa: 0x4148, 0x5ab: 0x4166, 0x5ac: 0x4152, 0x5ad: 0x4170, 0x5ae: 0x415c, 0x5af: 0x417a, - 0x5b0: 0x3685, 0x5b1: 0x367f, 0x5b2: 0x3d90, 0x5b3: 0x368b, 0x5b4: 0x3d98, - 0x5b6: 0x4810, 0x5b7: 0x3db0, 0x5b8: 0x35f5, 0x5b9: 0x35ef, 0x5ba: 0x35e3, 0x5bb: 0x42ee, - 0x5bc: 0x35fb, 0x5bd: 0x8100, 0x5be: 0x01d3, 0x5bf: 0xa100, - // Block 0x17, offset 0x5c0 - 0x5c0: 0x8100, 0x5c1: 0x35a7, 0x5c2: 0x3dd8, 0x5c3: 0x369d, 0x5c4: 0x3de0, - 0x5c6: 0x483a, 0x5c7: 0x3df8, 0x5c8: 0x3601, 0x5c9: 0x42f4, 0x5ca: 0x360d, 0x5cb: 0x42fa, - 0x5cc: 0x3619, 0x5cd: 0x3b8f, 0x5ce: 0x3b96, 0x5cf: 0x3b9d, 0x5d0: 0x36b5, 0x5d1: 0x36af, - 0x5d2: 0x3e00, 0x5d3: 0x44e4, 0x5d6: 0x36bb, 0x5d7: 0x3e10, - 0x5d8: 0x3631, 0x5d9: 0x362b, 0x5da: 0x361f, 0x5db: 0x4300, 0x5dd: 0x3ba4, - 0x5de: 0x3bab, 0x5df: 0x3bb2, 0x5e0: 0x36eb, 0x5e1: 0x36e5, 0x5e2: 0x3e68, 0x5e3: 0x44ec, - 0x5e4: 0x36cd, 0x5e5: 0x36d3, 0x5e6: 0x36f1, 0x5e7: 0x3e78, 0x5e8: 0x3661, 0x5e9: 0x365b, - 0x5ea: 0x364f, 0x5eb: 0x430c, 0x5ec: 0x3649, 0x5ed: 0x359b, 0x5ee: 0x42e8, 0x5ef: 0x0081, - 0x5f2: 0x3eb0, 0x5f3: 0x36f7, 0x5f4: 0x3eb8, - 0x5f6: 0x4888, 0x5f7: 0x3ed0, 0x5f8: 0x363d, 0x5f9: 0x4306, 0x5fa: 0x366d, 0x5fb: 0x4318, - 0x5fc: 0x3679, 0x5fd: 0x4256, 0x5fe: 0xa100, - // Block 0x18, offset 0x600 - 0x601: 0x3c06, 0x603: 0xa000, 0x604: 0x3c0d, 0x605: 0xa000, - 0x607: 0x3c14, 0x608: 0xa000, 0x609: 0x3c1b, - 0x60d: 0xa000, - 0x620: 0x2f65, 0x621: 0xa000, 0x622: 0x3c29, - 0x624: 0xa000, 0x625: 0xa000, - 0x62d: 0x3c22, 0x62e: 0x2f60, 0x62f: 0x2f6a, - 0x630: 0x3c30, 0x631: 0x3c37, 0x632: 0xa000, 0x633: 0xa000, 0x634: 0x3c3e, 0x635: 0x3c45, - 0x636: 0xa000, 0x637: 0xa000, 0x638: 0x3c4c, 0x639: 0x3c53, 0x63a: 0xa000, 0x63b: 0xa000, - 0x63c: 0xa000, 0x63d: 0xa000, - // Block 0x19, offset 0x640 - 0x640: 0x3c5a, 0x641: 0x3c61, 0x642: 0xa000, 0x643: 0xa000, 0x644: 0x3c76, 0x645: 0x3c7d, - 0x646: 0xa000, 0x647: 0xa000, 0x648: 0x3c84, 0x649: 0x3c8b, - 0x651: 0xa000, - 0x652: 0xa000, - 0x662: 0xa000, - 0x668: 0xa000, 0x669: 0xa000, - 0x66b: 0xa000, 0x66c: 0x3ca0, 0x66d: 0x3ca7, 0x66e: 0x3cae, 0x66f: 0x3cb5, - 0x672: 0xa000, 0x673: 0xa000, 0x674: 0xa000, 0x675: 0xa000, - // Block 0x1a, offset 0x680 - 0x686: 0xa000, 0x68b: 0xa000, - 0x68c: 0x3f08, 0x68d: 0xa000, 0x68e: 0x3f10, 0x68f: 0xa000, 0x690: 0x3f18, 0x691: 0xa000, - 0x692: 0x3f20, 0x693: 0xa000, 0x694: 0x3f28, 0x695: 0xa000, 0x696: 0x3f30, 0x697: 0xa000, - 0x698: 0x3f38, 0x699: 0xa000, 0x69a: 0x3f40, 0x69b: 0xa000, 0x69c: 0x3f48, 0x69d: 0xa000, - 0x69e: 0x3f50, 0x69f: 0xa000, 0x6a0: 0x3f58, 0x6a1: 0xa000, 0x6a2: 0x3f60, - 0x6a4: 0xa000, 0x6a5: 0x3f68, 0x6a6: 0xa000, 0x6a7: 0x3f70, 0x6a8: 0xa000, 0x6a9: 0x3f78, - 0x6af: 0xa000, - 0x6b0: 0x3f80, 0x6b1: 0x3f88, 0x6b2: 0xa000, 0x6b3: 0x3f90, 0x6b4: 0x3f98, 0x6b5: 0xa000, - 0x6b6: 0x3fa0, 0x6b7: 0x3fa8, 0x6b8: 0xa000, 0x6b9: 0x3fb0, 0x6ba: 0x3fb8, 0x6bb: 0xa000, - 0x6bc: 0x3fc0, 0x6bd: 0x3fc8, - // Block 0x1b, offset 0x6c0 - 0x6d4: 0x3f00, - 0x6d9: 0x9903, 0x6da: 0x9903, 0x6db: 0x8100, 0x6dc: 0x8100, 0x6dd: 0xa000, - 0x6de: 0x3fd0, - 0x6e6: 0xa000, - 0x6eb: 0xa000, 0x6ec: 0x3fe0, 0x6ed: 0xa000, 0x6ee: 0x3fe8, 0x6ef: 0xa000, - 0x6f0: 0x3ff0, 0x6f1: 0xa000, 0x6f2: 0x3ff8, 0x6f3: 0xa000, 0x6f4: 0x4000, 0x6f5: 0xa000, - 0x6f6: 0x4008, 0x6f7: 0xa000, 0x6f8: 0x4010, 0x6f9: 0xa000, 0x6fa: 0x4018, 0x6fb: 0xa000, - 0x6fc: 0x4020, 0x6fd: 0xa000, 0x6fe: 0x4028, 0x6ff: 0xa000, - // Block 0x1c, offset 0x700 - 0x700: 0x4030, 0x701: 0xa000, 0x702: 0x4038, 0x704: 0xa000, 0x705: 0x4040, - 0x706: 0xa000, 0x707: 0x4048, 0x708: 0xa000, 0x709: 0x4050, - 0x70f: 0xa000, 0x710: 0x4058, 0x711: 0x4060, - 0x712: 0xa000, 0x713: 0x4068, 0x714: 0x4070, 0x715: 0xa000, 0x716: 0x4078, 0x717: 0x4080, - 0x718: 0xa000, 0x719: 0x4088, 0x71a: 0x4090, 0x71b: 0xa000, 0x71c: 0x4098, 0x71d: 0x40a0, - 0x72f: 0xa000, - 0x730: 0xa000, 0x731: 0xa000, 0x732: 0xa000, 0x734: 0x3fd8, - 0x737: 0x40a8, 0x738: 0x40b0, 0x739: 0x40b8, 0x73a: 0x40c0, - 0x73d: 0xa000, 0x73e: 0x40c8, - // Block 0x1d, offset 0x740 - 0x740: 0x1377, 0x741: 0x0cfb, 0x742: 0x13d3, 0x743: 0x139f, 0x744: 0x0e57, 0x745: 0x06eb, - 0x746: 0x08df, 0x747: 0x162b, 0x748: 0x162b, 0x749: 0x0a0b, 0x74a: 0x145f, 0x74b: 0x0943, - 0x74c: 0x0a07, 0x74d: 0x0bef, 0x74e: 0x0fcf, 0x74f: 0x115f, 0x750: 0x1297, 0x751: 0x12d3, - 0x752: 0x1307, 0x753: 0x141b, 0x754: 0x0d73, 0x755: 0x0dff, 0x756: 0x0eab, 0x757: 0x0f43, - 0x758: 0x125f, 0x759: 0x1447, 0x75a: 0x1573, 0x75b: 0x070f, 0x75c: 0x08b3, 0x75d: 0x0d87, - 0x75e: 0x0ecf, 0x75f: 0x1293, 0x760: 0x15c3, 0x761: 0x0ab3, 0x762: 0x0e77, 0x763: 0x1283, - 0x764: 0x1317, 0x765: 0x0c23, 0x766: 0x11bb, 0x767: 0x12df, 0x768: 0x0b1f, 0x769: 0x0d0f, - 0x76a: 0x0e17, 0x76b: 0x0f1b, 0x76c: 0x1427, 0x76d: 0x074f, 0x76e: 0x07e7, 0x76f: 0x0853, - 0x770: 0x0c8b, 0x771: 0x0d7f, 0x772: 0x0ecb, 0x773: 0x0fef, 0x774: 0x1177, 0x775: 0x128b, - 0x776: 0x12a3, 0x777: 0x13c7, 0x778: 0x14ef, 0x779: 0x15a3, 0x77a: 0x15bf, 0x77b: 0x102b, - 0x77c: 0x106b, 0x77d: 0x1123, 0x77e: 0x1243, 0x77f: 0x147b, - // Block 0x1e, offset 0x780 - 0x780: 0x15cb, 0x781: 0x134b, 0x782: 0x09c7, 0x783: 0x0b3b, 0x784: 0x10db, 0x785: 0x119b, - 0x786: 0x0eff, 0x787: 0x1033, 0x788: 0x1397, 0x789: 0x14e7, 0x78a: 0x09c3, 0x78b: 0x0a8f, - 0x78c: 0x0d77, 0x78d: 0x0e2b, 0x78e: 0x0e5f, 0x78f: 0x1113, 0x790: 0x113b, 0x791: 0x14a7, - 0x792: 0x084f, 0x793: 0x11a7, 0x794: 0x07f3, 0x795: 0x07ef, 0x796: 0x1097, 0x797: 0x1127, - 0x798: 0x125b, 0x799: 0x14af, 0x79a: 0x1367, 0x79b: 0x0c27, 0x79c: 0x0d73, 0x79d: 0x1357, - 0x79e: 0x06f7, 0x79f: 0x0a63, 0x7a0: 0x0b93, 0x7a1: 0x0f2f, 0x7a2: 0x0faf, 0x7a3: 0x0873, - 0x7a4: 0x103b, 0x7a5: 0x075f, 0x7a6: 0x0b77, 0x7a7: 0x06d7, 0x7a8: 0x0deb, 0x7a9: 0x0ca3, - 0x7aa: 0x110f, 0x7ab: 0x08c7, 0x7ac: 0x09b3, 0x7ad: 0x0ffb, 0x7ae: 0x1263, 0x7af: 0x133b, - 0x7b0: 0x0db7, 0x7b1: 0x13f7, 0x7b2: 0x0de3, 0x7b3: 0x0c37, 0x7b4: 0x121b, 0x7b5: 0x0c57, - 0x7b6: 0x0fab, 0x7b7: 0x072b, 0x7b8: 0x07a7, 0x7b9: 0x07eb, 0x7ba: 0x0d53, 0x7bb: 0x10fb, - 0x7bc: 0x11f3, 0x7bd: 0x1347, 0x7be: 0x145b, 0x7bf: 0x085b, - // Block 0x1f, offset 0x7c0 - 0x7c0: 0x090f, 0x7c1: 0x0a17, 0x7c2: 0x0b2f, 0x7c3: 0x0cbf, 0x7c4: 0x0e7b, 0x7c5: 0x103f, - 0x7c6: 0x1497, 0x7c7: 0x157b, 0x7c8: 0x15cf, 0x7c9: 0x15e7, 0x7ca: 0x0837, 0x7cb: 0x0cf3, - 0x7cc: 0x0da3, 0x7cd: 0x13eb, 0x7ce: 0x0afb, 0x7cf: 0x0bd7, 0x7d0: 0x0bf3, 0x7d1: 0x0c83, - 0x7d2: 0x0e6b, 0x7d3: 0x0eb7, 0x7d4: 0x0f67, 0x7d5: 0x108b, 0x7d6: 0x112f, 0x7d7: 0x1193, - 0x7d8: 0x13db, 0x7d9: 0x126b, 0x7da: 0x1403, 0x7db: 0x147f, 0x7dc: 0x080f, 0x7dd: 0x083b, - 0x7de: 0x0923, 0x7df: 0x0ea7, 0x7e0: 0x12f3, 0x7e1: 0x133b, 0x7e2: 0x0b1b, 0x7e3: 0x0b8b, - 0x7e4: 0x0c4f, 0x7e5: 0x0daf, 0x7e6: 0x10d7, 0x7e7: 0x0f23, 0x7e8: 0x073b, 0x7e9: 0x097f, - 0x7ea: 0x0a63, 0x7eb: 0x0ac7, 0x7ec: 0x0b97, 0x7ed: 0x0f3f, 0x7ee: 0x0f5b, 0x7ef: 0x116b, - 0x7f0: 0x118b, 0x7f1: 0x1463, 0x7f2: 0x14e3, 0x7f3: 0x14f3, 0x7f4: 0x152f, 0x7f5: 0x0753, - 0x7f6: 0x107f, 0x7f7: 0x144f, 0x7f8: 0x14cb, 0x7f9: 0x0baf, 0x7fa: 0x0717, 0x7fb: 0x0777, - 0x7fc: 0x0a67, 0x7fd: 0x0a87, 0x7fe: 0x0caf, 0x7ff: 0x0d73, - // Block 0x20, offset 0x800 - 0x800: 0x0ec3, 0x801: 0x0fcb, 0x802: 0x1277, 0x803: 0x1417, 0x804: 0x1623, 0x805: 0x0ce3, - 0x806: 0x14a3, 0x807: 0x0833, 0x808: 0x0d2f, 0x809: 0x0d3b, 0x80a: 0x0e0f, 0x80b: 0x0e47, - 0x80c: 0x0f4b, 0x80d: 0x0fa7, 0x80e: 0x1027, 0x80f: 0x110b, 0x810: 0x153b, 0x811: 0x07af, - 0x812: 0x0c03, 0x813: 0x14b3, 0x814: 0x0767, 0x815: 0x0aab, 0x816: 0x0e2f, 0x817: 0x13df, - 0x818: 0x0b67, 0x819: 0x0bb7, 0x81a: 0x0d43, 0x81b: 0x0f2f, 0x81c: 0x14bb, 0x81d: 0x0817, - 0x81e: 0x08ff, 0x81f: 0x0a97, 0x820: 0x0cd3, 0x821: 0x0d1f, 0x822: 0x0d5f, 0x823: 0x0df3, - 0x824: 0x0f47, 0x825: 0x0fbb, 0x826: 0x1157, 0x827: 0x12f7, 0x828: 0x1303, 0x829: 0x1457, - 0x82a: 0x14d7, 0x82b: 0x0883, 0x82c: 0x0e4b, 0x82d: 0x0903, 0x82e: 0x0ec7, 0x82f: 0x0f6b, - 0x830: 0x1287, 0x831: 0x14bf, 0x832: 0x15ab, 0x833: 0x15d3, 0x834: 0x0d37, 0x835: 0x0e27, - 0x836: 0x11c3, 0x837: 0x10b7, 0x838: 0x10c3, 0x839: 0x10e7, 0x83a: 0x0f17, 0x83b: 0x0e9f, - 0x83c: 0x1363, 0x83d: 0x0733, 0x83e: 0x122b, 0x83f: 0x081b, - // Block 0x21, offset 0x840 - 0x840: 0x080b, 0x841: 0x0b0b, 0x842: 0x0c2b, 0x843: 0x10f3, 0x844: 0x0a53, 0x845: 0x0e03, - 0x846: 0x0cef, 0x847: 0x13e7, 0x848: 0x12e7, 0x849: 0x14ab, 0x84a: 0x1323, 0x84b: 0x0b27, - 0x84c: 0x0787, 0x84d: 0x095b, 0x850: 0x09af, - 0x852: 0x0cdf, 0x855: 0x07f7, 0x856: 0x0f1f, 0x857: 0x0fe3, - 0x858: 0x1047, 0x859: 0x1063, 0x85a: 0x1067, 0x85b: 0x107b, 0x85c: 0x14fb, 0x85d: 0x10eb, - 0x85e: 0x116f, 0x860: 0x128f, 0x862: 0x1353, - 0x865: 0x1407, 0x866: 0x1433, - 0x86a: 0x154f, 0x86b: 0x1553, 0x86c: 0x1557, 0x86d: 0x15bb, 0x86e: 0x142b, 0x86f: 0x14c7, - 0x870: 0x0757, 0x871: 0x077b, 0x872: 0x078f, 0x873: 0x084b, 0x874: 0x0857, 0x875: 0x0897, - 0x876: 0x094b, 0x877: 0x0967, 0x878: 0x096f, 0x879: 0x09ab, 0x87a: 0x09b7, 0x87b: 0x0a93, - 0x87c: 0x0a9b, 0x87d: 0x0ba3, 0x87e: 0x0bcb, 0x87f: 0x0bd3, - // Block 0x22, offset 0x880 - 0x880: 0x0beb, 0x881: 0x0c97, 0x882: 0x0cc7, 0x883: 0x0ce7, 0x884: 0x0d57, 0x885: 0x0e1b, - 0x886: 0x0e37, 0x887: 0x0e67, 0x888: 0x0ebb, 0x889: 0x0edb, 0x88a: 0x0f4f, 0x88b: 0x102f, - 0x88c: 0x104b, 0x88d: 0x1053, 0x88e: 0x104f, 0x88f: 0x1057, 0x890: 0x105b, 0x891: 0x105f, - 0x892: 0x1073, 0x893: 0x1077, 0x894: 0x109b, 0x895: 0x10af, 0x896: 0x10cb, 0x897: 0x112f, - 0x898: 0x1137, 0x899: 0x113f, 0x89a: 0x1153, 0x89b: 0x117b, 0x89c: 0x11cb, 0x89d: 0x11ff, - 0x89e: 0x11ff, 0x89f: 0x1267, 0x8a0: 0x130f, 0x8a1: 0x1327, 0x8a2: 0x135b, 0x8a3: 0x135f, - 0x8a4: 0x13a3, 0x8a5: 0x13a7, 0x8a6: 0x13ff, 0x8a7: 0x1407, 0x8a8: 0x14db, 0x8a9: 0x151f, - 0x8aa: 0x1537, 0x8ab: 0x0b9b, 0x8ac: 0x171e, 0x8ad: 0x11e3, - 0x8b0: 0x06df, 0x8b1: 0x07e3, 0x8b2: 0x07a3, 0x8b3: 0x074b, 0x8b4: 0x078b, 0x8b5: 0x07b7, - 0x8b6: 0x0847, 0x8b7: 0x0863, 0x8b8: 0x094b, 0x8b9: 0x0937, 0x8ba: 0x0947, 0x8bb: 0x0963, - 0x8bc: 0x09af, 0x8bd: 0x09bf, 0x8be: 0x0a03, 0x8bf: 0x0a0f, - // Block 0x23, offset 0x8c0 - 0x8c0: 0x0a2b, 0x8c1: 0x0a3b, 0x8c2: 0x0b23, 0x8c3: 0x0b2b, 0x8c4: 0x0b5b, 0x8c5: 0x0b7b, - 0x8c6: 0x0bab, 0x8c7: 0x0bc3, 0x8c8: 0x0bb3, 0x8c9: 0x0bd3, 0x8ca: 0x0bc7, 0x8cb: 0x0beb, - 0x8cc: 0x0c07, 0x8cd: 0x0c5f, 0x8ce: 0x0c6b, 0x8cf: 0x0c73, 0x8d0: 0x0c9b, 0x8d1: 0x0cdf, - 0x8d2: 0x0d0f, 0x8d3: 0x0d13, 0x8d4: 0x0d27, 0x8d5: 0x0da7, 0x8d6: 0x0db7, 0x8d7: 0x0e0f, - 0x8d8: 0x0e5b, 0x8d9: 0x0e53, 0x8da: 0x0e67, 0x8db: 0x0e83, 0x8dc: 0x0ebb, 0x8dd: 0x1013, - 0x8de: 0x0edf, 0x8df: 0x0f13, 0x8e0: 0x0f1f, 0x8e1: 0x0f5f, 0x8e2: 0x0f7b, 0x8e3: 0x0f9f, - 0x8e4: 0x0fc3, 0x8e5: 0x0fc7, 0x8e6: 0x0fe3, 0x8e7: 0x0fe7, 0x8e8: 0x0ff7, 0x8e9: 0x100b, - 0x8ea: 0x1007, 0x8eb: 0x1037, 0x8ec: 0x10b3, 0x8ed: 0x10cb, 0x8ee: 0x10e3, 0x8ef: 0x111b, - 0x8f0: 0x112f, 0x8f1: 0x114b, 0x8f2: 0x117b, 0x8f3: 0x122f, 0x8f4: 0x1257, 0x8f5: 0x12cb, - 0x8f6: 0x1313, 0x8f7: 0x131f, 0x8f8: 0x1327, 0x8f9: 0x133f, 0x8fa: 0x1353, 0x8fb: 0x1343, - 0x8fc: 0x135b, 0x8fd: 0x1357, 0x8fe: 0x134f, 0x8ff: 0x135f, - // Block 0x24, offset 0x900 - 0x900: 0x136b, 0x901: 0x13a7, 0x902: 0x13e3, 0x903: 0x1413, 0x904: 0x144b, 0x905: 0x146b, - 0x906: 0x14b7, 0x907: 0x14db, 0x908: 0x14fb, 0x909: 0x150f, 0x90a: 0x151f, 0x90b: 0x152b, - 0x90c: 0x1537, 0x90d: 0x158b, 0x90e: 0x162b, 0x90f: 0x16b5, 0x910: 0x16b0, 0x911: 0x16e2, - 0x912: 0x0607, 0x913: 0x062f, 0x914: 0x0633, 0x915: 0x1764, 0x916: 0x1791, 0x917: 0x1809, - 0x918: 0x1617, 0x919: 0x1627, - // Block 0x25, offset 0x940 - 0x940: 0x06fb, 0x941: 0x06f3, 0x942: 0x0703, 0x943: 0x1647, 0x944: 0x0747, 0x945: 0x0757, - 0x946: 0x075b, 0x947: 0x0763, 0x948: 0x076b, 0x949: 0x076f, 0x94a: 0x077b, 0x94b: 0x0773, - 0x94c: 0x05b3, 0x94d: 0x165b, 0x94e: 0x078f, 0x94f: 0x0793, 0x950: 0x0797, 0x951: 0x07b3, - 0x952: 0x164c, 0x953: 0x05b7, 0x954: 0x079f, 0x955: 0x07bf, 0x956: 0x1656, 0x957: 0x07cf, - 0x958: 0x07d7, 0x959: 0x0737, 0x95a: 0x07df, 0x95b: 0x07e3, 0x95c: 0x1831, 0x95d: 0x07ff, - 0x95e: 0x0807, 0x95f: 0x05bf, 0x960: 0x081f, 0x961: 0x0823, 0x962: 0x082b, 0x963: 0x082f, - 0x964: 0x05c3, 0x965: 0x0847, 0x966: 0x084b, 0x967: 0x0857, 0x968: 0x0863, 0x969: 0x0867, - 0x96a: 0x086b, 0x96b: 0x0873, 0x96c: 0x0893, 0x96d: 0x0897, 0x96e: 0x089f, 0x96f: 0x08af, - 0x970: 0x08b7, 0x971: 0x08bb, 0x972: 0x08bb, 0x973: 0x08bb, 0x974: 0x166a, 0x975: 0x0e93, - 0x976: 0x08cf, 0x977: 0x08d7, 0x978: 0x166f, 0x979: 0x08e3, 0x97a: 0x08eb, 0x97b: 0x08f3, - 0x97c: 0x091b, 0x97d: 0x0907, 0x97e: 0x0913, 0x97f: 0x0917, - // Block 0x26, offset 0x980 - 0x980: 0x091f, 0x981: 0x0927, 0x982: 0x092b, 0x983: 0x0933, 0x984: 0x093b, 0x985: 0x093f, - 0x986: 0x093f, 0x987: 0x0947, 0x988: 0x094f, 0x989: 0x0953, 0x98a: 0x095f, 0x98b: 0x0983, - 0x98c: 0x0967, 0x98d: 0x0987, 0x98e: 0x096b, 0x98f: 0x0973, 0x990: 0x080b, 0x991: 0x09cf, - 0x992: 0x0997, 0x993: 0x099b, 0x994: 0x099f, 0x995: 0x0993, 0x996: 0x09a7, 0x997: 0x09a3, - 0x998: 0x09bb, 0x999: 0x1674, 0x99a: 0x09d7, 0x99b: 0x09db, 0x99c: 0x09e3, 0x99d: 0x09ef, - 0x99e: 0x09f7, 0x99f: 0x0a13, 0x9a0: 0x1679, 0x9a1: 0x167e, 0x9a2: 0x0a1f, 0x9a3: 0x0a23, - 0x9a4: 0x0a27, 0x9a5: 0x0a1b, 0x9a6: 0x0a2f, 0x9a7: 0x05c7, 0x9a8: 0x05cb, 0x9a9: 0x0a37, - 0x9aa: 0x0a3f, 0x9ab: 0x0a3f, 0x9ac: 0x1683, 0x9ad: 0x0a5b, 0x9ae: 0x0a5f, 0x9af: 0x0a63, - 0x9b0: 0x0a6b, 0x9b1: 0x1688, 0x9b2: 0x0a73, 0x9b3: 0x0a77, 0x9b4: 0x0b4f, 0x9b5: 0x0a7f, - 0x9b6: 0x05cf, 0x9b7: 0x0a8b, 0x9b8: 0x0a9b, 0x9b9: 0x0aa7, 0x9ba: 0x0aa3, 0x9bb: 0x1692, - 0x9bc: 0x0aaf, 0x9bd: 0x1697, 0x9be: 0x0abb, 0x9bf: 0x0ab7, - // Block 0x27, offset 0x9c0 - 0x9c0: 0x0abf, 0x9c1: 0x0acf, 0x9c2: 0x0ad3, 0x9c3: 0x05d3, 0x9c4: 0x0ae3, 0x9c5: 0x0aeb, - 0x9c6: 0x0aef, 0x9c7: 0x0af3, 0x9c8: 0x05d7, 0x9c9: 0x169c, 0x9ca: 0x05db, 0x9cb: 0x0b0f, - 0x9cc: 0x0b13, 0x9cd: 0x0b17, 0x9ce: 0x0b1f, 0x9cf: 0x1863, 0x9d0: 0x0b37, 0x9d1: 0x16a6, - 0x9d2: 0x16a6, 0x9d3: 0x11d7, 0x9d4: 0x0b47, 0x9d5: 0x0b47, 0x9d6: 0x05df, 0x9d7: 0x16c9, - 0x9d8: 0x179b, 0x9d9: 0x0b57, 0x9da: 0x0b5f, 0x9db: 0x05e3, 0x9dc: 0x0b73, 0x9dd: 0x0b83, - 0x9de: 0x0b87, 0x9df: 0x0b8f, 0x9e0: 0x0b9f, 0x9e1: 0x05eb, 0x9e2: 0x05e7, 0x9e3: 0x0ba3, - 0x9e4: 0x16ab, 0x9e5: 0x0ba7, 0x9e6: 0x0bbb, 0x9e7: 0x0bbf, 0x9e8: 0x0bc3, 0x9e9: 0x0bbf, - 0x9ea: 0x0bcf, 0x9eb: 0x0bd3, 0x9ec: 0x0be3, 0x9ed: 0x0bdb, 0x9ee: 0x0bdf, 0x9ef: 0x0be7, - 0x9f0: 0x0beb, 0x9f1: 0x0bef, 0x9f2: 0x0bfb, 0x9f3: 0x0bff, 0x9f4: 0x0c17, 0x9f5: 0x0c1f, - 0x9f6: 0x0c2f, 0x9f7: 0x0c43, 0x9f8: 0x16ba, 0x9f9: 0x0c3f, 0x9fa: 0x0c33, 0x9fb: 0x0c4b, - 0x9fc: 0x0c53, 0x9fd: 0x0c67, 0x9fe: 0x16bf, 0x9ff: 0x0c6f, - // Block 0x28, offset 0xa00 - 0xa00: 0x0c63, 0xa01: 0x0c5b, 0xa02: 0x05ef, 0xa03: 0x0c77, 0xa04: 0x0c7f, 0xa05: 0x0c87, - 0xa06: 0x0c7b, 0xa07: 0x05f3, 0xa08: 0x0c97, 0xa09: 0x0c9f, 0xa0a: 0x16c4, 0xa0b: 0x0ccb, - 0xa0c: 0x0cff, 0xa0d: 0x0cdb, 0xa0e: 0x05ff, 0xa0f: 0x0ce7, 0xa10: 0x05fb, 0xa11: 0x05f7, - 0xa12: 0x07c3, 0xa13: 0x07c7, 0xa14: 0x0d03, 0xa15: 0x0ceb, 0xa16: 0x11ab, 0xa17: 0x0663, - 0xa18: 0x0d0f, 0xa19: 0x0d13, 0xa1a: 0x0d17, 0xa1b: 0x0d2b, 0xa1c: 0x0d23, 0xa1d: 0x16dd, - 0xa1e: 0x0603, 0xa1f: 0x0d3f, 0xa20: 0x0d33, 0xa21: 0x0d4f, 0xa22: 0x0d57, 0xa23: 0x16e7, - 0xa24: 0x0d5b, 0xa25: 0x0d47, 0xa26: 0x0d63, 0xa27: 0x0607, 0xa28: 0x0d67, 0xa29: 0x0d6b, - 0xa2a: 0x0d6f, 0xa2b: 0x0d7b, 0xa2c: 0x16ec, 0xa2d: 0x0d83, 0xa2e: 0x060b, 0xa2f: 0x0d8f, - 0xa30: 0x16f1, 0xa31: 0x0d93, 0xa32: 0x060f, 0xa33: 0x0d9f, 0xa34: 0x0dab, 0xa35: 0x0db7, - 0xa36: 0x0dbb, 0xa37: 0x16f6, 0xa38: 0x168d, 0xa39: 0x16fb, 0xa3a: 0x0ddb, 0xa3b: 0x1700, - 0xa3c: 0x0de7, 0xa3d: 0x0def, 0xa3e: 0x0ddf, 0xa3f: 0x0dfb, - // Block 0x29, offset 0xa40 - 0xa40: 0x0e0b, 0xa41: 0x0e1b, 0xa42: 0x0e0f, 0xa43: 0x0e13, 0xa44: 0x0e1f, 0xa45: 0x0e23, - 0xa46: 0x1705, 0xa47: 0x0e07, 0xa48: 0x0e3b, 0xa49: 0x0e3f, 0xa4a: 0x0613, 0xa4b: 0x0e53, - 0xa4c: 0x0e4f, 0xa4d: 0x170a, 0xa4e: 0x0e33, 0xa4f: 0x0e6f, 0xa50: 0x170f, 0xa51: 0x1714, - 0xa52: 0x0e73, 0xa53: 0x0e87, 0xa54: 0x0e83, 0xa55: 0x0e7f, 0xa56: 0x0617, 0xa57: 0x0e8b, - 0xa58: 0x0e9b, 0xa59: 0x0e97, 0xa5a: 0x0ea3, 0xa5b: 0x1651, 0xa5c: 0x0eb3, 0xa5d: 0x1719, - 0xa5e: 0x0ebf, 0xa5f: 0x1723, 0xa60: 0x0ed3, 0xa61: 0x0edf, 0xa62: 0x0ef3, 0xa63: 0x1728, - 0xa64: 0x0f07, 0xa65: 0x0f0b, 0xa66: 0x172d, 0xa67: 0x1732, 0xa68: 0x0f27, 0xa69: 0x0f37, - 0xa6a: 0x061b, 0xa6b: 0x0f3b, 0xa6c: 0x061f, 0xa6d: 0x061f, 0xa6e: 0x0f53, 0xa6f: 0x0f57, - 0xa70: 0x0f5f, 0xa71: 0x0f63, 0xa72: 0x0f6f, 0xa73: 0x0623, 0xa74: 0x0f87, 0xa75: 0x1737, - 0xa76: 0x0fa3, 0xa77: 0x173c, 0xa78: 0x0faf, 0xa79: 0x16a1, 0xa7a: 0x0fbf, 0xa7b: 0x1741, - 0xa7c: 0x1746, 0xa7d: 0x174b, 0xa7e: 0x0627, 0xa7f: 0x062b, - // Block 0x2a, offset 0xa80 - 0xa80: 0x0ff7, 0xa81: 0x1755, 0xa82: 0x1750, 0xa83: 0x175a, 0xa84: 0x175f, 0xa85: 0x0fff, - 0xa86: 0x1003, 0xa87: 0x1003, 0xa88: 0x100b, 0xa89: 0x0633, 0xa8a: 0x100f, 0xa8b: 0x0637, - 0xa8c: 0x063b, 0xa8d: 0x1769, 0xa8e: 0x1023, 0xa8f: 0x102b, 0xa90: 0x1037, 0xa91: 0x063f, - 0xa92: 0x176e, 0xa93: 0x105b, 0xa94: 0x1773, 0xa95: 0x1778, 0xa96: 0x107b, 0xa97: 0x1093, - 0xa98: 0x0643, 0xa99: 0x109b, 0xa9a: 0x109f, 0xa9b: 0x10a3, 0xa9c: 0x177d, 0xa9d: 0x1782, - 0xa9e: 0x1782, 0xa9f: 0x10bb, 0xaa0: 0x0647, 0xaa1: 0x1787, 0xaa2: 0x10cf, 0xaa3: 0x10d3, - 0xaa4: 0x064b, 0xaa5: 0x178c, 0xaa6: 0x10ef, 0xaa7: 0x064f, 0xaa8: 0x10ff, 0xaa9: 0x10f7, - 0xaaa: 0x1107, 0xaab: 0x1796, 0xaac: 0x111f, 0xaad: 0x0653, 0xaae: 0x112b, 0xaaf: 0x1133, - 0xab0: 0x1143, 0xab1: 0x0657, 0xab2: 0x17a0, 0xab3: 0x17a5, 0xab4: 0x065b, 0xab5: 0x17aa, - 0xab6: 0x115b, 0xab7: 0x17af, 0xab8: 0x1167, 0xab9: 0x1173, 0xaba: 0x117b, 0xabb: 0x17b4, - 0xabc: 0x17b9, 0xabd: 0x118f, 0xabe: 0x17be, 0xabf: 0x1197, - // Block 0x2b, offset 0xac0 - 0xac0: 0x16ce, 0xac1: 0x065f, 0xac2: 0x11af, 0xac3: 0x11b3, 0xac4: 0x0667, 0xac5: 0x11b7, - 0xac6: 0x0a33, 0xac7: 0x17c3, 0xac8: 0x17c8, 0xac9: 0x16d3, 0xaca: 0x16d8, 0xacb: 0x11d7, - 0xacc: 0x11db, 0xacd: 0x13f3, 0xace: 0x066b, 0xacf: 0x1207, 0xad0: 0x1203, 0xad1: 0x120b, - 0xad2: 0x083f, 0xad3: 0x120f, 0xad4: 0x1213, 0xad5: 0x1217, 0xad6: 0x121f, 0xad7: 0x17cd, - 0xad8: 0x121b, 0xad9: 0x1223, 0xada: 0x1237, 0xadb: 0x123b, 0xadc: 0x1227, 0xadd: 0x123f, - 0xade: 0x1253, 0xadf: 0x1267, 0xae0: 0x1233, 0xae1: 0x1247, 0xae2: 0x124b, 0xae3: 0x124f, - 0xae4: 0x17d2, 0xae5: 0x17dc, 0xae6: 0x17d7, 0xae7: 0x066f, 0xae8: 0x126f, 0xae9: 0x1273, - 0xaea: 0x127b, 0xaeb: 0x17f0, 0xaec: 0x127f, 0xaed: 0x17e1, 0xaee: 0x0673, 0xaef: 0x0677, - 0xaf0: 0x17e6, 0xaf1: 0x17eb, 0xaf2: 0x067b, 0xaf3: 0x129f, 0xaf4: 0x12a3, 0xaf5: 0x12a7, - 0xaf6: 0x12ab, 0xaf7: 0x12b7, 0xaf8: 0x12b3, 0xaf9: 0x12bf, 0xafa: 0x12bb, 0xafb: 0x12cb, - 0xafc: 0x12c3, 0xafd: 0x12c7, 0xafe: 0x12cf, 0xaff: 0x067f, - // Block 0x2c, offset 0xb00 - 0xb00: 0x12d7, 0xb01: 0x12db, 0xb02: 0x0683, 0xb03: 0x12eb, 0xb04: 0x12ef, 0xb05: 0x17f5, - 0xb06: 0x12fb, 0xb07: 0x12ff, 0xb08: 0x0687, 0xb09: 0x130b, 0xb0a: 0x05bb, 0xb0b: 0x17fa, - 0xb0c: 0x17ff, 0xb0d: 0x068b, 0xb0e: 0x068f, 0xb0f: 0x1337, 0xb10: 0x134f, 0xb11: 0x136b, - 0xb12: 0x137b, 0xb13: 0x1804, 0xb14: 0x138f, 0xb15: 0x1393, 0xb16: 0x13ab, 0xb17: 0x13b7, - 0xb18: 0x180e, 0xb19: 0x1660, 0xb1a: 0x13c3, 0xb1b: 0x13bf, 0xb1c: 0x13cb, 0xb1d: 0x1665, - 0xb1e: 0x13d7, 0xb1f: 0x13e3, 0xb20: 0x1813, 0xb21: 0x1818, 0xb22: 0x1423, 0xb23: 0x142f, - 0xb24: 0x1437, 0xb25: 0x181d, 0xb26: 0x143b, 0xb27: 0x1467, 0xb28: 0x1473, 0xb29: 0x1477, - 0xb2a: 0x146f, 0xb2b: 0x1483, 0xb2c: 0x1487, 0xb2d: 0x1822, 0xb2e: 0x1493, 0xb2f: 0x0693, - 0xb30: 0x149b, 0xb31: 0x1827, 0xb32: 0x0697, 0xb33: 0x14d3, 0xb34: 0x0ac3, 0xb35: 0x14eb, - 0xb36: 0x182c, 0xb37: 0x1836, 0xb38: 0x069b, 0xb39: 0x069f, 0xb3a: 0x1513, 0xb3b: 0x183b, - 0xb3c: 0x06a3, 0xb3d: 0x1840, 0xb3e: 0x152b, 0xb3f: 0x152b, - // Block 0x2d, offset 0xb40 - 0xb40: 0x1533, 0xb41: 0x1845, 0xb42: 0x154b, 0xb43: 0x06a7, 0xb44: 0x155b, 0xb45: 0x1567, - 0xb46: 0x156f, 0xb47: 0x1577, 0xb48: 0x06ab, 0xb49: 0x184a, 0xb4a: 0x158b, 0xb4b: 0x15a7, - 0xb4c: 0x15b3, 0xb4d: 0x06af, 0xb4e: 0x06b3, 0xb4f: 0x15b7, 0xb50: 0x184f, 0xb51: 0x06b7, - 0xb52: 0x1854, 0xb53: 0x1859, 0xb54: 0x185e, 0xb55: 0x15db, 0xb56: 0x06bb, 0xb57: 0x15ef, - 0xb58: 0x15f7, 0xb59: 0x15fb, 0xb5a: 0x1603, 0xb5b: 0x160b, 0xb5c: 0x1613, 0xb5d: 0x1868, -} - -// nfcIndex: 22 blocks, 1408 entries, 1408 bytes -// Block 0 is the zero block. -var nfcIndex = [1408]uint8{ - // Block 0x0, offset 0x0 - // Block 0x1, offset 0x40 - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc2: 0x2c, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x2d, 0xc7: 0x04, - 0xc8: 0x05, 0xca: 0x2e, 0xcb: 0x2f, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x30, - 0xd0: 0x09, 0xd1: 0x31, 0xd2: 0x32, 0xd3: 0x0a, 0xd6: 0x0b, 0xd7: 0x33, - 0xd8: 0x34, 0xd9: 0x0c, 0xdb: 0x35, 0xdc: 0x36, 0xdd: 0x37, 0xdf: 0x38, - 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, - 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a, - 0xf0: 0x13, - // Block 0x4, offset 0x100 - 0x120: 0x39, 0x121: 0x3a, 0x123: 0x3b, 0x124: 0x3c, 0x125: 0x3d, 0x126: 0x3e, 0x127: 0x3f, - 0x128: 0x40, 0x129: 0x41, 0x12a: 0x42, 0x12b: 0x43, 0x12c: 0x3e, 0x12d: 0x44, 0x12e: 0x45, 0x12f: 0x46, - 0x131: 0x47, 0x132: 0x48, 0x133: 0x49, 0x134: 0x4a, 0x135: 0x4b, 0x137: 0x4c, - 0x138: 0x4d, 0x139: 0x4e, 0x13a: 0x4f, 0x13b: 0x50, 0x13c: 0x51, 0x13d: 0x52, 0x13e: 0x53, 0x13f: 0x54, - // Block 0x5, offset 0x140 - 0x140: 0x55, 0x142: 0x56, 0x144: 0x57, 0x145: 0x58, 0x146: 0x59, 0x147: 0x5a, - 0x14d: 0x5b, - 0x15c: 0x5c, 0x15f: 0x5d, - 0x162: 0x5e, 0x164: 0x5f, - 0x168: 0x60, 0x169: 0x61, 0x16a: 0x62, 0x16c: 0x0d, 0x16d: 0x63, 0x16e: 0x64, 0x16f: 0x65, - 0x170: 0x66, 0x173: 0x67, 0x177: 0x68, - 0x178: 0x0e, 0x179: 0x0f, 0x17a: 0x10, 0x17b: 0x11, 0x17c: 0x12, 0x17d: 0x13, 0x17e: 0x14, 0x17f: 0x15, - // Block 0x6, offset 0x180 - 0x180: 0x69, 0x183: 0x6a, 0x184: 0x6b, 0x186: 0x6c, 0x187: 0x6d, - 0x188: 0x6e, 0x189: 0x16, 0x18a: 0x17, 0x18b: 0x6f, 0x18c: 0x70, - 0x1ab: 0x71, - 0x1b3: 0x72, 0x1b5: 0x73, 0x1b7: 0x74, - // Block 0x7, offset 0x1c0 - 0x1c0: 0x75, 0x1c1: 0x18, 0x1c2: 0x19, 0x1c3: 0x1a, 0x1c4: 0x76, 0x1c5: 0x77, - 0x1c9: 0x78, 0x1cc: 0x79, 0x1cd: 0x7a, - // Block 0x8, offset 0x200 - 0x219: 0x7b, 0x21a: 0x7c, 0x21b: 0x7d, - 0x220: 0x7e, 0x223: 0x7f, 0x224: 0x80, 0x225: 0x81, 0x226: 0x82, 0x227: 0x83, - 0x22a: 0x84, 0x22b: 0x85, 0x22f: 0x86, - 0x230: 0x87, 0x231: 0x88, 0x232: 0x89, 0x233: 0x8a, 0x234: 0x8b, 0x235: 0x8c, 0x236: 0x8d, 0x237: 0x87, - 0x238: 0x88, 0x239: 0x89, 0x23a: 0x8a, 0x23b: 0x8b, 0x23c: 0x8c, 0x23d: 0x8d, 0x23e: 0x87, 0x23f: 0x88, - // Block 0x9, offset 0x240 - 0x240: 0x89, 0x241: 0x8a, 0x242: 0x8b, 0x243: 0x8c, 0x244: 0x8d, 0x245: 0x87, 0x246: 0x88, 0x247: 0x89, - 0x248: 0x8a, 0x249: 0x8b, 0x24a: 0x8c, 0x24b: 0x8d, 0x24c: 0x87, 0x24d: 0x88, 0x24e: 0x89, 0x24f: 0x8a, - 0x250: 0x8b, 0x251: 0x8c, 0x252: 0x8d, 0x253: 0x87, 0x254: 0x88, 0x255: 0x89, 0x256: 0x8a, 0x257: 0x8b, - 0x258: 0x8c, 0x259: 0x8d, 0x25a: 0x87, 0x25b: 0x88, 0x25c: 0x89, 0x25d: 0x8a, 0x25e: 0x8b, 0x25f: 0x8c, - 0x260: 0x8d, 0x261: 0x87, 0x262: 0x88, 0x263: 0x89, 0x264: 0x8a, 0x265: 0x8b, 0x266: 0x8c, 0x267: 0x8d, - 0x268: 0x87, 0x269: 0x88, 0x26a: 0x89, 0x26b: 0x8a, 0x26c: 0x8b, 0x26d: 0x8c, 0x26e: 0x8d, 0x26f: 0x87, - 0x270: 0x88, 0x271: 0x89, 0x272: 0x8a, 0x273: 0x8b, 0x274: 0x8c, 0x275: 0x8d, 0x276: 0x87, 0x277: 0x88, - 0x278: 0x89, 0x279: 0x8a, 0x27a: 0x8b, 0x27b: 0x8c, 0x27c: 0x8d, 0x27d: 0x87, 0x27e: 0x88, 0x27f: 0x89, - // Block 0xa, offset 0x280 - 0x280: 0x8a, 0x281: 0x8b, 0x282: 0x8c, 0x283: 0x8d, 0x284: 0x87, 0x285: 0x88, 0x286: 0x89, 0x287: 0x8a, - 0x288: 0x8b, 0x289: 0x8c, 0x28a: 0x8d, 0x28b: 0x87, 0x28c: 0x88, 0x28d: 0x89, 0x28e: 0x8a, 0x28f: 0x8b, - 0x290: 0x8c, 0x291: 0x8d, 0x292: 0x87, 0x293: 0x88, 0x294: 0x89, 0x295: 0x8a, 0x296: 0x8b, 0x297: 0x8c, - 0x298: 0x8d, 0x299: 0x87, 0x29a: 0x88, 0x29b: 0x89, 0x29c: 0x8a, 0x29d: 0x8b, 0x29e: 0x8c, 0x29f: 0x8d, - 0x2a0: 0x87, 0x2a1: 0x88, 0x2a2: 0x89, 0x2a3: 0x8a, 0x2a4: 0x8b, 0x2a5: 0x8c, 0x2a6: 0x8d, 0x2a7: 0x87, - 0x2a8: 0x88, 0x2a9: 0x89, 0x2aa: 0x8a, 0x2ab: 0x8b, 0x2ac: 0x8c, 0x2ad: 0x8d, 0x2ae: 0x87, 0x2af: 0x88, - 0x2b0: 0x89, 0x2b1: 0x8a, 0x2b2: 0x8b, 0x2b3: 0x8c, 0x2b4: 0x8d, 0x2b5: 0x87, 0x2b6: 0x88, 0x2b7: 0x89, - 0x2b8: 0x8a, 0x2b9: 0x8b, 0x2ba: 0x8c, 0x2bb: 0x8d, 0x2bc: 0x87, 0x2bd: 0x88, 0x2be: 0x89, 0x2bf: 0x8a, - // Block 0xb, offset 0x2c0 - 0x2c0: 0x8b, 0x2c1: 0x8c, 0x2c2: 0x8d, 0x2c3: 0x87, 0x2c4: 0x88, 0x2c5: 0x89, 0x2c6: 0x8a, 0x2c7: 0x8b, - 0x2c8: 0x8c, 0x2c9: 0x8d, 0x2ca: 0x87, 0x2cb: 0x88, 0x2cc: 0x89, 0x2cd: 0x8a, 0x2ce: 0x8b, 0x2cf: 0x8c, - 0x2d0: 0x8d, 0x2d1: 0x87, 0x2d2: 0x88, 0x2d3: 0x89, 0x2d4: 0x8a, 0x2d5: 0x8b, 0x2d6: 0x8c, 0x2d7: 0x8d, - 0x2d8: 0x87, 0x2d9: 0x88, 0x2da: 0x89, 0x2db: 0x8a, 0x2dc: 0x8b, 0x2dd: 0x8c, 0x2de: 0x8e, - // Block 0xc, offset 0x300 - 0x324: 0x1b, 0x325: 0x1c, 0x326: 0x1d, 0x327: 0x1e, - 0x328: 0x1f, 0x329: 0x20, 0x32a: 0x21, 0x32b: 0x22, 0x32c: 0x8f, 0x32d: 0x90, 0x32e: 0x91, - 0x331: 0x92, 0x332: 0x93, 0x333: 0x94, 0x334: 0x95, - 0x338: 0x96, 0x339: 0x97, 0x33a: 0x98, 0x33b: 0x99, 0x33e: 0x9a, 0x33f: 0x9b, - // Block 0xd, offset 0x340 - 0x347: 0x9c, - 0x34b: 0x9d, 0x34d: 0x9e, - 0x368: 0x9f, 0x36b: 0xa0, - // Block 0xe, offset 0x380 - 0x381: 0xa1, 0x382: 0xa2, 0x384: 0xa3, 0x385: 0x82, 0x387: 0xa4, - 0x388: 0xa5, 0x38b: 0xa6, 0x38c: 0x3e, 0x38d: 0xa7, - 0x391: 0xa8, 0x392: 0xa9, 0x393: 0xaa, 0x396: 0xab, 0x397: 0xac, - 0x398: 0x73, 0x39a: 0xad, 0x39c: 0xae, - 0x3b0: 0x73, - // Block 0xf, offset 0x3c0 - 0x3eb: 0xaf, 0x3ec: 0xb0, - // Block 0x10, offset 0x400 - 0x432: 0xb1, - // Block 0x11, offset 0x440 - 0x445: 0xb2, 0x446: 0xb3, 0x447: 0xb4, - 0x449: 0xb5, - // Block 0x12, offset 0x480 - 0x480: 0xb6, - 0x4a3: 0xb7, 0x4a5: 0xb8, - // Block 0x13, offset 0x4c0 - 0x4c8: 0xb9, - // Block 0x14, offset 0x500 - 0x520: 0x23, 0x521: 0x24, 0x522: 0x25, 0x523: 0x26, 0x524: 0x27, 0x525: 0x28, 0x526: 0x29, 0x527: 0x2a, - 0x528: 0x2b, - // Block 0x15, offset 0x540 - 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d, - 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11, - 0x56f: 0x12, -} - -// nfcSparseOffset: 142 entries, 284 bytes -var 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} - -// nfcSparseValues: 688 entries, 2752 bytes -var nfcSparseValues = [688]valueRange{ - // Block 0x0, offset 0x0 - {value: 0x0000, lo: 0x04}, - {value: 0xa100, lo: 0xa8, hi: 0xa8}, - {value: 0x8100, lo: 0xaf, hi: 0xaf}, - {value: 0x8100, lo: 0xb4, hi: 0xb4}, - {value: 0x8100, lo: 0xb8, hi: 0xb8}, - // Block 0x1, offset 0x5 - {value: 0x0091, lo: 0x03}, - {value: 0x46e2, lo: 0xa0, hi: 0xa1}, - {value: 0x4714, lo: 0xaf, hi: 0xb0}, - {value: 0xa000, lo: 0xb7, hi: 0xb7}, - // Block 0x2, offset 0x9 - {value: 0x0000, lo: 0x01}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - // Block 0x3, offset 0xb - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0x98, hi: 0x9d}, - // Block 0x4, offset 0xd - {value: 0x0006, lo: 0x0a}, - {value: 0xa000, lo: 0x81, hi: 0x81}, - {value: 0xa000, lo: 0x85, hi: 0x85}, - {value: 0xa000, lo: 0x89, hi: 0x89}, - {value: 0x4840, lo: 0x8a, hi: 0x8a}, - {value: 0x485e, lo: 0x8b, hi: 0x8b}, - {value: 0x36c7, lo: 0x8c, hi: 0x8c}, - {value: 0x36df, lo: 0x8d, hi: 0x8d}, - {value: 0x4876, lo: 0x8e, hi: 0x8e}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x36fd, lo: 0x93, hi: 0x94}, - // Block 0x5, offset 0x18 - {value: 0x0000, lo: 0x0f}, - {value: 0xa000, lo: 0x83, hi: 0x83}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0xa000, lo: 0x8b, hi: 0x8b}, - {value: 0xa000, lo: 0x8d, hi: 0x8d}, - {value: 0x37a5, lo: 0x90, hi: 0x90}, - {value: 0x37b1, lo: 0x91, hi: 0x91}, - {value: 0x379f, lo: 0x93, hi: 0x93}, - {value: 0xa000, lo: 0x96, hi: 0x96}, - {value: 0x3817, lo: 0x97, hi: 0x97}, - {value: 0x37e1, lo: 0x9c, hi: 0x9c}, - {value: 0x37c9, lo: 0x9d, hi: 0x9d}, - {value: 0x37f3, lo: 0x9e, hi: 0x9e}, - {value: 0xa000, lo: 0xb4, hi: 0xb5}, - {value: 0x381d, lo: 0xb6, hi: 0xb6}, - {value: 0x3823, lo: 0xb7, hi: 0xb7}, - // Block 0x6, offset 0x28 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x83, hi: 0x87}, - // Block 0x7, offset 0x2a - {value: 0x0001, lo: 0x04}, - {value: 0x8113, lo: 0x81, hi: 0x82}, - {value: 0x8132, lo: 0x84, hi: 0x84}, - {value: 0x812d, lo: 0x85, hi: 0x85}, - {value: 0x810d, lo: 0x87, hi: 0x87}, - // Block 0x8, offset 0x2f - {value: 0x0000, lo: 0x0a}, - {value: 0x8132, lo: 0x90, hi: 0x97}, - {value: 0x8119, lo: 0x98, hi: 0x98}, - {value: 0x811a, lo: 0x99, hi: 0x99}, - {value: 0x811b, lo: 0x9a, hi: 0x9a}, - {value: 0x3841, lo: 0xa2, hi: 0xa2}, - {value: 0x3847, lo: 0xa3, hi: 0xa3}, - {value: 0x3853, lo: 0xa4, hi: 0xa4}, - {value: 0x384d, lo: 0xa5, hi: 0xa5}, - {value: 0x3859, lo: 0xa6, hi: 0xa6}, - {value: 0xa000, lo: 0xa7, hi: 0xa7}, - // Block 0x9, offset 0x3a - {value: 0x0000, lo: 0x0e}, - {value: 0x386b, lo: 0x80, hi: 0x80}, - {value: 0xa000, lo: 0x81, hi: 0x81}, - {value: 0x385f, lo: 0x82, hi: 0x82}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x3865, lo: 0x93, hi: 0x93}, - {value: 0xa000, lo: 0x95, hi: 0x95}, - {value: 0x8132, lo: 0x96, hi: 0x9c}, - {value: 0x8132, lo: 0x9f, hi: 0xa2}, - {value: 0x812d, lo: 0xa3, hi: 0xa3}, - {value: 0x8132, lo: 0xa4, hi: 0xa4}, - {value: 0x8132, lo: 0xa7, hi: 0xa8}, - {value: 0x812d, lo: 0xaa, hi: 0xaa}, - {value: 0x8132, lo: 0xab, hi: 0xac}, - {value: 0x812d, lo: 0xad, hi: 0xad}, - // Block 0xa, offset 0x49 - {value: 0x0000, lo: 0x0c}, - {value: 0x811f, lo: 0x91, hi: 0x91}, - {value: 0x8132, lo: 0xb0, hi: 0xb0}, - {value: 0x812d, lo: 0xb1, hi: 0xb1}, - {value: 0x8132, lo: 0xb2, hi: 0xb3}, - {value: 0x812d, lo: 0xb4, hi: 0xb4}, - {value: 0x8132, lo: 0xb5, hi: 0xb6}, - {value: 0x812d, lo: 0xb7, hi: 0xb9}, - {value: 0x8132, lo: 0xba, hi: 0xba}, - {value: 0x812d, lo: 0xbb, hi: 0xbc}, - {value: 0x8132, lo: 0xbd, hi: 0xbd}, - {value: 0x812d, lo: 0xbe, hi: 0xbe}, - {value: 0x8132, lo: 0xbf, hi: 0xbf}, - // Block 0xb, offset 0x56 - {value: 0x0005, lo: 0x07}, - {value: 0x8132, lo: 0x80, hi: 0x80}, - {value: 0x8132, lo: 0x81, hi: 0x81}, - {value: 0x812d, lo: 0x82, hi: 0x83}, - {value: 0x812d, lo: 0x84, hi: 0x85}, - {value: 0x812d, lo: 0x86, hi: 0x87}, - {value: 0x812d, lo: 0x88, hi: 0x89}, - {value: 0x8132, lo: 0x8a, hi: 0x8a}, - // Block 0xc, offset 0x5e - {value: 0x0000, lo: 0x03}, - {value: 0x8132, lo: 0xab, hi: 0xb1}, - {value: 0x812d, lo: 0xb2, hi: 0xb2}, - {value: 0x8132, lo: 0xb3, hi: 0xb3}, - // Block 0xd, offset 0x62 - {value: 0x0000, lo: 0x04}, - {value: 0x8132, lo: 0x96, hi: 0x99}, - {value: 0x8132, lo: 0x9b, hi: 0xa3}, - {value: 0x8132, lo: 0xa5, hi: 0xa7}, - {value: 0x8132, lo: 0xa9, hi: 0xad}, - // Block 0xe, offset 0x67 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x99, hi: 0x9b}, - // Block 0xf, offset 0x69 - {value: 0x0000, lo: 0x10}, - {value: 0x8132, lo: 0x94, hi: 0xa1}, - {value: 0x812d, lo: 0xa3, hi: 0xa3}, - {value: 0x8132, lo: 0xa4, hi: 0xa5}, - {value: 0x812d, lo: 0xa6, hi: 0xa6}, - {value: 0x8132, lo: 0xa7, hi: 0xa8}, - {value: 0x812d, lo: 0xa9, hi: 0xa9}, - {value: 0x8132, lo: 0xaa, hi: 0xac}, - {value: 0x812d, lo: 0xad, hi: 0xaf}, - {value: 0x8116, lo: 0xb0, hi: 0xb0}, - {value: 0x8117, lo: 0xb1, hi: 0xb1}, - {value: 0x8118, lo: 0xb2, hi: 0xb2}, - {value: 0x8132, lo: 0xb3, hi: 0xb5}, - {value: 0x812d, lo: 0xb6, hi: 0xb6}, - {value: 0x8132, lo: 0xb7, hi: 0xb8}, - {value: 0x812d, lo: 0xb9, hi: 0xba}, - {value: 0x8132, lo: 0xbb, hi: 0xbf}, - // Block 0x10, offset 0x7a - {value: 0x0000, lo: 0x07}, - {value: 0xa000, lo: 0xa8, hi: 0xa8}, - {value: 0x3ed8, lo: 0xa9, hi: 0xa9}, - {value: 0xa000, lo: 0xb0, hi: 0xb0}, - {value: 0x3ee0, lo: 0xb1, hi: 0xb1}, - {value: 0xa000, lo: 0xb3, hi: 0xb3}, - {value: 0x3ee8, lo: 0xb4, hi: 0xb4}, - {value: 0x9902, lo: 0xbc, hi: 0xbc}, - // Block 0x11, offset 0x82 - {value: 0x0008, lo: 0x06}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x8132, lo: 0x91, hi: 0x91}, - {value: 0x812d, lo: 0x92, hi: 0x92}, - {value: 0x8132, lo: 0x93, hi: 0x93}, - {value: 0x8132, lo: 0x94, hi: 0x94}, - {value: 0x451c, lo: 0x98, hi: 0x9f}, - // Block 0x12, offset 0x89 - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x13, offset 0x8c - {value: 0x0008, lo: 0x06}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2c9e, lo: 0x8b, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - {value: 0x455c, lo: 0x9c, hi: 0x9d}, - {value: 0x456c, lo: 0x9f, hi: 0x9f}, - // Block 0x14, offset 0x93 - {value: 0x0000, lo: 0x03}, - {value: 0x4594, lo: 0xb3, hi: 0xb3}, - {value: 0x459c, lo: 0xb6, hi: 0xb6}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - // Block 0x15, offset 0x97 - {value: 0x0008, lo: 0x03}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x4574, lo: 0x99, hi: 0x9b}, - {value: 0x458c, lo: 0x9e, hi: 0x9e}, - // Block 0x16, offset 0x9b - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - // Block 0x17, offset 0x9d - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - // Block 0x18, offset 0x9f - {value: 0x0000, lo: 0x08}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2cb6, lo: 0x88, hi: 0x88}, - {value: 0x2cae, lo: 0x8b, hi: 0x8b}, - {value: 0x2cbe, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x96, hi: 0x97}, - {value: 0x45a4, lo: 0x9c, hi: 0x9c}, - {value: 0x45ac, lo: 0x9d, hi: 0x9d}, - // Block 0x19, offset 0xa8 - {value: 0x0000, lo: 0x03}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x2cc6, lo: 0x94, hi: 0x94}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x1a, offset 0xac - {value: 0x0000, lo: 0x06}, - {value: 0xa000, lo: 0x86, hi: 0x87}, - {value: 0x2cce, lo: 0x8a, hi: 0x8a}, - {value: 0x2cde, lo: 0x8b, hi: 0x8b}, - {value: 0x2cd6, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - // Block 0x1b, offset 0xb3 - {value: 0x1801, lo: 0x04}, - {value: 0xa000, lo: 0x86, hi: 0x86}, - {value: 0x3ef0, lo: 0x88, hi: 0x88}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x8120, lo: 0x95, hi: 0x96}, - // Block 0x1c, offset 0xb8 - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - {value: 0xa000, lo: 0xbf, hi: 0xbf}, - // Block 0x1d, offset 0xbb - {value: 0x0000, lo: 0x09}, - {value: 0x2ce6, lo: 0x80, hi: 0x80}, - {value: 0x9900, lo: 0x82, hi: 0x82}, - {value: 0xa000, lo: 0x86, hi: 0x86}, - {value: 0x2cee, lo: 0x87, hi: 0x87}, - {value: 0x2cf6, lo: 0x88, hi: 0x88}, - {value: 0x2f50, lo: 0x8a, hi: 0x8a}, - {value: 0x2dd8, lo: 0x8b, hi: 0x8b}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x95, hi: 0x96}, - // Block 0x1e, offset 0xc5 - {value: 0x0000, lo: 0x01}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x1f, offset 0xc7 - {value: 0x0000, lo: 0x06}, - {value: 0xa000, lo: 0x86, hi: 0x87}, - {value: 0x2cfe, lo: 0x8a, hi: 0x8a}, - {value: 0x2d0e, lo: 0x8b, hi: 0x8b}, - {value: 0x2d06, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - // Block 0x20, offset 0xce - {value: 0x6bea, lo: 0x07}, - {value: 0x9904, lo: 0x8a, hi: 0x8a}, - {value: 0x9900, lo: 0x8f, hi: 0x8f}, - {value: 0xa000, lo: 0x99, hi: 0x99}, - {value: 0x3ef8, lo: 0x9a, hi: 0x9a}, - {value: 0x2f58, lo: 0x9c, hi: 0x9c}, - {value: 0x2de3, lo: 0x9d, hi: 0x9d}, - {value: 0x2d16, lo: 0x9e, hi: 0x9f}, - // Block 0x21, offset 0xd6 - {value: 0x0000, lo: 0x02}, - {value: 0x8122, lo: 0xb8, hi: 0xb9}, - {value: 0x8104, lo: 0xba, hi: 0xba}, - // Block 0x22, offset 0xd9 - {value: 0x0000, lo: 0x01}, - {value: 0x8123, lo: 0x88, hi: 0x8b}, - // Block 0x23, offset 0xdb - {value: 0x0000, lo: 0x01}, - {value: 0x8124, lo: 0xb8, hi: 0xb9}, - // Block 0x24, offset 0xdd - {value: 0x0000, lo: 0x01}, - {value: 0x8125, lo: 0x88, hi: 0x8b}, - // Block 0x25, offset 0xdf - {value: 0x0000, lo: 0x04}, - {value: 0x812d, lo: 0x98, hi: 0x99}, - {value: 0x812d, lo: 0xb5, hi: 0xb5}, - {value: 0x812d, lo: 0xb7, hi: 0xb7}, - {value: 0x812b, lo: 0xb9, hi: 0xb9}, - // Block 0x26, offset 0xe4 - {value: 0x0000, lo: 0x10}, - {value: 0x2644, lo: 0x83, hi: 0x83}, - {value: 0x264b, lo: 0x8d, hi: 0x8d}, - {value: 0x2652, lo: 0x92, hi: 0x92}, - {value: 0x2659, lo: 0x97, hi: 0x97}, - {value: 0x2660, lo: 0x9c, hi: 0x9c}, - {value: 0x263d, lo: 0xa9, hi: 0xa9}, - {value: 0x8126, lo: 0xb1, hi: 0xb1}, - {value: 0x8127, lo: 0xb2, hi: 0xb2}, - {value: 0x4a84, lo: 0xb3, hi: 0xb3}, - {value: 0x8128, lo: 0xb4, hi: 0xb4}, - {value: 0x4a8d, lo: 0xb5, hi: 0xb5}, - {value: 0x45b4, lo: 0xb6, hi: 0xb6}, - {value: 0x8200, lo: 0xb7, hi: 0xb7}, - {value: 0x45bc, lo: 0xb8, hi: 0xb8}, - {value: 0x8200, lo: 0xb9, hi: 0xb9}, - {value: 0x8127, lo: 0xba, hi: 0xbd}, - // Block 0x27, offset 0xf5 - {value: 0x0000, lo: 0x0b}, - {value: 0x8127, lo: 0x80, hi: 0x80}, - {value: 0x4a96, lo: 0x81, hi: 0x81}, - {value: 0x8132, lo: 0x82, hi: 0x83}, - {value: 0x8104, lo: 0x84, hi: 0x84}, - {value: 0x8132, lo: 0x86, hi: 0x87}, - {value: 0x266e, lo: 0x93, hi: 0x93}, - {value: 0x2675, lo: 0x9d, hi: 0x9d}, - {value: 0x267c, lo: 0xa2, hi: 0xa2}, - {value: 0x2683, lo: 0xa7, hi: 0xa7}, - {value: 0x268a, lo: 0xac, hi: 0xac}, - {value: 0x2667, lo: 0xb9, hi: 0xb9}, - // Block 0x28, offset 0x101 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x86, hi: 0x86}, - // Block 0x29, offset 0x103 - {value: 0x0000, lo: 0x05}, - {value: 0xa000, lo: 0xa5, hi: 0xa5}, - {value: 0x2d1e, lo: 0xa6, hi: 0xa6}, - {value: 0x9900, lo: 0xae, hi: 0xae}, - {value: 0x8102, lo: 0xb7, hi: 0xb7}, - {value: 0x8104, lo: 0xb9, hi: 0xba}, - // Block 0x2a, offset 0x109 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x8d, hi: 0x8d}, - // Block 0x2b, offset 0x10b - {value: 0x0000, lo: 0x01}, - {value: 0xa000, lo: 0x80, hi: 0x92}, - // Block 0x2c, offset 0x10d - {value: 0x0000, lo: 0x01}, - {value: 0xb900, lo: 0xa1, hi: 0xb5}, - // Block 0x2d, offset 0x10f - {value: 0x0000, lo: 0x01}, - {value: 0x9900, lo: 0xa8, hi: 0xbf}, - // Block 0x2e, offset 0x111 - {value: 0x0000, lo: 0x01}, - {value: 0x9900, lo: 0x80, hi: 0x82}, - // Block 0x2f, offset 0x113 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x9d, hi: 0x9f}, - // Block 0x30, offset 0x115 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x94, hi: 0x94}, - {value: 0x8104, lo: 0xb4, hi: 0xb4}, - // Block 0x31, offset 0x118 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x92, hi: 0x92}, - {value: 0x8132, lo: 0x9d, hi: 0x9d}, - // Block 0x32, offset 0x11b - {value: 0x0000, lo: 0x01}, - {value: 0x8131, lo: 0xa9, hi: 0xa9}, - // Block 0x33, offset 0x11d - {value: 0x0004, lo: 0x02}, - {value: 0x812e, lo: 0xb9, hi: 0xba}, - {value: 0x812d, lo: 0xbb, hi: 0xbb}, - // Block 0x34, offset 0x120 - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0x97, hi: 0x97}, - {value: 0x812d, lo: 0x98, hi: 0x98}, - // Block 0x35, offset 0x123 - {value: 0x0000, lo: 0x03}, - {value: 0x8104, lo: 0xa0, hi: 0xa0}, - {value: 0x8132, lo: 0xb5, hi: 0xbc}, - {value: 0x812d, lo: 0xbf, hi: 0xbf}, - // Block 0x36, offset 0x127 - {value: 0x0000, lo: 0x04}, - {value: 0x8132, lo: 0xb0, hi: 0xb4}, - {value: 0x812d, lo: 0xb5, hi: 0xba}, - {value: 0x8132, lo: 0xbb, hi: 0xbc}, - {value: 0x812d, lo: 0xbd, hi: 0xbd}, - // Block 0x37, offset 0x12c - {value: 0x0000, lo: 0x08}, - {value: 0x2d66, lo: 0x80, hi: 0x80}, - {value: 0x2d6e, lo: 0x81, hi: 0x81}, - {value: 0xa000, lo: 0x82, hi: 0x82}, - {value: 0x2d76, lo: 0x83, hi: 0x83}, - {value: 0x8104, lo: 0x84, hi: 0x84}, - {value: 0x8132, lo: 0xab, hi: 0xab}, - {value: 0x812d, lo: 0xac, hi: 0xac}, - {value: 0x8132, lo: 0xad, hi: 0xb3}, - // Block 0x38, offset 0x135 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xaa, hi: 0xab}, - // Block 0x39, offset 0x137 - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xa6, hi: 0xa6}, - {value: 0x8104, lo: 0xb2, hi: 0xb3}, - // Block 0x3a, offset 0x13a - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0xb7, hi: 0xb7}, - // Block 0x3b, offset 0x13c - {value: 0x0000, lo: 0x0a}, - {value: 0x8132, lo: 0x90, hi: 0x92}, - {value: 0x8101, lo: 0x94, hi: 0x94}, - {value: 0x812d, lo: 0x95, hi: 0x99}, - {value: 0x8132, lo: 0x9a, hi: 0x9b}, - {value: 0x812d, lo: 0x9c, hi: 0x9f}, - {value: 0x8132, lo: 0xa0, hi: 0xa0}, - {value: 0x8101, lo: 0xa2, hi: 0xa8}, - {value: 0x812d, lo: 0xad, hi: 0xad}, - {value: 0x8132, lo: 0xb4, hi: 0xb4}, - {value: 0x8132, lo: 0xb8, hi: 0xb9}, - // Block 0x3c, offset 0x147 - {value: 0x0000, lo: 0x0f}, - {value: 0x8132, lo: 0x80, hi: 0x81}, - {value: 0x812d, lo: 0x82, hi: 0x82}, - {value: 0x8132, lo: 0x83, hi: 0x89}, - {value: 0x812d, lo: 0x8a, hi: 0x8a}, - {value: 0x8132, lo: 0x8b, hi: 0x8c}, - {value: 0x8135, lo: 0x8d, hi: 0x8d}, - {value: 0x812a, lo: 0x8e, hi: 0x8e}, - {value: 0x812d, lo: 0x8f, hi: 0x8f}, - {value: 0x8129, lo: 0x90, hi: 0x90}, - {value: 0x8132, lo: 0x91, hi: 0xb5}, - {value: 0x8132, lo: 0xbb, hi: 0xbb}, - {value: 0x8134, lo: 0xbc, hi: 0xbc}, - {value: 0x812d, lo: 0xbd, hi: 0xbd}, - {value: 0x8132, lo: 0xbe, hi: 0xbe}, - {value: 0x812d, lo: 0xbf, hi: 0xbf}, - // Block 0x3d, offset 0x157 - {value: 0x0004, lo: 0x03}, - {value: 0x0433, lo: 0x80, hi: 0x81}, - {value: 0x8100, lo: 0x97, hi: 0x97}, - {value: 0x8100, lo: 0xbe, hi: 0xbe}, - // Block 0x3e, offset 0x15b - {value: 0x0000, lo: 0x0d}, - {value: 0x8132, lo: 0x90, hi: 0x91}, - {value: 0x8101, lo: 0x92, hi: 0x93}, - {value: 0x8132, lo: 0x94, hi: 0x97}, - {value: 0x8101, lo: 0x98, hi: 0x9a}, - {value: 0x8132, lo: 0x9b, hi: 0x9c}, - {value: 0x8132, lo: 0xa1, hi: 0xa1}, - {value: 0x8101, lo: 0xa5, hi: 0xa6}, - {value: 0x8132, lo: 0xa7, hi: 0xa7}, - {value: 0x812d, lo: 0xa8, hi: 0xa8}, - {value: 0x8132, lo: 0xa9, hi: 0xa9}, - {value: 0x8101, lo: 0xaa, hi: 0xab}, - {value: 0x812d, lo: 0xac, hi: 0xaf}, - {value: 0x8132, lo: 0xb0, hi: 0xb0}, - // Block 0x3f, offset 0x169 - {value: 0x427b, lo: 0x02}, - {value: 0x01b8, lo: 0xa6, hi: 0xa6}, - {value: 0x0057, lo: 0xaa, hi: 0xab}, - // Block 0x40, offset 0x16c - {value: 0x0007, lo: 0x05}, - {value: 0xa000, lo: 0x90, hi: 0x90}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0xa000, lo: 0x94, hi: 0x94}, - {value: 0x3bb9, lo: 0x9a, hi: 0x9b}, - {value: 0x3bc7, lo: 0xae, hi: 0xae}, - // Block 0x41, offset 0x172 - {value: 0x000e, lo: 0x05}, - {value: 0x3bce, lo: 0x8d, hi: 0x8e}, - {value: 0x3bd5, lo: 0x8f, hi: 0x8f}, - {value: 0xa000, lo: 0x90, hi: 0x90}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0xa000, lo: 0x94, hi: 0x94}, - // Block 0x42, offset 0x178 - {value: 0x6408, lo: 0x0a}, - {value: 0xa000, lo: 0x83, hi: 0x83}, - {value: 0x3be3, lo: 0x84, hi: 0x84}, - {value: 0xa000, lo: 0x88, hi: 0x88}, - {value: 0x3bea, lo: 0x89, hi: 0x89}, - {value: 0xa000, lo: 0x8b, hi: 0x8b}, - {value: 0x3bf1, lo: 0x8c, hi: 0x8c}, - {value: 0xa000, lo: 0xa3, hi: 0xa3}, - {value: 0x3bf8, lo: 0xa4, hi: 0xa5}, - {value: 0x3bff, lo: 0xa6, hi: 0xa6}, - {value: 0xa000, lo: 0xbc, hi: 0xbc}, - // Block 0x43, offset 0x183 - {value: 0x0007, lo: 0x03}, - {value: 0x3c68, lo: 0xa0, hi: 0xa1}, - {value: 0x3c92, lo: 0xa2, hi: 0xa3}, - {value: 0x3cbc, lo: 0xaa, hi: 0xad}, - // Block 0x44, offset 0x187 - {value: 0x0004, lo: 0x01}, - {value: 0x048b, lo: 0xa9, hi: 0xaa}, - // Block 0x45, offset 0x189 - {value: 0x0000, lo: 0x01}, - {value: 0x44dd, lo: 0x9c, hi: 0x9c}, - // Block 0x46, offset 0x18b - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xaf, hi: 0xb1}, - // Block 0x47, offset 0x18d - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x48, offset 0x18f - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xa0, hi: 0xbf}, - // Block 0x49, offset 0x191 - {value: 0x0000, lo: 0x05}, - {value: 0x812c, lo: 0xaa, hi: 0xaa}, - {value: 0x8131, lo: 0xab, hi: 0xab}, - {value: 0x8133, lo: 0xac, hi: 0xac}, - {value: 0x812e, lo: 0xad, hi: 0xad}, - {value: 0x812f, lo: 0xae, hi: 0xaf}, - // Block 0x4a, offset 0x197 - {value: 0x0000, lo: 0x03}, - {value: 0x4a9f, lo: 0xb3, hi: 0xb3}, - {value: 0x4a9f, lo: 0xb5, hi: 0xb6}, - {value: 0x4a9f, lo: 0xba, hi: 0xbf}, - // Block 0x4b, offset 0x19b - {value: 0x0000, lo: 0x01}, - {value: 0x4a9f, lo: 0x8f, hi: 0xa3}, - // Block 0x4c, offset 0x19d - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0xae, hi: 0xbe}, - // Block 0x4d, offset 0x19f - {value: 0x0000, lo: 0x07}, - {value: 0x8100, lo: 0x84, hi: 0x84}, - {value: 0x8100, lo: 0x87, hi: 0x87}, - {value: 0x8100, lo: 0x90, hi: 0x90}, - {value: 0x8100, lo: 0x9e, hi: 0x9e}, - {value: 0x8100, lo: 0xa1, hi: 0xa1}, - {value: 0x8100, lo: 0xb2, hi: 0xb2}, - {value: 0x8100, lo: 0xbb, hi: 0xbb}, - // Block 0x4e, offset 0x1a7 - {value: 0x0000, lo: 0x03}, - {value: 0x8100, lo: 0x80, hi: 0x80}, - {value: 0x8100, lo: 0x8b, hi: 0x8b}, - {value: 0x8100, lo: 0x8e, hi: 0x8e}, - // Block 0x4f, offset 0x1ab - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0xaf, hi: 0xaf}, - {value: 0x8132, lo: 0xb4, hi: 0xbd}, - // Block 0x50, offset 0x1ae - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x9e, hi: 0x9f}, - // Block 0x51, offset 0x1b0 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xb0, hi: 0xb1}, - // Block 0x52, offset 0x1b2 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x86, hi: 0x86}, - // Block 0x53, offset 0x1b4 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x84, hi: 0x84}, - {value: 0x8132, lo: 0xa0, hi: 0xb1}, - // Block 0x54, offset 0x1b7 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0xab, hi: 0xad}, - // Block 0x55, offset 0x1b9 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x93, hi: 0x93}, - // Block 0x56, offset 0x1bb - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0xb3, hi: 0xb3}, - // Block 0x57, offset 0x1bd - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x80, hi: 0x80}, - // Block 0x58, offset 0x1bf - {value: 0x0000, lo: 0x05}, - {value: 0x8132, lo: 0xb0, hi: 0xb0}, - {value: 0x8132, lo: 0xb2, hi: 0xb3}, - {value: 0x812d, lo: 0xb4, hi: 0xb4}, - {value: 0x8132, lo: 0xb7, hi: 0xb8}, - {value: 0x8132, lo: 0xbe, hi: 0xbf}, - // Block 0x59, offset 0x1c5 - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0x81, hi: 0x81}, - {value: 0x8104, lo: 0xb6, hi: 0xb6}, - // Block 0x5a, offset 0x1c8 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xad, hi: 0xad}, - // Block 0x5b, offset 0x1ca - {value: 0x0000, lo: 0x06}, - {value: 0xe500, lo: 0x80, hi: 0x80}, - {value: 0xc600, lo: 0x81, hi: 0x9b}, - {value: 0xe500, lo: 0x9c, hi: 0x9c}, - {value: 0xc600, lo: 0x9d, hi: 0xb7}, - {value: 0xe500, lo: 0xb8, hi: 0xb8}, - {value: 0xc600, lo: 0xb9, hi: 0xbf}, - // Block 0x5c, offset 0x1d1 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x93}, - {value: 0xe500, lo: 0x94, hi: 0x94}, - {value: 0xc600, lo: 0x95, hi: 0xaf}, - {value: 0xe500, lo: 0xb0, hi: 0xb0}, - {value: 0xc600, lo: 0xb1, hi: 0xbf}, - // Block 0x5d, offset 0x1d7 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x8b}, - {value: 0xe500, lo: 0x8c, hi: 0x8c}, - {value: 0xc600, lo: 0x8d, hi: 0xa7}, - {value: 0xe500, lo: 0xa8, hi: 0xa8}, - {value: 0xc600, lo: 0xa9, hi: 0xbf}, - // Block 0x5e, offset 0x1dd - {value: 0x0000, lo: 0x07}, - {value: 0xc600, lo: 0x80, hi: 0x83}, - {value: 0xe500, lo: 0x84, hi: 0x84}, - {value: 0xc600, lo: 0x85, hi: 0x9f}, - {value: 0xe500, lo: 0xa0, hi: 0xa0}, - {value: 0xc600, lo: 0xa1, hi: 0xbb}, - {value: 0xe500, lo: 0xbc, hi: 0xbc}, - {value: 0xc600, lo: 0xbd, hi: 0xbf}, - // Block 0x5f, offset 0x1e5 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x97}, - {value: 0xe500, lo: 0x98, hi: 0x98}, - {value: 0xc600, lo: 0x99, hi: 0xb3}, - {value: 0xe500, lo: 0xb4, hi: 0xb4}, - {value: 0xc600, lo: 0xb5, hi: 0xbf}, - // Block 0x60, offset 0x1eb - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x8f}, - {value: 0xe500, lo: 0x90, hi: 0x90}, - {value: 0xc600, lo: 0x91, hi: 0xab}, - {value: 0xe500, lo: 0xac, hi: 0xac}, - {value: 0xc600, lo: 0xad, hi: 0xbf}, - // Block 0x61, offset 0x1f1 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x87}, - {value: 0xe500, lo: 0x88, hi: 0x88}, - {value: 0xc600, lo: 0x89, hi: 0xa3}, - {value: 0xe500, lo: 0xa4, hi: 0xa4}, - {value: 0xc600, lo: 0xa5, hi: 0xbf}, - // Block 0x62, offset 0x1f7 - {value: 0x0000, lo: 0x03}, - {value: 0xc600, lo: 0x80, hi: 0x87}, - {value: 0xe500, lo: 0x88, hi: 0x88}, - {value: 0xc600, lo: 0x89, hi: 0xa3}, - // Block 0x63, offset 0x1fb - {value: 0x0006, lo: 0x0d}, - {value: 0x4390, lo: 0x9d, hi: 0x9d}, - {value: 0x8115, lo: 0x9e, hi: 0x9e}, - {value: 0x4402, lo: 0x9f, hi: 0x9f}, - {value: 0x43f0, lo: 0xaa, hi: 0xab}, - {value: 0x44f4, lo: 0xac, hi: 0xac}, - {value: 0x44fc, lo: 0xad, hi: 0xad}, - {value: 0x4348, lo: 0xae, hi: 0xb1}, - {value: 0x4366, lo: 0xb2, hi: 0xb4}, - {value: 0x437e, lo: 0xb5, hi: 0xb6}, - {value: 0x438a, lo: 0xb8, hi: 0xb8}, - {value: 0x4396, lo: 0xb9, hi: 0xbb}, - {value: 0x43ae, lo: 0xbc, hi: 0xbc}, - {value: 0x43b4, lo: 0xbe, hi: 0xbe}, - // Block 0x64, offset 0x209 - {value: 0x0006, lo: 0x08}, - {value: 0x43ba, lo: 0x80, hi: 0x81}, - {value: 0x43c6, lo: 0x83, hi: 0x84}, - {value: 0x43d8, lo: 0x86, hi: 0x89}, - {value: 0x43fc, lo: 0x8a, hi: 0x8a}, - {value: 0x4378, lo: 0x8b, hi: 0x8b}, - {value: 0x4360, lo: 0x8c, hi: 0x8c}, - {value: 0x43a8, lo: 0x8d, hi: 0x8d}, - {value: 0x43d2, lo: 0x8e, hi: 0x8e}, - // Block 0x65, offset 0x212 - {value: 0x0000, lo: 0x02}, - {value: 0x8100, lo: 0xa4, hi: 0xa5}, - {value: 0x8100, lo: 0xb0, hi: 0xb1}, - // Block 0x66, offset 0x215 - {value: 0x0000, lo: 0x02}, - {value: 0x8100, lo: 0x9b, hi: 0x9d}, - {value: 0x8200, lo: 0x9e, hi: 0xa3}, - // Block 0x67, offset 0x218 - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0x90, hi: 0x90}, - // Block 0x68, offset 0x21a - {value: 0x0000, lo: 0x02}, - {value: 0x8100, lo: 0x99, hi: 0x99}, - {value: 0x8200, lo: 0xb2, hi: 0xb4}, - // Block 0x69, offset 0x21d - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0xbc, hi: 0xbd}, - // Block 0x6a, offset 0x21f - {value: 0x0000, lo: 0x03}, - {value: 0x8132, lo: 0xa0, hi: 0xa6}, - {value: 0x812d, lo: 0xa7, hi: 0xad}, - {value: 0x8132, lo: 0xae, hi: 0xaf}, - // Block 0x6b, offset 0x223 - {value: 0x0000, lo: 0x04}, - {value: 0x8100, lo: 0x89, hi: 0x8c}, - {value: 0x8100, lo: 0xb0, hi: 0xb2}, - {value: 0x8100, lo: 0xb4, hi: 0xb4}, - {value: 0x8100, lo: 0xb6, hi: 0xbf}, - // Block 0x6c, offset 0x228 - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0x81, hi: 0x8c}, - // Block 0x6d, offset 0x22a - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0xb5, hi: 0xba}, - // Block 0x6e, offset 0x22c - {value: 0x0000, lo: 0x04}, - {value: 0x4a9f, lo: 0x9e, hi: 0x9f}, - {value: 0x4a9f, lo: 0xa3, hi: 0xa3}, - {value: 0x4a9f, lo: 0xa5, hi: 0xa6}, - {value: 0x4a9f, lo: 0xaa, hi: 0xaf}, - // Block 0x6f, offset 0x231 - {value: 0x0000, lo: 0x05}, - {value: 0x4a9f, lo: 0x82, hi: 0x87}, - {value: 0x4a9f, lo: 0x8a, hi: 0x8f}, - {value: 0x4a9f, lo: 0x92, hi: 0x97}, - {value: 0x4a9f, lo: 0x9a, hi: 0x9c}, - {value: 0x8100, lo: 0xa3, hi: 0xa3}, - // Block 0x70, offset 0x237 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0xbd, hi: 0xbd}, - // Block 0x71, offset 0x239 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0xa0, hi: 0xa0}, - // Block 0x72, offset 0x23b - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xb6, hi: 0xba}, - // Block 0x73, offset 0x23d - {value: 0x002c, lo: 0x05}, - {value: 0x812d, lo: 0x8d, hi: 0x8d}, - {value: 0x8132, lo: 0x8f, hi: 0x8f}, - {value: 0x8132, lo: 0xb8, hi: 0xb8}, - {value: 0x8101, lo: 0xb9, hi: 0xba}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x74, offset 0x243 - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0xa5, hi: 0xa5}, - {value: 0x812d, lo: 0xa6, hi: 0xa6}, - // Block 0x75, offset 0x246 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x86, hi: 0x86}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x76, offset 0x249 - {value: 0x17fe, lo: 0x07}, - {value: 0xa000, lo: 0x99, hi: 0x99}, - {value: 0x4238, lo: 0x9a, hi: 0x9a}, - {value: 0xa000, lo: 0x9b, hi: 0x9b}, - {value: 0x4242, lo: 0x9c, hi: 0x9c}, - {value: 0xa000, lo: 0xa5, hi: 0xa5}, - {value: 0x424c, lo: 0xab, hi: 0xab}, - {value: 0x8104, lo: 0xb9, hi: 0xba}, - // Block 0x77, offset 0x251 - {value: 0x0000, lo: 0x06}, - {value: 0x8132, lo: 0x80, hi: 0x82}, - {value: 0x9900, lo: 0xa7, hi: 0xa7}, - {value: 0x2d7e, lo: 0xae, hi: 0xae}, - {value: 0x2d88, lo: 0xaf, hi: 0xaf}, - {value: 0xa000, lo: 0xb1, hi: 0xb2}, - {value: 0x8104, lo: 0xb3, hi: 0xb4}, - // Block 0x78, offset 0x258 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x80, hi: 0x80}, - {value: 0x8102, lo: 0x8a, hi: 0x8a}, - // Block 0x79, offset 0x25b - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0xb5, hi: 0xb5}, - {value: 0x8102, lo: 0xb6, hi: 0xb6}, - // Block 0x7a, offset 0x25e - {value: 0x0002, lo: 0x01}, - {value: 0x8102, lo: 0xa9, hi: 0xaa}, - // Block 0x7b, offset 0x260 - {value: 0x0000, lo: 0x07}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2d92, lo: 0x8b, hi: 0x8b}, - {value: 0x2d9c, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - {value: 0x8132, lo: 0xa6, hi: 0xac}, - {value: 0x8132, lo: 0xb0, hi: 0xb4}, - // Block 0x7c, offset 0x268 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x82, hi: 0x82}, - {value: 0x8102, lo: 0x86, hi: 0x86}, - // Block 0x7d, offset 0x26b - {value: 0x6b5a, lo: 0x06}, - {value: 0x9900, lo: 0xb0, hi: 0xb0}, - {value: 0xa000, lo: 0xb9, hi: 0xb9}, - {value: 0x9900, lo: 0xba, hi: 0xba}, - {value: 0x2db0, lo: 0xbb, hi: 0xbb}, - {value: 0x2da6, lo: 0xbc, hi: 0xbd}, - {value: 0x2dba, lo: 0xbe, hi: 0xbe}, - // Block 0x7e, offset 0x272 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x82, hi: 0x82}, - {value: 0x8102, lo: 0x83, hi: 0x83}, - // Block 0x7f, offset 0x275 - {value: 0x0000, lo: 0x05}, - {value: 0x9900, lo: 0xaf, hi: 0xaf}, - {value: 0xa000, lo: 0xb8, hi: 0xb9}, - {value: 0x2dc4, lo: 0xba, hi: 0xba}, - {value: 0x2dce, lo: 0xbb, hi: 0xbb}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x80, offset 0x27b - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0x80, hi: 0x80}, - // Block 0x81, offset 0x27d - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0xb6, hi: 0xb6}, - {value: 0x8102, lo: 0xb7, hi: 0xb7}, - // Block 0x82, offset 0x280 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xab, hi: 0xab}, - // Block 0x83, offset 0x282 - {value: 0x0000, lo: 0x01}, - {value: 0x8101, lo: 0xb0, hi: 0xb4}, - // Block 0x84, offset 0x284 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xb0, hi: 0xb6}, - // Block 0x85, offset 0x286 - {value: 0x0000, lo: 0x01}, - {value: 0x8101, lo: 0x9e, hi: 0x9e}, - // Block 0x86, offset 0x288 - {value: 0x0000, lo: 0x0c}, - {value: 0x45cc, lo: 0x9e, hi: 0x9e}, - {value: 0x45d6, lo: 0x9f, hi: 0x9f}, - {value: 0x460a, lo: 0xa0, hi: 0xa0}, - {value: 0x4618, lo: 0xa1, hi: 0xa1}, - {value: 0x4626, lo: 0xa2, hi: 0xa2}, - {value: 0x4634, lo: 0xa3, hi: 0xa3}, - {value: 0x4642, lo: 0xa4, hi: 0xa4}, - {value: 0x812b, lo: 0xa5, hi: 0xa6}, - {value: 0x8101, lo: 0xa7, hi: 0xa9}, - {value: 0x8130, lo: 0xad, hi: 0xad}, - {value: 0x812b, lo: 0xae, hi: 0xb2}, - {value: 0x812d, lo: 0xbb, hi: 0xbf}, - // Block 0x87, offset 0x295 - {value: 0x0000, lo: 0x09}, - {value: 0x812d, lo: 0x80, hi: 0x82}, - {value: 0x8132, lo: 0x85, hi: 0x89}, - {value: 0x812d, lo: 0x8a, hi: 0x8b}, - {value: 0x8132, lo: 0xaa, hi: 0xad}, - {value: 0x45e0, lo: 0xbb, hi: 0xbb}, - {value: 0x45ea, lo: 0xbc, hi: 0xbc}, - {value: 0x4650, lo: 0xbd, hi: 0xbd}, - {value: 0x466c, lo: 0xbe, hi: 0xbe}, - {value: 0x465e, lo: 0xbf, hi: 0xbf}, - // Block 0x88, offset 0x29f - {value: 0x0000, lo: 0x01}, - {value: 0x467a, lo: 0x80, hi: 0x80}, - // Block 0x89, offset 0x2a1 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x82, hi: 0x84}, - // Block 0x8a, offset 0x2a3 - {value: 0x0000, lo: 0x05}, - {value: 0x8132, lo: 0x80, hi: 0x86}, - {value: 0x8132, lo: 0x88, hi: 0x98}, - {value: 0x8132, lo: 0x9b, hi: 0xa1}, - {value: 0x8132, lo: 0xa3, hi: 0xa4}, - {value: 0x8132, lo: 0xa6, hi: 0xaa}, - // Block 0x8b, offset 0x2a9 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x90, hi: 0x96}, - // Block 0x8c, offset 0x2ab - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0x84, hi: 0x89}, - {value: 0x8102, lo: 0x8a, hi: 0x8a}, - // Block 0x8d, offset 0x2ae - {value: 0x0000, lo: 0x01}, - {value: 0x8100, lo: 0x93, hi: 0x93}, -} - -// lookup returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *nfkcTrie) lookup(s []byte) (v uint16, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return nfkcValues[c0], 1 - case c0 < 0xC2: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := nfkcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := nfkcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfkcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := nfkcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfkcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = nfkcIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 3 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *nfkcTrie) lookupUnsafe(s []byte) uint16 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return nfkcValues[c0] - } - i := nfkcIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = nfkcIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = nfkcIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// lookupString returns the trie value for the first UTF-8 encoding in s and -// the width in bytes of this encoding. The size will be 0 if s does not -// hold enough bytes to complete the encoding. len(s) must be greater than 0. -func (t *nfkcTrie) lookupString(s string) (v uint16, sz int) { - c0 := s[0] - switch { - case c0 < 0x80: // is ASCII - return nfkcValues[c0], 1 - case c0 < 0xC2: - return 0, 1 // Illegal UTF-8: not a starter, not ASCII. - case c0 < 0xE0: // 2-byte UTF-8 - if len(s) < 2 { - return 0, 0 - } - i := nfkcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c1), 2 - case c0 < 0xF0: // 3-byte UTF-8 - if len(s) < 3 { - return 0, 0 - } - i := nfkcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfkcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c2), 3 - case c0 < 0xF8: // 4-byte UTF-8 - if len(s) < 4 { - return 0, 0 - } - i := nfkcIndex[c0] - c1 := s[1] - if c1 < 0x80 || 0xC0 <= c1 { - return 0, 1 // Illegal UTF-8: not a continuation byte. - } - o := uint32(i)<<6 + uint32(c1) - i = nfkcIndex[o] - c2 := s[2] - if c2 < 0x80 || 0xC0 <= c2 { - return 0, 2 // Illegal UTF-8: not a continuation byte. - } - o = uint32(i)<<6 + uint32(c2) - i = nfkcIndex[o] - c3 := s[3] - if c3 < 0x80 || 0xC0 <= c3 { - return 0, 3 // Illegal UTF-8: not a continuation byte. - } - return t.lookupValue(uint32(i), c3), 4 - } - // Illegal rune - return 0, 1 -} - -// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. -// s must start with a full and valid UTF-8 encoded rune. -func (t *nfkcTrie) lookupStringUnsafe(s string) uint16 { - c0 := s[0] - if c0 < 0x80 { // is ASCII - return nfkcValues[c0] - } - i := nfkcIndex[c0] - if c0 < 0xE0 { // 2-byte UTF-8 - return t.lookupValue(uint32(i), s[1]) - } - i = nfkcIndex[uint32(i)<<6+uint32(s[1])] - if c0 < 0xF0 { // 3-byte UTF-8 - return t.lookupValue(uint32(i), s[2]) - } - i = nfkcIndex[uint32(i)<<6+uint32(s[2])] - if c0 < 0xF8 { // 4-byte UTF-8 - return t.lookupValue(uint32(i), s[3]) - } - return 0 -} - -// nfkcTrie. Total size: 16994 bytes (16.60 KiB). Checksum: c3ed54ee046f3c46. -type nfkcTrie struct{} - -func newNfkcTrie(i int) *nfkcTrie { - return &nfkcTrie{} -} - -// lookupValue determines the type of block n and looks up the value for b. -func (t *nfkcTrie) lookupValue(n uint32, b byte) uint16 { - switch { - case n < 90: - return uint16(nfkcValues[n<<6+uint32(b)]) - default: - n -= 90 - return uint16(nfkcSparse.lookup(n, b)) - } -} - -// nfkcValues: 92 blocks, 5888 entries, 11776 bytes -// The third block is the zero block. -var nfkcValues = [5888]uint16{ - // Block 0x0, offset 0x0 - 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000, - // Block 0x1, offset 0x40 - 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000, - 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000, - 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000, - 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000, - 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000, - 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000, - 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000, - 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000, - 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000, - 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000, - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c, - 0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb, - 0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104, - 0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd, - 0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235, - 0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285, - 0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3, - 0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750, - 0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f, - 0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3, - 0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569, - // Block 0x4, offset 0x100 - 0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8, - 0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6, - 0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5, - 0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302, - 0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339, - 0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352, - 0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e, - 0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6, - 0x130: 0x308c, 0x132: 0x195d, 0x133: 0x19e7, 0x134: 0x30b4, 0x135: 0x33c0, - 0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc, - 0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8, 0x13f: 0x1bac, - // Block 0x5, offset 0x140 - 0x140: 0x1c34, 0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118, - 0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f, 0x149: 0x1c5c, - 0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c, - 0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483, - 0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d, - 0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba, - 0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796, - 0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2, - 0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528, - 0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267, - 0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0x00a7, - // Block 0x6, offset 0x180 - 0x184: 0x2dee, 0x185: 0x2df4, - 0x186: 0x2dfa, 0x187: 0x1972, 0x188: 0x1975, 0x189: 0x1a08, 0x18a: 0x1987, 0x18b: 0x198a, - 0x18c: 0x1a3e, 0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140, - 0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8, - 0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50, - 0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5, - 0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf, - 0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd, - 0x1b0: 0x33c5, 0x1b1: 0x1942, 0x1b2: 0x1945, 0x1b3: 0x19cf, 0x1b4: 0x3028, 0x1b5: 0x3334, - 0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46, - 0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb, - // Block 0x7, offset 0x1c0 - 0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316, - 0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac, - 0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479, - 0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6, - 0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5, - 0x1de: 0x305a, 0x1df: 0x3366, - 0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b, - 0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769, - 0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f, - // Block 0x8, offset 0x200 - 0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132, - 0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932, - 0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932, - 0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d, - 0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d, - 0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d, - 0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d, - 0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d, - 0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101, - 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d, - 0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132, - // Block 0x9, offset 0x240 - 0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936, - 0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132, - 0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132, - 0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132, - 0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135, - 0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132, - 0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132, - 0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132, - 0x274: 0x0170, - 0x27a: 0x42a5, - 0x27e: 0x0037, - // Block 0xa, offset 0x280 - 0x284: 0x425a, 0x285: 0x447b, - 0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625, - 0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000, - 0x295: 0xa000, 0x297: 0xa000, - 0x299: 0xa000, - 0x29f: 0xa000, 0x2a1: 0xa000, - 0x2a5: 0xa000, 0x2a9: 0xa000, - 0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9, - 0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000, - 0x2b7: 0xa000, 0x2b9: 0xa000, - 0x2bf: 0xa000, - // Block 0xb, offset 0x2c0 - 0x2c1: 0xa000, 0x2c5: 0xa000, - 0x2c9: 0xa000, 0x2ca: 0x4840, 0x2cb: 0x485e, - 0x2cc: 0x36c7, 0x2cd: 0x36df, 0x2ce: 0x4876, 0x2d0: 0x01be, 0x2d1: 0x01d0, - 0x2d2: 0x01ac, 0x2d3: 0x430c, 0x2d4: 0x4312, 0x2d5: 0x01fa, 0x2d6: 0x01e8, - 0x2f0: 0x01d6, 0x2f1: 0x01eb, 0x2f2: 0x01ee, 0x2f4: 0x0188, 0x2f5: 0x01c7, - 0x2f9: 0x01a6, - // Block 0xc, offset 0x300 - 0x300: 0x3721, 0x301: 0x372d, 0x303: 0x371b, - 0x306: 0xa000, 0x307: 0x3709, - 0x30c: 0x375d, 0x30d: 0x3745, 0x30e: 0x376f, 0x310: 0xa000, - 0x313: 0xa000, 0x315: 0xa000, 0x316: 0xa000, 0x317: 0xa000, - 0x318: 0xa000, 0x319: 0x3751, 0x31a: 0xa000, - 0x31e: 0xa000, 0x323: 0xa000, - 0x327: 0xa000, - 0x32b: 0xa000, 0x32d: 0xa000, - 0x330: 0xa000, 0x333: 0xa000, 0x335: 0xa000, - 0x336: 0xa000, 0x337: 0xa000, 0x338: 0xa000, 0x339: 0x37d5, 0x33a: 0xa000, - 0x33e: 0xa000, - // Block 0xd, offset 0x340 - 0x341: 0x3733, 0x342: 0x37b7, - 0x350: 0x370f, 0x351: 0x3793, - 0x352: 0x3715, 0x353: 0x3799, 0x356: 0x3727, 0x357: 0x37ab, - 0x358: 0xa000, 0x359: 0xa000, 0x35a: 0x3829, 0x35b: 0x382f, 0x35c: 0x3739, 0x35d: 0x37bd, - 0x35e: 0x373f, 0x35f: 0x37c3, 0x362: 0x374b, 0x363: 0x37cf, - 0x364: 0x3757, 0x365: 0x37db, 0x366: 0x3763, 0x367: 0x37e7, 0x368: 0xa000, 0x369: 0xa000, - 0x36a: 0x3835, 0x36b: 0x383b, 0x36c: 0x378d, 0x36d: 0x3811, 0x36e: 0x3769, 0x36f: 0x37ed, - 0x370: 0x3775, 0x371: 0x37f9, 0x372: 0x377b, 0x373: 0x37ff, 0x374: 0x3781, 0x375: 0x3805, - 0x378: 0x3787, 0x379: 0x380b, - // Block 0xe, offset 0x380 - 0x387: 0x1d61, - 0x391: 0x812d, - 0x392: 0x8132, 0x393: 0x8132, 0x394: 0x8132, 0x395: 0x8132, 0x396: 0x812d, 0x397: 0x8132, - 0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x812e, 0x39b: 0x812d, 0x39c: 0x8132, 0x39d: 0x8132, - 0x39e: 0x8132, 0x39f: 0x8132, 0x3a0: 0x8132, 0x3a1: 0x8132, 0x3a2: 0x812d, 0x3a3: 0x812d, - 0x3a4: 0x812d, 0x3a5: 0x812d, 0x3a6: 0x812d, 0x3a7: 0x812d, 0x3a8: 0x8132, 0x3a9: 0x8132, - 0x3aa: 0x812d, 0x3ab: 0x8132, 0x3ac: 0x8132, 0x3ad: 0x812e, 0x3ae: 0x8131, 0x3af: 0x8132, - 0x3b0: 0x8105, 0x3b1: 0x8106, 0x3b2: 0x8107, 0x3b3: 0x8108, 0x3b4: 0x8109, 0x3b5: 0x810a, - 0x3b6: 0x810b, 0x3b7: 0x810c, 0x3b8: 0x810d, 0x3b9: 0x810e, 0x3ba: 0x810e, 0x3bb: 0x810f, - 0x3bc: 0x8110, 0x3bd: 0x8111, 0x3bf: 0x8112, - // Block 0xf, offset 0x3c0 - 0x3c8: 0xa000, 0x3ca: 0xa000, 0x3cb: 0x8116, - 0x3cc: 0x8117, 0x3cd: 0x8118, 0x3ce: 0x8119, 0x3cf: 0x811a, 0x3d0: 0x811b, 0x3d1: 0x811c, - 0x3d2: 0x811d, 0x3d3: 0x9932, 0x3d4: 0x9932, 0x3d5: 0x992d, 0x3d6: 0x812d, 0x3d7: 0x8132, - 0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x812d, 0x3dd: 0x8132, - 0x3de: 0x8132, 0x3df: 0x812d, - 0x3f0: 0x811e, 0x3f5: 0x1d84, - 0x3f6: 0x2013, 0x3f7: 0x204f, 0x3f8: 0x204a, - // Block 0x10, offset 0x400 - 0x405: 0xa000, - 0x406: 0x2d26, 0x407: 0xa000, 0x408: 0x2d2e, 0x409: 0xa000, 0x40a: 0x2d36, 0x40b: 0xa000, - 0x40c: 0x2d3e, 0x40d: 0xa000, 0x40e: 0x2d46, 0x411: 0xa000, - 0x412: 0x2d4e, - 0x434: 0x8102, 0x435: 0x9900, - 0x43a: 0xa000, 0x43b: 0x2d56, - 0x43c: 0xa000, 0x43d: 0x2d5e, 0x43e: 0xa000, 0x43f: 0xa000, - // Block 0x11, offset 0x440 - 0x440: 0x0069, 0x441: 0x006b, 0x442: 0x006f, 0x443: 0x0083, 0x444: 0x00f5, 0x445: 0x00f8, - 0x446: 0x0413, 0x447: 0x0085, 0x448: 0x0089, 0x449: 0x008b, 0x44a: 0x0104, 0x44b: 0x0107, - 0x44c: 0x010a, 0x44d: 0x008f, 0x44f: 0x0097, 0x450: 0x009b, 0x451: 0x00e0, - 0x452: 0x009f, 0x453: 0x00fe, 0x454: 0x0417, 0x455: 0x041b, 0x456: 0x00a1, 0x457: 0x00a9, - 0x458: 0x00ab, 0x459: 0x0423, 0x45a: 0x012b, 0x45b: 0x00ad, 0x45c: 0x0427, 0x45d: 0x01be, - 0x45e: 0x01c1, 0x45f: 0x01c4, 0x460: 0x01fa, 0x461: 0x01fd, 0x462: 0x0093, 0x463: 0x00a5, - 0x464: 0x00ab, 0x465: 0x00ad, 0x466: 0x01be, 0x467: 0x01c1, 0x468: 0x01eb, 0x469: 0x01fa, - 0x46a: 0x01fd, - 0x478: 0x020c, - // Block 0x12, offset 0x480 - 0x49b: 0x00fb, 0x49c: 0x0087, 0x49d: 0x0101, - 0x49e: 0x00d4, 0x49f: 0x010a, 0x4a0: 0x008d, 0x4a1: 0x010d, 0x4a2: 0x0110, 0x4a3: 0x0116, - 0x4a4: 0x011c, 0x4a5: 0x011f, 0x4a6: 0x0122, 0x4a7: 0x042b, 0x4a8: 0x016a, 0x4a9: 0x0128, - 0x4aa: 0x042f, 0x4ab: 0x016d, 0x4ac: 0x0131, 0x4ad: 0x012e, 0x4ae: 0x0134, 0x4af: 0x0137, - 0x4b0: 0x013a, 0x4b1: 0x013d, 0x4b2: 0x0140, 0x4b3: 0x014c, 0x4b4: 0x014f, 0x4b5: 0x00ec, - 0x4b6: 0x0152, 0x4b7: 0x0155, 0x4b8: 0x041f, 0x4b9: 0x0158, 0x4ba: 0x015b, 0x4bb: 0x00b5, - 0x4bc: 0x015e, 0x4bd: 0x0161, 0x4be: 0x0164, 0x4bf: 0x01d0, - // Block 0x13, offset 0x4c0 - 0x4c0: 0x2f97, 0x4c1: 0x32a3, 0x4c2: 0x2fa1, 0x4c3: 0x32ad, 0x4c4: 0x2fa6, 0x4c5: 0x32b2, - 0x4c6: 0x2fab, 0x4c7: 0x32b7, 0x4c8: 0x38cc, 0x4c9: 0x3a5b, 0x4ca: 0x2fc4, 0x4cb: 0x32d0, - 0x4cc: 0x2fce, 0x4cd: 0x32da, 0x4ce: 0x2fdd, 0x4cf: 0x32e9, 0x4d0: 0x2fd3, 0x4d1: 0x32df, - 0x4d2: 0x2fd8, 0x4d3: 0x32e4, 0x4d4: 0x38ef, 0x4d5: 0x3a7e, 0x4d6: 0x38f6, 0x4d7: 0x3a85, - 0x4d8: 0x3019, 0x4d9: 0x3325, 0x4da: 0x301e, 0x4db: 0x332a, 0x4dc: 0x3904, 0x4dd: 0x3a93, - 0x4de: 0x3023, 0x4df: 0x332f, 0x4e0: 0x3032, 0x4e1: 0x333e, 0x4e2: 0x3050, 0x4e3: 0x335c, - 0x4e4: 0x305f, 0x4e5: 0x336b, 0x4e6: 0x3055, 0x4e7: 0x3361, 0x4e8: 0x3064, 0x4e9: 0x3370, - 0x4ea: 0x3069, 0x4eb: 0x3375, 0x4ec: 0x30af, 0x4ed: 0x33bb, 0x4ee: 0x390b, 0x4ef: 0x3a9a, - 0x4f0: 0x30b9, 0x4f1: 0x33ca, 0x4f2: 0x30c3, 0x4f3: 0x33d4, 0x4f4: 0x30cd, 0x4f5: 0x33de, - 0x4f6: 0x46c4, 0x4f7: 0x4755, 0x4f8: 0x3912, 0x4f9: 0x3aa1, 0x4fa: 0x30e6, 0x4fb: 0x33f7, - 0x4fc: 0x30e1, 0x4fd: 0x33f2, 0x4fe: 0x30eb, 0x4ff: 0x33fc, - // Block 0x14, offset 0x500 - 0x500: 0x30f0, 0x501: 0x3401, 0x502: 0x30f5, 0x503: 0x3406, 0x504: 0x3109, 0x505: 0x341a, - 0x506: 0x3113, 0x507: 0x3424, 0x508: 0x3122, 0x509: 0x3433, 0x50a: 0x311d, 0x50b: 0x342e, - 0x50c: 0x3935, 0x50d: 0x3ac4, 0x50e: 0x3943, 0x50f: 0x3ad2, 0x510: 0x394a, 0x511: 0x3ad9, - 0x512: 0x3951, 0x513: 0x3ae0, 0x514: 0x314f, 0x515: 0x3460, 0x516: 0x3154, 0x517: 0x3465, - 0x518: 0x315e, 0x519: 0x346f, 0x51a: 0x46f1, 0x51b: 0x4782, 0x51c: 0x3997, 0x51d: 0x3b26, - 0x51e: 0x3177, 0x51f: 0x3488, 0x520: 0x3181, 0x521: 0x3492, 0x522: 0x4700, 0x523: 0x4791, - 0x524: 0x399e, 0x525: 0x3b2d, 0x526: 0x39a5, 0x527: 0x3b34, 0x528: 0x39ac, 0x529: 0x3b3b, - 0x52a: 0x3190, 0x52b: 0x34a1, 0x52c: 0x319a, 0x52d: 0x34b0, 0x52e: 0x31ae, 0x52f: 0x34c4, - 0x530: 0x31a9, 0x531: 0x34bf, 0x532: 0x31ea, 0x533: 0x3500, 0x534: 0x31f9, 0x535: 0x350f, - 0x536: 0x31f4, 0x537: 0x350a, 0x538: 0x39b3, 0x539: 0x3b42, 0x53a: 0x39ba, 0x53b: 0x3b49, - 0x53c: 0x31fe, 0x53d: 0x3514, 0x53e: 0x3203, 0x53f: 0x3519, - // Block 0x15, offset 0x540 - 0x540: 0x3208, 0x541: 0x351e, 0x542: 0x320d, 0x543: 0x3523, 0x544: 0x321c, 0x545: 0x3532, - 0x546: 0x3217, 0x547: 0x352d, 0x548: 0x3221, 0x549: 0x353c, 0x54a: 0x3226, 0x54b: 0x3541, - 0x54c: 0x322b, 0x54d: 0x3546, 0x54e: 0x3249, 0x54f: 0x3564, 0x550: 0x3262, 0x551: 0x3582, - 0x552: 0x3271, 0x553: 0x3591, 0x554: 0x3276, 0x555: 0x3596, 0x556: 0x337a, 0x557: 0x34a6, - 0x558: 0x3537, 0x559: 0x3573, 0x55a: 0x1be0, 0x55b: 0x42d7, - 0x560: 0x46a1, 0x561: 0x4732, 0x562: 0x2f83, 0x563: 0x328f, - 0x564: 0x3878, 0x565: 0x3a07, 0x566: 0x3871, 0x567: 0x3a00, 0x568: 0x3886, 0x569: 0x3a15, - 0x56a: 0x387f, 0x56b: 0x3a0e, 0x56c: 0x38be, 0x56d: 0x3a4d, 0x56e: 0x3894, 0x56f: 0x3a23, - 0x570: 0x388d, 0x571: 0x3a1c, 0x572: 0x38a2, 0x573: 0x3a31, 0x574: 0x389b, 0x575: 0x3a2a, - 0x576: 0x38c5, 0x577: 0x3a54, 0x578: 0x46b5, 0x579: 0x4746, 0x57a: 0x3000, 0x57b: 0x330c, - 0x57c: 0x2fec, 0x57d: 0x32f8, 0x57e: 0x38da, 0x57f: 0x3a69, - // Block 0x16, offset 0x580 - 0x580: 0x38d3, 0x581: 0x3a62, 0x582: 0x38e8, 0x583: 0x3a77, 0x584: 0x38e1, 0x585: 0x3a70, - 0x586: 0x38fd, 0x587: 0x3a8c, 0x588: 0x3091, 0x589: 0x339d, 0x58a: 0x30a5, 0x58b: 0x33b1, - 0x58c: 0x46e7, 0x58d: 0x4778, 0x58e: 0x3136, 0x58f: 0x3447, 0x590: 0x3920, 0x591: 0x3aaf, - 0x592: 0x3919, 0x593: 0x3aa8, 0x594: 0x392e, 0x595: 0x3abd, 0x596: 0x3927, 0x597: 0x3ab6, - 0x598: 0x3989, 0x599: 0x3b18, 0x59a: 0x396d, 0x59b: 0x3afc, 0x59c: 0x3966, 0x59d: 0x3af5, - 0x59e: 0x397b, 0x59f: 0x3b0a, 0x5a0: 0x3974, 0x5a1: 0x3b03, 0x5a2: 0x3982, 0x5a3: 0x3b11, - 0x5a4: 0x31e5, 0x5a5: 0x34fb, 0x5a6: 0x31c7, 0x5a7: 0x34dd, 0x5a8: 0x39e4, 0x5a9: 0x3b73, - 0x5aa: 0x39dd, 0x5ab: 0x3b6c, 0x5ac: 0x39f2, 0x5ad: 0x3b81, 0x5ae: 0x39eb, 0x5af: 0x3b7a, - 0x5b0: 0x39f9, 0x5b1: 0x3b88, 0x5b2: 0x3230, 0x5b3: 0x354b, 0x5b4: 0x3258, 0x5b5: 0x3578, - 0x5b6: 0x3253, 0x5b7: 0x356e, 0x5b8: 0x323f, 0x5b9: 0x355a, - // Block 0x17, offset 0x5c0 - 0x5c0: 0x4804, 0x5c1: 0x480a, 0x5c2: 0x491e, 0x5c3: 0x4936, 0x5c4: 0x4926, 0x5c5: 0x493e, - 0x5c6: 0x492e, 0x5c7: 0x4946, 0x5c8: 0x47aa, 0x5c9: 0x47b0, 0x5ca: 0x488e, 0x5cb: 0x48a6, - 0x5cc: 0x4896, 0x5cd: 0x48ae, 0x5ce: 0x489e, 0x5cf: 0x48b6, 0x5d0: 0x4816, 0x5d1: 0x481c, - 0x5d2: 0x3db8, 0x5d3: 0x3dc8, 0x5d4: 0x3dc0, 0x5d5: 0x3dd0, - 0x5d8: 0x47b6, 0x5d9: 0x47bc, 0x5da: 0x3ce8, 0x5db: 0x3cf8, 0x5dc: 0x3cf0, 0x5dd: 0x3d00, - 0x5e0: 0x482e, 0x5e1: 0x4834, 0x5e2: 0x494e, 0x5e3: 0x4966, - 0x5e4: 0x4956, 0x5e5: 0x496e, 0x5e6: 0x495e, 0x5e7: 0x4976, 0x5e8: 0x47c2, 0x5e9: 0x47c8, - 0x5ea: 0x48be, 0x5eb: 0x48d6, 0x5ec: 0x48c6, 0x5ed: 0x48de, 0x5ee: 0x48ce, 0x5ef: 0x48e6, - 0x5f0: 0x4846, 0x5f1: 0x484c, 0x5f2: 0x3e18, 0x5f3: 0x3e30, 0x5f4: 0x3e20, 0x5f5: 0x3e38, - 0x5f6: 0x3e28, 0x5f7: 0x3e40, 0x5f8: 0x47ce, 0x5f9: 0x47d4, 0x5fa: 0x3d18, 0x5fb: 0x3d30, - 0x5fc: 0x3d20, 0x5fd: 0x3d38, 0x5fe: 0x3d28, 0x5ff: 0x3d40, - // Block 0x18, offset 0x600 - 0x600: 0x4852, 0x601: 0x4858, 0x602: 0x3e48, 0x603: 0x3e58, 0x604: 0x3e50, 0x605: 0x3e60, - 0x608: 0x47da, 0x609: 0x47e0, 0x60a: 0x3d48, 0x60b: 0x3d58, - 0x60c: 0x3d50, 0x60d: 0x3d60, 0x610: 0x4864, 0x611: 0x486a, - 0x612: 0x3e80, 0x613: 0x3e98, 0x614: 0x3e88, 0x615: 0x3ea0, 0x616: 0x3e90, 0x617: 0x3ea8, - 0x619: 0x47e6, 0x61b: 0x3d68, 0x61d: 0x3d70, - 0x61f: 0x3d78, 0x620: 0x487c, 0x621: 0x4882, 0x622: 0x497e, 0x623: 0x4996, - 0x624: 0x4986, 0x625: 0x499e, 0x626: 0x498e, 0x627: 0x49a6, 0x628: 0x47ec, 0x629: 0x47f2, - 0x62a: 0x48ee, 0x62b: 0x4906, 0x62c: 0x48f6, 0x62d: 0x490e, 0x62e: 0x48fe, 0x62f: 0x4916, - 0x630: 0x47f8, 0x631: 0x431e, 0x632: 0x3691, 0x633: 0x4324, 0x634: 0x4822, 0x635: 0x432a, - 0x636: 0x36a3, 0x637: 0x4330, 0x638: 0x36c1, 0x639: 0x4336, 0x63a: 0x36d9, 0x63b: 0x433c, - 0x63c: 0x4870, 0x63d: 0x4342, - // Block 0x19, offset 0x640 - 0x640: 0x3da0, 0x641: 0x3da8, 0x642: 0x4184, 0x643: 0x41a2, 0x644: 0x418e, 0x645: 0x41ac, - 0x646: 0x4198, 0x647: 0x41b6, 0x648: 0x3cd8, 0x649: 0x3ce0, 0x64a: 0x40d0, 0x64b: 0x40ee, - 0x64c: 0x40da, 0x64d: 0x40f8, 0x64e: 0x40e4, 0x64f: 0x4102, 0x650: 0x3de8, 0x651: 0x3df0, - 0x652: 0x41c0, 0x653: 0x41de, 0x654: 0x41ca, 0x655: 0x41e8, 0x656: 0x41d4, 0x657: 0x41f2, - 0x658: 0x3d08, 0x659: 0x3d10, 0x65a: 0x410c, 0x65b: 0x412a, 0x65c: 0x4116, 0x65d: 0x4134, - 0x65e: 0x4120, 0x65f: 0x413e, 0x660: 0x3ec0, 0x661: 0x3ec8, 0x662: 0x41fc, 0x663: 0x421a, - 0x664: 0x4206, 0x665: 0x4224, 0x666: 0x4210, 0x667: 0x422e, 0x668: 0x3d80, 0x669: 0x3d88, - 0x66a: 0x4148, 0x66b: 0x4166, 0x66c: 0x4152, 0x66d: 0x4170, 0x66e: 0x415c, 0x66f: 0x417a, - 0x670: 0x3685, 0x671: 0x367f, 0x672: 0x3d90, 0x673: 0x368b, 0x674: 0x3d98, - 0x676: 0x4810, 0x677: 0x3db0, 0x678: 0x35f5, 0x679: 0x35ef, 0x67a: 0x35e3, 0x67b: 0x42ee, - 0x67c: 0x35fb, 0x67d: 0x4287, 0x67e: 0x01d3, 0x67f: 0x4287, - // Block 0x1a, offset 0x680 - 0x680: 0x42a0, 0x681: 0x4482, 0x682: 0x3dd8, 0x683: 0x369d, 0x684: 0x3de0, - 0x686: 0x483a, 0x687: 0x3df8, 0x688: 0x3601, 0x689: 0x42f4, 0x68a: 0x360d, 0x68b: 0x42fa, - 0x68c: 0x3619, 0x68d: 0x4489, 0x68e: 0x4490, 0x68f: 0x4497, 0x690: 0x36b5, 0x691: 0x36af, - 0x692: 0x3e00, 0x693: 0x44e4, 0x696: 0x36bb, 0x697: 0x3e10, - 0x698: 0x3631, 0x699: 0x362b, 0x69a: 0x361f, 0x69b: 0x4300, 0x69d: 0x449e, - 0x69e: 0x44a5, 0x69f: 0x44ac, 0x6a0: 0x36eb, 0x6a1: 0x36e5, 0x6a2: 0x3e68, 0x6a3: 0x44ec, - 0x6a4: 0x36cd, 0x6a5: 0x36d3, 0x6a6: 0x36f1, 0x6a7: 0x3e78, 0x6a8: 0x3661, 0x6a9: 0x365b, - 0x6aa: 0x364f, 0x6ab: 0x430c, 0x6ac: 0x3649, 0x6ad: 0x4474, 0x6ae: 0x447b, 0x6af: 0x0081, - 0x6b2: 0x3eb0, 0x6b3: 0x36f7, 0x6b4: 0x3eb8, - 0x6b6: 0x4888, 0x6b7: 0x3ed0, 0x6b8: 0x363d, 0x6b9: 0x4306, 0x6ba: 0x366d, 0x6bb: 0x4318, - 0x6bc: 0x3679, 0x6bd: 0x425a, 0x6be: 0x428c, - // Block 0x1b, offset 0x6c0 - 0x6c0: 0x1bd8, 0x6c1: 0x1bdc, 0x6c2: 0x0047, 0x6c3: 0x1c54, 0x6c5: 0x1be8, - 0x6c6: 0x1bec, 0x6c7: 0x00e9, 0x6c9: 0x1c58, 0x6ca: 0x008f, 0x6cb: 0x0051, - 0x6cc: 0x0051, 0x6cd: 0x0051, 0x6ce: 0x0091, 0x6cf: 0x00da, 0x6d0: 0x0053, 0x6d1: 0x0053, - 0x6d2: 0x0059, 0x6d3: 0x0099, 0x6d5: 0x005d, 0x6d6: 0x198d, - 0x6d9: 0x0061, 0x6da: 0x0063, 0x6db: 0x0065, 0x6dc: 0x0065, 0x6dd: 0x0065, - 0x6e0: 0x199f, 0x6e1: 0x1bc8, 0x6e2: 0x19a8, - 0x6e4: 0x0075, 0x6e6: 0x01b8, 0x6e8: 0x0075, - 0x6ea: 0x0057, 0x6eb: 0x42d2, 0x6ec: 0x0045, 0x6ed: 0x0047, 0x6ef: 0x008b, - 0x6f0: 0x004b, 0x6f1: 0x004d, 0x6f3: 0x005b, 0x6f4: 0x009f, 0x6f5: 0x0215, - 0x6f6: 0x0218, 0x6f7: 0x021b, 0x6f8: 0x021e, 0x6f9: 0x0093, 0x6fb: 0x1b98, - 0x6fc: 0x01e8, 0x6fd: 0x01c1, 0x6fe: 0x0179, 0x6ff: 0x01a0, - // Block 0x1c, offset 0x700 - 0x700: 0x0463, 0x705: 0x0049, - 0x706: 0x0089, 0x707: 0x008b, 0x708: 0x0093, 0x709: 0x0095, - 0x710: 0x222e, 0x711: 0x223a, - 0x712: 0x22ee, 0x713: 0x2216, 0x714: 0x229a, 0x715: 0x2222, 0x716: 0x22a0, 0x717: 0x22b8, - 0x718: 0x22c4, 0x719: 0x2228, 0x71a: 0x22ca, 0x71b: 0x2234, 0x71c: 0x22be, 0x71d: 0x22d0, - 0x71e: 0x22d6, 0x71f: 0x1cbc, 0x720: 0x0053, 0x721: 0x195a, 0x722: 0x1ba4, 0x723: 0x1963, - 0x724: 0x006d, 0x725: 0x19ab, 0x726: 0x1bd0, 0x727: 0x1d48, 0x728: 0x1966, 0x729: 0x0071, - 0x72a: 0x19b7, 0x72b: 0x1bd4, 0x72c: 0x0059, 0x72d: 0x0047, 0x72e: 0x0049, 0x72f: 0x005b, - 0x730: 0x0093, 0x731: 0x19e4, 0x732: 0x1c18, 0x733: 0x19ed, 0x734: 0x00ad, 0x735: 0x1a62, - 0x736: 0x1c4c, 0x737: 0x1d5c, 0x738: 0x19f0, 0x739: 0x00b1, 0x73a: 0x1a65, 0x73b: 0x1c50, - 0x73c: 0x0099, 0x73d: 0x0087, 0x73e: 0x0089, 0x73f: 0x009b, - // Block 0x1d, offset 0x740 - 0x741: 0x3c06, 0x743: 0xa000, 0x744: 0x3c0d, 0x745: 0xa000, - 0x747: 0x3c14, 0x748: 0xa000, 0x749: 0x3c1b, - 0x74d: 0xa000, - 0x760: 0x2f65, 0x761: 0xa000, 0x762: 0x3c29, - 0x764: 0xa000, 0x765: 0xa000, - 0x76d: 0x3c22, 0x76e: 0x2f60, 0x76f: 0x2f6a, - 0x770: 0x3c30, 0x771: 0x3c37, 0x772: 0xa000, 0x773: 0xa000, 0x774: 0x3c3e, 0x775: 0x3c45, - 0x776: 0xa000, 0x777: 0xa000, 0x778: 0x3c4c, 0x779: 0x3c53, 0x77a: 0xa000, 0x77b: 0xa000, - 0x77c: 0xa000, 0x77d: 0xa000, - // Block 0x1e, offset 0x780 - 0x780: 0x3c5a, 0x781: 0x3c61, 0x782: 0xa000, 0x783: 0xa000, 0x784: 0x3c76, 0x785: 0x3c7d, - 0x786: 0xa000, 0x787: 0xa000, 0x788: 0x3c84, 0x789: 0x3c8b, - 0x791: 0xa000, - 0x792: 0xa000, - 0x7a2: 0xa000, - 0x7a8: 0xa000, 0x7a9: 0xa000, - 0x7ab: 0xa000, 0x7ac: 0x3ca0, 0x7ad: 0x3ca7, 0x7ae: 0x3cae, 0x7af: 0x3cb5, - 0x7b2: 0xa000, 0x7b3: 0xa000, 0x7b4: 0xa000, 0x7b5: 0xa000, - // Block 0x1f, offset 0x7c0 - 0x7e0: 0x0023, 0x7e1: 0x0025, 0x7e2: 0x0027, 0x7e3: 0x0029, - 0x7e4: 0x002b, 0x7e5: 0x002d, 0x7e6: 0x002f, 0x7e7: 0x0031, 0x7e8: 0x0033, 0x7e9: 0x1882, - 0x7ea: 0x1885, 0x7eb: 0x1888, 0x7ec: 0x188b, 0x7ed: 0x188e, 0x7ee: 0x1891, 0x7ef: 0x1894, - 0x7f0: 0x1897, 0x7f1: 0x189a, 0x7f2: 0x189d, 0x7f3: 0x18a6, 0x7f4: 0x1a68, 0x7f5: 0x1a6c, - 0x7f6: 0x1a70, 0x7f7: 0x1a74, 0x7f8: 0x1a78, 0x7f9: 0x1a7c, 0x7fa: 0x1a80, 0x7fb: 0x1a84, - 0x7fc: 0x1a88, 0x7fd: 0x1c80, 0x7fe: 0x1c85, 0x7ff: 0x1c8a, - // Block 0x20, offset 0x800 - 0x800: 0x1c8f, 0x801: 0x1c94, 0x802: 0x1c99, 0x803: 0x1c9e, 0x804: 0x1ca3, 0x805: 0x1ca8, - 0x806: 0x1cad, 0x807: 0x1cb2, 0x808: 0x187f, 0x809: 0x18a3, 0x80a: 0x18c7, 0x80b: 0x18eb, - 0x80c: 0x190f, 0x80d: 0x1918, 0x80e: 0x191e, 0x80f: 0x1924, 0x810: 0x192a, 0x811: 0x1b60, - 0x812: 0x1b64, 0x813: 0x1b68, 0x814: 0x1b6c, 0x815: 0x1b70, 0x816: 0x1b74, 0x817: 0x1b78, - 0x818: 0x1b7c, 0x819: 0x1b80, 0x81a: 0x1b84, 0x81b: 0x1b88, 0x81c: 0x1af4, 0x81d: 0x1af8, - 0x81e: 0x1afc, 0x81f: 0x1b00, 0x820: 0x1b04, 0x821: 0x1b08, 0x822: 0x1b0c, 0x823: 0x1b10, - 0x824: 0x1b14, 0x825: 0x1b18, 0x826: 0x1b1c, 0x827: 0x1b20, 0x828: 0x1b24, 0x829: 0x1b28, - 0x82a: 0x1b2c, 0x82b: 0x1b30, 0x82c: 0x1b34, 0x82d: 0x1b38, 0x82e: 0x1b3c, 0x82f: 0x1b40, - 0x830: 0x1b44, 0x831: 0x1b48, 0x832: 0x1b4c, 0x833: 0x1b50, 0x834: 0x1b54, 0x835: 0x1b58, - 0x836: 0x0043, 0x837: 0x0045, 0x838: 0x0047, 0x839: 0x0049, 0x83a: 0x004b, 0x83b: 0x004d, - 0x83c: 0x004f, 0x83d: 0x0051, 0x83e: 0x0053, 0x83f: 0x0055, - // Block 0x21, offset 0x840 - 0x840: 0x06bf, 0x841: 0x06e3, 0x842: 0x06ef, 0x843: 0x06ff, 0x844: 0x0707, 0x845: 0x0713, - 0x846: 0x071b, 0x847: 0x0723, 0x848: 0x072f, 0x849: 0x0783, 0x84a: 0x079b, 0x84b: 0x07ab, - 0x84c: 0x07bb, 0x84d: 0x07cb, 0x84e: 0x07db, 0x84f: 0x07fb, 0x850: 0x07ff, 0x851: 0x0803, - 0x852: 0x0837, 0x853: 0x085f, 0x854: 0x086f, 0x855: 0x0877, 0x856: 0x087b, 0x857: 0x0887, - 0x858: 0x08a3, 0x859: 0x08a7, 0x85a: 0x08bf, 0x85b: 0x08c3, 0x85c: 0x08cb, 0x85d: 0x08db, - 0x85e: 0x0977, 0x85f: 0x098b, 0x860: 0x09cb, 0x861: 0x09df, 0x862: 0x09e7, 0x863: 0x09eb, - 0x864: 0x09fb, 0x865: 0x0a17, 0x866: 0x0a43, 0x867: 0x0a4f, 0x868: 0x0a6f, 0x869: 0x0a7b, - 0x86a: 0x0a7f, 0x86b: 0x0a83, 0x86c: 0x0a9b, 0x86d: 0x0a9f, 0x86e: 0x0acb, 0x86f: 0x0ad7, - 0x870: 0x0adf, 0x871: 0x0ae7, 0x872: 0x0af7, 0x873: 0x0aff, 0x874: 0x0b07, 0x875: 0x0b33, - 0x876: 0x0b37, 0x877: 0x0b3f, 0x878: 0x0b43, 0x879: 0x0b4b, 0x87a: 0x0b53, 0x87b: 0x0b63, - 0x87c: 0x0b7f, 0x87d: 0x0bf7, 0x87e: 0x0c0b, 0x87f: 0x0c0f, - // Block 0x22, offset 0x880 - 0x880: 0x0c8f, 0x881: 0x0c93, 0x882: 0x0ca7, 0x883: 0x0cab, 0x884: 0x0cb3, 0x885: 0x0cbb, - 0x886: 0x0cc3, 0x887: 0x0ccf, 0x888: 0x0cf7, 0x889: 0x0d07, 0x88a: 0x0d1b, 0x88b: 0x0d8b, - 0x88c: 0x0d97, 0x88d: 0x0da7, 0x88e: 0x0db3, 0x88f: 0x0dbf, 0x890: 0x0dc7, 0x891: 0x0dcb, - 0x892: 0x0dcf, 0x893: 0x0dd3, 0x894: 0x0dd7, 0x895: 0x0e8f, 0x896: 0x0ed7, 0x897: 0x0ee3, - 0x898: 0x0ee7, 0x899: 0x0eeb, 0x89a: 0x0eef, 0x89b: 0x0ef7, 0x89c: 0x0efb, 0x89d: 0x0f0f, - 0x89e: 0x0f2b, 0x89f: 0x0f33, 0x8a0: 0x0f73, 0x8a1: 0x0f77, 0x8a2: 0x0f7f, 0x8a3: 0x0f83, - 0x8a4: 0x0f8b, 0x8a5: 0x0f8f, 0x8a6: 0x0fb3, 0x8a7: 0x0fb7, 0x8a8: 0x0fd3, 0x8a9: 0x0fd7, - 0x8aa: 0x0fdb, 0x8ab: 0x0fdf, 0x8ac: 0x0ff3, 0x8ad: 0x1017, 0x8ae: 0x101b, 0x8af: 0x101f, - 0x8b0: 0x1043, 0x8b1: 0x1083, 0x8b2: 0x1087, 0x8b3: 0x10a7, 0x8b4: 0x10b7, 0x8b5: 0x10bf, - 0x8b6: 0x10df, 0x8b7: 0x1103, 0x8b8: 0x1147, 0x8b9: 0x114f, 0x8ba: 0x1163, 0x8bb: 0x116f, - 0x8bc: 0x1177, 0x8bd: 0x117f, 0x8be: 0x1183, 0x8bf: 0x1187, - // Block 0x23, offset 0x8c0 - 0x8c0: 0x119f, 0x8c1: 0x11a3, 0x8c2: 0x11bf, 0x8c3: 0x11c7, 0x8c4: 0x11cf, 0x8c5: 0x11d3, - 0x8c6: 0x11df, 0x8c7: 0x11e7, 0x8c8: 0x11eb, 0x8c9: 0x11ef, 0x8ca: 0x11f7, 0x8cb: 0x11fb, - 0x8cc: 0x129b, 0x8cd: 0x12af, 0x8ce: 0x12e3, 0x8cf: 0x12e7, 0x8d0: 0x12ef, 0x8d1: 0x131b, - 0x8d2: 0x1323, 0x8d3: 0x132b, 0x8d4: 0x1333, 0x8d5: 0x136f, 0x8d6: 0x1373, 0x8d7: 0x137b, - 0x8d8: 0x137f, 0x8d9: 0x1383, 0x8da: 0x13af, 0x8db: 0x13b3, 0x8dc: 0x13bb, 0x8dd: 0x13cf, - 0x8de: 0x13d3, 0x8df: 0x13ef, 0x8e0: 0x13f7, 0x8e1: 0x13fb, 0x8e2: 0x141f, 0x8e3: 0x143f, - 0x8e4: 0x1453, 0x8e5: 0x1457, 0x8e6: 0x145f, 0x8e7: 0x148b, 0x8e8: 0x148f, 0x8e9: 0x149f, - 0x8ea: 0x14c3, 0x8eb: 0x14cf, 0x8ec: 0x14df, 0x8ed: 0x14f7, 0x8ee: 0x14ff, 0x8ef: 0x1503, - 0x8f0: 0x1507, 0x8f1: 0x150b, 0x8f2: 0x1517, 0x8f3: 0x151b, 0x8f4: 0x1523, 0x8f5: 0x153f, - 0x8f6: 0x1543, 0x8f7: 0x1547, 0x8f8: 0x155f, 0x8f9: 0x1563, 0x8fa: 0x156b, 0x8fb: 0x157f, - 0x8fc: 0x1583, 0x8fd: 0x1587, 0x8fe: 0x158f, 0x8ff: 0x1593, - // Block 0x24, offset 0x900 - 0x906: 0xa000, 0x90b: 0xa000, - 0x90c: 0x3f08, 0x90d: 0xa000, 0x90e: 0x3f10, 0x90f: 0xa000, 0x910: 0x3f18, 0x911: 0xa000, - 0x912: 0x3f20, 0x913: 0xa000, 0x914: 0x3f28, 0x915: 0xa000, 0x916: 0x3f30, 0x917: 0xa000, - 0x918: 0x3f38, 0x919: 0xa000, 0x91a: 0x3f40, 0x91b: 0xa000, 0x91c: 0x3f48, 0x91d: 0xa000, - 0x91e: 0x3f50, 0x91f: 0xa000, 0x920: 0x3f58, 0x921: 0xa000, 0x922: 0x3f60, - 0x924: 0xa000, 0x925: 0x3f68, 0x926: 0xa000, 0x927: 0x3f70, 0x928: 0xa000, 0x929: 0x3f78, - 0x92f: 0xa000, - 0x930: 0x3f80, 0x931: 0x3f88, 0x932: 0xa000, 0x933: 0x3f90, 0x934: 0x3f98, 0x935: 0xa000, - 0x936: 0x3fa0, 0x937: 0x3fa8, 0x938: 0xa000, 0x939: 0x3fb0, 0x93a: 0x3fb8, 0x93b: 0xa000, - 0x93c: 0x3fc0, 0x93d: 0x3fc8, - // Block 0x25, offset 0x940 - 0x954: 0x3f00, - 0x959: 0x9903, 0x95a: 0x9903, 0x95b: 0x42dc, 0x95c: 0x42e2, 0x95d: 0xa000, - 0x95e: 0x3fd0, 0x95f: 0x26b4, - 0x966: 0xa000, - 0x96b: 0xa000, 0x96c: 0x3fe0, 0x96d: 0xa000, 0x96e: 0x3fe8, 0x96f: 0xa000, - 0x970: 0x3ff0, 0x971: 0xa000, 0x972: 0x3ff8, 0x973: 0xa000, 0x974: 0x4000, 0x975: 0xa000, - 0x976: 0x4008, 0x977: 0xa000, 0x978: 0x4010, 0x979: 0xa000, 0x97a: 0x4018, 0x97b: 0xa000, - 0x97c: 0x4020, 0x97d: 0xa000, 0x97e: 0x4028, 0x97f: 0xa000, - // Block 0x26, offset 0x980 - 0x980: 0x4030, 0x981: 0xa000, 0x982: 0x4038, 0x984: 0xa000, 0x985: 0x4040, - 0x986: 0xa000, 0x987: 0x4048, 0x988: 0xa000, 0x989: 0x4050, - 0x98f: 0xa000, 0x990: 0x4058, 0x991: 0x4060, - 0x992: 0xa000, 0x993: 0x4068, 0x994: 0x4070, 0x995: 0xa000, 0x996: 0x4078, 0x997: 0x4080, - 0x998: 0xa000, 0x999: 0x4088, 0x99a: 0x4090, 0x99b: 0xa000, 0x99c: 0x4098, 0x99d: 0x40a0, - 0x9af: 0xa000, - 0x9b0: 0xa000, 0x9b1: 0xa000, 0x9b2: 0xa000, 0x9b4: 0x3fd8, - 0x9b7: 0x40a8, 0x9b8: 0x40b0, 0x9b9: 0x40b8, 0x9ba: 0x40c0, - 0x9bd: 0xa000, 0x9be: 0x40c8, 0x9bf: 0x26c9, - // Block 0x27, offset 0x9c0 - 0x9c0: 0x0367, 0x9c1: 0x032b, 0x9c2: 0x032f, 0x9c3: 0x0333, 0x9c4: 0x037b, 0x9c5: 0x0337, - 0x9c6: 0x033b, 0x9c7: 0x033f, 0x9c8: 0x0343, 0x9c9: 0x0347, 0x9ca: 0x034b, 0x9cb: 0x034f, - 0x9cc: 0x0353, 0x9cd: 0x0357, 0x9ce: 0x035b, 0x9cf: 0x49bd, 0x9d0: 0x49c3, 0x9d1: 0x49c9, - 0x9d2: 0x49cf, 0x9d3: 0x49d5, 0x9d4: 0x49db, 0x9d5: 0x49e1, 0x9d6: 0x49e7, 0x9d7: 0x49ed, - 0x9d8: 0x49f3, 0x9d9: 0x49f9, 0x9da: 0x49ff, 0x9db: 0x4a05, 0x9dc: 0x4a0b, 0x9dd: 0x4a11, - 0x9de: 0x4a17, 0x9df: 0x4a1d, 0x9e0: 0x4a23, 0x9e1: 0x4a29, 0x9e2: 0x4a2f, 0x9e3: 0x4a35, - 0x9e4: 0x03c3, 0x9e5: 0x035f, 0x9e6: 0x0363, 0x9e7: 0x03e7, 0x9e8: 0x03eb, 0x9e9: 0x03ef, - 0x9ea: 0x03f3, 0x9eb: 0x03f7, 0x9ec: 0x03fb, 0x9ed: 0x03ff, 0x9ee: 0x036b, 0x9ef: 0x0403, - 0x9f0: 0x0407, 0x9f1: 0x036f, 0x9f2: 0x0373, 0x9f3: 0x0377, 0x9f4: 0x037f, 0x9f5: 0x0383, - 0x9f6: 0x0387, 0x9f7: 0x038b, 0x9f8: 0x038f, 0x9f9: 0x0393, 0x9fa: 0x0397, 0x9fb: 0x039b, - 0x9fc: 0x039f, 0x9fd: 0x03a3, 0x9fe: 0x03a7, 0x9ff: 0x03ab, - // Block 0x28, offset 0xa00 - 0xa00: 0x03af, 0xa01: 0x03b3, 0xa02: 0x040b, 0xa03: 0x040f, 0xa04: 0x03b7, 0xa05: 0x03bb, - 0xa06: 0x03bf, 0xa07: 0x03c7, 0xa08: 0x03cb, 0xa09: 0x03cf, 0xa0a: 0x03d3, 0xa0b: 0x03d7, - 0xa0c: 0x03db, 0xa0d: 0x03df, 0xa0e: 0x03e3, - 0xa12: 0x06bf, 0xa13: 0x071b, 0xa14: 0x06cb, 0xa15: 0x097b, 0xa16: 0x06cf, 0xa17: 0x06e7, - 0xa18: 0x06d3, 0xa19: 0x0f93, 0xa1a: 0x0707, 0xa1b: 0x06db, 0xa1c: 0x06c3, 0xa1d: 0x09ff, - 0xa1e: 0x098f, 0xa1f: 0x072f, - // Block 0x29, offset 0xa40 - 0xa40: 0x2054, 0xa41: 0x205a, 0xa42: 0x2060, 0xa43: 0x2066, 0xa44: 0x206c, 0xa45: 0x2072, - 0xa46: 0x2078, 0xa47: 0x207e, 0xa48: 0x2084, 0xa49: 0x208a, 0xa4a: 0x2090, 0xa4b: 0x2096, - 0xa4c: 0x209c, 0xa4d: 0x20a2, 0xa4e: 0x2726, 0xa4f: 0x272f, 0xa50: 0x2738, 0xa51: 0x2741, - 0xa52: 0x274a, 0xa53: 0x2753, 0xa54: 0x275c, 0xa55: 0x2765, 0xa56: 0x276e, 0xa57: 0x2780, - 0xa58: 0x2789, 0xa59: 0x2792, 0xa5a: 0x279b, 0xa5b: 0x27a4, 0xa5c: 0x2777, 0xa5d: 0x2bac, - 0xa5e: 0x2aed, 0xa60: 0x20a8, 0xa61: 0x20c0, 0xa62: 0x20b4, 0xa63: 0x2108, - 0xa64: 0x20c6, 0xa65: 0x20e4, 0xa66: 0x20ae, 0xa67: 0x20de, 0xa68: 0x20ba, 0xa69: 0x20f0, - 0xa6a: 0x2120, 0xa6b: 0x213e, 0xa6c: 0x2138, 0xa6d: 0x212c, 0xa6e: 0x217a, 0xa6f: 0x210e, - 0xa70: 0x211a, 0xa71: 0x2132, 0xa72: 0x2126, 0xa73: 0x2150, 0xa74: 0x20fc, 0xa75: 0x2144, - 0xa76: 0x216e, 0xa77: 0x2156, 0xa78: 0x20ea, 0xa79: 0x20cc, 0xa7a: 0x2102, 0xa7b: 0x2114, - 0xa7c: 0x214a, 0xa7d: 0x20d2, 0xa7e: 0x2174, 0xa7f: 0x20f6, - // Block 0x2a, offset 0xa80 - 0xa80: 0x215c, 0xa81: 0x20d8, 0xa82: 0x2162, 0xa83: 0x2168, 0xa84: 0x092f, 0xa85: 0x0b03, - 0xa86: 0x0ca7, 0xa87: 0x10c7, - 0xa90: 0x1bc4, 0xa91: 0x18a9, - 0xa92: 0x18ac, 0xa93: 0x18af, 0xa94: 0x18b2, 0xa95: 0x18b5, 0xa96: 0x18b8, 0xa97: 0x18bb, - 0xa98: 0x18be, 0xa99: 0x18c1, 0xa9a: 0x18ca, 0xa9b: 0x18cd, 0xa9c: 0x18d0, 0xa9d: 0x18d3, - 0xa9e: 0x18d6, 0xa9f: 0x18d9, 0xaa0: 0x0313, 0xaa1: 0x031b, 0xaa2: 0x031f, 0xaa3: 0x0327, - 0xaa4: 0x032b, 0xaa5: 0x032f, 0xaa6: 0x0337, 0xaa7: 0x033f, 0xaa8: 0x0343, 0xaa9: 0x034b, - 0xaaa: 0x034f, 0xaab: 0x0353, 0xaac: 0x0357, 0xaad: 0x035b, 0xaae: 0x2e18, 0xaaf: 0x2e20, - 0xab0: 0x2e28, 0xab1: 0x2e30, 0xab2: 0x2e38, 0xab3: 0x2e40, 0xab4: 0x2e48, 0xab5: 0x2e50, - 0xab6: 0x2e60, 0xab7: 0x2e68, 0xab8: 0x2e70, 0xab9: 0x2e78, 0xaba: 0x2e80, 0xabb: 0x2e88, - 0xabc: 0x2ed3, 0xabd: 0x2e9b, 0xabe: 0x2e58, - // Block 0x2b, offset 0xac0 - 0xac0: 0x06bf, 0xac1: 0x071b, 0xac2: 0x06cb, 0xac3: 0x097b, 0xac4: 0x071f, 0xac5: 0x07af, - 0xac6: 0x06c7, 0xac7: 0x07ab, 0xac8: 0x070b, 0xac9: 0x0887, 0xaca: 0x0d07, 0xacb: 0x0e8f, - 0xacc: 0x0dd7, 0xacd: 0x0d1b, 0xace: 0x145f, 0xacf: 0x098b, 0xad0: 0x0ccf, 0xad1: 0x0d4b, - 0xad2: 0x0d0b, 0xad3: 0x104b, 0xad4: 0x08fb, 0xad5: 0x0f03, 0xad6: 0x1387, 0xad7: 0x105f, - 0xad8: 0x0843, 0xad9: 0x108f, 0xada: 0x0f9b, 0xadb: 0x0a17, 0xadc: 0x140f, 0xadd: 0x077f, - 0xade: 0x08ab, 0xadf: 0x0df7, 0xae0: 0x1527, 0xae1: 0x0743, 0xae2: 0x07d3, 0xae3: 0x0d9b, - 0xae4: 0x06cf, 0xae5: 0x06e7, 0xae6: 0x06d3, 0xae7: 0x0adb, 0xae8: 0x08ef, 0xae9: 0x087f, - 0xaea: 0x0a57, 0xaeb: 0x0a4b, 0xaec: 0x0feb, 0xaed: 0x073f, 0xaee: 0x139b, 0xaef: 0x089b, - 0xaf0: 0x09f3, 0xaf1: 0x18dc, 0xaf2: 0x18df, 0xaf3: 0x18e2, 0xaf4: 0x18e5, 0xaf5: 0x18ee, - 0xaf6: 0x18f1, 0xaf7: 0x18f4, 0xaf8: 0x18f7, 0xaf9: 0x18fa, 0xafa: 0x18fd, 0xafb: 0x1900, - 0xafc: 0x1903, 0xafd: 0x1906, 0xafe: 0x1909, 0xaff: 0x1912, - // Block 0x2c, offset 0xb00 - 0xb00: 0x1cc6, 0xb01: 0x1cd5, 0xb02: 0x1ce4, 0xb03: 0x1cf3, 0xb04: 0x1d02, 0xb05: 0x1d11, - 0xb06: 0x1d20, 0xb07: 0x1d2f, 0xb08: 0x1d3e, 0xb09: 0x218c, 0xb0a: 0x219e, 0xb0b: 0x21b0, - 0xb0c: 0x1954, 0xb0d: 0x1c04, 0xb0e: 0x19d2, 0xb0f: 0x1ba8, 0xb10: 0x04cb, 0xb11: 0x04d3, - 0xb12: 0x04db, 0xb13: 0x04e3, 0xb14: 0x04eb, 0xb15: 0x04ef, 0xb16: 0x04f3, 0xb17: 0x04f7, - 0xb18: 0x04fb, 0xb19: 0x04ff, 0xb1a: 0x0503, 0xb1b: 0x0507, 0xb1c: 0x050b, 0xb1d: 0x050f, - 0xb1e: 0x0513, 0xb1f: 0x0517, 0xb20: 0x051b, 0xb21: 0x0523, 0xb22: 0x0527, 0xb23: 0x052b, - 0xb24: 0x052f, 0xb25: 0x0533, 0xb26: 0x0537, 0xb27: 0x053b, 0xb28: 0x053f, 0xb29: 0x0543, - 0xb2a: 0x0547, 0xb2b: 0x054b, 0xb2c: 0x054f, 0xb2d: 0x0553, 0xb2e: 0x0557, 0xb2f: 0x055b, - 0xb30: 0x055f, 0xb31: 0x0563, 0xb32: 0x0567, 0xb33: 0x056f, 0xb34: 0x0577, 0xb35: 0x057f, - 0xb36: 0x0583, 0xb37: 0x0587, 0xb38: 0x058b, 0xb39: 0x058f, 0xb3a: 0x0593, 0xb3b: 0x0597, - 0xb3c: 0x059b, 0xb3d: 0x059f, 0xb3e: 0x05a3, - // Block 0x2d, offset 0xb40 - 0xb40: 0x2b0c, 0xb41: 0x29a8, 0xb42: 0x2b1c, 0xb43: 0x2880, 0xb44: 0x2ee4, 0xb45: 0x288a, - 0xb46: 0x2894, 0xb47: 0x2f28, 0xb48: 0x29b5, 0xb49: 0x289e, 0xb4a: 0x28a8, 0xb4b: 0x28b2, - 0xb4c: 0x29dc, 0xb4d: 0x29e9, 0xb4e: 0x29c2, 0xb4f: 0x29cf, 0xb50: 0x2ea9, 0xb51: 0x29f6, - 0xb52: 0x2a03, 0xb53: 0x2bbe, 0xb54: 0x26bb, 0xb55: 0x2bd1, 0xb56: 0x2be4, 0xb57: 0x2b2c, - 0xb58: 0x2a10, 0xb59: 0x2bf7, 0xb5a: 0x2c0a, 0xb5b: 0x2a1d, 0xb5c: 0x28bc, 0xb5d: 0x28c6, - 0xb5e: 0x2eb7, 0xb5f: 0x2a2a, 0xb60: 0x2b3c, 0xb61: 0x2ef5, 0xb62: 0x28d0, 0xb63: 0x28da, - 0xb64: 0x2a37, 0xb65: 0x28e4, 0xb66: 0x28ee, 0xb67: 0x26d0, 0xb68: 0x26d7, 0xb69: 0x28f8, - 0xb6a: 0x2902, 0xb6b: 0x2c1d, 0xb6c: 0x2a44, 0xb6d: 0x2b4c, 0xb6e: 0x2c30, 0xb6f: 0x2a51, - 0xb70: 0x2916, 0xb71: 0x290c, 0xb72: 0x2f3c, 0xb73: 0x2a5e, 0xb74: 0x2c43, 0xb75: 0x2920, - 0xb76: 0x2b5c, 0xb77: 0x292a, 0xb78: 0x2a78, 0xb79: 0x2934, 0xb7a: 0x2a85, 0xb7b: 0x2f06, - 0xb7c: 0x2a6b, 0xb7d: 0x2b6c, 0xb7e: 0x2a92, 0xb7f: 0x26de, - // Block 0x2e, offset 0xb80 - 0xb80: 0x2f17, 0xb81: 0x293e, 0xb82: 0x2948, 0xb83: 0x2a9f, 0xb84: 0x2952, 0xb85: 0x295c, - 0xb86: 0x2966, 0xb87: 0x2b7c, 0xb88: 0x2aac, 0xb89: 0x26e5, 0xb8a: 0x2c56, 0xb8b: 0x2e90, - 0xb8c: 0x2b8c, 0xb8d: 0x2ab9, 0xb8e: 0x2ec5, 0xb8f: 0x2970, 0xb90: 0x297a, 0xb91: 0x2ac6, - 0xb92: 0x26ec, 0xb93: 0x2ad3, 0xb94: 0x2b9c, 0xb95: 0x26f3, 0xb96: 0x2c69, 0xb97: 0x2984, - 0xb98: 0x1cb7, 0xb99: 0x1ccb, 0xb9a: 0x1cda, 0xb9b: 0x1ce9, 0xb9c: 0x1cf8, 0xb9d: 0x1d07, - 0xb9e: 0x1d16, 0xb9f: 0x1d25, 0xba0: 0x1d34, 0xba1: 0x1d43, 0xba2: 0x2192, 0xba3: 0x21a4, - 0xba4: 0x21b6, 0xba5: 0x21c2, 0xba6: 0x21ce, 0xba7: 0x21da, 0xba8: 0x21e6, 0xba9: 0x21f2, - 0xbaa: 0x21fe, 0xbab: 0x220a, 0xbac: 0x2246, 0xbad: 0x2252, 0xbae: 0x225e, 0xbaf: 0x226a, - 0xbb0: 0x2276, 0xbb1: 0x1c14, 0xbb2: 0x19c6, 0xbb3: 0x1936, 0xbb4: 0x1be4, 0xbb5: 0x1a47, - 0xbb6: 0x1a56, 0xbb7: 0x19cc, 0xbb8: 0x1bfc, 0xbb9: 0x1c00, 0xbba: 0x1960, 0xbbb: 0x2701, - 0xbbc: 0x270f, 0xbbd: 0x26fa, 0xbbe: 0x2708, 0xbbf: 0x2ae0, - // Block 0x2f, offset 0xbc0 - 0xbc0: 0x1a4a, 0xbc1: 0x1a32, 0xbc2: 0x1c60, 0xbc3: 0x1a1a, 0xbc4: 0x19f3, 0xbc5: 0x1969, - 0xbc6: 0x1978, 0xbc7: 0x1948, 0xbc8: 0x1bf0, 0xbc9: 0x1d52, 0xbca: 0x1a4d, 0xbcb: 0x1a35, - 0xbcc: 0x1c64, 0xbcd: 0x1c70, 0xbce: 0x1a26, 0xbcf: 0x19fc, 0xbd0: 0x1957, 0xbd1: 0x1c1c, - 0xbd2: 0x1bb0, 0xbd3: 0x1b9c, 0xbd4: 0x1bcc, 0xbd5: 0x1c74, 0xbd6: 0x1a29, 0xbd7: 0x19c9, - 0xbd8: 0x19ff, 0xbd9: 0x19de, 0xbda: 0x1a41, 0xbdb: 0x1c78, 0xbdc: 0x1a2c, 0xbdd: 0x19c0, - 0xbde: 0x1a02, 0xbdf: 0x1c3c, 0xbe0: 0x1bf4, 0xbe1: 0x1a14, 0xbe2: 0x1c24, 0xbe3: 0x1c40, - 0xbe4: 0x1bf8, 0xbe5: 0x1a17, 0xbe6: 0x1c28, 0xbe7: 0x22e8, 0xbe8: 0x22fc, 0xbe9: 0x1996, - 0xbea: 0x1c20, 0xbeb: 0x1bb4, 0xbec: 0x1ba0, 0xbed: 0x1c48, 0xbee: 0x2716, 0xbef: 0x27ad, - 0xbf0: 0x1a59, 0xbf1: 0x1a44, 0xbf2: 0x1c7c, 0xbf3: 0x1a2f, 0xbf4: 0x1a50, 0xbf5: 0x1a38, - 0xbf6: 0x1c68, 0xbf7: 0x1a1d, 0xbf8: 0x19f6, 0xbf9: 0x1981, 0xbfa: 0x1a53, 0xbfb: 0x1a3b, - 0xbfc: 0x1c6c, 0xbfd: 0x1a20, 0xbfe: 0x19f9, 0xbff: 0x1984, - // Block 0x30, offset 0xc00 - 0xc00: 0x1c2c, 0xc01: 0x1bb8, 0xc02: 0x1d4d, 0xc03: 0x1939, 0xc04: 0x19ba, 0xc05: 0x19bd, - 0xc06: 0x22f5, 0xc07: 0x1b94, 0xc08: 0x19c3, 0xc09: 0x194b, 0xc0a: 0x19e1, 0xc0b: 0x194e, - 0xc0c: 0x19ea, 0xc0d: 0x196c, 0xc0e: 0x196f, 0xc0f: 0x1a05, 0xc10: 0x1a0b, 0xc11: 0x1a0e, - 0xc12: 0x1c30, 0xc13: 0x1a11, 0xc14: 0x1a23, 0xc15: 0x1c38, 0xc16: 0x1c44, 0xc17: 0x1990, - 0xc18: 0x1d57, 0xc19: 0x1bbc, 0xc1a: 0x1993, 0xc1b: 0x1a5c, 0xc1c: 0x19a5, 0xc1d: 0x19b4, - 0xc1e: 0x22e2, 0xc1f: 0x22dc, 0xc20: 0x1cc1, 0xc21: 0x1cd0, 0xc22: 0x1cdf, 0xc23: 0x1cee, - 0xc24: 0x1cfd, 0xc25: 0x1d0c, 0xc26: 0x1d1b, 0xc27: 0x1d2a, 0xc28: 0x1d39, 0xc29: 0x2186, - 0xc2a: 0x2198, 0xc2b: 0x21aa, 0xc2c: 0x21bc, 0xc2d: 0x21c8, 0xc2e: 0x21d4, 0xc2f: 0x21e0, - 0xc30: 0x21ec, 0xc31: 0x21f8, 0xc32: 0x2204, 0xc33: 0x2240, 0xc34: 0x224c, 0xc35: 0x2258, - 0xc36: 0x2264, 0xc37: 0x2270, 0xc38: 0x227c, 0xc39: 0x2282, 0xc3a: 0x2288, 0xc3b: 0x228e, - 0xc3c: 0x2294, 0xc3d: 0x22a6, 0xc3e: 0x22ac, 0xc3f: 0x1c10, - // Block 0x31, offset 0xc40 - 0xc40: 0x1377, 0xc41: 0x0cfb, 0xc42: 0x13d3, 0xc43: 0x139f, 0xc44: 0x0e57, 0xc45: 0x06eb, - 0xc46: 0x08df, 0xc47: 0x162b, 0xc48: 0x162b, 0xc49: 0x0a0b, 0xc4a: 0x145f, 0xc4b: 0x0943, - 0xc4c: 0x0a07, 0xc4d: 0x0bef, 0xc4e: 0x0fcf, 0xc4f: 0x115f, 0xc50: 0x1297, 0xc51: 0x12d3, - 0xc52: 0x1307, 0xc53: 0x141b, 0xc54: 0x0d73, 0xc55: 0x0dff, 0xc56: 0x0eab, 0xc57: 0x0f43, - 0xc58: 0x125f, 0xc59: 0x1447, 0xc5a: 0x1573, 0xc5b: 0x070f, 0xc5c: 0x08b3, 0xc5d: 0x0d87, - 0xc5e: 0x0ecf, 0xc5f: 0x1293, 0xc60: 0x15c3, 0xc61: 0x0ab3, 0xc62: 0x0e77, 0xc63: 0x1283, - 0xc64: 0x1317, 0xc65: 0x0c23, 0xc66: 0x11bb, 0xc67: 0x12df, 0xc68: 0x0b1f, 0xc69: 0x0d0f, - 0xc6a: 0x0e17, 0xc6b: 0x0f1b, 0xc6c: 0x1427, 0xc6d: 0x074f, 0xc6e: 0x07e7, 0xc6f: 0x0853, - 0xc70: 0x0c8b, 0xc71: 0x0d7f, 0xc72: 0x0ecb, 0xc73: 0x0fef, 0xc74: 0x1177, 0xc75: 0x128b, - 0xc76: 0x12a3, 0xc77: 0x13c7, 0xc78: 0x14ef, 0xc79: 0x15a3, 0xc7a: 0x15bf, 0xc7b: 0x102b, - 0xc7c: 0x106b, 0xc7d: 0x1123, 0xc7e: 0x1243, 0xc7f: 0x147b, - // Block 0x32, offset 0xc80 - 0xc80: 0x15cb, 0xc81: 0x134b, 0xc82: 0x09c7, 0xc83: 0x0b3b, 0xc84: 0x10db, 0xc85: 0x119b, - 0xc86: 0x0eff, 0xc87: 0x1033, 0xc88: 0x1397, 0xc89: 0x14e7, 0xc8a: 0x09c3, 0xc8b: 0x0a8f, - 0xc8c: 0x0d77, 0xc8d: 0x0e2b, 0xc8e: 0x0e5f, 0xc8f: 0x1113, 0xc90: 0x113b, 0xc91: 0x14a7, - 0xc92: 0x084f, 0xc93: 0x11a7, 0xc94: 0x07f3, 0xc95: 0x07ef, 0xc96: 0x1097, 0xc97: 0x1127, - 0xc98: 0x125b, 0xc99: 0x14af, 0xc9a: 0x1367, 0xc9b: 0x0c27, 0xc9c: 0x0d73, 0xc9d: 0x1357, - 0xc9e: 0x06f7, 0xc9f: 0x0a63, 0xca0: 0x0b93, 0xca1: 0x0f2f, 0xca2: 0x0faf, 0xca3: 0x0873, - 0xca4: 0x103b, 0xca5: 0x075f, 0xca6: 0x0b77, 0xca7: 0x06d7, 0xca8: 0x0deb, 0xca9: 0x0ca3, - 0xcaa: 0x110f, 0xcab: 0x08c7, 0xcac: 0x09b3, 0xcad: 0x0ffb, 0xcae: 0x1263, 0xcaf: 0x133b, - 0xcb0: 0x0db7, 0xcb1: 0x13f7, 0xcb2: 0x0de3, 0xcb3: 0x0c37, 0xcb4: 0x121b, 0xcb5: 0x0c57, - 0xcb6: 0x0fab, 0xcb7: 0x072b, 0xcb8: 0x07a7, 0xcb9: 0x07eb, 0xcba: 0x0d53, 0xcbb: 0x10fb, - 0xcbc: 0x11f3, 0xcbd: 0x1347, 0xcbe: 0x145b, 0xcbf: 0x085b, - // Block 0x33, offset 0xcc0 - 0xcc0: 0x090f, 0xcc1: 0x0a17, 0xcc2: 0x0b2f, 0xcc3: 0x0cbf, 0xcc4: 0x0e7b, 0xcc5: 0x103f, - 0xcc6: 0x1497, 0xcc7: 0x157b, 0xcc8: 0x15cf, 0xcc9: 0x15e7, 0xcca: 0x0837, 0xccb: 0x0cf3, - 0xccc: 0x0da3, 0xccd: 0x13eb, 0xcce: 0x0afb, 0xccf: 0x0bd7, 0xcd0: 0x0bf3, 0xcd1: 0x0c83, - 0xcd2: 0x0e6b, 0xcd3: 0x0eb7, 0xcd4: 0x0f67, 0xcd5: 0x108b, 0xcd6: 0x112f, 0xcd7: 0x1193, - 0xcd8: 0x13db, 0xcd9: 0x126b, 0xcda: 0x1403, 0xcdb: 0x147f, 0xcdc: 0x080f, 0xcdd: 0x083b, - 0xcde: 0x0923, 0xcdf: 0x0ea7, 0xce0: 0x12f3, 0xce1: 0x133b, 0xce2: 0x0b1b, 0xce3: 0x0b8b, - 0xce4: 0x0c4f, 0xce5: 0x0daf, 0xce6: 0x10d7, 0xce7: 0x0f23, 0xce8: 0x073b, 0xce9: 0x097f, - 0xcea: 0x0a63, 0xceb: 0x0ac7, 0xcec: 0x0b97, 0xced: 0x0f3f, 0xcee: 0x0f5b, 0xcef: 0x116b, - 0xcf0: 0x118b, 0xcf1: 0x1463, 0xcf2: 0x14e3, 0xcf3: 0x14f3, 0xcf4: 0x152f, 0xcf5: 0x0753, - 0xcf6: 0x107f, 0xcf7: 0x144f, 0xcf8: 0x14cb, 0xcf9: 0x0baf, 0xcfa: 0x0717, 0xcfb: 0x0777, - 0xcfc: 0x0a67, 0xcfd: 0x0a87, 0xcfe: 0x0caf, 0xcff: 0x0d73, - // Block 0x34, offset 0xd00 - 0xd00: 0x0ec3, 0xd01: 0x0fcb, 0xd02: 0x1277, 0xd03: 0x1417, 0xd04: 0x1623, 0xd05: 0x0ce3, - 0xd06: 0x14a3, 0xd07: 0x0833, 0xd08: 0x0d2f, 0xd09: 0x0d3b, 0xd0a: 0x0e0f, 0xd0b: 0x0e47, - 0xd0c: 0x0f4b, 0xd0d: 0x0fa7, 0xd0e: 0x1027, 0xd0f: 0x110b, 0xd10: 0x153b, 0xd11: 0x07af, - 0xd12: 0x0c03, 0xd13: 0x14b3, 0xd14: 0x0767, 0xd15: 0x0aab, 0xd16: 0x0e2f, 0xd17: 0x13df, - 0xd18: 0x0b67, 0xd19: 0x0bb7, 0xd1a: 0x0d43, 0xd1b: 0x0f2f, 0xd1c: 0x14bb, 0xd1d: 0x0817, - 0xd1e: 0x08ff, 0xd1f: 0x0a97, 0xd20: 0x0cd3, 0xd21: 0x0d1f, 0xd22: 0x0d5f, 0xd23: 0x0df3, - 0xd24: 0x0f47, 0xd25: 0x0fbb, 0xd26: 0x1157, 0xd27: 0x12f7, 0xd28: 0x1303, 0xd29: 0x1457, - 0xd2a: 0x14d7, 0xd2b: 0x0883, 0xd2c: 0x0e4b, 0xd2d: 0x0903, 0xd2e: 0x0ec7, 0xd2f: 0x0f6b, - 0xd30: 0x1287, 0xd31: 0x14bf, 0xd32: 0x15ab, 0xd33: 0x15d3, 0xd34: 0x0d37, 0xd35: 0x0e27, - 0xd36: 0x11c3, 0xd37: 0x10b7, 0xd38: 0x10c3, 0xd39: 0x10e7, 0xd3a: 0x0f17, 0xd3b: 0x0e9f, - 0xd3c: 0x1363, 0xd3d: 0x0733, 0xd3e: 0x122b, 0xd3f: 0x081b, - // Block 0x35, offset 0xd40 - 0xd40: 0x080b, 0xd41: 0x0b0b, 0xd42: 0x0c2b, 0xd43: 0x10f3, 0xd44: 0x0a53, 0xd45: 0x0e03, - 0xd46: 0x0cef, 0xd47: 0x13e7, 0xd48: 0x12e7, 0xd49: 0x14ab, 0xd4a: 0x1323, 0xd4b: 0x0b27, - 0xd4c: 0x0787, 0xd4d: 0x095b, 0xd50: 0x09af, - 0xd52: 0x0cdf, 0xd55: 0x07f7, 0xd56: 0x0f1f, 0xd57: 0x0fe3, - 0xd58: 0x1047, 0xd59: 0x1063, 0xd5a: 0x1067, 0xd5b: 0x107b, 0xd5c: 0x14fb, 0xd5d: 0x10eb, - 0xd5e: 0x116f, 0xd60: 0x128f, 0xd62: 0x1353, - 0xd65: 0x1407, 0xd66: 0x1433, - 0xd6a: 0x154f, 0xd6b: 0x1553, 0xd6c: 0x1557, 0xd6d: 0x15bb, 0xd6e: 0x142b, 0xd6f: 0x14c7, - 0xd70: 0x0757, 0xd71: 0x077b, 0xd72: 0x078f, 0xd73: 0x084b, 0xd74: 0x0857, 0xd75: 0x0897, - 0xd76: 0x094b, 0xd77: 0x0967, 0xd78: 0x096f, 0xd79: 0x09ab, 0xd7a: 0x09b7, 0xd7b: 0x0a93, - 0xd7c: 0x0a9b, 0xd7d: 0x0ba3, 0xd7e: 0x0bcb, 0xd7f: 0x0bd3, - // Block 0x36, offset 0xd80 - 0xd80: 0x0beb, 0xd81: 0x0c97, 0xd82: 0x0cc7, 0xd83: 0x0ce7, 0xd84: 0x0d57, 0xd85: 0x0e1b, - 0xd86: 0x0e37, 0xd87: 0x0e67, 0xd88: 0x0ebb, 0xd89: 0x0edb, 0xd8a: 0x0f4f, 0xd8b: 0x102f, - 0xd8c: 0x104b, 0xd8d: 0x1053, 0xd8e: 0x104f, 0xd8f: 0x1057, 0xd90: 0x105b, 0xd91: 0x105f, - 0xd92: 0x1073, 0xd93: 0x1077, 0xd94: 0x109b, 0xd95: 0x10af, 0xd96: 0x10cb, 0xd97: 0x112f, - 0xd98: 0x1137, 0xd99: 0x113f, 0xd9a: 0x1153, 0xd9b: 0x117b, 0xd9c: 0x11cb, 0xd9d: 0x11ff, - 0xd9e: 0x11ff, 0xd9f: 0x1267, 0xda0: 0x130f, 0xda1: 0x1327, 0xda2: 0x135b, 0xda3: 0x135f, - 0xda4: 0x13a3, 0xda5: 0x13a7, 0xda6: 0x13ff, 0xda7: 0x1407, 0xda8: 0x14db, 0xda9: 0x151f, - 0xdaa: 0x1537, 0xdab: 0x0b9b, 0xdac: 0x171e, 0xdad: 0x11e3, - 0xdb0: 0x06df, 0xdb1: 0x07e3, 0xdb2: 0x07a3, 0xdb3: 0x074b, 0xdb4: 0x078b, 0xdb5: 0x07b7, - 0xdb6: 0x0847, 0xdb7: 0x0863, 0xdb8: 0x094b, 0xdb9: 0x0937, 0xdba: 0x0947, 0xdbb: 0x0963, - 0xdbc: 0x09af, 0xdbd: 0x09bf, 0xdbe: 0x0a03, 0xdbf: 0x0a0f, - // Block 0x37, offset 0xdc0 - 0xdc0: 0x0a2b, 0xdc1: 0x0a3b, 0xdc2: 0x0b23, 0xdc3: 0x0b2b, 0xdc4: 0x0b5b, 0xdc5: 0x0b7b, - 0xdc6: 0x0bab, 0xdc7: 0x0bc3, 0xdc8: 0x0bb3, 0xdc9: 0x0bd3, 0xdca: 0x0bc7, 0xdcb: 0x0beb, - 0xdcc: 0x0c07, 0xdcd: 0x0c5f, 0xdce: 0x0c6b, 0xdcf: 0x0c73, 0xdd0: 0x0c9b, 0xdd1: 0x0cdf, - 0xdd2: 0x0d0f, 0xdd3: 0x0d13, 0xdd4: 0x0d27, 0xdd5: 0x0da7, 0xdd6: 0x0db7, 0xdd7: 0x0e0f, - 0xdd8: 0x0e5b, 0xdd9: 0x0e53, 0xdda: 0x0e67, 0xddb: 0x0e83, 0xddc: 0x0ebb, 0xddd: 0x1013, - 0xdde: 0x0edf, 0xddf: 0x0f13, 0xde0: 0x0f1f, 0xde1: 0x0f5f, 0xde2: 0x0f7b, 0xde3: 0x0f9f, - 0xde4: 0x0fc3, 0xde5: 0x0fc7, 0xde6: 0x0fe3, 0xde7: 0x0fe7, 0xde8: 0x0ff7, 0xde9: 0x100b, - 0xdea: 0x1007, 0xdeb: 0x1037, 0xdec: 0x10b3, 0xded: 0x10cb, 0xdee: 0x10e3, 0xdef: 0x111b, - 0xdf0: 0x112f, 0xdf1: 0x114b, 0xdf2: 0x117b, 0xdf3: 0x122f, 0xdf4: 0x1257, 0xdf5: 0x12cb, - 0xdf6: 0x1313, 0xdf7: 0x131f, 0xdf8: 0x1327, 0xdf9: 0x133f, 0xdfa: 0x1353, 0xdfb: 0x1343, - 0xdfc: 0x135b, 0xdfd: 0x1357, 0xdfe: 0x134f, 0xdff: 0x135f, - // Block 0x38, offset 0xe00 - 0xe00: 0x136b, 0xe01: 0x13a7, 0xe02: 0x13e3, 0xe03: 0x1413, 0xe04: 0x144b, 0xe05: 0x146b, - 0xe06: 0x14b7, 0xe07: 0x14db, 0xe08: 0x14fb, 0xe09: 0x150f, 0xe0a: 0x151f, 0xe0b: 0x152b, - 0xe0c: 0x1537, 0xe0d: 0x158b, 0xe0e: 0x162b, 0xe0f: 0x16b5, 0xe10: 0x16b0, 0xe11: 0x16e2, - 0xe12: 0x0607, 0xe13: 0x062f, 0xe14: 0x0633, 0xe15: 0x1764, 0xe16: 0x1791, 0xe17: 0x1809, - 0xe18: 0x1617, 0xe19: 0x1627, - // Block 0x39, offset 0xe40 - 0xe40: 0x19d5, 0xe41: 0x19d8, 0xe42: 0x19db, 0xe43: 0x1c08, 0xe44: 0x1c0c, 0xe45: 0x1a5f, - 0xe46: 0x1a5f, - 0xe53: 0x1d75, 0xe54: 0x1d66, 0xe55: 0x1d6b, 0xe56: 0x1d7a, 0xe57: 0x1d70, - 0xe5d: 0x4390, - 0xe5e: 0x8115, 0xe5f: 0x4402, 0xe60: 0x022d, 0xe61: 0x0215, 0xe62: 0x021e, 0xe63: 0x0221, - 0xe64: 0x0224, 0xe65: 0x0227, 0xe66: 0x022a, 0xe67: 0x0230, 0xe68: 0x0233, 0xe69: 0x0017, - 0xe6a: 0x43f0, 0xe6b: 0x43f6, 0xe6c: 0x44f4, 0xe6d: 0x44fc, 0xe6e: 0x4348, 0xe6f: 0x434e, - 0xe70: 0x4354, 0xe71: 0x435a, 0xe72: 0x4366, 0xe73: 0x436c, 0xe74: 0x4372, 0xe75: 0x437e, - 0xe76: 0x4384, 0xe78: 0x438a, 0xe79: 0x4396, 0xe7a: 0x439c, 0xe7b: 0x43a2, - 0xe7c: 0x43ae, 0xe7e: 0x43b4, - // Block 0x3a, offset 0xe80 - 0xe80: 0x43ba, 0xe81: 0x43c0, 0xe83: 0x43c6, 0xe84: 0x43cc, - 0xe86: 0x43d8, 0xe87: 0x43de, 0xe88: 0x43e4, 0xe89: 0x43ea, 0xe8a: 0x43fc, 0xe8b: 0x4378, - 0xe8c: 0x4360, 0xe8d: 0x43a8, 0xe8e: 0x43d2, 0xe8f: 0x1d7f, 0xe90: 0x0299, 0xe91: 0x0299, - 0xe92: 0x02a2, 0xe93: 0x02a2, 0xe94: 0x02a2, 0xe95: 0x02a2, 0xe96: 0x02a5, 0xe97: 0x02a5, - 0xe98: 0x02a5, 0xe99: 0x02a5, 0xe9a: 0x02ab, 0xe9b: 0x02ab, 0xe9c: 0x02ab, 0xe9d: 0x02ab, - 0xe9e: 0x029f, 0xe9f: 0x029f, 0xea0: 0x029f, 0xea1: 0x029f, 0xea2: 0x02a8, 0xea3: 0x02a8, - 0xea4: 0x02a8, 0xea5: 0x02a8, 0xea6: 0x029c, 0xea7: 0x029c, 0xea8: 0x029c, 0xea9: 0x029c, - 0xeaa: 0x02cf, 0xeab: 0x02cf, 0xeac: 0x02cf, 0xead: 0x02cf, 0xeae: 0x02d2, 0xeaf: 0x02d2, - 0xeb0: 0x02d2, 0xeb1: 0x02d2, 0xeb2: 0x02b1, 0xeb3: 0x02b1, 0xeb4: 0x02b1, 0xeb5: 0x02b1, - 0xeb6: 0x02ae, 0xeb7: 0x02ae, 0xeb8: 0x02ae, 0xeb9: 0x02ae, 0xeba: 0x02b4, 0xebb: 0x02b4, - 0xebc: 0x02b4, 0xebd: 0x02b4, 0xebe: 0x02b7, 0xebf: 0x02b7, - // Block 0x3b, offset 0xec0 - 0xec0: 0x02b7, 0xec1: 0x02b7, 0xec2: 0x02c0, 0xec3: 0x02c0, 0xec4: 0x02bd, 0xec5: 0x02bd, - 0xec6: 0x02c3, 0xec7: 0x02c3, 0xec8: 0x02ba, 0xec9: 0x02ba, 0xeca: 0x02c9, 0xecb: 0x02c9, - 0xecc: 0x02c6, 0xecd: 0x02c6, 0xece: 0x02d5, 0xecf: 0x02d5, 0xed0: 0x02d5, 0xed1: 0x02d5, - 0xed2: 0x02db, 0xed3: 0x02db, 0xed4: 0x02db, 0xed5: 0x02db, 0xed6: 0x02e1, 0xed7: 0x02e1, - 0xed8: 0x02e1, 0xed9: 0x02e1, 0xeda: 0x02de, 0xedb: 0x02de, 0xedc: 0x02de, 0xedd: 0x02de, - 0xede: 0x02e4, 0xedf: 0x02e4, 0xee0: 0x02e7, 0xee1: 0x02e7, 0xee2: 0x02e7, 0xee3: 0x02e7, - 0xee4: 0x446e, 0xee5: 0x446e, 0xee6: 0x02ed, 0xee7: 0x02ed, 0xee8: 0x02ed, 0xee9: 0x02ed, - 0xeea: 0x02ea, 0xeeb: 0x02ea, 0xeec: 0x02ea, 0xeed: 0x02ea, 0xeee: 0x0308, 0xeef: 0x0308, - 0xef0: 0x4468, 0xef1: 0x4468, - // Block 0x3c, offset 0xf00 - 0xf13: 0x02d8, 0xf14: 0x02d8, 0xf15: 0x02d8, 0xf16: 0x02d8, 0xf17: 0x02f6, - 0xf18: 0x02f6, 0xf19: 0x02f3, 0xf1a: 0x02f3, 0xf1b: 0x02f9, 0xf1c: 0x02f9, 0xf1d: 0x204f, - 0xf1e: 0x02ff, 0xf1f: 0x02ff, 0xf20: 0x02f0, 0xf21: 0x02f0, 0xf22: 0x02fc, 0xf23: 0x02fc, - 0xf24: 0x0305, 0xf25: 0x0305, 0xf26: 0x0305, 0xf27: 0x0305, 0xf28: 0x028d, 0xf29: 0x028d, - 0xf2a: 0x25aa, 0xf2b: 0x25aa, 0xf2c: 0x261a, 0xf2d: 0x261a, 0xf2e: 0x25e9, 0xf2f: 0x25e9, - 0xf30: 0x2605, 0xf31: 0x2605, 0xf32: 0x25fe, 0xf33: 0x25fe, 0xf34: 0x260c, 0xf35: 0x260c, - 0xf36: 0x2613, 0xf37: 0x2613, 0xf38: 0x2613, 0xf39: 0x25f0, 0xf3a: 0x25f0, 0xf3b: 0x25f0, - 0xf3c: 0x0302, 0xf3d: 0x0302, 0xf3e: 0x0302, 0xf3f: 0x0302, - // Block 0x3d, offset 0xf40 - 0xf40: 0x25b1, 0xf41: 0x25b8, 0xf42: 0x25d4, 0xf43: 0x25f0, 0xf44: 0x25f7, 0xf45: 0x1d89, - 0xf46: 0x1d8e, 0xf47: 0x1d93, 0xf48: 0x1da2, 0xf49: 0x1db1, 0xf4a: 0x1db6, 0xf4b: 0x1dbb, - 0xf4c: 0x1dc0, 0xf4d: 0x1dc5, 0xf4e: 0x1dd4, 0xf4f: 0x1de3, 0xf50: 0x1de8, 0xf51: 0x1ded, - 0xf52: 0x1dfc, 0xf53: 0x1e0b, 0xf54: 0x1e10, 0xf55: 0x1e15, 0xf56: 0x1e1a, 0xf57: 0x1e29, - 0xf58: 0x1e2e, 0xf59: 0x1e3d, 0xf5a: 0x1e42, 0xf5b: 0x1e47, 0xf5c: 0x1e56, 0xf5d: 0x1e5b, - 0xf5e: 0x1e60, 0xf5f: 0x1e6a, 0xf60: 0x1ea6, 0xf61: 0x1eb5, 0xf62: 0x1ec4, 0xf63: 0x1ec9, - 0xf64: 0x1ece, 0xf65: 0x1ed8, 0xf66: 0x1ee7, 0xf67: 0x1eec, 0xf68: 0x1efb, 0xf69: 0x1f00, - 0xf6a: 0x1f05, 0xf6b: 0x1f14, 0xf6c: 0x1f19, 0xf6d: 0x1f28, 0xf6e: 0x1f2d, 0xf6f: 0x1f32, - 0xf70: 0x1f37, 0xf71: 0x1f3c, 0xf72: 0x1f41, 0xf73: 0x1f46, 0xf74: 0x1f4b, 0xf75: 0x1f50, - 0xf76: 0x1f55, 0xf77: 0x1f5a, 0xf78: 0x1f5f, 0xf79: 0x1f64, 0xf7a: 0x1f69, 0xf7b: 0x1f6e, - 0xf7c: 0x1f73, 0xf7d: 0x1f78, 0xf7e: 0x1f7d, 0xf7f: 0x1f87, - // Block 0x3e, offset 0xf80 - 0xf80: 0x1f8c, 0xf81: 0x1f91, 0xf82: 0x1f96, 0xf83: 0x1fa0, 0xf84: 0x1fa5, 0xf85: 0x1faf, - 0xf86: 0x1fb4, 0xf87: 0x1fb9, 0xf88: 0x1fbe, 0xf89: 0x1fc3, 0xf8a: 0x1fc8, 0xf8b: 0x1fcd, - 0xf8c: 0x1fd2, 0xf8d: 0x1fd7, 0xf8e: 0x1fe6, 0xf8f: 0x1ff5, 0xf90: 0x1ffa, 0xf91: 0x1fff, - 0xf92: 0x2004, 0xf93: 0x2009, 0xf94: 0x200e, 0xf95: 0x2018, 0xf96: 0x201d, 0xf97: 0x2022, - 0xf98: 0x2031, 0xf99: 0x2040, 0xf9a: 0x2045, 0xf9b: 0x4420, 0xf9c: 0x4426, 0xf9d: 0x445c, - 0xf9e: 0x44b3, 0xf9f: 0x44ba, 0xfa0: 0x44c1, 0xfa1: 0x44c8, 0xfa2: 0x44cf, 0xfa3: 0x44d6, - 0xfa4: 0x25c6, 0xfa5: 0x25cd, 0xfa6: 0x25d4, 0xfa7: 0x25db, 0xfa8: 0x25f0, 0xfa9: 0x25f7, - 0xfaa: 0x1d98, 0xfab: 0x1d9d, 0xfac: 0x1da2, 0xfad: 0x1da7, 0xfae: 0x1db1, 0xfaf: 0x1db6, - 0xfb0: 0x1dca, 0xfb1: 0x1dcf, 0xfb2: 0x1dd4, 0xfb3: 0x1dd9, 0xfb4: 0x1de3, 0xfb5: 0x1de8, - 0xfb6: 0x1df2, 0xfb7: 0x1df7, 0xfb8: 0x1dfc, 0xfb9: 0x1e01, 0xfba: 0x1e0b, 0xfbb: 0x1e10, - 0xfbc: 0x1f3c, 0xfbd: 0x1f41, 0xfbe: 0x1f50, 0xfbf: 0x1f55, - // Block 0x3f, offset 0xfc0 - 0xfc0: 0x1f5a, 0xfc1: 0x1f6e, 0xfc2: 0x1f73, 0xfc3: 0x1f78, 0xfc4: 0x1f7d, 0xfc5: 0x1f96, - 0xfc6: 0x1fa0, 0xfc7: 0x1fa5, 0xfc8: 0x1faa, 0xfc9: 0x1fbe, 0xfca: 0x1fdc, 0xfcb: 0x1fe1, - 0xfcc: 0x1fe6, 0xfcd: 0x1feb, 0xfce: 0x1ff5, 0xfcf: 0x1ffa, 0xfd0: 0x445c, 0xfd1: 0x2027, - 0xfd2: 0x202c, 0xfd3: 0x2031, 0xfd4: 0x2036, 0xfd5: 0x2040, 0xfd6: 0x2045, 0xfd7: 0x25b1, - 0xfd8: 0x25b8, 0xfd9: 0x25bf, 0xfda: 0x25d4, 0xfdb: 0x25e2, 0xfdc: 0x1d89, 0xfdd: 0x1d8e, - 0xfde: 0x1d93, 0xfdf: 0x1da2, 0xfe0: 0x1dac, 0xfe1: 0x1dbb, 0xfe2: 0x1dc0, 0xfe3: 0x1dc5, - 0xfe4: 0x1dd4, 0xfe5: 0x1dde, 0xfe6: 0x1dfc, 0xfe7: 0x1e15, 0xfe8: 0x1e1a, 0xfe9: 0x1e29, - 0xfea: 0x1e2e, 0xfeb: 0x1e3d, 0xfec: 0x1e47, 0xfed: 0x1e56, 0xfee: 0x1e5b, 0xfef: 0x1e60, - 0xff0: 0x1e6a, 0xff1: 0x1ea6, 0xff2: 0x1eab, 0xff3: 0x1eb5, 0xff4: 0x1ec4, 0xff5: 0x1ec9, - 0xff6: 0x1ece, 0xff7: 0x1ed8, 0xff8: 0x1ee7, 0xff9: 0x1efb, 0xffa: 0x1f00, 0xffb: 0x1f05, - 0xffc: 0x1f14, 0xffd: 0x1f19, 0xffe: 0x1f28, 0xfff: 0x1f2d, - // Block 0x40, offset 0x1000 - 0x1000: 0x1f32, 0x1001: 0x1f37, 0x1002: 0x1f46, 0x1003: 0x1f4b, 0x1004: 0x1f5f, 0x1005: 0x1f64, - 0x1006: 0x1f69, 0x1007: 0x1f6e, 0x1008: 0x1f73, 0x1009: 0x1f87, 0x100a: 0x1f8c, 0x100b: 0x1f91, - 0x100c: 0x1f96, 0x100d: 0x1f9b, 0x100e: 0x1faf, 0x100f: 0x1fb4, 0x1010: 0x1fb9, 0x1011: 0x1fbe, - 0x1012: 0x1fcd, 0x1013: 0x1fd2, 0x1014: 0x1fd7, 0x1015: 0x1fe6, 0x1016: 0x1ff0, 0x1017: 0x1fff, - 0x1018: 0x2004, 0x1019: 0x4450, 0x101a: 0x2018, 0x101b: 0x201d, 0x101c: 0x2022, 0x101d: 0x2031, - 0x101e: 0x203b, 0x101f: 0x25d4, 0x1020: 0x25e2, 0x1021: 0x1da2, 0x1022: 0x1dac, 0x1023: 0x1dd4, - 0x1024: 0x1dde, 0x1025: 0x1dfc, 0x1026: 0x1e06, 0x1027: 0x1e6a, 0x1028: 0x1e6f, 0x1029: 0x1e92, - 0x102a: 0x1e97, 0x102b: 0x1f6e, 0x102c: 0x1f73, 0x102d: 0x1f96, 0x102e: 0x1fe6, 0x102f: 0x1ff0, - 0x1030: 0x2031, 0x1031: 0x203b, 0x1032: 0x4504, 0x1033: 0x450c, 0x1034: 0x4514, 0x1035: 0x1ef1, - 0x1036: 0x1ef6, 0x1037: 0x1f0a, 0x1038: 0x1f0f, 0x1039: 0x1f1e, 0x103a: 0x1f23, 0x103b: 0x1e74, - 0x103c: 0x1e79, 0x103d: 0x1e9c, 0x103e: 0x1ea1, 0x103f: 0x1e33, - // Block 0x41, offset 0x1040 - 0x1040: 0x1e38, 0x1041: 0x1e1f, 0x1042: 0x1e24, 0x1043: 0x1e4c, 0x1044: 0x1e51, 0x1045: 0x1eba, - 0x1046: 0x1ebf, 0x1047: 0x1edd, 0x1048: 0x1ee2, 0x1049: 0x1e7e, 0x104a: 0x1e83, 0x104b: 0x1e88, - 0x104c: 0x1e92, 0x104d: 0x1e8d, 0x104e: 0x1e65, 0x104f: 0x1eb0, 0x1050: 0x1ed3, 0x1051: 0x1ef1, - 0x1052: 0x1ef6, 0x1053: 0x1f0a, 0x1054: 0x1f0f, 0x1055: 0x1f1e, 0x1056: 0x1f23, 0x1057: 0x1e74, - 0x1058: 0x1e79, 0x1059: 0x1e9c, 0x105a: 0x1ea1, 0x105b: 0x1e33, 0x105c: 0x1e38, 0x105d: 0x1e1f, - 0x105e: 0x1e24, 0x105f: 0x1e4c, 0x1060: 0x1e51, 0x1061: 0x1eba, 0x1062: 0x1ebf, 0x1063: 0x1edd, - 0x1064: 0x1ee2, 0x1065: 0x1e7e, 0x1066: 0x1e83, 0x1067: 0x1e88, 0x1068: 0x1e92, 0x1069: 0x1e8d, - 0x106a: 0x1e65, 0x106b: 0x1eb0, 0x106c: 0x1ed3, 0x106d: 0x1e7e, 0x106e: 0x1e83, 0x106f: 0x1e88, - 0x1070: 0x1e92, 0x1071: 0x1e6f, 0x1072: 0x1e97, 0x1073: 0x1eec, 0x1074: 0x1e56, 0x1075: 0x1e5b, - 0x1076: 0x1e60, 0x1077: 0x1e7e, 0x1078: 0x1e83, 0x1079: 0x1e88, 0x107a: 0x1eec, 0x107b: 0x1efb, - 0x107c: 0x4408, 0x107d: 0x4408, - // Block 0x42, offset 0x1080 - 0x1090: 0x2311, 0x1091: 0x2326, - 0x1092: 0x2326, 0x1093: 0x232d, 0x1094: 0x2334, 0x1095: 0x2349, 0x1096: 0x2350, 0x1097: 0x2357, - 0x1098: 0x237a, 0x1099: 0x237a, 0x109a: 0x239d, 0x109b: 0x2396, 0x109c: 0x23b2, 0x109d: 0x23a4, - 0x109e: 0x23ab, 0x109f: 0x23ce, 0x10a0: 0x23ce, 0x10a1: 0x23c7, 0x10a2: 0x23d5, 0x10a3: 0x23d5, - 0x10a4: 0x23ff, 0x10a5: 0x23ff, 0x10a6: 0x241b, 0x10a7: 0x23e3, 0x10a8: 0x23e3, 0x10a9: 0x23dc, - 0x10aa: 0x23f1, 0x10ab: 0x23f1, 0x10ac: 0x23f8, 0x10ad: 0x23f8, 0x10ae: 0x2422, 0x10af: 0x2430, - 0x10b0: 0x2430, 0x10b1: 0x2437, 0x10b2: 0x2437, 0x10b3: 0x243e, 0x10b4: 0x2445, 0x10b5: 0x244c, - 0x10b6: 0x2453, 0x10b7: 0x2453, 0x10b8: 0x245a, 0x10b9: 0x2468, 0x10ba: 0x2476, 0x10bb: 0x246f, - 0x10bc: 0x247d, 0x10bd: 0x247d, 0x10be: 0x2492, 0x10bf: 0x2499, - // Block 0x43, offset 0x10c0 - 0x10c0: 0x24ca, 0x10c1: 0x24d8, 0x10c2: 0x24d1, 0x10c3: 0x24b5, 0x10c4: 0x24b5, 0x10c5: 0x24df, - 0x10c6: 0x24df, 0x10c7: 0x24e6, 0x10c8: 0x24e6, 0x10c9: 0x2510, 0x10ca: 0x2517, 0x10cb: 0x251e, - 0x10cc: 0x24f4, 0x10cd: 0x2502, 0x10ce: 0x2525, 0x10cf: 0x252c, - 0x10d2: 0x24fb, 0x10d3: 0x2580, 0x10d4: 0x2587, 0x10d5: 0x255d, 0x10d6: 0x2564, 0x10d7: 0x2548, - 0x10d8: 0x2548, 0x10d9: 0x254f, 0x10da: 0x2579, 0x10db: 0x2572, 0x10dc: 0x259c, 0x10dd: 0x259c, - 0x10de: 0x230a, 0x10df: 0x231f, 0x10e0: 0x2318, 0x10e1: 0x2342, 0x10e2: 0x233b, 0x10e3: 0x2365, - 0x10e4: 0x235e, 0x10e5: 0x2388, 0x10e6: 0x236c, 0x10e7: 0x2381, 0x10e8: 0x23b9, 0x10e9: 0x2406, - 0x10ea: 0x23ea, 0x10eb: 0x2429, 0x10ec: 0x24c3, 0x10ed: 0x24ed, 0x10ee: 0x2595, 0x10ef: 0x258e, - 0x10f0: 0x25a3, 0x10f1: 0x253a, 0x10f2: 0x24a0, 0x10f3: 0x256b, 0x10f4: 0x2492, 0x10f5: 0x24ca, - 0x10f6: 0x2461, 0x10f7: 0x24ae, 0x10f8: 0x2541, 0x10f9: 0x2533, 0x10fa: 0x24bc, 0x10fb: 0x24a7, - 0x10fc: 0x24bc, 0x10fd: 0x2541, 0x10fe: 0x2373, 0x10ff: 0x238f, - // Block 0x44, offset 0x1100 - 0x1100: 0x2509, 0x1101: 0x2484, 0x1102: 0x2303, 0x1103: 0x24a7, 0x1104: 0x244c, 0x1105: 0x241b, - 0x1106: 0x23c0, 0x1107: 0x2556, - 0x1130: 0x2414, 0x1131: 0x248b, 0x1132: 0x27bf, 0x1133: 0x27b6, 0x1134: 0x27ec, 0x1135: 0x27da, - 0x1136: 0x27c8, 0x1137: 0x27e3, 0x1138: 0x27f5, 0x1139: 0x240d, 0x113a: 0x2c7c, 0x113b: 0x2afc, - 0x113c: 0x27d1, - // Block 0x45, offset 0x1140 - 0x1150: 0x0019, 0x1151: 0x0483, - 0x1152: 0x0487, 0x1153: 0x0035, 0x1154: 0x0037, 0x1155: 0x0003, 0x1156: 0x003f, 0x1157: 0x04bf, - 0x1158: 0x04c3, 0x1159: 0x1b5c, - 0x1160: 0x8132, 0x1161: 0x8132, 0x1162: 0x8132, 0x1163: 0x8132, - 0x1164: 0x8132, 0x1165: 0x8132, 0x1166: 0x8132, 0x1167: 0x812d, 0x1168: 0x812d, 0x1169: 0x812d, - 0x116a: 0x812d, 0x116b: 0x812d, 0x116c: 0x812d, 0x116d: 0x812d, 0x116e: 0x8132, 0x116f: 0x8132, - 0x1170: 0x1873, 0x1171: 0x0443, 0x1172: 0x043f, 0x1173: 0x007f, 0x1174: 0x007f, 0x1175: 0x0011, - 0x1176: 0x0013, 0x1177: 0x00b7, 0x1178: 0x00bb, 0x1179: 0x04b7, 0x117a: 0x04bb, 0x117b: 0x04ab, - 0x117c: 0x04af, 0x117d: 0x0493, 0x117e: 0x0497, 0x117f: 0x048b, - // Block 0x46, offset 0x1180 - 0x1180: 0x048f, 0x1181: 0x049b, 0x1182: 0x049f, 0x1183: 0x04a3, 0x1184: 0x04a7, - 0x1187: 0x0077, 0x1188: 0x007b, 0x1189: 0x4269, 0x118a: 0x4269, 0x118b: 0x4269, - 0x118c: 0x4269, 0x118d: 0x007f, 0x118e: 0x007f, 0x118f: 0x007f, 0x1190: 0x0019, 0x1191: 0x0483, - 0x1192: 0x001d, 0x1194: 0x0037, 0x1195: 0x0035, 0x1196: 0x003f, 0x1197: 0x0003, - 0x1198: 0x0443, 0x1199: 0x0011, 0x119a: 0x0013, 0x119b: 0x00b7, 0x119c: 0x00bb, 0x119d: 0x04b7, - 0x119e: 0x04bb, 0x119f: 0x0007, 0x11a0: 0x000d, 0x11a1: 0x0015, 0x11a2: 0x0017, 0x11a3: 0x001b, - 0x11a4: 0x0039, 0x11a5: 0x003d, 0x11a6: 0x003b, 0x11a8: 0x0079, 0x11a9: 0x0009, - 0x11aa: 0x000b, 0x11ab: 0x0041, - 0x11b0: 0x42aa, 0x11b1: 0x442c, 0x11b2: 0x42af, 0x11b4: 0x42b4, - 0x11b6: 0x42b9, 0x11b7: 0x4432, 0x11b8: 0x42be, 0x11b9: 0x4438, 0x11ba: 0x42c3, 0x11bb: 0x443e, - 0x11bc: 0x42c8, 0x11bd: 0x4444, 0x11be: 0x42cd, 0x11bf: 0x444a, - // Block 0x47, offset 0x11c0 - 0x11c0: 0x0236, 0x11c1: 0x440e, 0x11c2: 0x440e, 0x11c3: 0x4414, 0x11c4: 0x4414, 0x11c5: 0x4456, - 0x11c6: 0x4456, 0x11c7: 0x441a, 0x11c8: 0x441a, 0x11c9: 0x4462, 0x11ca: 0x4462, 0x11cb: 0x4462, - 0x11cc: 0x4462, 0x11cd: 0x0239, 0x11ce: 0x0239, 0x11cf: 0x023c, 0x11d0: 0x023c, 0x11d1: 0x023c, - 0x11d2: 0x023c, 0x11d3: 0x023f, 0x11d4: 0x023f, 0x11d5: 0x0242, 0x11d6: 0x0242, 0x11d7: 0x0242, - 0x11d8: 0x0242, 0x11d9: 0x0245, 0x11da: 0x0245, 0x11db: 0x0245, 0x11dc: 0x0245, 0x11dd: 0x0248, - 0x11de: 0x0248, 0x11df: 0x0248, 0x11e0: 0x0248, 0x11e1: 0x024b, 0x11e2: 0x024b, 0x11e3: 0x024b, - 0x11e4: 0x024b, 0x11e5: 0x024e, 0x11e6: 0x024e, 0x11e7: 0x024e, 0x11e8: 0x024e, 0x11e9: 0x0251, - 0x11ea: 0x0251, 0x11eb: 0x0254, 0x11ec: 0x0254, 0x11ed: 0x0257, 0x11ee: 0x0257, 0x11ef: 0x025a, - 0x11f0: 0x025a, 0x11f1: 0x025d, 0x11f2: 0x025d, 0x11f3: 0x025d, 0x11f4: 0x025d, 0x11f5: 0x0260, - 0x11f6: 0x0260, 0x11f7: 0x0260, 0x11f8: 0x0260, 0x11f9: 0x0263, 0x11fa: 0x0263, 0x11fb: 0x0263, - 0x11fc: 0x0263, 0x11fd: 0x0266, 0x11fe: 0x0266, 0x11ff: 0x0266, - // Block 0x48, offset 0x1200 - 0x1200: 0x0266, 0x1201: 0x0269, 0x1202: 0x0269, 0x1203: 0x0269, 0x1204: 0x0269, 0x1205: 0x026c, - 0x1206: 0x026c, 0x1207: 0x026c, 0x1208: 0x026c, 0x1209: 0x026f, 0x120a: 0x026f, 0x120b: 0x026f, - 0x120c: 0x026f, 0x120d: 0x0272, 0x120e: 0x0272, 0x120f: 0x0272, 0x1210: 0x0272, 0x1211: 0x0275, - 0x1212: 0x0275, 0x1213: 0x0275, 0x1214: 0x0275, 0x1215: 0x0278, 0x1216: 0x0278, 0x1217: 0x0278, - 0x1218: 0x0278, 0x1219: 0x027b, 0x121a: 0x027b, 0x121b: 0x027b, 0x121c: 0x027b, 0x121d: 0x027e, - 0x121e: 0x027e, 0x121f: 0x027e, 0x1220: 0x027e, 0x1221: 0x0281, 0x1222: 0x0281, 0x1223: 0x0281, - 0x1224: 0x0281, 0x1225: 0x0284, 0x1226: 0x0284, 0x1227: 0x0284, 0x1228: 0x0284, 0x1229: 0x0287, - 0x122a: 0x0287, 0x122b: 0x0287, 0x122c: 0x0287, 0x122d: 0x028a, 0x122e: 0x028a, 0x122f: 0x028d, - 0x1230: 0x028d, 0x1231: 0x0290, 0x1232: 0x0290, 0x1233: 0x0290, 0x1234: 0x0290, 0x1235: 0x2e00, - 0x1236: 0x2e00, 0x1237: 0x2e08, 0x1238: 0x2e08, 0x1239: 0x2e10, 0x123a: 0x2e10, 0x123b: 0x1f82, - 0x123c: 0x1f82, - // Block 0x49, offset 0x1240 - 0x1240: 0x0081, 0x1241: 0x0083, 0x1242: 0x0085, 0x1243: 0x0087, 0x1244: 0x0089, 0x1245: 0x008b, - 0x1246: 0x008d, 0x1247: 0x008f, 0x1248: 0x0091, 0x1249: 0x0093, 0x124a: 0x0095, 0x124b: 0x0097, - 0x124c: 0x0099, 0x124d: 0x009b, 0x124e: 0x009d, 0x124f: 0x009f, 0x1250: 0x00a1, 0x1251: 0x00a3, - 0x1252: 0x00a5, 0x1253: 0x00a7, 0x1254: 0x00a9, 0x1255: 0x00ab, 0x1256: 0x00ad, 0x1257: 0x00af, - 0x1258: 0x00b1, 0x1259: 0x00b3, 0x125a: 0x00b5, 0x125b: 0x00b7, 0x125c: 0x00b9, 0x125d: 0x00bb, - 0x125e: 0x00bd, 0x125f: 0x0477, 0x1260: 0x047b, 0x1261: 0x0487, 0x1262: 0x049b, 0x1263: 0x049f, - 0x1264: 0x0483, 0x1265: 0x05ab, 0x1266: 0x05a3, 0x1267: 0x04c7, 0x1268: 0x04cf, 0x1269: 0x04d7, - 0x126a: 0x04df, 0x126b: 0x04e7, 0x126c: 0x056b, 0x126d: 0x0573, 0x126e: 0x057b, 0x126f: 0x051f, - 0x1270: 0x05af, 0x1271: 0x04cb, 0x1272: 0x04d3, 0x1273: 0x04db, 0x1274: 0x04e3, 0x1275: 0x04eb, - 0x1276: 0x04ef, 0x1277: 0x04f3, 0x1278: 0x04f7, 0x1279: 0x04fb, 0x127a: 0x04ff, 0x127b: 0x0503, - 0x127c: 0x0507, 0x127d: 0x050b, 0x127e: 0x050f, 0x127f: 0x0513, - // Block 0x4a, offset 0x1280 - 0x1280: 0x0517, 0x1281: 0x051b, 0x1282: 0x0523, 0x1283: 0x0527, 0x1284: 0x052b, 0x1285: 0x052f, - 0x1286: 0x0533, 0x1287: 0x0537, 0x1288: 0x053b, 0x1289: 0x053f, 0x128a: 0x0543, 0x128b: 0x0547, - 0x128c: 0x054b, 0x128d: 0x054f, 0x128e: 0x0553, 0x128f: 0x0557, 0x1290: 0x055b, 0x1291: 0x055f, - 0x1292: 0x0563, 0x1293: 0x0567, 0x1294: 0x056f, 0x1295: 0x0577, 0x1296: 0x057f, 0x1297: 0x0583, - 0x1298: 0x0587, 0x1299: 0x058b, 0x129a: 0x058f, 0x129b: 0x0593, 0x129c: 0x0597, 0x129d: 0x05a7, - 0x129e: 0x4a78, 0x129f: 0x4a7e, 0x12a0: 0x03c3, 0x12a1: 0x0313, 0x12a2: 0x0317, 0x12a3: 0x4a3b, - 0x12a4: 0x031b, 0x12a5: 0x4a41, 0x12a6: 0x4a47, 0x12a7: 0x031f, 0x12a8: 0x0323, 0x12a9: 0x0327, - 0x12aa: 0x4a4d, 0x12ab: 0x4a53, 0x12ac: 0x4a59, 0x12ad: 0x4a5f, 0x12ae: 0x4a65, 0x12af: 0x4a6b, - 0x12b0: 0x0367, 0x12b1: 0x032b, 0x12b2: 0x032f, 0x12b3: 0x0333, 0x12b4: 0x037b, 0x12b5: 0x0337, - 0x12b6: 0x033b, 0x12b7: 0x033f, 0x12b8: 0x0343, 0x12b9: 0x0347, 0x12ba: 0x034b, 0x12bb: 0x034f, - 0x12bc: 0x0353, 0x12bd: 0x0357, 0x12be: 0x035b, - // Block 0x4b, offset 0x12c0 - 0x12c2: 0x49bd, 0x12c3: 0x49c3, 0x12c4: 0x49c9, 0x12c5: 0x49cf, - 0x12c6: 0x49d5, 0x12c7: 0x49db, 0x12ca: 0x49e1, 0x12cb: 0x49e7, - 0x12cc: 0x49ed, 0x12cd: 0x49f3, 0x12ce: 0x49f9, 0x12cf: 0x49ff, - 0x12d2: 0x4a05, 0x12d3: 0x4a0b, 0x12d4: 0x4a11, 0x12d5: 0x4a17, 0x12d6: 0x4a1d, 0x12d7: 0x4a23, - 0x12da: 0x4a29, 0x12db: 0x4a2f, 0x12dc: 0x4a35, - 0x12e0: 0x00bf, 0x12e1: 0x00c2, 0x12e2: 0x00cb, 0x12e3: 0x4264, - 0x12e4: 0x00c8, 0x12e5: 0x00c5, 0x12e6: 0x0447, 0x12e8: 0x046b, 0x12e9: 0x044b, - 0x12ea: 0x044f, 0x12eb: 0x0453, 0x12ec: 0x0457, 0x12ed: 0x046f, 0x12ee: 0x0473, - // Block 0x4c, offset 0x1300 - 0x1300: 0x0063, 0x1301: 0x0065, 0x1302: 0x0067, 0x1303: 0x0069, 0x1304: 0x006b, 0x1305: 0x006d, - 0x1306: 0x006f, 0x1307: 0x0071, 0x1308: 0x0073, 0x1309: 0x0075, 0x130a: 0x0083, 0x130b: 0x0085, - 0x130c: 0x0087, 0x130d: 0x0089, 0x130e: 0x008b, 0x130f: 0x008d, 0x1310: 0x008f, 0x1311: 0x0091, - 0x1312: 0x0093, 0x1313: 0x0095, 0x1314: 0x0097, 0x1315: 0x0099, 0x1316: 0x009b, 0x1317: 0x009d, - 0x1318: 0x009f, 0x1319: 0x00a1, 0x131a: 0x00a3, 0x131b: 0x00a5, 0x131c: 0x00a7, 0x131d: 0x00a9, - 0x131e: 0x00ab, 0x131f: 0x00ad, 0x1320: 0x00af, 0x1321: 0x00b1, 0x1322: 0x00b3, 0x1323: 0x00b5, - 0x1324: 0x00dd, 0x1325: 0x00f2, 0x1328: 0x0173, 0x1329: 0x0176, - 0x132a: 0x0179, 0x132b: 0x017c, 0x132c: 0x017f, 0x132d: 0x0182, 0x132e: 0x0185, 0x132f: 0x0188, - 0x1330: 0x018b, 0x1331: 0x018e, 0x1332: 0x0191, 0x1333: 0x0194, 0x1334: 0x0197, 0x1335: 0x019a, - 0x1336: 0x019d, 0x1337: 0x01a0, 0x1338: 0x01a3, 0x1339: 0x0188, 0x133a: 0x01a6, 0x133b: 0x01a9, - 0x133c: 0x01ac, 0x133d: 0x01af, 0x133e: 0x01b2, 0x133f: 0x01b5, - // Block 0x4d, offset 0x1340 - 0x1340: 0x01fd, 0x1341: 0x0200, 0x1342: 0x0203, 0x1343: 0x045b, 0x1344: 0x01c7, 0x1345: 0x01d0, - 0x1346: 0x01d6, 0x1347: 0x01fa, 0x1348: 0x01eb, 0x1349: 0x01e8, 0x134a: 0x0206, 0x134b: 0x0209, - 0x134e: 0x0021, 0x134f: 0x0023, 0x1350: 0x0025, 0x1351: 0x0027, - 0x1352: 0x0029, 0x1353: 0x002b, 0x1354: 0x002d, 0x1355: 0x002f, 0x1356: 0x0031, 0x1357: 0x0033, - 0x1358: 0x0021, 0x1359: 0x0023, 0x135a: 0x0025, 0x135b: 0x0027, 0x135c: 0x0029, 0x135d: 0x002b, - 0x135e: 0x002d, 0x135f: 0x002f, 0x1360: 0x0031, 0x1361: 0x0033, 0x1362: 0x0021, 0x1363: 0x0023, - 0x1364: 0x0025, 0x1365: 0x0027, 0x1366: 0x0029, 0x1367: 0x002b, 0x1368: 0x002d, 0x1369: 0x002f, - 0x136a: 0x0031, 0x136b: 0x0033, 0x136c: 0x0021, 0x136d: 0x0023, 0x136e: 0x0025, 0x136f: 0x0027, - 0x1370: 0x0029, 0x1371: 0x002b, 0x1372: 0x002d, 0x1373: 0x002f, 0x1374: 0x0031, 0x1375: 0x0033, - 0x1376: 0x0021, 0x1377: 0x0023, 0x1378: 0x0025, 0x1379: 0x0027, 0x137a: 0x0029, 0x137b: 0x002b, - 0x137c: 0x002d, 0x137d: 0x002f, 0x137e: 0x0031, 0x137f: 0x0033, - // Block 0x4e, offset 0x1380 - 0x1380: 0x0239, 0x1381: 0x023c, 0x1382: 0x0248, 0x1383: 0x0251, 0x1385: 0x028a, - 0x1386: 0x025a, 0x1387: 0x024b, 0x1388: 0x0269, 0x1389: 0x0290, 0x138a: 0x027b, 0x138b: 0x027e, - 0x138c: 0x0281, 0x138d: 0x0284, 0x138e: 0x025d, 0x138f: 0x026f, 0x1390: 0x0275, 0x1391: 0x0263, - 0x1392: 0x0278, 0x1393: 0x0257, 0x1394: 0x0260, 0x1395: 0x0242, 0x1396: 0x0245, 0x1397: 0x024e, - 0x1398: 0x0254, 0x1399: 0x0266, 0x139a: 0x026c, 0x139b: 0x0272, 0x139c: 0x0293, 0x139d: 0x02e4, - 0x139e: 0x02cc, 0x139f: 0x0296, 0x13a1: 0x023c, 0x13a2: 0x0248, - 0x13a4: 0x0287, 0x13a7: 0x024b, 0x13a9: 0x0290, - 0x13aa: 0x027b, 0x13ab: 0x027e, 0x13ac: 0x0281, 0x13ad: 0x0284, 0x13ae: 0x025d, 0x13af: 0x026f, - 0x13b0: 0x0275, 0x13b1: 0x0263, 0x13b2: 0x0278, 0x13b4: 0x0260, 0x13b5: 0x0242, - 0x13b6: 0x0245, 0x13b7: 0x024e, 0x13b9: 0x0266, 0x13bb: 0x0272, - // Block 0x4f, offset 0x13c0 - 0x13c2: 0x0248, - 0x13c7: 0x024b, 0x13c9: 0x0290, 0x13cb: 0x027e, - 0x13cd: 0x0284, 0x13ce: 0x025d, 0x13cf: 0x026f, 0x13d1: 0x0263, - 0x13d2: 0x0278, 0x13d4: 0x0260, 0x13d7: 0x024e, - 0x13d9: 0x0266, 0x13db: 0x0272, 0x13dd: 0x02e4, - 0x13df: 0x0296, 0x13e1: 0x023c, 0x13e2: 0x0248, - 0x13e4: 0x0287, 0x13e7: 0x024b, 0x13e8: 0x0269, 0x13e9: 0x0290, - 0x13ea: 0x027b, 0x13ec: 0x0281, 0x13ed: 0x0284, 0x13ee: 0x025d, 0x13ef: 0x026f, - 0x13f0: 0x0275, 0x13f1: 0x0263, 0x13f2: 0x0278, 0x13f4: 0x0260, 0x13f5: 0x0242, - 0x13f6: 0x0245, 0x13f7: 0x024e, 0x13f9: 0x0266, 0x13fa: 0x026c, 0x13fb: 0x0272, - 0x13fc: 0x0293, 0x13fe: 0x02cc, - // Block 0x50, offset 0x1400 - 0x1400: 0x0239, 0x1401: 0x023c, 0x1402: 0x0248, 0x1403: 0x0251, 0x1404: 0x0287, 0x1405: 0x028a, - 0x1406: 0x025a, 0x1407: 0x024b, 0x1408: 0x0269, 0x1409: 0x0290, 0x140b: 0x027e, - 0x140c: 0x0281, 0x140d: 0x0284, 0x140e: 0x025d, 0x140f: 0x026f, 0x1410: 0x0275, 0x1411: 0x0263, - 0x1412: 0x0278, 0x1413: 0x0257, 0x1414: 0x0260, 0x1415: 0x0242, 0x1416: 0x0245, 0x1417: 0x024e, - 0x1418: 0x0254, 0x1419: 0x0266, 0x141a: 0x026c, 0x141b: 0x0272, - 0x1421: 0x023c, 0x1422: 0x0248, 0x1423: 0x0251, - 0x1425: 0x028a, 0x1426: 0x025a, 0x1427: 0x024b, 0x1428: 0x0269, 0x1429: 0x0290, - 0x142b: 0x027e, 0x142c: 0x0281, 0x142d: 0x0284, 0x142e: 0x025d, 0x142f: 0x026f, - 0x1430: 0x0275, 0x1431: 0x0263, 0x1432: 0x0278, 0x1433: 0x0257, 0x1434: 0x0260, 0x1435: 0x0242, - 0x1436: 0x0245, 0x1437: 0x024e, 0x1438: 0x0254, 0x1439: 0x0266, 0x143a: 0x026c, 0x143b: 0x0272, - // Block 0x51, offset 0x1440 - 0x1440: 0x1879, 0x1441: 0x1876, 0x1442: 0x187c, 0x1443: 0x18a0, 0x1444: 0x18c4, 0x1445: 0x18e8, - 0x1446: 0x190c, 0x1447: 0x1915, 0x1448: 0x191b, 0x1449: 0x1921, 0x144a: 0x1927, - 0x1450: 0x1a8c, 0x1451: 0x1a90, - 0x1452: 0x1a94, 0x1453: 0x1a98, 0x1454: 0x1a9c, 0x1455: 0x1aa0, 0x1456: 0x1aa4, 0x1457: 0x1aa8, - 0x1458: 0x1aac, 0x1459: 0x1ab0, 0x145a: 0x1ab4, 0x145b: 0x1ab8, 0x145c: 0x1abc, 0x145d: 0x1ac0, - 0x145e: 0x1ac4, 0x145f: 0x1ac8, 0x1460: 0x1acc, 0x1461: 0x1ad0, 0x1462: 0x1ad4, 0x1463: 0x1ad8, - 0x1464: 0x1adc, 0x1465: 0x1ae0, 0x1466: 0x1ae4, 0x1467: 0x1ae8, 0x1468: 0x1aec, 0x1469: 0x1af0, - 0x146a: 0x271e, 0x146b: 0x0047, 0x146c: 0x0065, 0x146d: 0x193c, 0x146e: 0x19b1, - 0x1470: 0x0043, 0x1471: 0x0045, 0x1472: 0x0047, 0x1473: 0x0049, 0x1474: 0x004b, 0x1475: 0x004d, - 0x1476: 0x004f, 0x1477: 0x0051, 0x1478: 0x0053, 0x1479: 0x0055, 0x147a: 0x0057, 0x147b: 0x0059, - 0x147c: 0x005b, 0x147d: 0x005d, 0x147e: 0x005f, 0x147f: 0x0061, - // Block 0x52, offset 0x1480 - 0x1480: 0x26ad, 0x1481: 0x26c2, 0x1482: 0x0503, - 0x1490: 0x0c0f, 0x1491: 0x0a47, - 0x1492: 0x08d3, 0x1493: 0x45c4, 0x1494: 0x071b, 0x1495: 0x09ef, 0x1496: 0x132f, 0x1497: 0x09ff, - 0x1498: 0x0727, 0x1499: 0x0cd7, 0x149a: 0x0eaf, 0x149b: 0x0caf, 0x149c: 0x0827, 0x149d: 0x0b6b, - 0x149e: 0x07bf, 0x149f: 0x0cb7, 0x14a0: 0x0813, 0x14a1: 0x1117, 0x14a2: 0x0f83, 0x14a3: 0x138b, - 0x14a4: 0x09d3, 0x14a5: 0x090b, 0x14a6: 0x0e63, 0x14a7: 0x0c1b, 0x14a8: 0x0c47, 0x14a9: 0x06bf, - 0x14aa: 0x06cb, 0x14ab: 0x140b, 0x14ac: 0x0adb, 0x14ad: 0x06e7, 0x14ae: 0x08ef, 0x14af: 0x0c3b, - 0x14b0: 0x13b3, 0x14b1: 0x0c13, 0x14b2: 0x106f, 0x14b3: 0x10ab, 0x14b4: 0x08f7, 0x14b5: 0x0e43, - 0x14b6: 0x0d0b, 0x14b7: 0x0d07, 0x14b8: 0x0f97, 0x14b9: 0x082b, 0x14ba: 0x0957, 0x14bb: 0x1443, - // Block 0x53, offset 0x14c0 - 0x14c0: 0x06fb, 0x14c1: 0x06f3, 0x14c2: 0x0703, 0x14c3: 0x1647, 0x14c4: 0x0747, 0x14c5: 0x0757, - 0x14c6: 0x075b, 0x14c7: 0x0763, 0x14c8: 0x076b, 0x14c9: 0x076f, 0x14ca: 0x077b, 0x14cb: 0x0773, - 0x14cc: 0x05b3, 0x14cd: 0x165b, 0x14ce: 0x078f, 0x14cf: 0x0793, 0x14d0: 0x0797, 0x14d1: 0x07b3, - 0x14d2: 0x164c, 0x14d3: 0x05b7, 0x14d4: 0x079f, 0x14d5: 0x07bf, 0x14d6: 0x1656, 0x14d7: 0x07cf, - 0x14d8: 0x07d7, 0x14d9: 0x0737, 0x14da: 0x07df, 0x14db: 0x07e3, 0x14dc: 0x1831, 0x14dd: 0x07ff, - 0x14de: 0x0807, 0x14df: 0x05bf, 0x14e0: 0x081f, 0x14e1: 0x0823, 0x14e2: 0x082b, 0x14e3: 0x082f, - 0x14e4: 0x05c3, 0x14e5: 0x0847, 0x14e6: 0x084b, 0x14e7: 0x0857, 0x14e8: 0x0863, 0x14e9: 0x0867, - 0x14ea: 0x086b, 0x14eb: 0x0873, 0x14ec: 0x0893, 0x14ed: 0x0897, 0x14ee: 0x089f, 0x14ef: 0x08af, - 0x14f0: 0x08b7, 0x14f1: 0x08bb, 0x14f2: 0x08bb, 0x14f3: 0x08bb, 0x14f4: 0x166a, 0x14f5: 0x0e93, - 0x14f6: 0x08cf, 0x14f7: 0x08d7, 0x14f8: 0x166f, 0x14f9: 0x08e3, 0x14fa: 0x08eb, 0x14fb: 0x08f3, - 0x14fc: 0x091b, 0x14fd: 0x0907, 0x14fe: 0x0913, 0x14ff: 0x0917, - // Block 0x54, offset 0x1500 - 0x1500: 0x091f, 0x1501: 0x0927, 0x1502: 0x092b, 0x1503: 0x0933, 0x1504: 0x093b, 0x1505: 0x093f, - 0x1506: 0x093f, 0x1507: 0x0947, 0x1508: 0x094f, 0x1509: 0x0953, 0x150a: 0x095f, 0x150b: 0x0983, - 0x150c: 0x0967, 0x150d: 0x0987, 0x150e: 0x096b, 0x150f: 0x0973, 0x1510: 0x080b, 0x1511: 0x09cf, - 0x1512: 0x0997, 0x1513: 0x099b, 0x1514: 0x099f, 0x1515: 0x0993, 0x1516: 0x09a7, 0x1517: 0x09a3, - 0x1518: 0x09bb, 0x1519: 0x1674, 0x151a: 0x09d7, 0x151b: 0x09db, 0x151c: 0x09e3, 0x151d: 0x09ef, - 0x151e: 0x09f7, 0x151f: 0x0a13, 0x1520: 0x1679, 0x1521: 0x167e, 0x1522: 0x0a1f, 0x1523: 0x0a23, - 0x1524: 0x0a27, 0x1525: 0x0a1b, 0x1526: 0x0a2f, 0x1527: 0x05c7, 0x1528: 0x05cb, 0x1529: 0x0a37, - 0x152a: 0x0a3f, 0x152b: 0x0a3f, 0x152c: 0x1683, 0x152d: 0x0a5b, 0x152e: 0x0a5f, 0x152f: 0x0a63, - 0x1530: 0x0a6b, 0x1531: 0x1688, 0x1532: 0x0a73, 0x1533: 0x0a77, 0x1534: 0x0b4f, 0x1535: 0x0a7f, - 0x1536: 0x05cf, 0x1537: 0x0a8b, 0x1538: 0x0a9b, 0x1539: 0x0aa7, 0x153a: 0x0aa3, 0x153b: 0x1692, - 0x153c: 0x0aaf, 0x153d: 0x1697, 0x153e: 0x0abb, 0x153f: 0x0ab7, - // Block 0x55, offset 0x1540 - 0x1540: 0x0abf, 0x1541: 0x0acf, 0x1542: 0x0ad3, 0x1543: 0x05d3, 0x1544: 0x0ae3, 0x1545: 0x0aeb, - 0x1546: 0x0aef, 0x1547: 0x0af3, 0x1548: 0x05d7, 0x1549: 0x169c, 0x154a: 0x05db, 0x154b: 0x0b0f, - 0x154c: 0x0b13, 0x154d: 0x0b17, 0x154e: 0x0b1f, 0x154f: 0x1863, 0x1550: 0x0b37, 0x1551: 0x16a6, - 0x1552: 0x16a6, 0x1553: 0x11d7, 0x1554: 0x0b47, 0x1555: 0x0b47, 0x1556: 0x05df, 0x1557: 0x16c9, - 0x1558: 0x179b, 0x1559: 0x0b57, 0x155a: 0x0b5f, 0x155b: 0x05e3, 0x155c: 0x0b73, 0x155d: 0x0b83, - 0x155e: 0x0b87, 0x155f: 0x0b8f, 0x1560: 0x0b9f, 0x1561: 0x05eb, 0x1562: 0x05e7, 0x1563: 0x0ba3, - 0x1564: 0x16ab, 0x1565: 0x0ba7, 0x1566: 0x0bbb, 0x1567: 0x0bbf, 0x1568: 0x0bc3, 0x1569: 0x0bbf, - 0x156a: 0x0bcf, 0x156b: 0x0bd3, 0x156c: 0x0be3, 0x156d: 0x0bdb, 0x156e: 0x0bdf, 0x156f: 0x0be7, - 0x1570: 0x0beb, 0x1571: 0x0bef, 0x1572: 0x0bfb, 0x1573: 0x0bff, 0x1574: 0x0c17, 0x1575: 0x0c1f, - 0x1576: 0x0c2f, 0x1577: 0x0c43, 0x1578: 0x16ba, 0x1579: 0x0c3f, 0x157a: 0x0c33, 0x157b: 0x0c4b, - 0x157c: 0x0c53, 0x157d: 0x0c67, 0x157e: 0x16bf, 0x157f: 0x0c6f, - // Block 0x56, offset 0x1580 - 0x1580: 0x0c63, 0x1581: 0x0c5b, 0x1582: 0x05ef, 0x1583: 0x0c77, 0x1584: 0x0c7f, 0x1585: 0x0c87, - 0x1586: 0x0c7b, 0x1587: 0x05f3, 0x1588: 0x0c97, 0x1589: 0x0c9f, 0x158a: 0x16c4, 0x158b: 0x0ccb, - 0x158c: 0x0cff, 0x158d: 0x0cdb, 0x158e: 0x05ff, 0x158f: 0x0ce7, 0x1590: 0x05fb, 0x1591: 0x05f7, - 0x1592: 0x07c3, 0x1593: 0x07c7, 0x1594: 0x0d03, 0x1595: 0x0ceb, 0x1596: 0x11ab, 0x1597: 0x0663, - 0x1598: 0x0d0f, 0x1599: 0x0d13, 0x159a: 0x0d17, 0x159b: 0x0d2b, 0x159c: 0x0d23, 0x159d: 0x16dd, - 0x159e: 0x0603, 0x159f: 0x0d3f, 0x15a0: 0x0d33, 0x15a1: 0x0d4f, 0x15a2: 0x0d57, 0x15a3: 0x16e7, - 0x15a4: 0x0d5b, 0x15a5: 0x0d47, 0x15a6: 0x0d63, 0x15a7: 0x0607, 0x15a8: 0x0d67, 0x15a9: 0x0d6b, - 0x15aa: 0x0d6f, 0x15ab: 0x0d7b, 0x15ac: 0x16ec, 0x15ad: 0x0d83, 0x15ae: 0x060b, 0x15af: 0x0d8f, - 0x15b0: 0x16f1, 0x15b1: 0x0d93, 0x15b2: 0x060f, 0x15b3: 0x0d9f, 0x15b4: 0x0dab, 0x15b5: 0x0db7, - 0x15b6: 0x0dbb, 0x15b7: 0x16f6, 0x15b8: 0x168d, 0x15b9: 0x16fb, 0x15ba: 0x0ddb, 0x15bb: 0x1700, - 0x15bc: 0x0de7, 0x15bd: 0x0def, 0x15be: 0x0ddf, 0x15bf: 0x0dfb, - // Block 0x57, offset 0x15c0 - 0x15c0: 0x0e0b, 0x15c1: 0x0e1b, 0x15c2: 0x0e0f, 0x15c3: 0x0e13, 0x15c4: 0x0e1f, 0x15c5: 0x0e23, - 0x15c6: 0x1705, 0x15c7: 0x0e07, 0x15c8: 0x0e3b, 0x15c9: 0x0e3f, 0x15ca: 0x0613, 0x15cb: 0x0e53, - 0x15cc: 0x0e4f, 0x15cd: 0x170a, 0x15ce: 0x0e33, 0x15cf: 0x0e6f, 0x15d0: 0x170f, 0x15d1: 0x1714, - 0x15d2: 0x0e73, 0x15d3: 0x0e87, 0x15d4: 0x0e83, 0x15d5: 0x0e7f, 0x15d6: 0x0617, 0x15d7: 0x0e8b, - 0x15d8: 0x0e9b, 0x15d9: 0x0e97, 0x15da: 0x0ea3, 0x15db: 0x1651, 0x15dc: 0x0eb3, 0x15dd: 0x1719, - 0x15de: 0x0ebf, 0x15df: 0x1723, 0x15e0: 0x0ed3, 0x15e1: 0x0edf, 0x15e2: 0x0ef3, 0x15e3: 0x1728, - 0x15e4: 0x0f07, 0x15e5: 0x0f0b, 0x15e6: 0x172d, 0x15e7: 0x1732, 0x15e8: 0x0f27, 0x15e9: 0x0f37, - 0x15ea: 0x061b, 0x15eb: 0x0f3b, 0x15ec: 0x061f, 0x15ed: 0x061f, 0x15ee: 0x0f53, 0x15ef: 0x0f57, - 0x15f0: 0x0f5f, 0x15f1: 0x0f63, 0x15f2: 0x0f6f, 0x15f3: 0x0623, 0x15f4: 0x0f87, 0x15f5: 0x1737, - 0x15f6: 0x0fa3, 0x15f7: 0x173c, 0x15f8: 0x0faf, 0x15f9: 0x16a1, 0x15fa: 0x0fbf, 0x15fb: 0x1741, - 0x15fc: 0x1746, 0x15fd: 0x174b, 0x15fe: 0x0627, 0x15ff: 0x062b, - // Block 0x58, offset 0x1600 - 0x1600: 0x0ff7, 0x1601: 0x1755, 0x1602: 0x1750, 0x1603: 0x175a, 0x1604: 0x175f, 0x1605: 0x0fff, - 0x1606: 0x1003, 0x1607: 0x1003, 0x1608: 0x100b, 0x1609: 0x0633, 0x160a: 0x100f, 0x160b: 0x0637, - 0x160c: 0x063b, 0x160d: 0x1769, 0x160e: 0x1023, 0x160f: 0x102b, 0x1610: 0x1037, 0x1611: 0x063f, - 0x1612: 0x176e, 0x1613: 0x105b, 0x1614: 0x1773, 0x1615: 0x1778, 0x1616: 0x107b, 0x1617: 0x1093, - 0x1618: 0x0643, 0x1619: 0x109b, 0x161a: 0x109f, 0x161b: 0x10a3, 0x161c: 0x177d, 0x161d: 0x1782, - 0x161e: 0x1782, 0x161f: 0x10bb, 0x1620: 0x0647, 0x1621: 0x1787, 0x1622: 0x10cf, 0x1623: 0x10d3, - 0x1624: 0x064b, 0x1625: 0x178c, 0x1626: 0x10ef, 0x1627: 0x064f, 0x1628: 0x10ff, 0x1629: 0x10f7, - 0x162a: 0x1107, 0x162b: 0x1796, 0x162c: 0x111f, 0x162d: 0x0653, 0x162e: 0x112b, 0x162f: 0x1133, - 0x1630: 0x1143, 0x1631: 0x0657, 0x1632: 0x17a0, 0x1633: 0x17a5, 0x1634: 0x065b, 0x1635: 0x17aa, - 0x1636: 0x115b, 0x1637: 0x17af, 0x1638: 0x1167, 0x1639: 0x1173, 0x163a: 0x117b, 0x163b: 0x17b4, - 0x163c: 0x17b9, 0x163d: 0x118f, 0x163e: 0x17be, 0x163f: 0x1197, - // Block 0x59, offset 0x1640 - 0x1640: 0x16ce, 0x1641: 0x065f, 0x1642: 0x11af, 0x1643: 0x11b3, 0x1644: 0x0667, 0x1645: 0x11b7, - 0x1646: 0x0a33, 0x1647: 0x17c3, 0x1648: 0x17c8, 0x1649: 0x16d3, 0x164a: 0x16d8, 0x164b: 0x11d7, - 0x164c: 0x11db, 0x164d: 0x13f3, 0x164e: 0x066b, 0x164f: 0x1207, 0x1650: 0x1203, 0x1651: 0x120b, - 0x1652: 0x083f, 0x1653: 0x120f, 0x1654: 0x1213, 0x1655: 0x1217, 0x1656: 0x121f, 0x1657: 0x17cd, - 0x1658: 0x121b, 0x1659: 0x1223, 0x165a: 0x1237, 0x165b: 0x123b, 0x165c: 0x1227, 0x165d: 0x123f, - 0x165e: 0x1253, 0x165f: 0x1267, 0x1660: 0x1233, 0x1661: 0x1247, 0x1662: 0x124b, 0x1663: 0x124f, - 0x1664: 0x17d2, 0x1665: 0x17dc, 0x1666: 0x17d7, 0x1667: 0x066f, 0x1668: 0x126f, 0x1669: 0x1273, - 0x166a: 0x127b, 0x166b: 0x17f0, 0x166c: 0x127f, 0x166d: 0x17e1, 0x166e: 0x0673, 0x166f: 0x0677, - 0x1670: 0x17e6, 0x1671: 0x17eb, 0x1672: 0x067b, 0x1673: 0x129f, 0x1674: 0x12a3, 0x1675: 0x12a7, - 0x1676: 0x12ab, 0x1677: 0x12b7, 0x1678: 0x12b3, 0x1679: 0x12bf, 0x167a: 0x12bb, 0x167b: 0x12cb, - 0x167c: 0x12c3, 0x167d: 0x12c7, 0x167e: 0x12cf, 0x167f: 0x067f, - // Block 0x5a, offset 0x1680 - 0x1680: 0x12d7, 0x1681: 0x12db, 0x1682: 0x0683, 0x1683: 0x12eb, 0x1684: 0x12ef, 0x1685: 0x17f5, - 0x1686: 0x12fb, 0x1687: 0x12ff, 0x1688: 0x0687, 0x1689: 0x130b, 0x168a: 0x05bb, 0x168b: 0x17fa, - 0x168c: 0x17ff, 0x168d: 0x068b, 0x168e: 0x068f, 0x168f: 0x1337, 0x1690: 0x134f, 0x1691: 0x136b, - 0x1692: 0x137b, 0x1693: 0x1804, 0x1694: 0x138f, 0x1695: 0x1393, 0x1696: 0x13ab, 0x1697: 0x13b7, - 0x1698: 0x180e, 0x1699: 0x1660, 0x169a: 0x13c3, 0x169b: 0x13bf, 0x169c: 0x13cb, 0x169d: 0x1665, - 0x169e: 0x13d7, 0x169f: 0x13e3, 0x16a0: 0x1813, 0x16a1: 0x1818, 0x16a2: 0x1423, 0x16a3: 0x142f, - 0x16a4: 0x1437, 0x16a5: 0x181d, 0x16a6: 0x143b, 0x16a7: 0x1467, 0x16a8: 0x1473, 0x16a9: 0x1477, - 0x16aa: 0x146f, 0x16ab: 0x1483, 0x16ac: 0x1487, 0x16ad: 0x1822, 0x16ae: 0x1493, 0x16af: 0x0693, - 0x16b0: 0x149b, 0x16b1: 0x1827, 0x16b2: 0x0697, 0x16b3: 0x14d3, 0x16b4: 0x0ac3, 0x16b5: 0x14eb, - 0x16b6: 0x182c, 0x16b7: 0x1836, 0x16b8: 0x069b, 0x16b9: 0x069f, 0x16ba: 0x1513, 0x16bb: 0x183b, - 0x16bc: 0x06a3, 0x16bd: 0x1840, 0x16be: 0x152b, 0x16bf: 0x152b, - // Block 0x5b, offset 0x16c0 - 0x16c0: 0x1533, 0x16c1: 0x1845, 0x16c2: 0x154b, 0x16c3: 0x06a7, 0x16c4: 0x155b, 0x16c5: 0x1567, - 0x16c6: 0x156f, 0x16c7: 0x1577, 0x16c8: 0x06ab, 0x16c9: 0x184a, 0x16ca: 0x158b, 0x16cb: 0x15a7, - 0x16cc: 0x15b3, 0x16cd: 0x06af, 0x16ce: 0x06b3, 0x16cf: 0x15b7, 0x16d0: 0x184f, 0x16d1: 0x06b7, - 0x16d2: 0x1854, 0x16d3: 0x1859, 0x16d4: 0x185e, 0x16d5: 0x15db, 0x16d6: 0x06bb, 0x16d7: 0x15ef, - 0x16d8: 0x15f7, 0x16d9: 0x15fb, 0x16da: 0x1603, 0x16db: 0x160b, 0x16dc: 0x1613, 0x16dd: 0x1868, -} - -// nfkcIndex: 22 blocks, 1408 entries, 1408 bytes -// Block 0 is the zero block. -var nfkcIndex = [1408]uint8{ - // Block 0x0, offset 0x0 - // Block 0x1, offset 0x40 - // Block 0x2, offset 0x80 - // Block 0x3, offset 0xc0 - 0xc2: 0x5a, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x5b, 0xc7: 0x04, - 0xc8: 0x05, 0xca: 0x5c, 0xcb: 0x5d, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x09, - 0xd0: 0x0a, 0xd1: 0x5e, 0xd2: 0x5f, 0xd3: 0x0b, 0xd6: 0x0c, 0xd7: 0x60, - 0xd8: 0x61, 0xd9: 0x0d, 0xdb: 0x62, 0xdc: 0x63, 0xdd: 0x64, 0xdf: 0x65, - 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, - 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a, - 0xf0: 0x13, - // Block 0x4, offset 0x100 - 0x120: 0x66, 0x121: 0x67, 0x123: 0x68, 0x124: 0x69, 0x125: 0x6a, 0x126: 0x6b, 0x127: 0x6c, - 0x128: 0x6d, 0x129: 0x6e, 0x12a: 0x6f, 0x12b: 0x70, 0x12c: 0x6b, 0x12d: 0x71, 0x12e: 0x72, 0x12f: 0x73, - 0x131: 0x74, 0x132: 0x75, 0x133: 0x76, 0x134: 0x77, 0x135: 0x78, 0x137: 0x79, - 0x138: 0x7a, 0x139: 0x7b, 0x13a: 0x7c, 0x13b: 0x7d, 0x13c: 0x7e, 0x13d: 0x7f, 0x13e: 0x80, 0x13f: 0x81, - // Block 0x5, offset 0x140 - 0x140: 0x82, 0x142: 0x83, 0x143: 0x84, 0x144: 0x85, 0x145: 0x86, 0x146: 0x87, 0x147: 0x88, - 0x14d: 0x89, - 0x15c: 0x8a, 0x15f: 0x8b, - 0x162: 0x8c, 0x164: 0x8d, - 0x168: 0x8e, 0x169: 0x8f, 0x16a: 0x90, 0x16c: 0x0e, 0x16d: 0x91, 0x16e: 0x92, 0x16f: 0x93, - 0x170: 0x94, 0x173: 0x95, 0x174: 0x96, 0x175: 0x0f, 0x176: 0x10, 0x177: 0x97, - 0x178: 0x11, 0x179: 0x12, 0x17a: 0x13, 0x17b: 0x14, 0x17c: 0x15, 0x17d: 0x16, 0x17e: 0x17, 0x17f: 0x18, - // Block 0x6, offset 0x180 - 0x180: 0x98, 0x181: 0x99, 0x182: 0x9a, 0x183: 0x9b, 0x184: 0x19, 0x185: 0x1a, 0x186: 0x9c, 0x187: 0x9d, - 0x188: 0x9e, 0x189: 0x1b, 0x18a: 0x1c, 0x18b: 0x9f, 0x18c: 0xa0, - 0x191: 0x1d, 0x192: 0x1e, 0x193: 0xa1, - 0x1a8: 0xa2, 0x1a9: 0xa3, 0x1ab: 0xa4, - 0x1b1: 0xa5, 0x1b3: 0xa6, 0x1b5: 0xa7, 0x1b7: 0xa8, - 0x1ba: 0xa9, 0x1bb: 0xaa, 0x1bc: 0x1f, 0x1bd: 0x20, 0x1be: 0x21, 0x1bf: 0xab, - // Block 0x7, offset 0x1c0 - 0x1c0: 0xac, 0x1c1: 0x22, 0x1c2: 0x23, 0x1c3: 0x24, 0x1c4: 0xad, 0x1c5: 0x25, 0x1c6: 0x26, - 0x1c8: 0x27, 0x1c9: 0x28, 0x1ca: 0x29, 0x1cb: 0x2a, 0x1cc: 0x2b, 0x1cd: 0x2c, 0x1ce: 0x2d, 0x1cf: 0x2e, - // Block 0x8, offset 0x200 - 0x219: 0xae, 0x21a: 0xaf, 0x21b: 0xb0, 0x21d: 0xb1, 0x21f: 0xb2, - 0x220: 0xb3, 0x223: 0xb4, 0x224: 0xb5, 0x225: 0xb6, 0x226: 0xb7, 0x227: 0xb8, - 0x22a: 0xb9, 0x22b: 0xba, 0x22d: 0xbb, 0x22f: 0xbc, - 0x230: 0xbd, 0x231: 0xbe, 0x232: 0xbf, 0x233: 0xc0, 0x234: 0xc1, 0x235: 0xc2, 0x236: 0xc3, 0x237: 0xbd, - 0x238: 0xbe, 0x239: 0xbf, 0x23a: 0xc0, 0x23b: 0xc1, 0x23c: 0xc2, 0x23d: 0xc3, 0x23e: 0xbd, 0x23f: 0xbe, - // Block 0x9, offset 0x240 - 0x240: 0xbf, 0x241: 0xc0, 0x242: 0xc1, 0x243: 0xc2, 0x244: 0xc3, 0x245: 0xbd, 0x246: 0xbe, 0x247: 0xbf, - 0x248: 0xc0, 0x249: 0xc1, 0x24a: 0xc2, 0x24b: 0xc3, 0x24c: 0xbd, 0x24d: 0xbe, 0x24e: 0xbf, 0x24f: 0xc0, - 0x250: 0xc1, 0x251: 0xc2, 0x252: 0xc3, 0x253: 0xbd, 0x254: 0xbe, 0x255: 0xbf, 0x256: 0xc0, 0x257: 0xc1, - 0x258: 0xc2, 0x259: 0xc3, 0x25a: 0xbd, 0x25b: 0xbe, 0x25c: 0xbf, 0x25d: 0xc0, 0x25e: 0xc1, 0x25f: 0xc2, - 0x260: 0xc3, 0x261: 0xbd, 0x262: 0xbe, 0x263: 0xbf, 0x264: 0xc0, 0x265: 0xc1, 0x266: 0xc2, 0x267: 0xc3, - 0x268: 0xbd, 0x269: 0xbe, 0x26a: 0xbf, 0x26b: 0xc0, 0x26c: 0xc1, 0x26d: 0xc2, 0x26e: 0xc3, 0x26f: 0xbd, - 0x270: 0xbe, 0x271: 0xbf, 0x272: 0xc0, 0x273: 0xc1, 0x274: 0xc2, 0x275: 0xc3, 0x276: 0xbd, 0x277: 0xbe, - 0x278: 0xbf, 0x279: 0xc0, 0x27a: 0xc1, 0x27b: 0xc2, 0x27c: 0xc3, 0x27d: 0xbd, 0x27e: 0xbe, 0x27f: 0xbf, - // Block 0xa, offset 0x280 - 0x280: 0xc0, 0x281: 0xc1, 0x282: 0xc2, 0x283: 0xc3, 0x284: 0xbd, 0x285: 0xbe, 0x286: 0xbf, 0x287: 0xc0, - 0x288: 0xc1, 0x289: 0xc2, 0x28a: 0xc3, 0x28b: 0xbd, 0x28c: 0xbe, 0x28d: 0xbf, 0x28e: 0xc0, 0x28f: 0xc1, - 0x290: 0xc2, 0x291: 0xc3, 0x292: 0xbd, 0x293: 0xbe, 0x294: 0xbf, 0x295: 0xc0, 0x296: 0xc1, 0x297: 0xc2, - 0x298: 0xc3, 0x299: 0xbd, 0x29a: 0xbe, 0x29b: 0xbf, 0x29c: 0xc0, 0x29d: 0xc1, 0x29e: 0xc2, 0x29f: 0xc3, - 0x2a0: 0xbd, 0x2a1: 0xbe, 0x2a2: 0xbf, 0x2a3: 0xc0, 0x2a4: 0xc1, 0x2a5: 0xc2, 0x2a6: 0xc3, 0x2a7: 0xbd, - 0x2a8: 0xbe, 0x2a9: 0xbf, 0x2aa: 0xc0, 0x2ab: 0xc1, 0x2ac: 0xc2, 0x2ad: 0xc3, 0x2ae: 0xbd, 0x2af: 0xbe, - 0x2b0: 0xbf, 0x2b1: 0xc0, 0x2b2: 0xc1, 0x2b3: 0xc2, 0x2b4: 0xc3, 0x2b5: 0xbd, 0x2b6: 0xbe, 0x2b7: 0xbf, - 0x2b8: 0xc0, 0x2b9: 0xc1, 0x2ba: 0xc2, 0x2bb: 0xc3, 0x2bc: 0xbd, 0x2bd: 0xbe, 0x2be: 0xbf, 0x2bf: 0xc0, - // Block 0xb, offset 0x2c0 - 0x2c0: 0xc1, 0x2c1: 0xc2, 0x2c2: 0xc3, 0x2c3: 0xbd, 0x2c4: 0xbe, 0x2c5: 0xbf, 0x2c6: 0xc0, 0x2c7: 0xc1, - 0x2c8: 0xc2, 0x2c9: 0xc3, 0x2ca: 0xbd, 0x2cb: 0xbe, 0x2cc: 0xbf, 0x2cd: 0xc0, 0x2ce: 0xc1, 0x2cf: 0xc2, - 0x2d0: 0xc3, 0x2d1: 0xbd, 0x2d2: 0xbe, 0x2d3: 0xbf, 0x2d4: 0xc0, 0x2d5: 0xc1, 0x2d6: 0xc2, 0x2d7: 0xc3, - 0x2d8: 0xbd, 0x2d9: 0xbe, 0x2da: 0xbf, 0x2db: 0xc0, 0x2dc: 0xc1, 0x2dd: 0xc2, 0x2de: 0xc4, - // Block 0xc, offset 0x300 - 0x324: 0x2f, 0x325: 0x30, 0x326: 0x31, 0x327: 0x32, - 0x328: 0x33, 0x329: 0x34, 0x32a: 0x35, 0x32b: 0x36, 0x32c: 0x37, 0x32d: 0x38, 0x32e: 0x39, 0x32f: 0x3a, - 0x330: 0x3b, 0x331: 0x3c, 0x332: 0x3d, 0x333: 0x3e, 0x334: 0x3f, 0x335: 0x40, 0x336: 0x41, 0x337: 0x42, - 0x338: 0x43, 0x339: 0x44, 0x33a: 0x45, 0x33b: 0x46, 0x33c: 0xc5, 0x33d: 0x47, 0x33e: 0x48, 0x33f: 0x49, - // Block 0xd, offset 0x340 - 0x347: 0xc6, - 0x34b: 0xc7, 0x34d: 0xc8, - 0x368: 0xc9, 0x36b: 0xca, - // Block 0xe, offset 0x380 - 0x381: 0xcb, 0x382: 0xcc, 0x384: 0xcd, 0x385: 0xb7, 0x387: 0xce, - 0x388: 0xcf, 0x38b: 0xd0, 0x38c: 0x6b, 0x38d: 0xd1, - 0x391: 0xd2, 0x392: 0xd3, 0x393: 0xd4, 0x396: 0xd5, 0x397: 0xd6, - 0x398: 0xd7, 0x39a: 0xd8, 0x39c: 0xd9, - 0x3b0: 0xd7, - // Block 0xf, offset 0x3c0 - 0x3eb: 0xda, 0x3ec: 0xdb, - // Block 0x10, offset 0x400 - 0x432: 0xdc, - // Block 0x11, offset 0x440 - 0x445: 0xdd, 0x446: 0xde, 0x447: 0xdf, - 0x449: 0xe0, - 0x450: 0xe1, 0x451: 0xe2, 0x452: 0xe3, 0x453: 0xe4, 0x454: 0xe5, 0x455: 0xe6, 0x456: 0xe7, 0x457: 0xe8, - 0x458: 0xe9, 0x459: 0xea, 0x45a: 0x4a, 0x45b: 0xeb, 0x45c: 0xec, 0x45d: 0xed, 0x45e: 0xee, 0x45f: 0x4b, - // Block 0x12, offset 0x480 - 0x480: 0xef, - 0x4a3: 0xf0, 0x4a5: 0xf1, - 0x4b8: 0x4c, 0x4b9: 0x4d, 0x4ba: 0x4e, - // Block 0x13, offset 0x4c0 - 0x4c4: 0x4f, 0x4c5: 0xf2, 0x4c6: 0xf3, - 0x4c8: 0x50, 0x4c9: 0xf4, - // Block 0x14, offset 0x500 - 0x520: 0x51, 0x521: 0x52, 0x522: 0x53, 0x523: 0x54, 0x524: 0x55, 0x525: 0x56, 0x526: 0x57, 0x527: 0x58, - 0x528: 0x59, - // Block 0x15, offset 0x540 - 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d, - 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11, - 0x56f: 0x12, -} - -// nfkcSparseOffset: 155 entries, 310 bytes -var 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} - -// nfkcSparseValues: 875 entries, 3500 bytes -var nfkcSparseValues = [875]valueRange{ - // Block 0x0, offset 0x0 - {value: 0x0002, lo: 0x0d}, - {value: 0x0001, lo: 0xa0, hi: 0xa0}, - {value: 0x4278, lo: 0xa8, hi: 0xa8}, - {value: 0x0083, lo: 0xaa, hi: 0xaa}, - {value: 0x4264, lo: 0xaf, hi: 0xaf}, - {value: 0x0025, lo: 0xb2, hi: 0xb3}, - {value: 0x425a, lo: 0xb4, hi: 0xb4}, - {value: 0x01dc, lo: 0xb5, hi: 0xb5}, - {value: 0x4291, lo: 0xb8, hi: 0xb8}, - {value: 0x0023, lo: 0xb9, hi: 0xb9}, - {value: 0x009f, lo: 0xba, hi: 0xba}, - {value: 0x221c, lo: 0xbc, hi: 0xbc}, - {value: 0x2210, lo: 0xbd, hi: 0xbd}, - {value: 0x22b2, lo: 0xbe, hi: 0xbe}, - // Block 0x1, offset 0xe - {value: 0x0091, lo: 0x03}, - {value: 0x46e2, lo: 0xa0, hi: 0xa1}, - {value: 0x4714, lo: 0xaf, hi: 0xb0}, - {value: 0xa000, lo: 0xb7, hi: 0xb7}, - // Block 0x2, offset 0x12 - {value: 0x0003, lo: 0x08}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x0091, lo: 0xb0, hi: 0xb0}, - {value: 0x0119, lo: 0xb1, hi: 0xb1}, - {value: 0x0095, lo: 0xb2, hi: 0xb2}, - {value: 0x00a5, lo: 0xb3, hi: 0xb3}, - {value: 0x0143, lo: 0xb4, hi: 0xb6}, - {value: 0x00af, lo: 0xb7, hi: 0xb7}, - {value: 0x00b3, lo: 0xb8, hi: 0xb8}, - // Block 0x3, offset 0x1b - {value: 0x000a, lo: 0x09}, - {value: 0x426e, lo: 0x98, hi: 0x98}, - {value: 0x4273, lo: 0x99, hi: 0x9a}, - {value: 0x4296, lo: 0x9b, hi: 0x9b}, - {value: 0x425f, lo: 0x9c, hi: 0x9c}, - {value: 0x4282, lo: 0x9d, hi: 0x9d}, - {value: 0x0113, lo: 0xa0, hi: 0xa0}, - {value: 0x0099, lo: 0xa1, hi: 0xa1}, - {value: 0x00a7, lo: 0xa2, hi: 0xa3}, - {value: 0x0167, lo: 0xa4, hi: 0xa4}, - // Block 0x4, offset 0x25 - {value: 0x0000, lo: 0x0f}, - {value: 0xa000, lo: 0x83, hi: 0x83}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0xa000, lo: 0x8b, hi: 0x8b}, - {value: 0xa000, lo: 0x8d, hi: 0x8d}, - {value: 0x37a5, lo: 0x90, hi: 0x90}, - {value: 0x37b1, lo: 0x91, hi: 0x91}, - {value: 0x379f, lo: 0x93, hi: 0x93}, - {value: 0xa000, lo: 0x96, hi: 0x96}, - {value: 0x3817, lo: 0x97, hi: 0x97}, - {value: 0x37e1, lo: 0x9c, hi: 0x9c}, - {value: 0x37c9, lo: 0x9d, hi: 0x9d}, - {value: 0x37f3, lo: 0x9e, hi: 0x9e}, - {value: 0xa000, lo: 0xb4, hi: 0xb5}, - {value: 0x381d, lo: 0xb6, hi: 0xb6}, - {value: 0x3823, lo: 0xb7, hi: 0xb7}, - // Block 0x5, offset 0x35 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x83, hi: 0x87}, - // Block 0x6, offset 0x37 - {value: 0x0001, lo: 0x04}, - {value: 0x8113, lo: 0x81, hi: 0x82}, - {value: 0x8132, lo: 0x84, hi: 0x84}, - {value: 0x812d, lo: 0x85, hi: 0x85}, - {value: 0x810d, lo: 0x87, hi: 0x87}, - // Block 0x7, offset 0x3c - {value: 0x0000, lo: 0x0a}, - {value: 0x8132, lo: 0x90, hi: 0x97}, - {value: 0x8119, lo: 0x98, hi: 0x98}, - {value: 0x811a, lo: 0x99, hi: 0x99}, - {value: 0x811b, lo: 0x9a, hi: 0x9a}, - {value: 0x3841, lo: 0xa2, hi: 0xa2}, - {value: 0x3847, lo: 0xa3, hi: 0xa3}, - {value: 0x3853, lo: 0xa4, hi: 0xa4}, - {value: 0x384d, lo: 0xa5, hi: 0xa5}, - {value: 0x3859, lo: 0xa6, hi: 0xa6}, - {value: 0xa000, lo: 0xa7, hi: 0xa7}, - // Block 0x8, offset 0x47 - {value: 0x0000, lo: 0x0e}, - {value: 0x386b, lo: 0x80, hi: 0x80}, - {value: 0xa000, lo: 0x81, hi: 0x81}, - {value: 0x385f, lo: 0x82, hi: 0x82}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x3865, lo: 0x93, hi: 0x93}, - {value: 0xa000, lo: 0x95, hi: 0x95}, - {value: 0x8132, lo: 0x96, hi: 0x9c}, - {value: 0x8132, lo: 0x9f, hi: 0xa2}, - {value: 0x812d, lo: 0xa3, hi: 0xa3}, - {value: 0x8132, lo: 0xa4, hi: 0xa4}, - {value: 0x8132, lo: 0xa7, hi: 0xa8}, - {value: 0x812d, lo: 0xaa, hi: 0xaa}, - {value: 0x8132, lo: 0xab, hi: 0xac}, - {value: 0x812d, lo: 0xad, hi: 0xad}, - // Block 0x9, offset 0x56 - {value: 0x0000, lo: 0x0c}, - {value: 0x811f, lo: 0x91, hi: 0x91}, - {value: 0x8132, lo: 0xb0, hi: 0xb0}, - {value: 0x812d, lo: 0xb1, hi: 0xb1}, - {value: 0x8132, lo: 0xb2, hi: 0xb3}, - {value: 0x812d, lo: 0xb4, hi: 0xb4}, - {value: 0x8132, lo: 0xb5, hi: 0xb6}, - {value: 0x812d, lo: 0xb7, hi: 0xb9}, - {value: 0x8132, lo: 0xba, hi: 0xba}, - {value: 0x812d, lo: 0xbb, hi: 0xbc}, - {value: 0x8132, lo: 0xbd, hi: 0xbd}, - {value: 0x812d, lo: 0xbe, hi: 0xbe}, - {value: 0x8132, lo: 0xbf, hi: 0xbf}, - // Block 0xa, offset 0x63 - {value: 0x0005, lo: 0x07}, - {value: 0x8132, lo: 0x80, hi: 0x80}, - {value: 0x8132, lo: 0x81, hi: 0x81}, - {value: 0x812d, lo: 0x82, hi: 0x83}, - {value: 0x812d, lo: 0x84, hi: 0x85}, - {value: 0x812d, lo: 0x86, hi: 0x87}, - {value: 0x812d, lo: 0x88, hi: 0x89}, - {value: 0x8132, lo: 0x8a, hi: 0x8a}, - // Block 0xb, offset 0x6b - {value: 0x0000, lo: 0x03}, - {value: 0x8132, lo: 0xab, hi: 0xb1}, - {value: 0x812d, lo: 0xb2, hi: 0xb2}, - {value: 0x8132, lo: 0xb3, hi: 0xb3}, - // Block 0xc, offset 0x6f - {value: 0x0000, lo: 0x04}, - {value: 0x8132, lo: 0x96, hi: 0x99}, - {value: 0x8132, lo: 0x9b, hi: 0xa3}, - {value: 0x8132, lo: 0xa5, hi: 0xa7}, - {value: 0x8132, lo: 0xa9, hi: 0xad}, - // Block 0xd, offset 0x74 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x99, hi: 0x9b}, - // Block 0xe, offset 0x76 - {value: 0x0000, lo: 0x10}, - {value: 0x8132, lo: 0x94, hi: 0xa1}, - {value: 0x812d, lo: 0xa3, hi: 0xa3}, - {value: 0x8132, lo: 0xa4, hi: 0xa5}, - {value: 0x812d, lo: 0xa6, hi: 0xa6}, - {value: 0x8132, lo: 0xa7, hi: 0xa8}, - {value: 0x812d, lo: 0xa9, hi: 0xa9}, - {value: 0x8132, lo: 0xaa, hi: 0xac}, - {value: 0x812d, lo: 0xad, hi: 0xaf}, - {value: 0x8116, lo: 0xb0, hi: 0xb0}, - {value: 0x8117, lo: 0xb1, hi: 0xb1}, - {value: 0x8118, lo: 0xb2, hi: 0xb2}, - {value: 0x8132, lo: 0xb3, hi: 0xb5}, - {value: 0x812d, lo: 0xb6, hi: 0xb6}, - {value: 0x8132, lo: 0xb7, hi: 0xb8}, - {value: 0x812d, lo: 0xb9, hi: 0xba}, - {value: 0x8132, lo: 0xbb, hi: 0xbf}, - // Block 0xf, offset 0x87 - {value: 0x0000, lo: 0x07}, - {value: 0xa000, lo: 0xa8, hi: 0xa8}, - {value: 0x3ed8, lo: 0xa9, hi: 0xa9}, - {value: 0xa000, lo: 0xb0, hi: 0xb0}, - {value: 0x3ee0, lo: 0xb1, hi: 0xb1}, - {value: 0xa000, lo: 0xb3, hi: 0xb3}, - {value: 0x3ee8, lo: 0xb4, hi: 0xb4}, - {value: 0x9902, lo: 0xbc, hi: 0xbc}, - // Block 0x10, offset 0x8f - {value: 0x0008, lo: 0x06}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x8132, lo: 0x91, hi: 0x91}, - {value: 0x812d, lo: 0x92, hi: 0x92}, - {value: 0x8132, lo: 0x93, hi: 0x93}, - {value: 0x8132, lo: 0x94, hi: 0x94}, - {value: 0x451c, lo: 0x98, hi: 0x9f}, - // Block 0x11, offset 0x96 - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x12, offset 0x99 - {value: 0x0008, lo: 0x06}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2c9e, lo: 0x8b, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - {value: 0x455c, lo: 0x9c, hi: 0x9d}, - {value: 0x456c, lo: 0x9f, hi: 0x9f}, - // Block 0x13, offset 0xa0 - {value: 0x0000, lo: 0x03}, - {value: 0x4594, lo: 0xb3, hi: 0xb3}, - {value: 0x459c, lo: 0xb6, hi: 0xb6}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - // Block 0x14, offset 0xa4 - {value: 0x0008, lo: 0x03}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x4574, lo: 0x99, hi: 0x9b}, - {value: 0x458c, lo: 0x9e, hi: 0x9e}, - // Block 0x15, offset 0xa8 - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - // Block 0x16, offset 0xaa - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - // Block 0x17, offset 0xac - {value: 0x0000, lo: 0x08}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2cb6, lo: 0x88, hi: 0x88}, - {value: 0x2cae, lo: 0x8b, hi: 0x8b}, - {value: 0x2cbe, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x96, hi: 0x97}, - {value: 0x45a4, lo: 0x9c, hi: 0x9c}, - {value: 0x45ac, lo: 0x9d, hi: 0x9d}, - // Block 0x18, offset 0xb5 - {value: 0x0000, lo: 0x03}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0x2cc6, lo: 0x94, hi: 0x94}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x19, offset 0xb9 - {value: 0x0000, lo: 0x06}, - {value: 0xa000, lo: 0x86, hi: 0x87}, - {value: 0x2cce, lo: 0x8a, hi: 0x8a}, - {value: 0x2cde, lo: 0x8b, hi: 0x8b}, - {value: 0x2cd6, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - // Block 0x1a, offset 0xc0 - {value: 0x1801, lo: 0x04}, - {value: 0xa000, lo: 0x86, hi: 0x86}, - {value: 0x3ef0, lo: 0x88, hi: 0x88}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x8120, lo: 0x95, hi: 0x96}, - // Block 0x1b, offset 0xc5 - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xbc, hi: 0xbc}, - {value: 0xa000, lo: 0xbf, hi: 0xbf}, - // Block 0x1c, offset 0xc8 - {value: 0x0000, lo: 0x09}, - {value: 0x2ce6, lo: 0x80, hi: 0x80}, - {value: 0x9900, lo: 0x82, hi: 0x82}, - {value: 0xa000, lo: 0x86, hi: 0x86}, - {value: 0x2cee, lo: 0x87, hi: 0x87}, - {value: 0x2cf6, lo: 0x88, hi: 0x88}, - {value: 0x2f50, lo: 0x8a, hi: 0x8a}, - {value: 0x2dd8, lo: 0x8b, hi: 0x8b}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x95, hi: 0x96}, - // Block 0x1d, offset 0xd2 - {value: 0x0000, lo: 0x01}, - {value: 0x9900, lo: 0xbe, hi: 0xbe}, - // Block 0x1e, offset 0xd4 - {value: 0x0000, lo: 0x06}, - {value: 0xa000, lo: 0x86, hi: 0x87}, - {value: 0x2cfe, lo: 0x8a, hi: 0x8a}, - {value: 0x2d0e, lo: 0x8b, hi: 0x8b}, - {value: 0x2d06, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - // Block 0x1f, offset 0xdb - {value: 0x6bea, lo: 0x07}, - {value: 0x9904, lo: 0x8a, hi: 0x8a}, - {value: 0x9900, lo: 0x8f, hi: 0x8f}, - {value: 0xa000, lo: 0x99, hi: 0x99}, - {value: 0x3ef8, lo: 0x9a, hi: 0x9a}, - {value: 0x2f58, lo: 0x9c, hi: 0x9c}, - {value: 0x2de3, lo: 0x9d, hi: 0x9d}, - {value: 0x2d16, lo: 0x9e, hi: 0x9f}, - // Block 0x20, offset 0xe3 - {value: 0x0000, lo: 0x03}, - {value: 0x2621, lo: 0xb3, hi: 0xb3}, - {value: 0x8122, lo: 0xb8, hi: 0xb9}, - {value: 0x8104, lo: 0xba, hi: 0xba}, - // Block 0x21, offset 0xe7 - {value: 0x0000, lo: 0x01}, - {value: 0x8123, lo: 0x88, hi: 0x8b}, - // Block 0x22, offset 0xe9 - {value: 0x0000, lo: 0x02}, - {value: 0x2636, lo: 0xb3, hi: 0xb3}, - {value: 0x8124, lo: 0xb8, hi: 0xb9}, - // Block 0x23, offset 0xec - {value: 0x0000, lo: 0x03}, - {value: 0x8125, lo: 0x88, hi: 0x8b}, - {value: 0x2628, lo: 0x9c, hi: 0x9c}, - {value: 0x262f, lo: 0x9d, hi: 0x9d}, - // Block 0x24, offset 0xf0 - {value: 0x0000, lo: 0x05}, - {value: 0x030b, lo: 0x8c, hi: 0x8c}, - {value: 0x812d, lo: 0x98, hi: 0x99}, - {value: 0x812d, lo: 0xb5, hi: 0xb5}, - {value: 0x812d, lo: 0xb7, hi: 0xb7}, - {value: 0x812b, lo: 0xb9, hi: 0xb9}, - // Block 0x25, offset 0xf6 - {value: 0x0000, lo: 0x10}, - {value: 0x2644, lo: 0x83, hi: 0x83}, - {value: 0x264b, lo: 0x8d, hi: 0x8d}, - {value: 0x2652, lo: 0x92, hi: 0x92}, - {value: 0x2659, lo: 0x97, hi: 0x97}, - {value: 0x2660, lo: 0x9c, hi: 0x9c}, - {value: 0x263d, lo: 0xa9, hi: 0xa9}, - {value: 0x8126, lo: 0xb1, hi: 0xb1}, - {value: 0x8127, lo: 0xb2, hi: 0xb2}, - {value: 0x4a84, lo: 0xb3, hi: 0xb3}, - {value: 0x8128, lo: 0xb4, hi: 0xb4}, - {value: 0x4a8d, lo: 0xb5, hi: 0xb5}, - {value: 0x45b4, lo: 0xb6, hi: 0xb6}, - {value: 0x45f4, lo: 0xb7, hi: 0xb7}, - {value: 0x45bc, lo: 0xb8, hi: 0xb8}, - {value: 0x45ff, lo: 0xb9, hi: 0xb9}, - {value: 0x8127, lo: 0xba, hi: 0xbd}, - // Block 0x26, offset 0x107 - {value: 0x0000, lo: 0x0b}, - {value: 0x8127, lo: 0x80, hi: 0x80}, - {value: 0x4a96, lo: 0x81, hi: 0x81}, - {value: 0x8132, lo: 0x82, hi: 0x83}, - {value: 0x8104, lo: 0x84, hi: 0x84}, - {value: 0x8132, lo: 0x86, hi: 0x87}, - {value: 0x266e, lo: 0x93, hi: 0x93}, - {value: 0x2675, lo: 0x9d, hi: 0x9d}, - {value: 0x267c, lo: 0xa2, hi: 0xa2}, - {value: 0x2683, lo: 0xa7, hi: 0xa7}, - {value: 0x268a, lo: 0xac, hi: 0xac}, - {value: 0x2667, lo: 0xb9, hi: 0xb9}, - // Block 0x27, offset 0x113 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x86, hi: 0x86}, - // Block 0x28, offset 0x115 - {value: 0x0000, lo: 0x05}, - {value: 0xa000, lo: 0xa5, hi: 0xa5}, - {value: 0x2d1e, lo: 0xa6, hi: 0xa6}, - {value: 0x9900, lo: 0xae, hi: 0xae}, - {value: 0x8102, lo: 0xb7, hi: 0xb7}, - {value: 0x8104, lo: 0xb9, hi: 0xba}, - // Block 0x29, offset 0x11b - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x8d, hi: 0x8d}, - // Block 0x2a, offset 0x11d - {value: 0x0000, lo: 0x01}, - {value: 0x030f, lo: 0xbc, hi: 0xbc}, - // Block 0x2b, offset 0x11f - {value: 0x0000, lo: 0x01}, - {value: 0xa000, lo: 0x80, hi: 0x92}, - // Block 0x2c, offset 0x121 - {value: 0x0000, lo: 0x01}, - {value: 0xb900, lo: 0xa1, hi: 0xb5}, - // Block 0x2d, offset 0x123 - {value: 0x0000, lo: 0x01}, - {value: 0x9900, lo: 0xa8, hi: 0xbf}, - // Block 0x2e, offset 0x125 - {value: 0x0000, lo: 0x01}, - {value: 0x9900, lo: 0x80, hi: 0x82}, - // Block 0x2f, offset 0x127 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x9d, hi: 0x9f}, - // Block 0x30, offset 0x129 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x94, hi: 0x94}, - {value: 0x8104, lo: 0xb4, hi: 0xb4}, - // Block 0x31, offset 0x12c - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x92, hi: 0x92}, - {value: 0x8132, lo: 0x9d, hi: 0x9d}, - // Block 0x32, offset 0x12f - {value: 0x0000, lo: 0x01}, - {value: 0x8131, lo: 0xa9, hi: 0xa9}, - // Block 0x33, offset 0x131 - {value: 0x0004, lo: 0x02}, - {value: 0x812e, lo: 0xb9, hi: 0xba}, - {value: 0x812d, lo: 0xbb, hi: 0xbb}, - // Block 0x34, offset 0x134 - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0x97, hi: 0x97}, - {value: 0x812d, lo: 0x98, hi: 0x98}, - // Block 0x35, offset 0x137 - {value: 0x0000, lo: 0x03}, - {value: 0x8104, lo: 0xa0, hi: 0xa0}, - {value: 0x8132, lo: 0xb5, hi: 0xbc}, - {value: 0x812d, lo: 0xbf, hi: 0xbf}, - // Block 0x36, offset 0x13b - {value: 0x0000, lo: 0x04}, - {value: 0x8132, lo: 0xb0, hi: 0xb4}, - {value: 0x812d, lo: 0xb5, hi: 0xba}, - {value: 0x8132, lo: 0xbb, hi: 0xbc}, - {value: 0x812d, lo: 0xbd, hi: 0xbd}, - // Block 0x37, offset 0x140 - {value: 0x0000, lo: 0x08}, - {value: 0x2d66, lo: 0x80, hi: 0x80}, - {value: 0x2d6e, lo: 0x81, hi: 0x81}, - {value: 0xa000, lo: 0x82, hi: 0x82}, - {value: 0x2d76, lo: 0x83, hi: 0x83}, - {value: 0x8104, lo: 0x84, hi: 0x84}, - {value: 0x8132, lo: 0xab, hi: 0xab}, - {value: 0x812d, lo: 0xac, hi: 0xac}, - {value: 0x8132, lo: 0xad, hi: 0xb3}, - // Block 0x38, offset 0x149 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xaa, hi: 0xab}, - // Block 0x39, offset 0x14b - {value: 0x0000, lo: 0x02}, - {value: 0x8102, lo: 0xa6, hi: 0xa6}, - {value: 0x8104, lo: 0xb2, hi: 0xb3}, - // Block 0x3a, offset 0x14e - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0xb7, hi: 0xb7}, - // Block 0x3b, offset 0x150 - {value: 0x0000, lo: 0x0a}, - {value: 0x8132, lo: 0x90, hi: 0x92}, - {value: 0x8101, lo: 0x94, hi: 0x94}, - {value: 0x812d, lo: 0x95, hi: 0x99}, - {value: 0x8132, lo: 0x9a, hi: 0x9b}, - {value: 0x812d, lo: 0x9c, hi: 0x9f}, - {value: 0x8132, lo: 0xa0, hi: 0xa0}, - {value: 0x8101, lo: 0xa2, hi: 0xa8}, - {value: 0x812d, lo: 0xad, hi: 0xad}, - {value: 0x8132, lo: 0xb4, hi: 0xb4}, - {value: 0x8132, lo: 0xb8, hi: 0xb9}, - // Block 0x3c, offset 0x15b - {value: 0x0002, lo: 0x0a}, - {value: 0x0043, lo: 0xac, hi: 0xac}, - {value: 0x00d1, lo: 0xad, hi: 0xad}, - {value: 0x0045, lo: 0xae, hi: 0xae}, - {value: 0x0049, lo: 0xb0, hi: 0xb1}, - {value: 0x00e6, lo: 0xb2, hi: 0xb2}, - {value: 0x004f, lo: 0xb3, hi: 0xba}, - {value: 0x005f, lo: 0xbc, hi: 0xbc}, - {value: 0x00ef, lo: 0xbd, hi: 0xbd}, - {value: 0x0061, lo: 0xbe, hi: 0xbe}, - {value: 0x0065, lo: 0xbf, hi: 0xbf}, - // Block 0x3d, offset 0x166 - {value: 0x0000, lo: 0x0f}, - {value: 0x8132, lo: 0x80, hi: 0x81}, - {value: 0x812d, lo: 0x82, hi: 0x82}, - {value: 0x8132, lo: 0x83, hi: 0x89}, - {value: 0x812d, lo: 0x8a, hi: 0x8a}, - {value: 0x8132, lo: 0x8b, hi: 0x8c}, - {value: 0x8135, lo: 0x8d, hi: 0x8d}, - {value: 0x812a, lo: 0x8e, hi: 0x8e}, - {value: 0x812d, lo: 0x8f, hi: 0x8f}, - {value: 0x8129, lo: 0x90, hi: 0x90}, - {value: 0x8132, lo: 0x91, hi: 0xb5}, - {value: 0x8132, lo: 0xbb, hi: 0xbb}, - {value: 0x8134, lo: 0xbc, hi: 0xbc}, - {value: 0x812d, lo: 0xbd, hi: 0xbd}, - {value: 0x8132, lo: 0xbe, hi: 0xbe}, - {value: 0x812d, lo: 0xbf, hi: 0xbf}, - // Block 0x3e, offset 0x176 - {value: 0x0000, lo: 0x0d}, - {value: 0x0001, lo: 0x80, hi: 0x8a}, - {value: 0x043b, lo: 0x91, hi: 0x91}, - {value: 0x429b, lo: 0x97, hi: 0x97}, - {value: 0x001d, lo: 0xa4, hi: 0xa4}, - {value: 0x1873, lo: 0xa5, hi: 0xa5}, - {value: 0x1b5c, lo: 0xa6, hi: 0xa6}, - {value: 0x0001, lo: 0xaf, hi: 0xaf}, - {value: 0x2691, lo: 0xb3, hi: 0xb3}, - {value: 0x27fe, lo: 0xb4, hi: 0xb4}, - {value: 0x2698, lo: 0xb6, hi: 0xb6}, - {value: 0x2808, lo: 0xb7, hi: 0xb7}, - {value: 0x186d, lo: 0xbc, hi: 0xbc}, - {value: 0x4269, lo: 0xbe, hi: 0xbe}, - // Block 0x3f, offset 0x184 - {value: 0x0002, lo: 0x0d}, - {value: 0x1933, lo: 0x87, hi: 0x87}, - {value: 0x1930, lo: 0x88, hi: 0x88}, - {value: 0x1870, lo: 0x89, hi: 0x89}, - {value: 0x298e, lo: 0x97, hi: 0x97}, - {value: 0x0001, lo: 0x9f, hi: 0x9f}, - {value: 0x0021, lo: 0xb0, hi: 0xb0}, - {value: 0x0093, lo: 0xb1, hi: 0xb1}, - {value: 0x0029, lo: 0xb4, hi: 0xb9}, - {value: 0x0017, lo: 0xba, hi: 0xba}, - {value: 0x0467, lo: 0xbb, hi: 0xbb}, - {value: 0x003b, lo: 0xbc, hi: 0xbc}, - {value: 0x0011, lo: 0xbd, hi: 0xbe}, - {value: 0x009d, lo: 0xbf, hi: 0xbf}, - // Block 0x40, offset 0x192 - {value: 0x0002, lo: 0x0f}, - {value: 0x0021, lo: 0x80, hi: 0x89}, - {value: 0x0017, lo: 0x8a, hi: 0x8a}, - {value: 0x0467, lo: 0x8b, hi: 0x8b}, - {value: 0x003b, lo: 0x8c, hi: 0x8c}, - {value: 0x0011, lo: 0x8d, hi: 0x8e}, - {value: 0x0083, lo: 0x90, hi: 0x90}, - {value: 0x008b, lo: 0x91, hi: 0x91}, - {value: 0x009f, lo: 0x92, hi: 0x92}, - {value: 0x00b1, lo: 0x93, hi: 0x93}, - {value: 0x0104, lo: 0x94, hi: 0x94}, - {value: 0x0091, lo: 0x95, hi: 0x95}, - {value: 0x0097, lo: 0x96, hi: 0x99}, - {value: 0x00a1, lo: 0x9a, hi: 0x9a}, - {value: 0x00a7, lo: 0x9b, hi: 0x9c}, - {value: 0x1999, lo: 0xa8, hi: 0xa8}, - // Block 0x41, offset 0x1a2 - {value: 0x0000, lo: 0x0d}, - {value: 0x8132, lo: 0x90, hi: 0x91}, - {value: 0x8101, lo: 0x92, hi: 0x93}, - {value: 0x8132, lo: 0x94, hi: 0x97}, - {value: 0x8101, lo: 0x98, hi: 0x9a}, - {value: 0x8132, lo: 0x9b, hi: 0x9c}, - {value: 0x8132, lo: 0xa1, hi: 0xa1}, - {value: 0x8101, lo: 0xa5, hi: 0xa6}, - {value: 0x8132, lo: 0xa7, hi: 0xa7}, - {value: 0x812d, lo: 0xa8, hi: 0xa8}, - {value: 0x8132, lo: 0xa9, hi: 0xa9}, - {value: 0x8101, lo: 0xaa, hi: 0xab}, - {value: 0x812d, lo: 0xac, hi: 0xaf}, - {value: 0x8132, lo: 0xb0, hi: 0xb0}, - // Block 0x42, offset 0x1b0 - {value: 0x0007, lo: 0x06}, - {value: 0x2180, lo: 0x89, hi: 0x89}, - {value: 0xa000, lo: 0x90, hi: 0x90}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0xa000, lo: 0x94, hi: 0x94}, - {value: 0x3bb9, lo: 0x9a, hi: 0x9b}, - {value: 0x3bc7, lo: 0xae, hi: 0xae}, - // Block 0x43, offset 0x1b7 - {value: 0x000e, lo: 0x05}, - {value: 0x3bce, lo: 0x8d, hi: 0x8e}, - {value: 0x3bd5, lo: 0x8f, hi: 0x8f}, - {value: 0xa000, lo: 0x90, hi: 0x90}, - {value: 0xa000, lo: 0x92, hi: 0x92}, - {value: 0xa000, lo: 0x94, hi: 0x94}, - // Block 0x44, offset 0x1bd - {value: 0x0173, lo: 0x0e}, - {value: 0xa000, lo: 0x83, hi: 0x83}, - {value: 0x3be3, lo: 0x84, hi: 0x84}, - {value: 0xa000, lo: 0x88, hi: 0x88}, - {value: 0x3bea, lo: 0x89, hi: 0x89}, - {value: 0xa000, lo: 0x8b, hi: 0x8b}, - {value: 0x3bf1, lo: 0x8c, hi: 0x8c}, - {value: 0xa000, lo: 0xa3, hi: 0xa3}, - {value: 0x3bf8, lo: 0xa4, hi: 0xa4}, - {value: 0xa000, lo: 0xa5, hi: 0xa5}, - {value: 0x3bff, lo: 0xa6, hi: 0xa6}, - {value: 0x269f, lo: 0xac, hi: 0xad}, - {value: 0x26a6, lo: 0xaf, hi: 0xaf}, - {value: 0x281c, lo: 0xb0, hi: 0xb0}, - {value: 0xa000, lo: 0xbc, hi: 0xbc}, - // Block 0x45, offset 0x1cc - {value: 0x0007, lo: 0x03}, - {value: 0x3c68, lo: 0xa0, hi: 0xa1}, - {value: 0x3c92, lo: 0xa2, hi: 0xa3}, - {value: 0x3cbc, lo: 0xaa, hi: 0xad}, - // Block 0x46, offset 0x1d0 - {value: 0x0004, lo: 0x01}, - {value: 0x048b, lo: 0xa9, hi: 0xaa}, - // Block 0x47, offset 0x1d2 - {value: 0x0002, lo: 0x03}, - {value: 0x0057, lo: 0x80, hi: 0x8f}, - {value: 0x0083, lo: 0x90, hi: 0xa9}, - {value: 0x0021, lo: 0xaa, hi: 0xaa}, - // Block 0x48, offset 0x1d6 - {value: 0x0000, lo: 0x01}, - {value: 0x299b, lo: 0x8c, hi: 0x8c}, - // Block 0x49, offset 0x1d8 - {value: 0x0263, lo: 0x02}, - {value: 0x1b8c, lo: 0xb4, hi: 0xb4}, - {value: 0x192d, lo: 0xb5, hi: 0xb6}, - // Block 0x4a, offset 0x1db - {value: 0x0000, lo: 0x01}, - {value: 0x44dd, lo: 0x9c, hi: 0x9c}, - // Block 0x4b, offset 0x1dd - {value: 0x0000, lo: 0x02}, - {value: 0x0095, lo: 0xbc, hi: 0xbc}, - {value: 0x006d, lo: 0xbd, hi: 0xbd}, - // Block 0x4c, offset 0x1e0 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xaf, hi: 0xb1}, - // Block 0x4d, offset 0x1e2 - {value: 0x0000, lo: 0x02}, - {value: 0x047f, lo: 0xaf, hi: 0xaf}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x4e, offset 0x1e5 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xa0, hi: 0xbf}, - // Block 0x4f, offset 0x1e7 - {value: 0x0000, lo: 0x01}, - {value: 0x0dc3, lo: 0x9f, hi: 0x9f}, - // Block 0x50, offset 0x1e9 - {value: 0x0000, lo: 0x01}, - {value: 0x162f, lo: 0xb3, hi: 0xb3}, - // Block 0x51, offset 0x1eb - {value: 0x0004, lo: 0x0b}, - {value: 0x1597, lo: 0x80, hi: 0x82}, - {value: 0x15af, lo: 0x83, hi: 0x83}, - {value: 0x15c7, lo: 0x84, hi: 0x85}, - {value: 0x15d7, lo: 0x86, hi: 0x89}, - {value: 0x15eb, lo: 0x8a, hi: 0x8c}, - {value: 0x15ff, lo: 0x8d, hi: 0x8d}, - {value: 0x1607, lo: 0x8e, hi: 0x8e}, - {value: 0x160f, lo: 0x8f, hi: 0x90}, - {value: 0x161b, lo: 0x91, hi: 0x93}, - {value: 0x162b, lo: 0x94, hi: 0x94}, - {value: 0x1633, lo: 0x95, hi: 0x95}, - // Block 0x52, offset 0x1f7 - {value: 0x0004, lo: 0x09}, - {value: 0x0001, lo: 0x80, hi: 0x80}, - {value: 0x812c, lo: 0xaa, hi: 0xaa}, - {value: 0x8131, lo: 0xab, hi: 0xab}, - {value: 0x8133, lo: 0xac, hi: 0xac}, - {value: 0x812e, lo: 0xad, hi: 0xad}, - {value: 0x812f, lo: 0xae, hi: 0xae}, - {value: 0x812f, lo: 0xaf, hi: 0xaf}, - {value: 0x04b3, lo: 0xb6, hi: 0xb6}, - {value: 0x0887, lo: 0xb8, hi: 0xba}, - // Block 0x53, offset 0x201 - {value: 0x0006, lo: 0x09}, - {value: 0x0313, lo: 0xb1, hi: 0xb1}, - {value: 0x0317, lo: 0xb2, hi: 0xb2}, - {value: 0x4a3b, lo: 0xb3, hi: 0xb3}, - {value: 0x031b, lo: 0xb4, hi: 0xb4}, - {value: 0x4a41, lo: 0xb5, hi: 0xb6}, - {value: 0x031f, lo: 0xb7, hi: 0xb7}, - {value: 0x0323, lo: 0xb8, hi: 0xb8}, - {value: 0x0327, lo: 0xb9, hi: 0xb9}, - {value: 0x4a4d, lo: 0xba, hi: 0xbf}, - // Block 0x54, offset 0x20b - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0xaf, hi: 0xaf}, - {value: 0x8132, lo: 0xb4, hi: 0xbd}, - // Block 0x55, offset 0x20e - {value: 0x0000, lo: 0x03}, - {value: 0x020f, lo: 0x9c, hi: 0x9c}, - {value: 0x0212, lo: 0x9d, hi: 0x9d}, - {value: 0x8132, lo: 0x9e, hi: 0x9f}, - // Block 0x56, offset 0x212 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xb0, hi: 0xb1}, - // Block 0x57, offset 0x214 - {value: 0x0000, lo: 0x01}, - {value: 0x163b, lo: 0xb0, hi: 0xb0}, - // Block 0x58, offset 0x216 - {value: 0x000c, lo: 0x01}, - {value: 0x00d7, lo: 0xb8, hi: 0xb9}, - // Block 0x59, offset 0x218 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x86, hi: 0x86}, - // Block 0x5a, offset 0x21a - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x84, hi: 0x84}, - {value: 0x8132, lo: 0xa0, hi: 0xb1}, - // Block 0x5b, offset 0x21d - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0xab, hi: 0xad}, - // Block 0x5c, offset 0x21f - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x93, hi: 0x93}, - // Block 0x5d, offset 0x221 - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0xb3, hi: 0xb3}, - // Block 0x5e, offset 0x223 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0x80, hi: 0x80}, - // Block 0x5f, offset 0x225 - {value: 0x0000, lo: 0x05}, - {value: 0x8132, lo: 0xb0, hi: 0xb0}, - {value: 0x8132, lo: 0xb2, hi: 0xb3}, - {value: 0x812d, lo: 0xb4, hi: 0xb4}, - {value: 0x8132, lo: 0xb7, hi: 0xb8}, - {value: 0x8132, lo: 0xbe, hi: 0xbf}, - // Block 0x60, offset 0x22b - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0x81, hi: 0x81}, - {value: 0x8104, lo: 0xb6, hi: 0xb6}, - // Block 0x61, offset 0x22e - {value: 0x0008, lo: 0x03}, - {value: 0x1637, lo: 0x9c, hi: 0x9d}, - {value: 0x0125, lo: 0x9e, hi: 0x9e}, - {value: 0x1643, lo: 0x9f, hi: 0x9f}, - // Block 0x62, offset 0x232 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xad, hi: 0xad}, - // Block 0x63, offset 0x234 - {value: 0x0000, lo: 0x06}, - {value: 0xe500, lo: 0x80, hi: 0x80}, - {value: 0xc600, lo: 0x81, hi: 0x9b}, - {value: 0xe500, lo: 0x9c, hi: 0x9c}, - {value: 0xc600, lo: 0x9d, hi: 0xb7}, - {value: 0xe500, lo: 0xb8, hi: 0xb8}, - {value: 0xc600, lo: 0xb9, hi: 0xbf}, - // Block 0x64, offset 0x23b - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x93}, - {value: 0xe500, lo: 0x94, hi: 0x94}, - {value: 0xc600, lo: 0x95, hi: 0xaf}, - {value: 0xe500, lo: 0xb0, hi: 0xb0}, - {value: 0xc600, lo: 0xb1, hi: 0xbf}, - // Block 0x65, offset 0x241 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x8b}, - {value: 0xe500, lo: 0x8c, hi: 0x8c}, - {value: 0xc600, lo: 0x8d, hi: 0xa7}, - {value: 0xe500, lo: 0xa8, hi: 0xa8}, - {value: 0xc600, lo: 0xa9, hi: 0xbf}, - // Block 0x66, offset 0x247 - {value: 0x0000, lo: 0x07}, - {value: 0xc600, lo: 0x80, hi: 0x83}, - {value: 0xe500, lo: 0x84, hi: 0x84}, - {value: 0xc600, lo: 0x85, hi: 0x9f}, - {value: 0xe500, lo: 0xa0, hi: 0xa0}, - {value: 0xc600, lo: 0xa1, hi: 0xbb}, - {value: 0xe500, lo: 0xbc, hi: 0xbc}, - {value: 0xc600, lo: 0xbd, hi: 0xbf}, - // Block 0x67, offset 0x24f - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x97}, - {value: 0xe500, lo: 0x98, hi: 0x98}, - {value: 0xc600, lo: 0x99, hi: 0xb3}, - {value: 0xe500, lo: 0xb4, hi: 0xb4}, - {value: 0xc600, lo: 0xb5, hi: 0xbf}, - // Block 0x68, offset 0x255 - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x8f}, - {value: 0xe500, lo: 0x90, hi: 0x90}, - {value: 0xc600, lo: 0x91, hi: 0xab}, - {value: 0xe500, lo: 0xac, hi: 0xac}, - {value: 0xc600, lo: 0xad, hi: 0xbf}, - // Block 0x69, offset 0x25b - {value: 0x0000, lo: 0x05}, - {value: 0xc600, lo: 0x80, hi: 0x87}, - {value: 0xe500, lo: 0x88, hi: 0x88}, - {value: 0xc600, lo: 0x89, hi: 0xa3}, - {value: 0xe500, lo: 0xa4, hi: 0xa4}, - {value: 0xc600, lo: 0xa5, hi: 0xbf}, - // Block 0x6a, offset 0x261 - {value: 0x0000, lo: 0x03}, - {value: 0xc600, lo: 0x80, hi: 0x87}, - {value: 0xe500, lo: 0x88, hi: 0x88}, - {value: 0xc600, lo: 0x89, hi: 0xa3}, - // Block 0x6b, offset 0x265 - {value: 0x0002, lo: 0x01}, - {value: 0x0003, lo: 0x81, hi: 0xbf}, - // Block 0x6c, offset 0x267 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0xbd, hi: 0xbd}, - // Block 0x6d, offset 0x269 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0xa0, hi: 0xa0}, - // Block 0x6e, offset 0x26b - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xb6, hi: 0xba}, - // Block 0x6f, offset 0x26d - {value: 0x002c, lo: 0x05}, - {value: 0x812d, lo: 0x8d, hi: 0x8d}, - {value: 0x8132, lo: 0x8f, hi: 0x8f}, - {value: 0x8132, lo: 0xb8, hi: 0xb8}, - {value: 0x8101, lo: 0xb9, hi: 0xba}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x70, offset 0x273 - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0xa5, hi: 0xa5}, - {value: 0x812d, lo: 0xa6, hi: 0xa6}, - // Block 0x71, offset 0x276 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x86, hi: 0x86}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x72, offset 0x279 - {value: 0x17fe, lo: 0x07}, - {value: 0xa000, lo: 0x99, hi: 0x99}, - {value: 0x4238, lo: 0x9a, hi: 0x9a}, - {value: 0xa000, lo: 0x9b, hi: 0x9b}, - {value: 0x4242, lo: 0x9c, hi: 0x9c}, - {value: 0xa000, lo: 0xa5, hi: 0xa5}, - {value: 0x424c, lo: 0xab, hi: 0xab}, - {value: 0x8104, lo: 0xb9, hi: 0xba}, - // Block 0x73, offset 0x281 - {value: 0x0000, lo: 0x06}, - {value: 0x8132, lo: 0x80, hi: 0x82}, - {value: 0x9900, lo: 0xa7, hi: 0xa7}, - {value: 0x2d7e, lo: 0xae, hi: 0xae}, - {value: 0x2d88, lo: 0xaf, hi: 0xaf}, - {value: 0xa000, lo: 0xb1, hi: 0xb2}, - {value: 0x8104, lo: 0xb3, hi: 0xb4}, - // Block 0x74, offset 0x288 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x80, hi: 0x80}, - {value: 0x8102, lo: 0x8a, hi: 0x8a}, - // Block 0x75, offset 0x28b - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0xb5, hi: 0xb5}, - {value: 0x8102, lo: 0xb6, hi: 0xb6}, - // Block 0x76, offset 0x28e - {value: 0x0002, lo: 0x01}, - {value: 0x8102, lo: 0xa9, hi: 0xaa}, - // Block 0x77, offset 0x290 - {value: 0x0000, lo: 0x07}, - {value: 0xa000, lo: 0x87, hi: 0x87}, - {value: 0x2d92, lo: 0x8b, hi: 0x8b}, - {value: 0x2d9c, lo: 0x8c, hi: 0x8c}, - {value: 0x8104, lo: 0x8d, hi: 0x8d}, - {value: 0x9900, lo: 0x97, hi: 0x97}, - {value: 0x8132, lo: 0xa6, hi: 0xac}, - {value: 0x8132, lo: 0xb0, hi: 0xb4}, - // Block 0x78, offset 0x298 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x82, hi: 0x82}, - {value: 0x8102, lo: 0x86, hi: 0x86}, - // Block 0x79, offset 0x29b - {value: 0x6b5a, lo: 0x06}, - {value: 0x9900, lo: 0xb0, hi: 0xb0}, - {value: 0xa000, lo: 0xb9, hi: 0xb9}, - {value: 0x9900, lo: 0xba, hi: 0xba}, - {value: 0x2db0, lo: 0xbb, hi: 0xbb}, - {value: 0x2da6, lo: 0xbc, hi: 0xbd}, - {value: 0x2dba, lo: 0xbe, hi: 0xbe}, - // Block 0x7a, offset 0x2a2 - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0x82, hi: 0x82}, - {value: 0x8102, lo: 0x83, hi: 0x83}, - // Block 0x7b, offset 0x2a5 - {value: 0x0000, lo: 0x05}, - {value: 0x9900, lo: 0xaf, hi: 0xaf}, - {value: 0xa000, lo: 0xb8, hi: 0xb9}, - {value: 0x2dc4, lo: 0xba, hi: 0xba}, - {value: 0x2dce, lo: 0xbb, hi: 0xbb}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x7c, offset 0x2ab - {value: 0x0000, lo: 0x01}, - {value: 0x8102, lo: 0x80, hi: 0x80}, - // Block 0x7d, offset 0x2ad - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xbf, hi: 0xbf}, - // Block 0x7e, offset 0x2af - {value: 0x0000, lo: 0x02}, - {value: 0x8104, lo: 0xb6, hi: 0xb6}, - {value: 0x8102, lo: 0xb7, hi: 0xb7}, - // Block 0x7f, offset 0x2b2 - {value: 0x0000, lo: 0x01}, - {value: 0x8104, lo: 0xab, hi: 0xab}, - // Block 0x80, offset 0x2b4 - {value: 0x0000, lo: 0x01}, - {value: 0x8101, lo: 0xb0, hi: 0xb4}, - // Block 0x81, offset 0x2b6 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0xb0, hi: 0xb6}, - // Block 0x82, offset 0x2b8 - {value: 0x0000, lo: 0x01}, - {value: 0x8101, lo: 0x9e, hi: 0x9e}, - // Block 0x83, offset 0x2ba - {value: 0x0000, lo: 0x0c}, - {value: 0x45cc, lo: 0x9e, hi: 0x9e}, - {value: 0x45d6, lo: 0x9f, hi: 0x9f}, - {value: 0x460a, lo: 0xa0, hi: 0xa0}, - {value: 0x4618, lo: 0xa1, hi: 0xa1}, - {value: 0x4626, lo: 0xa2, hi: 0xa2}, - {value: 0x4634, lo: 0xa3, hi: 0xa3}, - {value: 0x4642, lo: 0xa4, hi: 0xa4}, - {value: 0x812b, lo: 0xa5, hi: 0xa6}, - {value: 0x8101, lo: 0xa7, hi: 0xa9}, - {value: 0x8130, lo: 0xad, hi: 0xad}, - {value: 0x812b, lo: 0xae, hi: 0xb2}, - {value: 0x812d, lo: 0xbb, hi: 0xbf}, - // Block 0x84, offset 0x2c7 - {value: 0x0000, lo: 0x09}, - {value: 0x812d, lo: 0x80, hi: 0x82}, - {value: 0x8132, lo: 0x85, hi: 0x89}, - {value: 0x812d, lo: 0x8a, hi: 0x8b}, - {value: 0x8132, lo: 0xaa, hi: 0xad}, - {value: 0x45e0, lo: 0xbb, hi: 0xbb}, - {value: 0x45ea, lo: 0xbc, hi: 0xbc}, - {value: 0x4650, lo: 0xbd, hi: 0xbd}, - {value: 0x466c, lo: 0xbe, hi: 0xbe}, - {value: 0x465e, lo: 0xbf, hi: 0xbf}, - // Block 0x85, offset 0x2d1 - {value: 0x0000, lo: 0x01}, - {value: 0x467a, lo: 0x80, hi: 0x80}, - // Block 0x86, offset 0x2d3 - {value: 0x0000, lo: 0x01}, - {value: 0x8132, lo: 0x82, hi: 0x84}, - // Block 0x87, offset 0x2d5 - {value: 0x0002, lo: 0x03}, - {value: 0x0043, lo: 0x80, hi: 0x99}, - {value: 0x0083, lo: 0x9a, hi: 0xb3}, - {value: 0x0043, lo: 0xb4, hi: 0xbf}, - // Block 0x88, offset 0x2d9 - {value: 0x0002, lo: 0x04}, - {value: 0x005b, lo: 0x80, hi: 0x8d}, - {value: 0x0083, lo: 0x8e, hi: 0x94}, - {value: 0x0093, lo: 0x96, hi: 0xa7}, - {value: 0x0043, lo: 0xa8, hi: 0xbf}, - // Block 0x89, offset 0x2de - {value: 0x0002, lo: 0x0b}, - {value: 0x0073, lo: 0x80, hi: 0x81}, - {value: 0x0083, lo: 0x82, hi: 0x9b}, - {value: 0x0043, lo: 0x9c, hi: 0x9c}, - {value: 0x0047, lo: 0x9e, hi: 0x9f}, - {value: 0x004f, lo: 0xa2, hi: 0xa2}, - {value: 0x0055, lo: 0xa5, hi: 0xa6}, - {value: 0x005d, lo: 0xa9, hi: 0xac}, - {value: 0x0067, lo: 0xae, hi: 0xb5}, - {value: 0x0083, lo: 0xb6, hi: 0xb9}, - {value: 0x008d, lo: 0xbb, hi: 0xbb}, - {value: 0x0091, lo: 0xbd, hi: 0xbf}, - // Block 0x8a, offset 0x2ea - {value: 0x0002, lo: 0x04}, - {value: 0x0097, lo: 0x80, hi: 0x83}, - {value: 0x00a1, lo: 0x85, hi: 0x8f}, - {value: 0x0043, lo: 0x90, hi: 0xa9}, - {value: 0x0083, lo: 0xaa, hi: 0xbf}, - // Block 0x8b, offset 0x2ef - {value: 0x0002, lo: 0x08}, - {value: 0x00af, lo: 0x80, hi: 0x83}, - {value: 0x0043, lo: 0x84, hi: 0x85}, - {value: 0x0049, lo: 0x87, hi: 0x8a}, - {value: 0x0055, lo: 0x8d, hi: 0x94}, - {value: 0x0067, lo: 0x96, hi: 0x9c}, - {value: 0x0083, lo: 0x9e, hi: 0xb7}, - {value: 0x0043, lo: 0xb8, hi: 0xb9}, - {value: 0x0049, lo: 0xbb, hi: 0xbe}, - // Block 0x8c, offset 0x2f8 - {value: 0x0002, lo: 0x05}, - {value: 0x0053, lo: 0x80, hi: 0x84}, - {value: 0x005f, lo: 0x86, hi: 0x86}, - {value: 0x0067, lo: 0x8a, hi: 0x90}, - {value: 0x0083, lo: 0x92, hi: 0xab}, - {value: 0x0043, lo: 0xac, hi: 0xbf}, - // Block 0x8d, offset 0x2fe - {value: 0x0002, lo: 0x04}, - {value: 0x006b, lo: 0x80, hi: 0x85}, - {value: 0x0083, lo: 0x86, hi: 0x9f}, - {value: 0x0043, lo: 0xa0, hi: 0xb9}, - {value: 0x0083, lo: 0xba, hi: 0xbf}, - // Block 0x8e, offset 0x303 - {value: 0x0002, lo: 0x03}, - {value: 0x008f, lo: 0x80, hi: 0x93}, - {value: 0x0043, lo: 0x94, hi: 0xad}, - {value: 0x0083, lo: 0xae, hi: 0xbf}, - // Block 0x8f, offset 0x307 - {value: 0x0002, lo: 0x04}, - {value: 0x00a7, lo: 0x80, hi: 0x87}, - {value: 0x0043, lo: 0x88, hi: 0xa1}, - {value: 0x0083, lo: 0xa2, hi: 0xbb}, - {value: 0x0043, lo: 0xbc, hi: 0xbf}, - // Block 0x90, offset 0x30c - {value: 0x0002, lo: 0x03}, - {value: 0x004b, lo: 0x80, hi: 0x95}, - {value: 0x0083, lo: 0x96, hi: 0xaf}, - {value: 0x0043, lo: 0xb0, hi: 0xbf}, - // Block 0x91, offset 0x310 - {value: 0x0003, lo: 0x0f}, - {value: 0x01b8, lo: 0x80, hi: 0x80}, - {value: 0x045f, lo: 0x81, hi: 0x81}, - {value: 0x01bb, lo: 0x82, hi: 0x9a}, - {value: 0x045b, lo: 0x9b, hi: 0x9b}, - {value: 0x01c7, lo: 0x9c, hi: 0x9c}, - {value: 0x01d0, lo: 0x9d, hi: 0x9d}, - {value: 0x01d6, lo: 0x9e, hi: 0x9e}, - {value: 0x01fa, lo: 0x9f, hi: 0x9f}, - {value: 0x01eb, lo: 0xa0, hi: 0xa0}, - {value: 0x01e8, lo: 0xa1, hi: 0xa1}, - {value: 0x0173, lo: 0xa2, hi: 0xb2}, - {value: 0x0188, lo: 0xb3, hi: 0xb3}, - {value: 0x01a6, lo: 0xb4, hi: 0xba}, - {value: 0x045f, lo: 0xbb, hi: 0xbb}, - {value: 0x01bb, lo: 0xbc, hi: 0xbf}, - // Block 0x92, offset 0x320 - {value: 0x0003, lo: 0x0d}, - {value: 0x01c7, lo: 0x80, hi: 0x94}, - {value: 0x045b, lo: 0x95, hi: 0x95}, - {value: 0x01c7, lo: 0x96, hi: 0x96}, - {value: 0x01d0, lo: 0x97, hi: 0x97}, - {value: 0x01d6, lo: 0x98, hi: 0x98}, - {value: 0x01fa, lo: 0x99, hi: 0x99}, - {value: 0x01eb, lo: 0x9a, hi: 0x9a}, - {value: 0x01e8, lo: 0x9b, hi: 0x9b}, - {value: 0x0173, lo: 0x9c, hi: 0xac}, - {value: 0x0188, lo: 0xad, hi: 0xad}, - {value: 0x01a6, lo: 0xae, hi: 0xb4}, - {value: 0x045f, lo: 0xb5, hi: 0xb5}, - {value: 0x01bb, lo: 0xb6, hi: 0xbf}, - // Block 0x93, offset 0x32e - {value: 0x0003, lo: 0x0d}, - {value: 0x01d9, lo: 0x80, hi: 0x8e}, - {value: 0x045b, lo: 0x8f, hi: 0x8f}, - {value: 0x01c7, lo: 0x90, hi: 0x90}, - {value: 0x01d0, lo: 0x91, hi: 0x91}, - {value: 0x01d6, lo: 0x92, hi: 0x92}, - {value: 0x01fa, lo: 0x93, hi: 0x93}, - {value: 0x01eb, lo: 0x94, hi: 0x94}, - {value: 0x01e8, lo: 0x95, hi: 0x95}, - {value: 0x0173, lo: 0x96, hi: 0xa6}, - {value: 0x0188, lo: 0xa7, hi: 0xa7}, - {value: 0x01a6, lo: 0xa8, hi: 0xae}, - {value: 0x045f, lo: 0xaf, hi: 0xaf}, - {value: 0x01bb, lo: 0xb0, hi: 0xbf}, - // Block 0x94, offset 0x33c - {value: 0x0003, lo: 0x0d}, - {value: 0x01eb, lo: 0x80, hi: 0x88}, - {value: 0x045b, lo: 0x89, hi: 0x89}, - {value: 0x01c7, lo: 0x8a, hi: 0x8a}, - {value: 0x01d0, lo: 0x8b, hi: 0x8b}, - {value: 0x01d6, lo: 0x8c, hi: 0x8c}, - {value: 0x01fa, lo: 0x8d, hi: 0x8d}, - {value: 0x01eb, lo: 0x8e, hi: 0x8e}, - {value: 0x01e8, lo: 0x8f, hi: 0x8f}, - {value: 0x0173, lo: 0x90, hi: 0xa0}, - {value: 0x0188, lo: 0xa1, hi: 0xa1}, - {value: 0x01a6, lo: 0xa2, hi: 0xa8}, - {value: 0x045f, lo: 0xa9, hi: 0xa9}, - {value: 0x01bb, lo: 0xaa, hi: 0xbf}, - // Block 0x95, offset 0x34a - {value: 0x0000, lo: 0x05}, - {value: 0x8132, lo: 0x80, hi: 0x86}, - {value: 0x8132, lo: 0x88, hi: 0x98}, - {value: 0x8132, lo: 0x9b, hi: 0xa1}, - {value: 0x8132, lo: 0xa3, hi: 0xa4}, - {value: 0x8132, lo: 0xa6, hi: 0xaa}, - // Block 0x96, offset 0x350 - {value: 0x0000, lo: 0x01}, - {value: 0x812d, lo: 0x90, hi: 0x96}, - // Block 0x97, offset 0x352 - {value: 0x0000, lo: 0x02}, - {value: 0x8132, lo: 0x84, hi: 0x89}, - {value: 0x8102, lo: 0x8a, hi: 0x8a}, - // Block 0x98, offset 0x355 - {value: 0x0002, lo: 0x09}, - {value: 0x0063, lo: 0x80, hi: 0x89}, - {value: 0x1951, lo: 0x8a, hi: 0x8a}, - {value: 0x1981, lo: 0x8b, hi: 0x8b}, - {value: 0x199c, lo: 0x8c, hi: 0x8c}, - {value: 0x19a2, lo: 0x8d, hi: 0x8d}, - {value: 0x1bc0, lo: 0x8e, hi: 0x8e}, - {value: 0x19ae, lo: 0x8f, hi: 0x8f}, - {value: 0x197b, lo: 0xaa, hi: 0xaa}, - {value: 0x197e, lo: 0xab, hi: 0xab}, - // Block 0x99, offset 0x35f - {value: 0x0000, lo: 0x01}, - {value: 0x193f, lo: 0x90, hi: 0x90}, - // Block 0x9a, offset 0x361 - {value: 0x0028, lo: 0x09}, - {value: 0x2862, lo: 0x80, hi: 0x80}, - {value: 0x2826, lo: 0x81, hi: 0x81}, - {value: 0x2830, lo: 0x82, hi: 0x82}, - {value: 0x2844, lo: 0x83, hi: 0x84}, - {value: 0x284e, lo: 0x85, hi: 0x86}, - {value: 0x283a, lo: 0x87, hi: 0x87}, - {value: 0x2858, lo: 0x88, hi: 0x88}, - {value: 0x0b6f, lo: 0x90, hi: 0x90}, - {value: 0x08e7, lo: 0x91, hi: 0x91}, -} - -// recompMap: 7520 bytes (entries only) -var recompMap = map[uint32]rune{ - 0x00410300: 0x00C0, - 0x00410301: 0x00C1, - 0x00410302: 0x00C2, - 0x00410303: 0x00C3, - 0x00410308: 0x00C4, - 0x0041030A: 0x00C5, - 0x00430327: 0x00C7, - 0x00450300: 0x00C8, - 0x00450301: 0x00C9, - 0x00450302: 0x00CA, - 0x00450308: 0x00CB, - 0x00490300: 0x00CC, - 0x00490301: 0x00CD, - 0x00490302: 0x00CE, - 0x00490308: 0x00CF, - 0x004E0303: 0x00D1, - 0x004F0300: 0x00D2, - 0x004F0301: 0x00D3, - 0x004F0302: 0x00D4, - 0x004F0303: 0x00D5, - 0x004F0308: 0x00D6, - 0x00550300: 0x00D9, - 0x00550301: 0x00DA, - 0x00550302: 0x00DB, - 0x00550308: 0x00DC, - 0x00590301: 0x00DD, - 0x00610300: 0x00E0, - 0x00610301: 0x00E1, - 0x00610302: 0x00E2, - 0x00610303: 0x00E3, - 0x00610308: 0x00E4, - 0x0061030A: 0x00E5, - 0x00630327: 0x00E7, - 0x00650300: 0x00E8, - 0x00650301: 0x00E9, - 0x00650302: 0x00EA, - 0x00650308: 0x00EB, - 0x00690300: 0x00EC, - 0x00690301: 0x00ED, - 0x00690302: 0x00EE, - 0x00690308: 0x00EF, - 0x006E0303: 0x00F1, - 0x006F0300: 0x00F2, - 0x006F0301: 0x00F3, - 0x006F0302: 0x00F4, - 0x006F0303: 0x00F5, - 0x006F0308: 0x00F6, - 0x00750300: 0x00F9, - 0x00750301: 0x00FA, - 0x00750302: 0x00FB, - 0x00750308: 0x00FC, - 0x00790301: 0x00FD, - 0x00790308: 0x00FF, - 0x00410304: 0x0100, - 0x00610304: 0x0101, - 0x00410306: 0x0102, - 0x00610306: 0x0103, - 0x00410328: 0x0104, - 0x00610328: 0x0105, - 0x00430301: 0x0106, - 0x00630301: 0x0107, - 0x00430302: 0x0108, - 0x00630302: 0x0109, - 0x00430307: 0x010A, - 0x00630307: 0x010B, - 0x0043030C: 0x010C, - 0x0063030C: 0x010D, - 0x0044030C: 0x010E, - 0x0064030C: 0x010F, - 0x00450304: 0x0112, - 0x00650304: 0x0113, - 0x00450306: 0x0114, - 0x00650306: 0x0115, - 0x00450307: 0x0116, - 0x00650307: 0x0117, - 0x00450328: 0x0118, - 0x00650328: 0x0119, - 0x0045030C: 0x011A, - 0x0065030C: 0x011B, - 0x00470302: 0x011C, - 0x00670302: 0x011D, - 0x00470306: 0x011E, - 0x00670306: 0x011F, - 0x00470307: 0x0120, - 0x00670307: 0x0121, - 0x00470327: 0x0122, - 0x00670327: 0x0123, - 0x00480302: 0x0124, - 0x00680302: 0x0125, - 0x00490303: 0x0128, - 0x00690303: 0x0129, - 0x00490304: 0x012A, - 0x00690304: 0x012B, - 0x00490306: 0x012C, - 0x00690306: 0x012D, - 0x00490328: 0x012E, - 0x00690328: 0x012F, - 0x00490307: 0x0130, - 0x004A0302: 0x0134, - 0x006A0302: 0x0135, - 0x004B0327: 0x0136, - 0x006B0327: 0x0137, - 0x004C0301: 0x0139, - 0x006C0301: 0x013A, - 0x004C0327: 0x013B, - 0x006C0327: 0x013C, - 0x004C030C: 0x013D, - 0x006C030C: 0x013E, - 0x004E0301: 0x0143, - 0x006E0301: 0x0144, - 0x004E0327: 0x0145, - 0x006E0327: 0x0146, - 0x004E030C: 0x0147, - 0x006E030C: 0x0148, - 0x004F0304: 0x014C, - 0x006F0304: 0x014D, - 0x004F0306: 0x014E, - 0x006F0306: 0x014F, - 0x004F030B: 0x0150, - 0x006F030B: 0x0151, - 0x00520301: 0x0154, - 0x00720301: 0x0155, - 0x00520327: 0x0156, - 0x00720327: 0x0157, - 0x0052030C: 0x0158, - 0x0072030C: 0x0159, - 0x00530301: 0x015A, - 0x00730301: 0x015B, - 0x00530302: 0x015C, - 0x00730302: 0x015D, - 0x00530327: 0x015E, - 0x00730327: 0x015F, - 0x0053030C: 0x0160, - 0x0073030C: 0x0161, - 0x00540327: 0x0162, - 0x00740327: 0x0163, - 0x0054030C: 0x0164, - 0x0074030C: 0x0165, - 0x00550303: 0x0168, - 0x00750303: 0x0169, - 0x00550304: 0x016A, - 0x00750304: 0x016B, - 0x00550306: 0x016C, - 0x00750306: 0x016D, - 0x0055030A: 0x016E, - 0x0075030A: 0x016F, - 0x0055030B: 0x0170, - 0x0075030B: 0x0171, - 0x00550328: 0x0172, - 0x00750328: 0x0173, - 0x00570302: 0x0174, - 0x00770302: 0x0175, - 0x00590302: 0x0176, - 0x00790302: 0x0177, - 0x00590308: 0x0178, - 0x005A0301: 0x0179, - 0x007A0301: 0x017A, - 0x005A0307: 0x017B, - 0x007A0307: 0x017C, - 0x005A030C: 0x017D, - 0x007A030C: 0x017E, - 0x004F031B: 0x01A0, - 0x006F031B: 0x01A1, - 0x0055031B: 0x01AF, - 0x0075031B: 0x01B0, - 0x0041030C: 0x01CD, - 0x0061030C: 0x01CE, - 0x0049030C: 0x01CF, - 0x0069030C: 0x01D0, - 0x004F030C: 0x01D1, - 0x006F030C: 0x01D2, - 0x0055030C: 0x01D3, - 0x0075030C: 0x01D4, - 0x00DC0304: 0x01D5, - 0x00FC0304: 0x01D6, - 0x00DC0301: 0x01D7, - 0x00FC0301: 0x01D8, - 0x00DC030C: 0x01D9, - 0x00FC030C: 0x01DA, - 0x00DC0300: 0x01DB, - 0x00FC0300: 0x01DC, - 0x00C40304: 0x01DE, - 0x00E40304: 0x01DF, - 0x02260304: 0x01E0, - 0x02270304: 0x01E1, - 0x00C60304: 0x01E2, - 0x00E60304: 0x01E3, - 0x0047030C: 0x01E6, - 0x0067030C: 0x01E7, - 0x004B030C: 0x01E8, - 0x006B030C: 0x01E9, - 0x004F0328: 0x01EA, - 0x006F0328: 0x01EB, - 0x01EA0304: 0x01EC, - 0x01EB0304: 0x01ED, - 0x01B7030C: 0x01EE, - 0x0292030C: 0x01EF, - 0x006A030C: 0x01F0, - 0x00470301: 0x01F4, - 0x00670301: 0x01F5, - 0x004E0300: 0x01F8, - 0x006E0300: 0x01F9, - 0x00C50301: 0x01FA, - 0x00E50301: 0x01FB, - 0x00C60301: 0x01FC, - 0x00E60301: 0x01FD, - 0x00D80301: 0x01FE, - 0x00F80301: 0x01FF, - 0x0041030F: 0x0200, - 0x0061030F: 0x0201, - 0x00410311: 0x0202, - 0x00610311: 0x0203, - 0x0045030F: 0x0204, - 0x0065030F: 0x0205, - 0x00450311: 0x0206, - 0x00650311: 0x0207, - 0x0049030F: 0x0208, - 0x0069030F: 0x0209, - 0x00490311: 0x020A, - 0x00690311: 0x020B, - 0x004F030F: 0x020C, - 0x006F030F: 0x020D, - 0x004F0311: 0x020E, - 0x006F0311: 0x020F, - 0x0052030F: 0x0210, - 0x0072030F: 0x0211, - 0x00520311: 0x0212, - 0x00720311: 0x0213, - 0x0055030F: 0x0214, - 0x0075030F: 0x0215, - 0x00550311: 0x0216, - 0x00750311: 0x0217, - 0x00530326: 0x0218, - 0x00730326: 0x0219, - 0x00540326: 0x021A, - 0x00740326: 0x021B, - 0x0048030C: 0x021E, - 0x0068030C: 0x021F, - 0x00410307: 0x0226, - 0x00610307: 0x0227, - 0x00450327: 0x0228, - 0x00650327: 0x0229, - 0x00D60304: 0x022A, - 0x00F60304: 0x022B, - 0x00D50304: 0x022C, - 0x00F50304: 0x022D, - 0x004F0307: 0x022E, - 0x006F0307: 0x022F, - 0x022E0304: 0x0230, - 0x022F0304: 0x0231, - 0x00590304: 0x0232, - 0x00790304: 0x0233, - 0x00A80301: 0x0385, - 0x03910301: 0x0386, - 0x03950301: 0x0388, - 0x03970301: 0x0389, - 0x03990301: 0x038A, - 0x039F0301: 0x038C, - 0x03A50301: 0x038E, - 0x03A90301: 0x038F, - 0x03CA0301: 0x0390, - 0x03990308: 0x03AA, - 0x03A50308: 0x03AB, - 0x03B10301: 0x03AC, - 0x03B50301: 0x03AD, - 0x03B70301: 0x03AE, - 0x03B90301: 0x03AF, - 0x03CB0301: 0x03B0, - 0x03B90308: 0x03CA, - 0x03C50308: 0x03CB, - 0x03BF0301: 0x03CC, - 0x03C50301: 0x03CD, - 0x03C90301: 0x03CE, - 0x03D20301: 0x03D3, - 0x03D20308: 0x03D4, - 0x04150300: 0x0400, - 0x04150308: 0x0401, - 0x04130301: 0x0403, - 0x04060308: 0x0407, - 0x041A0301: 0x040C, - 0x04180300: 0x040D, - 0x04230306: 0x040E, - 0x04180306: 0x0419, - 0x04380306: 0x0439, - 0x04350300: 0x0450, - 0x04350308: 0x0451, - 0x04330301: 0x0453, - 0x04560308: 0x0457, - 0x043A0301: 0x045C, - 0x04380300: 0x045D, - 0x04430306: 0x045E, - 0x0474030F: 0x0476, - 0x0475030F: 0x0477, - 0x04160306: 0x04C1, - 0x04360306: 0x04C2, - 0x04100306: 0x04D0, - 0x04300306: 0x04D1, - 0x04100308: 0x04D2, - 0x04300308: 0x04D3, - 0x04150306: 0x04D6, - 0x04350306: 0x04D7, - 0x04D80308: 0x04DA, - 0x04D90308: 0x04DB, - 0x04160308: 0x04DC, - 0x04360308: 0x04DD, - 0x04170308: 0x04DE, - 0x04370308: 0x04DF, - 0x04180304: 0x04E2, - 0x04380304: 0x04E3, - 0x04180308: 0x04E4, - 0x04380308: 0x04E5, - 0x041E0308: 0x04E6, - 0x043E0308: 0x04E7, - 0x04E80308: 0x04EA, - 0x04E90308: 0x04EB, - 0x042D0308: 0x04EC, - 0x044D0308: 0x04ED, - 0x04230304: 0x04EE, - 0x04430304: 0x04EF, - 0x04230308: 0x04F0, - 0x04430308: 0x04F1, - 0x0423030B: 0x04F2, - 0x0443030B: 0x04F3, - 0x04270308: 0x04F4, - 0x04470308: 0x04F5, - 0x042B0308: 0x04F8, - 0x044B0308: 0x04F9, - 0x06270653: 0x0622, - 0x06270654: 0x0623, - 0x06480654: 0x0624, - 0x06270655: 0x0625, - 0x064A0654: 0x0626, - 0x06D50654: 0x06C0, - 0x06C10654: 0x06C2, - 0x06D20654: 0x06D3, - 0x0928093C: 0x0929, - 0x0930093C: 0x0931, - 0x0933093C: 0x0934, - 0x09C709BE: 0x09CB, - 0x09C709D7: 0x09CC, - 0x0B470B56: 0x0B48, - 0x0B470B3E: 0x0B4B, - 0x0B470B57: 0x0B4C, - 0x0B920BD7: 0x0B94, - 0x0BC60BBE: 0x0BCA, - 0x0BC70BBE: 0x0BCB, - 0x0BC60BD7: 0x0BCC, - 0x0C460C56: 0x0C48, - 0x0CBF0CD5: 0x0CC0, - 0x0CC60CD5: 0x0CC7, - 0x0CC60CD6: 0x0CC8, - 0x0CC60CC2: 0x0CCA, - 0x0CCA0CD5: 0x0CCB, - 0x0D460D3E: 0x0D4A, - 0x0D470D3E: 0x0D4B, - 0x0D460D57: 0x0D4C, - 0x0DD90DCA: 0x0DDA, - 0x0DD90DCF: 0x0DDC, - 0x0DDC0DCA: 0x0DDD, - 0x0DD90DDF: 0x0DDE, - 0x1025102E: 0x1026, - 0x1B051B35: 0x1B06, - 0x1B071B35: 0x1B08, - 0x1B091B35: 0x1B0A, - 0x1B0B1B35: 0x1B0C, - 0x1B0D1B35: 0x1B0E, - 0x1B111B35: 0x1B12, - 0x1B3A1B35: 0x1B3B, - 0x1B3C1B35: 0x1B3D, - 0x1B3E1B35: 0x1B40, - 0x1B3F1B35: 0x1B41, - 0x1B421B35: 0x1B43, - 0x00410325: 0x1E00, - 0x00610325: 0x1E01, - 0x00420307: 0x1E02, - 0x00620307: 0x1E03, - 0x00420323: 0x1E04, - 0x00620323: 0x1E05, - 0x00420331: 0x1E06, - 0x00620331: 0x1E07, - 0x00C70301: 0x1E08, - 0x00E70301: 0x1E09, - 0x00440307: 0x1E0A, - 0x00640307: 0x1E0B, - 0x00440323: 0x1E0C, - 0x00640323: 0x1E0D, - 0x00440331: 0x1E0E, - 0x00640331: 0x1E0F, - 0x00440327: 0x1E10, - 0x00640327: 0x1E11, - 0x0044032D: 0x1E12, - 0x0064032D: 0x1E13, - 0x01120300: 0x1E14, - 0x01130300: 0x1E15, - 0x01120301: 0x1E16, - 0x01130301: 0x1E17, - 0x0045032D: 0x1E18, - 0x0065032D: 0x1E19, - 0x00450330: 0x1E1A, - 0x00650330: 0x1E1B, - 0x02280306: 0x1E1C, - 0x02290306: 0x1E1D, - 0x00460307: 0x1E1E, - 0x00660307: 0x1E1F, - 0x00470304: 0x1E20, - 0x00670304: 0x1E21, - 0x00480307: 0x1E22, - 0x00680307: 0x1E23, - 0x00480323: 0x1E24, - 0x00680323: 0x1E25, - 0x00480308: 0x1E26, - 0x00680308: 0x1E27, - 0x00480327: 0x1E28, - 0x00680327: 0x1E29, - 0x0048032E: 0x1E2A, - 0x0068032E: 0x1E2B, - 0x00490330: 0x1E2C, - 0x00690330: 0x1E2D, - 0x00CF0301: 0x1E2E, - 0x00EF0301: 0x1E2F, - 0x004B0301: 0x1E30, - 0x006B0301: 0x1E31, - 0x004B0323: 0x1E32, - 0x006B0323: 0x1E33, - 0x004B0331: 0x1E34, - 0x006B0331: 0x1E35, - 0x004C0323: 0x1E36, - 0x006C0323: 0x1E37, - 0x1E360304: 0x1E38, - 0x1E370304: 0x1E39, - 0x004C0331: 0x1E3A, - 0x006C0331: 0x1E3B, - 0x004C032D: 0x1E3C, - 0x006C032D: 0x1E3D, - 0x004D0301: 0x1E3E, - 0x006D0301: 0x1E3F, - 0x004D0307: 0x1E40, - 0x006D0307: 0x1E41, - 0x004D0323: 0x1E42, - 0x006D0323: 0x1E43, - 0x004E0307: 0x1E44, - 0x006E0307: 0x1E45, - 0x004E0323: 0x1E46, - 0x006E0323: 0x1E47, - 0x004E0331: 0x1E48, - 0x006E0331: 0x1E49, - 0x004E032D: 0x1E4A, - 0x006E032D: 0x1E4B, - 0x00D50301: 0x1E4C, - 0x00F50301: 0x1E4D, - 0x00D50308: 0x1E4E, - 0x00F50308: 0x1E4F, - 0x014C0300: 0x1E50, - 0x014D0300: 0x1E51, - 0x014C0301: 0x1E52, - 0x014D0301: 0x1E53, - 0x00500301: 0x1E54, - 0x00700301: 0x1E55, - 0x00500307: 0x1E56, - 0x00700307: 0x1E57, - 0x00520307: 0x1E58, - 0x00720307: 0x1E59, - 0x00520323: 0x1E5A, - 0x00720323: 0x1E5B, - 0x1E5A0304: 0x1E5C, - 0x1E5B0304: 0x1E5D, - 0x00520331: 0x1E5E, - 0x00720331: 0x1E5F, - 0x00530307: 0x1E60, - 0x00730307: 0x1E61, - 0x00530323: 0x1E62, - 0x00730323: 0x1E63, - 0x015A0307: 0x1E64, - 0x015B0307: 0x1E65, - 0x01600307: 0x1E66, - 0x01610307: 0x1E67, - 0x1E620307: 0x1E68, - 0x1E630307: 0x1E69, - 0x00540307: 0x1E6A, - 0x00740307: 0x1E6B, - 0x00540323: 0x1E6C, - 0x00740323: 0x1E6D, - 0x00540331: 0x1E6E, - 0x00740331: 0x1E6F, - 0x0054032D: 0x1E70, - 0x0074032D: 0x1E71, - 0x00550324: 0x1E72, - 0x00750324: 0x1E73, - 0x00550330: 0x1E74, - 0x00750330: 0x1E75, - 0x0055032D: 0x1E76, - 0x0075032D: 0x1E77, - 0x01680301: 0x1E78, - 0x01690301: 0x1E79, - 0x016A0308: 0x1E7A, - 0x016B0308: 0x1E7B, - 0x00560303: 0x1E7C, - 0x00760303: 0x1E7D, - 0x00560323: 0x1E7E, - 0x00760323: 0x1E7F, - 0x00570300: 0x1E80, - 0x00770300: 0x1E81, - 0x00570301: 0x1E82, - 0x00770301: 0x1E83, - 0x00570308: 0x1E84, - 0x00770308: 0x1E85, - 0x00570307: 0x1E86, - 0x00770307: 0x1E87, - 0x00570323: 0x1E88, - 0x00770323: 0x1E89, - 0x00580307: 0x1E8A, - 0x00780307: 0x1E8B, - 0x00580308: 0x1E8C, - 0x00780308: 0x1E8D, - 0x00590307: 0x1E8E, - 0x00790307: 0x1E8F, - 0x005A0302: 0x1E90, - 0x007A0302: 0x1E91, - 0x005A0323: 0x1E92, - 0x007A0323: 0x1E93, - 0x005A0331: 0x1E94, - 0x007A0331: 0x1E95, - 0x00680331: 0x1E96, - 0x00740308: 0x1E97, - 0x0077030A: 0x1E98, - 0x0079030A: 0x1E99, - 0x017F0307: 0x1E9B, - 0x00410323: 0x1EA0, - 0x00610323: 0x1EA1, - 0x00410309: 0x1EA2, - 0x00610309: 0x1EA3, - 0x00C20301: 0x1EA4, - 0x00E20301: 0x1EA5, - 0x00C20300: 0x1EA6, - 0x00E20300: 0x1EA7, - 0x00C20309: 0x1EA8, - 0x00E20309: 0x1EA9, - 0x00C20303: 0x1EAA, - 0x00E20303: 0x1EAB, - 0x1EA00302: 0x1EAC, - 0x1EA10302: 0x1EAD, - 0x01020301: 0x1EAE, - 0x01030301: 0x1EAF, - 0x01020300: 0x1EB0, - 0x01030300: 0x1EB1, - 0x01020309: 0x1EB2, - 0x01030309: 0x1EB3, - 0x01020303: 0x1EB4, - 0x01030303: 0x1EB5, - 0x1EA00306: 0x1EB6, - 0x1EA10306: 0x1EB7, - 0x00450323: 0x1EB8, - 0x00650323: 0x1EB9, - 0x00450309: 0x1EBA, - 0x00650309: 0x1EBB, - 0x00450303: 0x1EBC, - 0x00650303: 0x1EBD, - 0x00CA0301: 0x1EBE, - 0x00EA0301: 0x1EBF, - 0x00CA0300: 0x1EC0, - 0x00EA0300: 0x1EC1, - 0x00CA0309: 0x1EC2, - 0x00EA0309: 0x1EC3, - 0x00CA0303: 0x1EC4, - 0x00EA0303: 0x1EC5, - 0x1EB80302: 0x1EC6, - 0x1EB90302: 0x1EC7, - 0x00490309: 0x1EC8, - 0x00690309: 0x1EC9, - 0x00490323: 0x1ECA, - 0x00690323: 0x1ECB, - 0x004F0323: 0x1ECC, - 0x006F0323: 0x1ECD, - 0x004F0309: 0x1ECE, - 0x006F0309: 0x1ECF, - 0x00D40301: 0x1ED0, - 0x00F40301: 0x1ED1, - 0x00D40300: 0x1ED2, - 0x00F40300: 0x1ED3, - 0x00D40309: 0x1ED4, - 0x00F40309: 0x1ED5, - 0x00D40303: 0x1ED6, - 0x00F40303: 0x1ED7, - 0x1ECC0302: 0x1ED8, - 0x1ECD0302: 0x1ED9, - 0x01A00301: 0x1EDA, - 0x01A10301: 0x1EDB, - 0x01A00300: 0x1EDC, - 0x01A10300: 0x1EDD, - 0x01A00309: 0x1EDE, - 0x01A10309: 0x1EDF, - 0x01A00303: 0x1EE0, - 0x01A10303: 0x1EE1, - 0x01A00323: 0x1EE2, - 0x01A10323: 0x1EE3, - 0x00550323: 0x1EE4, - 0x00750323: 0x1EE5, - 0x00550309: 0x1EE6, - 0x00750309: 0x1EE7, - 0x01AF0301: 0x1EE8, - 0x01B00301: 0x1EE9, - 0x01AF0300: 0x1EEA, - 0x01B00300: 0x1EEB, - 0x01AF0309: 0x1EEC, - 0x01B00309: 0x1EED, - 0x01AF0303: 0x1EEE, - 0x01B00303: 0x1EEF, - 0x01AF0323: 0x1EF0, - 0x01B00323: 0x1EF1, - 0x00590300: 0x1EF2, - 0x00790300: 0x1EF3, - 0x00590323: 0x1EF4, - 0x00790323: 0x1EF5, - 0x00590309: 0x1EF6, - 0x00790309: 0x1EF7, - 0x00590303: 0x1EF8, - 0x00790303: 0x1EF9, - 0x03B10313: 0x1F00, - 0x03B10314: 0x1F01, - 0x1F000300: 0x1F02, - 0x1F010300: 0x1F03, - 0x1F000301: 0x1F04, - 0x1F010301: 0x1F05, - 0x1F000342: 0x1F06, - 0x1F010342: 0x1F07, - 0x03910313: 0x1F08, - 0x03910314: 0x1F09, - 0x1F080300: 0x1F0A, - 0x1F090300: 0x1F0B, - 0x1F080301: 0x1F0C, - 0x1F090301: 0x1F0D, - 0x1F080342: 0x1F0E, - 0x1F090342: 0x1F0F, - 0x03B50313: 0x1F10, - 0x03B50314: 0x1F11, - 0x1F100300: 0x1F12, - 0x1F110300: 0x1F13, - 0x1F100301: 0x1F14, - 0x1F110301: 0x1F15, - 0x03950313: 0x1F18, - 0x03950314: 0x1F19, - 0x1F180300: 0x1F1A, - 0x1F190300: 0x1F1B, - 0x1F180301: 0x1F1C, - 0x1F190301: 0x1F1D, - 0x03B70313: 0x1F20, - 0x03B70314: 0x1F21, - 0x1F200300: 0x1F22, - 0x1F210300: 0x1F23, - 0x1F200301: 0x1F24, - 0x1F210301: 0x1F25, - 0x1F200342: 0x1F26, - 0x1F210342: 0x1F27, - 0x03970313: 0x1F28, - 0x03970314: 0x1F29, - 0x1F280300: 0x1F2A, - 0x1F290300: 0x1F2B, - 0x1F280301: 0x1F2C, - 0x1F290301: 0x1F2D, - 0x1F280342: 0x1F2E, - 0x1F290342: 0x1F2F, - 0x03B90313: 0x1F30, - 0x03B90314: 0x1F31, - 0x1F300300: 0x1F32, - 0x1F310300: 0x1F33, - 0x1F300301: 0x1F34, - 0x1F310301: 0x1F35, - 0x1F300342: 0x1F36, - 0x1F310342: 0x1F37, - 0x03990313: 0x1F38, - 0x03990314: 0x1F39, - 0x1F380300: 0x1F3A, - 0x1F390300: 0x1F3B, - 0x1F380301: 0x1F3C, - 0x1F390301: 0x1F3D, - 0x1F380342: 0x1F3E, - 0x1F390342: 0x1F3F, - 0x03BF0313: 0x1F40, - 0x03BF0314: 0x1F41, - 0x1F400300: 0x1F42, - 0x1F410300: 0x1F43, - 0x1F400301: 0x1F44, - 0x1F410301: 0x1F45, - 0x039F0313: 0x1F48, - 0x039F0314: 0x1F49, - 0x1F480300: 0x1F4A, - 0x1F490300: 0x1F4B, - 0x1F480301: 0x1F4C, - 0x1F490301: 0x1F4D, - 0x03C50313: 0x1F50, - 0x03C50314: 0x1F51, - 0x1F500300: 0x1F52, - 0x1F510300: 0x1F53, - 0x1F500301: 0x1F54, - 0x1F510301: 0x1F55, - 0x1F500342: 0x1F56, - 0x1F510342: 0x1F57, - 0x03A50314: 0x1F59, - 0x1F590300: 0x1F5B, - 0x1F590301: 0x1F5D, - 0x1F590342: 0x1F5F, - 0x03C90313: 0x1F60, - 0x03C90314: 0x1F61, - 0x1F600300: 0x1F62, - 0x1F610300: 0x1F63, - 0x1F600301: 0x1F64, - 0x1F610301: 0x1F65, - 0x1F600342: 0x1F66, - 0x1F610342: 0x1F67, - 0x03A90313: 0x1F68, - 0x03A90314: 0x1F69, - 0x1F680300: 0x1F6A, - 0x1F690300: 0x1F6B, - 0x1F680301: 0x1F6C, - 0x1F690301: 0x1F6D, - 0x1F680342: 0x1F6E, - 0x1F690342: 0x1F6F, - 0x03B10300: 0x1F70, - 0x03B50300: 0x1F72, - 0x03B70300: 0x1F74, - 0x03B90300: 0x1F76, - 0x03BF0300: 0x1F78, - 0x03C50300: 0x1F7A, - 0x03C90300: 0x1F7C, - 0x1F000345: 0x1F80, - 0x1F010345: 0x1F81, - 0x1F020345: 0x1F82, - 0x1F030345: 0x1F83, - 0x1F040345: 0x1F84, - 0x1F050345: 0x1F85, - 0x1F060345: 0x1F86, - 0x1F070345: 0x1F87, - 0x1F080345: 0x1F88, - 0x1F090345: 0x1F89, - 0x1F0A0345: 0x1F8A, - 0x1F0B0345: 0x1F8B, - 0x1F0C0345: 0x1F8C, - 0x1F0D0345: 0x1F8D, - 0x1F0E0345: 0x1F8E, - 0x1F0F0345: 0x1F8F, - 0x1F200345: 0x1F90, - 0x1F210345: 0x1F91, - 0x1F220345: 0x1F92, - 0x1F230345: 0x1F93, - 0x1F240345: 0x1F94, - 0x1F250345: 0x1F95, - 0x1F260345: 0x1F96, - 0x1F270345: 0x1F97, - 0x1F280345: 0x1F98, - 0x1F290345: 0x1F99, - 0x1F2A0345: 0x1F9A, - 0x1F2B0345: 0x1F9B, - 0x1F2C0345: 0x1F9C, - 0x1F2D0345: 0x1F9D, - 0x1F2E0345: 0x1F9E, - 0x1F2F0345: 0x1F9F, - 0x1F600345: 0x1FA0, - 0x1F610345: 0x1FA1, - 0x1F620345: 0x1FA2, - 0x1F630345: 0x1FA3, - 0x1F640345: 0x1FA4, - 0x1F650345: 0x1FA5, - 0x1F660345: 0x1FA6, - 0x1F670345: 0x1FA7, - 0x1F680345: 0x1FA8, - 0x1F690345: 0x1FA9, - 0x1F6A0345: 0x1FAA, - 0x1F6B0345: 0x1FAB, - 0x1F6C0345: 0x1FAC, - 0x1F6D0345: 0x1FAD, - 0x1F6E0345: 0x1FAE, - 0x1F6F0345: 0x1FAF, - 0x03B10306: 0x1FB0, - 0x03B10304: 0x1FB1, - 0x1F700345: 0x1FB2, - 0x03B10345: 0x1FB3, - 0x03AC0345: 0x1FB4, - 0x03B10342: 0x1FB6, - 0x1FB60345: 0x1FB7, - 0x03910306: 0x1FB8, - 0x03910304: 0x1FB9, - 0x03910300: 0x1FBA, - 0x03910345: 0x1FBC, - 0x00A80342: 0x1FC1, - 0x1F740345: 0x1FC2, - 0x03B70345: 0x1FC3, - 0x03AE0345: 0x1FC4, - 0x03B70342: 0x1FC6, - 0x1FC60345: 0x1FC7, - 0x03950300: 0x1FC8, - 0x03970300: 0x1FCA, - 0x03970345: 0x1FCC, - 0x1FBF0300: 0x1FCD, - 0x1FBF0301: 0x1FCE, - 0x1FBF0342: 0x1FCF, - 0x03B90306: 0x1FD0, - 0x03B90304: 0x1FD1, - 0x03CA0300: 0x1FD2, - 0x03B90342: 0x1FD6, - 0x03CA0342: 0x1FD7, - 0x03990306: 0x1FD8, - 0x03990304: 0x1FD9, - 0x03990300: 0x1FDA, - 0x1FFE0300: 0x1FDD, - 0x1FFE0301: 0x1FDE, - 0x1FFE0342: 0x1FDF, - 0x03C50306: 0x1FE0, - 0x03C50304: 0x1FE1, - 0x03CB0300: 0x1FE2, - 0x03C10313: 0x1FE4, - 0x03C10314: 0x1FE5, - 0x03C50342: 0x1FE6, - 0x03CB0342: 0x1FE7, - 0x03A50306: 0x1FE8, - 0x03A50304: 0x1FE9, - 0x03A50300: 0x1FEA, - 0x03A10314: 0x1FEC, - 0x00A80300: 0x1FED, - 0x1F7C0345: 0x1FF2, - 0x03C90345: 0x1FF3, - 0x03CE0345: 0x1FF4, - 0x03C90342: 0x1FF6, - 0x1FF60345: 0x1FF7, - 0x039F0300: 0x1FF8, - 0x03A90300: 0x1FFA, - 0x03A90345: 0x1FFC, - 0x21900338: 0x219A, - 0x21920338: 0x219B, - 0x21940338: 0x21AE, - 0x21D00338: 0x21CD, - 0x21D40338: 0x21CE, - 0x21D20338: 0x21CF, - 0x22030338: 0x2204, - 0x22080338: 0x2209, - 0x220B0338: 0x220C, - 0x22230338: 0x2224, - 0x22250338: 0x2226, - 0x223C0338: 0x2241, - 0x22430338: 0x2244, - 0x22450338: 0x2247, - 0x22480338: 0x2249, - 0x003D0338: 0x2260, - 0x22610338: 0x2262, - 0x224D0338: 0x226D, - 0x003C0338: 0x226E, - 0x003E0338: 0x226F, - 0x22640338: 0x2270, - 0x22650338: 0x2271, - 0x22720338: 0x2274, - 0x22730338: 0x2275, - 0x22760338: 0x2278, - 0x22770338: 0x2279, - 0x227A0338: 0x2280, - 0x227B0338: 0x2281, - 0x22820338: 0x2284, - 0x22830338: 0x2285, - 0x22860338: 0x2288, - 0x22870338: 0x2289, - 0x22A20338: 0x22AC, - 0x22A80338: 0x22AD, - 0x22A90338: 0x22AE, - 0x22AB0338: 0x22AF, - 0x227C0338: 0x22E0, - 0x227D0338: 0x22E1, - 0x22910338: 0x22E2, - 0x22920338: 0x22E3, - 0x22B20338: 0x22EA, - 0x22B30338: 0x22EB, - 0x22B40338: 0x22EC, - 0x22B50338: 0x22ED, - 0x304B3099: 0x304C, - 0x304D3099: 0x304E, - 0x304F3099: 0x3050, - 0x30513099: 0x3052, - 0x30533099: 0x3054, - 0x30553099: 0x3056, - 0x30573099: 0x3058, - 0x30593099: 0x305A, - 0x305B3099: 0x305C, - 0x305D3099: 0x305E, - 0x305F3099: 0x3060, - 0x30613099: 0x3062, - 0x30643099: 0x3065, - 0x30663099: 0x3067, - 0x30683099: 0x3069, - 0x306F3099: 0x3070, - 0x306F309A: 0x3071, - 0x30723099: 0x3073, - 0x3072309A: 0x3074, - 0x30753099: 0x3076, - 0x3075309A: 0x3077, - 0x30783099: 0x3079, - 0x3078309A: 0x307A, - 0x307B3099: 0x307C, - 0x307B309A: 0x307D, - 0x30463099: 0x3094, - 0x309D3099: 0x309E, - 0x30AB3099: 0x30AC, - 0x30AD3099: 0x30AE, - 0x30AF3099: 0x30B0, - 0x30B13099: 0x30B2, - 0x30B33099: 0x30B4, - 0x30B53099: 0x30B6, - 0x30B73099: 0x30B8, - 0x30B93099: 0x30BA, - 0x30BB3099: 0x30BC, - 0x30BD3099: 0x30BE, - 0x30BF3099: 0x30C0, - 0x30C13099: 0x30C2, - 0x30C43099: 0x30C5, - 0x30C63099: 0x30C7, - 0x30C83099: 0x30C9, - 0x30CF3099: 0x30D0, - 0x30CF309A: 0x30D1, - 0x30D23099: 0x30D3, - 0x30D2309A: 0x30D4, - 0x30D53099: 0x30D6, - 0x30D5309A: 0x30D7, - 0x30D83099: 0x30D9, - 0x30D8309A: 0x30DA, - 0x30DB3099: 0x30DC, - 0x30DB309A: 0x30DD, - 0x30A63099: 0x30F4, - 0x30EF3099: 0x30F7, - 0x30F03099: 0x30F8, - 0x30F13099: 0x30F9, - 0x30F23099: 0x30FA, - 0x30FD3099: 0x30FE, - 0x109910BA: 0x1109A, - 0x109B10BA: 0x1109C, - 0x10A510BA: 0x110AB, - 0x11311127: 0x1112E, - 0x11321127: 0x1112F, - 0x1347133E: 0x1134B, - 0x13471357: 0x1134C, - 0x14B914BA: 0x114BB, - 0x14B914B0: 0x114BC, - 0x14B914BD: 0x114BE, - 0x15B815AF: 0x115BA, - 0x15B915AF: 0x115BB, -} - -// Total size of tables: 53KB (54006 bytes) diff --git a/vendor/golang.org/x/text/unicode/norm/transform.go b/vendor/golang.org/x/text/unicode/norm/transform.go deleted file mode 100644 index 8589067..0000000 --- a/vendor/golang.org/x/text/unicode/norm/transform.go +++ /dev/null @@ -1,88 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package norm - -import ( - "unicode/utf8" - - "golang.org/x/text/transform" -) - -// Reset implements the Reset method of the transform.Transformer interface. -func (Form) Reset() {} - -// Transform implements the Transform method of the transform.Transformer -// interface. It may need to write segments of up to MaxSegmentSize at once. -// Users should either catch ErrShortDst and allow dst to grow or have dst be at -// least of size MaxTransformChunkSize to be guaranteed of progress. -func (f Form) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - n := 0 - // Cap the maximum number of src bytes to check. - b := src - eof := atEOF - if ns := len(dst); ns < len(b) { - err = transform.ErrShortDst - eof = false - b = b[:ns] - } - i, ok := formTable[f].quickSpan(inputBytes(b), n, len(b), eof) - n += copy(dst[n:], b[n:i]) - if !ok { - nDst, nSrc, err = f.transform(dst[n:], src[n:], atEOF) - return nDst + n, nSrc + n, err - } - if n < len(src) && !atEOF { - err = transform.ErrShortSrc - } - return n, n, err -} - -func flushTransform(rb *reorderBuffer) bool { - // Write out (must fully fit in dst, or else it is a ErrShortDst). - if len(rb.out) < rb.nrune*utf8.UTFMax { - return false - } - rb.out = rb.out[rb.flushCopy(rb.out):] - return true -} - -var errs = []error{nil, transform.ErrShortDst, transform.ErrShortSrc} - -// transform implements the transform.Transformer interface. It is only called -// when quickSpan does not pass for a given string. -func (f Form) transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - // TODO: get rid of reorderBuffer. See CL 23460044. - rb := reorderBuffer{} - rb.init(f, src) - for { - // Load segment into reorder buffer. - rb.setFlusher(dst[nDst:], flushTransform) - end := decomposeSegment(&rb, nSrc, atEOF) - if end < 0 { - return nDst, nSrc, errs[-end] - } - nDst = len(dst) - len(rb.out) - nSrc = end - - // Next quickSpan. - end = rb.nsrc - eof := atEOF - if n := nSrc + len(dst) - nDst; n < end { - err = transform.ErrShortDst - end = n - eof = false - } - end, ok := rb.f.quickSpan(rb.src, nSrc, end, eof) - n := copy(dst[nDst:], rb.src.bytes[nSrc:end]) - nSrc += n - nDst += n - if ok { - if n < rb.nsrc && !atEOF { - err = transform.ErrShortSrc - } - return nDst, nSrc, err - } - } -} diff --git a/vendor/golang.org/x/text/unicode/norm/trie.go b/vendor/golang.org/x/text/unicode/norm/trie.go deleted file mode 100644 index 423386b..0000000 --- a/vendor/golang.org/x/text/unicode/norm/trie.go +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package norm - -type valueRange struct { - value uint16 // header: value:stride - lo, hi byte // header: lo:n -} - -type sparseBlocks struct { - values []valueRange - offset []uint16 -} - -var nfcSparse = sparseBlocks{ - values: nfcSparseValues[:], - offset: nfcSparseOffset[:], -} - -var nfkcSparse = sparseBlocks{ - values: nfkcSparseValues[:], - offset: nfkcSparseOffset[:], -} - -var ( - nfcData = newNfcTrie(0) - nfkcData = newNfkcTrie(0) -) - -// lookupValue determines the type of block n and looks up the value for b. -// For n < t.cutoff, the block is a simple lookup table. Otherwise, the block -// is a list of ranges with an accompanying value. Given a matching range r, -// the value for b is by r.value + (b - r.lo) * stride. -func (t *sparseBlocks) lookup(n uint32, b byte) uint16 { - offset := t.offset[n] - header := t.values[offset] - lo := offset + 1 - hi := lo + uint16(header.lo) - for lo < hi { - m := lo + (hi-lo)/2 - r := t.values[m] - if r.lo <= b && b <= r.hi { - return r.value + uint16(b-r.lo)*header.value - } - if b < r.lo { - hi = m - } else { - lo = m + 1 - } - } - return 0 -} diff --git a/vendor/golang.org/x/text/unicode/norm/triegen.go b/vendor/golang.org/x/text/unicode/norm/triegen.go deleted file mode 100644 index 45d7119..0000000 --- a/vendor/golang.org/x/text/unicode/norm/triegen.go +++ /dev/null @@ -1,117 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -// Trie table generator. -// Used by make*tables tools to generate a go file with trie data structures -// for mapping UTF-8 to a 16-bit value. All but the last byte in a UTF-8 byte -// sequence are used to lookup offsets in the index table to be used for the -// next byte. The last byte is used to index into a table with 16-bit values. - -package main - -import ( - "fmt" - "io" -) - -const maxSparseEntries = 16 - -type normCompacter struct { - sparseBlocks [][]uint64 - sparseOffset []uint16 - sparseCount int - name string -} - -func mostFrequentStride(a []uint64) int { - counts := make(map[int]int) - var v int - for _, x := range a { - if stride := int(x) - v; v != 0 && stride >= 0 { - counts[stride]++ - } - v = int(x) - } - var maxs, maxc int - for stride, cnt := range counts { - if cnt > maxc || (cnt == maxc && stride < maxs) { - maxs, maxc = stride, cnt - } - } - return maxs -} - -func countSparseEntries(a []uint64) int { - stride := mostFrequentStride(a) - var v, count int - for _, tv := range a { - if int(tv)-v != stride { - if tv != 0 { - count++ - } - } - v = int(tv) - } - return count -} - -func (c *normCompacter) Size(v []uint64) (sz int, ok bool) { - if n := countSparseEntries(v); n <= maxSparseEntries { - return (n+1)*4 + 2, true - } - return 0, false -} - -func (c *normCompacter) Store(v []uint64) uint32 { - h := uint32(len(c.sparseOffset)) - c.sparseBlocks = append(c.sparseBlocks, v) - c.sparseOffset = append(c.sparseOffset, uint16(c.sparseCount)) - c.sparseCount += countSparseEntries(v) + 1 - return h -} - -func (c *normCompacter) Handler() string { - return c.name + "Sparse.lookup" -} - -func (c *normCompacter) Print(w io.Writer) (retErr error) { - p := func(f string, x ...interface{}) { - if _, err := fmt.Fprintf(w, f, x...); retErr == nil && err != nil { - retErr = err - } - } - - ls := len(c.sparseBlocks) - p("// %sSparseOffset: %d entries, %d bytes\n", c.name, ls, ls*2) - p("var %sSparseOffset = %#v\n\n", c.name, c.sparseOffset) - - ns := c.sparseCount - p("// %sSparseValues: %d entries, %d bytes\n", c.name, ns, ns*4) - p("var %sSparseValues = [%d]valueRange {", c.name, ns) - for i, b := range c.sparseBlocks { - p("\n// Block %#x, offset %#x", i, c.sparseOffset[i]) - var v int - stride := mostFrequentStride(b) - n := countSparseEntries(b) - p("\n{value:%#04x,lo:%#02x},", stride, uint8(n)) - for i, nv := range b { - if int(nv)-v != stride { - if v != 0 { - p(",hi:%#02x},", 0x80+i-1) - } - if nv != 0 { - p("\n{value:%#04x,lo:%#02x", nv, 0x80+i) - } - } - v = int(nv) - } - if v != 0 { - p(",hi:%#02x},", 0x80+len(b)-1) - } - } - p("\n}\n\n") - return -} diff --git a/vendor/gopkg.in/yaml.v2/LICENSE b/vendor/gopkg.in/yaml.v2/LICENSE deleted file mode 100644 index 8dada3e..0000000 --- a/vendor/gopkg.in/yaml.v2/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright {yyyy} {name of copyright owner} - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/vendor/gopkg.in/yaml.v2/LICENSE.libyaml b/vendor/gopkg.in/yaml.v2/LICENSE.libyaml deleted file mode 100644 index 8da58fb..0000000 --- a/vendor/gopkg.in/yaml.v2/LICENSE.libyaml +++ /dev/null @@ -1,31 +0,0 @@ -The following files were ported to Go from C files of libyaml, and thus -are still covered by their original copyright and license: - - apic.go - emitterc.go - parserc.go - readerc.go - scannerc.go - writerc.go - yamlh.go - yamlprivateh.go - -Copyright (c) 2006 Kirill Simonov - -Permission 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: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE 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. diff --git a/vendor/gopkg.in/yaml.v2/README.md b/vendor/gopkg.in/yaml.v2/README.md deleted file mode 100644 index 7a512d6..0000000 --- a/vendor/gopkg.in/yaml.v2/README.md +++ /dev/null @@ -1,133 +0,0 @@ -# YAML support for the Go language - -Introduction ------------- - -The yaml package enables Go programs to comfortably encode and decode YAML -values. It was developed within [Canonical](https://www.canonical.com) as -part of the [juju](https://juju.ubuntu.com) project, and is based on a -pure Go port of the well-known [libyaml](http://pyyaml.org/wiki/LibYAML) -C library to parse and generate YAML data quickly and reliably. - -Compatibility -------------- - -The yaml package supports most of YAML 1.1 and 1.2, including support for -anchors, tags, map merging, etc. Multi-document unmarshalling is not yet -implemented, and base-60 floats from YAML 1.1 are purposefully not -supported since they're a poor design and are gone in YAML 1.2. - -Installation and usage ----------------------- - -The import path for the package is *gopkg.in/yaml.v2*. - -To install it, run: - - go get gopkg.in/yaml.v2 - -API documentation ------------------ - -If opened in a browser, the import path itself leads to the API documentation: - - * [https://gopkg.in/yaml.v2](https://gopkg.in/yaml.v2) - -API stability -------------- - -The package API for yaml v2 will remain stable as described in [gopkg.in](https://gopkg.in). - - -License -------- - -The yaml package is licensed under the Apache License 2.0. Please see the LICENSE file for details. - - -Example -------- - -Some more examples can be found in the "examples" folder. - -```Go -package main - -import ( - "fmt" - "log" - - "gopkg.in/yaml.v2" -) - -var data = ` -a: Easy! -b: - c: 2 - d: [3, 4] -` - -type T struct { - A string - B struct { - RenamedC int `yaml:"c"` - D []int `yaml:",flow"` - } -} - -func main() { - t := T{} - - err := yaml.Unmarshal([]byte(data), &t) - if err != nil { - log.Fatalf("error: %v", err) - } - fmt.Printf("--- t:\n%v\n\n", t) - - d, err := yaml.Marshal(&t) - if err != nil { - log.Fatalf("error: %v", err) - } - fmt.Printf("--- t dump:\n%s\n\n", string(d)) - - m := make(map[interface{}]interface{}) - - err = yaml.Unmarshal([]byte(data), &m) - if err != nil { - log.Fatalf("error: %v", err) - } - fmt.Printf("--- m:\n%v\n\n", m) - - d, err = yaml.Marshal(&m) - if err != nil { - log.Fatalf("error: %v", err) - } - fmt.Printf("--- m dump:\n%s\n\n", string(d)) -} -``` - -This example will generate the following output: - -``` ---- t: -{Easy! {2 [3 4]}} - ---- t dump: -a: Easy! -b: - c: 2 - d: [3, 4] - - ---- m: -map[a:Easy! b:map[c:2 d:[3 4]]] - ---- m dump: -a: Easy! -b: - c: 2 - d: - - 3 - - 4 -``` - diff --git a/vendor/gopkg.in/yaml.v2/apic.go b/vendor/gopkg.in/yaml.v2/apic.go deleted file mode 100644 index 95ec014..0000000 --- a/vendor/gopkg.in/yaml.v2/apic.go +++ /dev/null @@ -1,742 +0,0 @@ -package yaml - -import ( - "io" - "os" -) - -func yaml_insert_token(parser *yaml_parser_t, pos int, token *yaml_token_t) { - //fmt.Println("yaml_insert_token", "pos:", pos, "typ:", token.typ, "head:", parser.tokens_head, "len:", len(parser.tokens)) - - // Check if we can move the queue at the beginning of the buffer. - if parser.tokens_head > 0 && len(parser.tokens) == cap(parser.tokens) { - if parser.tokens_head != len(parser.tokens) { - copy(parser.tokens, parser.tokens[parser.tokens_head:]) - } - parser.tokens = parser.tokens[:len(parser.tokens)-parser.tokens_head] - parser.tokens_head = 0 - } - parser.tokens = append(parser.tokens, *token) - if pos < 0 { - return - } - copy(parser.tokens[parser.tokens_head+pos+1:], parser.tokens[parser.tokens_head+pos:]) - parser.tokens[parser.tokens_head+pos] = *token -} - -// Create a new parser object. -func yaml_parser_initialize(parser *yaml_parser_t) bool { - *parser = yaml_parser_t{ - raw_buffer: make([]byte, 0, input_raw_buffer_size), - buffer: make([]byte, 0, input_buffer_size), - } - return true -} - -// Destroy a parser object. -func yaml_parser_delete(parser *yaml_parser_t) { - *parser = yaml_parser_t{} -} - -// String read handler. -func yaml_string_read_handler(parser *yaml_parser_t, buffer []byte) (n int, err error) { - if parser.input_pos == len(parser.input) { - return 0, io.EOF - } - n = copy(buffer, parser.input[parser.input_pos:]) - parser.input_pos += n - return n, nil -} - -// File read handler. -func yaml_file_read_handler(parser *yaml_parser_t, buffer []byte) (n int, err error) { - return parser.input_file.Read(buffer) -} - -// Set a string input. -func yaml_parser_set_input_string(parser *yaml_parser_t, input []byte) { - if parser.read_handler != nil { - panic("must set the input source only once") - } - parser.read_handler = yaml_string_read_handler - parser.input = input - parser.input_pos = 0 -} - -// Set a file input. -func yaml_parser_set_input_file(parser *yaml_parser_t, file *os.File) { - if parser.read_handler != nil { - panic("must set the input source only once") - } - parser.read_handler = yaml_file_read_handler - parser.input_file = file -} - -// Set the source encoding. -func yaml_parser_set_encoding(parser *yaml_parser_t, encoding yaml_encoding_t) { - if parser.encoding != yaml_ANY_ENCODING { - panic("must set the encoding only once") - } - parser.encoding = encoding -} - -// Create a new emitter object. -func yaml_emitter_initialize(emitter *yaml_emitter_t) bool { - *emitter = yaml_emitter_t{ - buffer: make([]byte, output_buffer_size), - raw_buffer: make([]byte, 0, output_raw_buffer_size), - states: make([]yaml_emitter_state_t, 0, initial_stack_size), - events: make([]yaml_event_t, 0, initial_queue_size), - } - return true -} - -// Destroy an emitter object. -func yaml_emitter_delete(emitter *yaml_emitter_t) { - *emitter = yaml_emitter_t{} -} - -// String write handler. -func yaml_string_write_handler(emitter *yaml_emitter_t, buffer []byte) error { - *emitter.output_buffer = append(*emitter.output_buffer, buffer...) - return nil -} - -// File write handler. -func yaml_file_write_handler(emitter *yaml_emitter_t, buffer []byte) error { - _, err := emitter.output_file.Write(buffer) - return err -} - -// Set a string output. -func yaml_emitter_set_output_string(emitter *yaml_emitter_t, output_buffer *[]byte) { - if emitter.write_handler != nil { - panic("must set the output target only once") - } - emitter.write_handler = yaml_string_write_handler - emitter.output_buffer = output_buffer -} - -// Set a file output. -func yaml_emitter_set_output_file(emitter *yaml_emitter_t, file io.Writer) { - if emitter.write_handler != nil { - panic("must set the output target only once") - } - emitter.write_handler = yaml_file_write_handler - emitter.output_file = file -} - -// Set the output encoding. -func yaml_emitter_set_encoding(emitter *yaml_emitter_t, encoding yaml_encoding_t) { - if emitter.encoding != yaml_ANY_ENCODING { - panic("must set the output encoding only once") - } - emitter.encoding = encoding -} - -// Set the canonical output style. -func yaml_emitter_set_canonical(emitter *yaml_emitter_t, canonical bool) { - emitter.canonical = canonical -} - -//// Set the indentation increment. -func yaml_emitter_set_indent(emitter *yaml_emitter_t, indent int) { - if indent < 2 || indent > 9 { - indent = 2 - } - emitter.best_indent = indent -} - -// Set the preferred line width. -func yaml_emitter_set_width(emitter *yaml_emitter_t, width int) { - if width < 0 { - width = -1 - } - emitter.best_width = width -} - -// Set if unescaped non-ASCII characters are allowed. -func yaml_emitter_set_unicode(emitter *yaml_emitter_t, unicode bool) { - emitter.unicode = unicode -} - -// Set the preferred line break character. -func yaml_emitter_set_break(emitter *yaml_emitter_t, line_break yaml_break_t) { - emitter.line_break = line_break -} - -///* -// * Destroy a token object. -// */ -// -//YAML_DECLARE(void) -//yaml_token_delete(yaml_token_t *token) -//{ -// assert(token); // Non-NULL token object expected. -// -// switch (token.type) -// { -// case YAML_TAG_DIRECTIVE_TOKEN: -// yaml_free(token.data.tag_directive.handle); -// yaml_free(token.data.tag_directive.prefix); -// break; -// -// case YAML_ALIAS_TOKEN: -// yaml_free(token.data.alias.value); -// break; -// -// case YAML_ANCHOR_TOKEN: -// yaml_free(token.data.anchor.value); -// break; -// -// case YAML_TAG_TOKEN: -// yaml_free(token.data.tag.handle); -// yaml_free(token.data.tag.suffix); -// break; -// -// case YAML_SCALAR_TOKEN: -// yaml_free(token.data.scalar.value); -// break; -// -// default: -// break; -// } -// -// memset(token, 0, sizeof(yaml_token_t)); -//} -// -///* -// * Check if a string is a valid UTF-8 sequence. -// * -// * Check 'reader.c' for more details on UTF-8 encoding. -// */ -// -//static int -//yaml_check_utf8(yaml_char_t *start, size_t length) -//{ -// yaml_char_t *end = start+length; -// yaml_char_t *pointer = start; -// -// while (pointer < end) { -// unsigned char octet; -// unsigned int width; -// unsigned int value; -// size_t k; -// -// octet = pointer[0]; -// width = (octet & 0x80) == 0x00 ? 1 : -// (octet & 0xE0) == 0xC0 ? 2 : -// (octet & 0xF0) == 0xE0 ? 3 : -// (octet & 0xF8) == 0xF0 ? 4 : 0; -// value = (octet & 0x80) == 0x00 ? octet & 0x7F : -// (octet & 0xE0) == 0xC0 ? octet & 0x1F : -// (octet & 0xF0) == 0xE0 ? octet & 0x0F : -// (octet & 0xF8) == 0xF0 ? octet & 0x07 : 0; -// if (!width) return 0; -// if (pointer+width > end) return 0; -// for (k = 1; k < width; k ++) { -// octet = pointer[k]; -// if ((octet & 0xC0) != 0x80) return 0; -// value = (value << 6) + (octet & 0x3F); -// } -// if (!((width == 1) || -// (width == 2 && value >= 0x80) || -// (width == 3 && value >= 0x800) || -// (width == 4 && value >= 0x10000))) return 0; -// -// pointer += width; -// } -// -// return 1; -//} -// - -// Create STREAM-START. -func yaml_stream_start_event_initialize(event *yaml_event_t, encoding yaml_encoding_t) bool { - *event = yaml_event_t{ - typ: yaml_STREAM_START_EVENT, - encoding: encoding, - } - return true -} - -// Create STREAM-END. -func yaml_stream_end_event_initialize(event *yaml_event_t) bool { - *event = yaml_event_t{ - typ: yaml_STREAM_END_EVENT, - } - return true -} - -// Create DOCUMENT-START. -func yaml_document_start_event_initialize(event *yaml_event_t, version_directive *yaml_version_directive_t, - tag_directives []yaml_tag_directive_t, implicit bool) bool { - *event = yaml_event_t{ - typ: yaml_DOCUMENT_START_EVENT, - version_directive: version_directive, - tag_directives: tag_directives, - implicit: implicit, - } - return true -} - -// Create DOCUMENT-END. -func yaml_document_end_event_initialize(event *yaml_event_t, implicit bool) bool { - *event = yaml_event_t{ - typ: yaml_DOCUMENT_END_EVENT, - implicit: implicit, - } - return true -} - -///* -// * Create ALIAS. -// */ -// -//YAML_DECLARE(int) -//yaml_alias_event_initialize(event *yaml_event_t, anchor *yaml_char_t) -//{ -// mark yaml_mark_t = { 0, 0, 0 } -// anchor_copy *yaml_char_t = NULL -// -// assert(event) // Non-NULL event object is expected. -// assert(anchor) // Non-NULL anchor is expected. -// -// if (!yaml_check_utf8(anchor, strlen((char *)anchor))) return 0 -// -// anchor_copy = yaml_strdup(anchor) -// if (!anchor_copy) -// return 0 -// -// ALIAS_EVENT_INIT(*event, anchor_copy, mark, mark) -// -// return 1 -//} - -// Create SCALAR. -func yaml_scalar_event_initialize(event *yaml_event_t, anchor, tag, value []byte, plain_implicit, quoted_implicit bool, style yaml_scalar_style_t) bool { - *event = yaml_event_t{ - typ: yaml_SCALAR_EVENT, - anchor: anchor, - tag: tag, - value: value, - implicit: plain_implicit, - quoted_implicit: quoted_implicit, - style: yaml_style_t(style), - } - return true -} - -// Create SEQUENCE-START. -func yaml_sequence_start_event_initialize(event *yaml_event_t, anchor, tag []byte, implicit bool, style yaml_sequence_style_t) bool { - *event = yaml_event_t{ - typ: yaml_SEQUENCE_START_EVENT, - anchor: anchor, - tag: tag, - implicit: implicit, - style: yaml_style_t(style), - } - return true -} - -// Create SEQUENCE-END. -func yaml_sequence_end_event_initialize(event *yaml_event_t) bool { - *event = yaml_event_t{ - typ: yaml_SEQUENCE_END_EVENT, - } - return true -} - -// Create MAPPING-START. -func yaml_mapping_start_event_initialize(event *yaml_event_t, anchor, tag []byte, implicit bool, style yaml_mapping_style_t) bool { - *event = yaml_event_t{ - typ: yaml_MAPPING_START_EVENT, - anchor: anchor, - tag: tag, - implicit: implicit, - style: yaml_style_t(style), - } - return true -} - -// Create MAPPING-END. -func yaml_mapping_end_event_initialize(event *yaml_event_t) bool { - *event = yaml_event_t{ - typ: yaml_MAPPING_END_EVENT, - } - return true -} - -// Destroy an event object. -func yaml_event_delete(event *yaml_event_t) { - *event = yaml_event_t{} -} - -///* -// * Create a document object. -// */ -// -//YAML_DECLARE(int) -//yaml_document_initialize(document *yaml_document_t, -// version_directive *yaml_version_directive_t, -// tag_directives_start *yaml_tag_directive_t, -// tag_directives_end *yaml_tag_directive_t, -// start_implicit int, end_implicit int) -//{ -// struct { -// error yaml_error_type_t -// } context -// struct { -// start *yaml_node_t -// end *yaml_node_t -// top *yaml_node_t -// } nodes = { NULL, NULL, NULL } -// version_directive_copy *yaml_version_directive_t = NULL -// struct { -// start *yaml_tag_directive_t -// end *yaml_tag_directive_t -// top *yaml_tag_directive_t -// } tag_directives_copy = { NULL, NULL, NULL } -// value yaml_tag_directive_t = { NULL, NULL } -// mark yaml_mark_t = { 0, 0, 0 } -// -// assert(document) // Non-NULL document object is expected. -// assert((tag_directives_start && tag_directives_end) || -// (tag_directives_start == tag_directives_end)) -// // Valid tag directives are expected. -// -// if (!STACK_INIT(&context, nodes, INITIAL_STACK_SIZE)) goto error -// -// if (version_directive) { -// version_directive_copy = yaml_malloc(sizeof(yaml_version_directive_t)) -// if (!version_directive_copy) goto error -// version_directive_copy.major = version_directive.major -// version_directive_copy.minor = version_directive.minor -// } -// -// if (tag_directives_start != tag_directives_end) { -// tag_directive *yaml_tag_directive_t -// if (!STACK_INIT(&context, tag_directives_copy, INITIAL_STACK_SIZE)) -// goto error -// for (tag_directive = tag_directives_start -// tag_directive != tag_directives_end; tag_directive ++) { -// assert(tag_directive.handle) -// assert(tag_directive.prefix) -// if (!yaml_check_utf8(tag_directive.handle, -// strlen((char *)tag_directive.handle))) -// goto error -// if (!yaml_check_utf8(tag_directive.prefix, -// strlen((char *)tag_directive.prefix))) -// goto error -// value.handle = yaml_strdup(tag_directive.handle) -// value.prefix = yaml_strdup(tag_directive.prefix) -// if (!value.handle || !value.prefix) goto error -// if (!PUSH(&context, tag_directives_copy, value)) -// goto error -// value.handle = NULL -// value.prefix = NULL -// } -// } -// -// DOCUMENT_INIT(*document, nodes.start, nodes.end, version_directive_copy, -// tag_directives_copy.start, tag_directives_copy.top, -// start_implicit, end_implicit, mark, mark) -// -// return 1 -// -//error: -// STACK_DEL(&context, nodes) -// yaml_free(version_directive_copy) -// while (!STACK_EMPTY(&context, tag_directives_copy)) { -// value yaml_tag_directive_t = POP(&context, tag_directives_copy) -// yaml_free(value.handle) -// yaml_free(value.prefix) -// } -// STACK_DEL(&context, tag_directives_copy) -// yaml_free(value.handle) -// yaml_free(value.prefix) -// -// return 0 -//} -// -///* -// * Destroy a document object. -// */ -// -//YAML_DECLARE(void) -//yaml_document_delete(document *yaml_document_t) -//{ -// struct { -// error yaml_error_type_t -// } context -// tag_directive *yaml_tag_directive_t -// -// context.error = YAML_NO_ERROR // Eliminate a compliler warning. -// -// assert(document) // Non-NULL document object is expected. -// -// while (!STACK_EMPTY(&context, document.nodes)) { -// node yaml_node_t = POP(&context, document.nodes) -// yaml_free(node.tag) -// switch (node.type) { -// case YAML_SCALAR_NODE: -// yaml_free(node.data.scalar.value) -// break -// case YAML_SEQUENCE_NODE: -// STACK_DEL(&context, node.data.sequence.items) -// break -// case YAML_MAPPING_NODE: -// STACK_DEL(&context, node.data.mapping.pairs) -// break -// default: -// assert(0) // Should not happen. -// } -// } -// STACK_DEL(&context, document.nodes) -// -// yaml_free(document.version_directive) -// for (tag_directive = document.tag_directives.start -// tag_directive != document.tag_directives.end -// tag_directive++) { -// yaml_free(tag_directive.handle) -// yaml_free(tag_directive.prefix) -// } -// yaml_free(document.tag_directives.start) -// -// memset(document, 0, sizeof(yaml_document_t)) -//} -// -///** -// * Get a document node. -// */ -// -//YAML_DECLARE(yaml_node_t *) -//yaml_document_get_node(document *yaml_document_t, index int) -//{ -// assert(document) // Non-NULL document object is expected. -// -// if (index > 0 && document.nodes.start + index <= document.nodes.top) { -// return document.nodes.start + index - 1 -// } -// return NULL -//} -// -///** -// * Get the root object. -// */ -// -//YAML_DECLARE(yaml_node_t *) -//yaml_document_get_root_node(document *yaml_document_t) -//{ -// assert(document) // Non-NULL document object is expected. -// -// if (document.nodes.top != document.nodes.start) { -// return document.nodes.start -// } -// return NULL -//} -// -///* -// * Add a scalar node to a document. -// */ -// -//YAML_DECLARE(int) -//yaml_document_add_scalar(document *yaml_document_t, -// tag *yaml_char_t, value *yaml_char_t, length int, -// style yaml_scalar_style_t) -//{ -// struct { -// error yaml_error_type_t -// } context -// mark yaml_mark_t = { 0, 0, 0 } -// tag_copy *yaml_char_t = NULL -// value_copy *yaml_char_t = NULL -// node yaml_node_t -// -// assert(document) // Non-NULL document object is expected. -// assert(value) // Non-NULL value is expected. -// -// if (!tag) { -// tag = (yaml_char_t *)YAML_DEFAULT_SCALAR_TAG -// } -// -// if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error -// tag_copy = yaml_strdup(tag) -// if (!tag_copy) goto error -// -// if (length < 0) { -// length = strlen((char *)value) -// } -// -// if (!yaml_check_utf8(value, length)) goto error -// value_copy = yaml_malloc(length+1) -// if (!value_copy) goto error -// memcpy(value_copy, value, length) -// value_copy[length] = '\0' -// -// SCALAR_NODE_INIT(node, tag_copy, value_copy, length, style, mark, mark) -// if (!PUSH(&context, document.nodes, node)) goto error -// -// return document.nodes.top - document.nodes.start -// -//error: -// yaml_free(tag_copy) -// yaml_free(value_copy) -// -// return 0 -//} -// -///* -// * Add a sequence node to a document. -// */ -// -//YAML_DECLARE(int) -//yaml_document_add_sequence(document *yaml_document_t, -// tag *yaml_char_t, style yaml_sequence_style_t) -//{ -// struct { -// error yaml_error_type_t -// } context -// mark yaml_mark_t = { 0, 0, 0 } -// tag_copy *yaml_char_t = NULL -// struct { -// start *yaml_node_item_t -// end *yaml_node_item_t -// top *yaml_node_item_t -// } items = { NULL, NULL, NULL } -// node yaml_node_t -// -// assert(document) // Non-NULL document object is expected. -// -// if (!tag) { -// tag = (yaml_char_t *)YAML_DEFAULT_SEQUENCE_TAG -// } -// -// if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error -// tag_copy = yaml_strdup(tag) -// if (!tag_copy) goto error -// -// if (!STACK_INIT(&context, items, INITIAL_STACK_SIZE)) goto error -// -// SEQUENCE_NODE_INIT(node, tag_copy, items.start, items.end, -// style, mark, mark) -// if (!PUSH(&context, document.nodes, node)) goto error -// -// return document.nodes.top - document.nodes.start -// -//error: -// STACK_DEL(&context, items) -// yaml_free(tag_copy) -// -// return 0 -//} -// -///* -// * Add a mapping node to a document. -// */ -// -//YAML_DECLARE(int) -//yaml_document_add_mapping(document *yaml_document_t, -// tag *yaml_char_t, style yaml_mapping_style_t) -//{ -// struct { -// error yaml_error_type_t -// } context -// mark yaml_mark_t = { 0, 0, 0 } -// tag_copy *yaml_char_t = NULL -// struct { -// start *yaml_node_pair_t -// end *yaml_node_pair_t -// top *yaml_node_pair_t -// } pairs = { NULL, NULL, NULL } -// node yaml_node_t -// -// assert(document) // Non-NULL document object is expected. -// -// if (!tag) { -// tag = (yaml_char_t *)YAML_DEFAULT_MAPPING_TAG -// } -// -// if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error -// tag_copy = yaml_strdup(tag) -// if (!tag_copy) goto error -// -// if (!STACK_INIT(&context, pairs, INITIAL_STACK_SIZE)) goto error -// -// MAPPING_NODE_INIT(node, tag_copy, pairs.start, pairs.end, -// style, mark, mark) -// if (!PUSH(&context, document.nodes, node)) goto error -// -// return document.nodes.top - document.nodes.start -// -//error: -// STACK_DEL(&context, pairs) -// yaml_free(tag_copy) -// -// return 0 -//} -// -///* -// * Append an item to a sequence node. -// */ -// -//YAML_DECLARE(int) -//yaml_document_append_sequence_item(document *yaml_document_t, -// sequence int, item int) -//{ -// struct { -// error yaml_error_type_t -// } context -// -// assert(document) // Non-NULL document is required. -// assert(sequence > 0 -// && document.nodes.start + sequence <= document.nodes.top) -// // Valid sequence id is required. -// assert(document.nodes.start[sequence-1].type == YAML_SEQUENCE_NODE) -// // A sequence node is required. -// assert(item > 0 && document.nodes.start + item <= document.nodes.top) -// // Valid item id is required. -// -// if (!PUSH(&context, -// document.nodes.start[sequence-1].data.sequence.items, item)) -// return 0 -// -// return 1 -//} -// -///* -// * Append a pair of a key and a value to a mapping node. -// */ -// -//YAML_DECLARE(int) -//yaml_document_append_mapping_pair(document *yaml_document_t, -// mapping int, key int, value int) -//{ -// struct { -// error yaml_error_type_t -// } context -// -// pair yaml_node_pair_t -// -// assert(document) // Non-NULL document is required. -// assert(mapping > 0 -// && document.nodes.start + mapping <= document.nodes.top) -// // Valid mapping id is required. -// assert(document.nodes.start[mapping-1].type == YAML_MAPPING_NODE) -// // A mapping node is required. -// assert(key > 0 && document.nodes.start + key <= document.nodes.top) -// // Valid key id is required. -// assert(value > 0 && document.nodes.start + value <= document.nodes.top) -// // Valid value id is required. -// -// pair.key = key -// pair.value = value -// -// if (!PUSH(&context, -// document.nodes.start[mapping-1].data.mapping.pairs, pair)) -// return 0 -// -// return 1 -//} -// -// diff --git a/vendor/gopkg.in/yaml.v2/decode.go b/vendor/gopkg.in/yaml.v2/decode.go deleted file mode 100644 index db1f5f2..0000000 --- a/vendor/gopkg.in/yaml.v2/decode.go +++ /dev/null @@ -1,685 +0,0 @@ -package yaml - -import ( - "encoding" - "encoding/base64" - "fmt" - "math" - "reflect" - "strconv" - "time" -) - -const ( - documentNode = 1 << iota - mappingNode - sequenceNode - scalarNode - aliasNode -) - -type node struct { - kind int - line, column int - tag string - value string - implicit bool - children []*node - anchors map[string]*node -} - -// ---------------------------------------------------------------------------- -// Parser, produces a node tree out of a libyaml event stream. - -type parser struct { - parser yaml_parser_t - event yaml_event_t - doc *node -} - -func newParser(b []byte) *parser { - p := parser{} - if !yaml_parser_initialize(&p.parser) { - panic("failed to initialize YAML emitter") - } - - if len(b) == 0 { - b = []byte{'\n'} - } - - yaml_parser_set_input_string(&p.parser, b) - - p.skip() - if p.event.typ != yaml_STREAM_START_EVENT { - panic("expected stream start event, got " + strconv.Itoa(int(p.event.typ))) - } - p.skip() - return &p -} - -func (p *parser) destroy() { - if p.event.typ != yaml_NO_EVENT { - yaml_event_delete(&p.event) - } - yaml_parser_delete(&p.parser) -} - -func (p *parser) skip() { - if p.event.typ != yaml_NO_EVENT { - if p.event.typ == yaml_STREAM_END_EVENT { - failf("attempted to go past the end of stream; corrupted value?") - } - yaml_event_delete(&p.event) - } - if !yaml_parser_parse(&p.parser, &p.event) { - p.fail() - } -} - -func (p *parser) fail() { - var where string - var line int - if p.parser.problem_mark.line != 0 { - line = p.parser.problem_mark.line - } else if p.parser.context_mark.line != 0 { - line = p.parser.context_mark.line - } - if line != 0 { - where = "line " + strconv.Itoa(line) + ": " - } - var msg string - if len(p.parser.problem) > 0 { - msg = p.parser.problem - } else { - msg = "unknown problem parsing YAML content" - } - failf("%s%s", where, msg) -} - -func (p *parser) anchor(n *node, anchor []byte) { - if anchor != nil { - p.doc.anchors[string(anchor)] = n - } -} - -func (p *parser) parse() *node { - switch p.event.typ { - case yaml_SCALAR_EVENT: - return p.scalar() - case yaml_ALIAS_EVENT: - return p.alias() - case yaml_MAPPING_START_EVENT: - return p.mapping() - case yaml_SEQUENCE_START_EVENT: - return p.sequence() - case yaml_DOCUMENT_START_EVENT: - return p.document() - case yaml_STREAM_END_EVENT: - // Happens when attempting to decode an empty buffer. - return nil - default: - panic("attempted to parse unknown event: " + strconv.Itoa(int(p.event.typ))) - } -} - -func (p *parser) node(kind int) *node { - return &node{ - kind: kind, - line: p.event.start_mark.line, - column: p.event.start_mark.column, - } -} - -func (p *parser) document() *node { - n := p.node(documentNode) - n.anchors = make(map[string]*node) - p.doc = n - p.skip() - n.children = append(n.children, p.parse()) - if p.event.typ != yaml_DOCUMENT_END_EVENT { - panic("expected end of document event but got " + strconv.Itoa(int(p.event.typ))) - } - p.skip() - return n -} - -func (p *parser) alias() *node { - n := p.node(aliasNode) - n.value = string(p.event.anchor) - p.skip() - return n -} - -func (p *parser) scalar() *node { - n := p.node(scalarNode) - n.value = string(p.event.value) - n.tag = string(p.event.tag) - n.implicit = p.event.implicit - p.anchor(n, p.event.anchor) - p.skip() - return n -} - -func (p *parser) sequence() *node { - n := p.node(sequenceNode) - p.anchor(n, p.event.anchor) - p.skip() - for p.event.typ != yaml_SEQUENCE_END_EVENT { - n.children = append(n.children, p.parse()) - } - p.skip() - return n -} - -func (p *parser) mapping() *node { - n := p.node(mappingNode) - p.anchor(n, p.event.anchor) - p.skip() - for p.event.typ != yaml_MAPPING_END_EVENT { - n.children = append(n.children, p.parse(), p.parse()) - } - p.skip() - return n -} - -// ---------------------------------------------------------------------------- -// Decoder, unmarshals a node into a provided value. - -type decoder struct { - doc *node - aliases map[string]bool - mapType reflect.Type - terrors []string - strict bool -} - -var ( - mapItemType = reflect.TypeOf(MapItem{}) - durationType = reflect.TypeOf(time.Duration(0)) - defaultMapType = reflect.TypeOf(map[interface{}]interface{}{}) - ifaceType = defaultMapType.Elem() -) - -func newDecoder(strict bool) *decoder { - d := &decoder{mapType: defaultMapType, strict: strict} - d.aliases = make(map[string]bool) - return d -} - -func (d *decoder) terror(n *node, tag string, out reflect.Value) { - if n.tag != "" { - tag = n.tag - } - value := n.value - if tag != yaml_SEQ_TAG && tag != yaml_MAP_TAG { - if len(value) > 10 { - value = " `" + value[:7] + "...`" - } else { - value = " `" + value + "`" - } - } - d.terrors = append(d.terrors, fmt.Sprintf("line %d: cannot unmarshal %s%s into %s", n.line+1, shortTag(tag), value, out.Type())) -} - -func (d *decoder) callUnmarshaler(n *node, u Unmarshaler) (good bool) { - terrlen := len(d.terrors) - err := u.UnmarshalYAML(func(v interface{}) (err error) { - defer handleErr(&err) - d.unmarshal(n, reflect.ValueOf(v)) - if len(d.terrors) > terrlen { - issues := d.terrors[terrlen:] - d.terrors = d.terrors[:terrlen] - return &TypeError{issues} - } - return nil - }) - if e, ok := err.(*TypeError); ok { - d.terrors = append(d.terrors, e.Errors...) - return false - } - if err != nil { - fail(err) - } - return true -} - -// d.prepare initializes and dereferences pointers and calls UnmarshalYAML -// if a value is found to implement it. -// It returns the initialized and dereferenced out value, whether -// unmarshalling was already done by UnmarshalYAML, and if so whether -// its types unmarshalled appropriately. -// -// If n holds a null value, prepare returns before doing anything. -func (d *decoder) prepare(n *node, out reflect.Value) (newout reflect.Value, unmarshaled, good bool) { - if n.tag == yaml_NULL_TAG || n.kind == scalarNode && n.tag == "" && (n.value == "null" || n.value == "" && n.implicit) { - return out, false, false - } - again := true - for again { - again = false - if out.Kind() == reflect.Ptr { - if out.IsNil() { - out.Set(reflect.New(out.Type().Elem())) - } - out = out.Elem() - again = true - } - if out.CanAddr() { - if u, ok := out.Addr().Interface().(Unmarshaler); ok { - good = d.callUnmarshaler(n, u) - return out, true, good - } - } - } - return out, false, false -} - -func (d *decoder) unmarshal(n *node, out reflect.Value) (good bool) { - switch n.kind { - case documentNode: - return d.document(n, out) - case aliasNode: - return d.alias(n, out) - } - out, unmarshaled, good := d.prepare(n, out) - if unmarshaled { - return good - } - switch n.kind { - case scalarNode: - good = d.scalar(n, out) - case mappingNode: - good = d.mapping(n, out) - case sequenceNode: - good = d.sequence(n, out) - default: - panic("internal error: unknown node kind: " + strconv.Itoa(n.kind)) - } - return good -} - -func (d *decoder) document(n *node, out reflect.Value) (good bool) { - if len(n.children) == 1 { - d.doc = n - d.unmarshal(n.children[0], out) - return true - } - return false -} - -func (d *decoder) alias(n *node, out reflect.Value) (good bool) { - an, ok := d.doc.anchors[n.value] - if !ok { - failf("unknown anchor '%s' referenced", n.value) - } - if d.aliases[n.value] { - failf("anchor '%s' value contains itself", n.value) - } - d.aliases[n.value] = true - good = d.unmarshal(an, out) - delete(d.aliases, n.value) - return good -} - -var zeroValue reflect.Value - -func resetMap(out reflect.Value) { - for _, k := range out.MapKeys() { - out.SetMapIndex(k, zeroValue) - } -} - -func (d *decoder) scalar(n *node, out reflect.Value) (good bool) { - var tag string - var resolved interface{} - if n.tag == "" && !n.implicit { - tag = yaml_STR_TAG - resolved = n.value - } else { - tag, resolved = resolve(n.tag, n.value) - if tag == yaml_BINARY_TAG { - data, err := base64.StdEncoding.DecodeString(resolved.(string)) - if err != nil { - failf("!!binary value contains invalid base64 data") - } - resolved = string(data) - } - } - if resolved == nil { - if out.Kind() == reflect.Map && !out.CanAddr() { - resetMap(out) - } else { - out.Set(reflect.Zero(out.Type())) - } - return true - } - if s, ok := resolved.(string); ok && out.CanAddr() { - if u, ok := out.Addr().Interface().(encoding.TextUnmarshaler); ok { - err := u.UnmarshalText([]byte(s)) - if err != nil { - fail(err) - } - return true - } - } - switch out.Kind() { - case reflect.String: - if tag == yaml_BINARY_TAG { - out.SetString(resolved.(string)) - good = true - } else if resolved != nil { - out.SetString(n.value) - good = true - } - case reflect.Interface: - if resolved == nil { - out.Set(reflect.Zero(out.Type())) - } else { - out.Set(reflect.ValueOf(resolved)) - } - good = true - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - switch resolved := resolved.(type) { - case int: - if !out.OverflowInt(int64(resolved)) { - out.SetInt(int64(resolved)) - good = true - } - case int64: - if !out.OverflowInt(resolved) { - out.SetInt(resolved) - good = true - } - case uint64: - if resolved <= math.MaxInt64 && !out.OverflowInt(int64(resolved)) { - out.SetInt(int64(resolved)) - good = true - } - case float64: - if resolved <= math.MaxInt64 && !out.OverflowInt(int64(resolved)) { - out.SetInt(int64(resolved)) - good = true - } - case string: - if out.Type() == durationType { - d, err := time.ParseDuration(resolved) - if err == nil { - out.SetInt(int64(d)) - good = true - } - } - } - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - switch resolved := resolved.(type) { - case int: - if resolved >= 0 && !out.OverflowUint(uint64(resolved)) { - out.SetUint(uint64(resolved)) - good = true - } - case int64: - if resolved >= 0 && !out.OverflowUint(uint64(resolved)) { - out.SetUint(uint64(resolved)) - good = true - } - case uint64: - if !out.OverflowUint(uint64(resolved)) { - out.SetUint(uint64(resolved)) - good = true - } - case float64: - if resolved <= math.MaxUint64 && !out.OverflowUint(uint64(resolved)) { - out.SetUint(uint64(resolved)) - good = true - } - } - case reflect.Bool: - switch resolved := resolved.(type) { - case bool: - out.SetBool(resolved) - good = true - } - case reflect.Float32, reflect.Float64: - switch resolved := resolved.(type) { - case int: - out.SetFloat(float64(resolved)) - good = true - case int64: - out.SetFloat(float64(resolved)) - good = true - case uint64: - out.SetFloat(float64(resolved)) - good = true - case float64: - out.SetFloat(resolved) - good = true - } - case reflect.Ptr: - if out.Type().Elem() == reflect.TypeOf(resolved) { - // TODO DOes this make sense? When is out a Ptr except when decoding a nil value? - elem := reflect.New(out.Type().Elem()) - elem.Elem().Set(reflect.ValueOf(resolved)) - out.Set(elem) - good = true - } - } - if !good { - d.terror(n, tag, out) - } - return good -} - -func settableValueOf(i interface{}) reflect.Value { - v := reflect.ValueOf(i) - sv := reflect.New(v.Type()).Elem() - sv.Set(v) - return sv -} - -func (d *decoder) sequence(n *node, out reflect.Value) (good bool) { - l := len(n.children) - - var iface reflect.Value - switch out.Kind() { - case reflect.Slice: - out.Set(reflect.MakeSlice(out.Type(), l, l)) - case reflect.Interface: - // No type hints. Will have to use a generic sequence. - iface = out - out = settableValueOf(make([]interface{}, l)) - default: - d.terror(n, yaml_SEQ_TAG, out) - return false - } - et := out.Type().Elem() - - j := 0 - for i := 0; i < l; i++ { - e := reflect.New(et).Elem() - if ok := d.unmarshal(n.children[i], e); ok { - out.Index(j).Set(e) - j++ - } - } - out.Set(out.Slice(0, j)) - if iface.IsValid() { - iface.Set(out) - } - return true -} - -func (d *decoder) mapping(n *node, out reflect.Value) (good bool) { - switch out.Kind() { - case reflect.Struct: - return d.mappingStruct(n, out) - case reflect.Slice: - return d.mappingSlice(n, out) - case reflect.Map: - // okay - case reflect.Interface: - if d.mapType.Kind() == reflect.Map { - iface := out - out = reflect.MakeMap(d.mapType) - iface.Set(out) - } else { - slicev := reflect.New(d.mapType).Elem() - if !d.mappingSlice(n, slicev) { - return false - } - out.Set(slicev) - return true - } - default: - d.terror(n, yaml_MAP_TAG, out) - return false - } - outt := out.Type() - kt := outt.Key() - et := outt.Elem() - - mapType := d.mapType - if outt.Key() == ifaceType && outt.Elem() == ifaceType { - d.mapType = outt - } - - if out.IsNil() { - out.Set(reflect.MakeMap(outt)) - } - l := len(n.children) - for i := 0; i < l; i += 2 { - if isMerge(n.children[i]) { - d.merge(n.children[i+1], out) - continue - } - k := reflect.New(kt).Elem() - if d.unmarshal(n.children[i], k) { - kkind := k.Kind() - if kkind == reflect.Interface { - kkind = k.Elem().Kind() - } - if kkind == reflect.Map || kkind == reflect.Slice { - failf("invalid map key: %#v", k.Interface()) - } - e := reflect.New(et).Elem() - if d.unmarshal(n.children[i+1], e) { - out.SetMapIndex(k, e) - } - } - } - d.mapType = mapType - return true -} - -func (d *decoder) mappingSlice(n *node, out reflect.Value) (good bool) { - outt := out.Type() - if outt.Elem() != mapItemType { - d.terror(n, yaml_MAP_TAG, out) - return false - } - - mapType := d.mapType - d.mapType = outt - - var slice []MapItem - var l = len(n.children) - for i := 0; i < l; i += 2 { - if isMerge(n.children[i]) { - d.merge(n.children[i+1], out) - continue - } - item := MapItem{} - k := reflect.ValueOf(&item.Key).Elem() - if d.unmarshal(n.children[i], k) { - v := reflect.ValueOf(&item.Value).Elem() - if d.unmarshal(n.children[i+1], v) { - slice = append(slice, item) - } - } - } - out.Set(reflect.ValueOf(slice)) - d.mapType = mapType - return true -} - -func (d *decoder) mappingStruct(n *node, out reflect.Value) (good bool) { - sinfo, err := getStructInfo(out.Type()) - if err != nil { - panic(err) - } - name := settableValueOf("") - l := len(n.children) - - var inlineMap reflect.Value - var elemType reflect.Type - if sinfo.InlineMap != -1 { - inlineMap = out.Field(sinfo.InlineMap) - inlineMap.Set(reflect.New(inlineMap.Type()).Elem()) - elemType = inlineMap.Type().Elem() - } - - for i := 0; i < l; i += 2 { - ni := n.children[i] - if isMerge(ni) { - d.merge(n.children[i+1], out) - continue - } - if !d.unmarshal(ni, name) { - continue - } - if info, ok := sinfo.FieldsMap[name.String()]; ok { - var field reflect.Value - if info.Inline == nil { - field = out.Field(info.Num) - } else { - field = out.FieldByIndex(info.Inline) - } - d.unmarshal(n.children[i+1], field) - } else if sinfo.InlineMap != -1 { - if inlineMap.IsNil() { - inlineMap.Set(reflect.MakeMap(inlineMap.Type())) - } - value := reflect.New(elemType).Elem() - d.unmarshal(n.children[i+1], value) - inlineMap.SetMapIndex(name, value) - } else if d.strict { - d.terrors = append(d.terrors, fmt.Sprintf("line %d: field %s not found in struct %s", n.line+1, name.String(), out.Type())) - } - } - return true -} - -func failWantMap() { - failf("map merge requires map or sequence of maps as the value") -} - -func (d *decoder) merge(n *node, out reflect.Value) { - switch n.kind { - case mappingNode: - d.unmarshal(n, out) - case aliasNode: - an, ok := d.doc.anchors[n.value] - if ok && an.kind != mappingNode { - failWantMap() - } - d.unmarshal(n, out) - case sequenceNode: - // Step backwards as earlier nodes take precedence. - for i := len(n.children) - 1; i >= 0; i-- { - ni := n.children[i] - if ni.kind == aliasNode { - an, ok := d.doc.anchors[ni.value] - if ok && an.kind != mappingNode { - failWantMap() - } - } else if ni.kind != mappingNode { - failWantMap() - } - d.unmarshal(ni, out) - } - default: - failWantMap() - } -} - -func isMerge(n *node) bool { - return n.kind == scalarNode && n.value == "<<" && (n.implicit == true || n.tag == yaml_MERGE_TAG) -} diff --git a/vendor/gopkg.in/yaml.v2/emitterc.go b/vendor/gopkg.in/yaml.v2/emitterc.go deleted file mode 100644 index 41de8b8..0000000 --- a/vendor/gopkg.in/yaml.v2/emitterc.go +++ /dev/null @@ -1,1684 +0,0 @@ -package yaml - -import ( - "bytes" -) - -// Flush the buffer if needed. -func flush(emitter *yaml_emitter_t) bool { - if emitter.buffer_pos+5 >= len(emitter.buffer) { - return yaml_emitter_flush(emitter) - } - return true -} - -// Put a character to the output buffer. -func put(emitter *yaml_emitter_t, value byte) bool { - if emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) { - return false - } - emitter.buffer[emitter.buffer_pos] = value - emitter.buffer_pos++ - emitter.column++ - return true -} - -// Put a line break to the output buffer. -func put_break(emitter *yaml_emitter_t) bool { - if emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) { - return false - } - switch emitter.line_break { - case yaml_CR_BREAK: - emitter.buffer[emitter.buffer_pos] = '\r' - emitter.buffer_pos += 1 - case yaml_LN_BREAK: - emitter.buffer[emitter.buffer_pos] = '\n' - emitter.buffer_pos += 1 - case yaml_CRLN_BREAK: - emitter.buffer[emitter.buffer_pos+0] = '\r' - emitter.buffer[emitter.buffer_pos+1] = '\n' - emitter.buffer_pos += 2 - default: - panic("unknown line break setting") - } - emitter.column = 0 - emitter.line++ - return true -} - -// Copy a character from a string into buffer. -func write(emitter *yaml_emitter_t, s []byte, i *int) bool { - if emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) { - return false - } - p := emitter.buffer_pos - w := width(s[*i]) - switch w { - case 4: - emitter.buffer[p+3] = s[*i+3] - fallthrough - case 3: - emitter.buffer[p+2] = s[*i+2] - fallthrough - case 2: - emitter.buffer[p+1] = s[*i+1] - fallthrough - case 1: - emitter.buffer[p+0] = s[*i+0] - default: - panic("unknown character width") - } - emitter.column++ - emitter.buffer_pos += w - *i += w - return true -} - -// Write a whole string into buffer. -func write_all(emitter *yaml_emitter_t, s []byte) bool { - for i := 0; i < len(s); { - if !write(emitter, s, &i) { - return false - } - } - return true -} - -// Copy a line break character from a string into buffer. -func write_break(emitter *yaml_emitter_t, s []byte, i *int) bool { - if s[*i] == '\n' { - if !put_break(emitter) { - return false - } - *i++ - } else { - if !write(emitter, s, i) { - return false - } - emitter.column = 0 - emitter.line++ - } - return true -} - -// Set an emitter error and return false. -func yaml_emitter_set_emitter_error(emitter *yaml_emitter_t, problem string) bool { - emitter.error = yaml_EMITTER_ERROR - emitter.problem = problem - return false -} - -// Emit an event. -func yaml_emitter_emit(emitter *yaml_emitter_t, event *yaml_event_t) bool { - emitter.events = append(emitter.events, *event) - for !yaml_emitter_need_more_events(emitter) { - event := &emitter.events[emitter.events_head] - if !yaml_emitter_analyze_event(emitter, event) { - return false - } - if !yaml_emitter_state_machine(emitter, event) { - return false - } - yaml_event_delete(event) - emitter.events_head++ - } - return true -} - -// Check if we need to accumulate more events before emitting. -// -// We accumulate extra -// - 1 event for DOCUMENT-START -// - 2 events for SEQUENCE-START -// - 3 events for MAPPING-START -// -func yaml_emitter_need_more_events(emitter *yaml_emitter_t) bool { - if emitter.events_head == len(emitter.events) { - return true - } - var accumulate int - switch emitter.events[emitter.events_head].typ { - case yaml_DOCUMENT_START_EVENT: - accumulate = 1 - break - case yaml_SEQUENCE_START_EVENT: - accumulate = 2 - break - case yaml_MAPPING_START_EVENT: - accumulate = 3 - break - default: - return false - } - if len(emitter.events)-emitter.events_head > accumulate { - return false - } - var level int - for i := emitter.events_head; i < len(emitter.events); i++ { - switch emitter.events[i].typ { - case yaml_STREAM_START_EVENT, yaml_DOCUMENT_START_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT: - level++ - case yaml_STREAM_END_EVENT, yaml_DOCUMENT_END_EVENT, yaml_SEQUENCE_END_EVENT, yaml_MAPPING_END_EVENT: - level-- - } - if level == 0 { - return false - } - } - return true -} - -// Append a directive to the directives stack. -func yaml_emitter_append_tag_directive(emitter *yaml_emitter_t, value *yaml_tag_directive_t, allow_duplicates bool) bool { - for i := 0; i < len(emitter.tag_directives); i++ { - if bytes.Equal(value.handle, emitter.tag_directives[i].handle) { - if allow_duplicates { - return true - } - return yaml_emitter_set_emitter_error(emitter, "duplicate %TAG directive") - } - } - - // [Go] Do we actually need to copy this given garbage collection - // and the lack of deallocating destructors? - tag_copy := yaml_tag_directive_t{ - handle: make([]byte, len(value.handle)), - prefix: make([]byte, len(value.prefix)), - } - copy(tag_copy.handle, value.handle) - copy(tag_copy.prefix, value.prefix) - emitter.tag_directives = append(emitter.tag_directives, tag_copy) - return true -} - -// Increase the indentation level. -func yaml_emitter_increase_indent(emitter *yaml_emitter_t, flow, indentless bool) bool { - emitter.indents = append(emitter.indents, emitter.indent) - if emitter.indent < 0 { - if flow { - emitter.indent = emitter.best_indent - } else { - emitter.indent = 0 - } - } else if !indentless { - emitter.indent += emitter.best_indent - } - return true -} - -// State dispatcher. -func yaml_emitter_state_machine(emitter *yaml_emitter_t, event *yaml_event_t) bool { - switch emitter.state { - default: - case yaml_EMIT_STREAM_START_STATE: - return yaml_emitter_emit_stream_start(emitter, event) - - case yaml_EMIT_FIRST_DOCUMENT_START_STATE: - return yaml_emitter_emit_document_start(emitter, event, true) - - case yaml_EMIT_DOCUMENT_START_STATE: - return yaml_emitter_emit_document_start(emitter, event, false) - - case yaml_EMIT_DOCUMENT_CONTENT_STATE: - return yaml_emitter_emit_document_content(emitter, event) - - case yaml_EMIT_DOCUMENT_END_STATE: - return yaml_emitter_emit_document_end(emitter, event) - - case yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE: - return yaml_emitter_emit_flow_sequence_item(emitter, event, true) - - case yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE: - return yaml_emitter_emit_flow_sequence_item(emitter, event, false) - - case yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE: - return yaml_emitter_emit_flow_mapping_key(emitter, event, true) - - case yaml_EMIT_FLOW_MAPPING_KEY_STATE: - return yaml_emitter_emit_flow_mapping_key(emitter, event, false) - - case yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE: - return yaml_emitter_emit_flow_mapping_value(emitter, event, true) - - case yaml_EMIT_FLOW_MAPPING_VALUE_STATE: - return yaml_emitter_emit_flow_mapping_value(emitter, event, false) - - case yaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE: - return yaml_emitter_emit_block_sequence_item(emitter, event, true) - - case yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE: - return yaml_emitter_emit_block_sequence_item(emitter, event, false) - - case yaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE: - return yaml_emitter_emit_block_mapping_key(emitter, event, true) - - case yaml_EMIT_BLOCK_MAPPING_KEY_STATE: - return yaml_emitter_emit_block_mapping_key(emitter, event, false) - - case yaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE: - return yaml_emitter_emit_block_mapping_value(emitter, event, true) - - case yaml_EMIT_BLOCK_MAPPING_VALUE_STATE: - return yaml_emitter_emit_block_mapping_value(emitter, event, false) - - case yaml_EMIT_END_STATE: - return yaml_emitter_set_emitter_error(emitter, "expected nothing after STREAM-END") - } - panic("invalid emitter state") -} - -// Expect STREAM-START. -func yaml_emitter_emit_stream_start(emitter *yaml_emitter_t, event *yaml_event_t) bool { - if event.typ != yaml_STREAM_START_EVENT { - return yaml_emitter_set_emitter_error(emitter, "expected STREAM-START") - } - if emitter.encoding == yaml_ANY_ENCODING { - emitter.encoding = event.encoding - if emitter.encoding == yaml_ANY_ENCODING { - emitter.encoding = yaml_UTF8_ENCODING - } - } - if emitter.best_indent < 2 || emitter.best_indent > 9 { - emitter.best_indent = 2 - } - if emitter.best_width >= 0 && emitter.best_width <= emitter.best_indent*2 { - emitter.best_width = 80 - } - if emitter.best_width < 0 { - emitter.best_width = 1<<31 - 1 - } - if emitter.line_break == yaml_ANY_BREAK { - emitter.line_break = yaml_LN_BREAK - } - - emitter.indent = -1 - emitter.line = 0 - emitter.column = 0 - emitter.whitespace = true - emitter.indention = true - - if emitter.encoding != yaml_UTF8_ENCODING { - if !yaml_emitter_write_bom(emitter) { - return false - } - } - emitter.state = yaml_EMIT_FIRST_DOCUMENT_START_STATE - return true -} - -// Expect DOCUMENT-START or STREAM-END. -func yaml_emitter_emit_document_start(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool { - - if event.typ == yaml_DOCUMENT_START_EVENT { - - if event.version_directive != nil { - if !yaml_emitter_analyze_version_directive(emitter, event.version_directive) { - return false - } - } - - for i := 0; i < len(event.tag_directives); i++ { - tag_directive := &event.tag_directives[i] - if !yaml_emitter_analyze_tag_directive(emitter, tag_directive) { - return false - } - if !yaml_emitter_append_tag_directive(emitter, tag_directive, false) { - return false - } - } - - for i := 0; i < len(default_tag_directives); i++ { - tag_directive := &default_tag_directives[i] - if !yaml_emitter_append_tag_directive(emitter, tag_directive, true) { - return false - } - } - - implicit := event.implicit - if !first || emitter.canonical { - implicit = false - } - - if emitter.open_ended && (event.version_directive != nil || len(event.tag_directives) > 0) { - if !yaml_emitter_write_indicator(emitter, []byte("..."), true, false, false) { - return false - } - if !yaml_emitter_write_indent(emitter) { - return false - } - } - - if event.version_directive != nil { - implicit = false - if !yaml_emitter_write_indicator(emitter, []byte("%YAML"), true, false, false) { - return false - } - if !yaml_emitter_write_indicator(emitter, []byte("1.1"), true, false, false) { - return false - } - if !yaml_emitter_write_indent(emitter) { - return false - } - } - - if len(event.tag_directives) > 0 { - implicit = false - for i := 0; i < len(event.tag_directives); i++ { - tag_directive := &event.tag_directives[i] - if !yaml_emitter_write_indicator(emitter, []byte("%TAG"), true, false, false) { - return false - } - if !yaml_emitter_write_tag_handle(emitter, tag_directive.handle) { - return false - } - if !yaml_emitter_write_tag_content(emitter, tag_directive.prefix, true) { - return false - } - if !yaml_emitter_write_indent(emitter) { - return false - } - } - } - - if yaml_emitter_check_empty_document(emitter) { - implicit = false - } - if !implicit { - if !yaml_emitter_write_indent(emitter) { - return false - } - if !yaml_emitter_write_indicator(emitter, []byte("---"), true, false, false) { - return false - } - if emitter.canonical { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - } - - emitter.state = yaml_EMIT_DOCUMENT_CONTENT_STATE - return true - } - - if event.typ == yaml_STREAM_END_EVENT { - if emitter.open_ended { - if !yaml_emitter_write_indicator(emitter, []byte("..."), true, false, false) { - return false - } - if !yaml_emitter_write_indent(emitter) { - return false - } - } - if !yaml_emitter_flush(emitter) { - return false - } - emitter.state = yaml_EMIT_END_STATE - return true - } - - return yaml_emitter_set_emitter_error(emitter, "expected DOCUMENT-START or STREAM-END") -} - -// Expect the root node. -func yaml_emitter_emit_document_content(emitter *yaml_emitter_t, event *yaml_event_t) bool { - emitter.states = append(emitter.states, yaml_EMIT_DOCUMENT_END_STATE) - return yaml_emitter_emit_node(emitter, event, true, false, false, false) -} - -// Expect DOCUMENT-END. -func yaml_emitter_emit_document_end(emitter *yaml_emitter_t, event *yaml_event_t) bool { - if event.typ != yaml_DOCUMENT_END_EVENT { - return yaml_emitter_set_emitter_error(emitter, "expected DOCUMENT-END") - } - if !yaml_emitter_write_indent(emitter) { - return false - } - if !event.implicit { - // [Go] Allocate the slice elsewhere. - if !yaml_emitter_write_indicator(emitter, []byte("..."), true, false, false) { - return false - } - if !yaml_emitter_write_indent(emitter) { - return false - } - } - if !yaml_emitter_flush(emitter) { - return false - } - emitter.state = yaml_EMIT_DOCUMENT_START_STATE - emitter.tag_directives = emitter.tag_directives[:0] - return true -} - -// Expect a flow item node. -func yaml_emitter_emit_flow_sequence_item(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool { - if first { - if !yaml_emitter_write_indicator(emitter, []byte{'['}, true, true, false) { - return false - } - if !yaml_emitter_increase_indent(emitter, true, false) { - return false - } - emitter.flow_level++ - } - - if event.typ == yaml_SEQUENCE_END_EVENT { - emitter.flow_level-- - emitter.indent = emitter.indents[len(emitter.indents)-1] - emitter.indents = emitter.indents[:len(emitter.indents)-1] - if emitter.canonical && !first { - if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) { - return false - } - if !yaml_emitter_write_indent(emitter) { - return false - } - } - if !yaml_emitter_write_indicator(emitter, []byte{']'}, false, false, false) { - return false - } - emitter.state = emitter.states[len(emitter.states)-1] - emitter.states = emitter.states[:len(emitter.states)-1] - - return true - } - - if !first { - if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) { - return false - } - } - - if emitter.canonical || emitter.column > emitter.best_width { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - emitter.states = append(emitter.states, yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE) - return yaml_emitter_emit_node(emitter, event, false, true, false, false) -} - -// Expect a flow key node. -func yaml_emitter_emit_flow_mapping_key(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool { - if first { - if !yaml_emitter_write_indicator(emitter, []byte{'{'}, true, true, false) { - return false - } - if !yaml_emitter_increase_indent(emitter, true, false) { - return false - } - emitter.flow_level++ - } - - if event.typ == yaml_MAPPING_END_EVENT { - emitter.flow_level-- - emitter.indent = emitter.indents[len(emitter.indents)-1] - emitter.indents = emitter.indents[:len(emitter.indents)-1] - if emitter.canonical && !first { - if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) { - return false - } - if !yaml_emitter_write_indent(emitter) { - return false - } - } - if !yaml_emitter_write_indicator(emitter, []byte{'}'}, false, false, false) { - return false - } - emitter.state = emitter.states[len(emitter.states)-1] - emitter.states = emitter.states[:len(emitter.states)-1] - return true - } - - if !first { - if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) { - return false - } - } - if emitter.canonical || emitter.column > emitter.best_width { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - - if !emitter.canonical && yaml_emitter_check_simple_key(emitter) { - emitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE) - return yaml_emitter_emit_node(emitter, event, false, false, true, true) - } - if !yaml_emitter_write_indicator(emitter, []byte{'?'}, true, false, false) { - return false - } - emitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_VALUE_STATE) - return yaml_emitter_emit_node(emitter, event, false, false, true, false) -} - -// Expect a flow value node. -func yaml_emitter_emit_flow_mapping_value(emitter *yaml_emitter_t, event *yaml_event_t, simple bool) bool { - if simple { - if !yaml_emitter_write_indicator(emitter, []byte{':'}, false, false, false) { - return false - } - } else { - if emitter.canonical || emitter.column > emitter.best_width { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - if !yaml_emitter_write_indicator(emitter, []byte{':'}, true, false, false) { - return false - } - } - emitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_KEY_STATE) - return yaml_emitter_emit_node(emitter, event, false, false, true, false) -} - -// Expect a block item node. -func yaml_emitter_emit_block_sequence_item(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool { - if first { - if !yaml_emitter_increase_indent(emitter, false, emitter.mapping_context && !emitter.indention) { - return false - } - } - if event.typ == yaml_SEQUENCE_END_EVENT { - emitter.indent = emitter.indents[len(emitter.indents)-1] - emitter.indents = emitter.indents[:len(emitter.indents)-1] - emitter.state = emitter.states[len(emitter.states)-1] - emitter.states = emitter.states[:len(emitter.states)-1] - return true - } - if !yaml_emitter_write_indent(emitter) { - return false - } - if !yaml_emitter_write_indicator(emitter, []byte{'-'}, true, false, true) { - return false - } - emitter.states = append(emitter.states, yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE) - return yaml_emitter_emit_node(emitter, event, false, true, false, false) -} - -// Expect a block key node. -func yaml_emitter_emit_block_mapping_key(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool { - if first { - if !yaml_emitter_increase_indent(emitter, false, false) { - return false - } - } - if event.typ == yaml_MAPPING_END_EVENT { - emitter.indent = emitter.indents[len(emitter.indents)-1] - emitter.indents = emitter.indents[:len(emitter.indents)-1] - emitter.state = emitter.states[len(emitter.states)-1] - emitter.states = emitter.states[:len(emitter.states)-1] - return true - } - if !yaml_emitter_write_indent(emitter) { - return false - } - if yaml_emitter_check_simple_key(emitter) { - emitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE) - return yaml_emitter_emit_node(emitter, event, false, false, true, true) - } - if !yaml_emitter_write_indicator(emitter, []byte{'?'}, true, false, true) { - return false - } - emitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_VALUE_STATE) - return yaml_emitter_emit_node(emitter, event, false, false, true, false) -} - -// Expect a block value node. -func yaml_emitter_emit_block_mapping_value(emitter *yaml_emitter_t, event *yaml_event_t, simple bool) bool { - if simple { - if !yaml_emitter_write_indicator(emitter, []byte{':'}, false, false, false) { - return false - } - } else { - if !yaml_emitter_write_indent(emitter) { - return false - } - if !yaml_emitter_write_indicator(emitter, []byte{':'}, true, false, true) { - return false - } - } - emitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_KEY_STATE) - return yaml_emitter_emit_node(emitter, event, false, false, true, false) -} - -// Expect a node. -func yaml_emitter_emit_node(emitter *yaml_emitter_t, event *yaml_event_t, - root bool, sequence bool, mapping bool, simple_key bool) bool { - - emitter.root_context = root - emitter.sequence_context = sequence - emitter.mapping_context = mapping - emitter.simple_key_context = simple_key - - switch event.typ { - case yaml_ALIAS_EVENT: - return yaml_emitter_emit_alias(emitter, event) - case yaml_SCALAR_EVENT: - return yaml_emitter_emit_scalar(emitter, event) - case yaml_SEQUENCE_START_EVENT: - return yaml_emitter_emit_sequence_start(emitter, event) - case yaml_MAPPING_START_EVENT: - return yaml_emitter_emit_mapping_start(emitter, event) - default: - return yaml_emitter_set_emitter_error(emitter, - "expected SCALAR, SEQUENCE-START, MAPPING-START, or ALIAS") - } -} - -// Expect ALIAS. -func yaml_emitter_emit_alias(emitter *yaml_emitter_t, event *yaml_event_t) bool { - if !yaml_emitter_process_anchor(emitter) { - return false - } - emitter.state = emitter.states[len(emitter.states)-1] - emitter.states = emitter.states[:len(emitter.states)-1] - return true -} - -// Expect SCALAR. -func yaml_emitter_emit_scalar(emitter *yaml_emitter_t, event *yaml_event_t) bool { - if !yaml_emitter_select_scalar_style(emitter, event) { - return false - } - if !yaml_emitter_process_anchor(emitter) { - return false - } - if !yaml_emitter_process_tag(emitter) { - return false - } - if !yaml_emitter_increase_indent(emitter, true, false) { - return false - } - if !yaml_emitter_process_scalar(emitter) { - return false - } - emitter.indent = emitter.indents[len(emitter.indents)-1] - emitter.indents = emitter.indents[:len(emitter.indents)-1] - emitter.state = emitter.states[len(emitter.states)-1] - emitter.states = emitter.states[:len(emitter.states)-1] - return true -} - -// Expect SEQUENCE-START. -func yaml_emitter_emit_sequence_start(emitter *yaml_emitter_t, event *yaml_event_t) bool { - if !yaml_emitter_process_anchor(emitter) { - return false - } - if !yaml_emitter_process_tag(emitter) { - return false - } - if emitter.flow_level > 0 || emitter.canonical || event.sequence_style() == yaml_FLOW_SEQUENCE_STYLE || - yaml_emitter_check_empty_sequence(emitter) { - emitter.state = yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE - } else { - emitter.state = yaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE - } - return true -} - -// Expect MAPPING-START. -func yaml_emitter_emit_mapping_start(emitter *yaml_emitter_t, event *yaml_event_t) bool { - if !yaml_emitter_process_anchor(emitter) { - return false - } - if !yaml_emitter_process_tag(emitter) { - return false - } - if emitter.flow_level > 0 || emitter.canonical || event.mapping_style() == yaml_FLOW_MAPPING_STYLE || - yaml_emitter_check_empty_mapping(emitter) { - emitter.state = yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE - } else { - emitter.state = yaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE - } - return true -} - -// Check if the document content is an empty scalar. -func yaml_emitter_check_empty_document(emitter *yaml_emitter_t) bool { - return false // [Go] Huh? -} - -// Check if the next events represent an empty sequence. -func yaml_emitter_check_empty_sequence(emitter *yaml_emitter_t) bool { - if len(emitter.events)-emitter.events_head < 2 { - return false - } - return emitter.events[emitter.events_head].typ == yaml_SEQUENCE_START_EVENT && - emitter.events[emitter.events_head+1].typ == yaml_SEQUENCE_END_EVENT -} - -// Check if the next events represent an empty mapping. -func yaml_emitter_check_empty_mapping(emitter *yaml_emitter_t) bool { - if len(emitter.events)-emitter.events_head < 2 { - return false - } - return emitter.events[emitter.events_head].typ == yaml_MAPPING_START_EVENT && - emitter.events[emitter.events_head+1].typ == yaml_MAPPING_END_EVENT -} - -// Check if the next node can be expressed as a simple key. -func yaml_emitter_check_simple_key(emitter *yaml_emitter_t) bool { - length := 0 - switch emitter.events[emitter.events_head].typ { - case yaml_ALIAS_EVENT: - length += len(emitter.anchor_data.anchor) - case yaml_SCALAR_EVENT: - if emitter.scalar_data.multiline { - return false - } - length += len(emitter.anchor_data.anchor) + - len(emitter.tag_data.handle) + - len(emitter.tag_data.suffix) + - len(emitter.scalar_data.value) - case yaml_SEQUENCE_START_EVENT: - if !yaml_emitter_check_empty_sequence(emitter) { - return false - } - length += len(emitter.anchor_data.anchor) + - len(emitter.tag_data.handle) + - len(emitter.tag_data.suffix) - case yaml_MAPPING_START_EVENT: - if !yaml_emitter_check_empty_mapping(emitter) { - return false - } - length += len(emitter.anchor_data.anchor) + - len(emitter.tag_data.handle) + - len(emitter.tag_data.suffix) - default: - return false - } - return length <= 128 -} - -// Determine an acceptable scalar style. -func yaml_emitter_select_scalar_style(emitter *yaml_emitter_t, event *yaml_event_t) bool { - - no_tag := len(emitter.tag_data.handle) == 0 && len(emitter.tag_data.suffix) == 0 - if no_tag && !event.implicit && !event.quoted_implicit { - return yaml_emitter_set_emitter_error(emitter, "neither tag nor implicit flags are specified") - } - - style := event.scalar_style() - if style == yaml_ANY_SCALAR_STYLE { - style = yaml_PLAIN_SCALAR_STYLE - } - if emitter.canonical { - style = yaml_DOUBLE_QUOTED_SCALAR_STYLE - } - if emitter.simple_key_context && emitter.scalar_data.multiline { - style = yaml_DOUBLE_QUOTED_SCALAR_STYLE - } - - if style == yaml_PLAIN_SCALAR_STYLE { - if emitter.flow_level > 0 && !emitter.scalar_data.flow_plain_allowed || - emitter.flow_level == 0 && !emitter.scalar_data.block_plain_allowed { - style = yaml_SINGLE_QUOTED_SCALAR_STYLE - } - if len(emitter.scalar_data.value) == 0 && (emitter.flow_level > 0 || emitter.simple_key_context) { - style = yaml_SINGLE_QUOTED_SCALAR_STYLE - } - if no_tag && !event.implicit { - style = yaml_SINGLE_QUOTED_SCALAR_STYLE - } - } - if style == yaml_SINGLE_QUOTED_SCALAR_STYLE { - if !emitter.scalar_data.single_quoted_allowed { - style = yaml_DOUBLE_QUOTED_SCALAR_STYLE - } - } - if style == yaml_LITERAL_SCALAR_STYLE || style == yaml_FOLDED_SCALAR_STYLE { - if !emitter.scalar_data.block_allowed || emitter.flow_level > 0 || emitter.simple_key_context { - style = yaml_DOUBLE_QUOTED_SCALAR_STYLE - } - } - - if no_tag && !event.quoted_implicit && style != yaml_PLAIN_SCALAR_STYLE { - emitter.tag_data.handle = []byte{'!'} - } - emitter.scalar_data.style = style - return true -} - -// Write an achor. -func yaml_emitter_process_anchor(emitter *yaml_emitter_t) bool { - if emitter.anchor_data.anchor == nil { - return true - } - c := []byte{'&'} - if emitter.anchor_data.alias { - c[0] = '*' - } - if !yaml_emitter_write_indicator(emitter, c, true, false, false) { - return false - } - return yaml_emitter_write_anchor(emitter, emitter.anchor_data.anchor) -} - -// Write a tag. -func yaml_emitter_process_tag(emitter *yaml_emitter_t) bool { - if len(emitter.tag_data.handle) == 0 && len(emitter.tag_data.suffix) == 0 { - return true - } - if len(emitter.tag_data.handle) > 0 { - if !yaml_emitter_write_tag_handle(emitter, emitter.tag_data.handle) { - return false - } - if len(emitter.tag_data.suffix) > 0 { - if !yaml_emitter_write_tag_content(emitter, emitter.tag_data.suffix, false) { - return false - } - } - } else { - // [Go] Allocate these slices elsewhere. - if !yaml_emitter_write_indicator(emitter, []byte("!<"), true, false, false) { - return false - } - if !yaml_emitter_write_tag_content(emitter, emitter.tag_data.suffix, false) { - return false - } - if !yaml_emitter_write_indicator(emitter, []byte{'>'}, false, false, false) { - return false - } - } - return true -} - -// Write a scalar. -func yaml_emitter_process_scalar(emitter *yaml_emitter_t) bool { - switch emitter.scalar_data.style { - case yaml_PLAIN_SCALAR_STYLE: - return yaml_emitter_write_plain_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context) - - case yaml_SINGLE_QUOTED_SCALAR_STYLE: - return yaml_emitter_write_single_quoted_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context) - - case yaml_DOUBLE_QUOTED_SCALAR_STYLE: - return yaml_emitter_write_double_quoted_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context) - - case yaml_LITERAL_SCALAR_STYLE: - return yaml_emitter_write_literal_scalar(emitter, emitter.scalar_data.value) - - case yaml_FOLDED_SCALAR_STYLE: - return yaml_emitter_write_folded_scalar(emitter, emitter.scalar_data.value) - } - panic("unknown scalar style") -} - -// Check if a %YAML directive is valid. -func yaml_emitter_analyze_version_directive(emitter *yaml_emitter_t, version_directive *yaml_version_directive_t) bool { - if version_directive.major != 1 || version_directive.minor != 1 { - return yaml_emitter_set_emitter_error(emitter, "incompatible %YAML directive") - } - return true -} - -// Check if a %TAG directive is valid. -func yaml_emitter_analyze_tag_directive(emitter *yaml_emitter_t, tag_directive *yaml_tag_directive_t) bool { - handle := tag_directive.handle - prefix := tag_directive.prefix - if len(handle) == 0 { - return yaml_emitter_set_emitter_error(emitter, "tag handle must not be empty") - } - if handle[0] != '!' { - return yaml_emitter_set_emitter_error(emitter, "tag handle must start with '!'") - } - if handle[len(handle)-1] != '!' { - return yaml_emitter_set_emitter_error(emitter, "tag handle must end with '!'") - } - for i := 1; i < len(handle)-1; i += width(handle[i]) { - if !is_alpha(handle, i) { - return yaml_emitter_set_emitter_error(emitter, "tag handle must contain alphanumerical characters only") - } - } - if len(prefix) == 0 { - return yaml_emitter_set_emitter_error(emitter, "tag prefix must not be empty") - } - return true -} - -// Check if an anchor is valid. -func yaml_emitter_analyze_anchor(emitter *yaml_emitter_t, anchor []byte, alias bool) bool { - if len(anchor) == 0 { - problem := "anchor value must not be empty" - if alias { - problem = "alias value must not be empty" - } - return yaml_emitter_set_emitter_error(emitter, problem) - } - for i := 0; i < len(anchor); i += width(anchor[i]) { - if !is_alpha(anchor, i) { - problem := "anchor value must contain alphanumerical characters only" - if alias { - problem = "alias value must contain alphanumerical characters only" - } - return yaml_emitter_set_emitter_error(emitter, problem) - } - } - emitter.anchor_data.anchor = anchor - emitter.anchor_data.alias = alias - return true -} - -// Check if a tag is valid. -func yaml_emitter_analyze_tag(emitter *yaml_emitter_t, tag []byte) bool { - if len(tag) == 0 { - return yaml_emitter_set_emitter_error(emitter, "tag value must not be empty") - } - for i := 0; i < len(emitter.tag_directives); i++ { - tag_directive := &emitter.tag_directives[i] - if bytes.HasPrefix(tag, tag_directive.prefix) { - emitter.tag_data.handle = tag_directive.handle - emitter.tag_data.suffix = tag[len(tag_directive.prefix):] - return true - } - } - emitter.tag_data.suffix = tag - return true -} - -// Check if a scalar is valid. -func yaml_emitter_analyze_scalar(emitter *yaml_emitter_t, value []byte) bool { - var ( - block_indicators = false - flow_indicators = false - line_breaks = false - special_characters = false - - leading_space = false - leading_break = false - trailing_space = false - trailing_break = false - break_space = false - space_break = false - - preceded_by_whitespace = false - followed_by_whitespace = false - previous_space = false - previous_break = false - ) - - emitter.scalar_data.value = value - - if len(value) == 0 { - emitter.scalar_data.multiline = false - emitter.scalar_data.flow_plain_allowed = false - emitter.scalar_data.block_plain_allowed = true - emitter.scalar_data.single_quoted_allowed = true - emitter.scalar_data.block_allowed = false - return true - } - - if len(value) >= 3 && ((value[0] == '-' && value[1] == '-' && value[2] == '-') || (value[0] == '.' && value[1] == '.' && value[2] == '.')) { - block_indicators = true - flow_indicators = true - } - - preceded_by_whitespace = true - for i, w := 0, 0; i < len(value); i += w { - w = width(value[i]) - followed_by_whitespace = i+w >= len(value) || is_blank(value, i+w) - - if i == 0 { - switch value[i] { - case '#', ',', '[', ']', '{', '}', '&', '*', '!', '|', '>', '\'', '"', '%', '@', '`': - flow_indicators = true - block_indicators = true - case '?', ':': - flow_indicators = true - if followed_by_whitespace { - block_indicators = true - } - case '-': - if followed_by_whitespace { - flow_indicators = true - block_indicators = true - } - } - } else { - switch value[i] { - case ',', '?', '[', ']', '{', '}': - flow_indicators = true - case ':': - flow_indicators = true - if followed_by_whitespace { - block_indicators = true - } - case '#': - if preceded_by_whitespace { - flow_indicators = true - block_indicators = true - } - } - } - - if !is_printable(value, i) || !is_ascii(value, i) && !emitter.unicode { - special_characters = true - } - if is_space(value, i) { - if i == 0 { - leading_space = true - } - if i+width(value[i]) == len(value) { - trailing_space = true - } - if previous_break { - break_space = true - } - previous_space = true - previous_break = false - } else if is_break(value, i) { - line_breaks = true - if i == 0 { - leading_break = true - } - if i+width(value[i]) == len(value) { - trailing_break = true - } - if previous_space { - space_break = true - } - previous_space = false - previous_break = true - } else { - previous_space = false - previous_break = false - } - - // [Go]: Why 'z'? Couldn't be the end of the string as that's the loop condition. - preceded_by_whitespace = is_blankz(value, i) - } - - emitter.scalar_data.multiline = line_breaks - emitter.scalar_data.flow_plain_allowed = true - emitter.scalar_data.block_plain_allowed = true - emitter.scalar_data.single_quoted_allowed = true - emitter.scalar_data.block_allowed = true - - if leading_space || leading_break || trailing_space || trailing_break { - emitter.scalar_data.flow_plain_allowed = false - emitter.scalar_data.block_plain_allowed = false - } - if trailing_space { - emitter.scalar_data.block_allowed = false - } - if break_space { - emitter.scalar_data.flow_plain_allowed = false - emitter.scalar_data.block_plain_allowed = false - emitter.scalar_data.single_quoted_allowed = false - } - if space_break || special_characters { - emitter.scalar_data.flow_plain_allowed = false - emitter.scalar_data.block_plain_allowed = false - emitter.scalar_data.single_quoted_allowed = false - emitter.scalar_data.block_allowed = false - } - if line_breaks { - emitter.scalar_data.flow_plain_allowed = false - emitter.scalar_data.block_plain_allowed = false - } - if flow_indicators { - emitter.scalar_data.flow_plain_allowed = false - } - if block_indicators { - emitter.scalar_data.block_plain_allowed = false - } - return true -} - -// Check if the event data is valid. -func yaml_emitter_analyze_event(emitter *yaml_emitter_t, event *yaml_event_t) bool { - - emitter.anchor_data.anchor = nil - emitter.tag_data.handle = nil - emitter.tag_data.suffix = nil - emitter.scalar_data.value = nil - - switch event.typ { - case yaml_ALIAS_EVENT: - if !yaml_emitter_analyze_anchor(emitter, event.anchor, true) { - return false - } - - case yaml_SCALAR_EVENT: - if len(event.anchor) > 0 { - if !yaml_emitter_analyze_anchor(emitter, event.anchor, false) { - return false - } - } - if len(event.tag) > 0 && (emitter.canonical || (!event.implicit && !event.quoted_implicit)) { - if !yaml_emitter_analyze_tag(emitter, event.tag) { - return false - } - } - if !yaml_emitter_analyze_scalar(emitter, event.value) { - return false - } - - case yaml_SEQUENCE_START_EVENT: - if len(event.anchor) > 0 { - if !yaml_emitter_analyze_anchor(emitter, event.anchor, false) { - return false - } - } - if len(event.tag) > 0 && (emitter.canonical || !event.implicit) { - if !yaml_emitter_analyze_tag(emitter, event.tag) { - return false - } - } - - case yaml_MAPPING_START_EVENT: - if len(event.anchor) > 0 { - if !yaml_emitter_analyze_anchor(emitter, event.anchor, false) { - return false - } - } - if len(event.tag) > 0 && (emitter.canonical || !event.implicit) { - if !yaml_emitter_analyze_tag(emitter, event.tag) { - return false - } - } - } - return true -} - -// Write the BOM character. -func yaml_emitter_write_bom(emitter *yaml_emitter_t) bool { - if !flush(emitter) { - return false - } - pos := emitter.buffer_pos - emitter.buffer[pos+0] = '\xEF' - emitter.buffer[pos+1] = '\xBB' - emitter.buffer[pos+2] = '\xBF' - emitter.buffer_pos += 3 - return true -} - -func yaml_emitter_write_indent(emitter *yaml_emitter_t) bool { - indent := emitter.indent - if indent < 0 { - indent = 0 - } - if !emitter.indention || emitter.column > indent || (emitter.column == indent && !emitter.whitespace) { - if !put_break(emitter) { - return false - } - } - for emitter.column < indent { - if !put(emitter, ' ') { - return false - } - } - emitter.whitespace = true - emitter.indention = true - return true -} - -func yaml_emitter_write_indicator(emitter *yaml_emitter_t, indicator []byte, need_whitespace, is_whitespace, is_indention bool) bool { - if need_whitespace && !emitter.whitespace { - if !put(emitter, ' ') { - return false - } - } - if !write_all(emitter, indicator) { - return false - } - emitter.whitespace = is_whitespace - emitter.indention = (emitter.indention && is_indention) - emitter.open_ended = false - return true -} - -func yaml_emitter_write_anchor(emitter *yaml_emitter_t, value []byte) bool { - if !write_all(emitter, value) { - return false - } - emitter.whitespace = false - emitter.indention = false - return true -} - -func yaml_emitter_write_tag_handle(emitter *yaml_emitter_t, value []byte) bool { - if !emitter.whitespace { - if !put(emitter, ' ') { - return false - } - } - if !write_all(emitter, value) { - return false - } - emitter.whitespace = false - emitter.indention = false - return true -} - -func yaml_emitter_write_tag_content(emitter *yaml_emitter_t, value []byte, need_whitespace bool) bool { - if need_whitespace && !emitter.whitespace { - if !put(emitter, ' ') { - return false - } - } - for i := 0; i < len(value); { - var must_write bool - switch value[i] { - case ';', '/', '?', ':', '@', '&', '=', '+', '$', ',', '_', '.', '~', '*', '\'', '(', ')', '[', ']': - must_write = true - default: - must_write = is_alpha(value, i) - } - if must_write { - if !write(emitter, value, &i) { - return false - } - } else { - w := width(value[i]) - for k := 0; k < w; k++ { - octet := value[i] - i++ - if !put(emitter, '%') { - return false - } - - c := octet >> 4 - if c < 10 { - c += '0' - } else { - c += 'A' - 10 - } - if !put(emitter, c) { - return false - } - - c = octet & 0x0f - if c < 10 { - c += '0' - } else { - c += 'A' - 10 - } - if !put(emitter, c) { - return false - } - } - } - } - emitter.whitespace = false - emitter.indention = false - return true -} - -func yaml_emitter_write_plain_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool { - if !emitter.whitespace { - if !put(emitter, ' ') { - return false - } - } - - spaces := false - breaks := false - for i := 0; i < len(value); { - if is_space(value, i) { - if allow_breaks && !spaces && emitter.column > emitter.best_width && !is_space(value, i+1) { - if !yaml_emitter_write_indent(emitter) { - return false - } - i += width(value[i]) - } else { - if !write(emitter, value, &i) { - return false - } - } - spaces = true - } else if is_break(value, i) { - if !breaks && value[i] == '\n' { - if !put_break(emitter) { - return false - } - } - if !write_break(emitter, value, &i) { - return false - } - emitter.indention = true - breaks = true - } else { - if breaks { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - if !write(emitter, value, &i) { - return false - } - emitter.indention = false - spaces = false - breaks = false - } - } - - emitter.whitespace = false - emitter.indention = false - if emitter.root_context { - emitter.open_ended = true - } - - return true -} - -func yaml_emitter_write_single_quoted_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool { - - if !yaml_emitter_write_indicator(emitter, []byte{'\''}, true, false, false) { - return false - } - - spaces := false - breaks := false - for i := 0; i < len(value); { - if is_space(value, i) { - if allow_breaks && !spaces && emitter.column > emitter.best_width && i > 0 && i < len(value)-1 && !is_space(value, i+1) { - if !yaml_emitter_write_indent(emitter) { - return false - } - i += width(value[i]) - } else { - if !write(emitter, value, &i) { - return false - } - } - spaces = true - } else if is_break(value, i) { - if !breaks && value[i] == '\n' { - if !put_break(emitter) { - return false - } - } - if !write_break(emitter, value, &i) { - return false - } - emitter.indention = true - breaks = true - } else { - if breaks { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - if value[i] == '\'' { - if !put(emitter, '\'') { - return false - } - } - if !write(emitter, value, &i) { - return false - } - emitter.indention = false - spaces = false - breaks = false - } - } - if !yaml_emitter_write_indicator(emitter, []byte{'\''}, false, false, false) { - return false - } - emitter.whitespace = false - emitter.indention = false - return true -} - -func yaml_emitter_write_double_quoted_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool { - spaces := false - if !yaml_emitter_write_indicator(emitter, []byte{'"'}, true, false, false) { - return false - } - - for i := 0; i < len(value); { - if !is_printable(value, i) || (!emitter.unicode && !is_ascii(value, i)) || - is_bom(value, i) || is_break(value, i) || - value[i] == '"' || value[i] == '\\' { - - octet := value[i] - - var w int - var v rune - switch { - case octet&0x80 == 0x00: - w, v = 1, rune(octet&0x7F) - case octet&0xE0 == 0xC0: - w, v = 2, rune(octet&0x1F) - case octet&0xF0 == 0xE0: - w, v = 3, rune(octet&0x0F) - case octet&0xF8 == 0xF0: - w, v = 4, rune(octet&0x07) - } - for k := 1; k < w; k++ { - octet = value[i+k] - v = (v << 6) + (rune(octet) & 0x3F) - } - i += w - - if !put(emitter, '\\') { - return false - } - - var ok bool - switch v { - case 0x00: - ok = put(emitter, '0') - case 0x07: - ok = put(emitter, 'a') - case 0x08: - ok = put(emitter, 'b') - case 0x09: - ok = put(emitter, 't') - case 0x0A: - ok = put(emitter, 'n') - case 0x0b: - ok = put(emitter, 'v') - case 0x0c: - ok = put(emitter, 'f') - case 0x0d: - ok = put(emitter, 'r') - case 0x1b: - ok = put(emitter, 'e') - case 0x22: - ok = put(emitter, '"') - case 0x5c: - ok = put(emitter, '\\') - case 0x85: - ok = put(emitter, 'N') - case 0xA0: - ok = put(emitter, '_') - case 0x2028: - ok = put(emitter, 'L') - case 0x2029: - ok = put(emitter, 'P') - default: - if v <= 0xFF { - ok = put(emitter, 'x') - w = 2 - } else if v <= 0xFFFF { - ok = put(emitter, 'u') - w = 4 - } else { - ok = put(emitter, 'U') - w = 8 - } - for k := (w - 1) * 4; ok && k >= 0; k -= 4 { - digit := byte((v >> uint(k)) & 0x0F) - if digit < 10 { - ok = put(emitter, digit+'0') - } else { - ok = put(emitter, digit+'A'-10) - } - } - } - if !ok { - return false - } - spaces = false - } else if is_space(value, i) { - if allow_breaks && !spaces && emitter.column > emitter.best_width && i > 0 && i < len(value)-1 { - if !yaml_emitter_write_indent(emitter) { - return false - } - if is_space(value, i+1) { - if !put(emitter, '\\') { - return false - } - } - i += width(value[i]) - } else if !write(emitter, value, &i) { - return false - } - spaces = true - } else { - if !write(emitter, value, &i) { - return false - } - spaces = false - } - } - if !yaml_emitter_write_indicator(emitter, []byte{'"'}, false, false, false) { - return false - } - emitter.whitespace = false - emitter.indention = false - return true -} - -func yaml_emitter_write_block_scalar_hints(emitter *yaml_emitter_t, value []byte) bool { - if is_space(value, 0) || is_break(value, 0) { - indent_hint := []byte{'0' + byte(emitter.best_indent)} - if !yaml_emitter_write_indicator(emitter, indent_hint, false, false, false) { - return false - } - } - - emitter.open_ended = false - - var chomp_hint [1]byte - if len(value) == 0 { - chomp_hint[0] = '-' - } else { - i := len(value) - 1 - for value[i]&0xC0 == 0x80 { - i-- - } - if !is_break(value, i) { - chomp_hint[0] = '-' - } else if i == 0 { - chomp_hint[0] = '+' - emitter.open_ended = true - } else { - i-- - for value[i]&0xC0 == 0x80 { - i-- - } - if is_break(value, i) { - chomp_hint[0] = '+' - emitter.open_ended = true - } - } - } - if chomp_hint[0] != 0 { - if !yaml_emitter_write_indicator(emitter, chomp_hint[:], false, false, false) { - return false - } - } - return true -} - -func yaml_emitter_write_literal_scalar(emitter *yaml_emitter_t, value []byte) bool { - if !yaml_emitter_write_indicator(emitter, []byte{'|'}, true, false, false) { - return false - } - if !yaml_emitter_write_block_scalar_hints(emitter, value) { - return false - } - if !put_break(emitter) { - return false - } - emitter.indention = true - emitter.whitespace = true - breaks := true - for i := 0; i < len(value); { - if is_break(value, i) { - if !write_break(emitter, value, &i) { - return false - } - emitter.indention = true - breaks = true - } else { - if breaks { - if !yaml_emitter_write_indent(emitter) { - return false - } - } - if !write(emitter, value, &i) { - return false - } - emitter.indention = false - breaks = false - } - } - - return true -} - -func yaml_emitter_write_folded_scalar(emitter *yaml_emitter_t, value []byte) bool { - if !yaml_emitter_write_indicator(emitter, []byte{'>'}, true, false, false) { - return false - } - if !yaml_emitter_write_block_scalar_hints(emitter, value) { - return false - } - - if !put_break(emitter) { - return false - } - emitter.indention = true - emitter.whitespace = true - - breaks := true - leading_spaces := true - for i := 0; i < len(value); { - if is_break(value, i) { - if !breaks && !leading_spaces && value[i] == '\n' { - k := 0 - for is_break(value, k) { - k += width(value[k]) - } - if !is_blankz(value, k) { - if !put_break(emitter) { - return false - } - } - } - if !write_break(emitter, value, &i) { - return false - } - emitter.indention = true - breaks = true - } else { - if breaks { - if !yaml_emitter_write_indent(emitter) { - return false - } - leading_spaces = is_blank(value, i) - } - if !breaks && is_space(value, i) && !is_space(value, i+1) && emitter.column > emitter.best_width { - if !yaml_emitter_write_indent(emitter) { - return false - } - i += width(value[i]) - } else { - if !write(emitter, value, &i) { - return false - } - } - emitter.indention = false - breaks = false - } - } - return true -} diff --git a/vendor/gopkg.in/yaml.v2/encode.go b/vendor/gopkg.in/yaml.v2/encode.go deleted file mode 100644 index 84f8499..0000000 --- a/vendor/gopkg.in/yaml.v2/encode.go +++ /dev/null @@ -1,306 +0,0 @@ -package yaml - -import ( - "encoding" - "fmt" - "reflect" - "regexp" - "sort" - "strconv" - "strings" - "time" -) - -type encoder struct { - emitter yaml_emitter_t - event yaml_event_t - out []byte - flow bool -} - -func newEncoder() (e *encoder) { - e = &encoder{} - e.must(yaml_emitter_initialize(&e.emitter)) - yaml_emitter_set_output_string(&e.emitter, &e.out) - yaml_emitter_set_unicode(&e.emitter, true) - e.must(yaml_stream_start_event_initialize(&e.event, yaml_UTF8_ENCODING)) - e.emit() - e.must(yaml_document_start_event_initialize(&e.event, nil, nil, true)) - e.emit() - return e -} - -func (e *encoder) finish() { - e.must(yaml_document_end_event_initialize(&e.event, true)) - e.emit() - e.emitter.open_ended = false - e.must(yaml_stream_end_event_initialize(&e.event)) - e.emit() -} - -func (e *encoder) destroy() { - yaml_emitter_delete(&e.emitter) -} - -func (e *encoder) emit() { - // This will internally delete the e.event value. - if !yaml_emitter_emit(&e.emitter, &e.event) && e.event.typ != yaml_DOCUMENT_END_EVENT && e.event.typ != yaml_STREAM_END_EVENT { - e.must(false) - } -} - -func (e *encoder) must(ok bool) { - if !ok { - msg := e.emitter.problem - if msg == "" { - msg = "unknown problem generating YAML content" - } - failf("%s", msg) - } -} - -func (e *encoder) marshal(tag string, in reflect.Value) { - if !in.IsValid() { - e.nilv() - return - } - iface := in.Interface() - if m, ok := iface.(Marshaler); ok { - v, err := m.MarshalYAML() - if err != nil { - fail(err) - } - if v == nil { - e.nilv() - return - } - in = reflect.ValueOf(v) - } else if m, ok := iface.(encoding.TextMarshaler); ok { - text, err := m.MarshalText() - if err != nil { - fail(err) - } - in = reflect.ValueOf(string(text)) - } - switch in.Kind() { - case reflect.Interface: - if in.IsNil() { - e.nilv() - } else { - e.marshal(tag, in.Elem()) - } - case reflect.Map: - e.mapv(tag, in) - case reflect.Ptr: - if in.IsNil() { - e.nilv() - } else { - e.marshal(tag, in.Elem()) - } - case reflect.Struct: - e.structv(tag, in) - case reflect.Slice: - if in.Type().Elem() == mapItemType { - e.itemsv(tag, in) - } else { - e.slicev(tag, in) - } - case reflect.String: - e.stringv(tag, in) - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - if in.Type() == durationType { - e.stringv(tag, reflect.ValueOf(iface.(time.Duration).String())) - } else { - e.intv(tag, in) - } - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - e.uintv(tag, in) - case reflect.Float32, reflect.Float64: - e.floatv(tag, in) - case reflect.Bool: - e.boolv(tag, in) - default: - panic("cannot marshal type: " + in.Type().String()) - } -} - -func (e *encoder) mapv(tag string, in reflect.Value) { - e.mappingv(tag, func() { - keys := keyList(in.MapKeys()) - sort.Sort(keys) - for _, k := range keys { - e.marshal("", k) - e.marshal("", in.MapIndex(k)) - } - }) -} - -func (e *encoder) itemsv(tag string, in reflect.Value) { - e.mappingv(tag, func() { - slice := in.Convert(reflect.TypeOf([]MapItem{})).Interface().([]MapItem) - for _, item := range slice { - e.marshal("", reflect.ValueOf(item.Key)) - e.marshal("", reflect.ValueOf(item.Value)) - } - }) -} - -func (e *encoder) structv(tag string, in reflect.Value) { - sinfo, err := getStructInfo(in.Type()) - if err != nil { - panic(err) - } - e.mappingv(tag, func() { - for _, info := range sinfo.FieldsList { - var value reflect.Value - if info.Inline == nil { - value = in.Field(info.Num) - } else { - value = in.FieldByIndex(info.Inline) - } - if info.OmitEmpty && isZero(value) { - continue - } - e.marshal("", reflect.ValueOf(info.Key)) - e.flow = info.Flow - e.marshal("", value) - } - if sinfo.InlineMap >= 0 { - m := in.Field(sinfo.InlineMap) - if m.Len() > 0 { - e.flow = false - keys := keyList(m.MapKeys()) - sort.Sort(keys) - for _, k := range keys { - if _, found := sinfo.FieldsMap[k.String()]; found { - panic(fmt.Sprintf("Can't have key %q in inlined map; conflicts with struct field", k.String())) - } - e.marshal("", k) - e.flow = false - e.marshal("", m.MapIndex(k)) - } - } - } - }) -} - -func (e *encoder) mappingv(tag string, f func()) { - implicit := tag == "" - style := yaml_BLOCK_MAPPING_STYLE - if e.flow { - e.flow = false - style = yaml_FLOW_MAPPING_STYLE - } - e.must(yaml_mapping_start_event_initialize(&e.event, nil, []byte(tag), implicit, style)) - e.emit() - f() - e.must(yaml_mapping_end_event_initialize(&e.event)) - e.emit() -} - -func (e *encoder) slicev(tag string, in reflect.Value) { - implicit := tag == "" - style := yaml_BLOCK_SEQUENCE_STYLE - if e.flow { - e.flow = false - style = yaml_FLOW_SEQUENCE_STYLE - } - e.must(yaml_sequence_start_event_initialize(&e.event, nil, []byte(tag), implicit, style)) - e.emit() - n := in.Len() - for i := 0; i < n; i++ { - e.marshal("", in.Index(i)) - } - e.must(yaml_sequence_end_event_initialize(&e.event)) - e.emit() -} - -// isBase60 returns whether s is in base 60 notation as defined in YAML 1.1. -// -// The base 60 float notation in YAML 1.1 is a terrible idea and is unsupported -// in YAML 1.2 and by this package, but these should be marshalled quoted for -// the time being for compatibility with other parsers. -func isBase60Float(s string) (result bool) { - // Fast path. - if s == "" { - return false - } - c := s[0] - if !(c == '+' || c == '-' || c >= '0' && c <= '9') || strings.IndexByte(s, ':') < 0 { - return false - } - // Do the full match. - return base60float.MatchString(s) -} - -// From http://yaml.org/type/float.html, except the regular expression there -// is bogus. In practice parsers do not enforce the "\.[0-9_]*" suffix. -var base60float = regexp.MustCompile(`^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+(?:\.[0-9_]*)?$`) - -func (e *encoder) stringv(tag string, in reflect.Value) { - var style yaml_scalar_style_t - s := in.String() - rtag, rs := resolve("", s) - if rtag == yaml_BINARY_TAG { - if tag == "" || tag == yaml_STR_TAG { - tag = rtag - s = rs.(string) - } else if tag == yaml_BINARY_TAG { - failf("explicitly tagged !!binary data must be base64-encoded") - } else { - failf("cannot marshal invalid UTF-8 data as %s", shortTag(tag)) - } - } - if tag == "" && (rtag != yaml_STR_TAG || isBase60Float(s)) { - style = yaml_DOUBLE_QUOTED_SCALAR_STYLE - } else if strings.Contains(s, "\n") { - style = yaml_LITERAL_SCALAR_STYLE - } else { - style = yaml_PLAIN_SCALAR_STYLE - } - e.emitScalar(s, "", tag, style) -} - -func (e *encoder) boolv(tag string, in reflect.Value) { - var s string - if in.Bool() { - s = "true" - } else { - s = "false" - } - e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE) -} - -func (e *encoder) intv(tag string, in reflect.Value) { - s := strconv.FormatInt(in.Int(), 10) - e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE) -} - -func (e *encoder) uintv(tag string, in reflect.Value) { - s := strconv.FormatUint(in.Uint(), 10) - e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE) -} - -func (e *encoder) floatv(tag string, in reflect.Value) { - // FIXME: Handle 64 bits here. - s := strconv.FormatFloat(float64(in.Float()), 'g', -1, 32) - switch s { - case "+Inf": - s = ".inf" - case "-Inf": - s = "-.inf" - case "NaN": - s = ".nan" - } - e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE) -} - -func (e *encoder) nilv() { - e.emitScalar("null", "", "", yaml_PLAIN_SCALAR_STYLE) -} - -func (e *encoder) emitScalar(value, anchor, tag string, style yaml_scalar_style_t) { - implicit := tag == "" - e.must(yaml_scalar_event_initialize(&e.event, []byte(anchor), []byte(tag), []byte(value), implicit, implicit, style)) - e.emit() -} diff --git a/vendor/gopkg.in/yaml.v2/parserc.go b/vendor/gopkg.in/yaml.v2/parserc.go deleted file mode 100644 index 81d05df..0000000 --- a/vendor/gopkg.in/yaml.v2/parserc.go +++ /dev/null @@ -1,1095 +0,0 @@ -package yaml - -import ( - "bytes" -) - -// The parser implements the following grammar: -// -// stream ::= STREAM-START implicit_document? explicit_document* STREAM-END -// implicit_document ::= block_node DOCUMENT-END* -// explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END* -// block_node_or_indentless_sequence ::= -// ALIAS -// | properties (block_content | indentless_block_sequence)? -// | block_content -// | indentless_block_sequence -// block_node ::= ALIAS -// | properties block_content? -// | block_content -// flow_node ::= ALIAS -// | properties flow_content? -// | flow_content -// properties ::= TAG ANCHOR? | ANCHOR TAG? -// block_content ::= block_collection | flow_collection | SCALAR -// flow_content ::= flow_collection | SCALAR -// block_collection ::= block_sequence | block_mapping -// flow_collection ::= flow_sequence | flow_mapping -// block_sequence ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END -// indentless_sequence ::= (BLOCK-ENTRY block_node?)+ -// block_mapping ::= BLOCK-MAPPING_START -// ((KEY block_node_or_indentless_sequence?)? -// (VALUE block_node_or_indentless_sequence?)?)* -// BLOCK-END -// flow_sequence ::= FLOW-SEQUENCE-START -// (flow_sequence_entry FLOW-ENTRY)* -// flow_sequence_entry? -// FLOW-SEQUENCE-END -// flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? -// flow_mapping ::= FLOW-MAPPING-START -// (flow_mapping_entry FLOW-ENTRY)* -// flow_mapping_entry? -// FLOW-MAPPING-END -// flow_mapping_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? - -// Peek the next token in the token queue. -func peek_token(parser *yaml_parser_t) *yaml_token_t { - if parser.token_available || yaml_parser_fetch_more_tokens(parser) { - return &parser.tokens[parser.tokens_head] - } - return nil -} - -// Remove the next token from the queue (must be called after peek_token). -func skip_token(parser *yaml_parser_t) { - parser.token_available = false - parser.tokens_parsed++ - parser.stream_end_produced = parser.tokens[parser.tokens_head].typ == yaml_STREAM_END_TOKEN - parser.tokens_head++ -} - -// Get the next event. -func yaml_parser_parse(parser *yaml_parser_t, event *yaml_event_t) bool { - // Erase the event object. - *event = yaml_event_t{} - - // No events after the end of the stream or error. - if parser.stream_end_produced || parser.error != yaml_NO_ERROR || parser.state == yaml_PARSE_END_STATE { - return true - } - - // Generate the next event. - return yaml_parser_state_machine(parser, event) -} - -// Set parser error. -func yaml_parser_set_parser_error(parser *yaml_parser_t, problem string, problem_mark yaml_mark_t) bool { - parser.error = yaml_PARSER_ERROR - parser.problem = problem - parser.problem_mark = problem_mark - return false -} - -func 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 { - parser.error = yaml_PARSER_ERROR - parser.context = context - parser.context_mark = context_mark - parser.problem = problem - parser.problem_mark = problem_mark - return false -} - -// State dispatcher. -func yaml_parser_state_machine(parser *yaml_parser_t, event *yaml_event_t) bool { - //trace("yaml_parser_state_machine", "state:", parser.state.String()) - - switch parser.state { - case yaml_PARSE_STREAM_START_STATE: - return yaml_parser_parse_stream_start(parser, event) - - case yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE: - return yaml_parser_parse_document_start(parser, event, true) - - case yaml_PARSE_DOCUMENT_START_STATE: - return yaml_parser_parse_document_start(parser, event, false) - - case yaml_PARSE_DOCUMENT_CONTENT_STATE: - return yaml_parser_parse_document_content(parser, event) - - case yaml_PARSE_DOCUMENT_END_STATE: - return yaml_parser_parse_document_end(parser, event) - - case yaml_PARSE_BLOCK_NODE_STATE: - return yaml_parser_parse_node(parser, event, true, false) - - case yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE: - return yaml_parser_parse_node(parser, event, true, true) - - case yaml_PARSE_FLOW_NODE_STATE: - return yaml_parser_parse_node(parser, event, false, false) - - case yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE: - return yaml_parser_parse_block_sequence_entry(parser, event, true) - - case yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE: - return yaml_parser_parse_block_sequence_entry(parser, event, false) - - case yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE: - return yaml_parser_parse_indentless_sequence_entry(parser, event) - - case yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE: - return yaml_parser_parse_block_mapping_key(parser, event, true) - - case yaml_PARSE_BLOCK_MAPPING_KEY_STATE: - return yaml_parser_parse_block_mapping_key(parser, event, false) - - case yaml_PARSE_BLOCK_MAPPING_VALUE_STATE: - return yaml_parser_parse_block_mapping_value(parser, event) - - case yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE: - return yaml_parser_parse_flow_sequence_entry(parser, event, true) - - case yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE: - return yaml_parser_parse_flow_sequence_entry(parser, event, false) - - case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE: - return yaml_parser_parse_flow_sequence_entry_mapping_key(parser, event) - - case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE: - return yaml_parser_parse_flow_sequence_entry_mapping_value(parser, event) - - case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE: - return yaml_parser_parse_flow_sequence_entry_mapping_end(parser, event) - - case yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE: - return yaml_parser_parse_flow_mapping_key(parser, event, true) - - case yaml_PARSE_FLOW_MAPPING_KEY_STATE: - return yaml_parser_parse_flow_mapping_key(parser, event, false) - - case yaml_PARSE_FLOW_MAPPING_VALUE_STATE: - return yaml_parser_parse_flow_mapping_value(parser, event, false) - - case yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE: - return yaml_parser_parse_flow_mapping_value(parser, event, true) - - default: - panic("invalid parser state") - } -} - -// Parse the production: -// stream ::= STREAM-START implicit_document? explicit_document* STREAM-END -// ************ -func yaml_parser_parse_stream_start(parser *yaml_parser_t, event *yaml_event_t) bool { - token := peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_STREAM_START_TOKEN { - return yaml_parser_set_parser_error(parser, "did not find expected ", token.start_mark) - } - parser.state = yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE - *event = yaml_event_t{ - typ: yaml_STREAM_START_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - encoding: token.encoding, - } - skip_token(parser) - return true -} - -// Parse the productions: -// implicit_document ::= block_node DOCUMENT-END* -// * -// explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END* -// ************************* -func yaml_parser_parse_document_start(parser *yaml_parser_t, event *yaml_event_t, implicit bool) bool { - - token := peek_token(parser) - if token == nil { - return false - } - - // Parse extra document end indicators. - if !implicit { - for token.typ == yaml_DOCUMENT_END_TOKEN { - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - } - } - - if implicit && token.typ != yaml_VERSION_DIRECTIVE_TOKEN && - token.typ != yaml_TAG_DIRECTIVE_TOKEN && - token.typ != yaml_DOCUMENT_START_TOKEN && - token.typ != yaml_STREAM_END_TOKEN { - // Parse an implicit document. - if !yaml_parser_process_directives(parser, nil, nil) { - return false - } - parser.states = append(parser.states, yaml_PARSE_DOCUMENT_END_STATE) - parser.state = yaml_PARSE_BLOCK_NODE_STATE - - *event = yaml_event_t{ - typ: yaml_DOCUMENT_START_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - } - - } else if token.typ != yaml_STREAM_END_TOKEN { - // Parse an explicit document. - var version_directive *yaml_version_directive_t - var tag_directives []yaml_tag_directive_t - start_mark := token.start_mark - if !yaml_parser_process_directives(parser, &version_directive, &tag_directives) { - return false - } - token = peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_DOCUMENT_START_TOKEN { - yaml_parser_set_parser_error(parser, - "did not find expected ", token.start_mark) - return false - } - parser.states = append(parser.states, yaml_PARSE_DOCUMENT_END_STATE) - parser.state = yaml_PARSE_DOCUMENT_CONTENT_STATE - end_mark := token.end_mark - - *event = yaml_event_t{ - typ: yaml_DOCUMENT_START_EVENT, - start_mark: start_mark, - end_mark: end_mark, - version_directive: version_directive, - tag_directives: tag_directives, - implicit: false, - } - skip_token(parser) - - } else { - // Parse the stream end. - parser.state = yaml_PARSE_END_STATE - *event = yaml_event_t{ - typ: yaml_STREAM_END_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - } - skip_token(parser) - } - - return true -} - -// Parse the productions: -// explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END* -// *********** -// -func yaml_parser_parse_document_content(parser *yaml_parser_t, event *yaml_event_t) bool { - token := peek_token(parser) - if token == nil { - return false - } - if token.typ == yaml_VERSION_DIRECTIVE_TOKEN || - token.typ == yaml_TAG_DIRECTIVE_TOKEN || - token.typ == yaml_DOCUMENT_START_TOKEN || - token.typ == yaml_DOCUMENT_END_TOKEN || - token.typ == yaml_STREAM_END_TOKEN { - parser.state = parser.states[len(parser.states)-1] - parser.states = parser.states[:len(parser.states)-1] - return yaml_parser_process_empty_scalar(parser, event, - token.start_mark) - } - return yaml_parser_parse_node(parser, event, true, false) -} - -// Parse the productions: -// implicit_document ::= block_node DOCUMENT-END* -// ************* -// explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END* -// -func yaml_parser_parse_document_end(parser *yaml_parser_t, event *yaml_event_t) bool { - token := peek_token(parser) - if token == nil { - return false - } - - start_mark := token.start_mark - end_mark := token.start_mark - - implicit := true - if token.typ == yaml_DOCUMENT_END_TOKEN { - end_mark = token.end_mark - skip_token(parser) - implicit = false - } - - parser.tag_directives = parser.tag_directives[:0] - - parser.state = yaml_PARSE_DOCUMENT_START_STATE - *event = yaml_event_t{ - typ: yaml_DOCUMENT_END_EVENT, - start_mark: start_mark, - end_mark: end_mark, - implicit: implicit, - } - return true -} - -// Parse the productions: -// block_node_or_indentless_sequence ::= -// ALIAS -// ***** -// | properties (block_content | indentless_block_sequence)? -// ********** * -// | block_content | indentless_block_sequence -// * -// block_node ::= ALIAS -// ***** -// | properties block_content? -// ********** * -// | block_content -// * -// flow_node ::= ALIAS -// ***** -// | properties flow_content? -// ********** * -// | flow_content -// * -// properties ::= TAG ANCHOR? | ANCHOR TAG? -// ************************* -// block_content ::= block_collection | flow_collection | SCALAR -// ****** -// flow_content ::= flow_collection | SCALAR -// ****** -func yaml_parser_parse_node(parser *yaml_parser_t, event *yaml_event_t, block, indentless_sequence bool) bool { - //defer trace("yaml_parser_parse_node", "block:", block, "indentless_sequence:", indentless_sequence)() - - token := peek_token(parser) - if token == nil { - return false - } - - if token.typ == yaml_ALIAS_TOKEN { - parser.state = parser.states[len(parser.states)-1] - parser.states = parser.states[:len(parser.states)-1] - *event = yaml_event_t{ - typ: yaml_ALIAS_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - anchor: token.value, - } - skip_token(parser) - return true - } - - start_mark := token.start_mark - end_mark := token.start_mark - - var tag_token bool - var tag_handle, tag_suffix, anchor []byte - var tag_mark yaml_mark_t - if token.typ == yaml_ANCHOR_TOKEN { - anchor = token.value - start_mark = token.start_mark - end_mark = token.end_mark - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - if token.typ == yaml_TAG_TOKEN { - tag_token = true - tag_handle = token.value - tag_suffix = token.suffix - tag_mark = token.start_mark - end_mark = token.end_mark - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - } - } else if token.typ == yaml_TAG_TOKEN { - tag_token = true - tag_handle = token.value - tag_suffix = token.suffix - start_mark = token.start_mark - tag_mark = token.start_mark - end_mark = token.end_mark - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - if token.typ == yaml_ANCHOR_TOKEN { - anchor = token.value - end_mark = token.end_mark - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - } - } - - var tag []byte - if tag_token { - if len(tag_handle) == 0 { - tag = tag_suffix - tag_suffix = nil - } else { - for i := range parser.tag_directives { - if bytes.Equal(parser.tag_directives[i].handle, tag_handle) { - tag = append([]byte(nil), parser.tag_directives[i].prefix...) - tag = append(tag, tag_suffix...) - break - } - } - if len(tag) == 0 { - yaml_parser_set_parser_error_context(parser, - "while parsing a node", start_mark, - "found undefined tag handle", tag_mark) - return false - } - } - } - - implicit := len(tag) == 0 - if indentless_sequence && token.typ == yaml_BLOCK_ENTRY_TOKEN { - end_mark = token.end_mark - parser.state = yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE - *event = yaml_event_t{ - typ: yaml_SEQUENCE_START_EVENT, - start_mark: start_mark, - end_mark: end_mark, - anchor: anchor, - tag: tag, - implicit: implicit, - style: yaml_style_t(yaml_BLOCK_SEQUENCE_STYLE), - } - return true - } - if token.typ == yaml_SCALAR_TOKEN { - var plain_implicit, quoted_implicit bool - end_mark = token.end_mark - if (len(tag) == 0 && token.style == yaml_PLAIN_SCALAR_STYLE) || (len(tag) == 1 && tag[0] == '!') { - plain_implicit = true - } else if len(tag) == 0 { - quoted_implicit = true - } - parser.state = parser.states[len(parser.states)-1] - parser.states = parser.states[:len(parser.states)-1] - - *event = yaml_event_t{ - typ: yaml_SCALAR_EVENT, - start_mark: start_mark, - end_mark: end_mark, - anchor: anchor, - tag: tag, - value: token.value, - implicit: plain_implicit, - quoted_implicit: quoted_implicit, - style: yaml_style_t(token.style), - } - skip_token(parser) - return true - } - if token.typ == yaml_FLOW_SEQUENCE_START_TOKEN { - // [Go] Some of the events below can be merged as they differ only on style. - end_mark = token.end_mark - parser.state = yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE - *event = yaml_event_t{ - typ: yaml_SEQUENCE_START_EVENT, - start_mark: start_mark, - end_mark: end_mark, - anchor: anchor, - tag: tag, - implicit: implicit, - style: yaml_style_t(yaml_FLOW_SEQUENCE_STYLE), - } - return true - } - if token.typ == yaml_FLOW_MAPPING_START_TOKEN { - end_mark = token.end_mark - parser.state = yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE - *event = yaml_event_t{ - typ: yaml_MAPPING_START_EVENT, - start_mark: start_mark, - end_mark: end_mark, - anchor: anchor, - tag: tag, - implicit: implicit, - style: yaml_style_t(yaml_FLOW_MAPPING_STYLE), - } - return true - } - if block && token.typ == yaml_BLOCK_SEQUENCE_START_TOKEN { - end_mark = token.end_mark - parser.state = yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE - *event = yaml_event_t{ - typ: yaml_SEQUENCE_START_EVENT, - start_mark: start_mark, - end_mark: end_mark, - anchor: anchor, - tag: tag, - implicit: implicit, - style: yaml_style_t(yaml_BLOCK_SEQUENCE_STYLE), - } - return true - } - if block && token.typ == yaml_BLOCK_MAPPING_START_TOKEN { - end_mark = token.end_mark - parser.state = yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE - *event = yaml_event_t{ - typ: yaml_MAPPING_START_EVENT, - start_mark: start_mark, - end_mark: end_mark, - anchor: anchor, - tag: tag, - implicit: implicit, - style: yaml_style_t(yaml_BLOCK_MAPPING_STYLE), - } - return true - } - if len(anchor) > 0 || len(tag) > 0 { - parser.state = parser.states[len(parser.states)-1] - parser.states = parser.states[:len(parser.states)-1] - - *event = yaml_event_t{ - typ: yaml_SCALAR_EVENT, - start_mark: start_mark, - end_mark: end_mark, - anchor: anchor, - tag: tag, - implicit: implicit, - quoted_implicit: false, - style: yaml_style_t(yaml_PLAIN_SCALAR_STYLE), - } - return true - } - - context := "while parsing a flow node" - if block { - context = "while parsing a block node" - } - yaml_parser_set_parser_error_context(parser, context, start_mark, - "did not find expected node content", token.start_mark) - return false -} - -// Parse the productions: -// block_sequence ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END -// ******************** *********** * ********* -// -func yaml_parser_parse_block_sequence_entry(parser *yaml_parser_t, event *yaml_event_t, first bool) bool { - if first { - token := peek_token(parser) - parser.marks = append(parser.marks, token.start_mark) - skip_token(parser) - } - - token := peek_token(parser) - if token == nil { - return false - } - - if token.typ == yaml_BLOCK_ENTRY_TOKEN { - mark := token.end_mark - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_BLOCK_ENTRY_TOKEN && token.typ != yaml_BLOCK_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE) - return yaml_parser_parse_node(parser, event, true, false) - } else { - parser.state = yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE - return yaml_parser_process_empty_scalar(parser, event, mark) - } - } - if token.typ == yaml_BLOCK_END_TOKEN { - parser.state = parser.states[len(parser.states)-1] - parser.states = parser.states[:len(parser.states)-1] - parser.marks = parser.marks[:len(parser.marks)-1] - - *event = yaml_event_t{ - typ: yaml_SEQUENCE_END_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - } - - skip_token(parser) - return true - } - - context_mark := parser.marks[len(parser.marks)-1] - parser.marks = parser.marks[:len(parser.marks)-1] - return yaml_parser_set_parser_error_context(parser, - "while parsing a block collection", context_mark, - "did not find expected '-' indicator", token.start_mark) -} - -// Parse the productions: -// indentless_sequence ::= (BLOCK-ENTRY block_node?)+ -// *********** * -func yaml_parser_parse_indentless_sequence_entry(parser *yaml_parser_t, event *yaml_event_t) bool { - token := peek_token(parser) - if token == nil { - return false - } - - if token.typ == yaml_BLOCK_ENTRY_TOKEN { - mark := token.end_mark - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_BLOCK_ENTRY_TOKEN && - token.typ != yaml_KEY_TOKEN && - token.typ != yaml_VALUE_TOKEN && - token.typ != yaml_BLOCK_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE) - return yaml_parser_parse_node(parser, event, true, false) - } - parser.state = yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE - return yaml_parser_process_empty_scalar(parser, event, mark) - } - parser.state = parser.states[len(parser.states)-1] - parser.states = parser.states[:len(parser.states)-1] - - *event = yaml_event_t{ - typ: yaml_SEQUENCE_END_EVENT, - start_mark: token.start_mark, - end_mark: token.start_mark, // [Go] Shouldn't this be token.end_mark? - } - return true -} - -// Parse the productions: -// block_mapping ::= BLOCK-MAPPING_START -// ******************* -// ((KEY block_node_or_indentless_sequence?)? -// *** * -// (VALUE block_node_or_indentless_sequence?)?)* -// -// BLOCK-END -// ********* -// -func yaml_parser_parse_block_mapping_key(parser *yaml_parser_t, event *yaml_event_t, first bool) bool { - if first { - token := peek_token(parser) - parser.marks = append(parser.marks, token.start_mark) - skip_token(parser) - } - - token := peek_token(parser) - if token == nil { - return false - } - - if token.typ == yaml_KEY_TOKEN { - mark := token.end_mark - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_KEY_TOKEN && - token.typ != yaml_VALUE_TOKEN && - token.typ != yaml_BLOCK_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_BLOCK_MAPPING_VALUE_STATE) - return yaml_parser_parse_node(parser, event, true, true) - } else { - parser.state = yaml_PARSE_BLOCK_MAPPING_VALUE_STATE - return yaml_parser_process_empty_scalar(parser, event, mark) - } - } else if token.typ == yaml_BLOCK_END_TOKEN { - parser.state = parser.states[len(parser.states)-1] - parser.states = parser.states[:len(parser.states)-1] - parser.marks = parser.marks[:len(parser.marks)-1] - *event = yaml_event_t{ - typ: yaml_MAPPING_END_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - } - skip_token(parser) - return true - } - - context_mark := parser.marks[len(parser.marks)-1] - parser.marks = parser.marks[:len(parser.marks)-1] - return yaml_parser_set_parser_error_context(parser, - "while parsing a block mapping", context_mark, - "did not find expected key", token.start_mark) -} - -// Parse the productions: -// block_mapping ::= BLOCK-MAPPING_START -// -// ((KEY block_node_or_indentless_sequence?)? -// -// (VALUE block_node_or_indentless_sequence?)?)* -// ***** * -// BLOCK-END -// -// -func yaml_parser_parse_block_mapping_value(parser *yaml_parser_t, event *yaml_event_t) bool { - token := peek_token(parser) - if token == nil { - return false - } - if token.typ == yaml_VALUE_TOKEN { - mark := token.end_mark - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_KEY_TOKEN && - token.typ != yaml_VALUE_TOKEN && - token.typ != yaml_BLOCK_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_BLOCK_MAPPING_KEY_STATE) - return yaml_parser_parse_node(parser, event, true, true) - } - parser.state = yaml_PARSE_BLOCK_MAPPING_KEY_STATE - return yaml_parser_process_empty_scalar(parser, event, mark) - } - parser.state = yaml_PARSE_BLOCK_MAPPING_KEY_STATE - return yaml_parser_process_empty_scalar(parser, event, token.start_mark) -} - -// Parse the productions: -// flow_sequence ::= FLOW-SEQUENCE-START -// ******************* -// (flow_sequence_entry FLOW-ENTRY)* -// * ********** -// flow_sequence_entry? -// * -// FLOW-SEQUENCE-END -// ***************** -// flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? -// * -// -func yaml_parser_parse_flow_sequence_entry(parser *yaml_parser_t, event *yaml_event_t, first bool) bool { - if first { - token := peek_token(parser) - parser.marks = append(parser.marks, token.start_mark) - skip_token(parser) - } - token := peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_FLOW_SEQUENCE_END_TOKEN { - if !first { - if token.typ == yaml_FLOW_ENTRY_TOKEN { - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - } else { - context_mark := parser.marks[len(parser.marks)-1] - parser.marks = parser.marks[:len(parser.marks)-1] - return yaml_parser_set_parser_error_context(parser, - "while parsing a flow sequence", context_mark, - "did not find expected ',' or ']'", token.start_mark) - } - } - - if token.typ == yaml_KEY_TOKEN { - parser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE - *event = yaml_event_t{ - typ: yaml_MAPPING_START_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - implicit: true, - style: yaml_style_t(yaml_FLOW_MAPPING_STYLE), - } - skip_token(parser) - return true - } else if token.typ != yaml_FLOW_SEQUENCE_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE) - return yaml_parser_parse_node(parser, event, false, false) - } - } - - parser.state = parser.states[len(parser.states)-1] - parser.states = parser.states[:len(parser.states)-1] - parser.marks = parser.marks[:len(parser.marks)-1] - - *event = yaml_event_t{ - typ: yaml_SEQUENCE_END_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - } - - skip_token(parser) - return true -} - -// -// Parse the productions: -// flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? -// *** * -// -func yaml_parser_parse_flow_sequence_entry_mapping_key(parser *yaml_parser_t, event *yaml_event_t) bool { - token := peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_VALUE_TOKEN && - token.typ != yaml_FLOW_ENTRY_TOKEN && - token.typ != yaml_FLOW_SEQUENCE_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE) - return yaml_parser_parse_node(parser, event, false, false) - } - mark := token.end_mark - skip_token(parser) - parser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE - return yaml_parser_process_empty_scalar(parser, event, mark) -} - -// Parse the productions: -// flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? -// ***** * -// -func yaml_parser_parse_flow_sequence_entry_mapping_value(parser *yaml_parser_t, event *yaml_event_t) bool { - token := peek_token(parser) - if token == nil { - return false - } - if token.typ == yaml_VALUE_TOKEN { - skip_token(parser) - token := peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_FLOW_ENTRY_TOKEN && token.typ != yaml_FLOW_SEQUENCE_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE) - return yaml_parser_parse_node(parser, event, false, false) - } - } - parser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE - return yaml_parser_process_empty_scalar(parser, event, token.start_mark) -} - -// Parse the productions: -// flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? -// * -// -func yaml_parser_parse_flow_sequence_entry_mapping_end(parser *yaml_parser_t, event *yaml_event_t) bool { - token := peek_token(parser) - if token == nil { - return false - } - parser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE - *event = yaml_event_t{ - typ: yaml_MAPPING_END_EVENT, - start_mark: token.start_mark, - end_mark: token.start_mark, // [Go] Shouldn't this be end_mark? - } - return true -} - -// Parse the productions: -// flow_mapping ::= FLOW-MAPPING-START -// ****************** -// (flow_mapping_entry FLOW-ENTRY)* -// * ********** -// flow_mapping_entry? -// ****************** -// FLOW-MAPPING-END -// **************** -// flow_mapping_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? -// * *** * -// -func yaml_parser_parse_flow_mapping_key(parser *yaml_parser_t, event *yaml_event_t, first bool) bool { - if first { - token := peek_token(parser) - parser.marks = append(parser.marks, token.start_mark) - skip_token(parser) - } - - token := peek_token(parser) - if token == nil { - return false - } - - if token.typ != yaml_FLOW_MAPPING_END_TOKEN { - if !first { - if token.typ == yaml_FLOW_ENTRY_TOKEN { - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - } else { - context_mark := parser.marks[len(parser.marks)-1] - parser.marks = parser.marks[:len(parser.marks)-1] - return yaml_parser_set_parser_error_context(parser, - "while parsing a flow mapping", context_mark, - "did not find expected ',' or '}'", token.start_mark) - } - } - - if token.typ == yaml_KEY_TOKEN { - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_VALUE_TOKEN && - token.typ != yaml_FLOW_ENTRY_TOKEN && - token.typ != yaml_FLOW_MAPPING_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_VALUE_STATE) - return yaml_parser_parse_node(parser, event, false, false) - } else { - parser.state = yaml_PARSE_FLOW_MAPPING_VALUE_STATE - return yaml_parser_process_empty_scalar(parser, event, token.start_mark) - } - } else if token.typ != yaml_FLOW_MAPPING_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE) - return yaml_parser_parse_node(parser, event, false, false) - } - } - - parser.state = parser.states[len(parser.states)-1] - parser.states = parser.states[:len(parser.states)-1] - parser.marks = parser.marks[:len(parser.marks)-1] - *event = yaml_event_t{ - typ: yaml_MAPPING_END_EVENT, - start_mark: token.start_mark, - end_mark: token.end_mark, - } - skip_token(parser) - return true -} - -// Parse the productions: -// flow_mapping_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? -// * ***** * -// -func yaml_parser_parse_flow_mapping_value(parser *yaml_parser_t, event *yaml_event_t, empty bool) bool { - token := peek_token(parser) - if token == nil { - return false - } - if empty { - parser.state = yaml_PARSE_FLOW_MAPPING_KEY_STATE - return yaml_parser_process_empty_scalar(parser, event, token.start_mark) - } - if token.typ == yaml_VALUE_TOKEN { - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - if token.typ != yaml_FLOW_ENTRY_TOKEN && token.typ != yaml_FLOW_MAPPING_END_TOKEN { - parser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_KEY_STATE) - return yaml_parser_parse_node(parser, event, false, false) - } - } - parser.state = yaml_PARSE_FLOW_MAPPING_KEY_STATE - return yaml_parser_process_empty_scalar(parser, event, token.start_mark) -} - -// Generate an empty scalar event. -func yaml_parser_process_empty_scalar(parser *yaml_parser_t, event *yaml_event_t, mark yaml_mark_t) bool { - *event = yaml_event_t{ - typ: yaml_SCALAR_EVENT, - start_mark: mark, - end_mark: mark, - value: nil, // Empty - implicit: true, - style: yaml_style_t(yaml_PLAIN_SCALAR_STYLE), - } - return true -} - -var default_tag_directives = []yaml_tag_directive_t{ - {[]byte("!"), []byte("!")}, - {[]byte("!!"), []byte("tag:yaml.org,2002:")}, -} - -// Parse directives. -func yaml_parser_process_directives(parser *yaml_parser_t, - version_directive_ref **yaml_version_directive_t, - tag_directives_ref *[]yaml_tag_directive_t) bool { - - var version_directive *yaml_version_directive_t - var tag_directives []yaml_tag_directive_t - - token := peek_token(parser) - if token == nil { - return false - } - - for token.typ == yaml_VERSION_DIRECTIVE_TOKEN || token.typ == yaml_TAG_DIRECTIVE_TOKEN { - if token.typ == yaml_VERSION_DIRECTIVE_TOKEN { - if version_directive != nil { - yaml_parser_set_parser_error(parser, - "found duplicate %YAML directive", token.start_mark) - return false - } - if token.major != 1 || token.minor != 1 { - yaml_parser_set_parser_error(parser, - "found incompatible YAML document", token.start_mark) - return false - } - version_directive = &yaml_version_directive_t{ - major: token.major, - minor: token.minor, - } - } else if token.typ == yaml_TAG_DIRECTIVE_TOKEN { - value := yaml_tag_directive_t{ - handle: token.value, - prefix: token.prefix, - } - if !yaml_parser_append_tag_directive(parser, value, false, token.start_mark) { - return false - } - tag_directives = append(tag_directives, value) - } - - skip_token(parser) - token = peek_token(parser) - if token == nil { - return false - } - } - - for i := range default_tag_directives { - if !yaml_parser_append_tag_directive(parser, default_tag_directives[i], true, token.start_mark) { - return false - } - } - - if version_directive_ref != nil { - *version_directive_ref = version_directive - } - if tag_directives_ref != nil { - *tag_directives_ref = tag_directives - } - return true -} - -// Append a tag directive to the directives stack. -func yaml_parser_append_tag_directive(parser *yaml_parser_t, value yaml_tag_directive_t, allow_duplicates bool, mark yaml_mark_t) bool { - for i := range parser.tag_directives { - if bytes.Equal(value.handle, parser.tag_directives[i].handle) { - if allow_duplicates { - return true - } - return yaml_parser_set_parser_error(parser, "found duplicate %TAG directive", mark) - } - } - - // [Go] I suspect the copy is unnecessary. This was likely done - // because there was no way to track ownership of the data. - value_copy := yaml_tag_directive_t{ - handle: make([]byte, len(value.handle)), - prefix: make([]byte, len(value.prefix)), - } - copy(value_copy.handle, value.handle) - copy(value_copy.prefix, value.prefix) - parser.tag_directives = append(parser.tag_directives, value_copy) - return true -} diff --git a/vendor/gopkg.in/yaml.v2/readerc.go b/vendor/gopkg.in/yaml.v2/readerc.go deleted file mode 100644 index f450791..0000000 --- a/vendor/gopkg.in/yaml.v2/readerc.go +++ /dev/null @@ -1,394 +0,0 @@ -package yaml - -import ( - "io" -) - -// Set the reader error and return 0. -func yaml_parser_set_reader_error(parser *yaml_parser_t, problem string, offset int, value int) bool { - parser.error = yaml_READER_ERROR - parser.problem = problem - parser.problem_offset = offset - parser.problem_value = value - return false -} - -// Byte order marks. -const ( - bom_UTF8 = "\xef\xbb\xbf" - bom_UTF16LE = "\xff\xfe" - bom_UTF16BE = "\xfe\xff" -) - -// Determine the input stream encoding by checking the BOM symbol. If no BOM is -// found, the UTF-8 encoding is assumed. Return 1 on success, 0 on failure. -func yaml_parser_determine_encoding(parser *yaml_parser_t) bool { - // Ensure that we had enough bytes in the raw buffer. - for !parser.eof && len(parser.raw_buffer)-parser.raw_buffer_pos < 3 { - if !yaml_parser_update_raw_buffer(parser) { - return false - } - } - - // Determine the encoding. - buf := parser.raw_buffer - pos := parser.raw_buffer_pos - avail := len(buf) - pos - if avail >= 2 && buf[pos] == bom_UTF16LE[0] && buf[pos+1] == bom_UTF16LE[1] { - parser.encoding = yaml_UTF16LE_ENCODING - parser.raw_buffer_pos += 2 - parser.offset += 2 - } else if avail >= 2 && buf[pos] == bom_UTF16BE[0] && buf[pos+1] == bom_UTF16BE[1] { - parser.encoding = yaml_UTF16BE_ENCODING - parser.raw_buffer_pos += 2 - parser.offset += 2 - } else if avail >= 3 && buf[pos] == bom_UTF8[0] && buf[pos+1] == bom_UTF8[1] && buf[pos+2] == bom_UTF8[2] { - parser.encoding = yaml_UTF8_ENCODING - parser.raw_buffer_pos += 3 - parser.offset += 3 - } else { - parser.encoding = yaml_UTF8_ENCODING - } - return true -} - -// Update the raw buffer. -func yaml_parser_update_raw_buffer(parser *yaml_parser_t) bool { - size_read := 0 - - // Return if the raw buffer is full. - if parser.raw_buffer_pos == 0 && len(parser.raw_buffer) == cap(parser.raw_buffer) { - return true - } - - // Return on EOF. - if parser.eof { - return true - } - - // Move the remaining bytes in the raw buffer to the beginning. - if parser.raw_buffer_pos > 0 && parser.raw_buffer_pos < len(parser.raw_buffer) { - copy(parser.raw_buffer, parser.raw_buffer[parser.raw_buffer_pos:]) - } - parser.raw_buffer = parser.raw_buffer[:len(parser.raw_buffer)-parser.raw_buffer_pos] - parser.raw_buffer_pos = 0 - - // Call the read handler to fill the buffer. - size_read, err := parser.read_handler(parser, parser.raw_buffer[len(parser.raw_buffer):cap(parser.raw_buffer)]) - parser.raw_buffer = parser.raw_buffer[:len(parser.raw_buffer)+size_read] - if err == io.EOF { - parser.eof = true - } else if err != nil { - return yaml_parser_set_reader_error(parser, "input error: "+err.Error(), parser.offset, -1) - } - return true -} - -// Ensure that the buffer contains at least `length` characters. -// Return true on success, false on failure. -// -// The length is supposed to be significantly less that the buffer size. -func yaml_parser_update_buffer(parser *yaml_parser_t, length int) bool { - if parser.read_handler == nil { - panic("read handler must be set") - } - - // If the EOF flag is set and the raw buffer is empty, do nothing. - if parser.eof && parser.raw_buffer_pos == len(parser.raw_buffer) { - return true - } - - // Return if the buffer contains enough characters. - if parser.unread >= length { - return true - } - - // Determine the input encoding if it is not known yet. - if parser.encoding == yaml_ANY_ENCODING { - if !yaml_parser_determine_encoding(parser) { - return false - } - } - - // Move the unread characters to the beginning of the buffer. - buffer_len := len(parser.buffer) - if parser.buffer_pos > 0 && parser.buffer_pos < buffer_len { - copy(parser.buffer, parser.buffer[parser.buffer_pos:]) - buffer_len -= parser.buffer_pos - parser.buffer_pos = 0 - } else if parser.buffer_pos == buffer_len { - buffer_len = 0 - parser.buffer_pos = 0 - } - - // Open the whole buffer for writing, and cut it before returning. - parser.buffer = parser.buffer[:cap(parser.buffer)] - - // Fill the buffer until it has enough characters. - first := true - for parser.unread < length { - - // Fill the raw buffer if necessary. - if !first || parser.raw_buffer_pos == len(parser.raw_buffer) { - if !yaml_parser_update_raw_buffer(parser) { - parser.buffer = parser.buffer[:buffer_len] - return false - } - } - first = false - - // Decode the raw buffer. - inner: - for parser.raw_buffer_pos != len(parser.raw_buffer) { - var value rune - var width int - - raw_unread := len(parser.raw_buffer) - parser.raw_buffer_pos - - // Decode the next character. - switch parser.encoding { - case yaml_UTF8_ENCODING: - // Decode a UTF-8 character. Check RFC 3629 - // (http://www.ietf.org/rfc/rfc3629.txt) for more details. - // - // The following table (taken from the RFC) is used for - // decoding. - // - // Char. number range | UTF-8 octet sequence - // (hexadecimal) | (binary) - // --------------------+------------------------------------ - // 0000 0000-0000 007F | 0xxxxxxx - // 0000 0080-0000 07FF | 110xxxxx 10xxxxxx - // 0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx - // 0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx - // - // Additionally, the characters in the range 0xD800-0xDFFF - // are prohibited as they are reserved for use with UTF-16 - // surrogate pairs. - - // Determine the length of the UTF-8 sequence. - octet := parser.raw_buffer[parser.raw_buffer_pos] - switch { - case octet&0x80 == 0x00: - width = 1 - case octet&0xE0 == 0xC0: - width = 2 - case octet&0xF0 == 0xE0: - width = 3 - case octet&0xF8 == 0xF0: - width = 4 - default: - // The leading octet is invalid. - return yaml_parser_set_reader_error(parser, - "invalid leading UTF-8 octet", - parser.offset, int(octet)) - } - - // Check if the raw buffer contains an incomplete character. - if width > raw_unread { - if parser.eof { - return yaml_parser_set_reader_error(parser, - "incomplete UTF-8 octet sequence", - parser.offset, -1) - } - break inner - } - - // Decode the leading octet. - switch { - case octet&0x80 == 0x00: - value = rune(octet & 0x7F) - case octet&0xE0 == 0xC0: - value = rune(octet & 0x1F) - case octet&0xF0 == 0xE0: - value = rune(octet & 0x0F) - case octet&0xF8 == 0xF0: - value = rune(octet & 0x07) - default: - value = 0 - } - - // Check and decode the trailing octets. - for k := 1; k < width; k++ { - octet = parser.raw_buffer[parser.raw_buffer_pos+k] - - // Check if the octet is valid. - if (octet & 0xC0) != 0x80 { - return yaml_parser_set_reader_error(parser, - "invalid trailing UTF-8 octet", - parser.offset+k, int(octet)) - } - - // Decode the octet. - value = (value << 6) + rune(octet&0x3F) - } - - // Check the length of the sequence against the value. - switch { - case width == 1: - case width == 2 && value >= 0x80: - case width == 3 && value >= 0x800: - case width == 4 && value >= 0x10000: - default: - return yaml_parser_set_reader_error(parser, - "invalid length of a UTF-8 sequence", - parser.offset, -1) - } - - // Check the range of the value. - if value >= 0xD800 && value <= 0xDFFF || value > 0x10FFFF { - return yaml_parser_set_reader_error(parser, - "invalid Unicode character", - parser.offset, int(value)) - } - - case yaml_UTF16LE_ENCODING, yaml_UTF16BE_ENCODING: - var low, high int - if parser.encoding == yaml_UTF16LE_ENCODING { - low, high = 0, 1 - } else { - low, high = 1, 0 - } - - // The UTF-16 encoding is not as simple as one might - // naively think. Check RFC 2781 - // (http://www.ietf.org/rfc/rfc2781.txt). - // - // Normally, two subsequent bytes describe a Unicode - // character. However a special technique (called a - // surrogate pair) is used for specifying character - // values larger than 0xFFFF. - // - // A surrogate pair consists of two pseudo-characters: - // high surrogate area (0xD800-0xDBFF) - // low surrogate area (0xDC00-0xDFFF) - // - // The following formulas are used for decoding - // and encoding characters using surrogate pairs: - // - // U = U' + 0x10000 (0x01 00 00 <= U <= 0x10 FF FF) - // U' = yyyyyyyyyyxxxxxxxxxx (0 <= U' <= 0x0F FF FF) - // W1 = 110110yyyyyyyyyy - // W2 = 110111xxxxxxxxxx - // - // where U is the character value, W1 is the high surrogate - // area, W2 is the low surrogate area. - - // Check for incomplete UTF-16 character. - if raw_unread < 2 { - if parser.eof { - return yaml_parser_set_reader_error(parser, - "incomplete UTF-16 character", - parser.offset, -1) - } - break inner - } - - // Get the character. - value = rune(parser.raw_buffer[parser.raw_buffer_pos+low]) + - (rune(parser.raw_buffer[parser.raw_buffer_pos+high]) << 8) - - // Check for unexpected low surrogate area. - if value&0xFC00 == 0xDC00 { - return yaml_parser_set_reader_error(parser, - "unexpected low surrogate area", - parser.offset, int(value)) - } - - // Check for a high surrogate area. - if value&0xFC00 == 0xD800 { - width = 4 - - // Check for incomplete surrogate pair. - if raw_unread < 4 { - if parser.eof { - return yaml_parser_set_reader_error(parser, - "incomplete UTF-16 surrogate pair", - parser.offset, -1) - } - break inner - } - - // Get the next character. - value2 := rune(parser.raw_buffer[parser.raw_buffer_pos+low+2]) + - (rune(parser.raw_buffer[parser.raw_buffer_pos+high+2]) << 8) - - // Check for a low surrogate area. - if value2&0xFC00 != 0xDC00 { - return yaml_parser_set_reader_error(parser, - "expected low surrogate area", - parser.offset+2, int(value2)) - } - - // Generate the value of the surrogate pair. - value = 0x10000 + ((value & 0x3FF) << 10) + (value2 & 0x3FF) - } else { - width = 2 - } - - default: - panic("impossible") - } - - // Check if the character is in the allowed range: - // #x9 | #xA | #xD | [#x20-#x7E] (8 bit) - // | #x85 | [#xA0-#xD7FF] | [#xE000-#xFFFD] (16 bit) - // | [#x10000-#x10FFFF] (32 bit) - switch { - case value == 0x09: - case value == 0x0A: - case value == 0x0D: - case value >= 0x20 && value <= 0x7E: - case value == 0x85: - case value >= 0xA0 && value <= 0xD7FF: - case value >= 0xE000 && value <= 0xFFFD: - case value >= 0x10000 && value <= 0x10FFFF: - default: - return yaml_parser_set_reader_error(parser, - "control characters are not allowed", - parser.offset, int(value)) - } - - // Move the raw pointers. - parser.raw_buffer_pos += width - parser.offset += width - - // Finally put the character into the buffer. - if value <= 0x7F { - // 0000 0000-0000 007F . 0xxxxxxx - parser.buffer[buffer_len+0] = byte(value) - buffer_len += 1 - } else if value <= 0x7FF { - // 0000 0080-0000 07FF . 110xxxxx 10xxxxxx - parser.buffer[buffer_len+0] = byte(0xC0 + (value >> 6)) - parser.buffer[buffer_len+1] = byte(0x80 + (value & 0x3F)) - buffer_len += 2 - } else if value <= 0xFFFF { - // 0000 0800-0000 FFFF . 1110xxxx 10xxxxxx 10xxxxxx - parser.buffer[buffer_len+0] = byte(0xE0 + (value >> 12)) - parser.buffer[buffer_len+1] = byte(0x80 + ((value >> 6) & 0x3F)) - parser.buffer[buffer_len+2] = byte(0x80 + (value & 0x3F)) - buffer_len += 3 - } else { - // 0001 0000-0010 FFFF . 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx - parser.buffer[buffer_len+0] = byte(0xF0 + (value >> 18)) - parser.buffer[buffer_len+1] = byte(0x80 + ((value >> 12) & 0x3F)) - parser.buffer[buffer_len+2] = byte(0x80 + ((value >> 6) & 0x3F)) - parser.buffer[buffer_len+3] = byte(0x80 + (value & 0x3F)) - buffer_len += 4 - } - - parser.unread++ - } - - // On EOF, put NUL into the buffer and return. - if parser.eof { - parser.buffer[buffer_len] = 0 - buffer_len++ - parser.unread++ - break - } - } - parser.buffer = parser.buffer[:buffer_len] - return true -} diff --git a/vendor/gopkg.in/yaml.v2/resolve.go b/vendor/gopkg.in/yaml.v2/resolve.go deleted file mode 100644 index 232313c..0000000 --- a/vendor/gopkg.in/yaml.v2/resolve.go +++ /dev/null @@ -1,208 +0,0 @@ -package yaml - -import ( - "encoding/base64" - "math" - "regexp" - "strconv" - "strings" - "unicode/utf8" -) - -type resolveMapItem struct { - value interface{} - tag string -} - -var resolveTable = make([]byte, 256) -var resolveMap = make(map[string]resolveMapItem) - -func init() { - t := resolveTable - t[int('+')] = 'S' // Sign - t[int('-')] = 'S' - for _, c := range "0123456789" { - t[int(c)] = 'D' // Digit - } - for _, c := range "yYnNtTfFoO~" { - t[int(c)] = 'M' // In map - } - t[int('.')] = '.' // Float (potentially in map) - - var resolveMapList = []struct { - v interface{} - tag string - l []string - }{ - {true, yaml_BOOL_TAG, []string{"y", "Y", "yes", "Yes", "YES"}}, - {true, yaml_BOOL_TAG, []string{"true", "True", "TRUE"}}, - {true, yaml_BOOL_TAG, []string{"on", "On", "ON"}}, - {false, yaml_BOOL_TAG, []string{"n", "N", "no", "No", "NO"}}, - {false, yaml_BOOL_TAG, []string{"false", "False", "FALSE"}}, - {false, yaml_BOOL_TAG, []string{"off", "Off", "OFF"}}, - {nil, yaml_NULL_TAG, []string{"", "~", "null", "Null", "NULL"}}, - {math.NaN(), yaml_FLOAT_TAG, []string{".nan", ".NaN", ".NAN"}}, - {math.Inf(+1), yaml_FLOAT_TAG, []string{".inf", ".Inf", ".INF"}}, - {math.Inf(+1), yaml_FLOAT_TAG, []string{"+.inf", "+.Inf", "+.INF"}}, - {math.Inf(-1), yaml_FLOAT_TAG, []string{"-.inf", "-.Inf", "-.INF"}}, - {"<<", yaml_MERGE_TAG, []string{"<<"}}, - } - - m := resolveMap - for _, item := range resolveMapList { - for _, s := range item.l { - m[s] = resolveMapItem{item.v, item.tag} - } - } -} - -const longTagPrefix = "tag:yaml.org,2002:" - -func shortTag(tag string) string { - // TODO This can easily be made faster and produce less garbage. - if strings.HasPrefix(tag, longTagPrefix) { - return "!!" + tag[len(longTagPrefix):] - } - return tag -} - -func longTag(tag string) string { - if strings.HasPrefix(tag, "!!") { - return longTagPrefix + tag[2:] - } - return tag -} - -func resolvableTag(tag string) bool { - switch tag { - case "", yaml_STR_TAG, yaml_BOOL_TAG, yaml_INT_TAG, yaml_FLOAT_TAG, yaml_NULL_TAG: - return true - } - return false -} - -var yamlStyleFloat = regexp.MustCompile(`^[-+]?[0-9]*\.?[0-9]+([eE][-+][0-9]+)?$`) - -func resolve(tag string, in string) (rtag string, out interface{}) { - if !resolvableTag(tag) { - return tag, in - } - - defer func() { - switch tag { - case "", rtag, yaml_STR_TAG, yaml_BINARY_TAG: - return - } - failf("cannot decode %s `%s` as a %s", shortTag(rtag), in, shortTag(tag)) - }() - - // Any data is accepted as a !!str or !!binary. - // Otherwise, the prefix is enough of a hint about what it might be. - hint := byte('N') - if in != "" { - hint = resolveTable[in[0]] - } - if hint != 0 && tag != yaml_STR_TAG && tag != yaml_BINARY_TAG { - // Handle things we can lookup in a map. - if item, ok := resolveMap[in]; ok { - return item.tag, item.value - } - - // Base 60 floats are a bad idea, were dropped in YAML 1.2, and - // are purposefully unsupported here. They're still quoted on - // the way out for compatibility with other parser, though. - - switch hint { - case 'M': - // We've already checked the map above. - - case '.': - // Not in the map, so maybe a normal float. - floatv, err := strconv.ParseFloat(in, 64) - if err == nil { - return yaml_FLOAT_TAG, floatv - } - - case 'D', 'S': - // Int, float, or timestamp. - plain := strings.Replace(in, "_", "", -1) - intv, err := strconv.ParseInt(plain, 0, 64) - if err == nil { - if intv == int64(int(intv)) { - return yaml_INT_TAG, int(intv) - } else { - return yaml_INT_TAG, intv - } - } - uintv, err := strconv.ParseUint(plain, 0, 64) - if err == nil { - return yaml_INT_TAG, uintv - } - if yamlStyleFloat.MatchString(plain) { - floatv, err := strconv.ParseFloat(plain, 64) - if err == nil { - return yaml_FLOAT_TAG, floatv - } - } - if strings.HasPrefix(plain, "0b") { - intv, err := strconv.ParseInt(plain[2:], 2, 64) - if err == nil { - if intv == int64(int(intv)) { - return yaml_INT_TAG, int(intv) - } else { - return yaml_INT_TAG, intv - } - } - uintv, err := strconv.ParseUint(plain[2:], 2, 64) - if err == nil { - return yaml_INT_TAG, uintv - } - } else if strings.HasPrefix(plain, "-0b") { - intv, err := strconv.ParseInt(plain[3:], 2, 64) - if err == nil { - if intv == int64(int(intv)) { - return yaml_INT_TAG, -int(intv) - } else { - return yaml_INT_TAG, -intv - } - } - } - // XXX Handle timestamps here. - - default: - panic("resolveTable item not yet handled: " + string(rune(hint)) + " (with " + in + ")") - } - } - if tag == yaml_BINARY_TAG { - return yaml_BINARY_TAG, in - } - if utf8.ValidString(in) { - return yaml_STR_TAG, in - } - return yaml_BINARY_TAG, encodeBase64(in) -} - -// encodeBase64 encodes s as base64 that is broken up into multiple lines -// as appropriate for the resulting length. -func encodeBase64(s string) string { - const lineLen = 70 - encLen := base64.StdEncoding.EncodedLen(len(s)) - lines := encLen/lineLen + 1 - buf := make([]byte, encLen*2+lines) - in := buf[0:encLen] - out := buf[encLen:] - base64.StdEncoding.Encode(in, []byte(s)) - k := 0 - for i := 0; i < len(in); i += lineLen { - j := i + lineLen - if j > len(in) { - j = len(in) - } - k += copy(out[k:], in[i:j]) - if lines > 1 { - out[k] = '\n' - k++ - } - } - return string(out[:k]) -} diff --git a/vendor/gopkg.in/yaml.v2/scannerc.go b/vendor/gopkg.in/yaml.v2/scannerc.go deleted file mode 100644 index 0744844..0000000 --- a/vendor/gopkg.in/yaml.v2/scannerc.go +++ /dev/null @@ -1,2711 +0,0 @@ -package yaml - -import ( - "bytes" - "fmt" -) - -// Introduction -// ************ -// -// The following notes assume that you are familiar with the YAML specification -// (http://yaml.org/spec/1.2/spec.html). We mostly follow it, although in -// some cases we are less restrictive that it requires. -// -// The process of transforming a YAML stream into a sequence of events is -// divided on two steps: Scanning and Parsing. -// -// The Scanner transforms the input stream into a sequence of tokens, while the -// parser transform the sequence of tokens produced by the Scanner into a -// sequence of parsing events. -// -// The Scanner is rather clever and complicated. The Parser, on the contrary, -// is a straightforward implementation of a recursive-descendant parser (or, -// LL(1) parser, as it is usually called). -// -// Actually there are two issues of Scanning that might be called "clever", the -// rest is quite straightforward. The issues are "block collection start" and -// "simple keys". Both issues are explained below in details. -// -// Here the Scanning step is explained and implemented. We start with the list -// of all the tokens produced by the Scanner together with short descriptions. -// -// Now, tokens: -// -// STREAM-START(encoding) # The stream start. -// STREAM-END # The stream end. -// VERSION-DIRECTIVE(major,minor) # The '%YAML' directive. -// TAG-DIRECTIVE(handle,prefix) # The '%TAG' directive. -// DOCUMENT-START # '---' -// DOCUMENT-END # '...' -// BLOCK-SEQUENCE-START # Indentation increase denoting a block -// BLOCK-MAPPING-START # sequence or a block mapping. -// BLOCK-END # Indentation decrease. -// FLOW-SEQUENCE-START # '[' -// FLOW-SEQUENCE-END # ']' -// BLOCK-SEQUENCE-START # '{' -// BLOCK-SEQUENCE-END # '}' -// BLOCK-ENTRY # '-' -// FLOW-ENTRY # ',' -// KEY # '?' or nothing (simple keys). -// VALUE # ':' -// ALIAS(anchor) # '*anchor' -// ANCHOR(anchor) # '&anchor' -// TAG(handle,suffix) # '!handle!suffix' -// SCALAR(value,style) # A scalar. -// -// The following two tokens are "virtual" tokens denoting the beginning and the -// end of the stream: -// -// STREAM-START(encoding) -// STREAM-END -// -// We pass the information about the input stream encoding with the -// STREAM-START token. -// -// The next two tokens are responsible for tags: -// -// VERSION-DIRECTIVE(major,minor) -// TAG-DIRECTIVE(handle,prefix) -// -// Example: -// -// %YAML 1.1 -// %TAG ! !foo -// %TAG !yaml! tag:yaml.org,2002: -// --- -// -// The correspoding sequence of tokens: -// -// STREAM-START(utf-8) -// VERSION-DIRECTIVE(1,1) -// TAG-DIRECTIVE("!","!foo") -// TAG-DIRECTIVE("!yaml","tag:yaml.org,2002:") -// DOCUMENT-START -// STREAM-END -// -// Note that the VERSION-DIRECTIVE and TAG-DIRECTIVE tokens occupy a whole -// line. -// -// The document start and end indicators are represented by: -// -// DOCUMENT-START -// DOCUMENT-END -// -// Note that if a YAML stream contains an implicit document (without '---' -// and '...' indicators), no DOCUMENT-START and DOCUMENT-END tokens will be -// produced. -// -// In the following examples, we present whole documents together with the -// produced tokens. -// -// 1. An implicit document: -// -// 'a scalar' -// -// Tokens: -// -// STREAM-START(utf-8) -// SCALAR("a scalar",single-quoted) -// STREAM-END -// -// 2. An explicit document: -// -// --- -// 'a scalar' -// ... -// -// Tokens: -// -// STREAM-START(utf-8) -// DOCUMENT-START -// SCALAR("a scalar",single-quoted) -// DOCUMENT-END -// STREAM-END -// -// 3. Several documents in a stream: -// -// 'a scalar' -// --- -// 'another scalar' -// --- -// 'yet another scalar' -// -// Tokens: -// -// STREAM-START(utf-8) -// SCALAR("a scalar",single-quoted) -// DOCUMENT-START -// SCALAR("another scalar",single-quoted) -// DOCUMENT-START -// SCALAR("yet another scalar",single-quoted) -// STREAM-END -// -// We have already introduced the SCALAR token above. The following tokens are -// used to describe aliases, anchors, tag, and scalars: -// -// ALIAS(anchor) -// ANCHOR(anchor) -// TAG(handle,suffix) -// SCALAR(value,style) -// -// The following series of examples illustrate the usage of these tokens: -// -// 1. A recursive sequence: -// -// &A [ *A ] -// -// Tokens: -// -// STREAM-START(utf-8) -// ANCHOR("A") -// FLOW-SEQUENCE-START -// ALIAS("A") -// FLOW-SEQUENCE-END -// STREAM-END -// -// 2. A tagged scalar: -// -// !!float "3.14" # A good approximation. -// -// Tokens: -// -// STREAM-START(utf-8) -// TAG("!!","float") -// SCALAR("3.14",double-quoted) -// STREAM-END -// -// 3. Various scalar styles: -// -// --- # Implicit empty plain scalars do not produce tokens. -// --- a plain scalar -// --- 'a single-quoted scalar' -// --- "a double-quoted scalar" -// --- |- -// a literal scalar -// --- >- -// a folded -// scalar -// -// Tokens: -// -// STREAM-START(utf-8) -// DOCUMENT-START -// DOCUMENT-START -// SCALAR("a plain scalar",plain) -// DOCUMENT-START -// SCALAR("a single-quoted scalar",single-quoted) -// DOCUMENT-START -// SCALAR("a double-quoted scalar",double-quoted) -// DOCUMENT-START -// SCALAR("a literal scalar",literal) -// DOCUMENT-START -// SCALAR("a folded scalar",folded) -// STREAM-END -// -// Now it's time to review collection-related tokens. We will start with -// flow collections: -// -// FLOW-SEQUENCE-START -// FLOW-SEQUENCE-END -// FLOW-MAPPING-START -// FLOW-MAPPING-END -// FLOW-ENTRY -// KEY -// VALUE -// -// The tokens FLOW-SEQUENCE-START, FLOW-SEQUENCE-END, FLOW-MAPPING-START, and -// FLOW-MAPPING-END represent the indicators '[', ']', '{', and '}' -// correspondingly. FLOW-ENTRY represent the ',' indicator. Finally the -// indicators '?' and ':', which are used for denoting mapping keys and values, -// are represented by the KEY and VALUE tokens. -// -// The following examples show flow collections: -// -// 1. A flow sequence: -// -// [item 1, item 2, item 3] -// -// Tokens: -// -// STREAM-START(utf-8) -// FLOW-SEQUENCE-START -// SCALAR("item 1",plain) -// FLOW-ENTRY -// SCALAR("item 2",plain) -// FLOW-ENTRY -// SCALAR("item 3",plain) -// FLOW-SEQUENCE-END -// STREAM-END -// -// 2. A flow mapping: -// -// { -// a simple key: a value, # Note that the KEY token is produced. -// ? a complex key: another value, -// } -// -// Tokens: -// -// STREAM-START(utf-8) -// FLOW-MAPPING-START -// KEY -// SCALAR("a simple key",plain) -// VALUE -// SCALAR("a value",plain) -// FLOW-ENTRY -// KEY -// SCALAR("a complex key",plain) -// VALUE -// SCALAR("another value",plain) -// FLOW-ENTRY -// FLOW-MAPPING-END -// STREAM-END -// -// A simple key is a key which is not denoted by the '?' indicator. Note that -// the Scanner still produce the KEY token whenever it encounters a simple key. -// -// For scanning block collections, the following tokens are used (note that we -// repeat KEY and VALUE here): -// -// BLOCK-SEQUENCE-START -// BLOCK-MAPPING-START -// BLOCK-END -// BLOCK-ENTRY -// KEY -// VALUE -// -// The tokens BLOCK-SEQUENCE-START and BLOCK-MAPPING-START denote indentation -// increase that precedes a block collection (cf. the INDENT token in Python). -// The token BLOCK-END denote indentation decrease that ends a block collection -// (cf. the DEDENT token in Python). However YAML has some syntax pecularities -// that makes detections of these tokens more complex. -// -// The tokens BLOCK-ENTRY, KEY, and VALUE are used to represent the indicators -// '-', '?', and ':' correspondingly. -// -// The following examples show how the tokens BLOCK-SEQUENCE-START, -// BLOCK-MAPPING-START, and BLOCK-END are emitted by the Scanner: -// -// 1. Block sequences: -// -// - item 1 -// - item 2 -// - -// - item 3.1 -// - item 3.2 -// - -// key 1: value 1 -// key 2: value 2 -// -// Tokens: -// -// STREAM-START(utf-8) -// BLOCK-SEQUENCE-START -// BLOCK-ENTRY -// SCALAR("item 1",plain) -// BLOCK-ENTRY -// SCALAR("item 2",plain) -// BLOCK-ENTRY -// BLOCK-SEQUENCE-START -// BLOCK-ENTRY -// SCALAR("item 3.1",plain) -// BLOCK-ENTRY -// SCALAR("item 3.2",plain) -// BLOCK-END -// BLOCK-ENTRY -// BLOCK-MAPPING-START -// KEY -// SCALAR("key 1",plain) -// VALUE -// SCALAR("value 1",plain) -// KEY -// SCALAR("key 2",plain) -// VALUE -// SCALAR("value 2",plain) -// BLOCK-END -// BLOCK-END -// STREAM-END -// -// 2. Block mappings: -// -// a simple key: a value # The KEY token is produced here. -// ? a complex key -// : another value -// a mapping: -// key 1: value 1 -// key 2: value 2 -// a sequence: -// - item 1 -// - item 2 -// -// Tokens: -// -// STREAM-START(utf-8) -// BLOCK-MAPPING-START -// KEY -// SCALAR("a simple key",plain) -// VALUE -// SCALAR("a value",plain) -// KEY -// SCALAR("a complex key",plain) -// VALUE -// SCALAR("another value",plain) -// KEY -// SCALAR("a mapping",plain) -// BLOCK-MAPPING-START -// KEY -// SCALAR("key 1",plain) -// VALUE -// SCALAR("value 1",plain) -// KEY -// SCALAR("key 2",plain) -// VALUE -// SCALAR("value 2",plain) -// BLOCK-END -// KEY -// SCALAR("a sequence",plain) -// VALUE -// BLOCK-SEQUENCE-START -// BLOCK-ENTRY -// SCALAR("item 1",plain) -// BLOCK-ENTRY -// SCALAR("item 2",plain) -// BLOCK-END -// BLOCK-END -// STREAM-END -// -// YAML does not always require to start a new block collection from a new -// line. If the current line contains only '-', '?', and ':' indicators, a new -// block collection may start at the current line. The following examples -// illustrate this case: -// -// 1. Collections in a sequence: -// -// - - item 1 -// - item 2 -// - key 1: value 1 -// key 2: value 2 -// - ? complex key -// : complex value -// -// Tokens: -// -// STREAM-START(utf-8) -// BLOCK-SEQUENCE-START -// BLOCK-ENTRY -// BLOCK-SEQUENCE-START -// BLOCK-ENTRY -// SCALAR("item 1",plain) -// BLOCK-ENTRY -// SCALAR("item 2",plain) -// BLOCK-END -// BLOCK-ENTRY -// BLOCK-MAPPING-START -// KEY -// SCALAR("key 1",plain) -// VALUE -// SCALAR("value 1",plain) -// KEY -// SCALAR("key 2",plain) -// VALUE -// SCALAR("value 2",plain) -// BLOCK-END -// BLOCK-ENTRY -// BLOCK-MAPPING-START -// KEY -// SCALAR("complex key") -// VALUE -// SCALAR("complex value") -// BLOCK-END -// BLOCK-END -// STREAM-END -// -// 2. Collections in a mapping: -// -// ? a sequence -// : - item 1 -// - item 2 -// ? a mapping -// : key 1: value 1 -// key 2: value 2 -// -// Tokens: -// -// STREAM-START(utf-8) -// BLOCK-MAPPING-START -// KEY -// SCALAR("a sequence",plain) -// VALUE -// BLOCK-SEQUENCE-START -// BLOCK-ENTRY -// SCALAR("item 1",plain) -// BLOCK-ENTRY -// SCALAR("item 2",plain) -// BLOCK-END -// KEY -// SCALAR("a mapping",plain) -// VALUE -// BLOCK-MAPPING-START -// KEY -// SCALAR("key 1",plain) -// VALUE -// SCALAR("value 1",plain) -// KEY -// SCALAR("key 2",plain) -// VALUE -// SCALAR("value 2",plain) -// BLOCK-END -// BLOCK-END -// STREAM-END -// -// YAML also permits non-indented sequences if they are included into a block -// mapping. In this case, the token BLOCK-SEQUENCE-START is not produced: -// -// key: -// - item 1 # BLOCK-SEQUENCE-START is NOT produced here. -// - item 2 -// -// Tokens: -// -// STREAM-START(utf-8) -// BLOCK-MAPPING-START -// KEY -// SCALAR("key",plain) -// VALUE -// BLOCK-ENTRY -// SCALAR("item 1",plain) -// BLOCK-ENTRY -// SCALAR("item 2",plain) -// BLOCK-END -// - -// Ensure that the buffer contains the required number of characters. -// Return true on success, false on failure (reader error or memory error). -func cache(parser *yaml_parser_t, length int) bool { - // [Go] This was inlined: !cache(A, B) -> unread < B && !update(A, B) - return parser.unread >= length || yaml_parser_update_buffer(parser, length) -} - -// Advance the buffer pointer. -func skip(parser *yaml_parser_t) { - parser.mark.index++ - parser.mark.column++ - parser.unread-- - parser.buffer_pos += width(parser.buffer[parser.buffer_pos]) -} - -func skip_line(parser *yaml_parser_t) { - if is_crlf(parser.buffer, parser.buffer_pos) { - parser.mark.index += 2 - parser.mark.column = 0 - parser.mark.line++ - parser.unread -= 2 - parser.buffer_pos += 2 - } else if is_break(parser.buffer, parser.buffer_pos) { - parser.mark.index++ - parser.mark.column = 0 - parser.mark.line++ - parser.unread-- - parser.buffer_pos += width(parser.buffer[parser.buffer_pos]) - } -} - -// Copy a character to a string buffer and advance pointers. -func read(parser *yaml_parser_t, s []byte) []byte { - w := width(parser.buffer[parser.buffer_pos]) - if w == 0 { - panic("invalid character sequence") - } - if len(s) == 0 { - s = make([]byte, 0, 32) - } - if w == 1 && len(s)+w <= cap(s) { - s = s[:len(s)+1] - s[len(s)-1] = parser.buffer[parser.buffer_pos] - parser.buffer_pos++ - } else { - s = append(s, parser.buffer[parser.buffer_pos:parser.buffer_pos+w]...) - parser.buffer_pos += w - } - parser.mark.index++ - parser.mark.column++ - parser.unread-- - return s -} - -// Copy a line break character to a string buffer and advance pointers. -func read_line(parser *yaml_parser_t, s []byte) []byte { - buf := parser.buffer - pos := parser.buffer_pos - switch { - case buf[pos] == '\r' && buf[pos+1] == '\n': - // CR LF . LF - s = append(s, '\n') - parser.buffer_pos += 2 - parser.mark.index++ - parser.unread-- - case buf[pos] == '\r' || buf[pos] == '\n': - // CR|LF . LF - s = append(s, '\n') - parser.buffer_pos += 1 - case buf[pos] == '\xC2' && buf[pos+1] == '\x85': - // NEL . LF - s = append(s, '\n') - parser.buffer_pos += 2 - case buf[pos] == '\xE2' && buf[pos+1] == '\x80' && (buf[pos+2] == '\xA8' || buf[pos+2] == '\xA9'): - // LS|PS . LS|PS - s = append(s, buf[parser.buffer_pos:pos+3]...) - parser.buffer_pos += 3 - default: - return s - } - parser.mark.index++ - parser.mark.column = 0 - parser.mark.line++ - parser.unread-- - return s -} - -// Get the next token. -func yaml_parser_scan(parser *yaml_parser_t, token *yaml_token_t) bool { - // Erase the token object. - *token = yaml_token_t{} // [Go] Is this necessary? - - // No tokens after STREAM-END or error. - if parser.stream_end_produced || parser.error != yaml_NO_ERROR { - return true - } - - // Ensure that the tokens queue contains enough tokens. - if !parser.token_available { - if !yaml_parser_fetch_more_tokens(parser) { - return false - } - } - - // Fetch the next token from the queue. - *token = parser.tokens[parser.tokens_head] - parser.tokens_head++ - parser.tokens_parsed++ - parser.token_available = false - - if token.typ == yaml_STREAM_END_TOKEN { - parser.stream_end_produced = true - } - return true -} - -// Set the scanner error and return false. -func yaml_parser_set_scanner_error(parser *yaml_parser_t, context string, context_mark yaml_mark_t, problem string) bool { - parser.error = yaml_SCANNER_ERROR - parser.context = context - parser.context_mark = context_mark - parser.problem = problem - parser.problem_mark = parser.mark - return false -} - -func yaml_parser_set_scanner_tag_error(parser *yaml_parser_t, directive bool, context_mark yaml_mark_t, problem string) bool { - context := "while parsing a tag" - if directive { - context = "while parsing a %TAG directive" - } - return yaml_parser_set_scanner_error(parser, context, context_mark, problem) -} - -func trace(args ...interface{}) func() { - pargs := append([]interface{}{"+++"}, args...) - fmt.Println(pargs...) - pargs = append([]interface{}{"---"}, args...) - return func() { fmt.Println(pargs...) } -} - -// Ensure that the tokens queue contains at least one token which can be -// returned to the Parser. -func yaml_parser_fetch_more_tokens(parser *yaml_parser_t) bool { - // While we need more tokens to fetch, do it. - for { - // Check if we really need to fetch more tokens. - need_more_tokens := false - - if parser.tokens_head == len(parser.tokens) { - // Queue is empty. - need_more_tokens = true - } else { - // Check if any potential simple key may occupy the head position. - if !yaml_parser_stale_simple_keys(parser) { - return false - } - - for i := range parser.simple_keys { - simple_key := &parser.simple_keys[i] - if simple_key.possible && simple_key.token_number == parser.tokens_parsed { - need_more_tokens = true - break - } - } - } - - // We are finished. - if !need_more_tokens { - break - } - // Fetch the next token. - if !yaml_parser_fetch_next_token(parser) { - return false - } - } - - parser.token_available = true - return true -} - -// The dispatcher for token fetchers. -func yaml_parser_fetch_next_token(parser *yaml_parser_t) bool { - // Ensure that the buffer is initialized. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - // Check if we just started scanning. Fetch STREAM-START then. - if !parser.stream_start_produced { - return yaml_parser_fetch_stream_start(parser) - } - - // Eat whitespaces and comments until we reach the next token. - if !yaml_parser_scan_to_next_token(parser) { - return false - } - - // Remove obsolete potential simple keys. - if !yaml_parser_stale_simple_keys(parser) { - return false - } - - // Check the indentation level against the current column. - if !yaml_parser_unroll_indent(parser, parser.mark.column) { - return false - } - - // Ensure that the buffer contains at least 4 characters. 4 is the length - // of the longest indicators ('--- ' and '... '). - if parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) { - return false - } - - // Is it the end of the stream? - if is_z(parser.buffer, parser.buffer_pos) { - return yaml_parser_fetch_stream_end(parser) - } - - // Is it a directive? - if parser.mark.column == 0 && parser.buffer[parser.buffer_pos] == '%' { - return yaml_parser_fetch_directive(parser) - } - - buf := parser.buffer - pos := parser.buffer_pos - - // Is it the document start indicator? - if parser.mark.column == 0 && buf[pos] == '-' && buf[pos+1] == '-' && buf[pos+2] == '-' && is_blankz(buf, pos+3) { - return yaml_parser_fetch_document_indicator(parser, yaml_DOCUMENT_START_TOKEN) - } - - // Is it the document end indicator? - if parser.mark.column == 0 && buf[pos] == '.' && buf[pos+1] == '.' && buf[pos+2] == '.' && is_blankz(buf, pos+3) { - return yaml_parser_fetch_document_indicator(parser, yaml_DOCUMENT_END_TOKEN) - } - - // Is it the flow sequence start indicator? - if buf[pos] == '[' { - return yaml_parser_fetch_flow_collection_start(parser, yaml_FLOW_SEQUENCE_START_TOKEN) - } - - // Is it the flow mapping start indicator? - if parser.buffer[parser.buffer_pos] == '{' { - return yaml_parser_fetch_flow_collection_start(parser, yaml_FLOW_MAPPING_START_TOKEN) - } - - // Is it the flow sequence end indicator? - if parser.buffer[parser.buffer_pos] == ']' { - return yaml_parser_fetch_flow_collection_end(parser, - yaml_FLOW_SEQUENCE_END_TOKEN) - } - - // Is it the flow mapping end indicator? - if parser.buffer[parser.buffer_pos] == '}' { - return yaml_parser_fetch_flow_collection_end(parser, - yaml_FLOW_MAPPING_END_TOKEN) - } - - // Is it the flow entry indicator? - if parser.buffer[parser.buffer_pos] == ',' { - return yaml_parser_fetch_flow_entry(parser) - } - - // Is it the block entry indicator? - if parser.buffer[parser.buffer_pos] == '-' && is_blankz(parser.buffer, parser.buffer_pos+1) { - return yaml_parser_fetch_block_entry(parser) - } - - // Is it the key indicator? - if parser.buffer[parser.buffer_pos] == '?' && (parser.flow_level > 0 || is_blankz(parser.buffer, parser.buffer_pos+1)) { - return yaml_parser_fetch_key(parser) - } - - // Is it the value indicator? - if parser.buffer[parser.buffer_pos] == ':' && (parser.flow_level > 0 || is_blankz(parser.buffer, parser.buffer_pos+1)) { - return yaml_parser_fetch_value(parser) - } - - // Is it an alias? - if parser.buffer[parser.buffer_pos] == '*' { - return yaml_parser_fetch_anchor(parser, yaml_ALIAS_TOKEN) - } - - // Is it an anchor? - if parser.buffer[parser.buffer_pos] == '&' { - return yaml_parser_fetch_anchor(parser, yaml_ANCHOR_TOKEN) - } - - // Is it a tag? - if parser.buffer[parser.buffer_pos] == '!' { - return yaml_parser_fetch_tag(parser) - } - - // Is it a literal scalar? - if parser.buffer[parser.buffer_pos] == '|' && parser.flow_level == 0 { - return yaml_parser_fetch_block_scalar(parser, true) - } - - // Is it a folded scalar? - if parser.buffer[parser.buffer_pos] == '>' && parser.flow_level == 0 { - return yaml_parser_fetch_block_scalar(parser, false) - } - - // Is it a single-quoted scalar? - if parser.buffer[parser.buffer_pos] == '\'' { - return yaml_parser_fetch_flow_scalar(parser, true) - } - - // Is it a double-quoted scalar? - if parser.buffer[parser.buffer_pos] == '"' { - return yaml_parser_fetch_flow_scalar(parser, false) - } - - // Is it a plain scalar? - // - // A plain scalar may start with any non-blank characters except - // - // '-', '?', ':', ',', '[', ']', '{', '}', - // '#', '&', '*', '!', '|', '>', '\'', '\"', - // '%', '@', '`'. - // - // In the block context (and, for the '-' indicator, in the flow context - // too), it may also start with the characters - // - // '-', '?', ':' - // - // if it is followed by a non-space character. - // - // The last rule is more restrictive than the specification requires. - // [Go] Make this logic more reasonable. - //switch parser.buffer[parser.buffer_pos] { - //case '-', '?', ':', ',', '?', '-', ',', ':', ']', '[', '}', '{', '&', '#', '!', '*', '>', '|', '"', '\'', '@', '%', '-', '`': - //} - if !(is_blankz(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == '-' || - parser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == ':' || - parser.buffer[parser.buffer_pos] == ',' || parser.buffer[parser.buffer_pos] == '[' || - parser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '{' || - parser.buffer[parser.buffer_pos] == '}' || parser.buffer[parser.buffer_pos] == '#' || - parser.buffer[parser.buffer_pos] == '&' || parser.buffer[parser.buffer_pos] == '*' || - parser.buffer[parser.buffer_pos] == '!' || parser.buffer[parser.buffer_pos] == '|' || - parser.buffer[parser.buffer_pos] == '>' || parser.buffer[parser.buffer_pos] == '\'' || - parser.buffer[parser.buffer_pos] == '"' || parser.buffer[parser.buffer_pos] == '%' || - parser.buffer[parser.buffer_pos] == '@' || parser.buffer[parser.buffer_pos] == '`') || - (parser.buffer[parser.buffer_pos] == '-' && !is_blank(parser.buffer, parser.buffer_pos+1)) || - (parser.flow_level == 0 && - (parser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == ':') && - !is_blankz(parser.buffer, parser.buffer_pos+1)) { - return yaml_parser_fetch_plain_scalar(parser) - } - - // If we don't determine the token type so far, it is an error. - return yaml_parser_set_scanner_error(parser, - "while scanning for the next token", parser.mark, - "found character that cannot start any token") -} - -// Check the list of potential simple keys and remove the positions that -// cannot contain simple keys anymore. -func yaml_parser_stale_simple_keys(parser *yaml_parser_t) bool { - // Check for a potential simple key for each flow level. - for i := range parser.simple_keys { - simple_key := &parser.simple_keys[i] - - // The specification requires that a simple key - // - // - is limited to a single line, - // - is shorter than 1024 characters. - if simple_key.possible && (simple_key.mark.line < parser.mark.line || simple_key.mark.index+1024 < parser.mark.index) { - - // Check if the potential simple key to be removed is required. - if simple_key.required { - return yaml_parser_set_scanner_error(parser, - "while scanning a simple key", simple_key.mark, - "could not find expected ':'") - } - simple_key.possible = false - } - } - return true -} - -// Check if a simple key may start at the current position and add it if -// needed. -func yaml_parser_save_simple_key(parser *yaml_parser_t) bool { - // A simple key is required at the current position if the scanner is in - // the block context and the current column coincides with the indentation - // level. - - required := parser.flow_level == 0 && parser.indent == parser.mark.column - - // A simple key is required only when it is the first token in the current - // line. Therefore it is always allowed. But we add a check anyway. - if required && !parser.simple_key_allowed { - panic("should not happen") - } - - // - // If the current position may start a simple key, save it. - // - if parser.simple_key_allowed { - simple_key := yaml_simple_key_t{ - possible: true, - required: required, - token_number: parser.tokens_parsed + (len(parser.tokens) - parser.tokens_head), - } - simple_key.mark = parser.mark - - if !yaml_parser_remove_simple_key(parser) { - return false - } - parser.simple_keys[len(parser.simple_keys)-1] = simple_key - } - return true -} - -// Remove a potential simple key at the current flow level. -func yaml_parser_remove_simple_key(parser *yaml_parser_t) bool { - i := len(parser.simple_keys) - 1 - if parser.simple_keys[i].possible { - // If the key is required, it is an error. - if parser.simple_keys[i].required { - return yaml_parser_set_scanner_error(parser, - "while scanning a simple key", parser.simple_keys[i].mark, - "could not find expected ':'") - } - } - // Remove the key from the stack. - parser.simple_keys[i].possible = false - return true -} - -// Increase the flow level and resize the simple key list if needed. -func yaml_parser_increase_flow_level(parser *yaml_parser_t) bool { - // Reset the simple key on the next level. - parser.simple_keys = append(parser.simple_keys, yaml_simple_key_t{}) - - // Increase the flow level. - parser.flow_level++ - return true -} - -// Decrease the flow level. -func yaml_parser_decrease_flow_level(parser *yaml_parser_t) bool { - if parser.flow_level > 0 { - parser.flow_level-- - parser.simple_keys = parser.simple_keys[:len(parser.simple_keys)-1] - } - return true -} - -// Push the current indentation level to the stack and set the new level -// the current column is greater than the indentation level. In this case, -// append or insert the specified token into the token queue. -func yaml_parser_roll_indent(parser *yaml_parser_t, column, number int, typ yaml_token_type_t, mark yaml_mark_t) bool { - // In the flow context, do nothing. - if parser.flow_level > 0 { - return true - } - - if parser.indent < column { - // Push the current indentation level to the stack and set the new - // indentation level. - parser.indents = append(parser.indents, parser.indent) - parser.indent = column - - // Create a token and insert it into the queue. - token := yaml_token_t{ - typ: typ, - start_mark: mark, - end_mark: mark, - } - if number > -1 { - number -= parser.tokens_parsed - } - yaml_insert_token(parser, number, &token) - } - return true -} - -// Pop indentation levels from the indents stack until the current level -// becomes less or equal to the column. For each indentation level, append -// the BLOCK-END token. -func yaml_parser_unroll_indent(parser *yaml_parser_t, column int) bool { - // In the flow context, do nothing. - if parser.flow_level > 0 { - return true - } - - // Loop through the indentation levels in the stack. - for parser.indent > column { - // Create a token and append it to the queue. - token := yaml_token_t{ - typ: yaml_BLOCK_END_TOKEN, - start_mark: parser.mark, - end_mark: parser.mark, - } - yaml_insert_token(parser, -1, &token) - - // Pop the indentation level. - parser.indent = parser.indents[len(parser.indents)-1] - parser.indents = parser.indents[:len(parser.indents)-1] - } - return true -} - -// Initialize the scanner and produce the STREAM-START token. -func yaml_parser_fetch_stream_start(parser *yaml_parser_t) bool { - - // Set the initial indentation. - parser.indent = -1 - - // Initialize the simple key stack. - parser.simple_keys = append(parser.simple_keys, yaml_simple_key_t{}) - - // A simple key is allowed at the beginning of the stream. - parser.simple_key_allowed = true - - // We have started. - parser.stream_start_produced = true - - // Create the STREAM-START token and append it to the queue. - token := yaml_token_t{ - typ: yaml_STREAM_START_TOKEN, - start_mark: parser.mark, - end_mark: parser.mark, - encoding: parser.encoding, - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the STREAM-END token and shut down the scanner. -func yaml_parser_fetch_stream_end(parser *yaml_parser_t) bool { - - // Force new line. - if parser.mark.column != 0 { - parser.mark.column = 0 - parser.mark.line++ - } - - // Reset the indentation level. - if !yaml_parser_unroll_indent(parser, -1) { - return false - } - - // Reset simple keys. - if !yaml_parser_remove_simple_key(parser) { - return false - } - - parser.simple_key_allowed = false - - // Create the STREAM-END token and append it to the queue. - token := yaml_token_t{ - typ: yaml_STREAM_END_TOKEN, - start_mark: parser.mark, - end_mark: parser.mark, - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce a VERSION-DIRECTIVE or TAG-DIRECTIVE token. -func yaml_parser_fetch_directive(parser *yaml_parser_t) bool { - // Reset the indentation level. - if !yaml_parser_unroll_indent(parser, -1) { - return false - } - - // Reset simple keys. - if !yaml_parser_remove_simple_key(parser) { - return false - } - - parser.simple_key_allowed = false - - // Create the YAML-DIRECTIVE or TAG-DIRECTIVE token. - token := yaml_token_t{} - if !yaml_parser_scan_directive(parser, &token) { - return false - } - // Append the token to the queue. - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the DOCUMENT-START or DOCUMENT-END token. -func yaml_parser_fetch_document_indicator(parser *yaml_parser_t, typ yaml_token_type_t) bool { - // Reset the indentation level. - if !yaml_parser_unroll_indent(parser, -1) { - return false - } - - // Reset simple keys. - if !yaml_parser_remove_simple_key(parser) { - return false - } - - parser.simple_key_allowed = false - - // Consume the token. - start_mark := parser.mark - - skip(parser) - skip(parser) - skip(parser) - - end_mark := parser.mark - - // Create the DOCUMENT-START or DOCUMENT-END token. - token := yaml_token_t{ - typ: typ, - start_mark: start_mark, - end_mark: end_mark, - } - // Append the token to the queue. - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the FLOW-SEQUENCE-START or FLOW-MAPPING-START token. -func yaml_parser_fetch_flow_collection_start(parser *yaml_parser_t, typ yaml_token_type_t) bool { - // The indicators '[' and '{' may start a simple key. - if !yaml_parser_save_simple_key(parser) { - return false - } - - // Increase the flow level. - if !yaml_parser_increase_flow_level(parser) { - return false - } - - // A simple key may follow the indicators '[' and '{'. - parser.simple_key_allowed = true - - // Consume the token. - start_mark := parser.mark - skip(parser) - end_mark := parser.mark - - // Create the FLOW-SEQUENCE-START of FLOW-MAPPING-START token. - token := yaml_token_t{ - typ: typ, - start_mark: start_mark, - end_mark: end_mark, - } - // Append the token to the queue. - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the FLOW-SEQUENCE-END or FLOW-MAPPING-END token. -func yaml_parser_fetch_flow_collection_end(parser *yaml_parser_t, typ yaml_token_type_t) bool { - // Reset any potential simple key on the current flow level. - if !yaml_parser_remove_simple_key(parser) { - return false - } - - // Decrease the flow level. - if !yaml_parser_decrease_flow_level(parser) { - return false - } - - // No simple keys after the indicators ']' and '}'. - parser.simple_key_allowed = false - - // Consume the token. - - start_mark := parser.mark - skip(parser) - end_mark := parser.mark - - // Create the FLOW-SEQUENCE-END of FLOW-MAPPING-END token. - token := yaml_token_t{ - typ: typ, - start_mark: start_mark, - end_mark: end_mark, - } - // Append the token to the queue. - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the FLOW-ENTRY token. -func yaml_parser_fetch_flow_entry(parser *yaml_parser_t) bool { - // Reset any potential simple keys on the current flow level. - if !yaml_parser_remove_simple_key(parser) { - return false - } - - // Simple keys are allowed after ','. - parser.simple_key_allowed = true - - // Consume the token. - start_mark := parser.mark - skip(parser) - end_mark := parser.mark - - // Create the FLOW-ENTRY token and append it to the queue. - token := yaml_token_t{ - typ: yaml_FLOW_ENTRY_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the BLOCK-ENTRY token. -func yaml_parser_fetch_block_entry(parser *yaml_parser_t) bool { - // Check if the scanner is in the block context. - if parser.flow_level == 0 { - // Check if we are allowed to start a new entry. - if !parser.simple_key_allowed { - return yaml_parser_set_scanner_error(parser, "", parser.mark, - "block sequence entries are not allowed in this context") - } - // Add the BLOCK-SEQUENCE-START token if needed. - if !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_SEQUENCE_START_TOKEN, parser.mark) { - return false - } - } else { - // It is an error for the '-' indicator to occur in the flow context, - // but we let the Parser detect and report about it because the Parser - // is able to point to the context. - } - - // Reset any potential simple keys on the current flow level. - if !yaml_parser_remove_simple_key(parser) { - return false - } - - // Simple keys are allowed after '-'. - parser.simple_key_allowed = true - - // Consume the token. - start_mark := parser.mark - skip(parser) - end_mark := parser.mark - - // Create the BLOCK-ENTRY token and append it to the queue. - token := yaml_token_t{ - typ: yaml_BLOCK_ENTRY_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the KEY token. -func yaml_parser_fetch_key(parser *yaml_parser_t) bool { - - // In the block context, additional checks are required. - if parser.flow_level == 0 { - // Check if we are allowed to start a new key (not nessesary simple). - if !parser.simple_key_allowed { - return yaml_parser_set_scanner_error(parser, "", parser.mark, - "mapping keys are not allowed in this context") - } - // Add the BLOCK-MAPPING-START token if needed. - if !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_MAPPING_START_TOKEN, parser.mark) { - return false - } - } - - // Reset any potential simple keys on the current flow level. - if !yaml_parser_remove_simple_key(parser) { - return false - } - - // Simple keys are allowed after '?' in the block context. - parser.simple_key_allowed = parser.flow_level == 0 - - // Consume the token. - start_mark := parser.mark - skip(parser) - end_mark := parser.mark - - // Create the KEY token and append it to the queue. - token := yaml_token_t{ - typ: yaml_KEY_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the VALUE token. -func yaml_parser_fetch_value(parser *yaml_parser_t) bool { - - simple_key := &parser.simple_keys[len(parser.simple_keys)-1] - - // Have we found a simple key? - if simple_key.possible { - // Create the KEY token and insert it into the queue. - token := yaml_token_t{ - typ: yaml_KEY_TOKEN, - start_mark: simple_key.mark, - end_mark: simple_key.mark, - } - yaml_insert_token(parser, simple_key.token_number-parser.tokens_parsed, &token) - - // In the block context, we may need to add the BLOCK-MAPPING-START token. - if !yaml_parser_roll_indent(parser, simple_key.mark.column, - simple_key.token_number, - yaml_BLOCK_MAPPING_START_TOKEN, simple_key.mark) { - return false - } - - // Remove the simple key. - simple_key.possible = false - - // A simple key cannot follow another simple key. - parser.simple_key_allowed = false - - } else { - // The ':' indicator follows a complex key. - - // In the block context, extra checks are required. - if parser.flow_level == 0 { - - // Check if we are allowed to start a complex value. - if !parser.simple_key_allowed { - return yaml_parser_set_scanner_error(parser, "", parser.mark, - "mapping values are not allowed in this context") - } - - // Add the BLOCK-MAPPING-START token if needed. - if !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_MAPPING_START_TOKEN, parser.mark) { - return false - } - } - - // Simple keys after ':' are allowed in the block context. - parser.simple_key_allowed = parser.flow_level == 0 - } - - // Consume the token. - start_mark := parser.mark - skip(parser) - end_mark := parser.mark - - // Create the VALUE token and append it to the queue. - token := yaml_token_t{ - typ: yaml_VALUE_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the ALIAS or ANCHOR token. -func yaml_parser_fetch_anchor(parser *yaml_parser_t, typ yaml_token_type_t) bool { - // An anchor or an alias could be a simple key. - if !yaml_parser_save_simple_key(parser) { - return false - } - - // A simple key cannot follow an anchor or an alias. - parser.simple_key_allowed = false - - // Create the ALIAS or ANCHOR token and append it to the queue. - var token yaml_token_t - if !yaml_parser_scan_anchor(parser, &token, typ) { - return false - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the TAG token. -func yaml_parser_fetch_tag(parser *yaml_parser_t) bool { - // A tag could be a simple key. - if !yaml_parser_save_simple_key(parser) { - return false - } - - // A simple key cannot follow a tag. - parser.simple_key_allowed = false - - // Create the TAG token and append it to the queue. - var token yaml_token_t - if !yaml_parser_scan_tag(parser, &token) { - return false - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the SCALAR(...,literal) or SCALAR(...,folded) tokens. -func yaml_parser_fetch_block_scalar(parser *yaml_parser_t, literal bool) bool { - // Remove any potential simple keys. - if !yaml_parser_remove_simple_key(parser) { - return false - } - - // A simple key may follow a block scalar. - parser.simple_key_allowed = true - - // Create the SCALAR token and append it to the queue. - var token yaml_token_t - if !yaml_parser_scan_block_scalar(parser, &token, literal) { - return false - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the SCALAR(...,single-quoted) or SCALAR(...,double-quoted) tokens. -func yaml_parser_fetch_flow_scalar(parser *yaml_parser_t, single bool) bool { - // A plain scalar could be a simple key. - if !yaml_parser_save_simple_key(parser) { - return false - } - - // A simple key cannot follow a flow scalar. - parser.simple_key_allowed = false - - // Create the SCALAR token and append it to the queue. - var token yaml_token_t - if !yaml_parser_scan_flow_scalar(parser, &token, single) { - return false - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Produce the SCALAR(...,plain) token. -func yaml_parser_fetch_plain_scalar(parser *yaml_parser_t) bool { - // A plain scalar could be a simple key. - if !yaml_parser_save_simple_key(parser) { - return false - } - - // A simple key cannot follow a flow scalar. - parser.simple_key_allowed = false - - // Create the SCALAR token and append it to the queue. - var token yaml_token_t - if !yaml_parser_scan_plain_scalar(parser, &token) { - return false - } - yaml_insert_token(parser, -1, &token) - return true -} - -// Eat whitespaces and comments until the next token is found. -func yaml_parser_scan_to_next_token(parser *yaml_parser_t) bool { - - // Until the next token is not found. - for { - // Allow the BOM mark to start a line. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - if parser.mark.column == 0 && is_bom(parser.buffer, parser.buffer_pos) { - skip(parser) - } - - // Eat whitespaces. - // Tabs are allowed: - // - in the flow context - // - in the block context, but not at the beginning of the line or - // after '-', '?', or ':' (complex value). - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - for parser.buffer[parser.buffer_pos] == ' ' || ((parser.flow_level > 0 || !parser.simple_key_allowed) && parser.buffer[parser.buffer_pos] == '\t') { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Eat a comment until a line break. - if parser.buffer[parser.buffer_pos] == '#' { - for !is_breakz(parser.buffer, parser.buffer_pos) { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - } - - // If it is a line break, eat it. - if is_break(parser.buffer, parser.buffer_pos) { - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - skip_line(parser) - - // In the block context, a new line may start a simple key. - if parser.flow_level == 0 { - parser.simple_key_allowed = true - } - } else { - break // We have found a token. - } - } - - return true -} - -// Scan a YAML-DIRECTIVE or TAG-DIRECTIVE token. -// -// Scope: -// %YAML 1.1 # a comment \n -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -// %TAG !yaml! tag:yaml.org,2002: \n -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -// -func yaml_parser_scan_directive(parser *yaml_parser_t, token *yaml_token_t) bool { - // Eat '%'. - start_mark := parser.mark - skip(parser) - - // Scan the directive name. - var name []byte - if !yaml_parser_scan_directive_name(parser, start_mark, &name) { - return false - } - - // Is it a YAML directive? - if bytes.Equal(name, []byte("YAML")) { - // Scan the VERSION directive value. - var major, minor int8 - if !yaml_parser_scan_version_directive_value(parser, start_mark, &major, &minor) { - return false - } - end_mark := parser.mark - - // Create a VERSION-DIRECTIVE token. - *token = yaml_token_t{ - typ: yaml_VERSION_DIRECTIVE_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - major: major, - minor: minor, - } - - // Is it a TAG directive? - } else if bytes.Equal(name, []byte("TAG")) { - // Scan the TAG directive value. - var handle, prefix []byte - if !yaml_parser_scan_tag_directive_value(parser, start_mark, &handle, &prefix) { - return false - } - end_mark := parser.mark - - // Create a TAG-DIRECTIVE token. - *token = yaml_token_t{ - typ: yaml_TAG_DIRECTIVE_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - value: handle, - prefix: prefix, - } - - // Unknown directive. - } else { - yaml_parser_set_scanner_error(parser, "while scanning a directive", - start_mark, "found unknown directive name") - return false - } - - // Eat the rest of the line including any comments. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - for is_blank(parser.buffer, parser.buffer_pos) { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - if parser.buffer[parser.buffer_pos] == '#' { - for !is_breakz(parser.buffer, parser.buffer_pos) { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - } - - // Check if we are at the end of the line. - if !is_breakz(parser.buffer, parser.buffer_pos) { - yaml_parser_set_scanner_error(parser, "while scanning a directive", - start_mark, "did not find expected comment or line break") - return false - } - - // Eat a line break. - if is_break(parser.buffer, parser.buffer_pos) { - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - skip_line(parser) - } - - return true -} - -// Scan the directive name. -// -// Scope: -// %YAML 1.1 # a comment \n -// ^^^^ -// %TAG !yaml! tag:yaml.org,2002: \n -// ^^^ -// -func yaml_parser_scan_directive_name(parser *yaml_parser_t, start_mark yaml_mark_t, name *[]byte) bool { - // Consume the directive name. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - var s []byte - for is_alpha(parser.buffer, parser.buffer_pos) { - s = read(parser, s) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Check if the name is empty. - if len(s) == 0 { - yaml_parser_set_scanner_error(parser, "while scanning a directive", - start_mark, "could not find expected directive name") - return false - } - - // Check for an blank character after the name. - if !is_blankz(parser.buffer, parser.buffer_pos) { - yaml_parser_set_scanner_error(parser, "while scanning a directive", - start_mark, "found unexpected non-alphabetical character") - return false - } - *name = s - return true -} - -// Scan the value of VERSION-DIRECTIVE. -// -// Scope: -// %YAML 1.1 # a comment \n -// ^^^^^^ -func yaml_parser_scan_version_directive_value(parser *yaml_parser_t, start_mark yaml_mark_t, major, minor *int8) bool { - // Eat whitespaces. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - for is_blank(parser.buffer, parser.buffer_pos) { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Consume the major version number. - if !yaml_parser_scan_version_directive_number(parser, start_mark, major) { - return false - } - - // Eat '.'. - if parser.buffer[parser.buffer_pos] != '.' { - return yaml_parser_set_scanner_error(parser, "while scanning a %YAML directive", - start_mark, "did not find expected digit or '.' character") - } - - skip(parser) - - // Consume the minor version number. - if !yaml_parser_scan_version_directive_number(parser, start_mark, minor) { - return false - } - return true -} - -const max_number_length = 2 - -// Scan the version number of VERSION-DIRECTIVE. -// -// Scope: -// %YAML 1.1 # a comment \n -// ^ -// %YAML 1.1 # a comment \n -// ^ -func yaml_parser_scan_version_directive_number(parser *yaml_parser_t, start_mark yaml_mark_t, number *int8) bool { - - // Repeat while the next character is digit. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - var value, length int8 - for is_digit(parser.buffer, parser.buffer_pos) { - // Check if the number is too long. - length++ - if length > max_number_length { - return yaml_parser_set_scanner_error(parser, "while scanning a %YAML directive", - start_mark, "found extremely long version number") - } - value = value*10 + int8(as_digit(parser.buffer, parser.buffer_pos)) - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Check if the number was present. - if length == 0 { - return yaml_parser_set_scanner_error(parser, "while scanning a %YAML directive", - start_mark, "did not find expected version number") - } - *number = value - return true -} - -// Scan the value of a TAG-DIRECTIVE token. -// -// Scope: -// %TAG !yaml! tag:yaml.org,2002: \n -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -// -func yaml_parser_scan_tag_directive_value(parser *yaml_parser_t, start_mark yaml_mark_t, handle, prefix *[]byte) bool { - var handle_value, prefix_value []byte - - // Eat whitespaces. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - for is_blank(parser.buffer, parser.buffer_pos) { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Scan a handle. - if !yaml_parser_scan_tag_handle(parser, true, start_mark, &handle_value) { - return false - } - - // Expect a whitespace. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - if !is_blank(parser.buffer, parser.buffer_pos) { - yaml_parser_set_scanner_error(parser, "while scanning a %TAG directive", - start_mark, "did not find expected whitespace") - return false - } - - // Eat whitespaces. - for is_blank(parser.buffer, parser.buffer_pos) { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Scan a prefix. - if !yaml_parser_scan_tag_uri(parser, true, nil, start_mark, &prefix_value) { - return false - } - - // Expect a whitespace or line break. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - if !is_blankz(parser.buffer, parser.buffer_pos) { - yaml_parser_set_scanner_error(parser, "while scanning a %TAG directive", - start_mark, "did not find expected whitespace or line break") - return false - } - - *handle = handle_value - *prefix = prefix_value - return true -} - -func yaml_parser_scan_anchor(parser *yaml_parser_t, token *yaml_token_t, typ yaml_token_type_t) bool { - var s []byte - - // Eat the indicator character. - start_mark := parser.mark - skip(parser) - - // Consume the value. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - for is_alpha(parser.buffer, parser.buffer_pos) { - s = read(parser, s) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - end_mark := parser.mark - - /* - * Check if length of the anchor is greater than 0 and it is followed by - * a whitespace character or one of the indicators: - * - * '?', ':', ',', ']', '}', '%', '@', '`'. - */ - - if len(s) == 0 || - !(is_blankz(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == '?' || - parser.buffer[parser.buffer_pos] == ':' || parser.buffer[parser.buffer_pos] == ',' || - parser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '}' || - parser.buffer[parser.buffer_pos] == '%' || parser.buffer[parser.buffer_pos] == '@' || - parser.buffer[parser.buffer_pos] == '`') { - context := "while scanning an alias" - if typ == yaml_ANCHOR_TOKEN { - context = "while scanning an anchor" - } - yaml_parser_set_scanner_error(parser, context, start_mark, - "did not find expected alphabetic or numeric character") - return false - } - - // Create a token. - *token = yaml_token_t{ - typ: typ, - start_mark: start_mark, - end_mark: end_mark, - value: s, - } - - return true -} - -/* - * Scan a TAG token. - */ - -func yaml_parser_scan_tag(parser *yaml_parser_t, token *yaml_token_t) bool { - var handle, suffix []byte - - start_mark := parser.mark - - // Check if the tag is in the canonical form. - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - - if parser.buffer[parser.buffer_pos+1] == '<' { - // Keep the handle as '' - - // Eat '!<' - skip(parser) - skip(parser) - - // Consume the tag value. - if !yaml_parser_scan_tag_uri(parser, false, nil, start_mark, &suffix) { - return false - } - - // Check for '>' and eat it. - if parser.buffer[parser.buffer_pos] != '>' { - yaml_parser_set_scanner_error(parser, "while scanning a tag", - start_mark, "did not find the expected '>'") - return false - } - - skip(parser) - } else { - // The tag has either the '!suffix' or the '!handle!suffix' form. - - // First, try to scan a handle. - if !yaml_parser_scan_tag_handle(parser, false, start_mark, &handle) { - return false - } - - // Check if it is, indeed, handle. - if handle[0] == '!' && len(handle) > 1 && handle[len(handle)-1] == '!' { - // Scan the suffix now. - if !yaml_parser_scan_tag_uri(parser, false, nil, start_mark, &suffix) { - return false - } - } else { - // It wasn't a handle after all. Scan the rest of the tag. - if !yaml_parser_scan_tag_uri(parser, false, handle, start_mark, &suffix) { - return false - } - - // Set the handle to '!'. - handle = []byte{'!'} - - // A special case: the '!' tag. Set the handle to '' and the - // suffix to '!'. - if len(suffix) == 0 { - handle, suffix = suffix, handle - } - } - } - - // Check the character which ends the tag. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - if !is_blankz(parser.buffer, parser.buffer_pos) { - yaml_parser_set_scanner_error(parser, "while scanning a tag", - start_mark, "did not find expected whitespace or line break") - return false - } - - end_mark := parser.mark - - // Create a token. - *token = yaml_token_t{ - typ: yaml_TAG_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - value: handle, - suffix: suffix, - } - return true -} - -// Scan a tag handle. -func yaml_parser_scan_tag_handle(parser *yaml_parser_t, directive bool, start_mark yaml_mark_t, handle *[]byte) bool { - // Check the initial '!' character. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - if parser.buffer[parser.buffer_pos] != '!' { - yaml_parser_set_scanner_tag_error(parser, directive, - start_mark, "did not find expected '!'") - return false - } - - var s []byte - - // Copy the '!' character. - s = read(parser, s) - - // Copy all subsequent alphabetical and numerical characters. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - for is_alpha(parser.buffer, parser.buffer_pos) { - s = read(parser, s) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Check if the trailing character is '!' and copy it. - if parser.buffer[parser.buffer_pos] == '!' { - s = read(parser, s) - } else { - // It's either the '!' tag or not really a tag handle. If it's a %TAG - // directive, it's an error. If it's a tag token, it must be a part of URI. - if directive && string(s) != "!" { - yaml_parser_set_scanner_tag_error(parser, directive, - start_mark, "did not find expected '!'") - return false - } - } - - *handle = s - return true -} - -// Scan a tag. -func yaml_parser_scan_tag_uri(parser *yaml_parser_t, directive bool, head []byte, start_mark yaml_mark_t, uri *[]byte) bool { - //size_t length = head ? strlen((char *)head) : 0 - var s []byte - hasTag := len(head) > 0 - - // Copy the head if needed. - // - // Note that we don't copy the leading '!' character. - if len(head) > 1 { - s = append(s, head[1:]...) - } - - // Scan the tag. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - // The set of characters that may appear in URI is as follows: - // - // '0'-'9', 'A'-'Z', 'a'-'z', '_', '-', ';', '/', '?', ':', '@', '&', - // '=', '+', '$', ',', '.', '!', '~', '*', '\'', '(', ')', '[', ']', - // '%'. - // [Go] Convert this into more reasonable logic. - for is_alpha(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == ';' || - parser.buffer[parser.buffer_pos] == '/' || parser.buffer[parser.buffer_pos] == '?' || - parser.buffer[parser.buffer_pos] == ':' || parser.buffer[parser.buffer_pos] == '@' || - parser.buffer[parser.buffer_pos] == '&' || parser.buffer[parser.buffer_pos] == '=' || - parser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '$' || - parser.buffer[parser.buffer_pos] == ',' || parser.buffer[parser.buffer_pos] == '.' || - parser.buffer[parser.buffer_pos] == '!' || parser.buffer[parser.buffer_pos] == '~' || - parser.buffer[parser.buffer_pos] == '*' || parser.buffer[parser.buffer_pos] == '\'' || - parser.buffer[parser.buffer_pos] == '(' || parser.buffer[parser.buffer_pos] == ')' || - parser.buffer[parser.buffer_pos] == '[' || parser.buffer[parser.buffer_pos] == ']' || - parser.buffer[parser.buffer_pos] == '%' { - // Check if it is a URI-escape sequence. - if parser.buffer[parser.buffer_pos] == '%' { - if !yaml_parser_scan_uri_escapes(parser, directive, start_mark, &s) { - return false - } - } else { - s = read(parser, s) - } - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - hasTag = true - } - - if !hasTag { - yaml_parser_set_scanner_tag_error(parser, directive, - start_mark, "did not find expected tag URI") - return false - } - *uri = s - return true -} - -// Decode an URI-escape sequence corresponding to a single UTF-8 character. -func yaml_parser_scan_uri_escapes(parser *yaml_parser_t, directive bool, start_mark yaml_mark_t, s *[]byte) bool { - - // Decode the required number of characters. - w := 1024 - for w > 0 { - // Check for a URI-escaped octet. - if parser.unread < 3 && !yaml_parser_update_buffer(parser, 3) { - return false - } - - if !(parser.buffer[parser.buffer_pos] == '%' && - is_hex(parser.buffer, parser.buffer_pos+1) && - is_hex(parser.buffer, parser.buffer_pos+2)) { - return yaml_parser_set_scanner_tag_error(parser, directive, - start_mark, "did not find URI escaped octet") - } - - // Get the octet. - octet := byte((as_hex(parser.buffer, parser.buffer_pos+1) << 4) + as_hex(parser.buffer, parser.buffer_pos+2)) - - // If it is the leading octet, determine the length of the UTF-8 sequence. - if w == 1024 { - w = width(octet) - if w == 0 { - return yaml_parser_set_scanner_tag_error(parser, directive, - start_mark, "found an incorrect leading UTF-8 octet") - } - } else { - // Check if the trailing octet is correct. - if octet&0xC0 != 0x80 { - return yaml_parser_set_scanner_tag_error(parser, directive, - start_mark, "found an incorrect trailing UTF-8 octet") - } - } - - // Copy the octet and move the pointers. - *s = append(*s, octet) - skip(parser) - skip(parser) - skip(parser) - w-- - } - return true -} - -// Scan a block scalar. -func yaml_parser_scan_block_scalar(parser *yaml_parser_t, token *yaml_token_t, literal bool) bool { - // Eat the indicator '|' or '>'. - start_mark := parser.mark - skip(parser) - - // Scan the additional block scalar indicators. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - // Check for a chomping indicator. - var chomping, increment int - if parser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '-' { - // Set the chomping method and eat the indicator. - if parser.buffer[parser.buffer_pos] == '+' { - chomping = +1 - } else { - chomping = -1 - } - skip(parser) - - // Check for an indentation indicator. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - if is_digit(parser.buffer, parser.buffer_pos) { - // Check that the indentation is greater than 0. - if parser.buffer[parser.buffer_pos] == '0' { - yaml_parser_set_scanner_error(parser, "while scanning a block scalar", - start_mark, "found an indentation indicator equal to 0") - return false - } - - // Get the indentation level and eat the indicator. - increment = as_digit(parser.buffer, parser.buffer_pos) - skip(parser) - } - - } else if is_digit(parser.buffer, parser.buffer_pos) { - // Do the same as above, but in the opposite order. - - if parser.buffer[parser.buffer_pos] == '0' { - yaml_parser_set_scanner_error(parser, "while scanning a block scalar", - start_mark, "found an indentation indicator equal to 0") - return false - } - increment = as_digit(parser.buffer, parser.buffer_pos) - skip(parser) - - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - if parser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '-' { - if parser.buffer[parser.buffer_pos] == '+' { - chomping = +1 - } else { - chomping = -1 - } - skip(parser) - } - } - - // Eat whitespaces and comments to the end of the line. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - for is_blank(parser.buffer, parser.buffer_pos) { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - if parser.buffer[parser.buffer_pos] == '#' { - for !is_breakz(parser.buffer, parser.buffer_pos) { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - } - - // Check if we are at the end of the line. - if !is_breakz(parser.buffer, parser.buffer_pos) { - yaml_parser_set_scanner_error(parser, "while scanning a block scalar", - start_mark, "did not find expected comment or line break") - return false - } - - // Eat a line break. - if is_break(parser.buffer, parser.buffer_pos) { - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - skip_line(parser) - } - - end_mark := parser.mark - - // Set the indentation level if it was specified. - var indent int - if increment > 0 { - if parser.indent >= 0 { - indent = parser.indent + increment - } else { - indent = increment - } - } - - // Scan the leading line breaks and determine the indentation level if needed. - var s, leading_break, trailing_breaks []byte - if !yaml_parser_scan_block_scalar_breaks(parser, &indent, &trailing_breaks, start_mark, &end_mark) { - return false - } - - // Scan the block scalar content. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - var leading_blank, trailing_blank bool - for parser.mark.column == indent && !is_z(parser.buffer, parser.buffer_pos) { - // We are at the beginning of a non-empty line. - - // Is it a trailing whitespace? - trailing_blank = is_blank(parser.buffer, parser.buffer_pos) - - // Check if we need to fold the leading line break. - if !literal && !leading_blank && !trailing_blank && len(leading_break) > 0 && leading_break[0] == '\n' { - // Do we need to join the lines by space? - if len(trailing_breaks) == 0 { - s = append(s, ' ') - } - } else { - s = append(s, leading_break...) - } - leading_break = leading_break[:0] - - // Append the remaining line breaks. - s = append(s, trailing_breaks...) - trailing_breaks = trailing_breaks[:0] - - // Is it a leading whitespace? - leading_blank = is_blank(parser.buffer, parser.buffer_pos) - - // Consume the current line. - for !is_breakz(parser.buffer, parser.buffer_pos) { - s = read(parser, s) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Consume the line break. - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - - leading_break = read_line(parser, leading_break) - - // Eat the following indentation spaces and line breaks. - if !yaml_parser_scan_block_scalar_breaks(parser, &indent, &trailing_breaks, start_mark, &end_mark) { - return false - } - } - - // Chomp the tail. - if chomping != -1 { - s = append(s, leading_break...) - } - if chomping == 1 { - s = append(s, trailing_breaks...) - } - - // Create a token. - *token = yaml_token_t{ - typ: yaml_SCALAR_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - value: s, - style: yaml_LITERAL_SCALAR_STYLE, - } - if !literal { - token.style = yaml_FOLDED_SCALAR_STYLE - } - return true -} - -// Scan indentation spaces and line breaks for a block scalar. Determine the -// indentation level if needed. -func 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 { - *end_mark = parser.mark - - // Eat the indentation spaces and line breaks. - max_indent := 0 - for { - // Eat the indentation spaces. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - for (*indent == 0 || parser.mark.column < *indent) && is_space(parser.buffer, parser.buffer_pos) { - skip(parser) - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - if parser.mark.column > max_indent { - max_indent = parser.mark.column - } - - // Check for a tab character messing the indentation. - if (*indent == 0 || parser.mark.column < *indent) && is_tab(parser.buffer, parser.buffer_pos) { - return yaml_parser_set_scanner_error(parser, "while scanning a block scalar", - start_mark, "found a tab character where an indentation space is expected") - } - - // Have we found a non-empty line? - if !is_break(parser.buffer, parser.buffer_pos) { - break - } - - // Consume the line break. - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - // [Go] Should really be returning breaks instead. - *breaks = read_line(parser, *breaks) - *end_mark = parser.mark - } - - // Determine the indentation level if needed. - if *indent == 0 { - *indent = max_indent - if *indent < parser.indent+1 { - *indent = parser.indent + 1 - } - if *indent < 1 { - *indent = 1 - } - } - return true -} - -// Scan a quoted scalar. -func yaml_parser_scan_flow_scalar(parser *yaml_parser_t, token *yaml_token_t, single bool) bool { - // Eat the left quote. - start_mark := parser.mark - skip(parser) - - // Consume the content of the quoted scalar. - var s, leading_break, trailing_breaks, whitespaces []byte - for { - // Check that there are no document indicators at the beginning of the line. - if parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) { - return false - } - - if parser.mark.column == 0 && - ((parser.buffer[parser.buffer_pos+0] == '-' && - parser.buffer[parser.buffer_pos+1] == '-' && - parser.buffer[parser.buffer_pos+2] == '-') || - (parser.buffer[parser.buffer_pos+0] == '.' && - parser.buffer[parser.buffer_pos+1] == '.' && - parser.buffer[parser.buffer_pos+2] == '.')) && - is_blankz(parser.buffer, parser.buffer_pos+3) { - yaml_parser_set_scanner_error(parser, "while scanning a quoted scalar", - start_mark, "found unexpected document indicator") - return false - } - - // Check for EOF. - if is_z(parser.buffer, parser.buffer_pos) { - yaml_parser_set_scanner_error(parser, "while scanning a quoted scalar", - start_mark, "found unexpected end of stream") - return false - } - - // Consume non-blank characters. - leading_blanks := false - for !is_blankz(parser.buffer, parser.buffer_pos) { - if single && parser.buffer[parser.buffer_pos] == '\'' && parser.buffer[parser.buffer_pos+1] == '\'' { - // Is is an escaped single quote. - s = append(s, '\'') - skip(parser) - skip(parser) - - } else if single && parser.buffer[parser.buffer_pos] == '\'' { - // It is a right single quote. - break - } else if !single && parser.buffer[parser.buffer_pos] == '"' { - // It is a right double quote. - break - - } else if !single && parser.buffer[parser.buffer_pos] == '\\' && is_break(parser.buffer, parser.buffer_pos+1) { - // It is an escaped line break. - if parser.unread < 3 && !yaml_parser_update_buffer(parser, 3) { - return false - } - skip(parser) - skip_line(parser) - leading_blanks = true - break - - } else if !single && parser.buffer[parser.buffer_pos] == '\\' { - // It is an escape sequence. - code_length := 0 - - // Check the escape character. - switch parser.buffer[parser.buffer_pos+1] { - case '0': - s = append(s, 0) - case 'a': - s = append(s, '\x07') - case 'b': - s = append(s, '\x08') - case 't', '\t': - s = append(s, '\x09') - case 'n': - s = append(s, '\x0A') - case 'v': - s = append(s, '\x0B') - case 'f': - s = append(s, '\x0C') - case 'r': - s = append(s, '\x0D') - case 'e': - s = append(s, '\x1B') - case ' ': - s = append(s, '\x20') - case '"': - s = append(s, '"') - case '\'': - s = append(s, '\'') - case '\\': - s = append(s, '\\') - case 'N': // NEL (#x85) - s = append(s, '\xC2') - s = append(s, '\x85') - case '_': // #xA0 - s = append(s, '\xC2') - s = append(s, '\xA0') - case 'L': // LS (#x2028) - s = append(s, '\xE2') - s = append(s, '\x80') - s = append(s, '\xA8') - case 'P': // PS (#x2029) - s = append(s, '\xE2') - s = append(s, '\x80') - s = append(s, '\xA9') - case 'x': - code_length = 2 - case 'u': - code_length = 4 - case 'U': - code_length = 8 - default: - yaml_parser_set_scanner_error(parser, "while parsing a quoted scalar", - start_mark, "found unknown escape character") - return false - } - - skip(parser) - skip(parser) - - // Consume an arbitrary escape code. - if code_length > 0 { - var value int - - // Scan the character value. - if parser.unread < code_length && !yaml_parser_update_buffer(parser, code_length) { - return false - } - for k := 0; k < code_length; k++ { - if !is_hex(parser.buffer, parser.buffer_pos+k) { - yaml_parser_set_scanner_error(parser, "while parsing a quoted scalar", - start_mark, "did not find expected hexdecimal number") - return false - } - value = (value << 4) + as_hex(parser.buffer, parser.buffer_pos+k) - } - - // Check the value and write the character. - if (value >= 0xD800 && value <= 0xDFFF) || value > 0x10FFFF { - yaml_parser_set_scanner_error(parser, "while parsing a quoted scalar", - start_mark, "found invalid Unicode character escape code") - return false - } - if value <= 0x7F { - s = append(s, byte(value)) - } else if value <= 0x7FF { - s = append(s, byte(0xC0+(value>>6))) - s = append(s, byte(0x80+(value&0x3F))) - } else if value <= 0xFFFF { - s = append(s, byte(0xE0+(value>>12))) - s = append(s, byte(0x80+((value>>6)&0x3F))) - s = append(s, byte(0x80+(value&0x3F))) - } else { - s = append(s, byte(0xF0+(value>>18))) - s = append(s, byte(0x80+((value>>12)&0x3F))) - s = append(s, byte(0x80+((value>>6)&0x3F))) - s = append(s, byte(0x80+(value&0x3F))) - } - - // Advance the pointer. - for k := 0; k < code_length; k++ { - skip(parser) - } - } - } else { - // It is a non-escaped non-blank character. - s = read(parser, s) - } - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - } - - // Check if we are at the end of the scalar. - if single { - if parser.buffer[parser.buffer_pos] == '\'' { - break - } - } else { - if parser.buffer[parser.buffer_pos] == '"' { - break - } - } - - // Consume blank characters. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - for is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos) { - if is_blank(parser.buffer, parser.buffer_pos) { - // Consume a space or a tab character. - if !leading_blanks { - whitespaces = read(parser, whitespaces) - } else { - skip(parser) - } - } else { - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - - // Check if it is a first line break. - if !leading_blanks { - whitespaces = whitespaces[:0] - leading_break = read_line(parser, leading_break) - leading_blanks = true - } else { - trailing_breaks = read_line(parser, trailing_breaks) - } - } - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Join the whitespaces or fold line breaks. - if leading_blanks { - // Do we need to fold line breaks? - if len(leading_break) > 0 && leading_break[0] == '\n' { - if len(trailing_breaks) == 0 { - s = append(s, ' ') - } else { - s = append(s, trailing_breaks...) - } - } else { - s = append(s, leading_break...) - s = append(s, trailing_breaks...) - } - trailing_breaks = trailing_breaks[:0] - leading_break = leading_break[:0] - } else { - s = append(s, whitespaces...) - whitespaces = whitespaces[:0] - } - } - - // Eat the right quote. - skip(parser) - end_mark := parser.mark - - // Create a token. - *token = yaml_token_t{ - typ: yaml_SCALAR_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - value: s, - style: yaml_SINGLE_QUOTED_SCALAR_STYLE, - } - if !single { - token.style = yaml_DOUBLE_QUOTED_SCALAR_STYLE - } - return true -} - -// Scan a plain scalar. -func yaml_parser_scan_plain_scalar(parser *yaml_parser_t, token *yaml_token_t) bool { - - var s, leading_break, trailing_breaks, whitespaces []byte - var leading_blanks bool - var indent = parser.indent + 1 - - start_mark := parser.mark - end_mark := parser.mark - - // Consume the content of the plain scalar. - for { - // Check for a document indicator. - if parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) { - return false - } - if parser.mark.column == 0 && - ((parser.buffer[parser.buffer_pos+0] == '-' && - parser.buffer[parser.buffer_pos+1] == '-' && - parser.buffer[parser.buffer_pos+2] == '-') || - (parser.buffer[parser.buffer_pos+0] == '.' && - parser.buffer[parser.buffer_pos+1] == '.' && - parser.buffer[parser.buffer_pos+2] == '.')) && - is_blankz(parser.buffer, parser.buffer_pos+3) { - break - } - - // Check for a comment. - if parser.buffer[parser.buffer_pos] == '#' { - break - } - - // Consume non-blank characters. - for !is_blankz(parser.buffer, parser.buffer_pos) { - - // Check for 'x:x' in the flow context. TODO: Fix the test "spec-08-13". - if parser.flow_level > 0 && - parser.buffer[parser.buffer_pos] == ':' && - !is_blankz(parser.buffer, parser.buffer_pos+1) { - yaml_parser_set_scanner_error(parser, "while scanning a plain scalar", - start_mark, "found unexpected ':'") - return false - } - - // Check for indicators that may end a plain scalar. - if (parser.buffer[parser.buffer_pos] == ':' && is_blankz(parser.buffer, parser.buffer_pos+1)) || - (parser.flow_level > 0 && - (parser.buffer[parser.buffer_pos] == ',' || parser.buffer[parser.buffer_pos] == ':' || - parser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == '[' || - parser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '{' || - parser.buffer[parser.buffer_pos] == '}')) { - break - } - - // Check if we need to join whitespaces and breaks. - if leading_blanks || len(whitespaces) > 0 { - if leading_blanks { - // Do we need to fold line breaks? - if leading_break[0] == '\n' { - if len(trailing_breaks) == 0 { - s = append(s, ' ') - } else { - s = append(s, trailing_breaks...) - } - } else { - s = append(s, leading_break...) - s = append(s, trailing_breaks...) - } - trailing_breaks = trailing_breaks[:0] - leading_break = leading_break[:0] - leading_blanks = false - } else { - s = append(s, whitespaces...) - whitespaces = whitespaces[:0] - } - } - - // Copy the character. - s = read(parser, s) - - end_mark = parser.mark - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - } - - // Is it the end? - if !(is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos)) { - break - } - - // Consume blank characters. - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - - for is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos) { - if is_blank(parser.buffer, parser.buffer_pos) { - - // Check for tab character that abuse indentation. - if leading_blanks && parser.mark.column < indent && is_tab(parser.buffer, parser.buffer_pos) { - yaml_parser_set_scanner_error(parser, "while scanning a plain scalar", - start_mark, "found a tab character that violate indentation") - return false - } - - // Consume a space or a tab character. - if !leading_blanks { - whitespaces = read(parser, whitespaces) - } else { - skip(parser) - } - } else { - if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { - return false - } - - // Check if it is a first line break. - if !leading_blanks { - whitespaces = whitespaces[:0] - leading_break = read_line(parser, leading_break) - leading_blanks = true - } else { - trailing_breaks = read_line(parser, trailing_breaks) - } - } - if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { - return false - } - } - - // Check indentation level. - if parser.flow_level == 0 && parser.mark.column < indent { - break - } - } - - // Create a token. - *token = yaml_token_t{ - typ: yaml_SCALAR_TOKEN, - start_mark: start_mark, - end_mark: end_mark, - value: s, - style: yaml_PLAIN_SCALAR_STYLE, - } - - // Note that we change the 'simple_key_allowed' flag. - if leading_blanks { - parser.simple_key_allowed = true - } - return true -} diff --git a/vendor/gopkg.in/yaml.v2/sorter.go b/vendor/gopkg.in/yaml.v2/sorter.go deleted file mode 100644 index 5958822..0000000 --- a/vendor/gopkg.in/yaml.v2/sorter.go +++ /dev/null @@ -1,104 +0,0 @@ -package yaml - -import ( - "reflect" - "unicode" -) - -type keyList []reflect.Value - -func (l keyList) Len() int { return len(l) } -func (l keyList) Swap(i, j int) { l[i], l[j] = l[j], l[i] } -func (l keyList) Less(i, j int) bool { - a := l[i] - b := l[j] - ak := a.Kind() - bk := b.Kind() - for (ak == reflect.Interface || ak == reflect.Ptr) && !a.IsNil() { - a = a.Elem() - ak = a.Kind() - } - for (bk == reflect.Interface || bk == reflect.Ptr) && !b.IsNil() { - b = b.Elem() - bk = b.Kind() - } - af, aok := keyFloat(a) - bf, bok := keyFloat(b) - if aok && bok { - if af != bf { - return af < bf - } - if ak != bk { - return ak < bk - } - return numLess(a, b) - } - if ak != reflect.String || bk != reflect.String { - return ak < bk - } - ar, br := []rune(a.String()), []rune(b.String()) - for i := 0; i < len(ar) && i < len(br); i++ { - if ar[i] == br[i] { - continue - } - al := unicode.IsLetter(ar[i]) - bl := unicode.IsLetter(br[i]) - if al && bl { - return ar[i] < br[i] - } - if al || bl { - return bl - } - var ai, bi int - var an, bn int64 - for ai = i; ai < len(ar) && unicode.IsDigit(ar[ai]); ai++ { - an = an*10 + int64(ar[ai]-'0') - } - for bi = i; bi < len(br) && unicode.IsDigit(br[bi]); bi++ { - bn = bn*10 + int64(br[bi]-'0') - } - if an != bn { - return an < bn - } - if ai != bi { - return ai < bi - } - return ar[i] < br[i] - } - return len(ar) < len(br) -} - -// keyFloat returns a float value for v if it is a number/bool -// and whether it is a number/bool or not. -func keyFloat(v reflect.Value) (f float64, ok bool) { - switch v.Kind() { - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - return float64(v.Int()), true - case reflect.Float32, reflect.Float64: - return v.Float(), true - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - return float64(v.Uint()), true - case reflect.Bool: - if v.Bool() { - return 1, true - } - return 0, true - } - return 0, false -} - -// numLess returns whether a < b. -// a and b must necessarily have the same kind. -func numLess(a, b reflect.Value) bool { - switch a.Kind() { - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - return a.Int() < b.Int() - case reflect.Float32, reflect.Float64: - return a.Float() < b.Float() - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - return a.Uint() < b.Uint() - case reflect.Bool: - return !a.Bool() && b.Bool() - } - panic("not a number") -} diff --git a/vendor/gopkg.in/yaml.v2/writerc.go b/vendor/gopkg.in/yaml.v2/writerc.go deleted file mode 100644 index 190362f..0000000 --- a/vendor/gopkg.in/yaml.v2/writerc.go +++ /dev/null @@ -1,89 +0,0 @@ -package yaml - -// Set the writer error and return false. -func yaml_emitter_set_writer_error(emitter *yaml_emitter_t, problem string) bool { - emitter.error = yaml_WRITER_ERROR - emitter.problem = problem - return false -} - -// Flush the output buffer. -func yaml_emitter_flush(emitter *yaml_emitter_t) bool { - if emitter.write_handler == nil { - panic("write handler not set") - } - - // Check if the buffer is empty. - if emitter.buffer_pos == 0 { - return true - } - - // If the output encoding is UTF-8, we don't need to recode the buffer. - if emitter.encoding == yaml_UTF8_ENCODING { - if err := emitter.write_handler(emitter, emitter.buffer[:emitter.buffer_pos]); err != nil { - return yaml_emitter_set_writer_error(emitter, "write error: "+err.Error()) - } - emitter.buffer_pos = 0 - return true - } - - // Recode the buffer into the raw buffer. - var low, high int - if emitter.encoding == yaml_UTF16LE_ENCODING { - low, high = 0, 1 - } else { - high, low = 1, 0 - } - - pos := 0 - for pos < emitter.buffer_pos { - // See the "reader.c" code for more details on UTF-8 encoding. Note - // that we assume that the buffer contains a valid UTF-8 sequence. - - // Read the next UTF-8 character. - octet := emitter.buffer[pos] - - var w int - var value rune - switch { - case octet&0x80 == 0x00: - w, value = 1, rune(octet&0x7F) - case octet&0xE0 == 0xC0: - w, value = 2, rune(octet&0x1F) - case octet&0xF0 == 0xE0: - w, value = 3, rune(octet&0x0F) - case octet&0xF8 == 0xF0: - w, value = 4, rune(octet&0x07) - } - for k := 1; k < w; k++ { - octet = emitter.buffer[pos+k] - value = (value << 6) + (rune(octet) & 0x3F) - } - pos += w - - // Write the character. - if value < 0x10000 { - var b [2]byte - b[high] = byte(value >> 8) - b[low] = byte(value & 0xFF) - emitter.raw_buffer = append(emitter.raw_buffer, b[0], b[1]) - } else { - // Write the character using a surrogate pair (check "reader.c"). - var b [4]byte - value -= 0x10000 - b[high] = byte(0xD8 + (value >> 18)) - b[low] = byte((value >> 10) & 0xFF) - b[high+2] = byte(0xDC + ((value >> 8) & 0xFF)) - b[low+2] = byte(value & 0xFF) - emitter.raw_buffer = append(emitter.raw_buffer, b[0], b[1], b[2], b[3]) - } - } - - // Write the raw buffer. - if err := emitter.write_handler(emitter, emitter.raw_buffer); err != nil { - return yaml_emitter_set_writer_error(emitter, "write error: "+err.Error()) - } - emitter.buffer_pos = 0 - emitter.raw_buffer = emitter.raw_buffer[:0] - return true -} diff --git a/vendor/gopkg.in/yaml.v2/yaml.go b/vendor/gopkg.in/yaml.v2/yaml.go deleted file mode 100644 index bf18884..0000000 --- a/vendor/gopkg.in/yaml.v2/yaml.go +++ /dev/null @@ -1,357 +0,0 @@ -// Package yaml implements YAML support for the Go language. -// -// Source code and other details for the project are available at GitHub: -// -// https://github.com/go-yaml/yaml -// -package yaml - -import ( - "errors" - "fmt" - "reflect" - "strings" - "sync" -) - -// MapSlice encodes and decodes as a YAML map. -// The order of keys is preserved when encoding and decoding. -type MapSlice []MapItem - -// MapItem is an item in a MapSlice. -type MapItem struct { - Key, Value interface{} -} - -// The Unmarshaler interface may be implemented by types to customize their -// behavior when being unmarshaled from a YAML document. The UnmarshalYAML -// method receives a function that may be called to unmarshal the original -// YAML value into a field or variable. It is safe to call the unmarshal -// function parameter more than once if necessary. -type Unmarshaler interface { - UnmarshalYAML(unmarshal func(interface{}) error) error -} - -// The Marshaler interface may be implemented by types to customize their -// behavior when being marshaled into a YAML document. The returned value -// is marshaled in place of the original value implementing Marshaler. -// -// If an error is returned by MarshalYAML, the marshaling procedure stops -// and returns with the provided error. -type Marshaler interface { - MarshalYAML() (interface{}, error) -} - -// Unmarshal decodes the first document found within the in byte slice -// and assigns decoded values into the out value. -// -// Maps and pointers (to a struct, string, int, etc) are accepted as out -// values. If an internal pointer within a struct is not initialized, -// the yaml package will initialize it if necessary for unmarshalling -// the provided data. The out parameter must not be nil. -// -// The type of the decoded values should be compatible with the respective -// values in out. If one or more values cannot be decoded due to a type -// mismatches, decoding continues partially until the end of the YAML -// content, and a *yaml.TypeError is returned with details for all -// missed values. -// -// Struct fields are only unmarshalled if they are exported (have an -// upper case first letter), and are unmarshalled using the field name -// lowercased as the default key. Custom keys may be defined via the -// "yaml" name in the field tag: the content preceding the first comma -// is used as the key, and the following comma-separated options are -// used to tweak the marshalling process (see Marshal). -// Conflicting names result in a runtime error. -// -// For example: -// -// type T struct { -// F int `yaml:"a,omitempty"` -// B int -// } -// var t T -// yaml.Unmarshal([]byte("a: 1\nb: 2"), &t) -// -// See the documentation of Marshal for the format of tags and a list of -// supported tag options. -// -func Unmarshal(in []byte, out interface{}) (err error) { - return unmarshal(in, out, false) -} - -// UnmarshalStrict is like Unmarshal except that any fields that are found -// in the data that do not have corresponding struct members will result in -// an error. -func UnmarshalStrict(in []byte, out interface{}) (err error) { - return unmarshal(in, out, true) -} - -func unmarshal(in []byte, out interface{}, strict bool) (err error) { - defer handleErr(&err) - d := newDecoder(strict) - p := newParser(in) - defer p.destroy() - node := p.parse() - if node != nil { - v := reflect.ValueOf(out) - if v.Kind() == reflect.Ptr && !v.IsNil() { - v = v.Elem() - } - d.unmarshal(node, v) - } - if len(d.terrors) > 0 { - return &TypeError{d.terrors} - } - return nil -} - -// Marshal serializes the value provided into a YAML document. The structure -// of the generated document will reflect the structure of the value itself. -// Maps and pointers (to struct, string, int, etc) are accepted as the in value. -// -// Struct fields are only unmarshalled if they are exported (have an upper case -// first letter), and are unmarshalled using the field name lowercased as the -// default key. Custom keys may be defined via the "yaml" name in the field -// tag: the content preceding the first comma is used as the key, and the -// following comma-separated options are used to tweak the marshalling process. -// Conflicting names result in a runtime error. -// -// The field tag format accepted is: -// -// `(...) yaml:"[][,[,]]" (...)` -// -// The following flags are currently supported: -// -// omitempty Only include the field if it's not set to the zero -// value for the type or to empty slices or maps. -// Does not apply to zero valued structs. -// -// flow Marshal using a flow style (useful for structs, -// sequences and maps). -// -// inline Inline the field, which must be a struct or a map, -// causing all of its fields or keys to be processed as if -// they were part of the outer struct. For maps, keys must -// not conflict with the yaml keys of other struct fields. -// -// In addition, if the key is "-", the field is ignored. -// -// For example: -// -// type T struct { -// F int "a,omitempty" -// B int -// } -// yaml.Marshal(&T{B: 2}) // Returns "b: 2\n" -// yaml.Marshal(&T{F: 1}} // Returns "a: 1\nb: 0\n" -// -func Marshal(in interface{}) (out []byte, err error) { - defer handleErr(&err) - e := newEncoder() - defer e.destroy() - e.marshal("", reflect.ValueOf(in)) - e.finish() - out = e.out - return -} - -func handleErr(err *error) { - if v := recover(); v != nil { - if e, ok := v.(yamlError); ok { - *err = e.err - } else { - panic(v) - } - } -} - -type yamlError struct { - err error -} - -func fail(err error) { - panic(yamlError{err}) -} - -func failf(format string, args ...interface{}) { - panic(yamlError{fmt.Errorf("yaml: "+format, args...)}) -} - -// A TypeError is returned by Unmarshal when one or more fields in -// the YAML document cannot be properly decoded into the requested -// types. When this error is returned, the value is still -// unmarshaled partially. -type TypeError struct { - Errors []string -} - -func (e *TypeError) Error() string { - return fmt.Sprintf("yaml: unmarshal errors:\n %s", strings.Join(e.Errors, "\n ")) -} - -// -------------------------------------------------------------------------- -// Maintain a mapping of keys to structure field indexes - -// The code in this section was copied from mgo/bson. - -// structInfo holds details for the serialization of fields of -// a given struct. -type structInfo struct { - FieldsMap map[string]fieldInfo - FieldsList []fieldInfo - - // InlineMap is the number of the field in the struct that - // contains an ,inline map, or -1 if there's none. - InlineMap int -} - -type fieldInfo struct { - Key string - Num int - OmitEmpty bool - Flow bool - - // Inline holds the field index if the field is part of an inlined struct. - Inline []int -} - -var structMap = make(map[reflect.Type]*structInfo) -var fieldMapMutex sync.RWMutex - -func getStructInfo(st reflect.Type) (*structInfo, error) { - fieldMapMutex.RLock() - sinfo, found := structMap[st] - fieldMapMutex.RUnlock() - if found { - return sinfo, nil - } - - n := st.NumField() - fieldsMap := make(map[string]fieldInfo) - fieldsList := make([]fieldInfo, 0, n) - inlineMap := -1 - for i := 0; i != n; i++ { - field := st.Field(i) - if field.PkgPath != "" && !field.Anonymous { - continue // Private field - } - - info := fieldInfo{Num: i} - - tag := field.Tag.Get("yaml") - if tag == "" && strings.Index(string(field.Tag), ":") < 0 { - tag = string(field.Tag) - } - if tag == "-" { - continue - } - - inline := false - fields := strings.Split(tag, ",") - if len(fields) > 1 { - for _, flag := range fields[1:] { - switch flag { - case "omitempty": - info.OmitEmpty = true - case "flow": - info.Flow = true - case "inline": - inline = true - default: - return nil, errors.New(fmt.Sprintf("Unsupported flag %q in tag %q of type %s", flag, tag, st)) - } - } - tag = fields[0] - } - - if inline { - switch field.Type.Kind() { - case reflect.Map: - if inlineMap >= 0 { - return nil, errors.New("Multiple ,inline maps in struct " + st.String()) - } - if field.Type.Key() != reflect.TypeOf("") { - return nil, errors.New("Option ,inline needs a map with string keys in struct " + st.String()) - } - inlineMap = info.Num - case reflect.Struct: - sinfo, err := getStructInfo(field.Type) - if err != nil { - return nil, err - } - for _, finfo := range sinfo.FieldsList { - if _, found := fieldsMap[finfo.Key]; found { - msg := "Duplicated key '" + finfo.Key + "' in struct " + st.String() - return nil, errors.New(msg) - } - if finfo.Inline == nil { - finfo.Inline = []int{i, finfo.Num} - } else { - finfo.Inline = append([]int{i}, finfo.Inline...) - } - fieldsMap[finfo.Key] = finfo - fieldsList = append(fieldsList, finfo) - } - default: - //return nil, errors.New("Option ,inline needs a struct value or map field") - return nil, errors.New("Option ,inline needs a struct value field") - } - continue - } - - if tag != "" { - info.Key = tag - } else { - info.Key = strings.ToLower(field.Name) - } - - if _, found = fieldsMap[info.Key]; found { - msg := "Duplicated key '" + info.Key + "' in struct " + st.String() - return nil, errors.New(msg) - } - - fieldsList = append(fieldsList, info) - fieldsMap[info.Key] = info - } - - sinfo = &structInfo{fieldsMap, fieldsList, inlineMap} - - fieldMapMutex.Lock() - structMap[st] = sinfo - fieldMapMutex.Unlock() - return sinfo, nil -} - -func isZero(v reflect.Value) bool { - switch v.Kind() { - case reflect.String: - return len(v.String()) == 0 - case reflect.Interface, reflect.Ptr: - return v.IsNil() - case reflect.Slice: - return v.Len() == 0 - case reflect.Map: - return v.Len() == 0 - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - return v.Int() == 0 - case reflect.Float32, reflect.Float64: - return v.Float() == 0 - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - return v.Uint() == 0 - case reflect.Bool: - return !v.Bool() - case reflect.Struct: - vt := v.Type() - for i := v.NumField() - 1; i >= 0; i-- { - if vt.Field(i).PkgPath != "" { - continue // Private field - } - if !isZero(v.Field(i)) { - return false - } - } - return true - } - return false -} diff --git a/vendor/gopkg.in/yaml.v2/yamlh.go b/vendor/gopkg.in/yaml.v2/yamlh.go deleted file mode 100644 index 3caeca0..0000000 --- a/vendor/gopkg.in/yaml.v2/yamlh.go +++ /dev/null @@ -1,716 +0,0 @@ -package yaml - -import ( - "io" -) - -// The version directive data. -type yaml_version_directive_t struct { - major int8 // The major version number. - minor int8 // The minor version number. -} - -// The tag directive data. -type yaml_tag_directive_t struct { - handle []byte // The tag handle. - prefix []byte // The tag prefix. -} - -type yaml_encoding_t int - -// The stream encoding. -const ( - // Let the parser choose the encoding. - yaml_ANY_ENCODING yaml_encoding_t = iota - - yaml_UTF8_ENCODING // The default UTF-8 encoding. - yaml_UTF16LE_ENCODING // The UTF-16-LE encoding with BOM. - yaml_UTF16BE_ENCODING // The UTF-16-BE encoding with BOM. -) - -type yaml_break_t int - -// Line break types. -const ( - // Let the parser choose the break type. - yaml_ANY_BREAK yaml_break_t = iota - - yaml_CR_BREAK // Use CR for line breaks (Mac style). - yaml_LN_BREAK // Use LN for line breaks (Unix style). - yaml_CRLN_BREAK // Use CR LN for line breaks (DOS style). -) - -type yaml_error_type_t int - -// Many bad things could happen with the parser and emitter. -const ( - // No error is produced. - yaml_NO_ERROR yaml_error_type_t = iota - - yaml_MEMORY_ERROR // Cannot allocate or reallocate a block of memory. - yaml_READER_ERROR // Cannot read or decode the input stream. - yaml_SCANNER_ERROR // Cannot scan the input stream. - yaml_PARSER_ERROR // Cannot parse the input stream. - yaml_COMPOSER_ERROR // Cannot compose a YAML document. - yaml_WRITER_ERROR // Cannot write to the output stream. - yaml_EMITTER_ERROR // Cannot emit a YAML stream. -) - -// The pointer position. -type yaml_mark_t struct { - index int // The position index. - line int // The position line. - column int // The position column. -} - -// Node Styles - -type yaml_style_t int8 - -type yaml_scalar_style_t yaml_style_t - -// Scalar styles. -const ( - // Let the emitter choose the style. - yaml_ANY_SCALAR_STYLE yaml_scalar_style_t = iota - - yaml_PLAIN_SCALAR_STYLE // The plain scalar style. - yaml_SINGLE_QUOTED_SCALAR_STYLE // The single-quoted scalar style. - yaml_DOUBLE_QUOTED_SCALAR_STYLE // The double-quoted scalar style. - yaml_LITERAL_SCALAR_STYLE // The literal scalar style. - yaml_FOLDED_SCALAR_STYLE // The folded scalar style. -) - -type yaml_sequence_style_t yaml_style_t - -// Sequence styles. -const ( - // Let the emitter choose the style. - yaml_ANY_SEQUENCE_STYLE yaml_sequence_style_t = iota - - yaml_BLOCK_SEQUENCE_STYLE // The block sequence style. - yaml_FLOW_SEQUENCE_STYLE // The flow sequence style. -) - -type yaml_mapping_style_t yaml_style_t - -// Mapping styles. -const ( - // Let the emitter choose the style. - yaml_ANY_MAPPING_STYLE yaml_mapping_style_t = iota - - yaml_BLOCK_MAPPING_STYLE // The block mapping style. - yaml_FLOW_MAPPING_STYLE // The flow mapping style. -) - -// Tokens - -type yaml_token_type_t int - -// Token types. -const ( - // An empty token. - yaml_NO_TOKEN yaml_token_type_t = iota - - yaml_STREAM_START_TOKEN // A STREAM-START token. - yaml_STREAM_END_TOKEN // A STREAM-END token. - - yaml_VERSION_DIRECTIVE_TOKEN // A VERSION-DIRECTIVE token. - yaml_TAG_DIRECTIVE_TOKEN // A TAG-DIRECTIVE token. - yaml_DOCUMENT_START_TOKEN // A DOCUMENT-START token. - yaml_DOCUMENT_END_TOKEN // A DOCUMENT-END token. - - yaml_BLOCK_SEQUENCE_START_TOKEN // A BLOCK-SEQUENCE-START token. - yaml_BLOCK_MAPPING_START_TOKEN // A BLOCK-SEQUENCE-END token. - yaml_BLOCK_END_TOKEN // A BLOCK-END token. - - yaml_FLOW_SEQUENCE_START_TOKEN // A FLOW-SEQUENCE-START token. - yaml_FLOW_SEQUENCE_END_TOKEN // A FLOW-SEQUENCE-END token. - yaml_FLOW_MAPPING_START_TOKEN // A FLOW-MAPPING-START token. - yaml_FLOW_MAPPING_END_TOKEN // A FLOW-MAPPING-END token. - - yaml_BLOCK_ENTRY_TOKEN // A BLOCK-ENTRY token. - yaml_FLOW_ENTRY_TOKEN // A FLOW-ENTRY token. - yaml_KEY_TOKEN // A KEY token. - yaml_VALUE_TOKEN // A VALUE token. - - yaml_ALIAS_TOKEN // An ALIAS token. - yaml_ANCHOR_TOKEN // An ANCHOR token. - yaml_TAG_TOKEN // A TAG token. - yaml_SCALAR_TOKEN // A SCALAR token. -) - -func (tt yaml_token_type_t) String() string { - switch tt { - case yaml_NO_TOKEN: - return "yaml_NO_TOKEN" - case yaml_STREAM_START_TOKEN: - return "yaml_STREAM_START_TOKEN" - case yaml_STREAM_END_TOKEN: - return "yaml_STREAM_END_TOKEN" - case yaml_VERSION_DIRECTIVE_TOKEN: - return "yaml_VERSION_DIRECTIVE_TOKEN" - case yaml_TAG_DIRECTIVE_TOKEN: - return "yaml_TAG_DIRECTIVE_TOKEN" - case yaml_DOCUMENT_START_TOKEN: - return "yaml_DOCUMENT_START_TOKEN" - case yaml_DOCUMENT_END_TOKEN: - return "yaml_DOCUMENT_END_TOKEN" - case yaml_BLOCK_SEQUENCE_START_TOKEN: - return "yaml_BLOCK_SEQUENCE_START_TOKEN" - case yaml_BLOCK_MAPPING_START_TOKEN: - return "yaml_BLOCK_MAPPING_START_TOKEN" - case yaml_BLOCK_END_TOKEN: - return "yaml_BLOCK_END_TOKEN" - case yaml_FLOW_SEQUENCE_START_TOKEN: - return "yaml_FLOW_SEQUENCE_START_TOKEN" - case yaml_FLOW_SEQUENCE_END_TOKEN: - return "yaml_FLOW_SEQUENCE_END_TOKEN" - case yaml_FLOW_MAPPING_START_TOKEN: - return "yaml_FLOW_MAPPING_START_TOKEN" - case yaml_FLOW_MAPPING_END_TOKEN: - return "yaml_FLOW_MAPPING_END_TOKEN" - case yaml_BLOCK_ENTRY_TOKEN: - return "yaml_BLOCK_ENTRY_TOKEN" - case yaml_FLOW_ENTRY_TOKEN: - return "yaml_FLOW_ENTRY_TOKEN" - case yaml_KEY_TOKEN: - return "yaml_KEY_TOKEN" - case yaml_VALUE_TOKEN: - return "yaml_VALUE_TOKEN" - case yaml_ALIAS_TOKEN: - return "yaml_ALIAS_TOKEN" - case yaml_ANCHOR_TOKEN: - return "yaml_ANCHOR_TOKEN" - case yaml_TAG_TOKEN: - return "yaml_TAG_TOKEN" - case yaml_SCALAR_TOKEN: - return "yaml_SCALAR_TOKEN" - } - return "" -} - -// The token structure. -type yaml_token_t struct { - // The token type. - typ yaml_token_type_t - - // The start/end of the token. - start_mark, end_mark yaml_mark_t - - // The stream encoding (for yaml_STREAM_START_TOKEN). - encoding yaml_encoding_t - - // The alias/anchor/scalar value or tag/tag directive handle - // (for yaml_ALIAS_TOKEN, yaml_ANCHOR_TOKEN, yaml_SCALAR_TOKEN, yaml_TAG_TOKEN, yaml_TAG_DIRECTIVE_TOKEN). - value []byte - - // The tag suffix (for yaml_TAG_TOKEN). - suffix []byte - - // The tag directive prefix (for yaml_TAG_DIRECTIVE_TOKEN). - prefix []byte - - // The scalar style (for yaml_SCALAR_TOKEN). - style yaml_scalar_style_t - - // The version directive major/minor (for yaml_VERSION_DIRECTIVE_TOKEN). - major, minor int8 -} - -// Events - -type yaml_event_type_t int8 - -// Event types. -const ( - // An empty event. - yaml_NO_EVENT yaml_event_type_t = iota - - yaml_STREAM_START_EVENT // A STREAM-START event. - yaml_STREAM_END_EVENT // A STREAM-END event. - yaml_DOCUMENT_START_EVENT // A DOCUMENT-START event. - yaml_DOCUMENT_END_EVENT // A DOCUMENT-END event. - yaml_ALIAS_EVENT // An ALIAS event. - yaml_SCALAR_EVENT // A SCALAR event. - yaml_SEQUENCE_START_EVENT // A SEQUENCE-START event. - yaml_SEQUENCE_END_EVENT // A SEQUENCE-END event. - yaml_MAPPING_START_EVENT // A MAPPING-START event. - yaml_MAPPING_END_EVENT // A MAPPING-END event. -) - -// The event structure. -type yaml_event_t struct { - - // The event type. - typ yaml_event_type_t - - // The start and end of the event. - start_mark, end_mark yaml_mark_t - - // The document encoding (for yaml_STREAM_START_EVENT). - encoding yaml_encoding_t - - // The version directive (for yaml_DOCUMENT_START_EVENT). - version_directive *yaml_version_directive_t - - // The list of tag directives (for yaml_DOCUMENT_START_EVENT). - tag_directives []yaml_tag_directive_t - - // The anchor (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT, yaml_ALIAS_EVENT). - anchor []byte - - // The tag (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT). - tag []byte - - // The scalar value (for yaml_SCALAR_EVENT). - value []byte - - // Is the document start/end indicator implicit, or the tag optional? - // (for yaml_DOCUMENT_START_EVENT, yaml_DOCUMENT_END_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT, yaml_SCALAR_EVENT). - implicit bool - - // Is the tag optional for any non-plain style? (for yaml_SCALAR_EVENT). - quoted_implicit bool - - // The style (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT). - style yaml_style_t -} - -func (e *yaml_event_t) scalar_style() yaml_scalar_style_t { return yaml_scalar_style_t(e.style) } -func (e *yaml_event_t) sequence_style() yaml_sequence_style_t { return yaml_sequence_style_t(e.style) } -func (e *yaml_event_t) mapping_style() yaml_mapping_style_t { return yaml_mapping_style_t(e.style) } - -// Nodes - -const ( - yaml_NULL_TAG = "tag:yaml.org,2002:null" // The tag !!null with the only possible value: null. - yaml_BOOL_TAG = "tag:yaml.org,2002:bool" // The tag !!bool with the values: true and false. - yaml_STR_TAG = "tag:yaml.org,2002:str" // The tag !!str for string values. - yaml_INT_TAG = "tag:yaml.org,2002:int" // The tag !!int for integer values. - yaml_FLOAT_TAG = "tag:yaml.org,2002:float" // The tag !!float for float values. - yaml_TIMESTAMP_TAG = "tag:yaml.org,2002:timestamp" // The tag !!timestamp for date and time values. - - yaml_SEQ_TAG = "tag:yaml.org,2002:seq" // The tag !!seq is used to denote sequences. - yaml_MAP_TAG = "tag:yaml.org,2002:map" // The tag !!map is used to denote mapping. - - // Not in original libyaml. - yaml_BINARY_TAG = "tag:yaml.org,2002:binary" - yaml_MERGE_TAG = "tag:yaml.org,2002:merge" - - yaml_DEFAULT_SCALAR_TAG = yaml_STR_TAG // The default scalar tag is !!str. - yaml_DEFAULT_SEQUENCE_TAG = yaml_SEQ_TAG // The default sequence tag is !!seq. - yaml_DEFAULT_MAPPING_TAG = yaml_MAP_TAG // The default mapping tag is !!map. -) - -type yaml_node_type_t int - -// Node types. -const ( - // An empty node. - yaml_NO_NODE yaml_node_type_t = iota - - yaml_SCALAR_NODE // A scalar node. - yaml_SEQUENCE_NODE // A sequence node. - yaml_MAPPING_NODE // A mapping node. -) - -// An element of a sequence node. -type yaml_node_item_t int - -// An element of a mapping node. -type yaml_node_pair_t struct { - key int // The key of the element. - value int // The value of the element. -} - -// The node structure. -type yaml_node_t struct { - typ yaml_node_type_t // The node type. - tag []byte // The node tag. - - // The node data. - - // The scalar parameters (for yaml_SCALAR_NODE). - scalar struct { - value []byte // The scalar value. - length int // The length of the scalar value. - style yaml_scalar_style_t // The scalar style. - } - - // The sequence parameters (for YAML_SEQUENCE_NODE). - sequence struct { - items_data []yaml_node_item_t // The stack of sequence items. - style yaml_sequence_style_t // The sequence style. - } - - // The mapping parameters (for yaml_MAPPING_NODE). - mapping struct { - pairs_data []yaml_node_pair_t // The stack of mapping pairs (key, value). - pairs_start *yaml_node_pair_t // The beginning of the stack. - pairs_end *yaml_node_pair_t // The end of the stack. - pairs_top *yaml_node_pair_t // The top of the stack. - style yaml_mapping_style_t // The mapping style. - } - - start_mark yaml_mark_t // The beginning of the node. - end_mark yaml_mark_t // The end of the node. - -} - -// The document structure. -type yaml_document_t struct { - - // The document nodes. - nodes []yaml_node_t - - // The version directive. - version_directive *yaml_version_directive_t - - // The list of tag directives. - tag_directives_data []yaml_tag_directive_t - tag_directives_start int // The beginning of the tag directives list. - tag_directives_end int // The end of the tag directives list. - - start_implicit int // Is the document start indicator implicit? - end_implicit int // Is the document end indicator implicit? - - // The start/end of the document. - start_mark, end_mark yaml_mark_t -} - -// The prototype of a read handler. -// -// The read handler is called when the parser needs to read more bytes from the -// source. The handler should write not more than size bytes to the buffer. -// The number of written bytes should be set to the size_read variable. -// -// [in,out] data A pointer to an application data specified by -// yaml_parser_set_input(). -// [out] buffer The buffer to write the data from the source. -// [in] size The size of the buffer. -// [out] size_read The actual number of bytes read from the source. -// -// On success, the handler should return 1. If the handler failed, -// the returned value should be 0. On EOF, the handler should set the -// size_read to 0 and return 1. -type yaml_read_handler_t func(parser *yaml_parser_t, buffer []byte) (n int, err error) - -// This structure holds information about a potential simple key. -type yaml_simple_key_t struct { - possible bool // Is a simple key possible? - required bool // Is a simple key required? - token_number int // The number of the token. - mark yaml_mark_t // The position mark. -} - -// The states of the parser. -type yaml_parser_state_t int - -const ( - yaml_PARSE_STREAM_START_STATE yaml_parser_state_t = iota - - yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE // Expect the beginning of an implicit document. - yaml_PARSE_DOCUMENT_START_STATE // Expect DOCUMENT-START. - yaml_PARSE_DOCUMENT_CONTENT_STATE // Expect the content of a document. - yaml_PARSE_DOCUMENT_END_STATE // Expect DOCUMENT-END. - yaml_PARSE_BLOCK_NODE_STATE // Expect a block node. - yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE // Expect a block node or indentless sequence. - yaml_PARSE_FLOW_NODE_STATE // Expect a flow node. - yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE // Expect the first entry of a block sequence. - yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE // Expect an entry of a block sequence. - yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE // Expect an entry of an indentless sequence. - yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE // Expect the first key of a block mapping. - yaml_PARSE_BLOCK_MAPPING_KEY_STATE // Expect a block mapping key. - yaml_PARSE_BLOCK_MAPPING_VALUE_STATE // Expect a block mapping value. - yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE // Expect the first entry of a flow sequence. - yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE // Expect an entry of a flow sequence. - yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE // Expect a key of an ordered mapping. - yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE // Expect a value of an ordered mapping. - yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE // Expect the and of an ordered mapping entry. - yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE // Expect the first key of a flow mapping. - yaml_PARSE_FLOW_MAPPING_KEY_STATE // Expect a key of a flow mapping. - yaml_PARSE_FLOW_MAPPING_VALUE_STATE // Expect a value of a flow mapping. - yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE // Expect an empty value of a flow mapping. - yaml_PARSE_END_STATE // Expect nothing. -) - -func (ps yaml_parser_state_t) String() string { - switch ps { - case yaml_PARSE_STREAM_START_STATE: - return "yaml_PARSE_STREAM_START_STATE" - case yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE: - return "yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE" - case yaml_PARSE_DOCUMENT_START_STATE: - return "yaml_PARSE_DOCUMENT_START_STATE" - case yaml_PARSE_DOCUMENT_CONTENT_STATE: - return "yaml_PARSE_DOCUMENT_CONTENT_STATE" - case yaml_PARSE_DOCUMENT_END_STATE: - return "yaml_PARSE_DOCUMENT_END_STATE" - case yaml_PARSE_BLOCK_NODE_STATE: - return "yaml_PARSE_BLOCK_NODE_STATE" - case yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE: - return "yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE" - case yaml_PARSE_FLOW_NODE_STATE: - return "yaml_PARSE_FLOW_NODE_STATE" - case yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE: - return "yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE" - case yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE: - return "yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE" - case yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE: - return "yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE" - case yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE: - return "yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE" - case yaml_PARSE_BLOCK_MAPPING_KEY_STATE: - return "yaml_PARSE_BLOCK_MAPPING_KEY_STATE" - case yaml_PARSE_BLOCK_MAPPING_VALUE_STATE: - return "yaml_PARSE_BLOCK_MAPPING_VALUE_STATE" - case yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE: - return "yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE" - case yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE: - return "yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE" - case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE: - return "yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE" - case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE: - return "yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE" - case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE: - return "yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE" - case yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE: - return "yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE" - case yaml_PARSE_FLOW_MAPPING_KEY_STATE: - return "yaml_PARSE_FLOW_MAPPING_KEY_STATE" - case yaml_PARSE_FLOW_MAPPING_VALUE_STATE: - return "yaml_PARSE_FLOW_MAPPING_VALUE_STATE" - case yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE: - return "yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE" - case yaml_PARSE_END_STATE: - return "yaml_PARSE_END_STATE" - } - return "" -} - -// This structure holds aliases data. -type yaml_alias_data_t struct { - anchor []byte // The anchor. - index int // The node id. - mark yaml_mark_t // The anchor mark. -} - -// The parser structure. -// -// All members are internal. Manage the structure using the -// yaml_parser_ family of functions. -type yaml_parser_t struct { - - // Error handling - - error yaml_error_type_t // Error type. - - problem string // Error description. - - // The byte about which the problem occurred. - problem_offset int - problem_value int - problem_mark yaml_mark_t - - // The error context. - context string - context_mark yaml_mark_t - - // Reader stuff - - read_handler yaml_read_handler_t // Read handler. - - input_file io.Reader // File input data. - input []byte // String input data. - input_pos int - - eof bool // EOF flag - - buffer []byte // The working buffer. - buffer_pos int // The current position of the buffer. - - unread int // The number of unread characters in the buffer. - - raw_buffer []byte // The raw buffer. - raw_buffer_pos int // The current position of the buffer. - - encoding yaml_encoding_t // The input encoding. - - offset int // The offset of the current position (in bytes). - mark yaml_mark_t // The mark of the current position. - - // Scanner stuff - - stream_start_produced bool // Have we started to scan the input stream? - stream_end_produced bool // Have we reached the end of the input stream? - - flow_level int // The number of unclosed '[' and '{' indicators. - - tokens []yaml_token_t // The tokens queue. - tokens_head int // The head of the tokens queue. - tokens_parsed int // The number of tokens fetched from the queue. - token_available bool // Does the tokens queue contain a token ready for dequeueing. - - indent int // The current indentation level. - indents []int // The indentation levels stack. - - simple_key_allowed bool // May a simple key occur at the current position? - simple_keys []yaml_simple_key_t // The stack of simple keys. - - // Parser stuff - - state yaml_parser_state_t // The current parser state. - states []yaml_parser_state_t // The parser states stack. - marks []yaml_mark_t // The stack of marks. - tag_directives []yaml_tag_directive_t // The list of TAG directives. - - // Dumper stuff - - aliases []yaml_alias_data_t // The alias data. - - document *yaml_document_t // The currently parsed document. -} - -// Emitter Definitions - -// The prototype of a write handler. -// -// The write handler is called when the emitter needs to flush the accumulated -// characters to the output. The handler should write @a size bytes of the -// @a buffer to the output. -// -// @param[in,out] data A pointer to an application data specified by -// yaml_emitter_set_output(). -// @param[in] buffer The buffer with bytes to be written. -// @param[in] size The size of the buffer. -// -// @returns On success, the handler should return @c 1. If the handler failed, -// the returned value should be @c 0. -// -type yaml_write_handler_t func(emitter *yaml_emitter_t, buffer []byte) error - -type yaml_emitter_state_t int - -// The emitter states. -const ( - // Expect STREAM-START. - yaml_EMIT_STREAM_START_STATE yaml_emitter_state_t = iota - - yaml_EMIT_FIRST_DOCUMENT_START_STATE // Expect the first DOCUMENT-START or STREAM-END. - yaml_EMIT_DOCUMENT_START_STATE // Expect DOCUMENT-START or STREAM-END. - yaml_EMIT_DOCUMENT_CONTENT_STATE // Expect the content of a document. - yaml_EMIT_DOCUMENT_END_STATE // Expect DOCUMENT-END. - yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE // Expect the first item of a flow sequence. - yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE // Expect an item of a flow sequence. - yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE // Expect the first key of a flow mapping. - yaml_EMIT_FLOW_MAPPING_KEY_STATE // Expect a key of a flow mapping. - yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE // Expect a value for a simple key of a flow mapping. - yaml_EMIT_FLOW_MAPPING_VALUE_STATE // Expect a value of a flow mapping. - yaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE // Expect the first item of a block sequence. - yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE // Expect an item of a block sequence. - yaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE // Expect the first key of a block mapping. - yaml_EMIT_BLOCK_MAPPING_KEY_STATE // Expect the key of a block mapping. - yaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE // Expect a value for a simple key of a block mapping. - yaml_EMIT_BLOCK_MAPPING_VALUE_STATE // Expect a value of a block mapping. - yaml_EMIT_END_STATE // Expect nothing. -) - -// The emitter structure. -// -// All members are internal. Manage the structure using the @c yaml_emitter_ -// family of functions. -type yaml_emitter_t struct { - - // Error handling - - error yaml_error_type_t // Error type. - problem string // Error description. - - // Writer stuff - - write_handler yaml_write_handler_t // Write handler. - - output_buffer *[]byte // String output data. - output_file io.Writer // File output data. - - buffer []byte // The working buffer. - buffer_pos int // The current position of the buffer. - - raw_buffer []byte // The raw buffer. - raw_buffer_pos int // The current position of the buffer. - - encoding yaml_encoding_t // The stream encoding. - - // Emitter stuff - - canonical bool // If the output is in the canonical style? - best_indent int // The number of indentation spaces. - best_width int // The preferred width of the output lines. - unicode bool // Allow unescaped non-ASCII characters? - line_break yaml_break_t // The preferred line break. - - state yaml_emitter_state_t // The current emitter state. - states []yaml_emitter_state_t // The stack of states. - - events []yaml_event_t // The event queue. - events_head int // The head of the event queue. - - indents []int // The stack of indentation levels. - - tag_directives []yaml_tag_directive_t // The list of tag directives. - - indent int // The current indentation level. - - flow_level int // The current flow level. - - root_context bool // Is it the document root context? - sequence_context bool // Is it a sequence context? - mapping_context bool // Is it a mapping context? - simple_key_context bool // Is it a simple mapping key context? - - line int // The current line. - column int // The current column. - whitespace bool // If the last character was a whitespace? - indention bool // If the last character was an indentation character (' ', '-', '?', ':')? - open_ended bool // If an explicit document end is required? - - // Anchor analysis. - anchor_data struct { - anchor []byte // The anchor value. - alias bool // Is it an alias? - } - - // Tag analysis. - tag_data struct { - handle []byte // The tag handle. - suffix []byte // The tag suffix. - } - - // Scalar analysis. - scalar_data struct { - value []byte // The scalar value. - multiline bool // Does the scalar contain line breaks? - flow_plain_allowed bool // Can the scalar be expessed in the flow plain style? - block_plain_allowed bool // Can the scalar be expressed in the block plain style? - single_quoted_allowed bool // Can the scalar be expressed in the single quoted style? - block_allowed bool // Can the scalar be expressed in the literal or folded styles? - style yaml_scalar_style_t // The output style. - } - - // Dumper stuff - - opened bool // If the stream was already opened? - closed bool // If the stream was already closed? - - // The information associated with the document nodes. - anchors *struct { - references int // The number of references. - anchor int // The anchor id. - serialized bool // If the node has been emitted? - } - - last_anchor_id int // The last assigned anchor id. - - document *yaml_document_t // The currently emitted document. -} diff --git a/vendor/gopkg.in/yaml.v2/yamlprivateh.go b/vendor/gopkg.in/yaml.v2/yamlprivateh.go deleted file mode 100644 index 8110ce3..0000000 --- a/vendor/gopkg.in/yaml.v2/yamlprivateh.go +++ /dev/null @@ -1,173 +0,0 @@ -package yaml - -const ( - // The size of the input raw buffer. - input_raw_buffer_size = 512 - - // The size of the input buffer. - // It should be possible to decode the whole raw buffer. - input_buffer_size = input_raw_buffer_size * 3 - - // The size of the output buffer. - output_buffer_size = 128 - - // The size of the output raw buffer. - // It should be possible to encode the whole output buffer. - output_raw_buffer_size = (output_buffer_size*2 + 2) - - // The size of other stacks and queues. - initial_stack_size = 16 - initial_queue_size = 16 - initial_string_size = 16 -) - -// Check if the character at the specified position is an alphabetical -// character, a digit, '_', or '-'. -func is_alpha(b []byte, i int) bool { - return b[i] >= '0' && b[i] <= '9' || b[i] >= 'A' && b[i] <= 'Z' || b[i] >= 'a' && b[i] <= 'z' || b[i] == '_' || b[i] == '-' -} - -// Check if the character at the specified position is a digit. -func is_digit(b []byte, i int) bool { - return b[i] >= '0' && b[i] <= '9' -} - -// Get the value of a digit. -func as_digit(b []byte, i int) int { - return int(b[i]) - '0' -} - -// Check if the character at the specified position is a hex-digit. -func is_hex(b []byte, i int) bool { - return b[i] >= '0' && b[i] <= '9' || b[i] >= 'A' && b[i] <= 'F' || b[i] >= 'a' && b[i] <= 'f' -} - -// Get the value of a hex-digit. -func as_hex(b []byte, i int) int { - bi := b[i] - if bi >= 'A' && bi <= 'F' { - return int(bi) - 'A' + 10 - } - if bi >= 'a' && bi <= 'f' { - return int(bi) - 'a' + 10 - } - return int(bi) - '0' -} - -// Check if the character is ASCII. -func is_ascii(b []byte, i int) bool { - return b[i] <= 0x7F -} - -// Check if the character at the start of the buffer can be printed unescaped. -func is_printable(b []byte, i int) bool { - return ((b[i] == 0x0A) || // . == #x0A - (b[i] >= 0x20 && b[i] <= 0x7E) || // #x20 <= . <= #x7E - (b[i] == 0xC2 && b[i+1] >= 0xA0) || // #0xA0 <= . <= #xD7FF - (b[i] > 0xC2 && b[i] < 0xED) || - (b[i] == 0xED && b[i+1] < 0xA0) || - (b[i] == 0xEE) || - (b[i] == 0xEF && // #xE000 <= . <= #xFFFD - !(b[i+1] == 0xBB && b[i+2] == 0xBF) && // && . != #xFEFF - !(b[i+1] == 0xBF && (b[i+2] == 0xBE || b[i+2] == 0xBF)))) -} - -// Check if the character at the specified position is NUL. -func is_z(b []byte, i int) bool { - return b[i] == 0x00 -} - -// Check if the beginning of the buffer is a BOM. -func is_bom(b []byte, i int) bool { - return b[0] == 0xEF && b[1] == 0xBB && b[2] == 0xBF -} - -// Check if the character at the specified position is space. -func is_space(b []byte, i int) bool { - return b[i] == ' ' -} - -// Check if the character at the specified position is tab. -func is_tab(b []byte, i int) bool { - return b[i] == '\t' -} - -// Check if the character at the specified position is blank (space or tab). -func is_blank(b []byte, i int) bool { - //return is_space(b, i) || is_tab(b, i) - return b[i] == ' ' || b[i] == '\t' -} - -// Check if the character at the specified position is a line break. -func is_break(b []byte, i int) bool { - return (b[i] == '\r' || // CR (#xD) - b[i] == '\n' || // LF (#xA) - b[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85) - b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028) - b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9) // PS (#x2029) -} - -func is_crlf(b []byte, i int) bool { - return b[i] == '\r' && b[i+1] == '\n' -} - -// Check if the character is a line break or NUL. -func is_breakz(b []byte, i int) bool { - //return is_break(b, i) || is_z(b, i) - return ( // is_break: - b[i] == '\r' || // CR (#xD) - b[i] == '\n' || // LF (#xA) - b[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85) - b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028) - b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029) - // is_z: - b[i] == 0) -} - -// Check if the character is a line break, space, or NUL. -func is_spacez(b []byte, i int) bool { - //return is_space(b, i) || is_breakz(b, i) - return ( // is_space: - b[i] == ' ' || - // is_breakz: - b[i] == '\r' || // CR (#xD) - b[i] == '\n' || // LF (#xA) - b[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85) - b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028) - b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029) - b[i] == 0) -} - -// Check if the character is a line break, space, tab, or NUL. -func is_blankz(b []byte, i int) bool { - //return is_blank(b, i) || is_breakz(b, i) - return ( // is_blank: - b[i] == ' ' || b[i] == '\t' || - // is_breakz: - b[i] == '\r' || // CR (#xD) - b[i] == '\n' || // LF (#xA) - b[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85) - b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028) - b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029) - b[i] == 0) -} - -// Determine the width of the character. -func width(b byte) int { - // Don't replace these by a switch without first - // confirming that it is being inlined. - if b&0x80 == 0x00 { - return 1 - } - if b&0xE0 == 0xC0 { - return 2 - } - if b&0xF0 == 0xE0 { - return 3 - } - if b&0xF8 == 0xF0 { - return 4 - } - return 0 - -} diff --git a/vendor/vendor.json b/vendor/vendor.json deleted file mode 100644 index e2c9f0c..0000000 --- a/vendor/vendor.json +++ /dev/null @@ -1,213 +0,0 @@ -{ - "comment": "", - "ignore": "test", - "package": [ - { - "checksumSHA1": "aTYPm16eYDQhbVLgreCGwvV2klw=", - "path": "github.com/chzyer/readline", - "revision": "41eea22f717c616615e1e59aa06cf831f9901f35", - "revisionTime": "2017-03-13T23:49:21Z" - }, - { - "checksumSHA1": "ce/QMYEvg0VQ3BW6C4EEBp2O45k=", - "path": "github.com/fatih/color", - "revision": "1535ebc2637cc042c938f07fa26c6356ab8f8504", - "revisionTime": "2017-09-05T12:23:28Z" - }, - { - "checksumSHA1": "x2Km0Qy3WgJJnV19Zv25VwTJcBM=", - "path": "github.com/fsnotify/fsnotify", - "revision": "4da3e2cfbabc9f751898f250b49f2439785783a1", - "revisionTime": "2017-03-29T04:21:07Z" - }, - { - "checksumSHA1": "7JBkp3EZoc0MSbiyWfzVhO4RYoY=", - "path": "github.com/hashicorp/hcl", - "revision": "8f6b1344a92ff8877cf24a5de9177bf7d0a2a187", - "revisionTime": "2017-04-17T18:02:14Z" - }, - { - "checksumSHA1": "XQmjDva9JCGGkIecOgwtBEMCJhU=", - "path": "github.com/hashicorp/hcl/hcl/ast", - "revision": "8f6b1344a92ff8877cf24a5de9177bf7d0a2a187", - "revisionTime": "2017-04-17T18:02:14Z" - }, - { - "checksumSHA1": "/15SVLnCDzxICSatuYbfctrcpSM=", - "path": "github.com/hashicorp/hcl/hcl/parser", - "revision": "8f6b1344a92ff8877cf24a5de9177bf7d0a2a187", - "revisionTime": "2017-04-17T18:02:14Z" - }, - { - "checksumSHA1": "z6wdP4mRw4GVjShkNHDaOWkbxS0=", - "path": "github.com/hashicorp/hcl/hcl/scanner", - "revision": "8f6b1344a92ff8877cf24a5de9177bf7d0a2a187", - "revisionTime": "2017-04-17T18:02:14Z" - }, - { - "checksumSHA1": "oS3SCN9Wd6D8/LG0Yx1fu84a7gI=", - "path": "github.com/hashicorp/hcl/hcl/strconv", - "revision": "8f6b1344a92ff8877cf24a5de9177bf7d0a2a187", - "revisionTime": "2017-04-17T18:02:14Z" - }, - { - "checksumSHA1": "c6yprzj06ASwCo18TtbbNNBHljA=", - "path": "github.com/hashicorp/hcl/hcl/token", - "revision": "8f6b1344a92ff8877cf24a5de9177bf7d0a2a187", - "revisionTime": "2017-04-17T18:02:14Z" - }, - { - "checksumSHA1": "PwlfXt7mFS8UYzWxOK5DOq0yxS0=", - "path": "github.com/hashicorp/hcl/json/parser", - "revision": "8f6b1344a92ff8877cf24a5de9177bf7d0a2a187", - "revisionTime": "2017-04-17T18:02:14Z" - }, - { - "checksumSHA1": "YdvFsNOMSWMLnY6fcliWQa0O5Fw=", - "path": "github.com/hashicorp/hcl/json/scanner", - "revision": "8f6b1344a92ff8877cf24a5de9177bf7d0a2a187", - "revisionTime": "2017-04-17T18:02:14Z" - }, - { - "checksumSHA1": "fNlXQCQEnb+B3k5UDL/r15xtSJY=", - "path": "github.com/hashicorp/hcl/json/token", - "revision": "8f6b1344a92ff8877cf24a5de9177bf7d0a2a187", - "revisionTime": "2017-04-17T18:02:14Z" - }, - { - "checksumSHA1": "up35HgA0/UxlprRI0fUSpiGhZvg=", - "path": "github.com/magiconair/properties", - "revision": "be5ece7dd465ab0765a9682137865547526d1dfb", - "revisionTime": "2017-07-10T12:48:59Z" - }, - { - "checksumSHA1": "MrqRXuqj5suGXqcRUUwi+YA7PmE=", - "origin": "github.com/fatih/color/vendor/github.com/mattn/go-colorable", - "path": "github.com/mattn/go-colorable", - "revision": "1535ebc2637cc042c938f07fa26c6356ab8f8504", - "revisionTime": "2017-09-05T12:23:28Z" - }, - { - "checksumSHA1": "a/chskqRYBBHS8lDTpB3FQqgHb8=", - "origin": "github.com/fatih/color/vendor/github.com/mattn/go-isatty", - "path": "github.com/mattn/go-isatty", - "revision": "1535ebc2637cc042c938f07fa26c6356ab8f8504", - "revisionTime": "2017-09-05T12:23:28Z" - }, - { - "checksumSHA1": "V/quM7+em2ByJbWBLOsEwnY3j/Q=", - "path": "github.com/mitchellh/go-homedir", - "revision": "b8bc1bf767474819792c23f32d8286a45736f1c6", - "revisionTime": "2016-12-03T19:45:07Z" - }, - { - "checksumSHA1": "EHjhpHipgm+XGccrRAms9AW3Ewk=", - "path": "github.com/mitchellh/mapstructure", - "revision": "d0303fe809921458f417bcf828397a65db30a7e4", - "revisionTime": "2017-05-23T03:00:23Z" - }, - { - "checksumSHA1": "zZg0J0MqvnqXVYo644QDvnUinrc=", - "path": "github.com/pelletier/go-toml", - "revision": "9c1b4e331f1e3d98e72600677699fbe212cd6d16", - "revisionTime": "2017-08-25T03:46:50Z" - }, - { - "checksumSHA1": "hLJ4PW0yTON/V6kKjY9v0zfLnd0=", - "path": "github.com/spf13/afero", - "revision": "ee1bd8ee15a1306d1f9201acc41ef39cd9f99a1b", - "revisionTime": "2016-09-19T01:42:32Z" - }, - { - "checksumSHA1": "5KRbEQ28dDaQmKwAYTD0if/aEvg=", - "path": "github.com/spf13/afero/mem", - "revision": "ee1bd8ee15a1306d1f9201acc41ef39cd9f99a1b", - "revisionTime": "2016-09-19T01:42:32Z" - }, - { - "checksumSHA1": "Sq0QP4JywTr7UM4hTK1cjCi7jec=", - "path": "github.com/spf13/cast", - "revision": "acbeb36b902d72a7a4c18e8f3241075e7ab763e4", - "revisionTime": "2017-04-13T08:50:28Z" - }, - { - "checksumSHA1": "CJxJs5h5+CPUPI497KC/mvWSG84=", - "path": "github.com/spf13/cobra", - "revision": "2df9a531813370438a4d79bfc33e21f58063ed87", - "revisionTime": "2017-07-28T06:04:09Z" - }, - { - "checksumSHA1": "mZa8ukZwyAZ86E3oVjhnnKSlizs=", - "path": "github.com/spf13/jwalterweatherman", - "revision": "0efa5202c04663c757d84f90f5219c1250baf94f", - "revisionTime": "2017-05-23T09:39:43Z" - }, - { - "checksumSHA1": "Q52Y7t0lEtk/wcDn5q7tS7B+jqs=", - "path": "github.com/spf13/pflag", - "revision": "7aff26db30c1be810f9de5038ec5ef96ac41fd7c", - "revisionTime": "2017-08-24T17:57:12Z" - }, - { - "checksumSHA1": "XeB0yeQkOMI+CWrllrbTrg4iOEs=", - "path": "github.com/spf13/viper", - "revision": "25b30aa063fc18e48662b86996252eabdcf2f0c7", - "revisionTime": "2017-07-23T05:52:07Z" - }, - { - "checksumSHA1": "h+pFYiRHBogczS8/F1NoN3Ata44=", - "path": "golang.org/x/crypto/curve25519", - "revision": "8e06e8ddd9629eb88639aba897641bff8031f1d3", - "revisionTime": "2016-09-10T18:59:01Z" - }, - { - "checksumSHA1": "wGb//LjBPNxYHqk+dcLo7BjPXK8=", - "path": "golang.org/x/crypto/ed25519", - "revision": "8e06e8ddd9629eb88639aba897641bff8031f1d3", - "revisionTime": "2016-09-10T18:59:01Z" - }, - { - "checksumSHA1": "LXFcVx8I587SnWmKycSDEq9yvK8=", - "path": "golang.org/x/crypto/ed25519/internal/edwards25519", - "revision": "8e06e8ddd9629eb88639aba897641bff8031f1d3", - "revisionTime": "2016-09-10T18:59:01Z" - }, - { - "checksumSHA1": "mtOqF6Q4ldg801EaT6YTv9LP9bM=", - "path": "golang.org/x/crypto/ssh", - "revision": "8e06e8ddd9629eb88639aba897641bff8031f1d3", - "revisionTime": "2016-09-10T18:59:01Z" - }, - { - "checksumSHA1": "SJ3Ma3Ozavxpbh1usZWBCnzMKIc=", - "path": "golang.org/x/crypto/ssh/agent", - "revision": "8e06e8ddd9629eb88639aba897641bff8031f1d3", - "revisionTime": "2016-09-10T18:59:01Z" - }, - { - "checksumSHA1": "L3tXuh/pDgQbi7y9/xIBhP0wkbs=", - "path": "golang.org/x/sys/unix", - "revision": "a07a691ac871746ae690ccf3ab217363b2144531", - "revisionTime": "2017-08-30T09:57:17Z" - }, - { - "checksumSHA1": "ziMb9+ANGRJSSIuxYdRbA+cDRBQ=", - "path": "golang.org/x/text/transform", - "revision": "79ab41e967c76b94c55d37134c51fc306609cffc", - "revisionTime": "2017-08-31T11:07:49Z" - }, - { - "checksumSHA1": "Anof4bt0AU+Sa3R8Rq0KBnlpbaQ=", - "path": "golang.org/x/text/unicode/norm", - "revision": "79ab41e967c76b94c55d37134c51fc306609cffc", - "revisionTime": "2017-08-31T11:07:49Z" - }, - { - "checksumSHA1": "RDJpJQwkF012L6m/2BJizyOksNw=", - "path": "gopkg.in/yaml.v2", - "revision": "eb3733d160e74a9c7e442f435eb3bea458e1d19f", - "revisionTime": "2017-08-12T16:00:11Z" - } - ], - "rootPath": "github.com/ncode/pretty" -}

o}QQ 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%0DmQK($jZ2C6&JwW-9u2 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

}gI66@F zMK;{I zz|9i_Cr@uXv95Ihdi+-4CC+-G@)ZiKy~qn&nO%s?b|SN#uFSsV%50Y_v%3BppUl4G z%B=27UOJ{Cx3r}_1~1EI5X1k|)9@(r(J_@6B))}oNYD@_rAq5A#BiQ)`Fc0)Tbvd z>-nr&lg{P7{?6x_4dASV_32t_UQ705yHa*56pB3m4=2`%7hA<2;K`BR1J{;^LK!@? zm1o2YIx8g3v!%2Z1Fyon=JRHMo{Q@*vnMVw_(p0IDNd`s`T>)tAzn>R0XNbq_-3ss zzsu&dTAs4sHx${tn8YnMFHbW3m)LjZ!X%;BH0afao?T$*mDAD;y@=N{pBfdp@dYy< z*j^eAnfXAx=*Fmg{tO&5X4#Bc;5Ny3@ub#X6O29hXds$keB=b$wJmTiUr_fF)#7jd zHWfrSnEr~D+ZLIK%y>RelCjpgyk7_JKM3#FL60j$M`F0Oz#^NYkMJR#wio^llJBau z-}(3$EATP2)|R>k|LU529i4TtLVgBzMRs@uI^B*C7WPVuT_Qh59WYw!AQ=2zg+;G8uO-?P^oBY-hEiFFIXh71S6&+1&{rTE6^eq-wAAJwUQYp8mBt4r%>c*%XeNH9KUZ z3V%}mp4P;qUyY2juB7?2VyE7m$(&QummiJKVeH73@`hrY1Jv!a=a$+13k^Hk;iEfu zp49r&PT3BlJK#anE_zgXXfdv9PIeP(FbVpR?oduwN`DyqYR?zC1Keoremra3+CTP^ zYik_-dG_}e;~%8s=auAMX{@T#RM}J+)x1&qTyPnf7<-(toBSL48Yh^5&%gv6DVU5L zxiA598YUZO7fcPn^dBxv9z3(M&d)RY6L_S5gYafGF`IfP$M~3PV;g=Y>b6OmH zw>oS?nCHYF;_XI$S6+(0T2dMbaZUUodtW-ij>qE3`r3+rdvjF(^=(exBc1pHoh43W z^`eD6s~l=~27;yz6mjnY&B7dhBhU6E*j|C``7aNCYf=)kU6eV^EF)%15 z-v%5_CCsO=Gs;uLUS6x*F!>iNN3i})zJ-2|B46#H5%~W2IV)?O$QJz0k??Uo{dO|v z+U@S)Sk;K1#J%?7w4c*nJS`evjaBn3a%)UHLi*6jEzrS17=;@>cYHLFdKcD*D@ZM z)kh4T+CV$C$W|G;qKbIvci0zcb$}gD>>~L=CWgt}_o~PQ*4_n&)^Ah!V{Wa7#q4L3 zta)qS$~zz7%AMo>Gxlbmtta-%aQXWerR2}-Ew4u=?m`ysae6zDlfIkzkblwFzv*OTaG?KhB3(z9{i)BAp1wvVwXj;6V3`;2h!wV&x*S9_5&sl?=BR78Hc2VKQ| z*^a>K+^A?#4=w7Ug`Sr$a**|WeIE%OV%1J>?ltsP!#njRhP=Ig!ypqwejR%dqb-v! z#q;leu5Vp2I^$XLOocCS(pwfbbBu$3Nz61>?({x`pISm&aroZYNVn|}=B=I_lVlNR zh*fij7`T&PmN59skCwG&%qfEjXVs#n1_+GJ=XZb z!k6Y5%fVLy7{pWJ-&Nqu`)zz-eAL7}*rtKh>60xe5BL6$Pxr0U`*pmJ?YdU@(Yppu zW5T^(rwx;%FowO>imNq_iY)f}cgAG&KhJ$%^qS9mYNHf-$xnx`iDwr@68Y4BhkwLN z@7?T+N92>6ht0M;KgY;0arW)YLK97#Jw{t`aM%X??ToL7wb@a$xt}&Wxz|yg7xmz) z1in1QW1Pzsmoa+scE)!*@FjUx@O>Qk^t~MTlpidZl7hjtk$yNdmx|YOJ|Q_2G2oYP z664v7XZ-TX8pE`SRz4s4tj$x8Pl8vo#+UL9ef7)#b_TrU`G@Y_vx|^j&p)y2wP|}C z&Nu53+xuIO_(5v@+S+2-`zqS^uSdLM;*sh0rVoZDYr|1L?uGa7^wZWv+EQMiREh`R zdBl4%bo}|odt%6##dkX1GnoGW+<4Eq@n>tbYdxo?pE3Xb28+L(71N`^Yr?&XlO@5A zY>um1%^#~@-TLijO(I>tJ%*1VKdPR&xOADx=f_4>(_WZ%W$TB1lzUUThc6<3!+&qj zXZzN9=d;8&JCPsWjE-w`j*nq2PBmhY;{%~a=Z(;brbpViznmI7vGPD<(jm_IC=X`X zr2ZSZe$?SN=CH7e>$u0Yr7UJ5eSmClyV6g<+o1}@&Y zhEkK012oTmASG%BRC<;Y+0HrMa4yqyPS0?8AnSD(0%@gU(tAnsrm<&6?a= z>0WU0Z_v=nx(ln;RR%+Mc;%ylMf!0tc=5sD=^uN(VOpPg>(SELnlme(RJB8D^PQcW z^6dI__C39$bB;PL4);EUzdHk;tka#p$p<#@G6&Y0LkYfQD`%c>Fma=+Bb#*$gwZih z&!v%#oFC+W_6Eho-+AEB{+zt#RVCDeA}-!RT)bF&;pwZ2xo{W0yonD$Z{y>jOSk+` zdo^@U1hGzVD_#rI&t7ui63mBUt3t#XSl`v$UHJnpt-ZK>khyy1yxj6--D&gnG`|X; zt6Y5k5IkCYVEye`W=}+>zb$)k7@t3euc-YOibsZXDx;g2YsYTl+Qr_rs;Jgi|41Ci zKfn4YIzxIqflsCN&ctJ(XdSgmtNwUdq@MY?&YMZx#65Ug=j2rB+?z`@vp>cjv<3xY=7vCw&%2zkB9po!#SY^~( ztCarK{K3R9&{fJ2So&@DNNMg3UE=6J#htR(Du<@*vyGo9))CIBa{24@^~-XPztJ82 zows82*M-tw>Gf5?Cb%@u5sdiu!<5^v9Ax-(r`B;+eC>;eMv}*(J!C&!I=`njRQ#(E z{9b{)7PI~u;M}E=msFY@{pIj!d?xp}it2}bq_p{#HK#e>2m^=h$n0IY-33~)wc-on}t1jEW zcx{p^qc&N8IcJ;Ko}LJZ!Jr87g{kbJi#`8<2s-gC2X!^;*##PlQq&^$ z?Cx3je3;4P1qdoo+cE{s`Tp+vc{0yT5(Ibq|NQxU!puC+{c_#cecji6z1`QH?b|kG z6BcJl%6jYB@)S!StUFidaOp*R5r6(NAvZQhb~VXn4e)&bdykK5Ev%c9;h`%SgC`Su z`_tN-^+5b-+}K zqny)_O{#%4P|y2C(1FG*edh_viRbBeF6@H)yDr?a4GLxtUMnwW&g;p4drW5?;g!UM zwR$mWwoQ9(FBZ>^t)8p4;SY)rH8IRl8(W_A#V{ZB;mY5CoH2efI=lZ?`rmBqP+r`N z?e~tHey6$pO5gGKTSm?XFQz?Le>s=_Zp!Iz_-E+P+E=s3H^z5 z9d4hZ7yq0Fd~-Tbza5C*q5A9a`t!-0f1^HKne%M%n>%;8`l0OEXDXw2{yJWH@0nNE z`|Z6K@6xlgS-%a)2VP94pSHGmIB;?PpIn@u%lbWA_^!=~pA~;u&wc5MHHwKVoZiXa z+x1u|-m^77e)#Evc(SoNEUN9{PVbzcyWlu$fzSR3d$xGnl>YgP@Lu_R zBD|l&`*2$RA45l5El;ZQ-JgEY$CEsKt~KBV7_S7WB^+zxX{mYv)E{tj@&aeR;2+ z_h51D6+Iq2E-$a~@wMFZ6dpXEmA|c5-~U1UZP4)##%tX8V&#|8zINLmdi;aI;I02Z z^!NwkJvrmQ^bbA$!C-L5Kjt%ze{YU`RQ9ugQ`Ij!$o5xF&Q00Zm9s#(qpd7ubauBfZBu(8Uwiw8 zZf~U8+jkc275UnGedzYmU!%R(&!W8%zV_OOZm&!2wVy?MV|?xH9J;-C)ZWgsXm7l2 z?{Uq?t3$W<4{Gn#aGf_7nwQs@i|x$Cox|;Z@2ia=*IOs{y*?hk3a4; zvA`L7y3TVoGPl@wdoKd6tB8kM8JQJ}P6)?k7w^F~=H+)*?$L$VHKt$aEVxhSV4@npI^|xJQ@|p^UwUfDz$FyD0 zySLm~Fl|}%t{&P}e4F6m9^|^n7oC^34hD07yP|Kw?X{cVTU^FHt!}&5ma5$)rd`2o z+AVVGri}Xx@P5e$FL&$=fOmvb7aaK+;3bD(KfK(DFaX{$PF)wd{XF~*^Ua-yU#)e` zot?K}Z=CxMJlq~8519w6bWDST@lM?;;@Z2hSIa)Vc>?F`8cJg|ZKpTZU>ho1Hr2!j z)X4sf-8t}pqu7qt8rSb7JGE?6|CM+ZeK)>%;!6YAD$ATP{nkheU*I*Zu8EuFaNkce8r4weOYP9j*GnBXBt-z{`j+<#~yI#AJ?zw zt4#To_kYFh3%|q}Xy(mx=*!-DoY!(ExbWg5|I&O{exJOS+s${`^z&N2?|Z(&SALoA z`4V6GTHo`9zVhGol@Wd0^JC;o<$HrAnM_mM*`H6P!_Jk}_Cz4mJ7i`ab{M#ol=J0-!stvH>IdEs&YZsLtS@+%r zjI7kdr|yZ+o%6%sBi9AS#CpX?`uT<3`;H>dJhPs7w)Wu3zVgt?XD$oZ9bM_vJ#$64 zt~oIFher#WHyu6YROt7E74zRc+UULef_*nUVBR$cCfMJjz2E2A-{ZXBU$nm`c)usw z-xIyx7uetA3^jd`zx3#%PTkS=$jSH1=bSvsyuQ!8CN_ral9yLikkhIz6{)J|oX7of z^SNJzJEwYXhV~?en!hI?MG>9FGLeeLl;VzeCXEtZ_)|M-B{pk*o{9q7gxL8Iv%d9JeJpD?j(uin>$H5@VTaD zRi$ege=T}PE%Ch_E34~j*E@9`O?+-}>U37bEY8W7o+NfB1nn#) zh9bngOo3*0I-wOw^rSrS5Zn;1t0sO)=gi2@(yKfw%o*qJXU7&5X2%lXzfOyO@|bhQ z0^~8*{o^w^>aDKi_0tS(KHlHn%-CXNSWBCs%yVc%&pq1Q>C)y-mo`H#ZR)vbGvw0d zPM0=AE^Y2~X*1-~rg8?zzO@?K1de{%EC2_4fW5%d=Khs#|DsJV&%hkfCOkDn%z$#} z=**e+m)D`cPIzepcqk)BUWaUIRwjbqm&Q(UPB4Kz{Z*ZR-#0g%FlPga$!rY7-dJ;b zW014J!dH#>^Yx)vHL}GQ_Hw5JzQroyQrJ`a&j=|FU9lPw_JKLr<3GZ;UJBjmdHJ|N zJj|Y;9P4w4V{wR|aggVtaTISN3 zXVVkCdHihemp`4K{R?qLT0>@yve$@zX^#E$A>Q?Q#_aMlGdFrRhG(KX&1V7h0MF~6 z&m3OUU&qgD=1yQfFNfD)BlPo{7hIUcW5jFl6Q>iD`I{nVL(N!nL|$H%jz9z4tzpi6 zyZYFE>0_ciP9qoUGMy^-RgFNK=d}ypv`WSNkEz1@eeN1yN{udtRymTLJN={K3 zS649YO3#xFE`6*EniC(^IqVMBb%SZs>0QqErRaE`9;SAq$O4J2$U4nN7BKX96ZD8I zaIEa76Rj*z_}4qw-#l5MpVm6IT3O%*XiVP~GsRsa>0CawG-nQttmD$2pI6OgeMFcm zV2VYcz1(&b@8+ik!%K7KW|v#0`-MMo4wo@>yJmwV_h%I zS=Y6r2d-;9^VYTYlOXF_`;R9>Xb;gj?2wO7tB%&S=dXu%yu_KYxcIYjB1%T_;(q*m zQ0Mf2fn7h3bu)KaboTbp-9O%gPjLydMAXS|5}j6J>-Yt}LbLZZ&WhEt4sG6sP|JAQ ztraYM9(01oW#i{Q8{)X^dLF@ZyJu$C6FlZQ{KDT}BkMn6cuKIh#oHe#6CDSyp^jo; z?D;{?4CkM@toAIgd=y(jiv37FU5^(3vqy^!zBR$V;pzh!9>5-?zP}|}3`=^ary6rzw)~pTJ9()UVCACMAk6?hm>v;PxBkwCG(MRngvgQ5Mh^)P63~Nqn zRkGS^zXCga9%P|l1GkfV0CF->-A#xsNZZYipd}3-_w5Rw)2~f_rF`= zz6(o+&guUc<5K^IH?)tiGIL3FI>OqTgN)dSj2L0g7qSogdHZi@=Og;^_wyYOhC$w4 z=f2D0=Wc&?4b8N2r}(`496M@S^2l)EdQCX(&-Y^UJ!SlfZ}qQ1@fhVNUdZzl@pU`-T*l|)PTs!9Pv5(4v6I)- z^{DP84Vn0_+GVw`;8Sh$cv3BKHfmdIU!R@R!fl*=?0--ESR3o2twZI2HJe{qf1oFq zliRUrFqxb6+15c_@3SA5W_{W=vT*5pu03E1bA5qF$HOgdU;HC*i%i#&t4~0?e*WIq zmmklE%B?Lj2@pkAGnk{?SZ<^reHFSTB>0?W^bm+8gfN@n6Z6;eGF`FN*io7xOnPo`@jp zHx<11`F`h)%KqAH^PUG@8dau8Dt8d2RgI zyzAn>zL^{&FNfkE?97iJd%Yn3Yw(#^LmbnkQ)azCFj2#}1qGJQ;sd!J=@5>^xD{@dKPK zNIdPNJ-bT&`s%pOEfGh&0e<;X>S@m7Qob2o`w+TzGxc^``Gj+Ve`Iu?TkdjViV0Sk zRoD<%2dyh3?z;vj_Bp*nH}9|4=)QZviRu0x?P>k*+TC~St!yQI%G1GL$5(m?oyxs? ze8pzqkWJ}z{8(O@*P!(pd>*GR&D=v;i@sb&e2B>zf{vWMc0C`5js3NA<~`H7e(#=9 z`^=0jILl`T@jb`Zma&hxZMgDsjph=0`LUe&=|7K;kLr`rne+Hb?u|HAUS#Y_X1>7f z;~w7W=a!Oiycpcc{^sh&%*QPAT=KBhLrYq&MpjJpIq9j~8{7SEur6z!w+3Uwx! z!?J5V+fOGIMt>N~JZkS;#(KX6nPr|6+!sB4|GFUZTVIiL{9elU^|1%^aqh4@FLpn^ z+*`D!QbF)x*Ix?zSE}z*cmZ~qr9<%oy&H-b=-p7fK<`{$VEop=BiiO3#k#}br81Cj z_&`3nW4c^Ep!Y-ZffDF(a6aJCq4lE&`@8rx+Xc4wlWYGX}spzuNJ)aO-=EUUxi8z6MQ<=l5 z%-)UA0A%x@iQs0|5yPo>xKh7-AG&JGyK;;zimwC(^ldH>IuJNGD z`19Y#IoJQm=uEyrQBGx^-xut?qID} zp9^(QauMsv$OUGN&-dzbhp&8CJ>274JXU>Ae}?0!DG@2gZF zACT^gP<+KS`Yj+9M{CyGlPrF1jzr})Ql3JOpWeYaxiZ;>F7x?&;WyI7{rt2Wz9zkN z1u-M~J~c@E2KKn*4dJvoe+CVNI7hb{zSs=nB~eAZXDlQ zXw{P!_LgSL_X+IYo!TG7i-BM9j^E)PQgZCPgp3f=IeXbkt^-GQ@3(e~E^wl?Xl)U) zhvu2PK1;x7E&E-_*jPfndx^Q=DuRvRZ7?45XckRUk;2-CMAN$mH z;1_KPe&Z_}lULV(U8k!YS*9dIONmz3pFd};YujaS#)gqgODW`F(bB(EvcK`Y99q&n zS;T;>?~egt-?Mb<=`iAp*8l5&-kk%(P76b8+3YJ_7>LU_0}L;p0}Q!+Jz@LWUshUb z`qJ6eGxhb;bLdNUDnD-5dVPg`>+}rcT6GS6b=<`ttLHGxT-KIrKG7F=wom zv3!o4kkO`bo8!CRHWFS8g zPte+Xi2dzad_^H_u=inu-G=-=$Jk&)xi;9=m5tWNA{(r93fX8y$2%Qse~q#xJ)SFG zV0ck`rjE}0d;Ceh8e_}F7PWjM^6;@Y;O>ACR|}Kdo%%2+A5B6Y}gy zL$*7az0zyf&yNJB_=EVCpT{j9&)HGKMPctn`^?soi~i^zi{K6sJGoAKe+ zV9ydS)*SfP@?h&b!CZ^ac>C4s&kw?5nERo4%uZq-hU765vw4jAQO-WEuV-vu*}UWo zeLeB-=qqOX%H}1RzV_F6@pCTkT$|HZ@{9P?*n2y)_YOU-_0pmK${UxTmz<%m@1ILw z@R81O28X7vo4vmLykuPed}YQ3e-W+UsJ{5_?FnZZm+V@7lovnw*!?`kr=M4dPdrZU z|AZUoddkNmjK8?up3h%9RXiedK0g^nzBwJK=s_0mI~}~8+z|^33!E$P)4#Kac!h#x zx6D5H3bt_auM{}gGx%NwFX_X!8{l&;Yoi`rs1~~S$Ks~2@t{k!O22z^8u_iHLosLK z1>0%6a@o|`+2yVNW7mm$27e(qzKwNp2Ye8{vIBim@OFa-8w-_ZVxhdaprfo^`LN+V z>sJP^iY>vXUL-<>7zZ8YtdJtORy~d~BAX zme^n8KP`6eum%?LGwwUox8^_}vi(EouL4!M2MuUDVGZ`~yLX+K=I(e{r{ zZ|tNE)=r(*rUy$0>m!9uWAFzZ4~jo%?U&$N8>2=8AX8s$!`B#2Z3 z&s;|EY++ACZ>;M84(Tyb;fj8Wz)2UnjJ~_J3bQ5(wI({(nlz;b* zBGyG$NHHJ-*TdPYwc}Gi+gj7w)c*G|aVO71KVN~KlqdFs;K&xy@)6eh!jFT;$>Fl# zEuN2B_PyEl&d6SJye>F`uJXZ60p?t5eB=PyeiN96r0rQ5+WvqzzxQ)!`~NUc7tvn_ zck_LT@4CyKd?q_y1#y{_(BI2fg6u2sHjIaUu^oBby#%JPVx>z4O6oJ)h)}SRHFE!y}h7U(8uMc24Y{>>J@7eJ6v*M_RdO{Yv=hVEw#)I#?kX7kz&9rfm7g z!eMzfGSeV1T0VV-cgUVY*Bktu;v1Tw-|qqUFPAT#-3Je^=`%41>sK}o-q%rZbhtiH z@gZ|q5*XdvL0#P;`2l-U5BowAT9Dl|#TxMNHxm5y!0XiPEK!&7LVdNbIA-(n6&E}Jpio7kku@cs+|602{Q8z zy7Gz1!8D=YAE$jwIfAq%-zIlfBe^1F>*~5eIZ3naRoxl8vf;7MF;T>RA8}JF96YL_6Q6 zoyoSH{n1|qZ99d;Oy8N)POlSNeuj3w;cw@(+YUC^)EznPFjqIxj&f&t@I-;9(H+;t znQ`rpj+tuVVGm5*mebCAPHZmiq=J9F!)r(5TI}Y8lkD@V?p<%6OHQ(I`pdLCiE*0T zaL{d)VsVdNZfr^_SKFSSUat9=##x9J?p(a<%|&tSBKk_=YaVPa`tb3)b8##>r_h}X zU|#CMTpUYIV=neNvGWYf_w>W;AN%`mJ5kN)cfEGV_ZZD-r=2)v+KCWH<&E9n&U=}5 z_D3%qlbO?nIqkga#6CjiPT}7htew4?cGgG77r5hMPVrq^8gs|>0{aE+M2CRqRlU+{ouKRi**DfsK3)7R~s#%b5gDeorPIXzbPm-hUNnbX(v z(;t0~IW2eB82)#&#-8-%b$IMW`b*-Iap$$wzsAnx6+P}cbIm}d@yd!$77s7QOvv6 z*j(B*^T9iJK3dBrTU)Bi)$a4|WW3t!U)q;9eD#x!FXz|`OnwyPQ-8j=a>a2GuidOz zQS@0auZ4|m4Yqvw7B^p42|6M9ykw7xlFutQU)P~exo7iO(==K|1Z%$)y)1k3 z+se4sx8Z+xm9b3}*u2kfIsbdfP*u=%S;MH<XF1YRqhW7QGu79-0`O%M) zPM~QX&vp_Qa0&XN;`QF3tbCU8U-pO>ATw#sbWT$Hxpere|Ka0}DR8blaP_K#EGYSH z8-Dce8}a+``5NtZ)0h0}x(6WY6f`}lXV9FnFEEGJ)@08;vnP-D;?oolt228g!1Wd~ zUo-aF2=Y)LpNjdogtD49!6ThZxr-$m=-wXklOxl8Ay(4@uVVfK+!=#B&?|L05v=lPi@E($a$UC3>`?*kn)U z(OCRt6w5J&HE(z-w3E+wdk&QI3+8z~xDB=RDJ}+?LgkL?J2bBEhs}3A&ui)Cdx=k{ z7H@dyGP@Q#@L%Shcbbk*E;rvo33Rmu-E`r2=Xeu1os7*;`mt*l$1XP*?b~yUeU}rn ziTv2inid~#Y;D|BKgKy8#Wxpaj?17s{q97jscl`oDZw5rA7_|;%8@OQm)nx_@IB89 zx0T^vF8lhT9Z6_Re6QxxxyG-`p2?muE%qV#-XsrrdyeL@hI#Bn=9Vnpi$7l9C6|SC zKak`?aId*aFn3OAg&S96VK2GMIbH*eFP!`t#?2j>!qaQm2bvc-$GbQyvby!YODI?nOsu?pJNJupAR=CBZ2z6jYtxm<(94;*Aa ziV`~zBiy5c@3MjNnzM^U-}F5Oe5rnfSb<%viG%R(t?;5+ zY}M7QkB(s8zC7Z^%bmQYPTFXu4bl0eWwj?er0Wfz8$X4-Y;a~i&kbh@atMAJ&fX*L zw2S)vqVv@9<|1G)jJs!uItA6{N zi)A($}HzL@luvd1@liX$Fe)3qK+pu5m zgnm0%+a7OghWD-DcMoGfRQmHxl}^!-UHA{0p`YdOf-dAUlONBO<+&@W!o(gHJGbv* z{YuuXywt=s?1D?h^!p z0>-z1aS|}H?$Ql|>=}ZyIN&tlr+nv7uxQ`ZK#>bufw65%KDrPd(hYn?@W-Ol53HN+ zIQ#bScZ4xt6DVpb2EKO2p`4-noMHR+oo=E`!M>{l1#X$)O_EJ}iILTO9D@BM_2jTAnh+d zL;Jb;7d`m*0)GJbOOb7}`hYg#gY@xjUmu4VgNL6%+XsHP{kBqcj;!_>Lu`=tXAjZ- za(JWPJ}v!|bBFkoL%l2DG4<$H?Z`X{_Wl%nxkLP!GTQU}_6*N{5kiJnzM7q?k1asF zTJl#EKcnLAvg(l!QMQvVp;hn4TL?Qt-;8OV~G#2^f^|%lM&Ab3{0%|r8ta$9^Os0Rhrda;`%B_v^xgPbI3o|7ZTL3p z^3MyzyO5o>V@E5P%$@-6?qQq-Kg~Do+(J9V>tC^$`bID04x4VyH{Ft7I&&-YREeBf zjvOSrMj5t>4*r%ng~+t`t!qG@{T6p%)MAI?Tw?mZ^CIzs$WgkJb91S&C9GHb=ml47 zpUi!v^ihWGU<+_ygIX^eREca*@VzNN3CHipmY}hDb?#^Ws;MJ;!+qRWYkYs~$C5ED zOxp%txNG_EWx(wVddqO_$uHnZw! zJ!uWF*KF~v0oHEYX62`KDq?SQf4Yh3hMtR|UD+G_^ju6IqG#+}ZTUZO;$7^)>NCG6 z^ia+gS8aZxoq55p*t6dG18sN8HZ7t^BRVK4Z*48)g2c=uL zefs-j(Hb;(IiDVVmg+n9vM=i$ba}Bp`7Icy^F5aycX4*eqsKq{|2aJx8ir;Xp+C`P z79DszSv271$@tVP4PP1il8=U`WB9 z^z6Z7Xc&5FhbC9K^e7tsEcEyqvg%OucpU%vxzXe7KPWx^t>T$nKKUbkhwkp-Q#86x zpU~q2`gG~>KECJD;{}7z<8e10bh)wNX5vA0zo{p0ditDVpcLmVeL*o{IxDC9%@l{( zf&Dp!eBDDVlytF5_Ox%pQ#;|M-RO;7@KfoI(jyZ$TK!IOgWkL@Chl53m?Ui|HdMYO zKfir#B6s~AMZtX$;e1N_70rZ<5_|F@h@r(1B zV4oKsGI131iIrqM>WmHj@2`1pZu)2N*Ig!8)acmNKj7|B;%R!Qqw}uHE99?x890#N z|8CBGMS|#+z+&t`^t}jLtmgblDK=cyk^ZYb7drVS7En6!Na`nV01xanIyWRfrZ}C| z?31gV(XqTQ5t{=Ze0VPOT2^9p zSdCTtzTi(8_=8#Sn>bQnq5+n%v=xO&J!&Wjlyj2<$FF*&|} zo;)8%mh#KnlB*?8Yj2U9sQj!+=0P!`9TS}N%n*D-vRLUACgypOY!Z~^uCDPN@T(*; zfMnrLvPndXk~E#Lk!J;z_Whr86;iR}yVnZlOu&1>#i#B5yJGmJx(_4+S#`%n7% zxA)8Y^hanL9juLYQc;4h!T5}cWpZ|niD~^WI%Q?pMbPtR=vixWQC~RyAn`k;K_|V7 zcpKdTXrDXA?u+jQ8`N0)jQZjOx%KZEqW)&$9VowlQPZUrx?jzFj}+#%(Ygq}a2suu z1)Vs3x7NJp`OK~EEBwDc{gaJ9bLpy|o{ar06JNyGf%S{A1zT-yx+FfEj^X$0ke$8M zyqg;PChr2cY|FwIm^c`XNAVA}inoAH3Jh(*Z{RuK0;WmerSuVdmtq)Oyw}H7>I3@I z9i(~ViC6OVam65gc>XTYqx#V2B>K40jyql2MD9~;PNlv+CaDi-dli0l-t~{+g8ufu z+&_l?_MvgpKA&p;OJ`_*nA&IE2v7d@L;daB^JiH&VjUSA@hKeTp8-cF9;bcQaW4Ev zd2Z(*(|$kvtVIJqpMw8={O-_27Jj}y3|_;!*B;ive$0N->cG#dZ#%tFaf^c2Yfo!l zK4R@7|3q8*J(=8s@SC((PcdVU6F2fTU;QXFp_mVU{XJ)>-+_EEX|Vdxl-K{?sXo64 z>z}xS9iJPlK6v)(Z&!VO4_co&%=?u3|LqL*tD&(I-_PK$fBev?*Z=*h&+ozducdy+ zAoUerp!$lH`77${cR7Ad;soH==&0b{&u_KX-@NdXjfK8F#9Qy2z0R_i>AsTv#8W4s z;YH{&lEW6d_OsGK>}RrB7elY7AM(X_aCTUIK2M*X4x#%F#^#ZSk{Bo5^%C&i{n6#) zzh?!HYi|Rd0rob*(*;icWe|9pJ_9`QLGW|T#ZQ9|KeC^d4Pl=XOuK;Tg+XAt#RpUW zeK;_Vb^W?)?$=L9pBs^4h)$5qA2(mh7Y)_W+H)Tv-QvrYV=q^>rxEsk`~(!ddd0shz~j&6{%ZD4x*bj$x?#U8mzi%k|&McPHIT zI@m6AfATc+xA2aY#1!g$!OiSX;!~1^qLJGwkP~Ni^8Qq?w58rJNb(-R*c&(2GFul;Wu_k_zQwBT;-hse3KKZmhCfed;_(I*?T_Cel> z4|no;A7#c7XM{`?=j=c7HZgEKv-{!LSVsg}pNBtz{bUvS`8a2l-cH_1$;jKW-){a% zB>wp1Ft~N|Qh{sfohjh8=P;(mp8leZ$$A`ns^IYKrjK6$UnTBCxk@%;Z`gt@b`m<5 z%0#_Am$8^V=dRk5hbi01Z?oszHR+^q=i#pw{QV643Ahd41#pB{%7D% z&w}9YRdCmc+^g7zgWyccX@Uj+`rtAplj^4wL}@_}_Qe18Rf*ppv8nKVV)-u}6r_VwG_ zKhK1V5V%;KgNu-RpL@u~#bSetP|Huj1>+{(?xNUzjMKnzZB8;DHZ2vvZHa1l2_$Rch`w$HeCI^`I^cvq?iN}0>Np1Dy zjlCvUUFLoSd^7!PTkE`mb@6-Fjw8DmI3agNzizV&++v4I-%q}qFgPk>t(8v<#8+Ya zy>~=jT=c5B_S13)wA|tHf;^WOq+DL0=M#OrAkXCmdXJns>&80h85q=_Xga`}XlWRP z)|d;~Ms7w{lT4=hQVyjua4X)h%FhSfvadjwDp$Ln{Da6^$^|Zc^$XB`^<9fj_SKV@ zk9Z^E3Db+Yi@S3|D86_+_XkhNH}~5qABxVu*E{&4{<(QmiahPsmmP>b3s3GSacK(K zHo-iW$o9k@sj=vfb+`Ystab2W)_Nzn8I0xxlj!3zAKi7*f5Q;;5Xat{>)+@r=j_Bz z?tXaHsqoL|Vt7-hkGF>g;qCtU)SB$)?eHDXHzFSYZ+EdSSa;s}B=}0}>TocIy(r$< z4sL-#dqpR3$lv1e@r=9@YPpm7-mSd&%=v0~`5fdL*>c_aUhm*H>bRVFm_>e9=G(N# zm^8NEms36nUZC^DtKkZZOKZc|xV zOq{>gM-}V!gx+&sw`>Vz4dDveFRJ-0bMk(H{Cq(2jg7DNVkI(iqUipIEZQyGN82F}) zXfU`O0M}L@T)`0o;i|7nxB20!52Tfk^f4D_`mAx`sPw_0*lGQ)0Y{ZC3}r41n$M0% zbw%|B*SxE-u8fR`)z;f_*K8dGhDWQ?Kk>uxsEeC+4>v{q@Fa&{a}K!S90+qaB{T$X z$cJ2mJRlgCL`Dw8&68E>ANt{X(uFHn;?h>353YG<4_DZQ3wwmIA3YGRR8`vX!>o2fy>0E-~lFdAeCqzg0<15-e z2wcCbO8+Zy3jI9ccUpVFepqtXUJbOYwPkrG=knW$<@eTDa7<>6MaK-p!SL$zPJds+ z^U~w;*{haH{X*A`+*E%t^;c70`}!v8D=wjYG-vnz?Q?_FuiuegK6L$c{`$_if%Sp= zF!i@$*AKezN9kWWmGRSM;BSpyF>zph?0x^6`YGD+>I?qG(x(`obY3$rsX69s-S=rv z_IJJ0*}4FDDLZQQ5|yh>h0<*yqv!VT2Rz?j^H_EIX6kD0^?T7{dFkf|DYv+}I<5T4 zrQ_Uk&3WmG%JCb#G!`Wa>hC6kmnk@u=xC9td>1P?TN0oy7-LFh@^Y`?alDFm)G)LwMCBDthQ1^v~^V^ z{VRW4S7o<#t=d{>;Zi$#l%O(Ql_fVmJ#0N+gl`EADAQ;Gye69dgr9qFit%yvp%}@HNBzq zkIAv@7<I3KcGRNju^y=4$H>|LB7Qs^U>pAIVw54apHwRzHgBKY%e;qQi=S0B_&nQd$ zzX!@rJa=MuVAl!WlOy*0SiQSm1=|*vzG|Y8^bP)bj0Rnwgw2U7S^3FHpKSc2kF(?V ztvx%Ff4sU79*uq+CjJasTp!&vGnN{j#~tKOto=@4me1_l;fhA|535628%20^ReU}^ zE$O=I>sI>e8AN}WZtSC({`%;vZ=q8m{YHK^gTFBGTKMD>*glg{Vn-+=dP`F7eC8n> zbaga6L)R_+Hu@Xyeh+NkJ3nm8FZ1q(&e&7t0N;Cqz*n4OzpVl;&0{UN)*d&B{*U9w z*1RQw4;eR|M1L&>U#Gst-C*czoHa0YynQ7?4ALR$l(GJ*psQ-|M_VrbtUhzPID@+{ z0ozdb#b0ae`x*Snx2m&rDeM+qS2^i_rCX^hyR(sTMiG13YWbI9Y2E_{#SJ%M#|dE*lKiIF zjbiEu-rwJtOK-OSD7GT$!?NwKA$O+o;+O1pZf{3FE9r7>e}K2RZLD9J^jO-_@VS##(zx{pxofzh$FNoh+Q`#gBAD1BydgNqj^Nd@heW zIN-~~L5z)EgsfE~8_qP&no!p(qrB<&`pWI1oXViXrn}0CMbg>!VE(>soUPmDto*Ug zP5+$O8_~ob<+h=%o_WNggvsfQ&7~Xr_d#r9mwW{5qD6cMkJElicA!WGHV>|l53UcO zF%K^9eMba44z`_5KDgx5)I7bzS`weR<5F*3TfB>gzhCyr#wC>V>=k>#wf}sA>?!M^ zE3Iqn3u$okB7V*EhQIXuP#OEkRkS78{C?CbpUqYFSZ_^u{VgY-m*2iyoyVGje}(l4 ze-r%dldaV+4r70-*Pd$TX%XYxQqaH8@oXG?4_+*qboauWDC64JTgCf<{Yu&TG#8Rx ze@T3aetW)cuWhX-`JXQL!C=}QWA|9ETqW&qWv_+rYhO2TiNBh%yX?A{NtyPQ1Iw5( zy=ljEiOLiWEMwZ)Z`+wnnc%R2WoT!8^)(Y?lFuhnCOT_~GT*gjK1Z3<*dfaNz?PA| z(KvC4GOKMFhce~&3@l?{PFR?Khuq&ja$p$)^G|F$A5bPbR6ECPJ6)714-RZ+lIY?J zq_nOigOUJ zGi&ohtIvD`8uQ{GRAy3Pz{EkQOznpuSLVp%>_-6|Kx#T?VS17HDFIQ~+ zW5w~Ft;6Dn7s6W~yVjfose-q0rn;?bT>dLvc2HMYXTzpi2rVcjH9_*F*BX|8P`@neB_u_dK*J@+v3t9rm%!!48 zisa3KiVku(rWnuSqF|Haca<0Ji4h^rP&?#t3GVA`3a1-K1o!CATP~=IM;UkL#^QK)^RRe|aiikG@kC>=BDp45(b2@`{IKx}TsbD#ge=!88c&_*yW%&<1>SrngP(8dVBY?U zyeTUG8}|Q)p_x78ZP?>fn)^e6}3b&OOF^2^$Bk$p!7Ur*8b4gwKm1GBq zTo8_5Gr1~$9pl(~ffIjfav)C9`n1E`H)9)p7Wsf2{Y^g~5p0^|gDvt&-xc!P>TZ=T z@VH3#yEsAQpZu0@0iW@s(2wHq)vscm)wlLXyB2OZDftY2b-iLCjjqx#G8Qe&j`Q~J z8`#3xEWh06U$0!Q#(tKGPgJa{WQ|2SSJChlvksmeOMTYqE^`mftk{&l1xDnq_r`I? zEH%}fl{DYWr=?B!-r`KafHC-11wU4O>q2y(HaFaza_r)#7!=AEC1C%CQ&D zH}@2T;a_@IMSO4-{*Z;lv}=7LW3(kX4~KubKfj3Km8?(Yi_!XA=&sMn(64d~EXL1j zKeN|oE$eeN>vIc#!jtf&Hq@_Vw(Ujv`+DGw-6IP2krza|zL67FftTH^kJpI>nS}26 zGkm>WR6-2L*MId7TCkCeDgFpP?)#*L1X|FxpKFjUbqJXCRL4S7FjjE(nl z2l&x7p^EpLxC{KzZ^Fy2i7U_Gp(p3Zg`-=+(FaT6{ecnqN^DNo1U_2jb}dzI7@jYJ z_KybVRIK@M zKFTz3cJOK1d4Kqviu%Av+t&O@#j$_4L6r94ZZ+xTJ69m~1C&n=(( zdtm$C*++{z!BvgE&yXRKd!Y3Xv`5|v zZHhkOksX|YDHbh5|9<~?O1vGK)tOW6x82Zg32SK|FuaA2_S428n4~ivgm$apr3>+q zNXFW?taf%&U*8ocdA{$$a7F#c|!1F8yYoIk%j}ie6OYc3%pOP(VdJ1ah;v%3bHl}^H>{s6^EWIVtqR4-bU{8Ta(Ay$YWps za!Vg)SrTjJQs-*wF!o?Ib*iaTO&zui`-8Oa_pqK5$a&I>lgd%Up4G{GcCFBPU+4Hp){SI5`Bn;%$%-$m ziVtT$>M2LQn=w4j;h%J(@Va=%%{)ti17pLn_vobHe^t}s zUmI7YIg&44F&zszCrz0J<{9&*-&^?YwIkbz?seAhghMaP5j_yaHLO@qnywC!IjGPKx3-w;avDtJ#XLEc_lyY zlf0XRzM*!B^Jz12@b5Y??LT?owA{sOM(`=6*Eo_@#*YMlgZVh9PNAgJi>XzozAcoi?Hn}@0ZrCxhuoOQQH1iUr_b#^e7I>z9R7LhZ#wkow|6=BgdhF+ zf^6GXq7a&49dA{eh3I3nRe}zlV2yZoU5&;2?r;AvIVJr10C%OPJ6YqY2l!1_W2g{WX|qX)ayBOTcb8u14(2i+eSl0{r_o<}?0FTdG3x_3)UUrE!6g{pQ-9NlE4I3t85elDLjIGVFc$e@!{};i zXE$(^ZJy=kQ}pRAzI*g~CuXmi8+>cVTQAGaddcupe;h72%(5+M&HNp0YP}eFquu78 zFP^M5kvR`7e}>LP>mHgEvVrs={8;I}%0NXQxYym!UVL1^Z?UI6S`crCZaQz%KF9qg zrQ(StEni~}Yly#9ENm(M8?%S9);v7V2hZB)0@mMT@CD6WDZ9M%!+Dy2zH9yy5$0Uy z@@O|1We%3+%)tugfd22+956rL9C&)Q=3tg@4m1w*-}O=EAl1Zppp7JQj^&3|pUPi0 zX|`m?W_&H*1kd@%j@v^4b4SpV4V+b7?A+e9{=Q9>ynhP0^Jl=U_*=2lgJ$@Y2&*5ZAeC;YD>+&X1ove^0C^JoD4~{k-PH?2DN`%{ttCRZQ#p<8Ru2 zy)}`fUt=GoU#(p)hraYKfB&D>@9(yMyz$f}$jR`4LHj2sxb*S=`@p0xepK$n z2slokaCxfbhk5T*=8fq+%$*4zwTIsM@4v5%b60%K+`rHaAAFLze3ZY1@WGokufx&D zbO%WRe^xi^WIyd(;k0$Jj=Sz~+WKy@d#cu%_S7ltsrk#6%$81c(A`rHx_he1Y-2y& z$#dvN7tOb=Tf2{xiMI?$KJ~sYi?BTcOth zy!ep}FFy3>Kwiw=b!FEh@YN@+kFE#*y7yZ-m-6AqT~8CEGCnWv;p6AIT*x{MzJTV$A0LiuO=UvYB|LY=9kG12OT)AoG`ODmMI4HhK1d*3}K{<)cT( zQ|-Z63fxQ1Nr8X8{|;m2jQw%RPX!m?zZIWE9uuFe;+gm)_V4w3;FGVzCwq1k#JZb{ zv0q&q?_f+RVE1_7zg-Uxa_7|4VGP}j!Gph>vDh(iSJtWec%M6lndy(AbNGBtdmew= z<7+p=--rVsR$Fa%f}5@^9w$9H8&B}C)*5)>X5|rpXXWC#si39+`aXuisr=6lz+%*?A{`uJkJB)fQtn$Ci49 zd|P3~F;TapJQ%w|vPC2PQnz#C_1G=H89#IdO;x0UC!y$P2^Z%{b!F&IlJuG zwlX%2D@rcfATe@%eIr=sBjbJ8V`TeKOqm(ar;KH9)>vr&9LEyqAIp!zZal)$QBk{&zZVu;Aw_kzh-SV z{Bi7ScVx@lxwfa@o|nOyY)^0d_8(&(G4g!o{BxM|bdu@+3;9#+o@wK)g#UKh^6y^; zAEth0fBe^Pd-ZHwh^IUMN^lg0v-UsLUz>B^gcslTV93T2!BZCm(SJLSK4kP;*`@Np zlk`FO)cVE0o0o1R(VO()GGI~J#YbJ8S9PWH{?EYegVqZ<6>1|&8@1qB-)s3^&3USY z>}i+K9(}E^b|#>cF}H>2e8kr&J|zL~KxZ-a7g47qocW&QU4Y*S&b^^K&pcDC-NRG8 zm>g>p5uVqAt5@845^d|Br+-Z+hnPQJM)M_jlE^Y1{1M==d2*QhI5gU#WJ)ttj}&_A6Gvtw1nQxxg>W8sP)@%%6N3+bHJ zMAqsAYn#{tZaGU>mttP9eXZEc{--%u#BdKv8x9=00^NaU3HmFMEkt`3{Yy_%9npY3SD87=z!Bhgn{BJrIW#f` zygU9EZT*U87{86(BuN>3ly$YhhAy?DhTje_l>n3K$G!TyCLpihz2oQ9e~o9d5j@W4 zX2E&rqF5F2NB_vXf8d#2E15YwIpLFykNW1&n?IWmDdP|8xBM@Dm|6#uZ!I$|Gftx3&M>=bs8k+I4@BgTpIam>%G1pM#mhuD*~hcovk zmSq(8#4Nic){V@IjuyjS(pvW2*|ERf`Y~r0mBSaCd?jOt7tdx+7HOV-Foii>xnlwI zl!!29aPS>{r!DZnyC3cNrhcOriZ@@!_y0lNYx?KZ<`>u48yWi^AOAcavG=`Qy8`(= zl5^kN^Xv()vM0REe6sddW5b7+y(pV1-)AP_5t0QbLQ~9l#heSBS)p*aV(~P4zF+6n z?;YN7;FIf#u?{)^Bgwi-ybO%5Dz`zyfs^j@U3yMCk|E5#Nq#TMx{2q(G38T~w|;M8 zf5A)VPNyOt|NcRjUv6g|Ond*K1H@6T*v;Oyjdif|P1YuQzkGEExnraX8l+rX;lmFd znD*wgCsbB;fo)?b+v(iCh_zp$vYg-9!grOO_U1ze)?ELbDXTU0WKp>8&?OHYAQzeO znLc@5xT0@;;PwXI^?c=_1Ft{yj48WCeNndO{f7^zpE7=LqpV;8e~eXk;bo6ivV@iY z##);A>1^UG?%C0PzOzB^qR58PU1MW4rw_i7+zRi;7tz4E*vT8Nj?W1?FUn58GE(T~ zTGjoE`7IC5{$yhV^Q5xLt@b_yQ?A|Kt4z|9lgtS@-A2gv7jb!0(B5 zF}_ug{*o)OIj^sZvmd1s>;abELoJ79F{eRiRwwV3%Q0kf)P&QEfcFXP5!V09eY)k? zvqiJenDiydNr(8$+^t)pySm0JKYQ-@HI`k(fOjyC>Ia#B=&_2ql3joC2M--seaSP% zAFzeF!k17thjlCeK$+%_HM+2Wjlz#|a4UIf;Il#a7O>{7@1xD+tJ~tl-beO*mfV;c z-ywMYVR+;bY(Kq<3*?Sevv--hk(KkYprs3*E_`60=)Dd52F{Vs554SE^gi!Y z9C^X1ILtZq&Soe5;1%Kc!(Xq8uSfShI;$xDL1l6L*p1vlKI@wJ&d*!<^5H{sZo3${0xQXYU`5k9NX#sRC z9>{v>VvpR3+)`tBOnAq6qE+fE??frF&d$YO(EPx153uiWhG?el?%EB$k%ih`gPvAHPxvy-TB>DV&8(%t)(!WH<@EK2_LV_+ z+FrBYU<1f0Kj``&WL)@iiRI)j8f-O-mo1u|&m3$!dSPrE-|r7u-^3bx6HoEIh&ZXZ z>!;{kzk1VZY>OpJoZF|w?%O0gqxP5vH^+zW@UnAU(sC(tE8XSp;TidKl6V@lSBZZ| zwATgAT|hZ~ia$seA8c;QfLC<{@AhRivkUoq!-Z`xupQz1b->xncfmF_cK@b5z_yU@ zOJi#`_3*uqJ!%(liav&-jrU}K5N;U9b;R(vxM|&X&A88mo1M(PaPyDQoOqqqay@?d zZ^BC+stCs)sj7;{#*!QH)iLo8+sDR_Z*=(n?f60X%_{6=&-wUGfZxx;Z+60yw$SDg zc<(QeKkvmp*#V8DMxpa^ruML8P>qrJz$D*^IWjQ~im^)J@8{n62_EmO5f97ZeUisK z-lw@dL>nRIrI%0jsrGAG&+pUjQFwKxui@-XwvR6ObvL|w4Si|cZ^PdY21fQCA#UT5 zs&G8^&8qkY#{FSrRQ&i2qvIbna-VlJoIW=1Tk&7tctiX*jeLK7O#IjHj*b5YoE$5k zQ}F|6{zGWwFM#FPyzj&-zsx>{yoyb}?T+UjK5)ma&zz{t8)stq#tjSCy@*^@pErI* zfH96cAA7;u;EnMd!?%5$efz7Q42w;stry;Y=)mP~KG$D&EOjqu?W!%|VhnXlb|5=5 zXBxxx)Y0d4?&mdpR!%}j#^y05FPwe{xjXjuGbfHe`}T=<9y)rWgd9Z)+KGMZ;R9d2 zl;;<}dE%>Yy>FiHMqWEc+{IYd-&fzhFsA$K*;`C3)`vIzNxc4i8?*jv=4iol4<6X? z+;b9hL0YBpZ3C6k3I(7Qs)C`;6v&0CFmu$ zS@}t@NSC)Tm9%{LVd1Rr9aW6UK;G%sL&M`Udgy;Yor$M9%=rVqedN7M9CF~!OFxsM zJTjf^B(>bh{?xTruR^9;&@n-=g7{Rq%K-epBwK@ck6@6GL^4za7*jl3jQ-ZVi?eCq zs~O$r0Y1f#q|4nw8B>>Ws@_a~m!N;hhJl{*;+g78R{NZ(@5W{EJ0rt^GuDuFT64E%lMq@eIvF5^!jIXD$v8x;R`7&g2`|1`f5ittO7j!=cV2cKUEA+R#`n zJ$Z47B`wd1yR zGr%6*y6sl&L$&9;M|=BFO>*0X)BasBzo$Ow`=9iQ-$3}B zsk_dxkv_vS$M?^}?^ACj&y~g&I z$zRto5BnfGOu{+&cLgW^{N2K1j~tlx+rK~YBsH8@@6Xd8_0vogXIQXI`w0 z)~1Ec#+RmOZt#(P9!GI^UGsrwmP5V+lMmj+plO|o zZ;upjLI+bhKQ5$GZYm|uyU{l-|ByXV@pE17SY@{@GcibcCI)FMa+mC^3D$vpH$}AF zZ_kAP=(*nO-6Q0XH|K__-@ZN^C+^&}D_?!m*z~-(g^hWJw(E0n(C)*5N8i&;d~s&{ z-q;VI~$hx;5v58N}|(v4kuDKw$^EMq>i@nH8mJ3kh-4#uC9yukQP zo_+XgkJ+!VT`*43lJM6_{7V=7eFJzz&M-cTZUM-s}_CMJ_9r)wBDS=k{HESNSA!bv4fvfq%(}S!p*$f5uT;QGx+&j^qupcZ~PMa!|B=&SJe*B$J1a7~cG5E`A4D*1u zj~EnxY@pkTQPuM@ zBhF*{Fx_vPnvZ#~%KY=udFznbw8$$S!1c zt)XS?73z;Y19_*Q!QrRH*)~DL5r0oDSQw$xq zK&KZ$r)qZ#_ZR7%_)sOZT4l?my)s9j)r+82%Jx>Ff2r(fm4#k+V|S&!{<6cM*Y82E zDoZ|?1;x;73-qdfYWS_XN$tD0fe+>!e}3B&z%m(F&^cFV&0OZfA^PTh+I!y#9Fu`V zx~bO8R2PO-tV4gf5HKtT29;yqS%A;6?g?N}`(^wlu4lbswky{W(*te-#0C(r(ON^i zMhA1S5E$VpS1J~*`!<_1>FdOic)t~^rZV^kj9y$Yp4bgTclMlf*N4QXy6te*xU~%a zYU5ow4?E0xNij%O@TnwoQpWi2WsWClj-9*}^4la|Al|sZc~Npk9{!UQvR21U;0)VX zDZX8u|DkN}BJigeC;2IoS|>Mg{(mk$R_venIA*GyGHl&mz2uFw(da0ysnv0cVts4L z6NL}8Z1WYd$H~7C;J%aOjW&MT!$*zq&}jYgzawrz-=_o}?$2ZX+_h%*kkVP1J;X`@igKD4erhVol$=I|<^{;tfyMwNI-}`@dOI6d}CXM?xaB4eGG%D8K*i@DgwT-?uGOl2;__iMOgvkM$f8G{`fIXf8v ze|I?P?PJ1i^Jw;o(tn-9Ej?}251w#C5Jk0W3fT)RI7 zuJBNBQUC1VD#CYUZ9Bt!aP`9u-nA!rI2HUln{Z?y{5uNYt`Ai7vZmzQ(BACltJYrP z?lV4`d%qqTvI;-ejmW#$?=**p=;v^hy!#6^|3TVAPF`W>9KY4^w`Q>3S(nOfa1?z- zae%$`PP!(5uj5W=ZobtwwC)2Khb$y;W0We}NCMMn}v!y>ZuM z-5wyg`H3`i*5&LCYdL#UoF7iN5hqeMjog*_PP!2o zOncDf-_xgmEgHYR;%8Y)!m)h$=ZfPW`Eg7;9?WNjV`$Eg?+`*Hq_Ps2Iw z4~6ri$e!m)-#>F)`u4$nt~d`2g7dw=;?cQi*qaMKjqIX~|6M=cd~5b)%6yt!^1s)d zn_TkF7tUQSxj5gIp(B%HHQenhSUVE*z*ADW%lJDe0!;fM)|C#-alOI55fiv?1#94!mmwNi;ZTd&( zLT6Xpyi+bz#cdj6}j%Y1Py(@dq3idxUuRYf5X)yi=yeyE?;hBDx@ch7q z2fNhSz{Hy1oL}q@lY366F%7QdNX}n6u=T>%V#fpKU#;^z{o?^+Ev(^tn1j8{@qXew zpW)xn`B%@`o|<#GOJi_k%@pg|=x*$1?*Q+cePvZo^{<{H+hbZ@uidO)Ev&_R0;!j| zmr6EXA2z)#Y$?U08{L6&;)7Do^!J0Mn(vE&1%3K!Bgt97ce8(X+K%&G>u!?ova#w+ z{Rc1i)W^X?JL_*dc#!Wn9hL;+TQHTeah53g5ak*?{_pOl4*O-Brc!#L)NSn}MmuKKuI?Ie_)9#7BG1 z`!Nr(hTqSg2OYxmpeM5bo5YFo9HUMgdAq#d!ucobafz;<2cMSPq&MaG_!&`wnwhCB?5fjYSz>MB(F-R8`oZ2_P$e9`6b?oDA45UK9sy6ZYL=v>AdxO+w9C(^X z+55q{_p3g6#dv?5_nR$i=;;ssGIF|_^Qp*9$(c^tI0#(%m*hvfXy-j(E4X4%MB^g& zPpZy)^0_MFBg(OtTuOXI9X7lw1#vffgDw8Pfw!tfQ0|3z?E0uGhy+U%WyRcDV~oM`WyWDKJF zOTdYq$3lNu?464^FI05O8%fT>H@(4U=6eBnT%bDjcAe3x!?UR~7FmKEd7SfSYm2|k zym9Uc8nrxmldY3?KOBWdqwvN@KTqRpzBi-KStn~AHs78}`q%O>W$5&Eqnr!@AM`4h`ioA~=z)%oFo_Epo^uMx-6xv|_o$jbl4^`5}KUtmA! zEDNN@6R#2vYHyKm?=9-sTQQ%}&ET77-Q%tO#RB+I`-}M>bH)p}JK?eDW@HF$U&>x^ z2K$Nks^G;X6HeYbbddHG8Tk@%-Solpm%yWO9Rwc1G6Ps{1C~R;GI+^lCkuua z7+7ut7UaZLha6aL1C|&6Ui8zV~f(RaI*opWM8#uM)Q>0bUW|n zB9oMFZw+*mUG?-KjJtmm6*U@8he=5x1JvEw&I*^Y#eZ~)+oPVwA#aY z0T2A_$Nk+Zti&#ooY>uLmTl@-orb|k>%u%V$E1*)13!8(YGZ`9dgfD&j|jV7wLIUGHw*Q(gl&8{lGrDocqAb zQ@8&Mx)1Xw9*!f2qov;Pdm|Z>?tjLP`3CTNAc2zRzi@4fW=&!ZzAE+(H0IFsUVQ5A zZ?n$I#>o6D7ssz=;U8gKCEWQZyNq}4Bm2gD<*}p1&G&5b52ybZEISu_^HgwtQ6xq@ zs(i?znb(13DEt>x-m-N=@L8V|87dlIcLUFktgFp4vTo2B-nYF#4peO2JvBvIwxTN2&XRF~$iag0 zR9nL^_5tTc4zh-~v8Ir-`q{QbrJuL}@@8e09YNXiBJyR(pZ$sNMWe{GbwT7HbJX_a zHGbj(CbzA-)}NDYO;MXqq;e-m8IQL(;D0Q~ntW3hvF*+~(d&8O^JRF&o!=Ax41VFw z*lzHNjQREXeRKOi+_|-;^vVxaknuDglvHZL}up-exyW}Oqh>F5A{X6?%)bC3-`8k8Zsv?qh^ zJ{&-Py^g+;eqU;De(oWG)L+#GB0(SY3=XAt+A^r`{N^nBQS6P$O~4s4-HBL^KhDif zFkpUebf@(ENb2tj&K?AEo%v&KV?OjT6RTmzsAP_Rm@|Hj^~=D}>B7)x!=M;d7lwm; zlZ*m|r`AOEG zXeqIV{PoEGJJDXt?72zH*;#G-GT+R1=&qV`9}eDyd;RC)f2pCjzW69J|M(X*|C{HZ z>NoG2-+!XbvprAk`b(#me$ro>*bHvi^T|Kz`bJIui<&{?4Yl`=(#>VZ?WiTL2K}&; z@m`GX(>VzlP3-g+hTXHNa~b)3hShFL_wOVdkPF11D4t|6_xZLmC+)0-!gHdQ98=hx zlZ$y~PK|#InIoORo=g1a3s2Pt&LOS`eM)wrDDqO@Yl-zSIu^gj0hh7I&j9`!D>ZWx zdw2Rx0^=epYj0wPqqo%rQs;fxQ}4@RAGHeln8vt+^quxSggjiG*0$CXv$v-I7=1~{ zN=&1@RnDFSyo@6MUbKw%R?;5u-+vzRtc>z2DGyyHpsVC!eoKdbi2We+`O=A=ozZpV z7y-viShJ$*WVm6E%Q{1E2O-mF4jBryel_lT@WEjIUR_DJ8<9BB?YcjC^W_Vck7>CQz)IQAc9_gxCA`0XNV+Oa|faa(T_df zIoJdge_`!($8g6P#!!+sJ>qr7ptX8FV^{)QC5(Z6a;oSqFLn%H#Ndh;hI!n} z(IvECY(VnQBO@eV;^SE3@rV5mKU=H_7?4kutoNe-ZKKG!p?#P3mH4#eGh0oaDDxUC zf+wka4YDd5U$a?z;PIZCf=CXc{?)+va9aUu5bdzPjsLvCnaSoc+TH zmD!E{+sZkr)^{!cp5ls#o%a=ZkUz!eSB|IwRhY9Fzs#F7AWg&?`qmR*b3a=wBhcBb8D7qx1777 zKds%iTO2qoZ*RLgXR!uf_dI;vWmf(KY(TTOGL{nKgYtB(A;zr-|ExRy4%VUOVsH4J zYtoFiK`!W8vU>@AC7XzTuZrWje*EV$eWirZ+@*Wkg~F;N1BmGHZAq#$@n7eA42!E z*@U7V1x`Ttv8s1$y$mj^&ErZPY)3)kz+R5h|Wg7GO#@|G~ zxuc+MnkN-)nJ!+t%GLuWhnG$upEZ0@#94y~^3S~YO)>AKAGq-+eB0T@Si4&C{qDQh zhg&;Olv?5A)dl_haN}7UWgqXJ#eJ#ZzI%8Uf1zFA`r;eNl%dAnzkO~ly6A80GYuZ* zkvKhU;+8r4COGuH?bjdIOD=W-H!yqx?y~bf9qy;d@0<>Ieu1^~__3^hFy9X^7?=~b zZ9{W?f-=vNN9~c9zS^(s5vS}}&T(aJ+H$n}SYCJm<1@I(Xtyn`-36Qv7A_WWUxaYc zXY=L#4N zZX+_+&mDOFBx|o?L=;Qr`V6Aj$z*ShV*|G1g9?le-4`DuKZDL(s*Y^yIZGf7??-{q4^T^>_SysK4{M zq5gwad7;?G8~rb0oA-Prus=TSx{zWfU&Q7cn{;g`e)V-B;-Hq569X5U!tb)a?>Rd;i>!@=bb*`gMWk|W3?nzd65`~ybnZ>fC>m|Gm<0_z%sfNWDL4dgy~G(?i|0+`Egf zHpaQxIOk^#?tLR{{$Ev*N^)QBTK1jVKY4*sd>SnZV!Of4Fa-Hndv3q+&v0NY3JgEe z!F`Z1+K|5Qqi&S4_v6ov*5rg@zQO+Zx|~pA_+Wo>2FKS^tZRq^mla4 z^ml$R(|>T)wIRcAr6c;a=gv|0@KNDq&YHGNGJg_$OaJM8FLnCvsxMD<<+A41&J1-B zLmxPvJNX3jnu*&LPWi)|S-Zi*a@s%a(AjeOFtm`{M+@;kkrvL_E;J%LemZSr(&iiI ze3I_}D{0fE$C>o2H8`3(9AA+)l-M{T()x_86UMODM{{TKzJm9&d5`^VAbt1TErs8!`}6xl?zo4;@0&k`-&w1B`F)Gc@4xy__`TMfij@Xa#9==B z1#+tGL8oa)CUlSoYCLh(RyBqk7Jn)@s%Y!M%1Nc7)|F?D_4?aL1 z977&_h&(ukJP0BWZa^Lckq6U|2Q350gP<)B?0tL9jx1o;T_Q%NjSHrpdFkVN)~=mx zwH2v7oM&n$$8(HzEjGc64{F2_{IRnw>c|J1X4o~Zer>lBAcU{zY zu`zj5ad6@VC)2>mYv3er&6mRYrw_cwy=%KBfD`f_egY>G{+n?kJBF=O2_Kx>0UtX5 zb1OKRcOmkzvA=xuIq=1iH(Ech!>1anVUDOP{6;BX_6joc4rFAa&>vrkj67E8PkvbF zZ|yGhxAheI+mW3exyVT5r{sW5ms4d?XY+1BI}(0V3*FLlZvMy3i6Mn*ck zX=J4MLo(9gkNBU+A7^YAzUh^b4!>mb>ssRSjBb!7E7-qqH(F`<&S}8(e+ip-_s(gK zoIV2#)n|gCWz2sY3>E(mz)&&(4F8p~Q|r~%!jJ1`dJ5J*NZiVUC06+IrMI2D%u`sm z+mqWh7kymuFoU^U%syX}+f@D?;_D8CG8>%6Jf1}`%HJb!YtHWPdI|6q8M~MBK#(ufo_f7ve zY?OP*Db&vWxEaHy`cc!-USN0b9M!J24roZl>{nwP|&PY?9Z;QEO)onv%^t+w+ z9qb*W`@Nwy^f>m{DejiSM@GC$x0Om_v(dTR%<--sV7x{i_(~laHNx0uo*Bx04dBYi zt=fFEuAA7FM)o#OR)$)istmO~QyFUid1a{Mxyn%Iis}CMu!9^bD<_xDHK7l3uL&95 zt#*jf>pQ#3Q{&`^Bu?ZK;;5qgD?+hp<-m%at%o&a25~VyVl8sZQ@Ug6_DivMk0h3- z3muiaUZX3qTNQXx<(J7;g{ zH*CQJ$>HTG^2a!9tmEshDK~qV)5T-xB|1;C4H)YLXWN;r3j&-9Ls~=sXFXw?gM1|2N>)_Ze|}!WpMM4{5laWaGAb zhBGe%;J3}KYsymBlpPqyQRpfLUB#ex!*9@__)T*Vy+AfcY{%%PFX+rRw%_?fxW^V9 z_C@?+@;RUQCOJok!<&1q@i!0VFFajDUWIw&0*}Ju9`**0k$0d>wk~{2CYN=yXZh-P zxm%L??RnQi?&lc3%aoN@Ipe^8V#>^eE@datIx$bQ$vPn$_JSdQURinLpSiuB-N4#y z%NB#j7F*V5jyFY2kZ3!;oAFY zPp}4M%FD02^kvFY$CUl#+!);$x&P-}$GT_Pw9>uI{%i1wF0FMk6QA20e5%fT$u#Pm z38(x2%y8QC{KarJ@d1jnC}&NQOdAisG~>@CHeuik&nEWPD{<&b)oC2EL$k766hLq{zzI%-bS+GXgc$e+v6F|RecDY`29>3CN^9WsLZkj{&=)n@zK z*Jb-<^IgnYL8GG%na#Iv^6eVFUE}}OY4<+2JfojJfWQ5C%b@=HX%+IWHaiqADDWrh zvO~$y1^(8e0)Ja+fxmrRfxlxyfxmNNf&bvS3mMEWYLdu04|{q)n%_TIeMVd4?Wm*YCqWr zIj^s*!vE-j57e&K0K+@QSBKMKF?|MYIgtKd{mPe?{?4>B#cgMDzjmU`L9EmY#b*$Q zIKc`f=UD#MD$CzSTw?oT%ipn#oXmHSoB3)hBszSh2fY?wWUMqmod9*X4`dE`daDA| z2~dZ8(96g`v%STeq?cm z&HLBHG>Q&o&oT3jzNGm+(Fko&KAmQN;g&UJpbhLUD(lWy@7k{UYGfb7`hI#Aa);dB z(Z=!=G_*55t1^^m!T!Uy2KjK97Z=8V1;*7M_1JWVZ9y{G;5|6FpKme!o#}gkvIEYM z+m16w!vDfF{5LsvUVDG);1@mQcx?uLccVk2&&mgqC`E@JhYmdf9eN@*F0 z{O+0RK55teN4M^ic3si3p$T|4x;x7s1%|EouU~7HEchgCeBGUImo^d(ZL~leluxIP zpj+0Ifi`|_(}snOH(p&Cs(RcqImF#QgTUV0-Scd;>stIej{mOKo@eZ9yAr&wx^U=s ziHDnAan~*TtB2x4f@U(yn)sJ1ew)jOxdqu}Sy`rub6HGWi0B_rv4;#O;Y6?<_9& z4`t7KXTTdKW^}{y;2r*-Axn>dtKr@w&#&+ft5eL8`TcR#{rWxpKymuee6ICQu%YgcQ~?prXZ|K;pYk1WQnvbVqec8&wb@x9so;QOZYzI9K& zfA=Zhk*~qOnRRD6WklC^9=kSm0dO8J3hdaveZ!_BwAWw_>sl?o$9E|IzVh#iexehD zsn{fJ;ZuUZ90a~#sx=q{_OFFb0AD67PdNQ(oQH454!xIkHe($B+bPq2bA|3c-I@8l z#QEO+!Z5Rku=~mHH|7VOGHva7p~K++a2J0USEP{9?)DwwiqCL!?0C$b z1Iqn!2>Xn3^?x8at{4n##m&B|-*DG*3G#DsM{pW-bTrOxS+qz!pt| zO)xDPC;zdXN5($q|JmU=_GIO*TXU@NnP{iIsv_mi*ZrI!&D%PK{NU(_&|4LE1KgA9 znXOz!Gd#oUZp(k`b9Fx%I+|F{u6xE>vkyL*wJU#ELETvN%H$kxYUvN}+Ml;{>B$c4 zk;hBV??)$(I%8dk-DuJ53jg9;D*VRIkU^6topPeNrRXDCdzZ3jQatD`&bk|WO|>_5 zWH)s40sGb3k@i}XC_oo1Ko=}P7c4**EI=15Kpu_scl$=!_L|@*|Dhp1bizV(!a{7H z=d=GB*$>Y5o&Gx_GyIN}ri z?Q`pya^wWUci8>zFuT8F!T~m$>WWk`I%aG)Hb8hF0j(#o2e!_sNL`0*uZ{2Pn7ejj zw#fzAMeH{@!?C|+dHk!9yL!HxzcGB3@x)F31is27zRK1QZ}PWw-{f!axruuS`}ELz`)BzNmCp9RUssX(VAA!W!&9yg9Rcsh zz`JD0@*AuOvSdSlS)%jNxx{tlAvbhhxsX`H!N`kqkQYOc7eo8Wi!+U5-^78(aqa)3 z;}{6%qtjqDw)QjNybYYUgYyn>-U-g%1Ludp`TOAf18{yAoF8#;E`OY4WUp_~k-JgO zh3m|9A!~!t1J`ku^dZF)XGPk6ZtE{UJ0<;vJO>X2d0)xApR*UX?_Oth13SL+jZ^h1JD;-H?yibaUu&KIDlgU;>J_6?7qix- zpSjbXO1k9d)i>jg(x(r6=?sj?C0xpQ%Kq`;;O>7q z+R}62=vM}TOX@9nq&%W~WZSehp%>XXhO^-@`T6ZL=5CH*UrtZ`7VehO*@r|aYZLYF zA&*BoesvB?_`QcV_Y&8l-=*NUmU)RXz8K@%Ijg7sF`aErao9hr%pKfc&XsVuT!c4;2_-zxEv{BYi;mxzsi zcOvKb;jcs$cM5YJDN&~H*lMcb+r`|)%y_Guw&&5JS^fbMG0s%bVGYNlv)sRnFXT!S`0)Z{-ZO zcyST34!`16sw-Z60^eVU{NwyCCYS0Ka`)&=Q(rse#AQs|xHB&fzf7P`3->CyW9MFJ z-T5?SwPHY5`@?U1PkRZ@dOQ8iqd)e{S0%uM`1p1D(z7{dNMAAVp*Sj=rk!)M!W;k2 z_I*3!YYlK$*%V}zXw1Qx@M&monw2`hIjY+^Yuq-)0v}eYk#nbJek51H(VqL56V8vu zI1elznY4QL~ z3nsXUW2oYr&Czk7GV^mt1`EHTq76Md$TJ z59{GKmj;RkfLV0X3Y^S6wACL@?bS2kJRdm4qgg|Jb*M(ESBRkp>U?Ay^W3_M`pjz? z^Zz4a-E)gM145mJw3AOxcyk7LC4SmDlp#*wN66qZPhQuL;dye!gp0_XoSf-K|>rdCMm+fElteo6BN2mSfLDusQ=&KXHw)r6^oDV-lYvHLm&=NR(@dEO6){z6J zE}MVXL=v@u)I4%b6>*+@-q40kF=7Q<(RH5CGcu-abYY~8b!3C1nsM;`eV&WtJ8CWb9q9ua~{FsGq$nx-u)(zA-D+QJOaNI7l0Hv3YYqkXA^BZfE`y1f586SJ8T(^xO@ozedk}_J&jS zW3a2<9m)O9x5mNYM3pZU+v_F1G?=>Y#tMHMIwNv$`>W08hTHaI zlU!MuYF|~E>TdjecoF&C+G}`Dd_KGw`8Jn5r?n*~++O?nu+~*mFOVBXaCx_$IPf*`IgI9E!^++ZS4{~VO zU0bWETfHSCS9ooa;m1#FKX-ukk9ut$Ih*#6V`oXX6(pRx$KUL4$Nz)#KDoEh-++Dh zcG-6`>i)_pBbZm!P6;m@9pH#E^o5Q0-tG5pYNO2>Y$j}L zqj&gHvZ?+Xc(QG)MNR*~^Fhf5?q9uqk~JlFlC^UyIO~FsZ}S9p-Hwd792wETeWUYE z^~}DFyI32};~saO-)pG$|FXO1N*`^gyz+IrFt~KanXN9hCps-XkGpvLa!*_(*(kkY z?65$pl3d05ExqF6VXUc)r=9s~W8QjgH^{kj{~cZd-Wp_ClzD6BERP4-HIPgzr{8V5 zLmQbELpHPm?=}Ra=GyE9nfvAR--^86%~?dr_VjPJ@GS~VF<^fS9$hnt`OToiFZa@L z|MQlY_0n+O8ELrmQ)xJ>kA^uf6Uzk`buK=1CM&z?e9>?nDrK*j$uoZ#pugnepnaFLL;vaXG*H{`K|A++ z|F-XQpCI%jeWIZ0BXpeA?B^5E&28w%(TBhrv=9f5e)4xC@^=XGcX$w<3c@$RRM-BB z)NZS=YbNLYz671WPaD5PS9I&SWn|OWeViT4joOzy7tgDo_l><$cFS{`8a&xu*C*j2 z;Otxn-}-#1jvjBSy_=ZhT3_nWn}vSC|Iy9CRM6KqhPl9h0-I>25B+=x&)wCZQ+!aw z$2`u%ueJ?4^0w7q4nKjOu$Z{d*POV|sE@I)W9&VQy_U77yCT&Hy&HLoFMD3P@2CqO zK#kANSBLNDrseGSx@_N(_*whCHQMjh(2m2?Hxk?8{w{^5m0w0OAgj=eUGZ~9UgunB z%L8YBdSw}PO#XpU?~lK@EKtG+yF3Lf0i)io&`)fp8=*5#0zBN z>Eg45DSqdt&s~i6|J1pAYXF$yoTX_!hCcH_MXDWHI|;tgIV3K^VNXR0o9z^%gK3@k zumU~_rj%diZ1||=Eau|w&oCFa4=@*6XEWi91AqJ|=QdV>-*)iLdAq7CYq`bU!0Z*4 zHxsv2btn5W;(Jz~FTe4y@Hc=t+HTK9E_nmBukGGnXnceA-#{eM9yI&gEr00Q*`2u1 zK9^8>k@?&646y(WKKAW*?dbMh6kbTK0MUop-$EMVRJy#`m-{fyO*mI@P)u5+zUG{PKSZn0hp>dZ^pMp+{f7i1! z&bVTXQDeE*`JVTJ;$1#TzYja@oEU&!>zr@Jzo$)Ls_>A55tzK}>j#3V#wnlP{}<@r zp3A}E19yOnE_*J&0z9#Tz^>RdAOC{8;$6X1xn=E|dxklTn>oDuGtFV>)8=pmbNDWE z_|Cv{_%q~cbOm$xE_3+K+0S9(_x2n%{(j&&oaEr^56GiVD{uXH;y%X{_xXz@OHaOT z<<}|aaWOijVh;u>?z0-)vCe0c&sBD)Xf@|Pq1lVG1F41VZKW?sH{R;xyru5sD0@eX zwK+R0;C}^sqgk(sF^oau*n>vsdyKW2+(^$xOWAWHSF}g09`9}rNk!k9evjHr#|M73q-X4R{L?K_T!)S01obk@?03ox z^zE0RJ?0;7z^^#UzW2-n-$5rED#%^RU+szBnvV_@M~8}yrfz9~HnF?0 z*JnR#a!cnC6Q*w^KKgLJD}TOQW^6qv zj?P2hC4s^)e@)-6y2(a0Z8>wL4_muc@lE^y7)Vje=ATL2>liFUXE^C-0NfO^KV(S_ow=|j$l(R^A7D=%A6e!=Jd1wX|5{C zTRjbYwpUxJY53!8A7^gURsTu6%bq~wFmrkYU%;{b<&o%O@K`W7l4$XSl6yR%*1euk z+nb(H`+iTT;~h_^^XER|?}kL)^JV!Dts{P~)EoL>oR_mno^aGRqUm_4uOB^sxtE^% z@6DcKUPb38s)=W$ZaNQK?9`DRxMLDAL1dHOg!Iy?~iKMsu>eyp|c(|8@b_wm~P_i6Mz1)c5pg`yvThhzAxcYFMX z#<3g6r#ZBbEjh80SpCNS@p*sijLC&dvhDX@|JbJa<_p5{M(&7*<}2Wh_>;8f;|?D6 zN4Yrt$VU;w_8i9!omdGUd;lLD!_Tun82ZHtXRd>$kH$GZ&h74|_RJ z;2-yG4QxAFVl^L?{n&HAk2?&QYk{}`Xex3xKu1Y=NqubBhli<^B_ztJ6V$jR*`%|pVm+M$tHX;wI< zu`@Q#dHOBj_|nXtdSd){rpGG?mbq(ldtq4v%=3s_SWo|B=zo4CeL>s5!KSL1Mfqal z_^vc&GydHE%2n;zQ3Or&+^$*y-`zG(5=OfxnVTkI9d}{V$1axqHV?nB#Kd z#wAm;xqt4!DC>y!7zZx2?^>K4JOo6XXi3K2@`^+Pdpu`MAdN?pn^X9?%`W7g)0&13xX7Ke(^)Cr=-({^>7| z2LJ8-qsA7=Jo%5Ho*NHP{L2M>9_-=l|p2x~6j||$#-LQ;P zH25NXkys3_c&~c_qbrbuxvTdbx&(UnoP17t7%>hTN)8Vq&lJ81h%aPo!IyBQ@Y7DrL@}{Aq93h= ziuEyT3o`3T^oTe(Z5isVo5yoGK4Di+xrh2MEtz-n9jAWtl9H1@05`&)@}RBcS^lMU z@BL`slb1hj{7WVH;h$tqFJVr(r+C>`;=Y9UL+FB@yz+<_o%kC1yO=w?cN32RjT4(~ z$6AE1mgM z(?>Zm2kK)%q0I;CGgfA$#?Ws3W)nBUo_r$uC9&s8#&a|DMt=?1*wmLREAM5zw`s1} zYp+J$wU)7#LdQ|YCfOrdrnxI0>+x&;a)BetZ=D-|k+sB?N%J@dsOM^AviCt-9?yrK zL=Rr*X_hk{54iNO=UGGDecZ{ADVLd(DLNLN2^&M#h2-{GacFyo?JW_`>ghF=pEQU zbocP=amY1OA3w*sE#(oN^?QIAHpL0dS3K?{)_^&JTlp#S*gM(x(71fp%zU)c$79fw z=ECK>Cm46W#;v#;tv!>NGxm@!EbYKy@(uz^Y)&9`KlTU3AarsM=9p}r*^{b0_dd+d zB}-18z!zRJjx}w`B`2R}?nFy}&mOiK9})M7zukb3Xz+#jMxmJmI?!BlA;f~feh2Xn z$YRA9$v`XSr6QT&4v9%`N=m750CMz-uLt$f&Cu( zQ2pRY`Wf5T&p7J6YUQp^AH(0%7d#;NcU}AbkM`a7#iz~P#3gzMZ{7#L?zVE4Z3UKA z_^6FJf2G*t-^x6cO|{oIjeQYgfA!GQNALT|FONQP&HHBTTkSS>J#pFJ?R(;T+j%PkaYBp5A80r}1cfuX3lC#z(x@>@s|ACFx~<`BPI?FlNio_Mpd{ zuPS5x^iZC0hwgLgn?CX=!@2o>xSH+t{}15`8qnU;r3L+c(e5jC-`9cbJ3l>o-%npT z`h^GIvvEhCz2msW>%T^A0H5ecf1Un!J@Md!`(C}>hSR_7T!* z4gSWQ{$EAzKXJ`Zk3R9>8%NtNxBK_#8~3a1-jFe#Z+rb?XwPl?6=dq?^&7hQnPQ-k zUy7$M;%#CDU?SJ6hqg~BP0Gh`pyqLx^Mc5Cy(a+ zFn_aw10RpzkWDS>`{9ni|1X4N9``fKpJ3+kE96ig64>!X^O{ZV;G>Owh?x^`tsKiy zUc)N|L_ait$0*1jtc`RBB|J1zcm?HjK%SDE{-4Xk_Rx#-vM{XEvA zV*VCa_IzR=wuiQR?~7?XyZd7D(M!|qQJXp6_Je{xeZ3+VdMHJOK^Lh8?LX&N$?pxnJfi=goim&91kJsD_zZ%|k z*UC}wa&#oHj3!pv+^;zz{Nd75^{mH-OA5yuTU`wP(OC!&cV?mk^x`u<+Q#PxC$S6j zJO+H~{s)bVSRryWObXk$>mM^c&7tkL)8K!=z(2b8>_QAZCpytGc-Rac7SP^W#!yBq z>Wk<>YaIC_{C!Si0H3mnrjO$l#<51@C@yoxarX|vnK_OGG%DWx7sjDyLl=w#U-0%4 z#$a?0=ENS$HTGPdbAneR^s9Q z*!b@KjN^Ov16vmTvGFZ6@~Dsg63n0IZ|p^@_l=(5(s3UhxVU>ct?k}?@jlz0n*SHr ze|-JzsoYJGYC8aJ>|ws&WWM*JyZ01wugTzukxB4%(1#7doG-|RzjB)9V($_y>0Vdj zgSJ;2Uhs8kot6GC-k*n`qr@r<53NLxnMk~;LvM^!OBLDl`|OMB|C{-U*EA$}|UT@@T{e2wH5B|m6>SiY1F%5{uBFVa5p z{77qQcDNONJ&JvC*eT?w`qFtAr!U1zuO4MR8!&nL?RyBPT!YN2Gy6hRWP4xuWxZR8 zJfNQn3p?vZ=Bo}pzV_TmyxJE|&}aN1<)F<9D<)WXU!CYaW&0{t=Y@Z>#P|!gmjpb9 zwq3as)4uv4>Qdj>Xo0Jhb_c<~e;^mMzLg+{-0#L$;gpfDLcFgr`8d0k^@um}t0~Yn zbsnOA$!TC-Hxs^g?nm|6wrtT?blu>{1!wr4Ilr7udNzYTkU@pv&_Hv{-FcbyOET#a zpUJJ%ovU0369dpO^zF#%2f-7v8a;flE#nGU%P5m6<5Wj7Zmn>{vv8y{*czKF=VGi z?D{VG^5_}b6fMtPZH4E*7VyX5zs2K;6DhQI8hONANFF6AvsyB#r(s{*x@Vtcl7~B% zi-uZ9E@8fz+h?26uSYOPG0GNG_VPD4OL)3xr+low4c6N==tmLk0*YIXuCrnK-Wgyj zilR$l;c?7$&A>Fgl6nKuuv5pS$J5Befq2n;M<0n*!*9r?V`nJWd*@5NmwR(< z-LZpnH|9(rx=PZyPq&nPiRJuf{4ceRzuerHcz&-=c5Op>q#c~J!Q0n1a2GFY{I!k5 zt+2N0z9HS+(}pZ>p8{?h2fkDHmRnAX?{`MwSJvFOO042=5$oppqG@Ttr7_4gf z9I-uth@Pv7Z%D#d`S2Ay_0|s<`!(>?7I>%?oNbfb!Jehx(RF$Fqrpw7H=Iwqw$66_ z$!4E@e(`?Bzb8#c>(!q#{O#p+*xDJV{OSSrVKH>%Z(e(%L=zOVSKG$*wtJ#kXH+1usWZweDfi0|S4SasGoI1!al}Gjw=RY}IPAsEj-*Dkz zIBhdNeb-ne|J?fXsNX?-@F)34+qV2uS;_YFx^vmrux4(U@7PJ_V^htCUu5@{T|GKF zkoqk-9MktU+FR)S70)zQ{Y-Z_2+d{Ahl*UgEZA>v?MLGTQ6) zr$ z@-OE0^VjzrgO*o${J%M0=ZLIS3>_x^fisuBvEgcBW)e?X8*R`NZ7LXM7dVk!(TQ+f-p+ z`3d!GUs$g34XRF*`v3b2+&#JizMck*UBG&Wm0C;v4!-MbhUm$K!^D^IUUnS8q3^a2 z2;U8D#j#KPQ1INra~JeC4V}=mgC4npIC<81(^jpmKk9kOD#h~H@sqOOyM7>@n>zTP zAJ?yT@UVc`#8%qdjV|qB?-pGJjjyDi575K#(Kh0vEyYK>>m%+Yl8y>a=jNKdra3?M zICguzp9_9(AwGkBros1o&K;!VMScAE4dxr2_6hxMgw7e8@b!7&>KXQQ#5cu%4z8-$ zpGeMdpYsBIzOK(lIo6bO9y`Po^Sy<i^-z)+5u!m(HB0!y4@&-rx*)Sa}9Kyo~N^#`7fe(}>>7JV{?L zI4d1(a)z1bMw=!tc5tOS#krnHjCv(Qyb;wc9quzYT)-UqD5th`2EuJ?zJudcv^5W3 zcN84TS7^Rht1sR`D|UbU*4<0sU%%%nX11r?zXdrZUi#=*pPi^54#44+;OHft@ofNa zvxv{gTD|W%=x~d5@;Uj(WwTfcy?zOsew5$RJMTf?b$z_@=TBm8b*EFE?2|#}yat^D zU&A5p28o^Oc{a9~cQ3#r%!?bdZ*(Yr|0A-l75@S@sj%*@jx7eatgFfAz;94A>+O2u zqn_CbbcW<}v~jbQ3gY{b&pug$PRH5Q=w|M!#9x_chrW=ru^Vg~*u9LSD9id;09h8h zfjPkLg}tphuSO%QH zum%_s?Zgt$ceKV6e(w9WeNpn`9qRS^nfUz`zD4V;l>EpqVW<0cI*c>=U|g#EbL-Cz z#*Jw(#%M$JV&JDW!P;r!cZp$u=HlQt0e;)BJXN2?{c&D&+^yhU_?PWZ<7or;i>&)L zwSn*U1Tu(u=&zsS`{s(wEz&zUi<_(J+fAizW(iy~^ z6hqt4qrsW_aNAC5pDaHZFnCxO$1_LkhvwIHf#(_7{I>mG8*ZgN{8d+VF$dDe*Att0 z747Qxgb7xpZprwQJw4oE-@_gD@3`YWFD#yuY#ro`Ip;!rdhDl@^`nSaydcs+*<}4K zJb#O4-j5uLuEw418`+=baxT1%IURXpM0nEpAA=Xt$NlmjPS-02A$w?6T^qQ?)|y&t z`^+~i1m=an+z#FabM}%2C-Z<=zsJF^xl6|OgIP9}SiuG8g~U^i{9MGIJ7)~ch34n` zj6*t_bc+SFpQW?C?@|vu#!GX;=<*vZYjC)25qi$M)Y*7Tq;>PRBJGTgJANbCqdbvZ ze2b;$CLR*nyJJL2@{7Lo2P! z?U`VoewMI5_bIR+M_Z-uG97ZeujKCXKU{t`3}UtzsfsvFK6e>dW2qu&hsp1CyZXDHK38-@u!ee z@Tb=2A;6P99+Qh@bKkm^*vLJ+Rg_)l+?(yQW9MYMK}YMl9KEI#d0unMv;0BE;4}Pc zb;(bvTo2Nd`g9Cm({KI-n>qbQXGk}+x^y3aV9Dn$+Of3LkmXrk%6itY#IwAEJ-^Dl zLA$b(l_771YsvRn!ebErLteV=ORl#SrL8@|KDi!YpCcYQo3-bnzwKLlVzi-pJv~F2 z?_m+L;Fz_30l0PLgw6$;aUh%j?aQ`|?~`}PwFcxG^^)~B@_ZA|@M=9d2O0)P$W58@ zaF16U855so>AvB^wk^@ybo1|7vsQt_jWdZ?N6t)RJkIyKeu>R~_}3$?tAG!Bln&TB zlKY}J<^v}=dYHqYkG&Rq!!ym{N@PkeKeNyIG=A<|Pd(u!;K=7Q*-QMT&x$`^ZFxy}-UtyOX$vkB6MwYcEi2rfk5;(k#D;vt$m9+~~IRP%R98Y{!H* zpA(L+1WyHp%r9qVsAqI&=I?vMId@xH=?C7);#=7X;^^+NiL^aIu&jUB_u-bK!H*9d zjj;Dh($2l)k6DXNz~(vDcIHHSz0P^*?v@qD$nP-GnG^Bl1lA_<>?EkGoL-V)THBC0 zCa2fc+)XdYXw*v5jB|AxXz;Dm{*H6keayDhQS)MR9MSQvJNwEznCh*5&%Og#f zRYab?GKk)i6X_V28#y>JFY?}$eDY3Bi&QKA5?qKk*D${1B>t7UV;dG;fSgE{nzcQp zajan+icNCIzWs~X1eG6~Z}XgQiQ&^CY9qmZ!7Vp=BK{NFLGGr~@vEFM!V&SJsn?Gn z&-kr<4(|+p)Mx9>e1oRVx^Wh`8u=l7oq@kzTU#T!uUX5_frrG;@|h(Y1AfJNh^bwE zw*6&&`LJY9xdMBN__@8}lRWu5&MqlFI-MuCro~Pl&1k=q_|lJuT+qvl<>x}PtP>V{ zUeIA;_e4|nSsd;)C5MP)mgLAn&~^v~Y+$Q8Z6 z*O4peken|%Iob4cMPEPXzjL~NG;PgmsOX)ucrcKf%KZAskCfSWHZm-S@~_hO9;@~F zb}QTT-S0hp>-`?5?>(NA_#wEn7kV?f>UzhT+w?hbijTrC-(C{FNN;D2a%}Ah_yhbM z7(am>ud2vskz(^7s>zkjKc)zH#O@?Joy6Mdf@0 zH^{;@*gm@7wCr<}$9yNX_Rl58YbbNy-}W}m$PVMbLcZGa#D2G}nb;26cx6fPRLKnG zIxZtdx{>v@@zF>3)jqoGXzioF&A4LCA z{u4dFM7>hlOwwj8ZTfB`$Iz+T^=qKLT3}<3uvf6H{T}-R;h}dn4bxbqk$&xmb8P0A5&s`e-1#$t%1Z057aT zbHRvu(slG!T3CBC@0#yG0vx zTgLClXe)n|r|#0^5B7IareMjXCl8{>Oc-qI56jTc>d^ltzLh$N z&1#0{2M^EWuK2Hce)#a$J$F5PgJ=1}Ri41ngSicxZuG3$QA2LGLFcaDG{aM~qk-pJ zhw1t59lLv@BCrLj`?gH+U!C`6`L51FB#nDfP3jj$*ai^`JmV6xUvu3 z%NXy)9(506G`b_U8RZY$NcA(nJ~UX&zZKgjbyx zbmyRxaxU!gD*~y5Pgh31_9fBx;I2|~K!2U{&AUD4bXB8Aq8H%H!VXXFkF~&ZjWuX* zBXQW=nY;Iu)Az2Q=gF>%bDn24dMoz2OIvCCar8W$L0!w-wE~OmW6C`#A44$n{-&o8ryexg(;)wg$36deK!U!;u8a@f2F+5XK686j(n&RJkni<1X8~T zCUwHo@ULH}3} zd^zM^y|1U|O4;VPYuz&mKKrL5>{~^(|Kul`X>iZ z?)*gze){x#Zy!HsMmwGM8);HJvKjThYLS-8mp zH+}7pPY&MPmw}sq%hHu32S>vP;9M~W z^WhtdF=-rS$Pe`2*)irzF(Sy&?G|^7YhBvO9!7DnratmOxHk4Z{`QX*w%7A}m&}{G zh=1Fxob}mDN~V^8XUP!q+t1c|XwQ*d*31E8XkrWtnS}7DdsA2MTF@KL0Y>f)g+6>ux6ywb8QUitiWED#p=54h z`0YFU!)D73Z&TI#S{rmm(%bZHo{j8J)5m=793pQY8DRcQ{6$9meN^~Dm(tudGf(1) zt;A5PZSl+%nk#5l=POlaE@jle;LvY$)Y&6%pD;O5_bfq(dAM(8|*+EBhF`+nve zY;d_vk3Zo0C$2T~=fY^qt)ix1GyZgWlmjn(nyk(>^2i>mcvxrSS_a^i2xsGrOmcVy z!tPyfU+1o?kB5xvw-vjdIn&1Xe!NnX9qFmbiL?bhVfho{ ztcf}+C|_$juQalUlb_V&ub%~<+>8!02OUa$GYvfooDHKsd1+b8iVPpvw0)hynY$L+ z_V!PHe{IS5sXC{tJ3K`Dd7Me?v~uePT~xV0Z*bt@z0m$LX#duww@zKMbjj4RY)@AO zw6ixWx9(PGpZvICy%X(gZL-&joTi^Z-!bHH6geFw536P6h2Q(@Q}r$QIseZ-b(pI7bJIi<6SE|TPJ)$_$ZE0v9}HpbZFj6HaP+HmrNf|LH^C07iz`y<8j zaNbeR>v*Z|-=l-`UiQ^H zHAn0--1SuSY{TxxK&8*mCv~kX7hZV(w`ug)nZfTmYyA@T!J<=^boaOBgV%e|-F5!; zA#gedd=|;33B8DyY#3}FldRDDuQGqeF3lVU%-Q9f@LkNG?C2UxjCmue<|B!X#5fTj zk{BM0NOx{zPHFqQjpT_gRs0M&v?_R({(TSe)amft13Y&CPbqO`wP%7yw6l6p_^;`E ztIkdq`ok5(dJ+#yo&$Wp4(-fijOYMYiBCj3-=tkVYph<;4*U{;Zmi;|&N&ljyppZX z*^H+XeLSDe?@JASFY4oW*7^i^(E2agD0wNIsb72j@ikpF%8e(qW6V@uI)dbB3G^i0 zC6=a_%p)$W;R;vw7B$)a0?r$ti;SVI1h~~0bl!(?PI3F2XXM%4J1)rRPqNtbLw|p) zADvrQANgnKLu;FND_gI#nq+IynAU)6@v_#fr}U08dVUODxPfPVx8M1i*prVCp401~)0;Zb+lVCl z;sm_nVLz<1v)%h`-NV%t6$jTt{SIh2zWx49?R+N>b(dgLAClXx)2v;x@d;-8oOMpq z?~pgLkJeB|I-_)f1aeIGCE#=1rS@8b)~-11Y5%2hZFSl-eKF6XCG}zdMz$a~Eaa{! z3%tUCc(;;rnga_TdIRMH(4!eMe^o}`T)oqtCtHWCv7ifV5S;tl_YrfVwWC{e!&*?} z==bxmE3vLzi6d_0JoNiA^voC0>F1%}>sk9C>6qkiB6BisJKZ^5z#`d%o!ZtRcO zdD6id^Go0~$~X3SUD8X0%R1pM4Ogv`tX(Q2I@P#@d#!0+XWYn|BT>fDOrJ()c3{s& zm%bO+W!KFHcIn75VzaV=UC(QH7G3Y>yP=;C@I9fcJ;!fXr*QRa&BH=xpR>?us|5Tm zblU=^`Lv~SIxDHaUC!UmjP|n8QQY>v!8aE+wbu(9?RlN{u6NoYZ@Xz%XNWV`vAg4a za!WjRDP=7FbNOq$iC6Bwf7*&{?x&CRcoBKXan5)e-F>)C)1vLZHO|{q^DEXjXgfYU zVC(MCw{&mC$bC}3wrTCN=+|CoXCVFB^`nZX9{G-|L)-nhdh_2A8{JGXmpm+CK?|po)5{<&2 zIsZWH7Jg;5r8T08zft~*PsF!cC)|C3a(5WNDs{IyWhJv-g$DAz#Mx@2r^+7m$@`5| z?~k?l$G)YHMLM{f@AMboB%PODhnF6J{*Uwib;*I#zU3wG{_BzhJj-7CI>Fjle)e1Xx7s{dxvblvI}oPKa%ZCxYGD#^X2TXp)KK6GE#G4zb|UK1bn;s zq8D1+X+T+hlg(CgLU@+k5DskFXWKZ;*eEjy8uK!?25go(bGw-5xaD16fvx<j@n*Iod6C|(9aEFl^gi(!W>4tIq9>Ounz|1BX}|IW_&b37DM$W10sizH z<6gxl!CxzM)ds%apq$I&+PB{q>*Mcd_-2Te{~3P!9zK80iHi<|-y<#d{{401(;e2U zvut5~ybkyP^xqfXaMIZ?5BMG%d-zp!_y+O=D9&gx`EX2r0BE5Y zJH(^3d4O2fa`+%|2m2rPKAqjnExJ1T*t3dtP%L^7AByI)X0>ZSP<&WnB$=@72Z@`F z?AaijiuheTQ?(!YGY9!YTM709CMI(Q>*^h%m7=Db>H9JE_qB|vn!Wxt{BEPa*VRAu zUSjOslN{RuYj!pJ5XC*jnak>P@b9d>%;YtaT|xAuK7-0@83oVMzv$!R+g!P0}HU#`V}xfcKBTKt#y-u2SvZTK&ru(Io3&C98~*2>vi zbEECQWMW6?xdK{raa2j$t+f3(Z7;x&x!}~=^;@w`tOf3SEZ^QJF<#%eU3Laro+$oa z_<2(_#2Dnuyk7A_&hs>$=pGWcB&fZk8?CB|+BHmn#&M$hDzLY~8zgKFr^@MAP#q$|CBmF_LU$k7o`XL%q z`967J>&D)~=HHd@Pvzua)882DY)t2e>U{jO|MtlhSEshmj;|HW+`0T42WFe!ZU5W! z66w(W?+=Ssk^2kUt$=prXM2#imn3I1641SDbEj(9j}9;%t>^A|DjCnq7I&bq&bQ96 zc}(ks?5ynTw`*_qpWkx!W()k}*Gxf&J}PUT+Q*`B>ZWu}aoTZ$V$!Dcng;>78`gR_5iE9CUa3S%a=2 znwpk#@;R+vng{KBL~jeQvsJO*wBN7Vp}I+5Xh#G4k-f;-bXs)lRGT_3joNkM)QJU= zzwCWvw{51MD$8r~^@xtO5BMT&v*vX@rSY*pinDjEI2GI&w{<~B9($Wky^XHUzBGBY z_Bgieb=$azHeCAn&Yw76i$3Fg$%dA|hK9WYn?X+aM*5Ai_QcqCiSOb;azZ)$r*n6P z53z5=>VgqNv)boLj!t7t*bd}VKak>Fh;Sgg$PN56G?*Rs({_w;%WtnUr`RULpCn{D7@f ze2{jYb1rh+ntM62xlf;vJ-HM5O5dMj-+VTgGc%0UaH9ImF`0P1wemnh?I{j#0cc%41aWyZqze*z81LjQ2 zxbRPIIi*<6URjtNZp*@_h_BGIdqzPzhRZ{9&6&>v$6n>aW$zy5rAacuO9-8Gp$Ux~pZ>-|q{S{q$&!<()8(`M3L<6fVLiH4lGf zNnT(VF)iC6@$mcPyN!;9k48HDVfn(#8Lw=AUU(ypjHp1r)%dF&8*gH?J^niwzn;f% zZVZ{0lF!UXZbRV#d);C2u{}219$J0lL;FgHJZ|8UeapbL<;w;x_O!FFCT_# z(p^;inWX6r%8D%OQUpy(T5eUF0o*9KHl-Aph+0b#aaB?ZMW~ljbywGQJC|Hq0&)>0 z1BLwGpL3ow^UNe^3$FjyZeOo-o_XeZ&gFZ)_wV<7&l3Eh7t%LvsCKIJ4-V^3I4j;3 z9D}2wPQjPhcbAWI!mCheB-ViaBE48P%ML!pXVi|>eJpM1dn5Q4_h~IY-rf)TUnb*! zxdGkf&$K@oyP-jL12SbYc7v`H=u;KIRXzvdyu-(*48CXW{YJ)B!nnc{Yh%UaOjtXm z#PFN&nJ%{P=+4=vHpXn{?f>TUjwSxQ6%SUw?w`>|{CuF8i67?X1EtWzd(cUe==BNs za?!X&fxVPEZz{5F=Ff&Y!ehLLv`0^{JBs>j@22i5`5&vOkFpqF(L~j5+XM~6Z|H`jVz^7JU~J^DNEs!Fb(hYx?JHj@4$eCxX(h@`&@{IP$wzOciKzVL8K z?2jp(a~$egil2CG#j#NvXW@Kdbd~+&FzI}}%cbicQxhEkubxv52R4Y|bMWl>#oirF z0Z7q>8jr*A3)bt;2*k{k)NV_3vd5?-n{Qg#vdtM6#IMjgVaL* zm7R(;2lb@vd)8iZd6xct-`Cv(ok|A0$bPU)j0?JJA7MRBJkj7&ZhlD*^3d$xulLgD z!DHSDJkJXYw+f8jt{i%IhM4SHFXYZI4#YKlKXKni{7#JLf#7&lZ(w76Y+qnZ(%lnd zfh}=p@u>Qy^?R!}sUB~^O!-aV1$*k?7vfQs_)6hXh8DZ=H;5J!d^%dZh&4#Hwe79C z`tIEKBSrRoc#C_#k+$^y8b00or}2K}+t_`Y^c`uQ{kWqkB3(tm6an!#X}7Kdj>e^21j8eBgg;TjCLhKlu3tw~&Ju%r9_x z0zKD&S1q17A62@j^GV4bsqFNk_-3DJ0A8wvZ0s0lZNGFpcuV#4NNnbNYGbFv;|_eQ zBsTD1Y3zA)wnpgv0K7$e-20Jls&(0?I^`SAizz4VHA6$iU7cRdzZ>5IbZPPquR#aA zj%QoY=a3)!p>bk?CSM`;ddbiQ_9T0G|CPLeO7zPe-`o+Jux^BqsmuQzgw+1~|dm;L0Q+n?R;E8 zED4XQK`u)+)If^~J{>JecNI>>6-R&u#fS50ur?42sYMpoAb&-Jweo>-EgF=L<7Bb$ z-SR8jzxtGnN-z%BujGK^0VC17ctnQYc{fAvT#Mdi0}8gH`Ggz~sH%4X*3 z?}}Abflqp0{;JLFpXc1<_io&8&$re6F!n=2_{p=)Rf7+!k44j=xsyEP7xmPy2wfFX zJPLcYYMOkl;jTLBjQ{GGgVaM9{JvrY{ouaSW#yNZU2qm{JG|P@dF~1Pbd{eS6RivT zF*1u4;oaEMP*f8Id&6!r`9Y^CSz)_w%}R9bmQ<6Eca3#bjs zc)BxV^akq5tDcIFaHkndcz3aCVDjE$_#NWJzg7Rm*^N26noqkMfbkA=mdf{3M<*Wv zjBk3IFm`Ktwd?O^(~qdXRd2IDtzY%A}Tv+CPCE3kQ{WAo??f<|=jb<{K2 zh|QD04qt(NJ9JOzsw=o3d``0EGHjh1-~Q3NiFfmiY$DE`Uc>c1c=(g#;@r=l`jW5d zWAJ0Ob2Bxt_0A63S;;%)J3?2%dl&1uX*_fPSM2Y#r}=Gmb6zcSMZcHx`$lAI6W`7F z_Jpqb8M-d*KB9I@zjE)(YTLCZJLdYWZEuX69 z;o_Gk^PFnB2)2T;JG=Y??6q2YD*h_zHW%=RZjxw&cWyvGLnrD350W>bAFYq1XOwz( z=)T(DF`0LG&iy9&(svHB?ShDDLvgQuV!w)8A+NVqQz!Gl24YwpN5x7edJhe?j3LjD zxK^{57Hr9fxOS@SS-?06YJ;@0Kj-4n=ki~~@iTKl4oGiEXioT6gLB&J zo@1_NPS|LZ?VKLb*n{IR-~Dkkv9HgLV{Y`vhZx5XUHh`*4>69d?m0IOY|VH*?_iVQ zv)<~po*mt+ey}w{w52(?*oo>3Ne9|U8@fJ~HAFwbcChuRb9H7Lmz3{*Ke*mY+@cRW z{ZXNJM;kR^YtV1j;6F)XyBHmBA#oV|q4I?qdmwE0g6P`p1p&W5!1-gX#Eyda{JNe{napiIkK}({mDMoiJi^|5-Z_=m0UGuDY z4*F_x&qd1c5s_yA{fiGc8KD|OJyqf8!c3h!y9Uzlo&96=v+RB8tv$3g+VAeZ&2KOA z?IriV-Q)7B9}o|x4~?S=e`zy5ArlklUVeY*f$f#uWzidu-)Am+qvLV&uGi(6y)rgAw{#jaKlr1?9qX$TzdjV7+=Sk3$22#3^&!Ue z*&`g&@{z^_uMCb!bQQ$sFD!kdV?rK2|5JA!K4YuN&v@H!1AYT+Gv(nq{C%mdz|?!x zp6*xLa?g{Ccc3@GTMW-7=O%s%=fc4|6-za=XKK!e2SVU-QaT1YMJ+YjDv7@ru|HpN zMR?7Ns!iWQEEm~1Hx3^&zFPQ+Ya@j2lzF#%Z1gXuVH>hf*gQ)c{4T%E*3YkE|8O{B z&ZabD>frl(ym^h<=Q4ekIfr`ptHj|r_w)6uL+0FQ`^on|QG=M6i_3)(uh;&lCTdX1 zSD7MqQ^$VJ9&%5V=NuOwf5Dq4J~tU1A^rmO5qL(w_l|GfTU62ca_^9&tjl%i!Q+pP4Xqd4Z2p0KBKo}?IdUs> zB3Y?8iO&651MK15+vCVW`ObQnyYkcIdlzh)fQ@1d;3f1rCi?S_x-&&9qLQrv9xz9_ zM3NUjCBH(~hTbJx;qTaS>G$<;b}s#F8CSHskNG{pXD{+;3pGl5uOvT}=PIeAv;_M) z^Czxv*f-!yV6!FX@0@b0)fZ>&!-){N}n{V#m~O_Q4yoKLsrL%--p54kzE&GzPL z|6u0(d%bzz=ldJIevL3{q|1ku&in52UjD@1E5!trN9z1Tw}5Z?^@2VEj(xH%607y` z%hI0BpA!x3pq(Q*pHcCHMfiz=`(>VGz4xymCu|kxTwdd)`y z+l9C39i3%38M;mFB!1w92U?+9@pbW&+0bHgLmjqBJ-+W^J~_KH@4M4i?0WlqB!Iho z)PpaP3o(uLnCYdhY%Ptx`jLYjo8dRjC(i@#uiu9JjHRa8Jv{+AGe%O?{dpsY%3BT|L8+$t4tZg0N>tnb1>uBuvdYexfqXxj6KUD7kl5g*-5NKu&qLSRhrRMoLmd(F_EYe#p1a^B z8-4w|?F@qp*9jM1UtnrS1)oWv%f{EEd)|&;ku|SGZzx7aYp-2P3$<{CPw;Z-<>j^B zO9xn&((m1J=d=7iu~8V}M6FoPVFg`A-FK{*n=J9)2Sj zoF$y+I*aqUxH25~ZQt>dLiW`cF(=M_h3BqiZ<%U{C&w?~-np@l`*=Ex-%Jp$X5;_b z;@ zXcuR~$E(;c3T!L4pAb#5msw|_8~g*$m9Ir!&sOCeDRPgn*FZIr+9R!_tI4Kq|IAzyi>Go@+Wwv zhL}CPaIx|VB=40Qd^7r(`#l9r41Uo@IkHf5ln)1(?qTOf^zQ^y@En-74}+=C$AD>j z2By$!A8oA{Oo6Qr(>+0$o;Mt(d$KUKI)jPZA!lbW_H&65K1prYe)5us{MxR&TD|DG z)S!}lvM@Tvz~~rY)CBL>82XtTG&m5V4UbrIF1^@(^qj$uQReaq<^kVtU%^}){<*ji za+Q6LXVY&<7qou|xMAj@=hUX9)!{mjc+QFdo@j58&SK2xH@9H_1@r5)&r!LU+W#B! zYGXPRs6w%IzrXLCY0o7v^U3sY^V?G8oSVcu&FIz%a9w*i8+q4`(a(XCo;Du&!1!w1 z_{NW1f8?b$TfhInd9vqn>-Q&KXPiT7CzS3T8%m#h4l?^yNjEZPXgzTkpMp!c zHk~Y~72j)b?)3Q{aOndscQ?YTI(Qa-Q9)neAGjRZ_Tsy-v6z1&a12FkeF)LO66ont zBC+=e{>W%%}uCqv%;|th_epL%!`VHrYcT@Ys@Dk1;adBN0TcWsy6 z>E5g4y(f9EllQbP?hKM};GHCJP60c|t0tA;Qvr6ipSjWGb;P+w?1_og$wP;1A-4v)SlmW!NVRSJx8PLjLEwoV*=l_2#~Z#YoBPANz^6xP<3YyF zb0_G$03VOS0X$mDI^G2ywQ*1OlUv)@zK!0FY!gf)z|<4n8lT*m(FZ@|aBNnz02y4@ zT^tSK8RMLjV2wp150Jm2YviQyGlV3w<2(<&JaY0I9om=V+WlA8Zsg1n+g;4JQ-9wuR@UW77iNeDQ;X)1Y+?-wWC7fSja(r1k$>2*4weB^*Z*%Ut z3zxL+i$+^_|DF7G|2nyo3D$ZC`sMpr>pNvXeTy@LfUlK@+TT>(H3ghq3(hJIC%)0G zIeaVo3_i3y&HOHV&&W2_O>ZkPK9S_V89S_fsoA?j?H+K($)E~gCV!Fi8npN09?83NdK;|X zBpma=G50-_^EH#4uRE0Ul^2%^tb=$#6a3fEIC_b#O`=*|cK^fi!UeAVn8v8<*?ZDQ zV(^yjnvY_@!Vkrkcfc1a;R}zF&l5s7*-0Mg6U4Uq+UC!jiq4fppT(9#j)dU}1zoRw z6diCOe3xs(w`oWHs|K0fbE~@0T4(n0W2>5)+&)f8C%A#NsB1kw8u=Jm@vJ=pAkO|4#$8qk#QL)rDfpHN_>ZCpCraD7} zIN6@HjJNku>e;QV8r;koB3hT_$gbrFhh{H_X1+oGK?S*Y%9&MO-hXmW^pj%Vnun~foHkLdN z90Zn6;lmc)1m%) zcE3kN&OVo`WBl{>J#vAx{>^;bVze&>1{O`}S26Q2zWrX#V1mcgGI=s76+_H4MI4 zVr^y1A4;Q-a%N?&O^FT+%p{{7Uu=ReDwkg}{o(%%a0(ll{bl46|t#JT4VT|-Sbe?HG}iS zyU{r(YmXGVY881D&HkBrjE3tp+43wKlXr48 zcyA=$dfN!_#c`aW=a|`_mE|8P=vcWBzh~Z`|I_@8&iVR2TUW)LGYAfp<6Ei3w-VmE z=1$3S;c1d*Bzru6e$wgALT($K-Tz&@M!Z?_w}7=U{&nA{u>k-2z4$bC;nUdX`!u$+ zdeH?drx>4x#?&-0KkXTLdQ9~9Cm!smluw)S^w6&2oSUFYou}epCb|XRx2h&sKj&%g z5WY{G6TREzr}D0k?^|V?8Tw+Z!uNfuP0O{zcgcM5OmvB@iXCKPYRuEF!|*y!X9eKD zIl#k>zaJk#O~HhL1Mt09+RAdy`-{)TCr}?^EkeWwL+QSY@Ecr!uV7)wz;7CO*6*DY z?LWBh=4l~s4zjM@<2!o&o=UGQx_Bz~>fBo1!LGfiR(QN;>8lHoN!s(LJpj-HwDFf8 z3@P5rJ|g@AHQ2@V*hmYpk$A6{_x}4~_9_~Es?6%OJd@&?9-eV+_tWNnXiohl)Xu*T zb^N)xC@R?%q_c9L&VucYgtNVShVul1PZ?hj;x{XQ4R6TeuXG;aZy)+`?*+&tWRq}O zI2VLjNdafp&9%?!oqYHe8u-D>;kC;DF*qi@?E-i?y0+lC0(kb5pMDcHvVh_C60TVb zYTep=83*TEj&i`{4%oQug}@@SAzRXo!?A(Ly9d1gP) zOyQYA{M+`Kg|RSan*`dKlVTj=0|}nh^%Q*Gg`8p1!x#(46~>UaTPrKhvhtR(+ja0| z9lXN+K07*DbrCZAW^-ksbgb&YTHNj9xzo3vA_pfJUor46@!`+jGzb52g1^28;P2oU z1Aa~NRX=c2^ls{v$VVW1Yc%+6Is*88?JdAB`ZtE(@7TlSbck(v@LOcym)%bo*M2^5 z;%>o8^o1<{z`mi5Ze)IZ5_k*z9NaE-aO)1h4VoJbZWjmOW}i9Nf-!&OWm+R^a2E|IC~uxFo!*=UH7>;Zq5Ncd1Fl{YneXeq}3z&dSMCviD|3E5WzQ z48Hk$AWL{3T>FY(RT4>Sf4=yr`zQX`311Ox80Yp#;lfyVxFJ*TN!RXKeLDQK@XhiE z>HpopwupAt3C8dTwJqCp$|%%&4IQ2_43_2SbL7fXV0RphhkKR#?e7y=#IwA zuP=yY;GGXkpN3!LdGVDDETQ3%VVR|0@zNkoj||`8^gJhkkII)3ygF6y;729V9ppm_ zmJWW_ehk!q0VaYC^2O+#^1n!LZ-jSBr;*O|<*K~8i2j~{Nq)Zv)Mw#*vwrGZ|1$j% zd(FuYftO1ThVWYy;UmCjv0eRCsdfUnOo|Eq;gi75=+yWnuxpA=sEaM2=74gEr6X^W zuNi%!0{vP#Yw%t9GWw(&(57;YpB~m0xlY(bMYPc?xyEz#z^Zxm>Ga*Q?QWh|K7Rg~ zzQKLvhDb&x7*nNJpNah#y_tUHQ*r&a=k@Ex9`feLDyh})#%}sV=O+eQVsXg(QI_4}H z9AVAuoGhO>*DJbp7e1g}6<+kFmCFZjWDnX9zs1Mm-a4w;DML19ainYzfe~ixi zV~0ym`uzx(MJM9Z4yW?JyZ&R~QIMZD!WT;_u-_-t#+LfL)Qsc8;p6xgRRcADeEHwqcn^TD`Sn;-J0-;!9KT#6xP4<@v_1o;Y#jyZ z5MNNg_!s4`91TAC{kMu&{(v*Psi!QsibitboBQ33_ZH*d%*sc}M&B=E^3IycajOZ) zN5u+)w#8$dBW-DMcs&0Ce;*fN2+m^raWB{)7W@B8ra=i-YS{{fTVlEqKinv%Cc z+f??d2d=O$CcO~3-|x+d?uU1m!Q01#BI!$*lWMTH`utmU3Xax1k$(k>ulamD&be5U zvC4snpJQcOg3mtWqroxG$Li;dC_N|pRq<2#nk2igp#DE&m}~Ci?=ts!Pwy||H~KzX zvR~iD*R{UVkBp5forT{jB~$!O~=?@%1kw_)XH z=~);taqusbXW{NEp6Gt7IxZ9=uPU8Dk1Hr7?o-cL3JYQhY~#X0;^E9MDx z9P-Z9TK?r+=D_@h`2*)_9dB4F*)@>fNZfgE4a&3D;%?eBJuoUvp37> z6)XJbx1jfBp7nJf_spkx#=^_$xx;yqumAe;_@6aL?2A45^yJmf3(^z0I`fdFXD8qT zlBJ=-+Ihlb_e^H~hF@jlD{&L2IK%q6B1cD$-){F^2)>ul_sf32?tL2{$-*x&3;qH9 z#lg+i6XX}<4ES&;8b6!0W$jEp1?%bJgY3zdzpvfvoD&_p-oUIv@O=(Bl-U|@nuBV4{QlO_$6q?y_{oP1p4XYE z2X^qQa%{Q+_Ab>$&WYCHgGBe7C-z4EcPw7Txh7m&KR0_W&;^x`@|m;WkiXsNv03}fp6w_fw8=N1 zzlw}r>z@Vb+ep9IZE5hQdHCtp>$1G{(zqKLxB7bUR3}TadlP<0d#Zcq-nZu~W#v^| zy14g_=x52#6wLH@5^!qbEK_txa~63@`h530Mm>w%{XW`RS-1n3vNzEiruN@CX7!bcMmOHRU{O707OlJ;igLL2?oa;9#W z`rj2LUMzy|+1Budf^JZOf`}{;xpOXTtuv|r2d0)0AukS`BK3+m%jd40IC zFY(7dT6@)Izf2J}OzE6h7DpsO79>#I*$*(zPwt@l$S;8#2NRSSMq;zt4I+bj4y z`4m?ZHH%|AX-_q-f;d(iz%k*U!!gUB!iS$lYFIJ%5Ah+o5eA0{uF z^BRpk!}Y^lKSr*l(Q&RMZ;G?v-Z%7m2Q`|$*NNXJSr6aFj<}5LZz_+I@2M-PM+iJU zohM%pk7*VTc&0v;{8uyl_bZTt?*04EBo5Xb;kht2H|HM;->w0sCeB)9;;iWT&+yys zwFg^nUrRlxX0LF4D?0sB)x&D_uJWjTzj2CpRX6Zpf7(^8`kd`u72&f$?ZI~%(?i<} zX=fR6^+$Q9k#`>DoeF*OPMl{S<(*DGjlOR7Rh$t$1^D0t*jo8t(oDn4^~eyYJs&-V&->j9jrS-1y1rXmO57X2=6W+-dkEj z`^l9Ds&SNZ-jQmIHFHKo{37W4I{w%npE9Ug@ocNbM z*YW)4$*+){Zbc_CcKOw;*+SNg-}^6!q&M+QFR<>tiQmT`6YD8IHb(vkI(b<%$@)tE zAD|vu;Y3@Lg#0kpjC1GkJH_wQI%^*=^%BXsUW=`G^uJ+a-v>UxFEuXZMBWGuY=(zj zqOlMoX3el4wJt?n@>f*7_=R8TZ0zPv?-`v7ulJgHuj;v>*@?~QtY*)^_-L}KF#5sy z$feEXGQry%zV2ducCkL3*SUTzbZ{@YAsP_fhz3MAqJdU@2I!^-dw>4#hPL0xTI(Ez zA)juBe7YI(>1N2MoAc;X`Wv+WV&zsZT8Dlvy|M=x5m}5poC`cwFkYWe99PF)^|`DE zbJU!C{b^1D*r!%d_k?xQ^dg7VDs6aXE@RZ4|+KtjX!PZLL?bejTvB z30Mnmg0^u5jelCW<_@QXk(lgo5J3nss3I{;ic8> zK0GM90Q(4^%GhWv`D(wXzJKtyR{eJKM`WUo8cj$o2iHI;}bPO*;7+6 z@HBp=DXI$!Z8bq_sY&3~N#MgYk6asg5IU~4EyG>kyBJ`=j8<6W#0XY*YQqX_53ztj}g}zVA5Nt)jh|YEyKlz34?N&$H1V9@5%6 z`&hb%uD__c&~6LzBxz)ZrMKX-R>oT!-mbrGTe;O=bn99oS^loBg|ZSlPIIvZy*y6-aPC;p+|FV)_Xoij~7Yz;Bh zMsys(LNRJ%r)h1B??Q7f>iXzO(2drFwbA?CHcr9*l+%W_AzM87ZXNIH9r`f7=B8F} zp7e6|v-`AUVVS>fve}iJHZ>2vKhb_JaQ%T%;2Q%^g7G!&v3>qsLmhSCo#v=@&FPv%w$xZy3A7 zhg*z)E*l@0kEtBlV*Re=UB|zJngn6|ts2)v?PJmTSn~0Fc3Z~}fCXc!FnM~#(eaUk zMptV_w`oIH6OHyTHtA~_)W2Y~R^SLp|PiZd1 zAb*j^zbyQ-{{A>RZUWo#@bI@jedR3*-a+4$=BRZ^f|m*Sfq_5#K|W^r5R%|#4*Z$3 z9dkBLAlf{`A9E1?)p_`mnngbvvv?D0;nwsRV5l?Wdl^R|_FOgxy|63#`s?Og3-QBp zkNvWYY1#I+JLLZfCi)?(u$WhiPs~?7`5neFxA?6h3 z{Lz+!)E8xpz`(>{4UdPue)Ki?0c$5-)#7;rl6~TZZcXJkD&+l*g`umO!P$)~Lsv~V zxa;I=_KX^f%kFzYS1d3m&F7>3e0~|gXX!3(%*t!hm`|rqjd>}15Z1B>VdGNos_Ez= z&8=QEymGSHgCLzOC{L?Rt)AihQ*uc9bkM$L58(PW$bm3AcZ+XRwD>kfi*Hl31Z)cV zhnjf4igrxRbl-m4$U7B`OS)1V`(vYTzlm=cT^)MYyV7lHmDlR{7ru%cU$gpoE9;Y- zWNG4l>GI&L^G8i%?2Yu>!#cf2TXkXmCR-(J^2NxZB?kSi>rG{(A5n z9L0_Z?=Iy0z_ngz{VdvZ?T8k|Gb8ZM93BKe5N`Bh`Bf_OE$R zmnP%4T8q!94Y-hRcSL?G=|-FXG_-vg?c8_-ek;|25?vl+=+o;OB0nWVo5+9R@;4v% zX%o5M5Wr{0pKpP82J5RyZi|PC&pZcyPw~RLB?nUQq*KAidp*^NFWSB4;F?>>omk(3 zu8W@q8DYW_^0OsoQ%- z{)eA3{u1y0y)9nJs>xh8vxf35v0r!nTAmS1Z#g)G9BjQ!PFV#*k{(JfvKM5avszHxoUgl-zgD^Sr==AK}B{ zou{dRtNB@Y`*E)te5>3~7Lc=qULqTE3BLS=>DSq3H~6sA1vIzodDrMkz`KsPbluhu zV$*zaTl^eim5f34tJZ^~g`8*Q)>$%4;~g!QCwZb+t9;PsLmxLHQ%v3NZhM~NP>(&& zaRqCp^Bi}vZrby<%j0}U&Tv$Ho&oyA|GZ7L#^p!58~f4quX|dLK45U~V9D9Y&zJsT zaA>jmo5AM|=s4K&Xr17gO zj(7HCHhy&+ZM~KFmHZ{QAeTp~Z=~@SvX5kK>p9W2O3!vWn8)uPzbB~u zRoPhzq`SL2K2?Wc(lt0-V?3;2}1 zB3MVm&>sEOb6;n;bZfr{a!7Vnr}2l4i>`gYzbEMmn-^>Ld+^R=-f?@ngh$Qb5xi;k z_2gnq4r7<$N3hS>y)}Af3C}FynX7rGif6)kdusyE%#qF_9q9_5)wS{&%-$OG7`Gn; z-^Lz~eO*BwZtt1BHSNRp*7&^d;m0iRdnkZE)p_eVG$dd57q%suz3A2VP=^&BCmX(I zPsvN-M{7RVx>w_yyqa8-)tu+vy5>&f8#jBo?V7dnj2)Z(F1-C3eWwCz=J0nBv7r3= zYRQYh8F*-%*q*h=BHKFe=KTwRjj4HJYX(EVi{-BruhDZmq(9&@Jr)1yMtF|)@s~qy zDfm#hLVguLj>V@PpN*BPwqGCZ$d)y>B6ur*UJ<&~ebDiF_=8H<%!!u0vG1o_$a$R+ zilnck&n@G;?VFTS3NMwdoum$tc)4V6_d68B86SQ599xU6TX^LaMgPcmg{3~_DFpLfi zj!JjMpY)LI)mHL?<(Enl#}?1gUJTW*cmkbjf$#Iu{UYGHg*^o2@aRq8L@Vz*c%3Nt z!h7TJjWkBqG|ic>IqN7pJ-C)y@AAVu^DQr%Q+paYwKGjl zZHdXLCC*}UYWt8y?i{W(H8SL<5dRjB*S;J1BH{g$mK8Tj=&i3i<ipi_Cfghkt-y89Ro#_3+FZK7sL8mk+cC z9Bl-?%9FSO8(p?fl_xmm>Qk~QMT=k6_)5rm9DyF6LLUg~=lJlcgK2Z&W_^>KEcnXMZ@5@_MyW2)8-xG z)Jb&ff^KwbVmSqm^GP2CYs0bRDn3uM>*DkKIr~>YSG46Y+ZLn@nd8 zEzmP^DRmRPy~KN{Q{!P=o#05#MD_q-D_uU3T$u*u(abz}zNgLNU*CpEI$lp*8)8w7 z@F}B5UIZ+-_q{#TSz|5<=s$Up^Y!`XhV#4Ssg7>!ef6QU98CMPt^Njxr>kwli_wGB z_MNV6@IMJZwrhOowlzPsZ^sU=T~F+rKGdK3nMXd5>1QE*h|kbZtLq1zkz9CW{Uk2t z-5T~tt2PAdQ5%k+Q(8Z$fkzE(U7XiehJW~T@bwM17o8l%dHJ=kd#R-#%##;C?GM-T zT(Rs6sX5R+uW@Ozc&y`g#h&3ETJzH>jCiQ3@_{Ep^o_5rC zUv3GFTLu4Fd;;w>RNC`D`91A^f9}FxynNaN&+EB?PVip)M;fZBYl{pIJ~!^&KYRI# zE9`Udp~W+giCp`@m%g&sw2$q2K@n$ShQ@GsUN!9DSa6tM1LeR^33 z(LFjsX8k0amk@6WDdqwnl+Vcn#ip+%!YPfBcBs2%WTWv5`0suaI=-9nCV{8Mv7{n2 z?^pvrTcgJE4;xE%F@xZ}Q0W5f_QH zPkCl3g#eZ=j#I;QQ4lIRWSJ31d#Yi9WOrCu5zN4lP| zxA@yBlNHQKSa_+vNsTJ6~NoW|bbk9}Bso*jEmdlh!1^UY?8#fi8Y#<(39|^gu4o;HCWerY}EAUl|*0R+|_-w;cz+uoGMuNvxLXU&O^a1uDZyP zT)3Hgjk$0$_gW7RH}jmA3paDGA{TDvo)0&3-C06x#M0Yq;w8|G);l7t{7*FR3&8c6|3~nn(Z>(wC*I=l!`N1r{2!S^t3QXC%;AFU z9FlWK!SPFSaeOU#4t?BvD>!}*I6jrN4)VW51M7}XgWZKrIx+fb_99m*|E;mcx4XW$ zO*u%u-IdV=k_}cD_#{|b$)C2t z!eJe>ej~JANB@=Np6LFmCxv2bp!FLj25G%;7_Fx{*G&6e4|t`wR&2zf3Y)<8yjmf_`qVJ*oP$n-p0^2k*+3n^1U!GLYWAalO+)|Exdx5sRYw1+u=*Fjr`_-U z=wH*&zvSDkAcku6ujy9*3O-kY{9Imo^+A|@hNKC8l8l( zlth2Y*`iJtwS3X8-)PslJa+iA@*}FBO^jn0e=3Ks$p8Q2JpNQpejj@zL5_;LXD?XmQ$Krt< z#LV^XjVDK9%hBT%+mWuTHg5nA?3hcsCj19^SkR(mO$uD?few|UYWDg;Z#R~*hmhx= zW;H|ipp3m2M<@&61=jYy@VpUa0d$bvIQ=fN+MD{yF8;Kzy?gX6*X4f;Hod*Z=od<`DV_5XSv+?~gR8S`j7 zcpGqeD?Io!oDrPMgDu>Gv=+S1<-tCTeZE@{4dwG)@!SLKsR{b~w)p&3@y5&Y^2Zeu z+kwBS0o%EiPh<0-n<)=*0db!#o)_(VH#pc`6YagLFxJcU7OuAtGhLvVX}DlsoO>Sk z5>=t-m}7{M&IKRASLykwaNWGu`F+{zE%Vlqx4ld`EAWTjx!xm{?%c&+>5R88Zo7C> z?z;`XFF<1pq2tLH-OU(#@vrpG@*a`zUi-yTJMH`Ryx$7Xckq?&7)K5zs` zr7bd#ebpJCtK^~9hZ-r!!fd{+nJciebN%ABln<-YBbe*Z?6)@8SBY02daeuXTuYb} z^SMa#DT$<&x9P^uLF$Y@o6jnI8f^~$(dqLhWJWx&M$e2iZq{Jf8o~D@r=HTdxjx() zIlM9WX>jM74DM`aEFU#r5IFg`e5L^L6&g2%g^#z;mR0 za^-|nK}QxRzOe1@-h8uzICHyds+D`3je%X0KbOQwz<5%2E~`hH%cK!te3G5ZXEhhD zN1x053~pd|7<_-ypHHGbGVf;rT=)3r@Z}a$|2`XEEQdFUUo=yvAVuDke5vGVw6AR~ zimvlgKiEQ!kNlK5_f4IE@cMOrosD&&!LyY+p`35!aC*G&eYOal*w#{b{(j)hy0~0! z^rbzY2fymW*e=*)%Bx5KEA0YODR%X08UIkpL4C3xhISNUNhjW_3h-gt`` zuNfofBx|3p10*M2OO=u=~TLSx0>WBdb* zPr9SVadGZAwr0k`Gd(=RIJRcSaWUhlkEDMQ97lGp*>Uh(AJ28>jl-_bJENPZpBx;Y z0ZEz%0XE=AP|KyLA!X`QJu;&eA`KRM~&XI_ryZKjrZtInKj9T)98%jg(eD<2p=@67OX zVAYHb``_eLOb&a)YKaG*`3=t)7?LYg#XOoP*jnO&XXZHm_6wfXb*7d${71FKP0pUH zCC=D$c!=PxoIYS)09|HliTg6l>22sZ#|!R0kI6r8z~t}YZwT&B8wvhD{wv_W{4nsp z(ZZi|Gi}W});X4#hMWd&F7Gb@x7lAj0{DOKEx`XXe`EN6U;CU60sjMe`ICxQEeYgK zN~WFpQ)*;WJKM=Lhr4ruo$-erq8@n=c4q`&XW?seCiTn`@OugPJ(XvStOa-NGqxUi z;F(N4@^YS)4pHTDCc#~oGfDi7{h+xylespAkE`an*-_-i)?s;+C04IoCK#4P(hmk? zq~mwhBk1eed#3Xq`jHXJbLJe9c|GuvUUYQ9lRb8K#Hk6{iGC*iHh~VDLVuDxlHIq7 zobWi$Io>DU7<^9qCla(5r`;57TE6;@=&v|iRB&>9Rk_W2_Zjk6OrA4*LotJd>QPcx z#>5vTbKw28th-_=ui=lBj$(WwJg0tBjIW3Bk(_^r{OKMtLwsFyBHK@6H}OrLZ}s1` z{32k-H8a-Z3Szw{g=77US@zF(hnvk2eyiiRdVY(f*+8F>CyPedKOr6wr%t#&*%$f9 z&J+G+Z+*>oUT*OUW;S8}C5=3og)Uz(unGLGER8(UiBAtuL<@dNu9VNi`cy4yxzObiq-6!=>Ql8sKMe64=!-?*jBd>1oQv90@N!$MYFopMCU_W5}zsHUno5PH|^DHy&1hJEIuv6R^KgAezc6*33>7;j0CWlmgH~Vto z;dsdff zF*S7cz0u?h`rpUfPmdU0IWeYNd2cfNbJ)u_`_J?iESOx2# ze0BBj=q(0Zg7$rcadB?8sc)=0@K*Mgbd4M1&N%UHZl^1-7Rq(9`04-V&wZ6Y_u%#Awm6gpb8;9_#^7E^KgrwaX_xke5%I zXa+_ry!25K_PS$_98Ij}JK!TR&h}rdd0+I8ZDq0Nn+u}KElsWR(k}n>dF%eofj)o!F*VTv=<>PnQNX3xs zw$!%k$Fz&=QC#hE_#VE;?OU-|KFg)RI-N0EQlp5Yv=Wz8A%^x zZ#1D_i-?H>6|BLn{^|5CCtl4=b)OY)U%`J4kZPkUa zbuWZ}B_^jZNS7I!(ixY2-ou2varBY*ptCc@YxOU~f6V^P?0B4hzKI$P#V4N|>%+G5 zDi+3w`EM^n##JYZqWiqEfgQ-Ray});`oO`mqsYOghDRgoF8LteKwNtj@DGHK;jE7` z?3BHZSNggcc$YH|-V1(j!iK8!J{WyWxntCUSXiOhKyg?8{aWrDIThf&FFusji=PPc z$5SLk%(+e@TpoL=0>Go$Fm?wL7B@LhEH37*w;MlUYU(Tf9n ziR@kr(QSlzN@jf@o?vu+a87!Xo74N>;+$q5!JK9u$((#0c8cc2b!JW{9pRj&Mbc0C zbBZHV60@>%DtU`@8X^{dxOMsq&m4B0X4!RmfoGMsk(m>GC1AgdzE0?W|K-*R{vf}E zTc^G6erve*^byQy$C1qG3_GVEYEE2d<^<0?)SPm4QHzi8c;;?wvcTRp|F;s>5dXOL z2=@3o!W-MIeU`vauDycN6UGI2S&*Mq=h?gP`iDZ@ckZox?7J^FdEGBdUNjYBe?jNc zv3hF0zIXoB_q{xYJ=yC%aqHd%s~&v0=#?j4F6!9-@|Nr8-?io7r*7YTaP4mKmxS_g zup?@T+uEGp!^aa^{ry!-SvTTpTXW)S%tJ97@d0Pk$*vHMe@bxX+Tf$F>l?Uba*G@f z4d(Ir_k4Z#yMi0Ofky)T?{5vC$rY`8)33gD_?-L};WP1n06r^5fKMz>9yWnLmH6$2 zH*GWG^tXl&zx~l)j}J5b`3B|TA>(HT-y_@By^Z3+6@r}>^;?VJpA5Ti%av zY^h<~m%`_;N9u?xeBeM%e4{-RSGW|r5&fUILVG5zaEXm?{D3y{;~S=ry!ghgJZE*P zY<%O(8Y{jl_-tA^fiAvr(rDx089%;}9mmBszVR=?aqyhUY0zBVICxI+jg@)hV13w! zIC^}e)nD7U6W@60XHL&_aRjGl=Ee+G_XUd6<3XMJ=}x{JF%h5ageH;ir`#y)S36h)WQPH|}gKBsU@zR~bR6EE45 zIeS%hifYH!7n<7H8M`oW&*^K+-{QE50hw{*$DP;^7;pXMp5t_voH@s|{L{W^-gW4v{p zXGW<}!#*=RFWE~s;ImyiC6b;*`xWGRHZnJ(XJ+O{ZL+{xIQv*Kt&V;sRBox!W^^l5a{;r{4h{pQ*LxjJgGzaIbB{n0Cl z`B+#Vxj*{J?^#@Q{^*zd{U}cv9W=WiC4sC?UNVZmv$h0(XG!e&R4AJ7)6||+@?-ZX z_uKk4Tkvb*%RkzCG3eKnKU2QV-M^y-68k^3_k@_!R?j;ndNz0fPu=S5lhipD=Vr71 zx^{S);en=Zh|Pu9x?7m|-{qeP*mXDg^LIAgi0Anj|9sXz^|$hu%@2+Rzg@n+%qy(T zIiC+d*LDy8mUK&_Yx=s3zRMm(UTzPu|E~s~r*q(BKPWb+_=VF)6(7Il(D@Xs!L;aa zX5_Ac(>H!a?EMh>2K!J()i<_E-!S^(DEdZ);87Au2lWk&_ekQ&|Jpq)p4=|K*=FWp zWcZ=u$y=S@>@Mavia%zn^PAnqGX@8T$CKSNnRxPgo)w?W_%0^p_%5~{VLX}V@TH^U zjuuaTW~+r=emvRLBRjy^2*LdvCNBzmAlcxVeI44<(RU^O;Hy3M?&I%ACkvsUeF&ZG zJM8~@H~YUH4IRCzi9GxPa7yQav{X>L$3ByG&-{@+VDDxR7|#xbh@lLSqc>j95~Eu~ z9ZA~DJbN_zz&^u1Fg?5JSbk$4*mu|mrhY2<{w?y5YN!KHNj}F>)B*U)X^i7b-?ro6 z%-d&M?07Y9?IqD%G_Qdg^bY2>mK;6JOM6e&oDe}?7nwM8D}MXac=tKP)BY|!}gQQlU;5+ z=R1=xSNUIaIm5Aqb687hw~Si2)G8C-U+8%M8PSK?d)W(*FQNvGWWX|XuVvCt7g`zc zAn|=&XJi0-zs#8}$^!&`miN1UZGC`GZ=fIZ+?mnjNY6PL;m0yet&TImDRj5jznj(F z6k8FGHZ?lVpf*N8mlOYW`rK1_{8fH@6JuozbroltSbPY$>mI(Dc8_?&wc2xv%|Kp3 zjM~Cx?vCI5GjnF0R3k85fE=y+Y)w@4`wGT!KB(rS_*G}&ha#!NX_Yh1_W3{Le;URZ-%_^u6)bLO(wFLE*Ld>3y`3e}3&Eqi<)&tDHc|k@iwQ#!6dsM?QP&ZBLfI z+3_0sR9#r{MVBjL$0(ayeSF1-)BeC%HQpd?jr85wjPAL=`FH%v+CQ}e`CUN0<%S<{ zE{KU`TRyOce3_cT@Jkm0-!*#Xm3s4xo)-@9WUrRfQ%vledm6iHv)X)`VpES-wdRYd zmHOn`&@=t)Q5m9EaT#qsS(yEP3vHVEt=EUHQeSPfp}jfE^Z6;YTUF;+=lrbne-j=I zQ9n4r_h#B`VeB63=-yM@e~5dP+;hL9cP(z=od};B4|*^CjCb#WFDPf@S3ECxYy6{q zHqlQF?>F+E-v0+av(FY~&Q;dh>Yu~U%g`l*`M~lA$)-!eKTK^_bP(l2OsDQZjaNEw z3qH!yl`G#{PTi+g{F3F=ed@&b*voTz-n~0?0=g-3{7H1=o6)IOqEiidrK@V0^R7~A z8lY3DrUC1?cnN$^{GEKEiM2*IBm;R|`-s9-d1>k2b`z_>;)m%igmfn4T3%dWXd*toq z-xF*Sz()SkV0-1{9LbJ#uu0J8QvX@OX^rXI>h$heXyfeo5%wE5V{v}^LyQ@H_2=Za zlvj|K=ww46@8uuA9gq(`U*>!tyPv+^?r({KM{kZlF2f^x+rXt3aPT_t341Gn-K9BH zVC$5#|1&{OUEfV!TF*sH-OppAFHR*Fr2(0ToszgFl1^R+?qILqCZ*qdT;F_#PAJ@J^qw>+b)q7$x~yI*<3!Cy_nSjbcw$*Da0ygn2Y$ z4>T_=i9XJ`PTGSnzmCpHL2k4++Z>iTJ(pS;{(bUlbZvaf_;EEJ{Iu9`B>uhj=1&#GWNz&YL8Y?i-w%5 z3%T$3mBoi#-SK{Z?*9#K1o^Y|J!bXWD(W*7DKD6PlTFY;A!C_p##11X*T48?hsQo4&1We!bQGg9 zwRC`UEpSzhyLH`E#rg!&TgbO(54C02jUsQ@RxC5EEozG z3eSxxr+;1Pxv@tDW5$1%gCX~uOW{2{*IKx67!0F_f#Hch44?FICx}1!^~B#QK7W%r zjD*i$8DkA!kRTrsI_##c(mp_geS;dontCIF?a(m zIXn{H+~d{GTh1S6zh>~}oN=WuB)ICD=a_xN-7dcgm4fO)5*IcV07f%6e_)~Mdz zM~^z=Fl)5lhslq9d2IaOeiLxY6M`oC8Fw68I`|TP1g?`kB^bN*%_I}1#dSdPvHQzqqFSw}I z_fB#NdZd$Ze?RXhXz#1wo_Y6_L%)lWdq*6bB*FSHjiaq2WDp5D#YG1waWc<6a0l! zYVYsW*38^CG(OeF)BOIQcrr3e_%J>bleD?&%6F7aC^&}sY++rrS0`1EUWV*eO;4*U z*ypQPR}D^IJ#|oLi-=!d!L#x?qcBWtfL|RzA6U*BPhZ_Us2XwFdy=XFuZSyDu3pZX zma^ZhB)hKnG2eO%t5i)ErwkrTM_my~pZj{r*=k#Uh+x~=CsR$E(yJ~)*b7=NVemjkOe<8j- zgRxc53dNpdZSMD|&k*u%pe~#Tg9r#p%AHu0E;6d+reB$6nGv8Ck5w`-roL@la2^yRs_9gtNVBIQdKOa95 zRnYx$;0E;HJ06^eUbGKFd#xgGl+0E8>g!Q(Ql|xc^d0U{`iE`lbLgs--dE#b^+_D+?&R|RkSgga{#NTt2vqXtAMZgqVOa~hd1{M zy2gSd`F&~r;wKl72Q7G4tNxom{>!jugX6CTPpj!yC61$aWn9x=X;tUcoRK{Y-##}6(eo-2Nk zi|0$hljVbtkryz18aN8C?eY16_A9ELe14!Dw!`74@(CP%DmQ&J{Jcl~!iPj(hr-Va zXi0c~06emCs5zI%zysbckFjmTXV6(4j#ffH`8@1Md5rK=@@XX6o*2M~W6ZTZoBim( z{juiS;z_Bwws=y+^=Np~rP@BK7vS$tQw;T5#^LZ|k;zTS*4OGmp7)|3^r62d(N`1b zMB?|(A8PjeQm1^3d;uqUI;Uh}C+m2hSGarVr`}7uv3Il{i_rI0WORj+fy>Z=t5>fW zyqxERXOf${;e|7~cN+X?I_q6M3z>dKC}#DLX@d>K*KY+k@AJaDhtP9pa_$^$M(5I} z#$(}V^REp5D)%_UJ#6$A#q(8LUt@{kQx1;hDQMy`qqD3Sv^tBeh3|CH6go@1Tz0=V z5I+h11zk%vwsN9-`K=Efu3s_=y>8*blDXYxU3141&+u?NzNPT@<*O$T-X~b9P4GbP z=ePSPb$OqEMQ5#*43q)me&njgS^=C=z%vEiRRXWq(9xtn$3uhPPfCU|#-*#54E7@H zmizK%1u$NCaA@`l?yuzDFUeDxQUy(whs^m~Zf+xu<3=;562s^IfwghtKh)U!8OIR% z{Fh%ITHHVBEslFq?znF<<6g$Nmke&wxRH}nt3ol^`-d9$=K|xdVcbq1e80K2^O+a8 ze>T^{Xa_u!zwr0><-t*@$F5%=DqLT~IT{r2T3qv#_tFK>jq+#uuH>v7=x#u^2<;>r7)!I4 zE)x!fBI$d;ffzV+A^PNV*qP^JV>}D3Ue5Ptp<6zq&qBlf&7tUiaHJ1E@gmta=y3-w ziKMG(L+vCkjnFoD)9mZz;G)56y?13K{eHc}I7WR3I_L%G`k)EZ7w??GJHdAQxYvuG z^(<|37EPCOd1R~TT)tlNTe4#uOAN!iL%Lp^`-+<^!4KZ>9&*#s`4YqwEUjnrTynoV zeaX)~8Nv6va)hzx8%Z1vqzL#LkT6qwbsj^b7ITb-;4csFLF+2 ztj4gp#CH?$h1cLivZpt#Zi0{b{J(Aoj`__WF=@66iDRyUl1omjoPVh}qq zO3qQVJXAKo9>v86c;{Jo@cDDbJbnHt=RbY^f-z4o3YFdZEdA7k!UL8&hupT;Bo=d%<=2oA$%2Vh7J# zUkwkcexvqw*$wh0EF{g|53-<71>0@QU#mQr*M`ZL8!4jHmV}I*P@bXb`?90fQ z=2BgU2aZCgc&e~)eFb1m?ys`@Zbtnb9?|L*uUEgwu*Km}@%kyI-|)aw@S-?n`lwGMpcMnf^pi{~vR20$*i$=KVisNlp?FP;7BZ+W-MVK*df~%sB6x1eDEgQ)!(U zI}H$)Kx(aHXSCHeVUs0wN~ANi&^9b0oMW|=x>4J*DT=99Y^T#{r(^boxY6o6iGq2* zzx#gfbDncJ!Dama=gsGn&w0*sp66b!{krb!zV4H&?0&71(X4l^O5d+FP><}~?Dcot z3!HZ|@14xK5&Uk&b|?&$4xq0G24eAn+T3KlmLHR^@2PHA74O1(L%_zp&QdMr>i%d;7CPvD)_oxpuJILEG5Ztncw4s3Q~JW5|jw@stYNp8F|HY+atNY|KHEc|cw=B$d^ zy;ED!i#o5Y5jzC?_24kpyEhZ-Ar7v%$HF&Q4?>T6qg2ajO2c`DW_@qtbn2*}XZn$g z&n^VlJ6MNpxtD$E9psO)nlIr&IZYqh30-d0=2zd|+UBd|<6$ zoj#U)@t5f(PRku%vZILovbY^#4Cxdc}NmoiINE@vnB zOfYULJK+VLB^~g4KRAfIEkOoX64yMbD-^lw*@$Bq0;&V&1A9{e^i5Qa`7@quD5 zH6LVV%MkVtj*RjiVZU-XL;g#Mx+4asz%gvLQomga@NZ z|D9x>j4wAnEt+I}X)>dj_9ZjqBS>DDJw-O3q~&IxM{lw6qWm1>#f>R>@mb`SXvxZp ziyLx3?8}RTW6qQptLOtdYU6#$ix{~>E!;Em!oMGs7eih|UR)EM{?8lb5jelzx`!+{7>+8 zuh-w&1)SSB$Az3N#kS-#KJzKgBB0Kg*3-I>2aVVO_iD`!IUt|)CG5Y$Jm;?Er#-{H zMsHZ}ojmsvI!f>3i=MA`^}E&))y_GKOWuC+qe#so3VXn{Q4`Z&w>R(;u^=HoadcV&~Z@7t#KjY8y zRdkT-voB(w4SRLq(wEUoMqa+k^Bcfz zGkB7%K1+E?%t6;znd=eex*~A@e{($yU*~yhm2K!8nD;J+aQk01k|Kn6DXGBBg9X-WEyp@*yttRq(0 z3{9MbZhs0Lyu|f!vX=*{McrQsYy!=sGs3v=zpD|{FGFW9Ne^bh>A(8#ycakWI4;?qpt~EN)?44ah&Jt%GNw#hDJai!AlMejD z2aOK2_ZV9%ZU2^g4sUJHljis;zcn$hbe!AVgLUKtN$=gE+#p{cuJZ4#&}Xle0pfqr zf%4=!kh9NwIfe%A$F4i*<2DW*3^Q~9pJvQ+esZ4C-h5<1C$?ZSH1JP((X2Eu&wu{C zpn(d%tso6-gRh16$A$Nr^8Ta1rf#QG~?4j6}C_nbkLlI4zABa2cP9$Gx&G- z)4W6nPi4@7a33?cxAEs_;F@aKhBgMs5y{kNu3qfj+tPKK@&d?XOZQLw_(Q&_p_+<6 zxY&c+JEQfK$Ixer84HHx$Uw!8pF)1g_qd1k`_7L_9~LI?NsT{p54uk4`dw3r1?cx; z*=2=^>-c>&-?jHm@7~R|>a=RT-`H$drt|nC%+=WS(|}W3dQGYy`M;T*1;#ZQoaWN6 zau?Tg9YYQt&C7+3bL(Hd5+2WZf4l#_*5c(icIL(Gv(qe(E1&BQ;dWGj#~Gh^ynS?l z#~E8IZ9mVw=274loVMPAelCK~r$D>l`&FJfCL9N1AI-=<;rUMG`Vbe<^#-nA%YeZx zXMw?&{NJ=rRml3&%pY>s&ytwti zKr#EIobzF@GYbs9FBl-((qJ&s!l1JlSv3`#bF_tr;ceD~HSdoZ7}&V{oGdW7{46k- z>i^aSKMx@5StFmwPh<2jlM_G@i-dLue-$f6#jO zvW)oWMsV?^sQ2J}>S;vStI!Tlx50nx>oB#Fx1BFt_7P%S>;sE^ZQuP3$QtNa`I_1f zX4VI|uk$9leloDR7GHF%*SKXm{~rIUW44-qOXoHodW=2MW*#y6!ruOx#vUv0*V*6a zhJnS-P(x$*+};Im49t5KANc&R*DoL6%|)Nd^-E+=aKDA-GlKdY9{B`17s;K8)VJTo zZ0vgOo{TYk&L6`GH-Xz0lo>v6$+{16K|Ml4QZw^oIewLAQ_7?Nq{a(+PJ_nocH~zn#uVUzL zG2fc^dcO2I*nB_rF6Y~0=qXjdLG=6z^wiAW{Bn5G`)RD<5V2WHQ?{1F*COfi@*{rV zl1GNNsw@rb%oRsl+Kb?1Rgk_)&}W(Q@=KfrpgbAn`8Fdr-?)(4MyxYe1TbX*T8>jNIhFjU5>u@rhJ#22gzHD7Uey1C+F@vi!ao0Q`+Lc6 z)Act!(BC(+^!K~}W`ECR^fxik-_2S2`}u#fzlSpVEAYQNeKp7E%Tzw2)0gG4hp(2#s{%^d0woCG};Iwao_8m+ypLXJz#D#&<1`z8!jX z^L;1%P08r*`FGLZu`Kq0*{Pb_hy4b$$D9q|PL}>ZMgRZN z=IrbAzVGn+R{O!eR|NV#Y5FGi)s~V!uD|uBztnyf(etzPCw-;yooI6X`g?f%TwvLI zOC6lq3n6`I`uBBDDA2#?P4dFc`Cpp`M!i${qvxl;0~z^N^OHZI`TZn`(=+Ec^&QMl z^4QI97dUnO=i?7&+5;nUya%JqB?_D+FQ|L5aV#}4CG(G*M=cR*ifT`u{1xfmgYT1% zSlqDleWy0F9=LG<{xRzumnmOR>loX~b1<|a@C-KMecY$%d zm-6`LB<#~=Vug?6cO#EK59~$b4*qkp%wO{O)+F51`yS`_{dVN>QsA7)PiMoo8TXH&(^=_?W-+W`uFkNwk4%^-wC}fZux&lA6%ZKsWbJ#y>5PQ z1HM6hFgC!?@1;H{JU_cW_z<~K|6P6XCC!!i%Kx-J=p31Sj_u?S1n2l}^}*%-Jl`vQ z@FwRKr0Jc2y)^nA&`;1_>N%F;&t+NU(Iv>Ea&Yxc&e*YiTbU#q?LWVBdb8}mpl!H4 zV4MBX*Xd5)ovr<{Lua;s^gV2U%J z@F8|On)}K@OvN!$GEKB`i$8~d4~%cUfnVDAuqo}{xv}(J#Mr#ms{fQ;H|*Chp1rTn z`F(X}&|8mLFG=+$AKKM(T0krNwdtXceZ;SqtOar{Af$)WVw2 zxH`_w)^mJLr+yRu!*hp$)7aJ2DdT@EwaUhFPcTyKU$$c=?+Q*A`D4#!|Gryzt$Pc2 zjTi)8`366!_@;0n8@M$RZc-h!b*z8bIoOz0IezmWYEEx{fq!F{`SyO_x2=4aJ!WhW z)}w+krX;;)^d}qSQTCh52U)>>^ANSS)@-LPGiL%7;(HWQ_ptDk7Y~l1+3)lBexJek z|1pFAR6IrXOtsc9CK|4P{u``?6;m^AqphD8fgTE3cb*TP%MjA5+rhrWVi(C=6HV*vL3V?%uphlf_gshwwV_;GMZPF0#L zC-(8IAN!z2;<*i1)t%m)cCY;0hBEF2$6o7?{a*w8ZO@-b$w$dVy<^UCHDk^(W1i-Z zSvBj|05|BTpqubHG*Zcgy45UbtR+3e=Baj6TG&OgQ4%^hkJ4Mb=&>FzRzj#Y-M>S+)mb};O5q{F7aWfIuBY;bNq0O ze6QgCmbVMLpE9;2>;$)Om&ZGaL5SANPK9o&25wKVCaBzq9neh6&E9@nBP9m>%J(_= z{VlNT)LJkwGr4HMtmWpq{iHqR6b$_srsyw(-j#e;4Ke9+$?7r4 zi=@m3f5~eY)X{4R``v@_8O8M?$kSTZtzSf*MyNxsTD8)Zy;yF)--kW~-lh%&fnqrYfv%?Lo zBWw4a4KJcQ?U79%o5h7|Z>q!d3vZ2QXG3l9=OBO8CoS{g_}$_!WlyPghH7XyxN%-( zf6fKv@#o?H7kpWgPWRRpBKK&XY_TKAfHw5;9q5bIr|#H*OsEgWSf|h9tYY+YA?^JD z{I_9yEus%}O8p{mxQ#xr6CX7AidcTPc(VPZ>63%!HVpeZ^a<~)4)vqtvn2U{xLxm_ ztNHtKQTeG32FdxGdLti5)>~-B*K4^_wt(JOjM&zpUk#l~7QD!qbC3fE(7}?ek_T-1 z9Hq0fwYT`|%jgds+ggSVf=y}k>Xqaa@XSij)3e{rRQWLvEK{%xdt8^io(Ox`KJ)zIdGiW2o z9={aaU6}=czx(GD{x)U7-+E(TrR-B@XC8ruj7=%M4-SP(?VYQo=Bj9{4ICTap8GnN zU^+f^(Nive!rFZ~%smHqjP<;xPGEQtc*uX0%#!WNUJ~p~a0Twa(e}pX!l?J7X45wH zprPj$@L%S6y@$yIF}WJNYv*m-AI^M5Kg!(@e(nQ~QO>Gp^l9rVe(Ph-;-~Iv;D9}A zYzyE1Rh(u%&jj0aaR=E|^$vFEz6S!Z6Aw80?|HxU{h9FFN&cZ=1uxDMY{*?Zz8yG; z2jrvFbAJ){REuCV_dVoSa2z%+q8Ldekpo<};YX+93U>aP@1*=``}@r5MOQ5S^Sb9^ zW48UVIzxMjtG)8OdT!4heU$&IQx%&EL*B{abJuRE zg+4E&E=&<}X(I0{$65T8U%ljt<+M>i8?z_mjV8bD`18z7^D6Uld-Hf_0naJ_Qgq^I zsjJA_-%;%CFAU|>z>ho|>D@`qmWjx@W6;Y)7Er^rsX zxx}sHl>YqK8=IXkV{i+dbrhHHrLJI9s#p-`t=_uRxqe2V_WCx?)s5ppLbKP$aRO$B&TJSGJFWztWO7oPlqm+HQ|C8n4|yfF$qeA6vz+vO=Ro6g>I-_Henes7U+7PICgN>1_mMU8W?WHzynSHR zbJ6g&KVmD_JPD6fkPBt#=Eq*c{Bgu4;A82PaheOTHg$Jq0YB!VI={+2O~J^X&!m3N zP0A&Eua$UXt>guG*1pHJ$PDQK?G?+zzUo0gl!an72eC<7pJ-3%S!O#;m^jIIgAj^C*=ckQoJC{kmf!QC zTk1U3%!g(bBfT1aqxKlX$&2>)VR`Y4k==%q*73Yu+P@U_b4iK*7qiZc~=~A9UFN+?vcHN<|gO?WY z(+GVk-%$Qja2%OqH9Rre`rQ%76Qk?)|K%Y1Ar4Jt@`uhhD!=-UyOMMdILJW>2Aima@(pcMadXdb~vhC$8&AhqFa4g?dI6}Noes}Xc4=p4Es?w zw`#!UpeLL?b_ej1K9H;!EqM9wDE83_ygEe#z{th`a}sZIo|<=h;9=4F+2D512e1BB z7qruT>yk%yjX>9+cP5N|d`nJ8<`n&vKK?~(MVXilGp6h}sv&Vb(9p|@4H zRy{Hudh3ARc8ocU?G#>q(2Uisb7aS1P|v<}SBl=2W}!FLehtP$r4QwE5kq`HG}n&4 zZJS~5IX`R-dk&+g2R8FegX+B$@p-_D^zQieiY?Nk_)vQl>lPkPkmG0kCv+9h9dDEU zh8&U1=m6)6txML{opSMV8>e)Bw`j}C0ee3W`JZ=c-G({%0JB4R^*iX>?hDIJNLRX= z8goZDX?dY-Px<8N~THCu3Wr?_ufF6&^Zfl;Sy|-Xp3rIU4=S zxUtK6TWPCn3VX5et3o-{`NOZ$`?AU8U&$X^Mm+mOG5$Go>Zz{on@T>1zE8$CJ5fD} zdU9TG7(M&}@dj;ajY~RBeknGa>31A-8W|C;$CmG(;rnjM7;kk|-v?;Z#CWTV`ml-c zRkY^m>`({0aN;qZ6a0UtoD$$GfBXQ~NBK8!@Yl6usND|YlPOxtG5+{xp(lf9U?-nkdv8{fOE$fHNJ9;^4=t_OI1N074hWh3 z<7>3Php`;>!VQmOlT8>HxJL)-u9X?*oUO{~Fe0=h| z$t_S_@jQI;3A8(ovB?%w`+uPATI|V>i#Cw^+CO>^J`HEu)K~fKw<70qXn!Yk(`MVZ zd#<(i1KoUs_Q$jK6NPR>7eP3=eU;Oav=T{tjO$$nemT8QV?(Y3W}0_3aQhwOaqmp_ z-zhhrmKG;)?PyH2^)&mm6!W<;KvSZplSlGQy@(#pEqL`vL0Y|t)}_>ns0#HrSBCmu zT@_BN7qgi5wa3-PgL3dSIwQC3>*6{2lcI^{O6~EEfKPvYs;YuBU@ACM1w2pn&<&B^ zJHe-Fb#`4F>Tg5lbt3!PD?_FE_-bXRZ9Hi?Fpw^j-`u+h-9Z~Y=%y3U$_eyI1?y_E zDPO0bG3<3Z$XP}5$qq*Q9`3-d-Ol^cZIUTF<*!`J82H{^SyB2v+SUFDovGQz_Xz%6 z2XT^tT54(4=Cdvw=1jTTeeKBq0?kS9a(&hNIeW2gc*7H`;05|sTSi~fZwWGXE_+u? zs9959UDDTsoFhgGZI4Mj3jFn~Y%h($_>HuwdXV^wr`F^0 zMudm~#G1Oi+@=^XIC^URhGP1@hgbkId$0DX?m0bhXC?IL)@Rd>QoMEKQZ6A-yjmkAFyes*#~_>CC5Yc%}>c zZlG2*IP=(>88Wiz;y%tV#9pfyN=--ftMvNatV4J3dm}Qdj`laxmcE-BiL>CB##yX4 zN9sjKl3TI?Wfyee7q=j9MNh1kZq$17Fwp^eUAni^@iMflKIKQN9&WR2&ZWexfmb`R zlGUebH?8(=zw0V5THnr?Jug--{;ff7Xs>9SY?@C(SH)a!qUIuPwL`CZzoUkBZ!GVZ zKi#VF`0abpjNupB`J2JoxdvYyy3A~=Q8q7e(WPT7j0C41;1mZ=CxA;?sGxTnaGFh@ zJ$&y$uIRqbmuS0&Iid@@;E`6rZuhMCAupfxyio5rV5hpmI-khF>+ni=&!0mNb4{N^ zKJg>zQS|a4bI{oIFFA?4GI*5k5grv+ba*sl*-C9w^zZ^;qw%a{pQ>=;#?r`G^t)md z_rVX%YpG=kt(}?cVrjFS{>D|E-uw~%ojh2fJaKX(`ffS%-k-AEdnxmtcV0tJmV52o z(>$H6EE`d}YTQPvtCTk&yX-ulkAwW%Gv-YGZK<++;$*jUlZi1`B4?|>1N5mgpJbPQ z93QU@njepzak1sa$TFk1kbROrqSsFXhh$uVcG@e61)`_4ukLl=sI>>_oaXDj{VkR9 zWkNOb(G-tBztxN-hpmNvrGF$R<%jPuzlCd%HEF-KAzO;PaMM-TF4I{vZfDF|+mmg1 z*-uVymRu5zwq0+1rtm z(~YCAO72(FrrwkMYW2sab)1%%J%d;G!o=_xe~r1%`RnqR^iGR-g85a9kPi@U81i4p zBEHMd6g?Jk#)fd*ft|h!+CqNdr{o%5yOTDE^EGtL@FZ6nI*_^VE762gz(;mjB>G(woS-S;6_cR zX?|S3;jbBcn{*v*%|~ttZ^-A~8LWpzz)6JoAU0u>@UjBgsk%*)VdBvi`jpQmnlpBS zPeVbuujgBkbH?w1w`-w?<=Co08m!7fgZD4AG$d#G z&V)JeZjpV&JdFGR=FQhB9xs@ioEf77?gZY7D=7ABa3$Kmu5Q0#6Y?pykvH?C(c9vQ za6=BT)N@*2)aM~1duG3-?1?bf^Z3t{J^%iXr#G)7pD6SGueksB$}@rv>iA5`li|X} zhZDoU>C2MgtTzT~$$0!3c{0Pd2c}4#j7qL~N}uicAm=^6a~`(Bj*`BIi*65Z9e?}b zt#?n--lJFUQfzDXByZk=4{&CAA$kfL(0e8ZROj9FBs|nO-m~YM^W6is-va)PoLMeD zZanDSG+&>udN&=yr-L3&ehirapPhs^%y;?eT8pzjrk9{L^8*5o*}}%kPw%`?=I(hxoeHSFJzq0Rr$?LD~JCEzM{_DgxGd+_O4#{3x-u=NF+Ps7tAMZwE1tT5Js# z$>+^R7A(Qe(3*LKIMYlo*Q`l)T~pq_8yt4i?*R6Z=>x`5HBbdzV+Y9*zXa~Fh<1&H1^Lk_D;Tc zGIrhX+&L$%*oMw`()qTE!@B%ufQ#>fZ#}z(PsN}<4qq2xhe-}BW{scRxuyy)$H2UUaT~jp=ViCnG42xa zI^R1OcPnFU-aIG1gy$>yT{df*dsMQ>jrlJHXYn_%(z;s<{4Sdj-=SY?a2{<4 zwmSq{!PCK3a29OW&KbmhvNS4r@Z-wUn-BA!&U@!JtpBp)K_oGa+^@{vR`Ofsy{~c4 z+QpH?WZn@D<)_J}`U!gq6id7S_<4apV^6)8{2KN7wfZgib^efsuO!zl&d#rGe|i`E z8vTEZUlU({=lpuk|1iIPjWNFiel=$u|4;Mlrv&G>!LJX&AMci5pZNUg&A;J4lmEVV zv*p)o{`t(`{)OK%pKsuvY~W$=oywm#_UMdIsrEH!&ClfynEHt`DoSOW8`>%~@sN`@0GCE+VJDwD z^Y63ZxdnW@4h*M9%KOWShqdxvguQ{WFJsu}`q-bnJ4AW4k_>%5|{c71#fI z=6qIprNZ?G19NIyRbDz6zU_Hs>F34ijJOrV^MS3&(b*2%ukv#>rgJ?T*avet6brNC zwCAh6*LerZcOF6?iY;qw$Kf-@bCp*{E}g%IYWr3!Qez)SoaJn}FvKI4YhSYbVCBjv zM@F4bHS@_a z9IS0<+O&;)sPT9%*p`d+3ZHw}LnJ#waoz@K)X`_$)T?}F_$y_e|9|68alR=TxXK3W ziU6z!%PFbIfO)od-Y#4}9f0e-0h#FFdn}8*mwzC+sQ7mj*%L+fj75$s|6&{R$H+x| zgbMOeB=1`!7k&O&4lOG`M)XksfR%|Rj*1_l^?cz)~%OulgfZG|wu{|$>o(?yWx3O_L zc^j9J<7LNZ<*<8KF=zFoHLEf&Y;>a5M718JylM6_B=;_@q|ZCZA-~7(OV3wfFQ`xT z<@$AfHYa^-+h;8>+llVedqsQ(*Fq$-L_fhX3I`G3D4*%1a%cEHU_O;=6G^ml?dV4G z<{LhI69IZT>H913OJyUZ;tQR%_;0tN3vaCjjk{ZtI~wki&B-z(4{_nVQu9rWSG(0L`}V4SBI zr(mJ~OrLfe{rsNaolh&D-1)U_jD3OeZL$4$u49_lk3ajY;#TW!!|vsG<&epTb$bHj z$F?wU!Q*A{qa22$FZ)rh@nsb|V6Ef0){M1Qs@RFvsRSR5JqVjtWK#>WNqv}jqTlv! z)wbHZ&a*KH*>2g|rhj59C!c0d!U50gJwiOS4VX4#@1WP3!q_IVUA5MB{g0s|>>cdc zdcn6AT5KaWU&v=QpU5+_|3zm%JrogVd zV{d8wt4H#en2h+%!MBAv<5PjL)^U26r}AAClTqCN1kVc|s#Wi?7H#8KIf+eziQwR1 z;=|kFUiQUK(FkJ`9oKy=gcxrmP~#yLJ6Ux7>CHFuk8ky?@?eOi?o}-H zFTNz-DksrRZb{~EALX~qdl#GM!-@akdAE*y%v|Rr{w+%z<9OcjP9}{PYA%dF6QAPs zwkhlrMvg1rgBgwDtSMs3jhc;v`|>4IaY@g_B~5H^G&sig)!Fhb z5gU`#SR9=xR(T^h@0bO>1A|~(Qg%Ww?7a5g?T zKa(yq_@MQV@Bw|g@y!-J-Ucnw_D1-?o*|FCrvEGXo=F#bZakA#c5+X?-Csc$<^1d2 zPw=U6I$K%!p`FMH>9F6g|&f=~Eyb7%jQ5I@d5FIzr_XkpR86LTPy69r{-h`07948-vhsYcf+m$u zso1{rhf}qSZ5zs+5pB+eCPmZA(aFK~ar+%+GB4S&&3_Aikmc>jL$}wV8JX3B3~7sz zivUd5V#8{Vny>VmbW%4mBJXtVro2%3U8`BYIZt%K9x&&FKldZ}m3C#P%qFME?Gcro zqxCP&9jR9z9aHP}D|gxGefk~na%#q~4zy?Q+ASTdEve4}?3~@i7Yz)7_pUna8Oo_? zW-o;Lb^GIV-iRFo`!n7^uF!Vtl)C+Y#xv-qnibet$+^KB?Z^i8t-M0%R;y1f{4&2w zH)g`PBhUx7NKG@gtopeIf37`in|7_Kabr5|ie@hk(Cl@*>-m3Ni zL5@n6`7VRs&gkz*S*pLCS^C>u-hX?rzulboa-sL^Z4vg-#mdbX=HHv;y&snMe=+#p z56>LuQN|gpUvqL(W`XBDs92NoKK0ppYT!Z1CtbJc9EAhrrRA)@E2mesk7!$d zsqETf(Z6IR_vB;kIM3TVy?F>ZyXE`7@N4!Ti?%s;GJSu3iVvJm8srbh4}-rGta0JD zl{q%#gY2sf$jm$Nzn=f8cheZIccFigyT{oJ)wC2j#opQePIU1~<@>M+9-w|v>481oP0h^1#Vmy(1voVwf1`8OQD-uct-hmWx!0au@3a0;31kg@MV5S{wPM; z!S{8vtF=1WGFq==eGWTDdf(>k={<{2TPwrb#*sudd?5Y$c|Hxz`0H7@KCB+`;pB^_ zWIUm#Q2d&zhtP}-pmjTq$HcSIN6N#N{tun&J+KJ>ZU*?${G^{u{-@|4o-i;xMZOQP z;0O4mI30pQYDUOLeWH%)|Qq;Hgyd)Omi4*Ke# z#=nU*!y^;HBYQuZy1-)>c#QGPZv;zV-vW->w|b?v|H8xw`gi?}4)oW}KKL}EP z9oiSZ$tx8f%Gdr3zl&C+0~CW04;^KGN131Yma9+EnsOl(chWkr=Ga9a!}KmN?qPjh zu%5%`6To^l|I+zA==>6NehE5%I{p;v>or}m#w`bEa~1M>k9j69`OGn%(V4&<;Jphw zwHDYSk2l^HnQYFausj-+6Lw$Fc=8B>zga%=e0ojo9kTol{V;FQnWbmdt0wi=m<4ZWGObl~s&PfOo-($te{bs5W5p=JL|xd>%FM&P~Gmgy%gqH&p&y zERfeO&xCOhzUgqYu=>1#m9$kO=RY{&6H$8dDaNa;r5?9<4;~1=~@suBppH-xe2kj@A~4B}N9|EWNeUhjASII`}Rl?=Ew{bx!N*=PJ<^ z&BPs)m)dd-^P6S$n0V%CVv8Zpwl_GOg>7&Ra`GH(gE8;~`O9}IUZyx3wuAm#`TZ(r zPQK=)qGkV`qW^ev^I_<=PWe@Jr41wBB)-S9A@xh9h|E;11H#)g|mG|`zcm4&wGe%%LZA2 z{k{S{EB~nqJ8z~JZ4$5PtV7A>;!|rk>_&deuWn?0Qgk6bw&pzVm0e!U?7M#q9Pfeu z3xDPrS)uhp(MTh0R>KR%S3yS_*h6oMF$7_MF|eP{-YmtUwB{# z)Ex+W)AYM?tQRt7{eBzkpF8Pa_KKs=BH_!(LCJ!54kMGZL_e+Avx+YnJHya^P9n9w zW8v9#CH@@yOO&UloFd0#qI1~*lAEeoW8#&>T(lp^wwVhrVV}?k`)$9)nPm?I@#J_j zc+c7`(ZpXsQ>FYHcxulm{48GiE&FneJc1`L^ZDguBy9IL5d(NN5>4CB*S?uJ@@>4k z2|oEIv{?_&tmPiLX9EKT@pgEqV{3l=)4zXn^Fnw>wY$WpTF)KBo;uqM1+{_E-K-;A)X*9k7H?e@X=tS%*^RBV9b&C}`;%{OZk|D((A5#v9IEOf4dX`~ z{9Q-ntNS>2vq^1RxJxeE7>;rzmHVH|na8cfK;>^JM%=b(ZoD~0F4VQeiM2;85;c3o z-s%1JO7o2?^!lf>pGtc~6gz4DCiC7@-v2OpMu*UYW8REi zK2ST9Jiv3}ZEK+!VA3{nXuJ*D)&7CDk>|jZ5pr#74ga&x=v!?g=fvU1293MYi`w|_ zRNBUtlwE3LaVE!Y?`qb14h7sQ3@*KcEuK2lD+wCp#6nZ_e{24R`)xoj|> z*1*}B*D$6}LKC#phF{!%eL7y8UlNRCl{nhf9v}8PD^~F-#^`KseLDFcho3UfxBC+H zx+`K@oA4eOL(avVjI*_j|IOZ~cXED#>#roEKlw-b;Lq}=^(izb_3>ZyAs&<;lYHN- zKc?4@65Wf&^}oQZ2iKKOCr(z0OqT3>?V&eW$Fe+S`?2+mUS?j0nWK|$!Qb3^ck^2I zkBcTg3j8-k;?1h(;?o^=*|)N_>&E|tKYrOl4&b90jR?ezNOzMfK z_buhNN{2T4ZMgQ^ky$3!6ZzpGOCO7P-_l;=vCx<3K)>zgJ@u=1^n4q-a-;Maa-p@X zqIA0IbYEFfTEwU9v=-j&q@RPF`{&-%TwGtf!``>HvF}5%61}f?kN5r|)h=Y{V&JH=z^Epp>gT^ z?rFqshpy}GdKmwj_7ubDo|0-OD%*tjg7^?!{k7VelK#HNB|WA&eO~eoSZ;uZEFaA6 zQ|!<~p8Z2k`n}-q7b_16y?7y?Q`ui$pX2pUuD-ZWx`lcL#|O|Y%3YI=iG%A&=!o^; zYjX9nz9Bi%J+a>P{C**|3hw0lOZ+yq`ip(%&<;Ap?8%q6TnhA*gfODc~eH@)_;My9p$%+py?N^y}tJg=*M56 zA1~zji@86Qxn1;8FJ5vbbw=Si#pBez*5kD2_abVBEC((n)S480cQNM<^nvJE-`huH zC&NQGAj2geRo_eX-8H^BV~B-;%SZV>fpP9)eA3fn;G1#u-^O?OV}~D1@sEjdLLb^M z+A#|HFM@swtz1xz(5h3hY3f_!I6xoDRZ+hmO7@%6t2mOzNPdpt+wt)8YWh+g$}!c8 z1ARvmI|F?i-lb2)RtuR^iyH^L5gdocsIj!Y5t~*IeQB;G_-GRYbk<~Wk<**co~R4y zUvzdq{fo|?_HnTUT;S7QI?<=IUyz?+=xlT-o=Ml5?>OctpD&+2TWPwbX-DL`Eqni7%VcF*{xq7y_PlU(Z-0uv`y$wEav=zj0khXg0`|Z%ylmLF;3)(t{ zzx{S;YiOYFcSBoyfWy1Rcj;O2?c!K-ujy)H+|I5IA(W`s@Sm6HA z!2KhE`v=Xnt#kRa!2O?aJ(!%VtUFUq{v>0)_ZYTHHu<=oJ?`1$qv{8}wR~KHe5~&4 zqW11ZSHd?RP02@>t1y^+RP5+%d{g7|O+NNTHkr{w4B_qa%>l;eWX528qgqdr$&wS| zSJe=5ywicq5R4>?C7Z|jHjU)+=N?GOWoOqUWnvcDT=W*Q+4hgUMLapkL+xe^Ic5x! z(c_TOHXaa7Tp1Wc^E;Hy_ZYn#_2X{owEm$0{e8e(OAdw;qXPHOH`kV4&kfuk#`R$I z`eXJuW$N|M`g+~z^PUf%8P99K4%-?#-No|mK(|V-N!OY6rSrX$bMdRR&-x}`42K2=_A@9xO#|5Uy{zlgcf)jzjd5FjVq-@51`VCq71}@c z1@yJnGRFEeX~xaI;3pXGlZ?HXIyfbazmolZ$B5x1bvXKS!iYR-OHtd5x z_x(7XPCKs0#>8$ofDP~Bn5G6Gc0?!lyJVAJhrfpYzTePD`gog@`p}O51#BN|RO&5H z>FY-CYmc637n|3$tM=5dZ9gw@02}k;`M76lIhgY^q z2QZk3URR#Y5q=XtunyF(`D(7WFjw}YJk&l-b-w8jTSWPH-Pm%f=Q0^M^p5gvJ@&GO*E;6Y&6hEf<&%zF)jcjvSVBjM-hZCQI9)hqqD-0OJ z0KV2aFAt<}c$PV9j%UofI5qFmw=?hJGv~eLbuC*o7nEvR1}iq;p7^-kW4O;UKwJ6X?~UNdpA9%$(V z@KhVE$dxwaN*=bb7czCqkKY47P9k>OjX%$4LpMJCY<-6w`E2Nh_PW?Vah2~+c7GC@ z=Uu(uaxHWMt(!fs_;MZ4Unf4Hp1(rR)AyjyL!TYch4RJp{DnLpY)|{jduZ>3d|&#M zZ)kJM@`)W6V1tJm3VBB|QMqx-5m-npsqzxLexsO=l{EyWw-~n^t}Nd}Qbe;5}#Avc7B1&11cnJqXZ|*6v!6Q+M;; zR^D60c&~E$WLnFxgbiXD)QHTuqu=1dYC996wXmc%ojwLQI*Vg8JpSiX+!FgO~@^)uq z#Kb=z{#rVJcQ($5|D#VgNqukfO;Y<8w9jlOd|f*Ro+X~uHr(r9a%%dfJEFPuOIZ`> zW=$X#ikUS5=|t5PE*|^D7RB!DeC!(HCDoJrevsq!PpO{Tmj~Y-WB%kP_P#)FNe}Ox z7+&5#_p*Yg=6-1IQ**B_cxp~4f5Qp-Dhow=YtX}!ksotH)LVll=75hed@n)A769WZ z)yw-X1n!mKO6S~M1b*)4`*3LBlIk1#E~Z~}%f@BsmSda&@ybZ~lgqK0Z|wU3`6RE5 zEbqSrSv!Teg7PjTFAplu#H^=>6F=iR6Q+`vRT=R7VSoo6JeOhbWaf8jJ;3cHYk|LZ z0bl9V-M~R>d3#RHss~2L^G;W6Qe73ruM}tMlr6xR<{(#0tcvFy|FlBKTBB=67Kw%x z6Px|!z(b0EbrpO4Qda45<58m6GrCyyvVw&wTBU($JRie0IOnzOO4 zf?g*eH)JzT;5}?YEQOmw09Z0 zcP;qK59QWR#)cgaJ~g&E%tPzJ8e2DGbAFfXK8>vdI&$OFnPGN}1!jz=_WHISbYyHj z#$@8Lvg4-swjQ!BVC!v^t#|dSDVt{+bm43s)qSvZVe@E$*H)&76aU8ZHqSSl__eu~ ztPdxSn`@0LoOp)oOx|_***D*wArBef-}^M==tr@e;C^J~g|(vxwco+*O_u*78NS5O zMsDw&$g56ptU7}!IcV2NF2+8$G0KbjI^n@a{0zxA`5D*?empX_H;#VG=4Y%2cbx&c z8E@z&yRWesoY3Y;#rl=|rS*BUmri;PI_iXmjDG>W7r!36T>ec7JnsB5#bZmrUjcn6 z4&8(NpMqViSnZ4ac5(F$eM57sY^?^Dld#(-aqmLjd5qkUixsOS4t)fex|s8FgB$Co zE;ZMd-xme$FUW#3$=g^4zBXs$cg7#g?>UIg6=7XJ>Q%%Gu^W^NgWlCXZL@E30X!`q z@Txp&O1cmry=B&^aOVY`n!Qi8S+83 zxFQ+@y0;2>6%CQQ$vg@}(cYB@*KN_+D($Q*kZZ?Ur}b-%y!L6V6Z%q&d%PEBx#N|) z)UM>th4iI-aJ5qf9j~Fy+)%WMvn|YCm1Zxeo^x)k;!l2yLU((r}U)}dlH?Z%3_uIMd zpue3PZGTntw~GF@(_g;&i+S;Fraxz=+qRA>2TEfA&P`lDdZG8qZL4Ap3(51I4&J7N zPvvW#Pi;z@H;|V&#B-1EFPt`G*NcumB|2hl`l}i8NBkb7XW3(g(2&kFT*F$eY`R=ohdBUxC*8dnQ)+2m@=Z$aKg&)34Z%NJ9AL{4HYbJVBm1l%5&uglRJ z>Cahv${)+%AIBf><@}4@qxtW8oAaL)nEzh}=Z{@0od1eFNygvC_8n~g$Bg}$ZofFY zMRefS`IU1b{of{hM{e2I%^qQ`OX+;ULNC&rhh0xzet(7ePVSfdC-`3ZG^^oB^0Jz8 zJiA|VCNzHtUX*RAeW7*ao_L(iq`hrA>rQJ<$RtB=^s8L(e(3&Loo~5l6z9CcM+f;` zvSd3lsRcTekEC4T!O``=;yS@Yc@(PUh7R&; z%zf_*(8Vn9h%X=;Lvm>%y1?wG1#aJgmXi4kvw#`4zWitT)GmKS`B`P)y=d>ME#!`x zGo)K*fNyZ1d~KVzWpnUP(q8Kf+5yhmuOUCbZ6tN8nZx%Bh?7u%Pd2B8y%n}{660^C^q+K-<}BKlY|8y$MSPEkf5~}hipPo$ zw6-R@`v~@`>@nHX6QJQEJlBcr(jE=%X_b7^*-+b{U#)=_LXY2oUfY1@BA#CjjV?lG zP}}!GL#N^)a3T5#>RL;)LHe_@ADY{HTb45(gZdU-^Q`u#E`UD9dRI2wwE)~1oyi{k zEVTH{S5h+J;ebp`%0sgsDYYNO=mO5ly$ZSAsC*G%vRm=0OyjwwS*!27*KZgpqD30ba+e2Nvn?yoepyL@J?WbU)aR{_@>9P>)6kU&X=7x_}Ryj zr?MSn1ISL~Y_@uxsay&D-2l!ak~uu)k6pQUcI>jTm75;SIrMEUbn6cA zcLe+$@z2D={%!j94(wWRBsn+UiyAq%061i8V=x#jJmaikXW!)}`p5~=d*t*RIBfIb zaM*`~!&kn+S1O(uuB$6mu5hjA-E=2&75!AArzG2T?w!tdmK<=jY-OqKcfNmK^oRcV z#^x2nsGa(Y_cct#&grZpsz3Q^j()W-M&oc} zkiQ09uzxep?B5LfZ*!PKP@YL2wV}5k_<=i%)%Ux68h7#gc^Z$uKSepUFAPFIapFk9 z_?5H$w66^qn!3)?^Va}B*%2+s`7uW4`g(8~KhwcXO2##q7tBy_myT6qmoB914A($eJH=nZ7J@}Jn!u>Fmk@2wJqgq zen$CiMo)wj)05ZH#C2TDZ~9++3YJxT8k!HttJYgmcvRk_XiI;he`i0gH!-Ai`?0Oc z>tBS-mi<13F*cGfdXVvT)BtCGYhOx?lHU}+tz!Siq$E9A`>P9kjlFy3Y%kWQn~?ua zT3hwlr>D4EC%9{?0@pR*VFvgr17FwB=9OOmXUJE?zWGrz{k1Puy*Kt`LK9`4*E`*v z^-CK;d+&Va?(&E)l3h{FSq#$M>``gMURwn3ss^5Hs&UX%bDQ#-qluRyz-Jcy%a--! zm*{Rj;|sR0w&f=ZzmnsoE^y{K!qEJ0=BhoPmW4BHU*&VRVEKxr`&Ig|6 zp=<1%T>gghSM2xucqj82owLY!wZ!$chgSBg-BV#?*};N_KjyjIQrD*2Gh@GNT!P!X zIak)f=OY>L*&l$<9C9%-*Dq?p`wVzmdo8g2%$|sQ*rQhK<<{V18rvk7Gb{A{2yD}3x3z}d)uF6KbG$!Z~y$}KZ$O>ZuVi^j1I$=WKRe9 zmaPhn%6D19oV5q49p2Txq6>L11y{R{Aif&P{Vyi@#@?5oBz+iMH__OY%PrX@+Fr%K zXj-}Ova1#QQp`(rxD2efo!+c7Lkhh}%?j1cpiPT++ehYDBqy(uTw^U#>n_s$=O82V zS$mD4`x~)!rxUO1X72gR7F}_I=PEh>*26aIM0R(;JJi}}n!x``=FT3ortN$_4$r7Q zhw5^)@yp|*&YHg?sK9mdy&eQmJ$X2agtFJC#uJc7$cQWg7lTTl@X)fpB(syqH zd8?S>4SdSq%A8Z?cdhRZ0KW~;h0c)DyUUp4a<1pHmZh_AE6?>#F68%uWy`PN44>pV zxK99Mt)-NCvECx-8s-@x{=2Nl0ukU-rT<0bp z;xnleh9f&TUt4zJ=l;>x3&TaTb^9-br@X+Q(GPw;#jy{G$I{QUP##1(GN`?hHn}cC z7A=4-!^olz;wnAZ zH_9;x)}|W*-R$%@0~wokXR`iXPE%VW@&G;Ncn`dB4xHNJOm|>|P4Voar8A8$@CA4$ z#QD|DoL&7RbWkhuL%yJ?F~vLW33w&a_fRX>;t}mpG0z_%Z(PrtcEi1gfRTxnTwmV5 zig&iL&(Xc3GgQ<+w%Go5ewThTXI07$L!M|K&8NXf9eEJu9r#T?O*3$@^ycSwyv6rS z+^Jn;aPNK0c};bCEgcj0rEl4SL*`(UF+PpW?4Qy6r*RGp^DXppY7R+uW%R8WnQWm3 zjT7DUCV3`LeDLaDb)(Pozq0g^qnxjLf_cmwdvwdhP;MgkE5(oOf`1yp=hMJyNub7{ z&JNc7j;%A|T|2LecWlk!GdKQ&m)_#+;HtNCc5rq&RPIxwNBw?av$%SGvd&O0W0Zce zc(HMwBeQ`Iu+iQ^2cO;0JFz7T8}J##Qzjmgb_O=Lc)pT7fJvJk+cyRb9m_j=W4&4L zNk6Z+4Zc|luis5HP!%7$7?{>pM<9x>*kJQ8H3k-4opM;3jE-M^O@ zA^J0%`0J&N1v{n%dCzml<&%g$O@09SRJk|oZ9TsYS=W)Q$8K{7o!=u{#LnN|FF;ln zoZ7GQ;q!?4|K{&g;VK^?Pe zf%|p99r*uxd4P;lxGo zkk*H0C}#_Jm++~2phu~!Ag zK3Kf7BqQFb@we{`m1_K&hj1l*DcPho%&t+YRY|QC#+6*JXFTmYD@vs^p9X&=z(n=S zr8A#LM?>@E57;wLv+2$E34gTFi4N?7r@N3>3!q=g%Gbf~7~3(f@bDY4 z%asck#9>PI`SA?kbxQ_J+IQMG@P`6$Y2R61`ZMtA@Yw?oXW~=va5O8JXrI1(M3bwa zx$|AQm_`o+7yQ(d_W_5A$h8C5(#N<~9$+rEbPyhjDLmuPUGp~cKg--j*T>W!9=QClTIA%`bvO(bR`*$*q3<5E{&A*0SV7*xBK~EkiLMu8j~xKl z)4Be0<~1;ove(Yxdr(e4@gD2zkI`o?ec=E4dmpWAlZ~-}F-pHE9b-@5pb z)z}H5$@VdiZ8_lAIuDLf?=r9CyVwb)PI>T|O#Qkx2v6{oE#JG9@Q+|B{^?|_;=$?Ai`Gq5lT_#AIJ>~?$3jPtr?+4E63W*Z!t;&zEcfxg zVy@B|VQebZG_v!sKDufS>A9z|hpMTuROp|T+=J{K!Lwb3(v8k$j3vG|Gh+;@O(@w= zh~EYe_dv^TJgPq!qR;wP$WGx` zaSFi;9X+pOlK1Q`&I-MoSo>qtkXD|e^OaTSOZ8ptUh-&S265Rc>Q>h$eFz)Rb!~{h z!@Mu~tNt$XdAkwb?m@rFM|Sb?9rV2$80xvT^s8D?x~@VdDh8!KRc~3bDEY;%?=NKZ zeUKQA@Fibg?@JF3=I>ivy4bhf_nxwi-2F)68sI-&IZEJiw)wQ{92W)gA|DaG_v^p+ zWy5gdl|DXPe*JnA^G*4KLEkD9H;PxJ#p0lC7mGue+gRKx8;ct}i zfS+P2<;Hfr6x&g2(V@hXix}Swp1l^^=sNh}laj;sd_(2L7enug8}IT$d-!VJgV${i5N)Af6i;lYuT{h! z6bmzQ$j94~0N&1s_d0*RIJ-YTo|@s3=jGT0TCXaHw(pfLuL2&G(8cxOUvF`JWce^zR z3#($@tLDA#!cgfl-s>4jtpwgvez5E&y;sP4DLrT3I|R>3_sTXBj1S$D8SiwsNcWej z=)*0Rvh8uZA#_4Kd2*%|2Y=lR?NUVEYK$B{!?OEtCC z4L@=IxnPz9Izx|aCdTt3Bvv-wx9cuyp+ zY1!%Z8^(r+eWBZkAMf?b3piIK7+=my{9H9B@FO#EtT^jf&#NE9oP+quj1OeKXZITA zCx*gvEx;yh_;5(#74kilL;a@mK9K9G2i{|FokwlEbAVxP?*`vS%z1|BNO61dQkB<3}Pljxv{H%w5gmFY(U?mwAbLgUca_ubA(-iM8f?e&QeaOtU+vfh`?3`X+E6SmS&+V?UYBH#(N# zzXts~eQsMXkGT_&I`3 zlI)UwcV;dua)9@ZpMhMmeq)qpos4q6PAoCc%-KuK9b~S})P)buRk1-A`_X5J_2n?R zpt3oLotU_-){)E6o%+=NG4tuaqjN$X6GE2 zttK5<0=`#clSYf9c~(;lt$( z{DLu&pFsR=YQt+iZ)~pMT;;KQiyIE-q~#~<&CE{-gS#-eQ#;e)>0sVLn%(J-Z{}N! z&-&M?@hRUr2U@`gGwb+K`U>Wt51tk%kL1*4 z4Xwk!zAu#L#U(3@?###|5gmrV5lYr>49>;1cZTawfOY*9!6%4F0m@K;lnq6facZ`;9$#Wy8Gdm?yejwtC3nQ+X7= zUA<9okgga`?lG`%^Irzug7TmRUuFz-K`*I0wYiS|EgmdCKdPF(S#s|$qi^xJWY0g+ zPfwtIt-%KCacKR&h}@S|L;D^ce|uzW(d|dJt{UP!7-1iSTxO}cfdslAJ_dUqotIb-YtnegVo0~%L5aRTv*^$B8$W^kH0#&+a@YJjJFHaj+bS4{X8 zz>OSv+a+$AIcr=p=S9#Jm+AbmPw4C<~cz@Oeo~P|XFURZ~ ztK>6}=NIyvXv4*=obTMt`ZBo>`v<(-8hmQi$L?Ll9)T|EZ)=Uy<}pPRf4vi1*yYwk zU%{9b`BnSL5!lbZ!TpMFX-p}<%;HG4UnOndfc;SdEDF4wrW(dPgfTB=%-Z9)%>1_e zisJ9(jm~Ed_-{2j8;|vVatQK!@k{3Y0D18Z){Aa{mdNXAx({FF#mG5LA3uHPhB4kb z^#{D6z4Lv!rCfwA;%hz7*9k*kl0`!k6PSyu<&uoc!4GC0Q|&xdL;D2u=Emr;pH1uc zRzBD{rR-ZbN3HMYC;p)P7qiwMP8{ai(sd;9OLO1utNtn1L3&f}jN3=JAV7DnKIWo9 z=85np-{@gpIy{qvNXYsyb18SQ+pI10IEi1_% zO$^}p0CZOm9^_w({;GLSIe*#c4?VIU`mR9^@_bJ33}oU`FSmXcI%O`ObMc9G6B{bV zK7SrM5q=dfRW6%!PmgNF8(kp$79{T5kp;itvlASPM%h2Qze}_Y-R`DFy!bDOSNP|+ z)}!> zKd^Pt?Rx%7#=1>>#aPauN$5{wCe~nh%k`<8Q`yzQF`r3`qO*d;Uj%5eFhGAF3|yOh zEd#%B;{9i#%SYMU=H#KHOH;?tOW7BKQD%OZa=Mh;MNY*7&1-W^z0xABM|`flbPaL+ zd%UmgTkYM3KJ;#S%v-}5MWIB2aLcEBD8&_}leGSlc~7xMqdV~HWD86upIUZ_(H-)| zfYTqSMHr^GKpT7V6w6dh&f1XBz%1%5vNzDe(&qF8<8xnkbH(0 zVa8Qu##q%ilW}Q`8h42C74uy+LGljXYJt9aCKE*jQfw0FM&N3pHLWz z=T#T=v7X1-P~)i!t9`i6M~f!@&L98vgN#3vG5%nET#YBF?`5;Cy}*06t1i+o37qzT z(}|(HCfOg>|CendyCw%+8cTfogj)ypbwaEpexylqFu=u6DKD=B3-Gvl(OS%>2oQ4%D&N_iEPp^{Vb=S_l(`Z85!CK+je7b zs=fA2)$eR-rssa#r=K&U*fgz`*h>z z<-wE4W6_Q1m-9CJl#72mYo}UN3y;oflYOukyK@XM7`+WWD^E=4m3qJ{_iz&z7)HY{ss%bq)ouxC# zwQ3yeJ&kQV(EEm0(eozfU(jvZf0~RA?}i57)j4zcq*ZWS58ctes|Nf)6N*1xO1xZk zpqt?x_r3T>wt4>ZyLnda^c;GtO?YqhV*8ruJFWO5>(~7zcLq^cx#x{|#U5TO(KXAF z>#nca%%`px`$FsF=0O`hFZrNX?DCdw4d@I69{peCBGNk*-XGOZ5>G9rFA_&)fGV{PzpsP#qh! zaqA+u9uy5u;f^f$um}HE`Bgi|tm^OaYcwl=LAG?5-yI&brn*0(rzH1zjcamanBQ{d zXKBrziMWjCgP+$8?fKf@^Lg=0OMUt6>%Cf^7bV0UKPL0)GZ^@xC*|*C#E-}X$pi6D zKHum}!bD(_e@~q9)eN#kYe<|g(S@9vvBDWkS+DnyK{Nd^r9+yb8~v_1 z>UoVP`Jm^5{ipa%G;Q&1?VeNVOE`$qUkCQ~BwigZg7DX3mah?ah4p5$%YEhNBBXWeNx9G+#L%Vu{pC%G^rGfaD}ucei;5ok|+m^t~h=WGz+S!-1ZjoS0K z$Rzp<(U0&f8Vu4+K3{%451-!);Pc>E*>kz|5YotTor}vL+Z7)bj-~U5^3a*z9zGA{ z)IsMu@1gkAPHL6jA)k*mP~J`o{kssk_NHo;@_xwHlDyBewYq38`De~vqa$QrrOK&e zMnB!isg?AzlkZ29zkr@hT&n)TnT6e+KSS>%-c1zuK|iLk=6BX06i9TYRE*(_9^Ff@7Uz`+pI`LT0^( z99NqS(rE@KF=IEbXUt%mP2wllKQuekzmGHFsRTXt3VWRLDO|rHzhBM8gI-*pPl|2= zvA$@4M!p)Lk0tEO=G*(So8(8XEA`&F9vjiw-r`@uAX|7PHSK0aV{Nj7R^b=);TI@A zUP9dXapt5rUjaGqvIq0?yP&OCd%@e@=>;$EJ%9GgduJBB%z5gEp1=l(P&-F9=>_Nq z)ecjwf}N~&!}^tLIq!F=E=v{HAJ%cM9M8uj>#afiq>D?{&|iMOZ@#>DwZkOyRr^gc*7_2DofYgd*`qoO zy9HdXRLvn^R;)=eF4=R^O-64(i%#zwyAS+{Z&LU+!f6eCpuZC}>Vw~8dq|(9pvR$h z(AbD=_|3F|wuhD1{yu+M02higIr`K7{@lEHi^GTVb!A(~cG2EQhB-}QzF8Z}w?&wP zu|=4Jo=?LEvK7eZ%ZbkfWy7(>Szb_HWYC_QYy7LMK6Z9oP;Ut4&EPHH50_jH;vvGl zE-RRm{6ZIZuM_^E$DzCe)~g2?hV{W|$DY0EBiKIJR_)Z@_~7)r5FcFenIOEo0`TVV zr|0Lx4*A{irhG~Hi`sK)02V`AjMoL98902p8}hy3pP=vki-7N~{Z-Yall+uzE4W(m zy;p+A75Ls3zL@nV<$L>mOWzp(o4)1Go$$S2r%&}qU63~E>F4B&8{MP0hu`PGsr%r6 z9Ke@+@L)cyrH`zA5j<~yI)3+h`7Yqm_}w$02l%l|@`^Rg_q#<$*6$WP^4opC+qFZF z8^4?O+z)K_*KddJf^~PYez(=_LHei&z#F6wryq3pK>qnd>4y>h?3;mS-s$<-9=`FA zpY6BrLSAQpNis2hGCw=-`G5N$ezxD&E$_q6&d|02I%MC2GuP-Fa3DU3_MUBoKdKMtOWkh~JP+dJvC|Xc z4J$jce4%`;8er5NYS_=OY8=UI={m(kCAXblUCj5Y`@?yJ0o9)v@^R@SgRB$($9@0C z^`(7&=UXejBA(T{+xC_>wdSgCA$_F1bInP8Db6mRNA_@=;vux%A{hL!#oOzl8I7&^ zs*T3|up4LSSvyWjV+`5t*3UlGK7|+g+VTM};ML(L2;Xq{5iHIA9N!Oq)ZXz$5J$Qj zHHaVWiy7PoV0LXS+|F0Z?yHy@=)ff#ERsi8OMP9Rqwn+l?^B^K*;nNO`jU=3Rh+A> z!}}d4!MptCAYHmTd!j4bhfhn;iTohZ_i*%S^ml+ho$d(YUHuta7yhA3vmXha25p&q zo_%s*F3-yU5?hdE?@apVBc%s#;vcew{Hc4j~4*kEU8ZLkdQHD?E- z;Mu8t5BzcYm8KnYd`>z^ctIxW9F6#|j}qUO(UN#-$VUgxllti3Wmq2_ zct`Zn>AwIuWPEh&&0HT{c3GkE&x31i?BWUNaqK+#|2m&_G9Ue4Z_o17aP{AuJvO4h zj_-Zi{yO+OpqSXr;Bj7_zh2{6e;q&G`0H2u{`w5xU*`@B3NzOCSseE(e)ANk+*J+!9cKX1V@z?1u$6x2Uj|Tm9IonIK0{`dD;r5nA|@zbG4XG5fs5yt)lH{zibzL4mM^PR@uzdh)yLsNWjKKpR=cryPTTjEvOM)G|#@J>`Z+~7xc zn)ThKa~4Q;F(*Cm{9^gKhwO*+oW ztGOosA)B9}@zzAW?QzbL0yFvOvHlgvtP99>Xr}J@s&OH5EBTIjDpzCWxUi||Ka1a2 zkjwFjzZ@w~L-)qVIwmTY%-}KBQNsHVIT!+Y2YUpEpLd}9Dhw>dx&%wrkt{6#>cbL* zXNk#=&ejh#_~VZ3I&xakb-)wt--r&r9XJHjB4By~IBNM`aMl5jYMWQ{TjSydhlv9Z z+(zw%dU88BCpNvF=WplxndD?lD)f?5xWA~8n)gLKw`lRiyxb1K9PQ{){)T~>94p@c z^Gp7^1z=tsfcX^%^Co}&s8QtBPjT-cywjL-kY4_1*0FXs-wn)HIm7iY%o-TSxTVZj zpX*+T<Kku~N-2*-nMZ5Any$vy+vh=->Tvl^a`ooqkP;OkfU<-d{5DvGa!bOS(6M4pE-L zZQKRF2>E@0f8Bi~TR?d;%1KllTeWs=Ewkc|($5}iUjdKEkE_M@dXc>i<*Sk}zIEB| z^AZhb$CIi*Qu_z?e7pI+#eT0iTkXSv?`!P$+OJZ4u%hNzJLh`$H&Hyfg>yb44l3fqUJK>=bIqq_njZMUO-@T3V zzrZ{kybCzrARjLuUVX2#)A{h~d--N&udJGWfwvlX`F2+dwIL*kX ztiNgCzaIPB$ifrrC<^{#pYhlGe*yN7oEGf9?-zO7v+8ay}Zw>^V;8%_xoq_ ze!ng6v%}{SV-IBIT{(B#NBLLGFoZ6Tlu{p(f5pf+-!y+kLGx>|_9N}arUu{nx?Ql= z`>^&6!@oBFG^pvZ)uA1A4?9RW9wJ^*=wQVC*JL9@e=jKQ?)mqDO|U< zj#xvE9`ohjOpS^B>-EQU@Y#HmEPU(F;Ed3d7jj1EYugIHd%V3KJ2^!>@jP@$^BJ61 zyxi8?^!TlkI+Vge$cyh-@#LSqw(-U%-zA4*DQ)Jfjbcp`EI(8WEEKO5<{!uYm- z;kV4N?e5?9WBpe6wQc!*Zsbm)7x}F`GR$~|P1|;j^xNq8wjc6a!*K1OkEb-===)C? zZz8Zi$#0wdc3Rg4?EMC6tqDf$+a2L7aNX!x1D^u-`mQYECG}nXXlF}X`5@eX3*2uG z;9gR}(QmPd*Jk(Ml-rZS{!Qs@ZS#4FkG*lkoENAfpS+B-Zz1pv9lz~p{H6{=(7lR<)2e0 zv`xHgV*Sd~L6=OT?^f@k#NW;1{2I^b?1%D6x`-bs$H5y@(6-?1uf3keRy>#7*9^Za zK4|P!>d6K1sJl-z4|s3j7wo6&^F;Upx#RmHfqgySwyOb;#)ieV+d2Y1t^bpi2PS7n z^E3XI_0{+6JKk>3AaFCFP)7qtF>4JP0TqqIQ?;a z*oRqz(h@Hz`RZ_0^C5hWx-;-O;@f`uW4Gs(t@9^4{1ecR=)}bw{=Lr1=^u=+J`bAs zLN2}AI~BaA8>pWmJBqojX_#_n#cu7J`|DXR;A)digg>g`(Q?&)YCbp7 z_2-e~p~_?JWqdE*O}9joMhE?5bRv!1>LP}bL0+oHVCT!nbLZvjy;VLwQ^Vl%ok-}_ z%J4W-JLdS<@k2hWp+S7uEDh>zo1$boK+w5de5%Vrirpv<#*)&}>_#n68PZ0;VvgqT;737TQ zpoX=&&GL?+2g85FVWQ2i$-nAjuVq6A&zbL$pEaSx$Kk2et?(eUasc`%3RNYG&R`!e zM1Cc7p1GC&pq1OvTU(khp+-;BHl1%gKp<=ACqUml;>*Y9}K$BoYedupvr3Dy(z zqE$)Z&so?*`qboKW%*OO)aA-LIZZVzV7@-($t*Kp8v=+(6$zQvPQxy=fn4NTstx0-_Yr- zO(;Ou3q;r8SNq=QK*xGNIRgKpM>7p}FYQgvT&zYHbs@(k%Zqr{*8YrdvpW5<#E(9W zzUFz=rW3w&Rz&Ad$Y*+WHvhemf_;0*o80T&_l=NO(B^cQ&W)KGskPiCSaqzu^BnAN z?ge}Mr$^d*m}|_R>q2;NmFy?x*L6MLGlyTYpY1-EaV}1}QTC1U97EK~P!3Tz8cHsc zt@T39z_XVgZ{I*Zqt1|QK;Do~Sh4O!@9rwzXX*G)OfCKSz>|*r$+oK*C&ie;+il-M z@AIlW?K<$$Jx8)ju_gAqc;`4x3m{tP|a7$4Ziv*kS7(kQxcF*|!+qwXBp-oKU5c@lKV+tuEs z(k1&F)=y5{_1{O@*23i%%_jfec(;s%a-Vc#}!{sL#L^d>yn(sPlzXV z4*xlPaqT;2kWmhQe*ylwm``e++W9sI^HG1QahryY`fl|Gbf*7cWZAaj#Z#^d&Ixrp2j|ekE6N{8~b-!dAJ|@qr-G`8Msb}LA7A707?OBR`&->2tpLp+QpUd)|_UAnQ+pp*L1%r9FFuXj9tU4)ji6V_jmOTvDY@}p)(83# z?P#yg*5I=A(~ZvLj;BNc>!{~9-fLv>8eb1hf9$UKz|G`r7~l6U=!Z2nImfKGWYptd zwlsABUuiD21*e71PQ0{u>fycI2QB|(5%Nm5>I?XLzoUMTp`GZ4$G&s3q3MmSK247> zuhh-{yjpYTwei0Az%=!TK3snv_k#FipD@2>=op%>VSX=hmi#&FY2!CBuNLN2!@SO+ zpEB+ZmK|LB5!nz^6Qln1NIN=qO(Zx8t`LqPW>Li22V@Y_&mF{)jL0tbg-?-g>BR7_`tjDb?eT-^{bHuw3EG+Layw3 zm@{F(qxlT!f_obd_v(4+f_uvkoBUtsR&gmypUxMR+_k=a@O$x+iIr?F9g1g3FYZxX zkUiia9XXh)1rzc~v?Q1u9evrslt)LKprgNcFhNI#hL9T@pdZ20$okA;4Yzn_C-!jG ze>XJ*f-p9+PT%uktYe+*zRij71>th?VURsX$%n}S`C#iCXXCF`>*C2Y@N|utm5jr0 zUg@RigA(vA{T1u@;e_MubNIfmxsrO2h5hx055q<_$Zi#`b&gm2vdh^!tHIA$#~Cv4 zMg3vw>D=^ZuTB2?-@MD2sih&lYZw==XnG`ccRe;i%{cCFBo49*oZ{Pmwe_-9+>sPr z8sc+JQFU@ANLr&zRPlExxvK3@8;>O=Sh=&mdO4x1N!DVdvsK8^pvbJ`o#^F{uv zd^&xWjiFcBVS1Gem(G^|xNLXW?89oGv8ysvL9BV8>u-@Ql~onmXO!)$F*F`>@}7y_ zy0tO>dH+s)T+7-G<68Y%6LwEWvhRM@U_$`^`SmTL)y=2jpr0}tR@By4rVAGRml8O<@zm1>o%SkDw?Bx(wz9NWU=P5O!R<1^0UBviYMgC z-!wX3cWlVkUOps)FJ zWwCcbLOzk|@#V$Ee(vH{ zR#(_~h2+BTXvAtY^w5Wni z^iECG#wV}w=Krdu;MKo+uQItVOuglD>Tm7FPHhTRC@vYf1=ue{ru>-imW31p-rCT7 zW+JnW{+ERksj=genM^d1p^bEMhISETCw}Ml2)^5H?z4{IyS4Bd|FE^W_y6Qb`v&4V zWuF~IUG)1*txIY%t|_C=W!I014O-uPO@p(S8p#)7Pu}ooqdiA3^gOzuX50LD#0I?^S>rq5MV=|PU#i9VBlWi5;;-l**2k~*@n(PgPz-P4n8zCpW@TBou8(S$#s%m;(eMpoYwhy z#&2c(4>Puz>&?(P^K#?1VCR-Y2cPrTExptmC`G=SXMY?Yn7~+NXZvG~@yA-~k2R06 zc%NoZGC07sr!_{`Nyjo#8&nf8VBPVzB8<=yWXq zFCJ$Y9X42GOXFU#Gc2@EbIO)1*TryQSHo5l(=E`%aTJVG(>N380 z5q1*yI<`a-*KaZ&?4--c^!+RQE zc&n}F8Q*sK)+45`1>jpTP0^zIGBo)JcvD~K&r}2P&_`HjbLa0R&}MvF8Eq9O)w9*~ zJ@^#wn?9UO*TfRv;5XC9xKAg|`aG-kDd`{N%<(&`0yQk96Z|oUhEQ62B$UnBc zo`qo~{&zC5?e!z=yNLajt*%IHB&H{OqfD_0WTNDV;*Q47HuOo&ihvBOM>gRbY_I{5s;Mb9O9n)r5lg3N0Y_JNNXB?7`eo==^AjT z_!IqRp0&JLf-iCiKSpuXdiJu?i`?8UN?biOx6wm$6MQQ~ueZ`igPmIib90|3ie{f7 zF3gw)#^z5Xrn!E+Q788E4E-#M4=9&;iu&R zS~;5E;<q(7u-#9Z?9b+}4J4=aa-Njg?8jG0LL15Op{w+9oE&%^Kk%+Mu=Mppg zRV0>UFQy)6y}rv@p^v2FLXv^L>=|qtgHAgmnf@;8(ZF*pQRLYeYL`b6>GBZvpK5e! z?@RaR#KhNXwfzKe<)*{!e&r;Gc5!jvFh%28P`cQ12J*chAYNjO?kf$7@ zJ~eQWo1nOpjah8O)~r6aBGG_c?HW5SDSKS!p}WSOm2Cb9Hfb|+ibN9^?p9uo*I{BY z&Epf2WohOSl`J!?4{_}1QNTYs*#-Pv z^H?k3?|NWVGSw1h%oE`c0e^F$_jHDF>d?~$ww7s$`q9=GS&m*eaXoAR;M}e;Q;Y|p zj!$Ew1#$5lb+CmC_l#%-Cx!yf>$kK@J8UT)l`>uVx z!H<>IX)hEX@bj-)J3=-9_Qw^<`w+~Z1^0SC5&YA3z|fI5o;(ZU7k(^QYbSYU{1bRl zYbTy;WNx?6-q@z|y@5vT5!Tn7Gtrrau5#8BdFOOP9luLAw1fYyv9pY>7^1myJ0E1H zr8hn+zs1F)jSTSnGxR}hbCz#76QGWxI(6O0nOvcWhW4OTIi5?MM8Xd{}G@*DnMaTB)YyEc zx#o=Z*+cnEgAJ1TUPby#k_oXSvEDU%@MAR9x8HgtV6_ZFq^M2GU*oLb}_W5@?po4xQtA^qt2 z!9kltrTxoZ+V(wKm`r6t0r{%4ILaT1Z%ghncQriSML$|&&XkT%70$+|QZArZ@m@n9 zR)DQxadhM1PGSY8`kdzEF}E~xc}G6Z*xAIPvi(;_7(=muy#7u8^{<(O&RJxx&Z7ln zsJQ-)*Qs@N9m~d&lqKmVu%EOtVJ>9d>cO=tDHaPpF4m@59&B{J$ zLYCV(*m%2V{7kclyS2@HK&<+ecAIGq08d~_4w-2;c>GEcWGkU zeqZl-VRM&o)#ctmj!i$E`~}U2Jdsp6?WQB&t^z;Ehcfh9=SL(HK9V?xe$tVZ|-G4&d!$}iAWY2 zU$CU33_NF8pN4UBlIB^)YU14IE^Yu=qzk~Q7Fe(xt&Y87|qcaU}a5i^h{%&aX-iQfEN-a~$wu+;LgBPxrX!j;p=oDoDoL+8VmQ zIJY*wlYRStY<%7QWuHAi(M3+Vm6!HRl*!M;=QU^Pu;1)@yE+Ah9p3_1lGRn@V3(2a z+-34QuSne4nR~vrM0ANhR9#l54{a`2cE4NuEh%J17qUt@m4(D>1dC+;7r?XNr~rOF zmzjsm1gBd%SFBa;??ErtR>Hj!(C_@dPYSoXU$YpPi_r10j;Pt={&?cXYuOusfBHU& z+yXZT=u>y5%J(}!yMxePFZ|pI?u4(uL-%PdrKfu4D2^3MnzQTk$n)@``xcV7)9OX` z_0gW1fNiOpb-pRG4;tOCeeXr+;RDD6>C?wq)333n`aG3=7wQ2pPn)Bxnv;ryb<;iu zPtIm7-vsVgfJZU2-SEoesbs3!XFZutq(=G@H53 zX8j9U2ky6MD`XuC&-dS-?+p}zf7J!M0NAuXCEU$e#u@AqepAds{6GAjP%+;ZcKieI zS~?DQJj?qMWOOi>L zn6sYQ$uoMzW?NJClfp#T=%#J&@tvM)2EHnCo4fuByVuBM>|CCG*Kf1j*m+YE3wY)i zew&ri>f|b~CRu_keUX?})GOFG(ew80=0D1P!OMZqjORbUB3hHwd5;?8uBjhI|JgIY z(T;XK_rT0#Ps=RM&3pYB=qmzGm(kxw{v$_Q9%=^mAbujP@ua7M&7#mAqUMFrfj{>81!23 z9l?%|i+tB!+H80zg$!1I$!W*iGthg(xS7dT>~{AIX9vc2!7pj}MShF3*EhV%+R>Nz z!{zcSJ|x?Is@g>EXAi;8A7HF{+3E3E;?~sBcC{flFQMlp+wn!_tKAvmX=o-@qp_eZ zWM&52(bDE+iJ#7fHtAFMiKJ@y9eMH?Hu$1(<}S>Ez2ucRdHet|7S%17KpvLzkm|^n zcd-fOG^lTrmty2f0Xf|0T4brdQ@pBM@{M_G9VFvyJ<(VPe)A*JE7Db)h=Oxp9#NnD8$Btoi61wQ@J1`**(h z5$vNm^e@~&D<-dT9{w8Z(+AxsXY61mK5*e#g>6%pEIxeTdhD|pYY1%}>YH702l0}A z#ygv_M31_sQ!%QR2eB`r-rr?72Wi$En(3Ou9H1d{)?yy|i8&lVFROp`Me;3c7#|oN z_O4W4*gyN_FRpooIQp5;Ve8aH7rFb!{^2>vpp5ziMtsNp@*QNJgmuI{BjdRP4;Y~-a(kP;*~%SYJN$+q|&?+v|{6BC%i-3((x$?mf~qa%Ks^K_|l?sJ%e-#3=pA7^vF z5_=rZKDXyxv;LXt%9uO`B+c zy4=#2>t`c=tNIadsD7U7rwm>zOGOfQ2KrIkFwaPyMZ&~MXT*1u7dO9F>qYM9qz|VL zg1*iXQ=6n9QCArEV-VH{3O-|G1oN|F#{9doov#$E#gRShFJ1jp&JxLv+bH_y&**~| z&&2nqeM~l7_PmSa{08z8Ds`@dxr(3G{lL51L(U8CO7aBCc+dA=-Lq%qYsxj$b0!Ym zQk-Z!Cr;WOaamxO9CzntHY0bsS(_f#H)YP#7A3CxM||enh*82fqSJclbh%=?=mO=t ziWlZWtM2n8d{uaKpd0)~$A^fyu}476t-AR`eyq{?kM<0Q=(3u1u1<|MGW4GHN7_rn z+`+1|=eNX&7u~qbrVt#jLQEuYA z;dBuv%$&@py zIDUlOmcb_CXH7-Pb^N9n*=DbG?PTZ}UpTSJV}I@J!eoXu=w@v)XBQFo7j8Hs3EwQ| z?499Lc-S9vBlfo{Oeq2dRXUqBV*LVKNySwL{b!!bh@V)3^5BJbRD{JcZ z)eLl$aqb^F1OGbrUs2iV-Ce5vUY|am+jk;;)cf=yo$?RVoe*tIig=1c`+Fgl2BYMK zh^GAgg6U83>|~ycakg5%Lk`_AH_K<1ZruDvF+a%#!DQ_*?Ol(9yCx$tf9KD9LU9!g8S z#C;3gS-^?-!DFxSFbL{{=)67d2GJc+~ug*eahH(SZ{pfvNMT!7k!NQPH5k{ z1KvC3_{lma@rKTkQES2dUR~Jyn*5s^*Bx(nzo|y)^40T_Et~Oq`5w8qzpOKA`g)$d z3HO})UNT;NT*I?Y#%?tI>TW>U55&$ipL;)*nD?`z?Y*20(Yj*qu92N~UB$8XuTMJG z{xJWgv@_49K9cyQbY!8`X)A@}LiU>iICl88`Gnc{XF0qUD+@^skxEH6zStiHQ$q&x0zT;V$9?b*yCwJas`Al2akCYG^OL3mT|7$(hh&|KVuY z=2+hT{oJ^q&f{sl-ekRO&O*r4s;lQ73s<)-6Dxugcfcw%*^Iym5~Z z-`2RNQ}6G=JpL4Z_G9y>&H*nIyn*BBD!cyvUZC<_{qwJHYCJzy^VSfownkluy&(sy z=A(VZ{zs1w$p}ZkbItl>=~ud9GV8Jv8)_GG%hE40y6fC-4(v9v_>CYc%xC)7=O_IBr_#TC^j>J$j1$*5MIGy@5g;9_dk_ma z^XYzjneRiWud>e4#6;#$t>;HmzoP|v1YD$nF%3R$(H<^)F`8ffGe+-kU4SjQkywnr zTkuqT;2H8;l;ft)bx&anJ)l@2b&zQP9zIw+LaY)$qwCLWk}2Y9mR_@QMb(cum1nyj zwf(A(T>H%S^mkG)G_gGa)PmI%Gi4g*?l*&ZVRySv}Ywd zIn4gswXB^!m$QBm_TQ%e3cH*2R?gRYe3c0MR8h|5Rw|}P9AP4H(9K?S-)7>f_0YHU zX8#+Uzed+fpKhRr(E{SS)rUWtPz-VFp27Ai@*~7UJ@mN~e`F_i;?8FA8tYD6c^2?( z@!{(MzLm7!vUq&r0%E*9tod;89s1>9`()rFHlK+3@F|BGo9PPWg9*M6@QnjLeV)i3 zV;K03{y%JN_5lT7vx5(vsMztf?D0(`4iE)C#f=?&PXV8U4gY412W)=|Tp{pODtj9H z=09IFai}$APhXP=$6Vfmu`Rb&6MM2T7H4BveVR+d?mJ?Y$aH68S-Nw-SsVG+eYXyn zWe5Egufn_N^-}2dbE13pv9$j#S*Slp|4G(1cwd9;$S5%a`7yeGRWX0<>xI~Nk`Bt? z_f#UA8+e@pzE-nG@+Ps8uFh3!TiM@I%)J%6RrB~Ud5z-B=p)rh(M}0_Nm2TVF_)e6 z@jdnlmXB$EO*j^f5I=iWen2H-zoK|Pda1zQ@5=c5u!ZZXQ-pphW?mb;f_>$of_;0~ zBieIx!_YCb`af(tvv;?mmH%h}sO?ryDvj+&8g z&Fn=qlfyBQnpZ2>9|}Huo6gzQTx@d5LVmk?>tjz3(e56#6V2tdTP8VQGdi(=SVT4W zsRjq)lNDEL&9v_s>$r?{b9Qq`dCT54i9a>JM?0o!P5pIscJniw6Oujjb=G%iJEjSu6` z-JM@(VeV%O_v8R*&FaoP{EXK65@1!{Y8qWwiOsbHdRIJh)8dA!6n|)WB$`|fF4pDY zLj4_K|690Nm$#NBN1v zmK!{;tp!>(`;dM-78}m+m~6_a_<~x87I3D$*1d(jtKIBf$n|*8&cs;4rc#N-k>t*>*=Wk&b%S z#mtvy{)G4TOlYKIDep((iyvtp1Ap#!Px8!DJX3<43+}JJt8+ZQ&3^ST`rg*Z%{>pM z{Jh9i;yB2mA9AK9bq;XDFYCZh+UJ$3!9hpQYl8f8kH22I{9=6x;Y&DvkUm<$6}U?X zkJ|f=O!C*zw+Su%`#uP8j|Xl8o9`q4NN~aHuKuRucbgBMg(p0TyCb~A&nV7Y4UI*h z8S(rtSaT!0T1Expp?17le*ZeZSF^TZ<|jOKVF!kxvoJ7-2AYul^fy0B|1%etUlj&t z;niAqngklY=r0}w^l zq{s_U%+1k}d!JgR3_7WCxggvX%88q>pLzyO}Yfty*8@AO-CYKTZM-E8pP` z)>*vW%ciQdZe4p_bYN{%f9~K3Nv2Rx=XF(6^Jo0v+C;7kS zyy{#+A#!xD7u&ajf7vmzfm7hk?3n`V+!aUK*T>ikL}rQxw!n9?akNKIjtsd_1^qW* za})~CtfPS|GCHxSoSNW_eFgI}bZzK_eLL(T(fe*zMdfvW5{7{U4?0ws(YS;IH=L7t|3@tsx zdUhfqv_Y$R?5jM=y-#^hv*5o#D6A+PXEgNok{-i1W&HOoemqZ@~<7e8dRm|7PG|96FxeA3ls-ZfpbYNYaYDID@O`QELC^EFqp z7WZl`*gIdrTJ*rbiZN&{r7sU29-Kdkej-!j$#Q&e&2JO*BRHzJKDai*93#hC9+F=r z{~*O2WoO9WS>ex7u`BtxvWIGX|0|Bo;bO>^4{dzN`c}%p80FiH?)xGmcg|xC&*fiv zSmMPGyEP5$b!@(l-+jL+7*DYA%MRHDdLCq4k9CMKja5pU=xeX=nd8#A{tr{KLh?)y>DNKwbb;G>OymruT$_wpnA z$lX(|Oj8pT8*USF;Ep^!I4U#>JqYii2j%lh4|XF1Y+tdC^R}Z0p$}tYz+akkM)nmj zs0MjW4Bg0UP!ArR>(eKC@DKUT$(!PHC2w-+Q)dwrJA9t?SAMe29@y_{lFAk5dtcFU@`qHLAD)ayiaJ1;IrUL zIj%Yf5$rF8ZdALMIA2hVTzd(*G3ChM(=%v491qC8Yeuh6@XvrcUZ^6s$?-xE{-L~V z+6BL-=DEp@8G>bm`Bf%D?;OG}F5vu25xieZZv9kz9LeoT;I0S$iXac>knca|*aHvk zg4V4)60^D*`MhpT=$-ZdGq|0-=BJe}fUf5Lsf!W~*qMXK(hzdC5BYKsIgmXMQPlAt ze|4lCdc0EjiZGUZ-zEg2Hafb{th3=)ct&SlTBlhaPLXSC?Xoc@AFlT+stq$c*$0m}8d!3XXrS2S zdB_h{ZemXZFjYF)qdeqM9e)Td7`(!BvTwU9p}hupkUq8UqLC@k%Jb|m1$pE7>G*c! zK1@bW?3pfHm2_Or7~Qm6dG0LE?8Nq!U=#iVd)v&lW=!IC_H`c^W}cPMejWI8^X#ql z{95$#73@4O%bzFXm^|s)+w&dfjy}k~jn3L=�iIS~>?f%~;@6 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�CD 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�^}fnQ)tD#us3*rTkx!JlvC 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 z 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